*DECK NS$HNO
USETEXT NPT$NS
USETEXT HOC$NS
PROC NS$HNO(REASON); # CANCEL ALTERNATE LOAD FILE COMMAND #
# TITLE NS$NHO - CANCEL ALTERNATE LOAD FILE COMMAND. #
BEGIN # NS$NHO #
#
** NS$HNO - CANCEL ALTERNATE LOAD FILE COMMAND.
*
* J.C. LEE 1981
*
* THIS ROUTINE PROCESS THE CANCEL ALTERNATE LOAD FILE COMMAND.
*
* PROC NS$HNO(REASON)
*
* ENTRY:
* NONE.
*
* EXIT:
* REASON = COMMAND ERROR REASON CODE.
*
* METHOD:
* SCAN THROUGH THE NPU TABLE, FIND THE NPU.
* IF NPU IDLE, RETURN THE FILE, RELEASE DIRECTORY TSB.
* IF NPU ACTIVE, EXIT WITH REASON SET.
*
#
ITEM REASON U; # COMMAND ERROR REASON CODE #
$BEGIN
XREF
BEGIN
PROC NS$DBG; # TRACE CALL #
END
$END
XREF
BEGIN
FUNC NS$XZFN C(10); # ZERO-FILLED FILE NAME #
PROC RETERN; # RETURN FILE #
PROC RETTSB; # RELEASE TSB #
END
ITEM I U; # LOOP VARIABLE #
ITEM NPTCOUNT U; # NPT ENTRY COUNT #
ARRAY ALF$FET [0:0] S(5);
BEGIN # ALTERNATE LOAD FILE FET #
ITEM FET$LFN C(00,00,07); # LOGICAL FILE NAME #
ITEM FET$FM B(00,58,01) = [TRUE]; # BINARY FILE MODE #
ITEM FET$COMP B(00,59,01) = [TRUE]; # COMPLETION BIT #
ITEM FET$RAN B(01,12,01) = [TRUE]; # RANDOM FILE #
ITEM FET$FIRST U(01,42,18) = [0];
ITEM FET$IN U(02,42,18) = [0];
ITEM FET$OUT U(03,42,18) = [0];
ITEM FET$LIMIT U(04,42,18) = [0];
END
CONTROL EJECT;
$BEGIN
NS$DBG("HNO"); # TRACE CALL #
$END
REASON = 0;
NPTCOUNT = NPT$EC[0]; # NPU TABLE ENTRY COUNT #
FOR I = 1 STEP 1 UNTIL NPTCOUNT
DO # SCAN NPU TABLE FOR ENTRY USING ALT LOAD FILE #
BEGIN
IF NPT$ALFWD[I] NQ 0
THEN # ALTERNATE NLF IN USE BY THIS NPU #
BEGIN
IF NPT$NATTSB[I] EQ 0
THEN # NPU IS IDLE #
BEGIN
FET$LFN[0] = NS$XZFN(NPT$ALFPFN[I]); # SET LFN #
RETERN(ALF$FET); # RETURN FILE #
RETTSB(NPT$DIRTSB[I]); # RELEASE DIRECTORY TSB #
NPT$ALFWD[I] = 0;
END
ELSE # NPU IS ACTIVE, LOAD FILE MAY BE IN USE #
REASON = HOPCMDERR"NPUACTIVE"; # CANNOT ACTION COMMAND #
END
END # END FOR LOOP I #
RETURN;
END # NS$HNO #
TERM