*DECK,UPKPID1 
USETEXT COMCBEG 
USETEXT COMQDEF 
USETEXT COMQFIL 
USETEXT COMQKDS 
USETEXT COMQPID 
USETEXT COMQSEL 
    PROC UPKPID1((ORDINAL));
      BEGIN  # UPKPID1 #
# 
**    UPKPID1    UPDATE ONE ITEM OF STATUS,PID DISPLAY. 
* 
*     UPDATES ONE ITEM OF STATUS,PID DISPLAY. 
* 
*     PROC UPKPID1((ORDINAL)) 
* 
*     ENTRY      DISPLAY HEADER INITIALIZED FOR PID DISPLAY.
*                P<PLTHDR> POINTS TO PID ENTRY. 
*                ORDINAL = ITEM ORDINAL ON DISPLAY. 
* 
*     EXIT       DISPLAY ITEM AREA UPDATED. 
* 
*     PROCESS    GENERATE ITEMS FOR CURRENT PID.
* 
# 
  
      ITEM ORDINAL    U;           # DISPLAY ITEM ORDINAL # 
  
# 
****  XREF
# 
      XREF
        BEGIN 
        PROC NAME;                 # DEBUG CODE # 
        END 
  
# 
****  XREF END
# 
  
      BASED ARRAY KPI [0:0] S(KDWDSPERLN);
        BEGIN 
        ITEM KPI$PID    U(00,06,18);  # PID # 
        ITEM KPI$STATUS C(00,42,10);  # PID STATUS #
        ITEM KPI$DISAB  C(02,00,12);  # IN USE SEL CLASSES #
        ITEM KPI$INUSE  C(03,30,12);  # DI-ABLED SEL CLASSES #
        END 
  
      ITEM DISABSET   U;           # SET OF DISABLED SC # 
      ITEM I          U;           # LOOP VARIABLE #
      ITEM INUSESET   U;           # SET OF IN-USE SC # 
  
        $BEGIN
        NAME("UPKPID1");           # DEBUG CODE # 
        $END
  
      P<KPI> = LOC(KL$ITEM[ORDINAL]); 
      KPI$PID = PLTPID; 
      IF PLTDISOPR
      THEN
        BEGIN 
        KPI$STATUS = "DISABLED";
        END 
  
      ELSE
        BEGIN 
        IF PLTDISLDT
        THEN
          BEGIN 
          KPI$STATUS = "NO PATH"; 
          END 
  
        ELSE
          BEGIN 
          IF PLTDISERR
          THEN
            BEGIN 
            KPI$STATUS = "REJECTING"; 
            END 
  
          ELSE
            BEGIN 
            IF PLTLIDSDIS 
            THEN
              BEGIN 
              KPI$STATUS = "NO LIDS"; 
              END 
  
            ELSE
              BEGIN 
              KPI$STATUS = "ENABLED"; 
              END 
  
            END 
  
          END 
  
        END 
  
      KPI$DISAB = "------------"; 
      KPI$INUSE = "------------"; 
      DISABSET = PLTSCDISAB;
      INUSESET = PLTSCINUSE;
      I = 0;
      ASLONGAS (DISABSET + INUSESET) NE 0  # LOOP WHILE SETS NON-EMPTY #
      DO
        BEGIN 
        IF (DISABSET LAN 1) NE 0
        THEN
          BEGIN 
          C<I,1>KPI$DISAB = SEL$NAME[I];
          END 
  
        IF (INUSESET LAN 1) NE 0
        THEN
          BEGIN 
          C<I,1>KPI$INUSE = SEL$NAME[I];
          END 
  
        I = I + 1;
        DISABSET = DISABSET / 2;   # REMOVE CURRENT ELEMENT FROM SET #
        INUSESET = INUSESET / 2;
        END 
  
      END  # UPKPID1 #
    TERM
