*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