*DECK NVFURDS USETEXT TXVCBNV PROC NVFURDS(VCBORD,STATS); # TITLE NVFURDS - RETURNS VCB DATA STATUS(VALID/INVALID). # BEGIN # NVFURDS # # ** NVFURDS - RETURNS VCB DATA STATUS(VALID/INVALID). * * A. LIM 81/07/21 * C. BRION 82/06/22 * * THIS PROCEDURE RETURNS THE STATUS(VALID/INVALID) OF * VCB DATA IN VCB-VALID-DATA-INDICATOR-TABLE(VDT). * * PROC NVFURDS(VCBORD,STATS) * * ENTRY VCBORD = VCB ORDINAL * * EXIT STATS = STATUS OF THE ORDINAL * 1 = INVALID, AND 0 = VALID. * * NOTES NONE. * * METHOD 1) VERIFY IF VCB ORDINAL IS LEGAL. * IF NOT, ISSUE DAYFILE MESSAGE AND ABORT NVF. * ELSE, RETURN THE STATUS OF THE ORDINAL. * # # **** PROC NVFURDS XREF LIST BEGIN. # XREF BEGIN PROC ABORT; # MACREL - ABORT TASK # PROC MESSAGE; # MACREL - ISSUE MESSAGE # PROC SSBTBW; # SS - TEST BIT IN WORD # FUNC XCDD C(10); # MACREL-CNVRT INT TO DEC DSP CD# END # **** # # FORMAL PARAMETERS # ITEM VCBORD I; # ACTUAL PARAMETERS # ITEM WORD I; ITEM BITN I; ITEM STATS B; # INDUCTION VARIABLES # ITEM I I; # DUMMY # # ITEMS # ITEM TEMP C(10); WORD = 0; BITN = VCBORD; FOR I = 0 WHILE (BITN-48) GR 0 # CONVERT ORDNL TO WORD/BIT # DO BEGIN BITN = BITN-48; WORD = WORD+1; END #VERIFY VCB ORDINAL # $BEGIN IF WORD GR VTSIZE$ OR (BITN - BITN/MAXENSEC$ * MAXENSEC$) EQ 0 OR (BITN - BITN/MAXENSEC$ * MAXENSEC$) GR ACTENSEC$ THEN BEGIN TEMP = XCDD(VCBORD); V$MSG[0] = "ILLEGAL VCB ORDINAL = "; V$ORD[0] = C<7,3>TEMP; V$PID[0] = "NVFURDS"; MESSAGE(VCBMSG[0],DFILE$); ABORT; END $END SSBTBW(VDT[WORD],BITN,STATS); # GET VCB DATA STATUS # RETURN; END # NVFURDS # TERM