Table of Contents

SSOVL

Table Of Contents

  • [00014] LOAD *SSEXEC* OVERLAYS.
  • [00122] REPLACE CURRENT OVERLAY.

Source Code

SSOVL.txt
  1. COPYRT
  2. COMMON
  3. SSOVL
  4. IDENT SSOVL
  5. ENTRY SSOVL
  6. ENTRY SSOVL
  7. SYSCOM B1
  8. SSOVL TITLE SSOVL - LOAD *SSEXEC* OVERLAYS.
  9. *COMMENT LOAD *SSEXEC* OVERLAYS.
  10. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  11.  
  12. *CALL COMCMAC
  13. SPACE 4,30
  14. *** SSOVL - LOAD *SSEXEC* OVERLAYS.
  15. *
  16. * SSOVL(OVLLEV,XFRADR); ( *SYMPL* CALL )
  17. *
  18. * ENTRY (OVLLEV) = OVERLAY LEVEL. THE FORMAT IS -
  19. * 48/ 0, 6/ PRIMARY LEVEL, 6/ SECONDARY
  20. * LEVEL.
  21. *
  22. * (XFRADR) = TRANSFER ADDRESS, ENTRY TO OVERLAY.
  23. * IF 0, ENTER OVERLAY AT ENTRY POINT ADDRESS.
  24. * ELSE, ENTER OVERLAY AT SPECIFIED ABSOLUTE
  25. * ADDRESS.
  26. *
  27. * EXIT THE RETURN ADDRESS IS PLACED IN THE OVERLAY.
  28. * CONTROL TRANSFERS TO THE OVERLAY.
  29. *
  30. * USES A - 1, 2, 5, 6.
  31. * B - 1, 6, 7.
  32. * X - 0, 1, 2, 5, 6, 7.
  33. *
  34. * CALLS FOL.LOV.
  35. *
  36. * NOTES IT IS ASSUMED THAT THE ENTRY POINT ADDRESS OF EACH
  37. * OVERLAY CONTAINS (IN BITS 47-30) THE ADDRESS OF THE
  38. * ROUTINE TO BE EXECUTED. THIS MODIFICATION IN OVERLAY
  39. * DESIGN IS DONE TO HANDLE *SYMPL* PROCEDURES.
  40. *
  41. * DAYFILE MESSAGE * OVERLAY NOT FOUND.*
  42.  
  43.  
  44. SSOVL SUBR ENTRY/EXIT
  45.  
  46. SSOVL0 BSS 0 ENTRY FROM *RCOVL*
  47. SB1 1
  48. SX6 A1 PARAMETER LIST ADDRESS
  49. SA2 A1+B1
  50. SA3 X2 GET *XFRADR* PARAMETER
  51. BX7 X3
  52. SA7 XFRADR SAVE TRANSFER ADDRESS
  53. SA6 OVLPARAM
  54.  
  55. * DETERMINE IF REQUESTED OVERLAY IS PRIMARY OR SECONDARY.
  56. * IF IT IS ALREADY LOADED, SKIP THE LOAD.
  57.  
  58. SA1 X1 LEVEL OF REQUESTED OVERLAY
  59. MX7 -6
  60. BX0 -X7*X1 EXTRACT SECONDARY LEVEL NUMBER
  61. ZR X0,OVL.1 IF PRIMARY OVERLAY REQUESTED
  62. SX0 B1
  63. OVL.1 BSS 0
  64. SA5 X0+OVLLEV LEVEL OF CURRENT OVERLAY
  65. SA2 X0+OVLEPTA
  66. SB7 X2 CURRENT OVERLAY ENTRY POINT ADDRESS
  67. BX6 X1-X5
  68. ZR X6,OVL1 IF OVERLAY IS ALREADY IN FL
  69.  
  70. BX6 X1
  71. SA6 A5 SAVE OVERLAY LEVEL
  72. NZ X0,OVL.2 IF SECONDARY LOAD
  73. MX6 0
  74. SA6 OVLLEV+1 CLEAR SECONDARY LEVEL NUMBER
  75. OVL.2 BSS 0
  76.  
  77. * LOAD THE OVERLAY.
  78.  
  79. RJ =XFOL.LOV CALL OVERLAY LOADER
  80. NG B7,OVL3 IF OVERLAY NOT FOUND
  81. SA2 OVLC INCREMENT OVERLAY COUNTER
  82. SX6 X2+B1
  83. SA6 A2
  84. SX6 B7 ENTRY POINT ADDRESS
  85. SA6 X0+OVLEPTA SAVE ENTRY POINT ADDRESS
  86.  
  87. * SET UP RETURN ADDRESS AND ENTER THE OVERLAY.
  88.  
  89. OVL1 BSS 0
  90. SA2 SSOVL GET RETURN ADDRESS
  91. BX6 X2
  92. SA5 B7 GET ADDRESS TO PROCEDURE
  93. LX5 30
  94. SB7 X5 ENTRY POINT ADDRESS TO PROCEDURE
  95. SA6 B7 PLACE RETURN ADDRESS
  96. SB7 B7+B1 ADVANCE TO TRANSFER ADDRESS
  97. SA1 OVLPARAM PARAMETER LIST ADDRESS
  98. SA2 XFRADR
  99. ZR X2,OVL2 IF TRANSFER TO ENTRY POINT
  100.  
  101.  
  102. SB7 X2 TRANSFER ADDRESS
  103.  
  104. OVL2 SA1 X1+2 ADVANCE PARAMETER POINTER
  105.  
  106. JP B7 SIMULATED CALL TO PROGRAM
  107.  
  108.  
  109. OVL3 MESSAGE MADDR ISSUE ERROR MESSAGE
  110. ABORT ABORT
  111. *CALL COMXOVL
  112.  
  113. MADDR DATA 40C OVERLAY NOT FOUND.
  114. XFRADR BSSZ 1 SAVED TRANSFER ADDRESS
  115. OVLEPTA BSSZ 2 ENTRY POINT ADDRESS OF CURRENT OVERLAY
  116. OVLLEV BSSZ 2 LEVEL NUMBER OF CURRENT OVERLAY
  117. OVLPARAM BSSZ 1 ADDRESS TO CALLER PARAMETER LIST
  118.  
  119.  
  120. RSOVL TITLE RSOVL - REPLACE CURRENT OVERLAY.
  121.  
  122. ** RSOVL - REPLACE CURRENT OVERLAY.
  123. *
  124. * RSOVL(OVLLEV,XFRADR); ( *SYMPL* CALL )
  125. *
  126. * ENTRY (OVLLEV) = OVERLAY LEVEL. THE FORMAT IS -
  127. * 48/ 0, 6/ PRIMARY LEVEL, 6/ SECONDARY
  128. * LEVEL.
  129. *
  130. * (XFRADR) = TRANSFER ADDRESS, ENTRY TO OVERLAY.
  131. * IF 0, ENTER OVERLAY AT ENTRY POINT ADDRESS.
  132. * ELSE, ENTER OVERLAY AT SPECIFIED ABSOLUTE
  133. * ADDRESS.
  134. * *SSOVL* MUST HAVE BEEN CALLED PREVIOUSLY TO LOAD
  135. * THE PRIMARY OVERLAY.
  136. *
  137. * EXIT (A1) = *FWA* OF PARAMETER LIST.
  138. *
  139. * CALLS SSOVL
  140. *
  141. * NOTES *RSOVL* CAN BE CALLED ONLY TO GO FROM ONE SECONDARY
  142. * OVERLAY TO ANOTHER SECONDARY OVERLAY. THE CURRENT
  143. * SECONDARY OVERLAY IS REPLACED BY THE REQUESTED
  144. * SECONDARY OVERLAY. *RSOVL* CANNOT BE USED TO GO
  145. * FROM ONE PRIMARY OVERLAY TO ANOTHER PRIMARY OVERLAY.
  146.  
  147.  
  148. RSOVL SUBR ENTRY/EXIT
  149. EQ SSOVL0 ALTERNATE ENTRY TO *SSOVL*
  150.  
  151. END