CMPILXO * /--- FILE TYPE = E * /--- BLOCK CMPILXO 00 000 82/04/08 13.28 IDENT CMPILXO CMPILXO TITLE CMPILXO - CMP OVERLAY LOADER AND EXECUTOR. *COMMENT CMPILXO - CMP OVERLAY LOADER AND EXECUTOR. *** CMPILXO - CMP OVERLAY LOADER AND EXECUTOR. * * OVERLAYED MODULES AND IDENTS ARE LOADED FROM EXTENDED * MEMORY AND EXECUTED HERE. CST LIST X *CALL ZPXIDEF LIST * CMPOV SPACE 4,10 ** CMPOV - CENTRAL MICRO PLATO SUBOVERLAY. * * GENERATE A 3 WORD ENTRY FOR EACH OVERLAYED XDCL * CYBIL PROCEDURE AND OVERLAYED COMPASS ENTRY POINT. * * INITIALLY, THE FORMAT IS - * * WORD 0 - 30/RJ =XLXO, 30/0. * 1 - 30/EQ 0, 30/0. * 2 - 0. * * AFTER THE OVERLAYS ARE PROCESSED IN IDENT -CONDI- * THE FORMAT BECOMES - * * WORD 0 - UNCHANGED. * 1 - 30/JUMP TO XDCL PROCDURE OR ENTRY POINT, 30/0. * 2 - 24/EM FWA, 18/MODULE OR IDENT LENGTH, 18/CM FWA. * * WORD 2 IS KNOWN AS THE SUBOVERLAY INFORMATION WORD (SIW). MACREF CMPOV$ CMPOV MACRO XREF MACREF CMPOV ENTRY XREF XREF RJ =XLXO EQ 0 CON 0 ENDM CSUBOV DATA 0 CURRENT SIW LOCATION * /--- BLOCK CMPILXO 00 000 82/04/08 13.22 LXO TITLE LXO - LOAD AND EXECUTE OVERLAY. *** LXO - LOAD AND EXECUTE OVERLAY. * * THE LOCATION OF THE CURRENT SIW IS SAVED IN THE CYBIL * STACK FRAME. THE NEW SUBOVERLAY IS READ FROM EXTENDED * MEMORY. CONTROL IS TRANSFERRED TO THE SUBOVERLAY THROUGH * WORD 1 OF ITS CMPOV ENTRY. * * WHEN CONTROL IS RETURNED FROM THE SUBOVERLAY, THE * PREVIOUS SUBOVERLAY, IF ANY, IS RELOADED FROM * EXTENDED MEMORY AND CONTROL IS RETURNED TO IT. * * * ENTRY (LXO) = 12/04000B, 18/SIW LOCATION - 1, 30/0. * (CSUBOV) = CURRENT SIW LOCATION. * (B1) = 1. * (B2) = CYBIL STACK FRAME POOINTER. * (B3) = CYBIL STACK LIMIT. * (B5) = CYBIL ARGUMENT EXTENSION LIST FWA. * (X1) = 1ST OF LAST 5 CYBIL ARGUMENTS. * (X2) = 2ND OF LAST 5 CYBIL ARGUMENTS. * (X3) = 3RD OF LAST 5 CYBIL ARGUMENTS. * (X4) = 4TH OF LAST 5 CYBIL ARGUMENTS. * (X5) = 5TH OF LAST 5 CYBIL ARGUMENTS. * (X7) = RETURN ADDRESS. LXO PS EQ LXO0 LIST G LXO0 ENTR ENTRY LIST * * SAVE CYBIL REGISTERS. * * B - 2, 3. * X - 1, 2. BX6 X1 BX7 X2 SA6 LXOA SA7 A6+B1 SX6 B2 SX7 B3 LX6 18 BX6 X6+X7 SA6 A7+B1 * PUT THE POINTER TO THE CURRENT OVERLAY*S SUBOV * WORD IN THE STACK FRAME. SA2 CSUBOV BX6 X2 SA6 B2+B1 * LOAD THE OVERLAY. SA1 LXO LX1 30 SA1 X1+B1 BX0 X1-X6 ZR X0,LXO1 IF SUBOVERLAY ALREADY LOADED SX7 A1 RJ =XLOADOV * RESTORE CYBIL REGISTERS. * * B - 2, 3. * X - 1, 2. LXO1 SA1 LXOA+2 SB3 X1 AX1 18 SB2 X1 SA2 A1-B1 SA1 A2-B1 * TRANSFER CONTROL TO THE OVERLAY. THE OVERLAY WILL * RETURN CONTROL TO *LXO2*. SX7 LXO2 (X7) = RETURN ADDRESS EQ LXO * /--- BLOCK CMPILXO 00 000 81/12/23 08.56 * RETURN TO PREVIOUS OVERLAY. LXO2 SA1 B2+B1 GET SUBOV LOCATION FROM STACK FRAME SX7 X1 (X7) = LOCATION PREVIOUS SIW ZR X7,LXO3 IF NO PREVIOUS OVERLAY, JUST RETURN SA1 X7 SA2 CSUBOV (X2) = LOCATION OF CURRENT SIW SA3 X2 BX0 X1-X3 ZR X0,LXO4 IF SUBOVERLAY ALREADY LOADED * SAVE CYBIL REGISTERS B2 AND B3. SX6 B2 LX6 18 SX1 B3 BX6 X6+X1 SA6 LXOA+2 * LOAD THE SUBOVERLAY. RJ =XLOADOV * RESTORE CYBIL REGISTERS B2 AND B3. SA1 LXOA+2 SB3 X1 AX1 18 SB2 X1 EQ LXO4 RETURN TO PREVIOUS SUBOVERLAY LXO3 SA7 CSUBOV LXO4 DONE RETURN LXOA BSS 1 60/(X1) BSS 1 60/(X2) BSS 1 24/0, 18/(B2), 18/(B3) * CENTRAL MICRO PLATO SUBOVERLAY TABLE. ENTRY CMPOVT LIST G * /--- BLOCK CMPILXO 00 000 82/08/23 16.14 CMPOVT BSS 0 CMPOV MPP$ALL CMPOV MPP$ANC CMPOV MPP$ANS CMPOV MPP$ARR CMPOV MPP$ATT CMPOV MPP$BLK CMPOV MPP$CHA CMPOV MPP$CHG CMPOV MPP$CHR CMPOV MPP$CLR CMPOV MPP$CLS CMPOV MPP$CPU CMPOV MPP$CPY CMPOV MPP$CST CMPOV MPP$CVE CMPOV MPP$DAR CMPOV MPP$DEF CMPOV MPP$DIN CMPOV MPP$DOT CMPOV MPP$ENA CMPOV MPP$ERR CMPOV MPP$ERX CMPOV MPP$EVL CMPOV MPP$EXW CMPOV MPP$FND CMPOV MPP$GFL CMPOV MPP$GLM CMPOV MPP$GTL CMPOV MPP$IFL CMPOV MPP$IFM CMPOV MPP$IHB CMPOV MPP$JDG CMPOV MPP$JKY CMPOV MPP$JPN CMPOV MPP$JPO CMPOV MPP$KYW CMPOV MPP$LBA CMPOV MPP$LBL CMPOV MPP$MKL CMPOV MPP$MTU CMPOV MPP$NAA CMPOV MPP$NIA CMPOV MPP$NOA CMPOV MPP$NOM CMPOV MPP$NOW CMPOV MPP$OKA CMPOV MPP$OKN CMPOV MPP$OKW CMPOV MPP$OPN CMPOV MPP$ORA CMPOV MPP$OTD CMPOV MPP$PAI CMPOV MPP$PAK CMPOV MPP$PCK CMPOV MPP$PIO CMPOV MPP$PJB CMPOV MPP$POL CMPOV MPP$PRA CMPOV MPP$PTD CMPOV MPP$PTL CMPOV MPP$RAN CMPOV MPP$ROT CMPOV MPP$SET CMPOV MPP$SHA CMPOV MPP$SHB CMPOV MPP$SHT CMPOV MPP$SHW CMPOV MPP$SIZ CMPOV MPP$SKE CMPOV MPP$SKP CMPOV MPP$SPC CMPOV MPP$SRC CMPOV MPP$SRF CMPOV MPP$STP CMPOV MPP$TXN CMPOV MPP$TXT CMPOV MPP$UJB CMPOV MPP$UMJ CMPOV MPP$UNE CMPOV MPP$UNT CMPOV MPP$UOL CMPOV MPP$WRL CMPOV MPP$WRT CMPOV MPP$WTC CMPOV MPP$XIO CMPOV MPP$ZER LIST * END