*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