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
  1. CMPILXO
  2. * /--- FILE TYPE = E
  3. * /--- BLOCK CMPILXO 00 000 82/04/08 13.28
  4. IDENT CMPILXO
  5. CMPILXO TITLE CMPILXO - CMP OVERLAY LOADER AND EXECUTOR.
  6. *COMMENT CMPILXO - CMP OVERLAY LOADER AND EXECUTOR.
  7. *** CMPILXO - CMP OVERLAY LOADER AND EXECUTOR.
  8. *
  9. * OVERLAYED MODULES AND IDENTS ARE LOADED FROM EXTENDED
  10. * MEMORY AND EXECUTED HERE.
  11.  
  12.  
  13. CST
  14.  
  15. LIST X
  16. *CALL ZPXIDEF
  17. LIST *
  18.  
  19. CMPOV SPACE 4,10
  20. ** CMPOV - CENTRAL MICRO PLATO SUBOVERLAY.
  21. *
  22. * GENERATE A 3 WORD ENTRY FOR EACH OVERLAYED XDCL
  23. * CYBIL PROCEDURE AND OVERLAYED COMPASS ENTRY POINT.
  24. *
  25. * INITIALLY, THE FORMAT IS -
  26. *
  27. * WORD 0 - 30/RJ =XLXO, 30/0.
  28. * 1 - 30/EQ 0, 30/0.
  29. * 2 - 0.
  30. *
  31. * AFTER THE OVERLAYS ARE PROCESSED IN IDENT -CONDI-
  32. * THE FORMAT BECOMES -
  33. *
  34. * WORD 0 - UNCHANGED.
  35. * 1 - 30/JUMP TO XDCL PROCDURE OR ENTRY POINT, 30/0.
  36. * 2 - 24/EM FWA, 18/MODULE OR IDENT LENGTH, 18/CM FWA.
  37. *
  38. * WORD 2 IS KNOWN AS THE SUBOVERLAY INFORMATION WORD (SIW).
  39.  
  40.  
  41. MACREF CMPOV$
  42. CMPOV MACRO XREF
  43. MACREF CMPOV
  44. ENTRY XREF
  45. XREF RJ =XLXO
  46. EQ 0
  47. CON 0
  48. ENDM
  49.  
  50. CSUBOV DATA 0 CURRENT SIW LOCATION
  51.  
  52. * /--- BLOCK CMPILXO 00 000 82/04/08 13.22
  53. LXO TITLE LXO - LOAD AND EXECUTE OVERLAY.
  54. *** LXO - LOAD AND EXECUTE OVERLAY.
  55. *
  56. * THE LOCATION OF THE CURRENT SIW IS SAVED IN THE CYBIL
  57. * STACK FRAME. THE NEW SUBOVERLAY IS READ FROM EXTENDED
  58. * MEMORY. CONTROL IS TRANSFERRED TO THE SUBOVERLAY THROUGH
  59. * WORD 1 OF ITS CMPOV ENTRY.
  60. *
  61. * WHEN CONTROL IS RETURNED FROM THE SUBOVERLAY, THE
  62. * PREVIOUS SUBOVERLAY, IF ANY, IS RELOADED FROM
  63. * EXTENDED MEMORY AND CONTROL IS RETURNED TO IT.
  64. *
  65. *
  66. * ENTRY (LXO) = 12/04000B, 18/SIW LOCATION - 1, 30/0.
  67. * (CSUBOV) = CURRENT SIW LOCATION.
  68. * (B1) = 1.
  69. * (B2) = CYBIL STACK FRAME POOINTER.
  70. * (B3) = CYBIL STACK LIMIT.
  71. * (B5) = CYBIL ARGUMENT EXTENSION LIST FWA.
  72. * (X1) = 1ST OF LAST 5 CYBIL ARGUMENTS.
  73. * (X2) = 2ND OF LAST 5 CYBIL ARGUMENTS.
  74. * (X3) = 3RD OF LAST 5 CYBIL ARGUMENTS.
  75. * (X4) = 4TH OF LAST 5 CYBIL ARGUMENTS.
  76. * (X5) = 5TH OF LAST 5 CYBIL ARGUMENTS.
  77. * (X7) = RETURN ADDRESS.
  78.  
  79.  
  80. LXO PS
  81. EQ LXO0
  82. LIST G
  83. LXO0 ENTR ENTRY
  84. LIST *
  85.  
  86. * SAVE CYBIL REGISTERS.
  87. *
  88. * B - 2, 3.
  89. * X - 1, 2.
  90.  
  91. BX6 X1
  92. BX7 X2
  93. SA6 LXOA
  94. SA7 A6+B1
  95. SX6 B2
  96. SX7 B3
  97. LX6 18
  98. BX6 X6+X7
  99. SA6 A7+B1
  100.  
  101. * PUT THE POINTER TO THE CURRENT OVERLAY*S SUBOV
  102. * WORD IN THE STACK FRAME.
  103.  
  104. SA2 CSUBOV
  105. BX6 X2
  106. SA6 B2+B1
  107.  
  108. * LOAD THE OVERLAY.
  109.  
  110. SA1 LXO
  111. LX1 30
  112. SA1 X1+B1
  113. BX0 X1-X6
  114. ZR X0,LXO1 IF SUBOVERLAY ALREADY LOADED
  115. SX7 A1
  116. RJ =XLOADOV
  117.  
  118. * RESTORE CYBIL REGISTERS.
  119. *
  120. * B - 2, 3.
  121. * X - 1, 2.
  122.  
  123. LXO1 SA1 LXOA+2
  124. SB3 X1
  125. AX1 18
  126. SB2 X1
  127. SA2 A1-B1
  128. SA1 A2-B1
  129.  
  130. * TRANSFER CONTROL TO THE OVERLAY. THE OVERLAY WILL
  131. * RETURN CONTROL TO *LXO2*.
  132.  
  133. SX7 LXO2 (X7) = RETURN ADDRESS
  134. EQ LXO
  135.  
  136. * /--- BLOCK CMPILXO 00 000 81/12/23 08.56
  137.  
  138. * RETURN TO PREVIOUS OVERLAY.
  139.  
  140. LXO2 SA1 B2+B1 GET SUBOV LOCATION FROM STACK FRAME
  141. SX7 X1 (X7) = LOCATION PREVIOUS SIW
  142. ZR X7,LXO3 IF NO PREVIOUS OVERLAY, JUST RETURN
  143. SA1 X7
  144. SA2 CSUBOV (X2) = LOCATION OF CURRENT SIW
  145. SA3 X2
  146. BX0 X1-X3
  147. ZR X0,LXO4 IF SUBOVERLAY ALREADY LOADED
  148.  
  149. * SAVE CYBIL REGISTERS B2 AND B3.
  150.  
  151. SX6 B2
  152. LX6 18
  153. SX1 B3
  154. BX6 X6+X1
  155. SA6 LXOA+2
  156.  
  157. * LOAD THE SUBOVERLAY.
  158.  
  159. RJ =XLOADOV
  160.  
  161. * RESTORE CYBIL REGISTERS B2 AND B3.
  162.  
  163. SA1 LXOA+2
  164. SB3 X1
  165. AX1 18
  166. SB2 X1
  167. EQ LXO4 RETURN TO PREVIOUS SUBOVERLAY
  168.  
  169. LXO3 SA7 CSUBOV
  170. LXO4 DONE RETURN
  171.  
  172. LXOA BSS 1 60/(X1)
  173. BSS 1 60/(X2)
  174. BSS 1 24/0, 18/(B2), 18/(B3)
  175.  
  176. * CENTRAL MICRO PLATO SUBOVERLAY TABLE.
  177.  
  178. ENTRY CMPOVT
  179.  
  180. LIST G
  181. * /--- BLOCK CMPILXO 00 000 82/08/23 16.14
  182. CMPOVT BSS 0
  183. CMPOV MPP$ALL
  184. CMPOV MPP$ANC
  185. CMPOV MPP$ANS
  186. CMPOV MPP$ARR
  187. CMPOV MPP$ATT
  188. CMPOV MPP$BLK
  189. CMPOV MPP$CHA
  190. CMPOV MPP$CHG
  191. CMPOV MPP$CHR
  192. CMPOV MPP$CLR
  193. CMPOV MPP$CLS
  194. CMPOV MPP$CPU
  195. CMPOV MPP$CPY
  196. CMPOV MPP$CST
  197. CMPOV MPP$CVE
  198. CMPOV MPP$DAR
  199. CMPOV MPP$DEF
  200. CMPOV MPP$DIN
  201. CMPOV MPP$DOT
  202. CMPOV MPP$ENA
  203. CMPOV MPP$ERR
  204. CMPOV MPP$ERX
  205. CMPOV MPP$EVL
  206. CMPOV MPP$EXW
  207. CMPOV MPP$FND
  208. CMPOV MPP$GFL
  209. CMPOV MPP$GLM
  210. CMPOV MPP$GTL
  211. CMPOV MPP$IFL
  212. CMPOV MPP$IFM
  213. CMPOV MPP$IHB
  214. CMPOV MPP$JDG
  215. CMPOV MPP$JKY
  216. CMPOV MPP$JPN
  217. CMPOV MPP$JPO
  218. CMPOV MPP$KYW
  219. CMPOV MPP$LBA
  220. CMPOV MPP$LBL
  221. CMPOV MPP$MKL
  222. CMPOV MPP$MTU
  223. CMPOV MPP$NAA
  224. CMPOV MPP$NIA
  225. CMPOV MPP$NOA
  226. CMPOV MPP$NOM
  227. CMPOV MPP$NOW
  228. CMPOV MPP$OKA
  229. CMPOV MPP$OKN
  230. CMPOV MPP$OKW
  231. CMPOV MPP$OPN
  232. CMPOV MPP$ORA
  233. CMPOV MPP$OTD
  234. CMPOV MPP$PAI
  235. CMPOV MPP$PAK
  236. CMPOV MPP$PCK
  237. CMPOV MPP$PIO
  238. CMPOV MPP$PJB
  239. CMPOV MPP$POL
  240. CMPOV MPP$PRA
  241. CMPOV MPP$PTD
  242. CMPOV MPP$PTL
  243. CMPOV MPP$RAN
  244. CMPOV MPP$ROT
  245. CMPOV MPP$SET
  246. CMPOV MPP$SHA
  247. CMPOV MPP$SHB
  248. CMPOV MPP$SHT
  249. CMPOV MPP$SHW
  250. CMPOV MPP$SIZ
  251. CMPOV MPP$SKE
  252. CMPOV MPP$SKP
  253. CMPOV MPP$SPC
  254. CMPOV MPP$SRC
  255. CMPOV MPP$SRF
  256. CMPOV MPP$STP
  257. CMPOV MPP$TXN
  258. CMPOV MPP$TXT
  259. CMPOV MPP$UJB
  260. CMPOV MPP$UMJ
  261. CMPOV MPP$UNE
  262. CMPOV MPP$UNT
  263. CMPOV MPP$UOL
  264. CMPOV MPP$WRL
  265. CMPOV MPP$WRT
  266. CMPOV MPP$WTC
  267. CMPOV MPP$XIO
  268. CMPOV MPP$ZER
  269. LIST *
  270.  
  271. END