plato:source:plaopl:cmpilxo
Table of Contents
CMPILXO
Table Of Contents
- [00007] CMP OVERLAY LOADER AND EXECUTOR.
- [00020] CMPOV - CENTRAL MICRO PLATO SUBOVERLAY.
- [00054] LOAD AND EXECUTE OVERLAY.
Source Code
- CMPILXO.txt
- 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
plato/source/plaopl/cmpilxo.txt ยท Last modified: 2023/08/05 18:54 by Site Administrator