cdc:nos2.source:opl871:ssovl
Table of Contents
SSOVL
Table Of Contents
- [00014] LOAD *SSEXEC* OVERLAYS.
- [00122] REPLACE CURRENT OVERLAY.
Source Code
- SSOVL.txt
- COPYRT
- COMMON
- SSOVL
- IDENT SSOVL
- ENTRY SSOVL
- ENTRY SSOVL
- SYSCOM B1
- SSOVL TITLE SSOVL - LOAD *SSEXEC* OVERLAYS.
- *COMMENT LOAD *SSEXEC* OVERLAYS.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- *CALL COMCMAC
- SPACE 4,30
- *** SSOVL - LOAD *SSEXEC* OVERLAYS.
- *
- * SSOVL(OVLLEV,XFRADR); ( *SYMPL* CALL )
- *
- * ENTRY (OVLLEV) = OVERLAY LEVEL. THE FORMAT IS -
- * 48/ 0, 6/ PRIMARY LEVEL, 6/ SECONDARY
- * LEVEL.
- *
- * (XFRADR) = TRANSFER ADDRESS, ENTRY TO OVERLAY.
- * IF 0, ENTER OVERLAY AT ENTRY POINT ADDRESS.
- * ELSE, ENTER OVERLAY AT SPECIFIED ABSOLUTE
- * ADDRESS.
- *
- * EXIT THE RETURN ADDRESS IS PLACED IN THE OVERLAY.
- * CONTROL TRANSFERS TO THE OVERLAY.
- *
- * USES A - 1, 2, 5, 6.
- * B - 1, 6, 7.
- * X - 0, 1, 2, 5, 6, 7.
- *
- * CALLS FOL.LOV.
- *
- * NOTES IT IS ASSUMED THAT THE ENTRY POINT ADDRESS OF EACH
- * OVERLAY CONTAINS (IN BITS 47-30) THE ADDRESS OF THE
- * ROUTINE TO BE EXECUTED. THIS MODIFICATION IN OVERLAY
- * DESIGN IS DONE TO HANDLE *SYMPL* PROCEDURES.
- *
- * DAYFILE MESSAGE * OVERLAY NOT FOUND.*
- SSOVL SUBR ENTRY/EXIT
- SSOVL0 BSS 0 ENTRY FROM *RCOVL*
- SB1 1
- SX6 A1 PARAMETER LIST ADDRESS
- SA2 A1+B1
- SA3 X2 GET *XFRADR* PARAMETER
- BX7 X3
- SA7 XFRADR SAVE TRANSFER ADDRESS
- SA6 OVLPARAM
- * DETERMINE IF REQUESTED OVERLAY IS PRIMARY OR SECONDARY.
- * IF IT IS ALREADY LOADED, SKIP THE LOAD.
- SA1 X1 LEVEL OF REQUESTED OVERLAY
- MX7 -6
- BX0 -X7*X1 EXTRACT SECONDARY LEVEL NUMBER
- ZR X0,OVL.1 IF PRIMARY OVERLAY REQUESTED
- SX0 B1
- OVL.1 BSS 0
- SA5 X0+OVLLEV LEVEL OF CURRENT OVERLAY
- SA2 X0+OVLEPTA
- SB7 X2 CURRENT OVERLAY ENTRY POINT ADDRESS
- BX6 X1-X5
- ZR X6,OVL1 IF OVERLAY IS ALREADY IN FL
- BX6 X1
- SA6 A5 SAVE OVERLAY LEVEL
- NZ X0,OVL.2 IF SECONDARY LOAD
- MX6 0
- SA6 OVLLEV+1 CLEAR SECONDARY LEVEL NUMBER
- OVL.2 BSS 0
- * LOAD THE OVERLAY.
- RJ =XFOL.LOV CALL OVERLAY LOADER
- NG B7,OVL3 IF OVERLAY NOT FOUND
- SA2 OVLC INCREMENT OVERLAY COUNTER
- SX6 X2+B1
- SA6 A2
- SX6 B7 ENTRY POINT ADDRESS
- SA6 X0+OVLEPTA SAVE ENTRY POINT ADDRESS
- * SET UP RETURN ADDRESS AND ENTER THE OVERLAY.
- OVL1 BSS 0
- SA2 SSOVL GET RETURN ADDRESS
- BX6 X2
- SA5 B7 GET ADDRESS TO PROCEDURE
- LX5 30
- SB7 X5 ENTRY POINT ADDRESS TO PROCEDURE
- SA6 B7 PLACE RETURN ADDRESS
- SB7 B7+B1 ADVANCE TO TRANSFER ADDRESS
- SA1 OVLPARAM PARAMETER LIST ADDRESS
- SA2 XFRADR
- ZR X2,OVL2 IF TRANSFER TO ENTRY POINT
- SB7 X2 TRANSFER ADDRESS
- OVL2 SA1 X1+2 ADVANCE PARAMETER POINTER
- JP B7 SIMULATED CALL TO PROGRAM
- OVL3 MESSAGE MADDR ISSUE ERROR MESSAGE
- ABORT ABORT
- *CALL COMXOVL
- MADDR DATA 40C OVERLAY NOT FOUND.
- XFRADR BSSZ 1 SAVED TRANSFER ADDRESS
- OVLEPTA BSSZ 2 ENTRY POINT ADDRESS OF CURRENT OVERLAY
- OVLLEV BSSZ 2 LEVEL NUMBER OF CURRENT OVERLAY
- OVLPARAM BSSZ 1 ADDRESS TO CALLER PARAMETER LIST
- RSOVL TITLE RSOVL - REPLACE CURRENT OVERLAY.
- ** RSOVL - REPLACE CURRENT OVERLAY.
- *
- * RSOVL(OVLLEV,XFRADR); ( *SYMPL* CALL )
- *
- * ENTRY (OVLLEV) = OVERLAY LEVEL. THE FORMAT IS -
- * 48/ 0, 6/ PRIMARY LEVEL, 6/ SECONDARY
- * LEVEL.
- *
- * (XFRADR) = TRANSFER ADDRESS, ENTRY TO OVERLAY.
- * IF 0, ENTER OVERLAY AT ENTRY POINT ADDRESS.
- * ELSE, ENTER OVERLAY AT SPECIFIED ABSOLUTE
- * ADDRESS.
- * *SSOVL* MUST HAVE BEEN CALLED PREVIOUSLY TO LOAD
- * THE PRIMARY OVERLAY.
- *
- * EXIT (A1) = *FWA* OF PARAMETER LIST.
- *
- * CALLS SSOVL
- *
- * NOTES *RSOVL* CAN BE CALLED ONLY TO GO FROM ONE SECONDARY
- * OVERLAY TO ANOTHER SECONDARY OVERLAY. THE CURRENT
- * SECONDARY OVERLAY IS REPLACED BY THE REQUESTED
- * SECONDARY OVERLAY. *RSOVL* CANNOT BE USED TO GO
- * FROM ONE PRIMARY OVERLAY TO ANOTHER PRIMARY OVERLAY.
- RSOVL SUBR ENTRY/EXIT
- EQ SSOVL0 ALTERNATE ENTRY TO *SSOVL*
- END
cdc/nos2.source/opl871/ssovl.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator