User Tools

Site Tools


cdc:nos2.source:nam5871:nvfufvo

NVFUFVO

Table Of Contents

  • [00003] PROC NVFUFVO(VCBORD)
  • [00004] NVFUFVO - FREES UP AN VCB ORDINAL.
  • [00008] FREES UP AN VCB ORDINAL.
  • [00036] PROC ABORT
  • [00037] PROC MESSAGE
  • [00038] PROC SSBSBW
  • [00039] PROC SSBTBW
  • [00040] FUNC XCDD C(10)

Source Code

NVFUFVO.txt
  1. *DECK NVFUFVO
  2. USETEXT TXVCBNV
  3. PROC NVFUFVO(VCBORD);
  4. # TITLE NVFUFVO - FREES UP AN VCB ORDINAL. #
  5.  
  6. BEGIN # NVFFVO #
  7. #
  8. ** NVFUFVO - FREES UP AN VCB ORDINAL.
  9. *
  10. * A. LIM 81/07/21
  11. * C. BRION 82/06/22
  12. *
  13. * THIS PROCEDURE FREES UP AN VCB ORDINAL.
  14. *
  15. * PROC NVFUFVO(VCBORD)
  16. *
  17. * ENTRY VCBORD = VCB ORDINAL TO BE FREED UP.
  18. *
  19. * EXIT VCB ORDINAL FREED
  20. *
  21. * NOTES NONE
  22. *
  23. * METHOD 1) VERIFY THAT VCB ORDINAL IS LEGAL
  24. * 2) VERIFY THAT VCB ORDINAL IS NOT IN PRESENT STATE.
  25. * IF EITHER ONE OF THE ABOVE FAILS, THEN
  26. * ISSUE DAYFILE MESSAGE, AND ABORT NVF. ELSE,
  27. * MARK IT FREE, AND DECREMENT THE ACTIVE-VCB-COUNT(AVCBCNT)
  28. *
  29. #
  30.  
  31. #
  32. **** PROC NVFUFVO XREF BEGIN.
  33. #
  34. XREF
  35. BEGIN
  36. PROC ABORT; # MACREL - ABORT TASK #
  37. PROC MESSAGE; # MACREL - ISSUE MESSAGE #
  38. PROC SSBSBW; # SS - SET BIT IN WORD #
  39. PROC SSBTBW; # SS - TEST BIT IN WORD #
  40. FUNC XCDD C(10); # MACREL-CNVRT INT TO DEC DSP CD#
  41. END
  42. #
  43. ****
  44. #
  45.  
  46. # FORMAL PARAMETERS #
  47.  
  48. ITEM VCBORD I; # VCB ORDINAL #
  49.  
  50.  
  51. # ACTUAL PARAMETERS #
  52.  
  53. ITEM WORD I;
  54. ITEM BITN I;
  55. ITEM STATS B;
  56.  
  57.  
  58. # INDUCTION VARIABLES #
  59.  
  60. ITEM I I; # DUMMY #
  61.  
  62.  
  63. # ITEMS #
  64.  
  65. ITEM TEMP C(10);
  66.  
  67.  
  68.  
  69.  
  70.  
  71. WORD = 0;
  72. BITN = VCBORD;
  73.  
  74. FOR I = 0 WHILE (BITN-48) GR 0 DO # CONVERT ORDNL TO WORD/BIT #
  75. BEGIN
  76. BITN = BITN-48;
  77. WORD = WORD+1;
  78. END
  79.  
  80.  
  81. #
  82. * 1) VERIFY THAT VCB ORDINAL IS LEGAL, AND
  83. * 2) CHECK PRESENT ORDINAL STATUS.
  84. #
  85.  
  86.  
  87. $BEGIN
  88. SSBTBW(VOT[WORD],BITN,STATS);
  89. IF WORD GR VTSIZE$
  90. OR (BITN - BITN/MAXENSEC$ * MAXENSEC$) EQ 0
  91. OR (BITN - BITN/MAXENSEC$ * MAXENSEC$) GR ACTENSEC$
  92. OR STATS
  93. THEN
  94. BEGIN
  95. TEMP = XCDD(VCBORD);
  96. V$MSG[0] = "ILLEGAL VCB ORDINAL = ";
  97. V$ORD[0] = C<7,3>TEMP;
  98. V$PID[0] = "NVFUFVO";
  99. MESSAGE(VCBMSG[0],DFILE$);
  100. ABORT;
  101. END
  102. $END
  103.  
  104. SSBSBW(VOT[WORD],BITN); # MARK ORDINAL AS FREE #
  105. AVCBCNT = AVCBCNT-1; # DECR ACTIVE VCB COUNT #
  106.  
  107. RETURN;
  108. END # NVFUFVO #
  109.  
  110. TERM
cdc/nos2.source/nam5871/nvfufvo.txt ยท Last modified: 2023/08/05 17:23 by Site Administrator