User Tools

Site Tools


cdc:nos2.source:nam5871:oscpsi

OSCPSI

Table Of Contents

  • [00011] PRGM OSCPSI
  • [00064] PROC OSWAPIN
  • [00065] PROC XTRACE

Source Code

OSCPSI.txt
  1. *DECK OSCPSI
  2. USETEXT NIPDEF
  3. USETEXT APPSTAT
  4. USETEXT DRHDR
  5. USETEXT FLIST
  6. USETEXT NWLHEAD
  7. USETEXT NWLNTRY
  8. USETEXT PARAMS
  9. USETEXT SCPCOM
  10. USETEXT SWAPIN
  11. PRGM OSCPSI; # SWAP IN APPLICATION WHICH HAS NO PCB #
  12.  
  13. STARTIMS;
  14. #
  15. *1DC OSCPSI
  16. *
  17. * 1. PROC NAME AUTHOR DATE
  18. * OSCPSI P.C.TAM 80/02/07
  19. *
  20. * 2. FUNCTIONAL DESCRIPTION.
  21. * SWAPIN (NO-ACB) APPLICATION
  22. *
  23. * 3. METHOD USED.
  24. * CREATE (NO-ACB) SWAPIN ENTRY
  25. * CREATE SCP FUNCTION LIST TO SWAP IN APPLICATION
  26. * ISSUE SCP FUNCTION
  27. * LINK SWAPIN ENTRY TO (NO-ACB) SWAPIN RING
  28. *
  29. * 4. ENTRY PARAMETERS.
  30. * PARAMS1 ADDR OF ORIGINAL SCP FUNCTION LIST
  31. * PARAMS2 ADDR OF BUF TO HOLD (NO-ACB) SWAPIN ENTRY
  32. * PARAMS3 ADDR OF DATA, IF ANY, TO WRITE TO APP FL
  33. *
  34. * 5. EXIT PARAMETERS.
  35. * NONE
  36. *
  37. * 6. COMDECKS CALLED AND SYMPL TEXTS USED.
  38. * APPSTAT FLIST NIPDEF
  39. * OSSIZE PARAMS
  40. * SCPCOM SWAPIN
  41. *
  42. * 7. ROUTINES AND OVERLAYS CALLED.
  43. * OSWAPIN SWAP IN APPLICATION
  44. * XTRACE RECORD PROCEDURE CALLS
  45. *
  46. * 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION.
  47. *
  48. * THIS PROGRAM IS A SECONDARY OVERLAY LOADED BY SUBROUTINE
  49. * OVLCALL. WHEN EXECUTION HAS COMPLETED, A JUMP IS MADE TO
  50. * LOCATION RJMAIN TO RETURN TO THE CALLING PROGRAM.
  51. *
  52. * W A R N I N G - THIS PROGRAM CANNOT EXCEED THE SECONDARY
  53. *CALL OSSIZE
  54. *
  55. * THIS OVERLAY IS CALLED BY HPNOFF, HPNON, HPNONSA, AND XABTAPP.
  56. *
  57.  #
  58. STOPIMS;
  59. #
  60.   EXTERNAL VARIABLES
  61. #
  62. XREF
  63. BEGIN
  64. PROC OSWAPIN; # ISSUE SF.SWPI SCP CALL #
  65. PROC XTRACE; # RECORD CALL #
  66. LABEL RJMAIN; # RETURN ADDRESS IN OVLCALL #
  67. END
  68. #
  69.   LOCAL VARIABLES
  70. #
  71. ITEM SWAPADR; # ADDR OF BUFFER FOR SF.SWPI ENTRY #
  72.  
  73. #**********************************************************************#
  74.  
  75. BEGIN
  76.  
  77. CONTROL IFEQ DEBUG,1;
  78. XTRACE("OSCPS") ;
  79. CONTROL FI;
  80.  
  81. SWAPADR = PARAMS2; # ADDR OF BUFFER FOR SF.SWPI ENTRY #
  82. #
  83.   CREATE (NO ACB) SWAPIN CHAIN ENTRY
  84. #
  85. P<SCPCALL> = PARAMS1; # ADDR OF ORIGINAL SCP FUNCTION LIST #
  86. P<SWPIE> = SWAPADR;
  87. SWPIWD0[0] = 0;
  88. SWPIID[0] = SWPEIDVALUE; # (NO ACB) SWAPIN ENTRY ID VALUE #
  89. SWPIBS[0] = SWPISIZE; # (NO ACB) SWAPIN ENTRY SIZE #
  90. SWPIFW[0] = 0;
  91. SWPIJOBID[0] = SCPJOBID[0]; # APP JOB ID WORD #
  92. SWPIWR[0] = PARAMS3; # ADDR OF DATA, IF ANY, TO WRITE TO APP FL#
  93. SWPIFL[0] = PARAMS1; # ADDR OF ORIGINAL SCP FUNCTION LIST #
  94. #
  95.   ISSUE SYSTEM CONTROL POINT FUNCTION TO SWAP IN APPLICATION
  96. #
  97. P<FLE> = LOC(SWPIFW[0]);
  98. OSWAPIN(FLE); # SWAP IN APPLICATION #
  99. #
  100.   INSERT NEW SWAPIN ENTRY IN (NO ACB) SWAPIN CHAIN
  101. #
  102. IF SWAPINFP EQ 0
  103. THEN # (NO PCB) SWAPIN CHAIN IS EMPTY #
  104. BEGIN
  105. SWPINFP[0] = LOC(SWAPINFP); # SET SWAPIN ENTRY FORWARD PTR #
  106. SWPINBP[0] = LOC(SWAPINBP); # SET SWAPIN ENTRY BACKWARD PTR #
  107. SWAPINFP = SWAPADR; # UPDATE BEGINNING-OF-CHAIN PTR #
  108. SWAPINBP = SWAPADR; # UPDATE END-OF-CHAIN PTR #
  109. END
  110. ELSE # ADD NEW ENTRY TO END OF CHAIN #
  111. BEGIN
  112. SWPINFP[0] = LOC(SWAPINFP); # UPDATE SWAPIN ENTRY FORWARD PTR #
  113. SWPINBP[0] = SWAPINBP; # BACK PTR PTS TO PREVIOUS LAST ENTRY #
  114. P<SWPIE> = SWAPINBP;
  115. SWPINFP[0] = SWAPADR; # UPDATE FORWARD PTR OF PREV LAST ENTRY #
  116. SWAPINBP = SWAPADR; # UPDATE END-OF-CHAIN PTR #
  117. END
  118. GOTO RJMAIN; # RETURN TO CALLING PROGRAM #
  119. END
  120. TERM
cdc/nos2.source/nam5871/oscpsi.txt ยท Last modified: 2023/08/05 17:23 by Site Administrator