*DECK LFGMDE
      PROC LFGMDE(PN,RSA,RECL,SUCCESS,DIRBUF);
      BEGIN                  # MAKE DIRECTORY ENTRY                    #
*IF DEF,IMS 
# 
**    LFGMDE - MAKE DIRECTORY ENTRY.
* 
*     M. E. VATCHER  81/02/20 
* 
*     LFGMDE MAKES A DIRECTORY ENTRY IN THE OPLD BUFFER.
* 
*     PROC LFGMDE(PN,RSA,RECL,SUCCESS,DIRBUF) 
* 
*     ENTRY PN        PARTITION NAME
*           RSA       RELATIVE SECTOR ADDRESS 
*           RECL      RECORD LENGTH 
*           DIRBUF    DIRECTORY BUFFER ARRAY ADDRESS
* 
*     EXIT  SUCCESS   SUCCESSFUL COMPLETION INDICATOR 
* 
*     METHOD
* 
*     PUT PARTITION NAME,RELATIVE SECTOR ADDRESS, AND RECORD LENGTH 
*     IN CURRENT POSITION IN THE DIRECTORY BUFFER.
* 
# 
*ENDIF
  
# 
****  PROC LFGMDE - XREF LIST BEGIN.
# 
  
      XREF
        BEGIN 
        ITEM OUTPUT;         # FWA OF OUTPUT FILE FET                  #
        PROC WRITEC;         # WRITE LINE TO CIO BUFFER                #
        PROC WRITER;         # WRITE RECORD                            #
        END 
  
# 
****
# 
  
      ITEM I U;              # LOOP INDEX                              #
      ITEM PN C(6);          # PARTITION NAME                          #
      ITEM RECL U;           # RECORD LENGTH                           #
      ITEM RSA U;            # RELATIVE SECTOR ADDRESS                 #
      ITEM SUCCESS B; 
  
      ARRAY DIRBUF [0:0] S(2);
        BEGIN                # DIRECTORY BUFFER                        #
        ITEM NLFWC        U(01,48,12); # ENTRY INDEX                   #
        ITEM RN           C(00,00,06); # RECORD NAME                   #
        ITEM RLEN         U(01,00,30); # RECORD LENGTH                 #
        ITEM RANINDX      U(01,30,30); # RELATIVE SECTOR ADDRESS       #
        END 
  
      ARRAY DUPRN [0:0] S(4); 
        BEGIN 
        ITEM DUPRN1 C(0,0,30) = 
          [" DUPLICATE RECORD NAME XXXXXX."]; 
        ITEM DUPNAME C(2,18,6); 
        ITEM DUPZ U(3,0,60) = [ 0 ];
        END 
  
      SUCCESS = TRUE; 
      FOR I = 1 STEP 1 UNTIL NLFWC[0] DO
        BEGIN 
        IF C<0,6>PN EQ C<0,6>RN[I]
        THEN                 # DUPLICATE RECORD NAME                   #
          BEGIN 
          DUPNAME[0] = PN;
          WRITEC(OUTPUT,DUPRN); 
          WRITER(OUTPUT,"R"); 
          SUCCESS = FALSE;
          RETURN;            # ***** EXIT *****                        #
  
          END 
        END 
      NLFWC[0] = NLFWC[0] + 1;
      RN[NLFWC[0]] = PN;     # PUT IN RECORD NAME                      #
      RLEN[NLFWC[0]] = RECL; # PUT IN RECORD LENGTH                    #
      RANINDX[NLFWC[0]] = RSA; # PUT IN RELATIVE SECTOR ADRESS         #
      END TERM
