         << LINES .001/.009 ARE RESERVED FOR SYSTEMS INTEGRATION >>     00000001
LOGICAL MEM'STAT;                                              <<*2141>>00211000
                                                               <<*2141>>00212000
INTEGER CPU'TYPE, MEM'SUM, CONTROLLER'NUM;                     <<*2141>>00215000
EQUATE                                                         <<*2141>>00225000
     MAX'CPU =        15,                                      <<*2141>>00225100
     NUM'CONTROLLERS = 4;                                      <<*2141>>00225200
                                                               <<*2141>>00225300
INTEGER ARRAY CONTROLLER'ARRAY(0:MAX'CPU*NUM'CONTROLLERS-1):=  <<*2141>>00225400
<<   CPU                  CONTROLLER NUMBER              >>    <<*2141>>00225500
<<   NUM            0        1        2        3         >>    <<*2141>>00225600
<<  -----        -------  -------  -------  -------      >>    <<*2141>>00225700
<<    1   >>        0,       2,     "NO",    "NO",             <<*2141>>00225800
<<    2   >>        0,       8,     "NO",    "NO",             <<*2141>>00225900
<<    3   >>        0,       8,     "NO",    "NO",             <<*2141>>00226000
<<    4   >>        0,      16,     "NO",    "NO",             <<*2141>>00226100
<<    5   >>        0,     "NO",    "NO",    "NO",             <<*2141>>00226200
<<    6   >>        0,       4,     "NO",    "NO",             <<*2141>>00226300
<<    7   >>        0,     "NO",    "NO",    "NO",             <<*2141>>00226400
<<    8   >>        0,     "NO",    "NO",    "NO",             <<*2141>>00226500
<<    9   >>        0,     "NO",    "NO",    "NO",             <<*2141>>00226600
<<   10   >>        0,     "NO",    "NO",    "NO",             <<*2141>>00226700
<<   11   >>        0,     "NO",    "NO",    "NO",             <<*2141>>00226800
<<   12   >>        0,     "NO",    "NO",    "NO",             <<*2141>>00226900
<<   13   >>        0,     "NO",    "NO",    "NO",             <<*2141>>00227000
<<   14   >>        0,     "NO",    "NO",    "NO",             <<*2141>>00227100
<<   15   >>        0,     "NO",    "NO",    "NO";             <<*2141>>00227200
                                                               <<*2141>>00227300
     MM           = (6 <= CPU'TYPE <= 15)#,                    <<*2029>>00237000
                                                               <<*2029>>00465000
     TIOGA    =     7,                                         <<*2141>>00466000
     MICMOUSE =     8,                                         <<*2141>>00467000
     CONTROLLER'B  = 1,                                        <<*2141>>00515000
     CONTROLLER'C  = 2,                                        <<*2141>>00516000
     CONTROLLER'D  = 3;                                        <<*2141>>00517000
     FOR REC := CONTROLLER'A UNTIL CONTROLLER'D  DO            <<*2141>>03485000
INTEGER PROCEDURE GET'CONTROLLER(CNTRLR'NUM, CPU'NUM);         <<*2141>>04335100
VALUE CNTRLR'NUM, CPU'NUM;                                     <<*2141>>04335200
INTEGER CNTRLR'NUM, CPU'NUM;                                   <<*2141>>04335300
     << TOO BAD SPL DOESN'T ALLOW TWO DIMENSIONAL ARRAYS. >>   <<*2141>>04335400
BEGIN                                                          <<*2141>>04335500
GET'CONTROLLER :=                                              <<*2141>>04335600
 CONTROLLER'ARRAY((CPU'NUM-1) * NUM'CONTROLLERS + CNTRLR'NUM); <<*2141>>04335700
END;                                                           <<*2141>>04335800
                                                               <<*2141>>04335900
PROCEDURE PUT'CONTROLLER(CNTRLR'NUM, CPU'NUM, VAL);            <<*2141>>04336000
VALUE CNTRLR'NUM, CPU'NUM, VAL;                                <<*2141>>04336100
INTEGER CNTRLR'NUM, CPU'NUM, VAL;                              <<*2141>>04336200
                                                               <<*2141>>04336300
BEGIN                                                          <<*2141>>04336400
CONTROLLER'ARRAY((CPU'NUM-1) * NUM'CONTROLLERS + CNTRLR'NUM):= <<*2141>>04336500
   VAL;                                                        <<*2141>>04336600
END;                                                           <<*2141>>04336700
          REC := CONTROLLER'D;  << STOP OUTER BLOCK LOOP >>    <<*2141>>04425000
          REC := CONTROLLER'D;  << STOP OUTER BLOCK LOOP >>    <<*2141>>05095000
  LOGICAL ERR'LATCH;                                           <<*9547>>05702000
                                                               <<*9547>>05703000
      REC := CONTROLLER'D;  << STOP OUTER BLOCK LOOP >>        <<*2141>>05750000
                                                               <<*2141>>05770000
                                                               <<*2141>>05770500
                                                               <<*2141>>05771000
                                                               <<*2141>>05771500
                                                               <<*2141>>05772000
          IF (CPU'TYPE = ICF55 OR MM)  THEN                    <<*2029>>06630000
     FOR REC := CONTROLLER'A UNTIL CONTROLLER'D  DO            <<*2141>>06755000
        IF BANKNUM >= GET'CONTROLLER(1,4)                      <<*2141>>06800000
                                                               <<*2282>>06832000
     IF CPU'TYPE = 6  THEN                                     <<*2141>>06840100
       BEGIN                                                   <<*2141>>06840200
       TOS := %20000000001D;                                   <<*2141>>06840400
       MCS;                                                    <<*2141>>06840500
       MEM'STAT := TOS;                                        <<*2141>>06840600
       IF MEM'STAT.(7:1) THEN                                  <<*2141>>06840700
         PUT'CONTROLLER(1, CPU'TYPE, 8)                        <<*2141>>06840800
       ELSE IF BANKNUM >= 8 THEN                               <<*2141>>06840900
         PUT'CONTROLLER(1, CPU'TYPE, 16);                      <<*2141>>06841000
       END                                                     <<*2141>>06841100
     ELSE IF CPU'TYPE >= 7  THEN                               <<*2141>>06841200
       BEGIN                                                   <<*2141>>06841300
       CONTROLLER'NUM := 0;                                    <<*2141>>06841500
       MEM'SUM := 0;                                           <<*2141>>06841600
       WHILE BANKNUM > MEM'SUM DO                              <<*2141>>06841700
         BEGIN                                                 <<*2141>>06841800
         TOS := %100000 + MEM'SUM;                             <<*2141>>06841900
         IF CONTROLLER'NUM = CONTROLLER'B  OR                  <<*2141>>06842000
            CONTROLLER'NUM = CONTROLLER'D  THEN                <<*2141>>06842110
           TOS := 3                                            <<*2141>>06842120
         ELSE                                                  <<*2141>>06842130
           TOS := 1;                                           <<*2141>>06842140
         MCS;                                                  <<*2141>>06842150
         MEM'STAT := TOS;                                      <<*2141>>06842200
         PUT'CONTROLLER(CONTROLLER'NUM, CPU'TYPE, MEM'SUM);    <<*2141>>06842300
         CASE MEM'STAT.(6:2) OF                                <<*2141>>06842400
           BEGIN                                               <<*2141>>06842500
           MEM'SUM := MEM'SUM +  16;                           <<*2141>>06842600
           MEM'SUM := MEM'SUM +   8;                           <<*2141>>06842700
           MEM'SUM := MEM'SUM +  32;                           <<*2141>>06842800
           MEM'SUM := MEM'SUM + 128;                           <<*2141>>06842900
           END;                                                <<*2141>>06843000
         CONTROLLER'NUM := CONTROLLER'NUM + 1;                 <<*2141>>06843100
         END;                                                  <<*2141>>06843200
       END;                                                    <<*2141>>06843300
          IF MM  THEN PRINT'MM(REC)                            <<*2029>>06860000
          IF REC < CONTROLLER'D  THEN                          <<*2141>>06917000
            IF BANKS < GET'CONTROLLER(REC+1, CPU'TYPE)  THEN   <<*2141>>06920000
               REC := CONTROLLER'D;                            <<*2141>>06925000
                                                               <<*2141>>06930000
                                                               <<*2141>>06935000
