User Tools

Site Tools


cdc:nos2.source:nam5871:hpfl

Table of Contents

HPFL

Table Of Contents

  • [00009] PRGM HPFL
  • [00064] PROC HWLP
  • [00065] PROC MRELS
  • [00066] PROC OSCCALL
  • [00067] PROC OSCHAPP
  • [00068] PROC XTRACE

Source Code

HPFL.txt
  1. *DECK HPFL
  2. USETEXT NIPDEF
  3. USETEXT ACB
  4. USETEXT APPSTAT
  5. USETEXT AT
  6. USETEXT DRHDR
  7. USETEXT FLIST
  8. USETEXT PT
  9. PRGM HPFL;
  10.  
  11. STARTIMS;
  12. STOPIMS;
  13. #
  14. *1DC HPFL
  15. *
  16. * 1. PROC NAME AUTHOR DATE
  17. * HPFL E. GEE 78/01/25
  18. *
  19. * 2. FUNCTIONAL DESCRIPTION.
  20. * REISSUE ACB SCP FUNCTION LIST
  21. *
  22. * 3. METHOD USED.
  23. * CLEAR COMPLETION BITS AND RETURN CODES FROM SCP FUNCTION.
  24. * LIST
  25. * REISSUE SCP FUNCTION
  26. * PROCESS SCP FUNCTION RETURN CODE
  27. *
  28. * 4. ENTRY PARAMETERS.
  29. * ACBADDR ACB ADDRESS
  30. *
  31. * 5. EXIT PARAMETERS.
  32. * ABTADDR BUF ADR FOR XABTAPP TO USE IF ABORTING APP
  33. * ABTAPPF ABORT FLG SET IF NIP GOT SCP RC = RCUCPAOOR
  34. * FAILADR FAIL FLG SET IF NIP GET SCP RC = RCUCPGONE
  35. *
  36. * 6. COMDECKS CALLED AND SYMPL TEXTS USED.
  37. * ACB APPSTAT AT FLIST
  38. * NIPDEF OPSIZE PT
  39. *
  40. * 7. ROUTINES AND OVERLAYS CALLED.
  41. * HWLP PROCESS WORKLIST
  42. * MRELS RELEASE BUFFER SPACE
  43. * OSCCALL ISSUE SCP FUNCTION
  44. * OSCHAPP SCHEDULE APPLICATION
  45. * XTRACE RECORD PROCEDURE CALLS
  46. *
  47. * 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION.
  48. *
  49. * THIS PROGRAM IS A PRIMARY OVERLAY LOADED BY SUBOURTINE OVLCALL.
  50. * WHEN EXECUTION HAS COMPLETED, A JUMP IS MADE TO LOCATION RJMAIN
  51. * TO RETURN TO THE CALLING PROGRAM.
  52. *
  53. * W A R N I N G - THIS PROGRAM CANNOT EXCEED THE PRIMARY
  54. *CALL OPSIZE
  55. *
  56. * THIS OVERLAY IS CALLED BY XSACB.
  57. *
  58.  #
  59. #
  60.   EXTERNAL VARIABLES
  61. #
  62. XREF
  63. BEGIN
  64. PROC HWLP; # PROCESS NWL WORKLIST ENTRIES #
  65. PROC MRELS; # RELEASE BUFFER SPACE #
  66. PROC OSCCALL; # ISSUE SCP CALLS #
  67. PROC OSCHAPP; # SCHEDULE APPLICATION #
  68. PROC XTRACE; # RECORD PROCEDURE CALLS #
  69. LABEL RJMAIN; # RETURN ADDRESS IN OVCALL #
  70. END
  71. #
  72.   INTERNAL VARIABLES
  73. #
  74. ITEM EXTRAWORD; # EXTRA ONE WORD FOR SFXLST FUNCTION LIST #
  75. ITEM FLW; # INDEX FOR ZEROING RC AND CB IN FUNC LIST#
  76. ITEM RELADDR; # ADDR OF BUFFER TO RELEASE #
  77.  
  78. #**********************************************************************#
  79.  
  80. BEGIN
  81.  
  82. CONTROL IFEQ DEBUG,1;
  83. XTRACE("HPFL ") ;
  84. CONTROL FI;
  85.  
  86. P<ACB> = ACBADDR; # ACB ADDRESS #
  87. P<FLHEAD> = ACBFLIST[0]; # FUNCTION LIST ADDRESS #
  88. FLCB[0] = 0;
  89. FLRC[0] = 0;
  90. IF FLFC[0] EQ SFLIST
  91. OR FLFC[0] EQ SFXLST
  92. THEN # SF.LIST SCP REQUEST #
  93. BEGIN # CLEAR ALL COMPLETE BITS/RC ON LIST ENTRIES #
  94. IF FLFC[0] EQ SFXLST
  95. THEN # EXTENDED READ/WRITE LIST REQUEST #
  96. EXTRAWORD = 1; # A 4-WORD FLHEAD/2 WORD ENTRY #
  97. ELSE # NORMAL READ/WRITE LIST REQUEST #
  98. EXTRAWORD = 0; # A 3-WORD FLHEAD/1-WORD ENTRY #
  99. FOR FLW=FLSIZE + EXTRAWORD STEP (FLESIZE + EXTRAWORD)
  100. UNTIL (FLBS[0] - BLKHSIZE)
  101. DO # LOOP THROUGH ALL LIST ENTRIES #
  102. BEGIN
  103. P<FLE> = ACBFLIST[0] + FLW;
  104. FLERC[0] = 0;
  105. FLECB[0] = 0;
  106. END
  107. END
  108. #
  109.   REISSUE SCP FUNCTION
  110. #
  111. P<FLE> = ACBFLIST[0] + FLHSIZE; # SCP CALL WORD #
  112. OSCCALL(FLE); #ISSUE SCP CALL #
  113. #
  114.   PROCESS SCP FUNCTION RETURN CODE
  115. #
  116. IF FLRC[0] EQ 0
  117. THEN # SCP FUNCTION COMPLETED OK #
  118. BEGIN
  119. IF ACBWRADDR[0] NQ 0
  120. THEN # WRITE BUF IN NIP TO RELEASE #
  121. BEGIN
  122. IF ACBWRADDR[0] LS ACBADDR # CHECK IF WRADDR OUT OF ACB AREA #
  123. OR ACBWRADDR[0] GQ ACBADDR + ACBSIZE
  124. THEN
  125. BEGIN
  126. MRELS(ACBWRADDR[0]); # WRITE BUF IN NIP TO RELEASE #
  127. END
  128. ACBWRADDR[0] = 0; # CLEAR ACBWRADDR POINTER ADDRESS #
  129. END
  130. MRELS(ACBFLIST[0]); # RELEASE FUNCTION LIST BUFFER #
  131. ACBFLIST[0] = 0;
  132. HWLP; # PROCESS REST OF NWL #
  133. END
  134. ELSE
  135. BEGIN
  136. IF FLRC[0] EQ RCSWAPPEDOUT
  137. THEN # APP IS SWAPPED OUT AGAIN #
  138. BEGIN
  139. ATASBS[ACBAN[0]] = TRUE; # APP-AWAPPED-OUT FLAG IN ACB #
  140. OSCHAPP(ACBADDR); # SCHEDULE APPLICATION #
  141. END
  142. ELSE
  143. BEGIN
  144. IF FLRC[0] EQ RCUCPAOOR
  145. THEN # APP GAVE BAD AWL ADDR SO ABORT IT #
  146. BEGIN
  147. ABTAPPF = XFLERR; # SET ABORT-APPLICATION FLAG #
  148. ABTADDR = ACBADDR; # ACB ADDRESS #
  149. END
  150. ELSE # APP IS NO LONGER IN SYSTEM #
  151. FAILADR = ACBADDR; # SET APPLICATION-FAILED FLAG #
  152. END
  153. END
  154. GOTO RJMAIN; # RETURN TO CALLING PROGRAM #
  155. END
  156. TERM
cdc/nos2.source/nam5871/hpfl.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator