cdc:nos2.source:nam5871:ndlovld
Table of Contents
NDLOVLD
Table Of Contents
- [00005] OVERLAY LOADER
Source Code
- NDLOVLD.txt
- *DECK NDLOVLD
- IDENT NDLOVLD
- ENTRY NDLOVLD
- COMMENT OVERLAY LOADER
- TITLE OVERLAY LOADER
- *#
- *1D OVERLAY LOADER
- * D NDLOVLD
- *
- * 1. PROC NAME AUTHOR DATE
- * NDLOVLD J.E.JONES 78/07/07
- * A.T.GERMOND 79/07/03
- * D.K.ENDO 81/07/29
- *
- * 2. FUNCTIONAL DESCRIPTION
- * LOADS OVERLAYS.
- *
- * 3. METHOD
- *
- * DETERMINE IF PRIMARY OR SECONDARY OVERLAY IS REQUESTED. IF
- * THE OVERLAY HAS ALREADY BEEN LOADED JUST SET UP THE RJ AND
- * JUMP TO IT. OTHERWISE, LOAD IT. OVERLAY LOAD ERRORS CAUSE
- * PROC TO ABORT. CLEAR THE SECONDARY DATA WORDS TO ZERO
- * WHEN LOADING A NEW PRIMARY. ALSO SAVE THE PRIMARY RETURN
- * ADDRESS TO PRESERVE IT IF SECONDARIES ARE LATER LOADED.
- * UPON RETURN FROM THE OVERLAY, FOR PRIMARIES, RESTORE THE
- * RETURN ADDRESS IN CASE IT HAS BEEN CLOBBERED BY SECONDARY
- * OVERLAY LOADS. FOR SECONDARIES, RESTORE THE PRIMARY NAME
- * IN CUROVL. RETURN.
- *
- * 4. ENTRY PARAMETERS
- * OVL PARAM = 42/OVL NAME,6/0,6/PRI,6/SEC
- *
- * 5. EXIT PARAMETERS
- * CUROVL CURRENT OVERLAY SET IN EXTERNAL REF AREA
- *
- * 6. COMDECKS CALLED
- * NONE.
- *
- * 7. CALLED BY
- *
- * 8. ROUTINES CALLED
- * FOL.LOV LOADER
- * MESSAGE ISSUE DAYFILE MESSAGE
- *
- * 9. DAYFILE AND ERROR MESSAGES
- * XXXXXXX OVERLAY LOAD ERROR.
- *#
- NDLOVLD BSSZ 1
- SA0 A1+1 SAVE PARAMETER LIST
- SA1 X1 GET OVERLAY NAME
- BX6 X1
- SA6 CUROVL SAVE THE CURRENT OVERLAY
- SB1 1
- SB2 B0 INITIALIZE OVERLAY INDEX
- MX0 -6
- BX3 -X0*X1 REQUESTED OVERLAY LEVEL
- ZR X3,IDXOK
- SB2 B1 B2=0 - PRIMARY B2=1 - SECONDARY
- IDXOK SA3 OVLLVL+B2 GET CURRENTLY LOADED OVL AT REQ LEVEL
- BX6 X1-X3
- NE B2,TESTLD JIF SECONDARY
- SA2 NDLOVLD
- BX7 X2
- SA7 PRIRET SAVE PRIMARY RTN ADDR
- TESTLD ZR X6,SETRJ OVERLAY ALREADY LOADED
- NE B2,LOADIT JIF SECONDARY
- SX6 B0
- SA6 OVLLVL+B1 CLEAR THE SECONDARY VALUES WHEN
- SA6 RJUMP+B1 LOADING A NEW PRIMARY
- LOADIT BX0 X1 SAVE X1 IN CASE OF ERRORS
- BX6 X1
- SA6 OVLLVL+B2 SAVE OVERLAY NAME
- RJ =XFOL.LOV
- NG B7,LDERR
- SX6 B7
- SA6 RJUMP+B2 SAVE B7 FOR REENTRY
- SETRJ BSS 0
- SA3 RJX
- MX0 6
- BX3 X3*X0 CLEAR OLD ADDRESS
- SA2 RJUMP+B2
- LX2 30
- BX6 X3+X2 PUT CALLEE ADDRESS IN RJ INSTRUCTION
- SA6 A3
- RJ CLEAR CLEAR INSTRUCTION STACK SO NEW RJ PICKED UP
- CLEAR BSSZ 1
- RJN SA1 A0
- RJX RJ 0 GOTO CALLEE ** CODE MODIFIED **
- SA2 CUROVL CHECK OVERLAY LEVEL
- MX0 -6
- BX2 -X0*X2 OVERLAY LEVEL
- NZ X2,RSOVL JIF SECONDARY
- SA2 PRIRET
- AX2 30
- SB3 X2
- JP B3
- RSOVL SA2 OVLLVL
- BX7 X2 RESTORE CUROVL TO PRIMARY
- SA7 CUROVL
- EQ NDLOVLD
- LDERR BSS
- BX1 X0 OVERLAY NAME
- MX0 42
- SA3 ERRMSG
- BX6 X0*X1
- BX3 -X0*X3 CLEAR OLD NAME
- BX6 X3+X6 OR IN OVERLAY NAME
- SA6 A3
- SX6 B7
- SA6 LDRERR
- MESSAGE ERRMSG,,RECALL
- ABORT
- ERRMSG DIS ,* OVERLAY LOAD ERROR.*
- LDRERR DATA 0
- * MAKE EXTERNAL SO CALLING PROC CAN USE IT
- ENTRY CUROVL
- CUROVL BSSZ 1
- PRIRET BSSZ 1 PRIMARY RETURN ADDRESS
- OVLLVL BSSZ 2 OVERLAY LEVEL
- RJUMP BSSZ 2 TRANSFER ADDRESSES (B7)
- END
cdc/nos2.source/nam5871/ndlovld.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator