         << LINES .001/.009 ARE RESERVED FOR SYSTEMS INTEGRATION >>     00000001
DEFINE PMBCFIRMWARE = ABS(%1220).(14:1)#;                      <<*9384>>01440000
$INCLUDE INCLCIMP  <<External Procedures for Disc Cacheing>>   <<R9229>>01996000
$INCLUDE INCLIOIM  <<External Procedures for I/O system>>      <<R9229>>01997000
$INCLUDE INCLMIMP                                              <<R9229>>01998000
$EDIT VOID = 2145000                                           <<R9229>>02130000
$EDIT VOID = 2170000                                           <<R9229>>02150000
    OPTION EXTERNAL;                                           <<R9229>>02195000
    OPTION EXTERNAL;                                           <<R9229>>02220000
$EDIT VOID = 2245000                                           <<R9229>>02230000
    OPTION EXTERNAL;                                           <<R9229>>02270000
                                                               <<R9229>>02276600
PROCEDURE PSEUDOINT;                                           <<R9229>>02276700
    OPTION EXTERNAL;                                           <<R9229>>02276800
                                                               <<R9229>>02276900
PROCEDURE SET'PSIF(PCBPT,FLAG);                                <<R9229>>02278400
    VALUE PCBPT,FLAG;                                          <<R9229>>02278500
    INTEGER PCBPT;                                             <<R9229>>02278600
    LOGICAL FLAG;                                              <<R9229>>02278700
    OPTION EXTERNAL;                                           <<R9229>>02278800
                                                               <<R9229>>02278900
LOGICAL PROCEDURE ISOBJECTIMI(OBJ);                            <<R9229>>02279600
    VALUE OBJ;                                                 <<R9229>>02279700
    DOUBLE OBJ;                                                <<R9229>>02279800
    OPTION EXTERNAL;                                           <<R9229>>02279900
                                                               <<R9229>>02280000
INTEGER PROCEDURE PROCESSPRI(PIN);                             <<R9229>>02280600
    VALUE PIN;                                                 <<R9229>>02280700
    INTEGER PIN;                                               <<R9229>>02280800
    OPTION EXTERNAL;                                           <<R9229>>02280900
                                                               <<R9229>>02281000
LOGICAL PROCEDURE ISOBJECTABSENT(OBJ);                         <<R9229>>02281100
    VALUE OBJ;                                                 <<R9229>>02281200
    DOUBLE OBJ;                                                <<R9229>>02281300
    OPTION EXTERNAL;                                           <<R9229>>02281400
                                                               <<R9229>>02281500
PROCEDURE MEAS'OBJFAULT(OBJ);                                  <<R9229>>02283600
    VALUE OBJ;                                                 <<R9229>>02283700
    DOUBLE OBJ;                                                <<R9229>>02283800
    OPTION EXTERNAL;                                           <<R9229>>02283900
                                                               <<R9229>>02283910
INTEGER PROCEDURE UPDATESTATISTICS(CLASS,SUBCLASS,             <<R9229>>02284000
    SUBCLASSENTRY,STARTINGITEM,NEWVALUEFLAG,VALUECHANGE,       <<R9229>>02284100
    DOUBLEITEMFLAG);                                           <<R9229>>02284110
    VALUE CLASS,SUBCLASS,SUBCLASSENTRY,STARTINGITEM,           <<R9229>>02284200
          NEWVALUEFLAG,VALUECHANGE,DOUBLEITEMFLAG;             <<R9229>>02284300
    INTEGER CLASS,SUBCLASS,SUBCLASSENTRY,STARTINGITEM;         <<R9229>>02284400
    DOUBLE VALUECHANGE;                                        <<R9229>>02284500
    LOGICAL NEWVALUEFLAG,DOUBLEITEMFLAG;                       <<R9229>>02284600
    OPTION EXTERNAL;                                           <<R9229>>02284700
                                                               <<R9229>>02284800
PROCEDURE RELSYSTABENTRY(TABLEDST,ENTRYINDEX);                 <<R9229>>02284900
    VALUE TABLEDST,ENTRYINDEX;                                 <<R9229>>02285000
    LOGICAL TABLEDST,ENTRYINDEX;                               <<R9229>>02285100
    OPTION EXTERNAL;                                           <<R9229>>02285200
                                                               <<R9229>>02285300
                                                               <<R9229>>02286100
LOGICAL PROCEDURE GETSYSTABENTRY(TABLEDST,PRIMARY,WAIT);       <<R9229>>02286200
    VALUE TABLEDST,PRIMARY,WAIT;                               <<R9229>>02286300
    LOGICAL TABLEDST,PRIMARY,WAIT;                             <<R9229>>02286400
    OPTION EXTERNAL;                                           <<R9229>>02286500
                                                               <<R9229>>02286600
PROCEDURE AWAKE(PCBPT,WAKECODE,WAITFLAGS);                     <<R9229>>02287000
VALUE PCBPT,WAKECODE,WAITFLAGS;                                <<R9229>>02288000
$EDIT VOID = 2490000                                           <<R9229>>02430000
$EDIT VOID = 15375000                                          <<R9229>>04210000
$EDIT VOID = 16845000                                          <<R9229>>16515000
                << SEND MESSAGE TO DISPATCHER TO SCAN >>       <<D9229>>19401000
                << PROCESSES TO BE LAUNCHED BY SETTING>>       <<D9229>>19402000
                << PIN'S PRIORITY IN SYSGLOB AWAKETOSCHEDMSG>> <<D9229>>19403000
                << CELL                                >>      <<D9229>>19404000
         X:=PROCINX;                                           <<D9229>>19405000
         TOS := QUEUEINGINFO.PRIFIELD;                         <<D9229>>19410000
         IF AWAKETOSCHEDMSG <= LS0 THEN ASMB(DEL)              <<D9229>>19415000
         ELSE AWAKETOSCHEDMSG:=TOS;                            <<D9229>>19420000
$EDIT VOID = 19435000                                          <<P9520>>19425000
         IF DISPTOAWAKEMSG.PAUSEDFLAG THEN                     <<D9229>>19440000
         BEGIN   <<DISPATCHER WAS PAUSED>>                     <<P9520>>19445000
            TOS := SAVEDB;                                     <<P9520>>19446000
            EXCHDB;                                            <<P9520>>19447000
            PENABLE;                                           <<P9520>>19448000
            ASMB(DISP);                                        <<P9520>>19450000
         END ELSE                                              <<P9520>>19450100
         BEGIN   <<DISPATCHER WAS RUNNING>>                    <<P9520>>19450200
            TOS := SAVEDB;                                     <<P9520>>19451000
            EXCHDB;                                            <<P9520>>19452000
            PENABLE;                                           <<P9520>>19453000
            END;                                               <<P9520>>19454000
                                                               <<D9229>>19455000
                                                               <<D9229>>19460000
                                                               <<D9229>>19465000
                                                               <<D9229>>19470000
                                                               <<D9229>>19475000
                                                               <<D9229>>19480000
                                                               <<D9229>>19485000
COMMENT *** CheckPri will return True if Resource Holder       <<P9520>>20010000
   Priority is in Non-Linear Queue and the Requestor Pri.      <<P9520>>20011000
   is in Linear Queue;                                         <<P9520>>20012000
                                                               <<P9520>>20013000
IF NOT QUEUEINGINFO.LSCHEDFLAG AND                             <<P9520>>20014000
   PRI < ICS(-ICS'CSCHEDBASECELL) THEN CHECKPRI := TRUE;       <<P9520>>20015000
$EDIT VOID = 20030000                                          <<P9520>>20020000
IF INTEGER(QUEUEINGINFO).PRIFIELD > MYPRI THEN                 <<P9520>>20065000
   BEGIN                                                       <<P9520>>20070000
   IF CHECKPRI(MYPRI) THEN MYPRI := ICS(-ICS'CSCHEDBASECELL);  <<P9520>>20075000
$EDIT VOID = 20715000                                          <<R9229>>20290000
$EDIT VOID = 21520000                                          <<R9229>>21025000
$EDIT VOID = 26390000                                          <<R9229>>23480000
$EDIT VOID = 26895000                                          <<R9229>>26660000
$EDIT VOID = 27520000                                          <<R9229>>27230000
INTEGER CYCLECOUNTER;                                          <<S9229>>45956000
EQUATE MAXCOUNT = 20000;                                       <<S9229>>46001000
      CYCLECOUNTER := CYCLECOUNTER + 1; <<number of times >>   <<S9229>>46306000
      <<cycle through whole memory. Will call SUDDENDEATH if >><<S9229>>46307000
      <<can not make room for crictical MPE segment instead >> <<S9229>>46308000
      <<off stay in the loop for ever>>                        <<S9229>>46309000
CYCLECOUNTER := 0;  <<INIT. THE COUNTER>>                      <<S9229>>46396000
      IF CYCLECOUNTER >= MAXCOUNT THEN SUDDENDEATH (615);      <<S9229>>46506000
LOGICAL RAS'FLAG;                                              <<D9267>>46896000
   RAS'FLAG := TOS;  <<SAVE RAS>>                              <<D9267>>47171000
   IF RAS'FLAG.REGAVAILABLEFLAG THEN BUMPSEARCHPOINTER         <<D9267>>47175000
   ELSE IF RAS'FLAG.REGLKDFLAG THEN BUMPSEARCHBASE             <<D9267>>47180000
   ELSE IF RAS'FLAG.REGFZFLAG THEN BUMPSEARCHBASE              <<D9267>>47185000
   ELSE IF RAS'FLAG.REGIOFZFLAG THEN                           <<D9267>>47190000
      IF RAS'FLAG.REGMAPFLAG THEN MAPSEG:=TRUE ELSE            <<D9267>>47230000
                                  MAPSEG:=FALSE;               <<D9267>>47231000
$EDIT                                                          <<D9267>>47235000
   ASMB(DDEL);  <<DELETE BANK & BASE>>                         <<D9267>>47466000
ELSE                                                           << 9539>>49545000
COMMENT**** If the process is running in non-linear queue and  <<Q9367>>49546000
       is holding a SIR then its I/O will be done at the       <<Q9367>>49547000
       priority of CBASE;                                      <<Q9367>>49548000
                                                               <<Q9367>>49549000
   BEGIN  <<THE REQUEST IS NOT AN I/O REQUEST>>                << 9539>>49549100
   PROCPRI := QUEUEINGINFO.PRIFIELD;                           << 9539>>49550000
   IF RESABORTINFO.HASSIRFLAG AND PROCPRI >                    << 9539>>49551000
$EDIT                                                          << 9539>>49551100
   ICS(-ICS'CSCHEDBASECELL) THEN PROCPRI :=                    << 9539>>49552000
   ICS(-ICS'CSCHEDBASECELL);                                   << 9539>>49553000
   END;                                                        << 9539>>49553100
                                                               << 9539>>49554000
INTEGER SAVE'X    = Q + 52;                                    <<*9384>>58191000
IF PMBCFIRMWARE                                                <<*9384>>58615000
    THEN UPDATE'PCBXBNDS'FLAG;                                 <<*9384>>58620000
IF PMBCFIRMWARE                                                <<*9384>>60400000
   THEN GET'PCBXBNDS'FLAG;                                     <<*9384>>60405000
      SAVE'X := X;                                             <<*9384>>60521000
      IF PMBCFIRMWARE THEN                                     <<*9384>>60525000
         BEGIN                                                 <<*9384>>60530000
         X := SAVE'X;                                          <<*9384>>60531000
         GET'XDSEG'LIMITS;                                     <<*9384>>60532000
         END;                                                  <<*9384>>60533000
      X := SAVE'X;                                             <<*9384>>60534000
ASMB(ADDS 52);  << FOR DISPATCHER LOCAL VARIABLES >>           <<*9384>>61515000
