User Tools

Site Tools


plato:source:plaopl:conden

CONDEN

Table Of Contents

  • [00005] TUTOR LESSON CONDENSOR
  • [00035] COMMENTS
  • [00051] CONDENSOR MAIN LOOP
  • [00131] -DIE- KILL CONDENSOR
  • [00206] ROLL-OUT
  • [00217] CRO - CONDENSOR ROLLOUT.
  • [00311] ROLL-IN
  • [00322] CRI - CONDENSOR ROLLIN.

Source Code

CONDEN.txt
  1. CONDEN
  2. * /--- FILE TYPE = E
  3. * /--- BLOCK CONDEN 00 000 81/07/18 07.34
  4. IDENT CONDEN
  5. TITLE TUTOR LESSON CONDENSOR
  6. LCC OVERLAY(0,0)
  7. *
  8. * LOW-CORE DEFINITIONS ONLY
  9. *
  10. * CANNOT USE ANY MACROS IN THIS DECK WHICH ARE
  11. * DEFINED IN THE COMMON SYMBOL TABLE BECAUSE IT
  12. * HAS NOT BEEN ASSEMBLED YET.
  13. *
  14. *
  15. *CALL SYSCON
  16. *CALL PARAMC
  17. *CALL PCFTEXT
  18. *CALL PCTEXT
  19. *CALL LOWTXT
  20. *
  21. USE
  22. *
  23. *
  24. EXT CLOSE
  25. EXT CMPGO
  26. EXT CONDENS
  27. EXT ECSPRTY
  28. EXT S=BMSG
  29. EXT S=CM
  30. EXT S=KILL
  31. EXT S=SETR
  32. EXT S=WAIT
  33. *
  34. * /--- BLOCK COMMENTS 00 000 75/09/29 21.38
  35. TITLE COMMENTS
  36. *
  37. *
  38. * *COREQF* = PLATO TO CONDENSOR REQUESTS
  39. * 1 = KILL CONDENSOR
  40. * 2 = CONDENSOR ROLL-OUT
  41. * 3 = CONDENSOR ROLL-IN
  42. * 4 = NO-OP
  43. * 5 = CONDENSE LESSON
  44. *
  45. * *PLREQF* = CONDENSOR TO PLATO REQUESTS
  46. * 1 = NORMAL END OF CONDENSE
  47. * 2 = UNUSED
  48. * 3 = CONDENSE ABORTED
  49. *
  50. * /--- BLOCK CONDEN 00 000 81/07/21 01.40
  51. TITLE CONDENSOR MAIN LOOP
  52. *
  53. *
  54. *
  55. ENTRY CONDEN,BYE
  56. *
  57. *
  58. * MAIN LOOP - INITIALIZE AND DRIVE CONDENSOR
  59. *
  60. *
  61. CONDEN SA1 APLACOM
  62. SX0 COREQF CHECK IF REQUEST PRESENT
  63. IX0 X0+X1
  64. SA0 ITEMP
  65. + RE 1
  66. RJ ECSPRTY
  67. SA1 A0 LOAD REQUEST TYPE
  68. SB1 X1
  69. NG B1,RETURN EXIT IF BAD REQUEST
  70. SB2 X1-C.NOPT-1
  71. PL B2,RETURN EXIT IF BAD REQUEST
  72. JP B1+*+1
  73. *
  74. + EQ ONWARD NOTHING TO DO YET
  75. + EQ DIE SELF-ABORT
  76. + EQ ROLLO ROLL-OUT
  77. + EQ ROLLI ROLL-IN
  78. + EQ RETURN NO-OP
  79. + EQ COND CONDENSE
  80. *
  81. * /--- BLOCK CONDEN 00 000 81/07/21 01.48
  82. *
  83. COND SA1 ROLLF LOAD ROLL IN/OUT FLAG
  84. ZR X1,COND1 IF ROLLED IN
  85. RJ CRI ROLLIN
  86. *
  87. COND1 RJ CONDENS CONDENSE THE LESSON
  88. RJ CLOSE
  89. RJ CMPGO CENTRAL MICRO PLATO CONDENSE
  90. RJ CLOSE
  91.  
  92. * FLAG CONDENSE COMPLETE FOR PLATO.
  93.  
  94. SA5 APLACOM (X5) = PLATO COMUNICATION AREA
  95. SX0 PLREQF
  96. SA1 PLREQC PLATO REQUEST CODE
  97. BX6 X1
  98. SA6 SVECS
  99. SA0 A6
  100. IX0 X0+X5
  101. + WE 1
  102. RJ ECSPRTY
  103. SB1 B0
  104. RJ S=BMSG CLEAR THE B-DISPLAY
  105. RETURN SA1 APLACOM CLEAR REQUEST FLAG
  106. SX0 COREQF
  107. IX0 X0+X1
  108. SA0 =0
  109. + WE 1
  110. RJ ECSPRTY
  111. ONWARD SB7 100 (B7) = DELAYS UNTIL ROLLOUT
  112. *
  113. RET1 SB1 1
  114. RJ S=WAIT
  115. SA1 APLACOM CHECK IF A REQUEST PRESENT
  116. SX0 COREQF
  117. IX0 X1+X0
  118. SA0 ITEMP
  119. + RE 1 READ REQUEST FLAG
  120. RJ ECSPRTY
  121. SA1 A0 CHECK IF A REQUEST PENDING
  122. NZ X1,CONDEN
  123. SB7 B7-1
  124. PL B7,RET1 IF NOT TIME TO ROLL OUT
  125. RJ CRO ROLLOUT
  126. SB7 377777B
  127. EQ RET1
  128. *
  129. *
  130. * /--- BLOCK -DIE- 00 000 81/07/20 23.11
  131. TITLE -DIE- KILL CONDENSOR
  132. *
  133. *
  134. * -DIE-
  135. * CONDENSOR SELF-ABORT
  136. *
  137. *
  138. DIE SA1 APLACOM CLEAR REQUEST FLAG
  139. SX0 COREQF
  140. IX0 X0+X1
  141. SA0 IZER
  142. WE 1
  143. RJ ECSPRTY
  144. SX0 PC.INFO
  145. IX0 X0+X1
  146. + WE 2
  147. RJ ECSPRTY
  148. SX0 PLREQF
  149. IX0 X0+X1
  150. SA0 =3 3 = ABNORMAL TERMINATION
  151. + WE 1
  152. RJ ECSPRTY
  153.  
  154. * WAIT FOR REQUEST TO COMPLETE
  155.  
  156. DIE1 SB1 20
  157. RJ S=WAIT
  158. RE 1
  159. RJ ECSPRTY
  160. SA1 A0
  161. NZ X1,DIE1 IF NOT COMPLETE YET
  162.  
  163. * CLEAR MASTOR REQUEST BUFFER
  164.  
  165. SB1 =0
  166. RJ S=SETR
  167.  
  168. * RELEASE ECS STORAGE
  169.  
  170. BYE SA1 APLACOM RELEASE ECS STORAGE
  171. MX6 30 CLEAR OUT JOB NAME
  172. BX1 -X6*X1
  173. SX6 LPRMLTH LENGTH OF ECS LESSON HEADER
  174. IX6 X1-X6
  175. SX1 2 SET RELEASE FUNCTION
  176. LX1 48
  177. BX6 X1+X6
  178. SA6 IWK
  179. SA0 A6
  180. SA1 CONDN (X1) = CONDENSOR ORDINAL
  181. SX0 COECRQ+X1 BIAS TO THIS CONDENSORS WORD
  182. WE 1
  183. RJ ECSPRTY
  184. DIE2 SB1 20
  185. RJ S=WAIT
  186. RE 1
  187. RJ ECSPRTY
  188. SA1 A0
  189. PL X1,DIE2 IF NOT RELEASED YET
  190.  
  191. * CLEAR THIS CONDENSORS COMMUNICATION ADDRESS
  192.  
  193. SA1 CONDN
  194. AX1 36 (X1) = COMMUNICATION ADDRESS
  195. BX0 X1
  196. SA0 IZER
  197. WE 1
  198. RJ ECSPRTY
  199. RJ S=KILL KILL CONDENSOR
  200. *
  201. *
  202. IZER BSSZ 2
  203. *
  204. *
  205. * /--- BLOCK ROLL-OUT 00 000 81/07/17 23.53
  206. TITLE ROLL-OUT
  207. *
  208. *
  209. * -ROLLO-
  210. * ROLL CONDENSOR OUT TO ECS
  211. *
  212. *
  213. ROLLO RJ CRO
  214. EQ RETURN
  215.  
  216. CRO SPACE 4,10
  217. ** CRO - CONDENSOR ROLLOUT.
  218. *
  219. * ROLLOUT THE CONDENSOR TO ECS.
  220. *
  221. * THE CONDENSOR IS WRITTEN IN 1000B BLOCKS IN ORDER
  222. * TO REDUCE THE CHANCES OF THE ECS TRANSFERS BEING
  223. * INTERRUPTED AND RESTARTED BY EXCHANGE JUMPS.
  224. *
  225. * ENTRY (RUNCFL) = 42/UNUSED, 18/CONDENSOR FL.
  226. *
  227. * EXIT (RADD) = CM FWA OF ROLLOUT.
  228. * (RLTH) = WORDS ROLLED OUT.
  229. * (ROLLF) = 1.
  230. *
  231. * USES X - 0,1,2,6,7.
  232. * A - 0,1,2,6,7.
  233. * B - 2,3.
  234. *
  235. * CALLS S=BMSG, S=CM.
  236. *
  237.  
  238.  
  239. * WRITE THE LAST PORTION TO ECS.
  240.  
  241. CRO3 WE B2
  242. RJ ECSPRTY
  243.  
  244. * REDUCE CM FL.
  245.  
  246. LX6 30 NEW FL PARAMETER
  247. SA6 NEWCFL
  248. SB1 A6
  249. RJ S=CM
  250.  
  251. * CLEAR THE B-DISPLAY MESSAGE.
  252.  
  253. SB1 B0
  254. RJ S=BMSG
  255.  
  256. CRO PS ENTRY/EXIT
  257.  
  258. * CHECK IF CONDENSOR ALREADY ROLLED OUT.
  259.  
  260. SA1 ROLLF
  261. NZ X1,CRO RETURN IF ALREADY ROLLED OUT
  262.  
  263. * MARK THE CONDENSOR AS ROLLED OUT.
  264.  
  265. SA2 APLACOM
  266. SX0 COROLL
  267. SX6 1
  268. IX0 X0+X2
  269. SA6 A1
  270. SA0 =10LROLLED OUT
  271. + WE 1
  272. RJ ECSPRTY
  273.  
  274. * COMPUTE CM FWA FOR ROLLOUT. *ROLLAD* IS THE
  275. * MINIMUM CM FWA.
  276.  
  277. SA1 RUNCFL CONDENSOR FL
  278. SA2 ROLBUFL ECS ROLLOUT BUFFER LENGTH
  279. SX1 X1+
  280. IX7 X2-X1 NEGATIVE OF POSSIBLE CM FWA
  281. BX6 -X7
  282. SX2 X7+=XROLLAD COMPARE WITH MINIMUM CM FWA
  283. NG X2,CRO1 IF CM FWA NOT TOO SMALL
  284. SX6 =XROLLAD SET TOO MINIMUM CM FWA
  285. CRO1 SA0 X6 ROLLOUT CM FWA
  286. SA6 RADD
  287. * /--- BLOCK ROLL-OUT 00 000 77/11/13 21.59
  288.  
  289. * COMPUTE ROLLOUT LENGTH.
  290.  
  291. IX7 X1-X6
  292. SA7 RLTH
  293.  
  294. * WRITE TO ECS IN 1000B WORD BLOCKS.
  295.  
  296. SA1 ROLLBUF ECS ROLLOUT BUFFER FWA
  297. SB2 X7 TOTAL LENGTH
  298. BX0 X1
  299. SB3 1000B
  300. LE B2,B3,CRO3 IF .LE. 1000B WORDS TO WRITE
  301. SX2 B3+
  302. CRO2 WE B3
  303. RJ ECSPRTY
  304. IX0 X0+X2 NEXT ECS ADDRESS
  305. SA0 A0+1000B NEXT CM ADDRESS
  306. SB2 B2-B3 REMAINING LENGTH
  307. GT B2,B3,CRO2 IF .GT. 1000B WORDS REMAINING
  308. EQ CRO3 WRITE THE LAST PORTION
  309.  
  310. * /--- BLOCK ROLL-IN 00 000 81/07/18 08.26
  311. TITLE ROLL-IN
  312. *
  313. *
  314. * -ROLLI-
  315. * ROLL CONDENSOR BACK TO CM FROM ECS
  316. *
  317. *
  318. ROLLI RJ CRI
  319. EQ RETURN
  320.  
  321. CRI SPACE 4,10
  322. ** CRI - CONDENSOR ROLLIN.
  323. *
  324. * ROLLIN CONDENSOR FROM ECS.
  325. *
  326. * THE CONDENSOR IS READ IN 1000B BLOCKS IN ORDER
  327. * TO REDUCE THE CHANCES OF THE ECS TRANSFERS BEING
  328. * INTERRUPTED AND RESTARTED BY EXCHANGE JUMPS.
  329. *
  330. * ENTRY (RUNCFL) = 42/UNUSED, 18/ ROLLED IN CONDENSOR FL.
  331. * (RADD) = CM FWA FOR ROLLIN.
  332. * (RLTH) = ROLLIN LENGTH.
  333. *
  334. * EXIT (ROLLF) = 0.
  335. *
  336. * USES X - 0,1,2,3,4,6,7.
  337. * A - 0,1,2,3,6,7.
  338. * B - 2,3.
  339. *
  340. * CALLS S=CM.
  341. *
  342.  
  343.  
  344. * READ LAST PORTION.
  345.  
  346. CRI2 RE B2
  347. RJ ECSPRTY
  348.  
  349. CRI PS ENTRY/EXIT
  350.  
  351. * CHECK IF ALREADY ROLLED IN.
  352.  
  353. SA1 ROLLF
  354. ZR X1,CRI RETURN IF ALREADY ROLLED IN
  355.  
  356. * MARK CONDENSOR ROLLED IN.
  357.  
  358. SA2 APLACOM
  359. SX0 COROLL
  360. MX7 0
  361. SA7 A1+
  362. SA0 A7
  363. IX0 X0+X2
  364. + WE 1
  365. RJ ECSPRTY
  366.  
  367. * REQUEST ROLLED IN FL.
  368.  
  369. SA1 RUNCFL
  370. SX6 X1
  371. LX6 30
  372. SA6 NEWCFL
  373. SB1 A6
  374. RJ S=CM
  375.  
  376. * READ CONDENSOR FROM ECS IN 1000B WORD BLOCKS.
  377.  
  378. SA1 RADD CM FWA
  379. SA2 RLTH ROLLIN LENGTH
  380. SA3 ROLLBUF ECS FWA
  381. SB3 1000B
  382. SB2 X2
  383. SA0 X1
  384. BX0 X3
  385. SX4 B3
  386. LE B2,B3,CRI2 IF .LE. 1000B WORDS TO READ
  387. CRI1 RE B3
  388. RJ ECSPRTY
  389. SA0 A0+B3 NEXT CM ADDRESS
  390. IX0 X0+X4 NEXT ECS ADDRESS
  391. SB2 B2-1000B REMAINING WORDS TO READ
  392. GT B2,B3,CRI1 IF MORE 1000B WORDS REMAIN
  393. EQ CRI2 READ THE LAST PORTION
  394.  
  395. * /--- BLOCK STORAGE 00 000 81/07/21 01.41
  396. *
  397. *
  398. IWK BSS 1
  399. NEWCFL BSS 1
  400. *
  401. ENTRY RUNCFL
  402. RUNCFL BSS 1
  403. *
  404. RLTH BSS 1
  405. RADD BSS 1
  406.  
  407. *
  408. ENTRY MESSBUF
  409. MESSBUF DATA 0,0
  410. *
  411. *
  412. END INIT
plato/source/plaopl/conden.txt ยท Last modified: 2023/08/05 18:54 by Site Administrator