*DECK NDLWLCR USETEXT NDLDATT USETEXT NDLFETT USETEXT NDLNCFT USETEXT NDLTBLT PROC NDLWLCR(NPU$NAME,LAST$ENTRY); BEGIN *IF,DEF,IMS # ** NDLWLCR - WRITE LINE CONFIGURE RECORD. * * D.K. ENDO 81/11/10 * * THIS PROCEDURE MAKES ENTRIES IN LINE CONFIGURE INDEX AND WRITES * LINE CONFIGURE ENTRY TO FILE. * * PROC NDLWLCR(NPU$NAME,LAST$ENTRY) * * ENTRY NPU$NAME = NAME OF NPU SUPPORT LINE. * LAST$ENTRY = LAST ENTRY FLAG. * * EXIT NONE. * * METHOD * * IF NO FATAL ERRORS HAVE BEEN DETECTED, * IF NPU$NAME IS NOT EQUAL TO NAME IN CURRENT INDEX ENTRY, * IF NEED MORE TABLE SPACE FOR INDEX, * ALLOCATE MORE SPACE. * MAKE NEW ENTRY IN INDEX. * IF LAST$ENTRY IS NOT SET, * THEN, * INCREMENT RECORD LENGTH. * INCREMENT ENTRY COUNT. * WRITE ENTRY TO FILE. * OTHERWISE, * FLUSH CIO BUFFER FOR LINE CONFIG FILE. * WRITE EOR MAKER FOR RECORD. * # *ENDIF ITEM NPU$NAME C(7); # NAME OF NPU SUPPORTING LINE # ITEM LAST$ENTRY B; # LAST ENTRY INDICATOR # # **** PROC NDLWLCR - XREF LIST BEGINS. # XREF BEGIN PROC SSTATS; # ALLOCATES MORE TABLE SPACE # PROC RECALL; # RETURNS CONTROL WHEN RECALL BIT CLEARED # PROC WRITER; # WRITES -EOR- # PROC WRITEW; # WRITES GIVEN NUMBER OF WORDS # END # **** # ITEM I; # SCRATCH ITEM # ITEM ITEMP; # INTEGER TEMPORARY # CONTROL EJECT; # # # NDLWLNR CODE BEGINS HERE # # # IF ERRCNT EQ 0 # IF NO FATAL ERRORS HAVE BEEN DETECTED # THEN BEGIN IF NPU$NAME NQ LCRNAME[LCRWC[1] - 1] THEN # MUST BE A NEW ENTRY # BEGIN IF (LCRWC[1] + 2) GQ LCR$LENG THEN # NEED MORE TABLE SPACE # BEGIN SSTATS(P,30); END LCRWC[1] = LCRWC[1] + 1; # INCREMENT WORD COUNT # LCRWORD[LCRWC[1]] = 0; # CLEAR FIRST WORD IN ENTRY # LCRNAME[LCRWC[1]] = NPU$NAME;# PUT NPU NAME IN ENTRY # LCRWC[1] = LCRWC[1] + 1; # INCREMENT WORD COUNT # LCRRL[LCRWC[1]] = 0; # CLEAR RECORD LENGTH # LCRRANINDX[LCRWC[1]] = LRCRI[0]; # SET POINTER TO SECTOR # END IF NOT LAST$ENTRY # LAST ENTRY HAS NOT BEEN DETECTED YET # THEN BEGIN # INCREMENT RECORD LENGTH # LCRRL[LCRWC[1]] = LCRRL[LCRWC[1]] + LCWC[0] + 1; IF LCNI[0] EQ 0 # IF THIS IS NOT A -GROUP- DEFINITION # THEN BEGIN # INCREMENT ENTRY COUNT BY ONE # LCRENT[LCRWC[1] - 1] = LCRENT[LCRWC[1] - 1] + 1; END ELSE # THIS IS A -GROUP- DEFINITION # BEGIN # INCREMENT ENTRY COUNT BY -NI- VALUE # LCRENT[LCRWC[1] - 1] = LCRENT[LCRWC[1] - 1] + LCNI[0]; END WRITEW(LRFET,LIN$CON$REC,LCWC[0]+1); # WRITE ENTRY TO RECORD # END ELSE # LAST ENTRY WAS FOUND # BEGIN WRITER(LRFET,0); # FLUSH CIO BUFFER AND WRITE EOR TO FILE # RECALL(LRFET); END END RETURN; # **** RETURN **** # END # NDLWLCR # TERM