*DECK IDDISEN 
USETEXT COMCBEG 
USETEXT COMRDSD 
USETEXT COMRNET 
PROC IDDISEN(ORD,TYPE); 
# TITLE - IDDISEN ENABLE/DISABLE PID/LID #
  
      BEGIN  # IDDISEN #
  
# 
**    IDDISEN - ENABLE/DISABLE PID/LID
* 
*     EITHER ENABLE OR DISABLE PID/LID(ORD) BASED ON TYPE 
* 
*     PROC IDDISEN(ORD,TYPE)
* 
*     ENTRY      - ORD - ORDINAL OF PID/LID 
*                  TYPE - TRUE=ENABLE,FALSE=DISABLE 
* 
*     EXIT       - ID TABLE MODIFIED OR ERROR DISPLAYED 
* 
*     PROCESSING -
*         FOR I=1 WHILE (I LT ORD AND NOT END OF TABLE) DO
*           GET NEXT LID AND INCREMENT I
*         IF I EQ ORD 
*         THEN
*           ID[ORD] = TYPE
*         ELSE
*           CALL ERROR
*         RETURN
# 
  
      ITEM ORD U;     # ORDINAL OF PID/LID TO BE CHANGED #
      ITEM TYPE B;    # TYPE OF CHANGE - TRUE=ENABLE,FALSE=DISABLE #
  
# 
****  PROD IDDISEN - XREF LIST BEGIN. 
# 
      XREF
        BEGIN 
        PROC ERROR; 
        ITEM NDTADDR  I;             # NETWORK DEFINITION TABLE ADDR #
        END 
# 
****  PROC IDDISEN - XREF LIST END
# 
  
    CONTROL IFEQ  OS$NOSBE; 
      ARRAY OFFSET [0:0] S(1);
        BEGIN 
        ITEM OFF$LID U(00,48,12);    # LID ORDINAL #
        ITEM OFF$SET U(00,48,11);    # TABLE OFFSET # 
        ITEM OFF$ODD B(00,59,01);    # EVEN/ODD INDICATOR # 
        END 
  
      ITEM  DONE B; 
      ITEM  I I;
CONTROL EJECT;
  
      P<NET$HEADER> = NDTADDR;
      DONE = FALSE; 
      I = 1;
      IF ORD EQ 0 
      THEN
          BEGIN 
          DONE = TRUE;
          END 
      ASLONGAS NOT DONE DO
        BEGIN 
        IF ORD EQ I 
        THEN  # ORDINAL OF PID #
          BEGIN 
          NET$ENABLE[0] = TYPE; 
          DONE = TRUE;
          END 
        ELSE
          BEGIN 
          IF ORD LE (I + NET$NUMLID[0]) 
          THEN
            BEGIN 
            P<LID$ENTRY> = NET$LIDADR[0]; 
            DONE = TRUE;
            OFF$LID[0] = ORD - I - 1; 
            I = ORD;
            IF OFF$ODD[0] 
            THEN
              BEGIN 
              LID$ENAB2[OFF$SET[0]] = TYPE; 
              END 
            ELSE
              BEGIN 
              LID$ENAB1[OFF$SET[0]] = TYPE; 
              END 
            END 
          END 
        IF NOT DONE 
        THEN
          BEGIN 
          IF NET$NXTPID[0] EQ 0 
          THEN
            BEGIN 
            DONE = TRUE;
            END 
          ELSE
            BEGIN 
            I = I + NET$NUMLID[0] + 1;
            P<NET$HEADER> = NET$NXTPID[0];
            END 
          END 
        END 
      IF I NE ORD 
      THEN
        BEGIN 
        ERROR;
        END 
    CONTROL ENDIF;
      RETURN; 
      END 
  
      TERM
