1 /****^  ***********************************************************
   2         *                                                         *
   3         * Copyright, (C) Honeywell Bull Inc., 1988                *
   4         *                                                         *
   5         * Copyright, (C) Honeywell Information Systems Inc., 1982 *
   6         *                                                         *
   7         * Copyright (c) 1972 by Massachusetts Institute of        *
   8         * Technology and Honeywell Information Systems, Inc.      *
   9         *                                                         *
  10         *********************************************************** */
  11 
  12 
  13 
  14 
  15 
  16 /****^  HISTORY COMMENTS:
  17   1) change(88-12-30,Parisek), approve(88-12-30,MCR8040),
  18      audit(89-01-04,Farley), install(89-01-17,MR12.3-1005):
  19      Revise the rc_messages array declaration so the second dimension of the
  20      array represents the actual count of 11 messages.  The eleventh message
  21      was added for MR12.2.
  22                                                    END HISTORY COMMENTS */
  23 
  24 
  25 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */
  26 reconfigure:
  27      proc;
  28 
  29 /* This program is the user ring interface the supervisor reconfiguration software.
  30    The following entries (all of which can be invoked as commands) are provided:
  31 
  32    *      addcpu tag
  33    *      delcpu tag
  34    *      addmem tag
  35    *      delmem tag
  36    *      addmain first_frame n_frames
  37    *      delmain first_frame n_frames
  38    *      rc_force_unlock
  39    *      addchnl chanid
  40    *      delchnl chanid
  41 
  42    Last modified (date and reason):
  43 
  44    3/9/76 by S. Webber Initial coding
  45    6/20/83 by S. Krupp for logical channel reconfiguration (addchnl and delchnl).
  46 */
  47 
  48 /* Automatic */
  49 
  50 dcl       tp                     ptr;
  51 dcl       arg                    char (16) var aligned;
  52 dcl       arg2                   char (256) var aligned;
  53 dcl       chan_num               fixed bin (35);
  54 dcl       chanid                 char (8) aligned;
  55 dcl       switches               (4) bit (36) aligned;
  56 dcl       lace                   bit (1) aligned;
  57 dcl       first                  fixed bin;
  58 dcl       last                   fixed bin;
  59 dcl       n_frames               fixed bin;
  60 dcl       n_args                 fixed bin;
  61 dcl       tc                     fixed bin;
  62 dcl       code                   fixed bin (35);
  63 dcl       errtag                 fixed bin (3);
  64 dcl       type                   fixed bin;
  65 dcl       tag                    fixed bin (3);
  66 dcl       1 auto_rci             aligned like rci;
  67 dcl       i                      fixed bin;
  68 
  69 
  70 /* Static */
  71 
  72 dcl       myname                 (7) char (8) aligned static options (constant)
  73                                  init ("addcpu", "delcpu", "addmem", "delmem", "addmain", "delmain", "unlock");
  74 dcl       my_new_name            (7) char (16) aligned static options (constant)
  75                                  init ("add cpu", "delete cpu", "add mem", "delete mem", "add page", "delete page", "");
  76 
  77 dcl       devtype                (9) char (4) aligned static options (constant)
  78                                  init ("CPU ", "CPU ", "MEM ", "MEM ", "MAIN", "MAIN", "    ", "    ", "    ");
  79 
  80 dcl       TAGS                   (0:7) char (1) aligned static options (constant)
  81                                  init ("A", "B", "C", "D", "E", "F", "G", "H");
  82 
  83 /* External */
  84 
  85 dcl       cv_dec_check_          entry (char (*), fixed bin (35)) returns (fixed bin (35));
  86 dcl       rc_messages$rc_messages
  87                                  (0:7, 11) char (64) aligned ext;
  88 dcl       error_table_$wrong_no_of_args
  89                                  fixed bin (35) ext;
  90 dcl       error_table_$bad_arg   fixed bin (35) ext;
  91 
  92 /* Builtins */
  93 
  94 dcl       (addr, index, mod, null, search, substr, unspec)
  95                                  builtin;
  96 
  97 /* Based */
  98 
  99 dcl       targ                   char (tc) based (tp);
 100 
 101 /* Entries */
 102 
 103 dcl       hphcs_$add_cpu         entry (fixed bin (3), (4) bit (36) aligned, fixed bin (35));
 104 dcl       hphcs_$del_cpu         entry (fixed bin (3), fixed bin (35));
 105 dcl       hphcs_$add_scu         entry (fixed bin (3), bit (1) aligned, fixed bin (3), fixed bin (35));
 106 dcl       hphcs_$del_scu         entry (fixed bin (3), bit (1) aligned, fixed bin (35));
 107 dcl       hphcs_$add_main        entry (fixed bin, fixed bin, fixed bin (35));
 108 dcl       hphcs_$del_main        entry (fixed bin, fixed bin, fixed bin (35));
 109 dcl       cu_$arg_ptr            entry (fixed bin, ptr, fixed bin, fixed bin (35));
 110 dcl       cu_$arg_count          entry (fixed bin, fixed bin (35));
 111 dcl       cv_oct_check_          entry (char (*), fixed bin (35)) returns (fixed bin);
 112 dcl       com_err_               entry options (variable);
 113 dcl       hphcs_$reconfig_info   entry (ptr, fixed bin (35));
 114 dcl       hphcs_$rc_force_unlock entry;
 115 dcl       ioa_                   entry options (variable);
 116 dcl       iox_$control           entry (ptr, char (*), ptr, fixed bin (35));
 117 
 118 dcl       iox_$user_output       ptr ext static;            /*^L                                                        */
 119 
 120 /*        ADDCPU    ADDCPU    ADDCPU
 121 
 122 
 123    This entry assumes and expects a single argument which is the processor tag
 124    of the processor to be added to the system.
 125 
 126 */
 127 
 128 addcpu:
 129      entry;
 130 
 131           call check_args (1, 8);                           /* get argument and reconfig info from ring zero */
 132 
 133           call hphcs_$add_cpu (tag, switches, code);        /* try to add it */
 134           if code = rcerr_addcpu_bad_switches then do;      /* If config switches in error ... */
 135                rswp = addr (switches (2));
 136                if dps_rsw_2.fault_base then
 137                     call sw_mess_1 ("Fault Base");
 138                if dps_rsw_2.cpu_num ^= 0 then
 139                     call sw_mess_1 ("Processor Number");
 140 
 141                rswp = addr (switches (4));
 142                do i = 0 to 7;
 143                     if i < 4 then
 144                          pip = addr (addr (switches (1)) -> rsw_1_3.port_info (i));
 145                     else pip = addr (addr (switches (3)) -> rsw_1_3.port_info (i - 4));
 146 
 147                     if pi.port_assignment then
 148                          call sw_mess_2 ("Port Assignment");
 149                     if pi.port_enable then
 150                          call sw_mess_2 ("Port Enable");
 151                     if pi.interlace_enable | rsw_4.four (i) then
 152                          call sw_mess_2 ("Interlace");
 153                     if pi.mem_size ^= 0 then
 154                          call sw_mess_2 ("Size");
 155                     if rsw_4.half (i) then
 156                          call sw_mess_2 ("Half/Full");
 157                end;
 158           end;
 159 
 160           else if code = rcerr_addcpu_enable then do;
 161                unspec (errtag) = switches (1);              /* Get offending SCU tag. */
 162                arg2 = TAGS (errtag);
 163           end;
 164           if code ^= 0 then
 165                call abort (code);                           /* wouldn't add, complain */
 166 
 167           call ioa_ ("^a is now running.", arg);
 168           return;
 169 
 170 /*^L*/
 171 
 172 /*        DELCPU    DELCPU    DELCPU
 173 
 174 
 175 
 176    This entry assumes and expects a single argument which is the processor tag of the
 177    processor to be deleted.
 178 
 179 */
 180 
 181 delcpu:
 182      entry;
 183 
 184           call check_args (2, 8);                           /* get argument and reconfig info from ring zero */
 185 
 186           call hphcs_$del_cpu (tag, code);
 187           if code ^= 0 then
 188                call abort (code);                           /* couldn't delete it, complain */
 189 
 190           call ioa_ ("Deleted ^a.", arg);
 191           return;
 192 
 193 /*^L*/
 194 
 195 /*        ADDMEM    ADDMEM    ADDMEM
 196 
 197 
 198    This entry assumes and expects a single argument which is the port number (tag) of the
 199    system controller to add to the system. All memory attached to the controller is added.
 200    If parity errors are detected in any frames, those frames are _^Hn_^Ho_^Ht added.
 201 
 202 
 203 */
 204 
 205 addmem:
 206      entry;
 207 
 208           call check_args (3, 8);                           /* get argument and reconfig info from ring zero */
 209 
 210           call hphcs_$add_scu (tag, lace, errtag, code);
 211           if code ^= 0 then do;
 212                if (code ^= rcerr_addscu_size) & (code ^= rcerr_addscu_manual) then
 213                     arg2 = TAGS (errtag);
 214                call abort (code);
 215           end;
 216 
 217           call print_mem_message ("Added");
 218           return;
 219 
 220 
 221 
 222 /*        DELMEM    DELMEM    DELMEM
 223 
 224 
 225    This entry assumes and expects a single argument which is the port number (tag)
 226    of the controller to be deleted.
 227 
 228 */
 229 
 230 delmem:
 231      entry;
 232 
 233           call check_args (4, 8);                           /* get argument and reconfig info from ring zero */
 234 
 235           call hphcs_$del_scu (tag, lace, code);
 236           if code ^= 0 then
 237                call abort (code);
 238 
 239           call print_mem_message ("Removed");
 240           return;
 241 
 242 /*^L*/
 243 
 244 /*        ADDMAIN   ADDMAIN   ADDMAIN
 245 
 246 
 247    This entry is called with one or two arguments. The first is the page frame number of
 248    a block of main memory to be added to the configuration. The second argument is the number
 249    of contiguous blocks to be added starting with the first. If the second argument is not specified,
 250    the value 1 is assumed. If the memory is already configured, no complaint is made.
 251 
 252 */
 253 
 254 addmain:
 255      entry;
 256 
 257           call check_args (5, 0);
 258 
 259           call hphcs_$add_main (first, n_frames, code);
 260           if code ^= 0 then
 261                call abort (code);
 262 
 263           call print_main_message ("Added");
 264           return;
 265 
 266 
 267 
 268 
 269 /*        DELMAIN   DELMAIN   DELMAIN
 270 
 271 
 272    This entry is called with one or two arguments. The first is the page frame number of
 273    a block of main memory to be deleted from the system. The second argument is the number
 274    of contiguous blocks to be deleted starting with the first. If the second argument is not specified,
 275    the value 1 is assumed. If the memory is already deleted, no complaint is made.
 276 
 277 */
 278 
 279 delmain:
 280      entry;
 281 
 282           call check_args (6, 0);
 283 
 284           call hphcs_$del_main (first, n_frames, code);
 285           if code ^= 0 then
 286                call abort (code);
 287 
 288           call print_main_message ("Removed");
 289           return;
 290 ^L
 291 /*        FORCE_UNLOCK        FORCE_UNLOCK        FORCE_UNLOCK
 292 
 293 
 294    This entry is used to forcibly unlock the reconfiguration lock. It is used when
 295    a reconfiguration request has somehow aborted and left the data bases locked.
 296 
 297 
 298 */
 299 
 300 force_unlock:
 301      entry;
 302 
 303           type = 7;
 304           call hphcs_$reconfig_info (addr (auto_rci), code);
 305           if code = 0 then
 306                call com_err_ (0, myname (type), "Reconfiguration data not locked.");
 307           else call com_err_ (0, myname (type), "Reconfiguration data locked by ^a", auto_rci.locker_group_id);
 308 
 309           call hphcs_$rc_force_unlock;
 310 
 311           return;
 312 
 313 /*^L*/
 314 
 315 /*        PRINT_MAIN_MESSAGE  PRINT_MAIN_MESSAGE  PRINT_MAIN_MESSAGE
 316 
 317 
 318    This entry is used to print a message about the reconfiguration of the specified
 319    region of main memory.
 320 
 321 
 322 */
 323 
 324 print_main_message:
 325      proc (action);
 326 
 327 dcl       action                 char (*);
 328 
 329           if first ^= last then
 330                call ioa_ ("^a frames ^o thru ^o.", action, first, last);
 331           else call ioa_ ("^a frame ^o.", action, first);
 332           return;
 333 
 334      end;
 335 
 336 
 337 
 338 /*        PRINT_MEM_MESSAGE   PRINT_MEM_MESSAGE   PRINT_MEM_MESSAGE
 339 
 340 
 341    This subroutine is used to print a message saying that an SCU and its memory
 342    have been added or removed from the system. It prints the information for both SCU's if two
 343    interlaced SCU's were reconfigured.
 344 
 345 */
 346 
 347 print_mem_message:
 348      proc (action);
 349 
 350 dcl       action                 char (*);
 351 
 352           if lace then do;
 353                tag = tag - mod (tag, 2);
 354                call ioa_ ("^a SCU's ^a and ^a (interlaced) and their memory.", action, TAGS (tag), TAGS (tag + 1));
 355           end;
 356           else call ioa_ ("^a SCU ^a and its memory.", action, TAGS (tag));
 357           return;
 358 
 359      end;
 360 
 361 /*^L*/
 362 
 363 /*        SW_MESS             SW_MESS             SW_MESS
 364 
 365 
 366    These subroutines are used to interpret configuration switch errors
 367    when adding a CPU.
 368 
 369 */
 370 
 371 sw_mess_1:
 372      proc (mess);
 373 
 374 dcl       mess                   char (*);
 375 
 376           arg2 = arg2 || "
 377           ";
 378           arg2 = arg2 || mess;
 379 
 380           return;
 381 
 382 
 383 sw_mess_2:
 384      entry (mess);
 385 
 386           arg2 = arg2 || "
 387           ";
 388           arg2 = arg2 || "MEM ";
 389           arg2 = arg2 || TAGS (i);
 390           arg2 = arg2 || " ";
 391           arg2 = arg2 || mess;
 392 
 393           return;
 394 
 395      end;
 396 
 397 /*^L*/
 398 
 399 /*        CHECK_ARGS          CHECK_ARGS          CHECK_ARGS
 400 
 401 
 402    This subroutine is used to pick up the arguments.  It is called with two
 403    arguments. The first is an integer specifiying which entry to reconfigure was called.
 404    This may be used later for error message printing. The second argument is the number of values over
 405    which the command argument may range. For CPU reconfiguration requests it is 4. For controller
 406    reconfiguration requests it is 8.
 407 
 408 */
 409 
 410 check_args:
 411      proc (t, range);
 412 
 413 dcl       t                      fixed bin;
 414 dcl       range                  fixed bin;
 415 
 416           code = 0;
 417           type = t;
 418           arg = "";
 419           arg2 = "";
 420 
 421           call iox_$control (iox_$user_output, "alarm", null (), (0));
 422                                                             /* try to beep the console */
 423           call ioa_ ("^a is obsolete.  Use {rcf} ^a instead.", myname (type), my_new_name (type));
 424 
 425           call cu_$arg_count (n_args, code);
 426           if code ^= 0 then
 427                call abort (code);
 428 
 429           if type <= 4 then do;                             /* ADDCPU, DELCPU, ADDMEM, and DELMEM */
 430                if n_args ^= 1 then
 431                     call abort (error_table_$wrong_no_of_args);
 432                call cu_$arg_ptr (1, tp, tc, code);          /* pick up the argument */
 433                arg = targ;
 434                tag = index (substr ("abcdefgh", 1, range), targ) - 1;
 435                if (tag < 0) | (tc ^= 1) then
 436                     call abort (error_table_$bad_arg);
 437                arg = devtype (type) || TAGS (tag);
 438           end;
 439           else if type <= 6                                 /* ADDMAIN or DELMAIN */
 440           then do;
 441                if (n_args = 0) | (n_args > 2) then
 442                     call abort (error_table_$wrong_no_of_args);
 443                call cu_$arg_ptr (1, tp, tc, code);          /* get port */
 444                arg = targ;
 445                first = cv_oct_check_ (targ, code);
 446                if code ^= 0 then
 447                     call abort (error_table_$bad_arg);
 448                if n_args = 2 then do;
 449                     call cu_$arg_ptr (2, tp, tc, code);
 450                     arg = targ;
 451                     n_frames = cv_oct_check_ (targ, code);
 452                     if (code ^= 0) | (n_frames <= 0) then
 453                          call abort (error_table_$bad_arg);
 454                end;
 455                else n_frames = 1;
 456 
 457                arg = devtype (type);
 458                last = first + n_frames - 1;
 459           end;
 460           else do;
 461                if n_args ^= 1 then
 462                     call abort (error_table_$wrong_no_of_args);
 463                call cu_$arg_ptr (1, tp, tc, code);
 464                if code ^= 0 then
 465                     call abort (code);
 466                if ^(tc >= 1 | tc <= 8) then
 467                     call abort (error_table_$bad_arg);
 468                if search (targ, "ab") ^= 1 then
 469                     call abort (error_table_$bad_arg);
 470                chan_num = cv_dec_check_ (substr (targ, 2), code);
 471                if code ^= 0 then
 472                     call abort (code);
 473                chanid = targ;
 474           end;
 475 
 476           return;
 477 
 478      end check_args;
 479 
 480 /*^L*/
 481 
 482 /*        ABORT     ABORT     ABORT
 483 
 484 
 485 
 486    This subroutine is called to report an error from some stage of reconfiguration.
 487    The input to the routine is
 488 
 489    *      abort_code the parameter
 490 
 491    The abort_code parameter is interpreted differently depending on its value. If it is
 492    greater than or equal to 7, it indicates a generic problem that can happen with
 493    all entries. If it is less than 7, it indicates a specific problem with the entry given
 494    by type.
 495 
 496 */
 497 
 498 abort:
 499      proc (abort_code);
 500 
 501 dcl       abort_code             fixed bin (35);
 502 
 503           if abort_code >= 21 then
 504                call com_err_ (abort_code, myname (type), arg);
 505           else if abort_code >= 11 then
 506                call com_err_ (0, myname (type), rc_messages$rc_messages (0, abort_code - 10), arg);
 507           else call com_err_ (0, myname (type), rc_messages$rc_messages (type, abort_code), arg, arg2);
 508 
 509           goto ERROR;
 510 
 511      end abort;
 512 
 513 ERROR:
 514           return;                                           /* target of nonlocal goto's */
 515 
 516 
 517 /*^L*/
 518 
 519 %include scs;
 520 
 521 /*^L*/
 522 
 523 %include rcerr;
 524 
 525 %include rci;
 526 
 527 /*^L*/
 528 
 529 %include rsw;
 530 
 531 dcl       pip                    ptr;
 532 
 533 dcl       1 pi                   like rsw_1_3.port_info based (pip) unal;
 534 ^L
 535 /* BEGIN MESSAGE DOCUMENTATION
 536 
 537    Message:
 538    Added SCU X and its memory.
 539 
 540    S:     $initializer_io
 541 
 542    T:     $response
 543 
 544    M:     This is the response to a successful addmem X command.
 545 
 546    A:     $ignore
 547 
 548 
 549    Message:
 550    Added SCU's X and Y (interlaced) and their memory.
 551 
 552    S:     $initializer_io
 553 
 554    T:     $response
 555 
 556    M:     This is the response to a successful addmem X command
 557    when SCU's X and Y have their memories interlaced.
 558 
 559    A:     $ignore
 560 
 561 
 562    Message:
 563    Added frame XXX.
 564 
 565    S:     $initializer_io
 566 
 567    T:     $response
 568 
 569    M:     This is the response to a successful addmain XXX command.
 570 
 571    A:     $ignore
 572 
 573 
 574    Message:
 575    Added frames XXX thru YYY.
 576 
 577    S:     $initializer_io
 578 
 579    T:     $response
 580 
 581    M:     This is the response to a successful addmain XXX N command.
 582 
 583    A:     $ignore
 584 
 585 
 586    Message:
 587    CPU X is now running.
 588 
 589    S:     $initializer_io
 590 
 591    T:     $response
 592 
 593    M:     This is the response to a
 594    successful addcpu X command.
 595 
 596    A:     $ignore
 597 
 598 
 599    Message:
 600    Deleted CPU X.
 601 
 602    S:     $initializer_io
 603 
 604    T:     $response
 605 
 606    M:     This is the response to a successful delcpu X command.
 607 
 608    A:     $ignore
 609 
 610 
 611    Message:
 612    Removed SCU X and its memory.
 613 
 614    S:     $initializer_io
 615 
 616    T:     $response
 617 
 618    M:     This is the response to a successful delmem X command.
 619 
 620    A:     $ignore
 621 
 622 
 623    Message:
 624    Removed SCU's X and Y (interlaced) and their memory.
 625 
 626    S:     $initializer_io
 627 
 628    T:     $response
 629 
 630    M:     This is the response to a successful delmem X command, when SCU's X and Y are interlaced.
 631 
 632    A:     $ignore
 633 
 634 
 635    Message:
 636    Removed frame XXX.
 637 
 638    S:     $initializer_io
 639 
 640    T:     $response
 641 
 642    M:     This is the response to a successful delmain XXX command.
 643 
 644    A:     $ignore
 645 
 646 
 647    Message:
 648    Removed frames XXX thru YYY.
 649 
 650    S:     $initializer_io
 651 
 652    T:     $response
 653 
 654    M:     This is the response to a successful delmain XXX N command.
 655 
 656    A:     $ignore
 657 
 658 
 659    Message:
 660    addcpu: Associative memories not enabled on CPU X.
 661 
 662    S:     $initializer_io
 663 
 664    T:     $response
 665 
 666    M:     The SDWAM and/or PTWAM on CPU X is not enabled.
 667    CPU X was not added.
 668 
 669    A:     Set the appropriate associative memory switch on and try addcpu again.
 670 
 671 
 672    Message:
 673    addcpu: CPU X is already online.
 674 
 675    S:     $initializer_io
 676 
 677    T:     $response
 678 
 679    M:     A redundant addcpu X command was issued.
 680    No action was taken.
 681 
 682    A:     $tryagn
 683 
 684 
 685    Message:
 686    addcpu: CPU X is not configured.
 687 
 688    S:     $initializer_io
 689 
 690    T:     $response
 691 
 692    M:     There is no CPU card for CPU X in the configuration deck.
 693    The CPU cannot be added.
 694 
 695    A:     If the CPU name was mistyped, enter a corrected command.
 696    If the configuration deck omitted the CPU card,
 697    that CPU cannot be added until the system is shut down and the deck corrected.
 698 
 699 
 700    Message:
 701    addcpu: CPU X is not enabled at MEM Y.
 702 
 703    S:     $initializer_io
 704 
 705    T:     $response
 706 
 707    M:     CPU X cannot be added because the PORT ENABLE switch at MEM Y does not enable it.
 708 
 709    A:     Fix the switches and try addcpu again.
 710 
 711 
 712    Message:
 713    addcpu: CPU X is not in Multics mode.
 714 
 715    S:     $initializer_io
 716 
 717    T:     $response
 718 
 719    M:     CPU X cannot be added because its mode switch is wrong.
 720 
 721    A:     Fix the switch and try again.
 722 
 723 
 724    Message:
 725    addcpu: Illegal command or subroutine argument. BLAH
 726 
 727    S:     $initializer_io
 728 
 729    T:     $response
 730 
 731    M:     Invalid input was typed.
 732 
 733    A:     $tryagn
 734 
 735 
 736    Message:
 737    addcpu: Lockup fault trying to start CPU X.
 738 
 739    S:     $initializer_io
 740 
 741    T:     $response
 742 
 743    M:     This happens occasionally. The reason for it is unknown.
 744 
 745    A:     Try addcpu a few more times.
 746 
 747 
 748    Message:
 749    addcpu: No response from CPU X.
 750 
 751    S:     $initializer_io
 752 
 753    T:     $response
 754 
 755    M:     CPU X did not start up when commanded.
 756    It may be malfunctioning or in STEP.
 757 
 758    A:     Check the switches.
 759    If any are wrong, correct them and retry addcpu.
 760    Otherwise, notify Field Engineering.
 761 
 762 
 763    Message:
 764    addcpu: Reconfiguration database is locked.
 765 
 766    S:     $initializer_io
 767 
 768    T:     $response
 769 
 770    M:     Another process is performing reconfiguration currently,
 771    or a fault during reconfiguration has left the reconfiguration tables locked.
 772 
 773    A:     If it is certain that no other process is reconfiguring,
 774    and that the fault which interrupted reconfiguration
 775    has been cured, the reconfigure$force_unlock command may be used to clear the lock
 776    at the direction of system staff.
 777 
 778 
 779    Message:
 780    addcpu: Startup fault trying to start CPU X.
 781 
 782    S:     $initializer_io
 783 
 784    T:     $response
 785 
 786    M:     This happens sometimes. Nobody knows why.
 787 
 788    A:     Try again a few times.
 789 
 790 
 791    Message:
 792    addcpu: The following switches on CPU X are set incorrectly:
 793    .br
 794    Fault Base
 795    .br
 796    Processor Number
 797    .br
 798    Port Assignment MEM Y
 799    .br
 800    Port Enable MEM Y
 801    .br
 802    Interlace MEM Y
 803    .br
 804    Size MEM Y
 805    .br
 806    Half/Full MEM Y
 807 
 808    S:     $initializer_io
 809 
 810    T:     $response
 811 
 812    M:     The listed switches are set incorrectly.
 813 
 814    A:     Correct the switches and try addcpu again.
 815 
 816 
 817    Message:
 818    addcpu: Trouble fault trying to start CPU X.
 819 
 820    S:     $initializer_io
 821 
 822    T:     $response
 823 
 824    M:     This happens sometimes. Nobody knows why.
 825 
 826    A:     Try again a few times.
 827 
 828 
 829    Message:
 830    addcpu: Wrong number of arguments supplied.
 831 
 832    S:     $initializer_io
 833 
 834    T:     $response
 835 
 836    M:     Invalid input was typed.
 837 
 838    A:     $tryagn
 839 
 840 
 841    Message:
 842    addmain: Illegal command or subroutine argument. BLAH
 843 
 844    S:     $initializer_io
 845 
 846    T:     $response
 847 
 848    M:     Invalid input was typed.
 849 
 850    A:     $tryagn
 851 
 852 
 853    Message:
 854    addmain: Reconfiguration database is locked.
 855 
 856    S:     $initializer_io
 857 
 858    T:     $response
 859 
 860    M:     Another process is performing reconfiguration currently,
 861    or a fault during reconfiguration has left the reconfiguration tables locked.
 862 
 863    A:     If it is certain that no other process is reconfiguring,
 864    and that the fault which interrupted reconfiguration
 865    has been cured, the reconfigure$force_unlock command may be used to clear the lock
 866    at the direction of system staff.
 867 
 868 
 869    Message:
 870    addmain: Request is not within range of a single controller. MAIN XXX
 871 
 872    S:     $initializer_io
 873 
 874    T:     $response
 875 
 876    M:     An addmain command must specify memory completely within the range of a single controller.
 877 
 878    A:     $tryagn
 879 
 880 
 881    Message:
 882    addmain: Wrong number of arguments supplied.
 883 
 884    S:     $initializer_io
 885 
 886    T:     $response
 887 
 888    M:     Invalid input was typed.
 889 
 890    A:     $tryagn
 891 
 892 
 893    Message:
 894    addmem: Illegal command or subroutine argument. BLAH
 895 
 896    S:     $initializer_io
 897 
 898    T:     $response
 899 
 900    M:     Invalid input was typed.
 901 
 902    A:     $tryagn
 903 
 904 
 905    Message:
 906    addmem: MEM Y cannot be accessed by CPU X.
 907 
 908    S:     $initializer_io
 909 
 910    T:     $response
 911 
 912    M:     CPU X is unable to access MEM Y.
 913    The configuration deck may be incorrect,
 914    or the CPU and SCU switches may be in the wrong settings.
 915 
 916    A:     Check the switches and make sure that they agree with the configuration deck.
 917    Then try addmem again.
 918 
 919 
 920    Message:
 921    addmem: MEM Y does not have mask assigned to CPU X.
 922 
 923    S:     $initializer_io
 924 
 925    T:     $response
 926 
 927    M:     The MASK/PORT ASSIGNMENT (4MW SCU)
 928    or EXECUTE INTERRUPT MASK ASSIGNMENT (6000 SCU)
 929    switches on SCU Y are incorrect.
 930 
 931    A:     Fix the switches and try addmem again.
 932 
 933 
 934    Message:
 935    addmem: MEM Y has duplicate mask assignments to CPU X.
 936 
 937    S:     $initializer_io
 938 
 939    T:     $response
 940 
 941    M:     The MASK/PORT ASSIGNMENT (4MW SCU)
 942    or EXECUTE INTERRUPT MASK ASSIGNMENT (6000 SCU)
 943    switches on SCU Y are incorrect.
 944 
 945    A:     Fix the switches and try addmem again.
 946 
 947 
 948    Message:
 949    addmem: MEM Y has mask Z assigned to non-CPU port.
 950 
 951    S:     $initializer_io
 952 
 953    T:     $response
 954 
 955    M:     The MASK/PORT ASSIGNMENT (4MW SCU)
 956    or EXECUTE INTERRUPT MASK ASSIGNMENT (6000 SCU)
 957    switches on SCU Y are incorrect.
 958 
 959    A:     Fix the switches and try addmem again.
 960 
 961 
 962    Message:
 963    addmem: MEM Y is already online.
 964 
 965    S:     $initializer_io
 966 
 967    T:     $response
 968 
 969    M:     An addmem Y command was typed when SCU Y was already online.
 970 
 971    A:     $ignore
 972 
 973 
 974    Message:
 975    addmem: MEM Y is not configured.
 976 
 977    S:     $initializer_io
 978 
 979    T:     $response
 980 
 981    M:     There is no MEM card in the configuration for MEM y.
 982    The SCU cannot be added.
 983 
 984    A:     If the SCU name was mistyped, enter a corrected command.
 985    If the configuration deck omitted the MEM card,
 986    the SCU cannot be added until the system is shut down and the deck corrected.
 987 
 988 
 989    Message:
 990    addmem: MEM Y is not enabled on CPU X.
 991 
 992    S:     $initializer_io
 993 
 994    T:     $response
 995 
 996    M:     The ENABLE switch on the CONFIGURATION panel of CPU X
 997    does not enable SCU Y.
 998    The memory cannot be added.
 999 
1000    A:     Fix the switches and try addmem again.
1001 
1002 
1003    Message:
1004    addmem: MEM Y is not in PROGRAM mode.
1005 
1006    S:     $initializer_io
1007 
1008    T:     $response
1009 
1010    M:     The MODE switch on 4MW SCU Y is not in PROGRAM mode.
1011    The SCU cannot be added.
1012 
1013    A:     Fix the switches and try addmem again.
1014 
1015    A:     $ignore
1016 
1017 
1018    Message:
1019    addmem: Reconfiguration database is locked.
1020 
1021    S:     $initializer_io
1022 
1023    T:     $response
1024 
1025    M:     Another process is performing reconfiguration currently,
1026    or a fault during reconfiguration has left the reconfiguration tables locked.
1027 
1028    A:     If it is certain that no other process is reconfiguring,
1029    and that the fault which interrupted reconfiguration
1030    has been cured, the reconfigure$force_unlock command may be used to clear the lock
1031    at the direction of system staff.
1032 
1033 
1034    Message:
1035    addmem: Size of MEM Y disagrees with CPU switches.
1036 
1037    S:     $initializer_io
1038 
1039    T:     $response
1040 
1041    M:     The memory size on the configuration card for MEM Y
1042    disagrees with the size on the CPU switches.
1043 
1044    A:     If the switches are incorrect, fix them and try addmem again.
1045    If the configuration deck is incorrect,
1046    the system must be shut down and the deck corrected before the SCU can be added.
1047 
1048 
1049    Message:
1050    addmem: Switches for MEM Y set improperly on CPU X.
1051 
1052    S:     $initializer_io
1053 
1054    T:     $response
1055 
1056    M:     The ADDRESS ASSIGNMENT switches for SCU Y are
1057    incorrect on CPU X.
1058 
1059    A:     Correct the switches and try addmem again.
1060 
1061 
1062    Message:
1063    addmem: Wrong number of arguments supplied.
1064 
1065    S:     $initializer_io
1066 
1067    T:     $response
1068 
1069    M:     Invalid input was typed.
1070 
1071    A:     $tryagn
1072 
1073 
1074    Message:
1075    delcpu: CPU X is not online.
1076 
1077    S:     $initializer_io
1078 
1079    T:     $response
1080 
1081    M:     A delcpu X command finds that CPU X is already deleted.
1082 
1083    A:     $ignore
1084 
1085 
1086    Message:
1087    delcpu: CPU X is the only CPU.
1088 
1089    S:     $initializer_io
1090 
1091    T:     $response
1092 
1093    M:     A delcpu X command attempted to delete the last CPU.
1094    No action was taken.
1095 
1096    A:     $ignore
1097 
1098 
1099    Message:
1100    delcpu: Cannot stop CPU X.
1101 
1102    S:     $initializer_io
1103 
1104    T:     $response
1105 
1106    M:     CPU X did not respond to a command to stop within
1107    the expected time. The CPU may be malfunctioning or in STEP,
1108    or it may be in a very tight loop.
1109 
1110    A:     Check the CPU panel.
1111    If the processor appears to be in a loop,
1112    it may be possible to break it out
1113    by placing zeros in the processor switches
1114    and using the EXECUTE button to cause a fault;
1115    but this action sometimes causes the system to crash,
1116    depending on where the loop is.
1117 
1118 
1119    Message:
1120    delcpu: Illegal command or subroutine argument. BLAH
1121 
1122    S:     $initializer_io
1123 
1124    T:     $response
1125 
1126    M:     Invalid input was typed.
1127 
1128    A:     $tryagn
1129 
1130 
1131    Message:
1132    delcpu: Reconfiguration database is locked.
1133 
1134    S:     $initializer_io
1135 
1136    T:     $response
1137 
1138    M:     Another process is performing reconfiguration currently,
1139    or a fault during reconfiguration has left the reconfiguration tables locked.
1140 
1141    A:     If it is certain that no other process is reconfiguring,
1142    and that the fault which interrupted reconfiguration
1143    has been cured, the reconfigure$force_unlock command may be used to clear the lock
1144    at the direction of system staff.
1145 
1146 
1147    Message:
1148    delcpu: Wrong number of arguments supplied.
1149 
1150    S:     $initializer_io
1151 
1152    T:     $response
1153 
1154    M:     Invalid input was typed.
1155 
1156    A:     $tryagn
1157 
1158 
1159    Message:
1160    delmain: Abs wired pages in memory.
1161 
1162    S:     $initializer_io
1163 
1164    T:     $response
1165 
1166    M:     A delmain command attempted to delete a range of pages
1167    which included some pages which cannot be deleted.
1168    No action was taken.
1169 
1170    A:     $tryagn
1171 
1172 
1173    Message:
1174    delmain: Illegal command or subroutine argument. BLAH
1175 
1176    S:     $initializer_io
1177 
1178    T:     $response
1179 
1180    M:     Invalid input was typed.
1181 
1182    A:     $tryagn
1183 
1184 
1185    Message:
1186    delmain: Not enough main memory left.
1187 
1188    S:     $initializer_io
1189 
1190    T:     $response
1191 
1192    M:     A delmain command attempted to delete so much memory that the system would be
1193    unable to function correctly.
1194    No action was taken.
1195 
1196    A:     $tryagn
1197 
1198 
1199    Message:
1200    delmain: Reconfiguration database is locked.
1201 
1202    S:     $initializer_io
1203 
1204    T:     $response
1205 
1206    M:     Another process is performing reconfiguration currently,
1207    or a fault during reconfiguration has left the reconfiguration tables locked.
1208 
1209    A:     If it is certain that no other process is reconfiguring,
1210    and that the fault which interrupted reconfiguration
1211    has been cured, the reconfigure$force_unlock command may be used to clear the lock
1212    at the direction of system staff.
1213 
1214 
1215    Message:
1216    delmain: Request is not within range of a single controller. MAIN XXX
1217 
1218    S:     $initializer_io
1219 
1220    T:     $response
1221 
1222    M:     A delmain command must specify a range of pages
1223    which lies completely within one controller.
1224    No action was taken.
1225 
1226    A:     $tryagn
1227 
1228 
1229    Message:
1230    delmain: Wrong number of arguments supplied.
1231 
1232    S:     $initializer_io
1233 
1234    T:     $response
1235 
1236    M:     Invalid input was typed.
1237 
1238    A:     $tryagn
1239 
1240 
1241    Message:
1242    delmem: Abs wired pages in MEM Y.
1243 
1244    S:     $initializer_io
1245 
1246    T:     $response
1247 
1248    M:     An attempt was made to delete a memory
1249    which included some pages which cannot be deleted.
1250    No action was taken.
1251 
1252    A:     The memory cannot be deleted.
1253 
1254 
1255    Message:
1256    delmem: Illegal command or subroutine argument. BLAH
1257 
1258    S:     $initializer_io
1259 
1260    T:     $response
1261 
1262    M:     Invalid input was typed.
1263 
1264    A:     $tryagn
1265 
1266 
1267    Message:
1268    delmem: MEM Y is not online.
1269 
1270    S:     $initializer_io
1271 
1272    T:     $response
1273 
1274    M:     A delmem Y command was typed but no such memory is in use.
1275 
1276    A:     $ignore
1277 
1278 
1279    Message:
1280    delmem: Not enough main memory to remove MEM Y.
1281 
1282    S:     $initializer_io
1283 
1284    T:     $response
1285 
1286    M:     The system would be unable to function
1287    correctly if SCU Y and its memory were deleted.
1288    No action was taken.
1289 
1290    A:     Try something else.
1291 
1292 
1293    Message:
1294    delmem: Reconfiguration database is locked.
1295 
1296    S:     $initializer_io
1297 
1298    T:     $response
1299 
1300    M:     Another process is performing reconfiguration currently,
1301    or a fault during reconfiguration has left the reconfiguration tables locked.
1302 
1303    A:     If it is certain that no other process is reconfiguring,
1304    and that the fault which interrupted reconfiguration
1305    has been cured, the reconfigure$force_unlock command may be used to clear the lock
1306    at the direction of system staff.
1307 
1308 
1309    Message:
1310    delmem: Wrong number of arguments supplied.
1311 
1312    S:     $initializer_io
1313 
1314    T:     $response
1315 
1316    M:     Invalid input was typed.
1317 
1318    A:     $tryagn
1319 
1320 
1321    Message:
1322    unlock: Reconfiguration data locked by PERSON.PROJ.T
1323 
1324    S:     $initializer_io
1325 
1326    T:     $response
1327 
1328    M:     This message is typed by reconfigure$force_unlock if the reconfiguration data base was locked.
1329 
1330    A:     $ignore
1331 
1332 
1333    Message:
1334    unlock: Reconfiguration data not locked.
1335 
1336    S:     $initializer_io
1337 
1338    T:     $response
1339 
1340    M:     This message is typed by reconfigure$force_unlock if the reconfiguration data base was not locked.
1341 
1342    A:     $ignore
1343 
1344 
1345    END MESSAGE DOCUMENTATION */
1346 
1347      end reconfigure;