Table of Contents

CSYS

Table Of Contents

  • [00005] CONDENSOR SYSTEM INTERFACE
  • [00006] SYMBOL DEFFINITIONS
  • [00067] SYSTEM INTERFACE ROUTINES
  • [00391] S=SETR - SET ADDRESS OF MASTOR REQUEST BUFFER

Source Code

CSYS.txt
  1. CSYS
  2. * /--- FILE TYPE = E
  3. * /--- BLOCK CSYS 00 000 79/02/14 15.07
  4. IDENT CSYS
  5. TITLE CONDENSOR SYSTEM INTERFACE
  6. TITLE SYMBOL DEFFINITIONS
  7. *
  8. SST
  9. SYSCOM DEFINE INSTALATION PARAMS
  10. *
  11. *
  12. *
  13. *CALL AIDTEXT
  14. *CALL COMSPRD
  15. *CALL COMSSSD
  16. *
  17. *
  18. *
  19. *
  20. *CALL COMCSYS
  21. ENTRY S=SYS
  22. S=SYS EQU SYS=
  23. ENTRY S=WNB
  24. S=WNB EQU WNB=
  25. ENTRY S=RCL
  26. S=RCL EQU RCL=
  27. ENTRY S=MSGX
  28. S=MSGX EQU MSG=
  29. *CALL COMCCPM
  30. *CALL COMCWOD
  31. *
  32. *
  33. *
  34. *CALL SYSCON
  35. *CALL PLASMRC
  36. *
  37. *
  38. *CALL PCFTEXT
  39. *CALL PARAMC
  40. *CALL PCTEXT
  41. *CALL LOWTXT
  42. SPACE 3
  43. *** MASTOR MAKE MASTOR REQUEST
  44. *
  45. * MAKE REQUESTS TO MASTOR
  46. *
  47. PURGMAC MASTOR
  48. MACREF MASTOR$
  49. MASTOR MACRO BUF,REQ,P1,P2
  50. MACREF MASTOR
  51. SX6 REQ
  52. LX6 60-12
  53. SA6 BUF
  54. IFC NE,*P1**,2
  55. SX6 P1
  56. SA6 BUF+1
  57. IFC NE,*P2**,2
  58. SX6 P2
  59. SA6 BUF+2
  60. SYSTEM "PPU.MAS",R,BUF
  61. RECALL BUF
  62. ENDM
  63. *
  64. *
  65. *
  66. * /--- BLOCK ROUTINES 00 000 81/06/25 04.17
  67. TITLE SYSTEM INTERFACE ROUTINES
  68. *
  69. *
  70. *
  71. * S=RCL GO INTO RECALL
  72. *
  73. *
  74. ENTRY S=RCL
  75. *
  76. *
  77. * S=BMSG OUTPUT B-DISPLAY MESSAGE
  78. *
  79. * ON ENTRY - B1 = ADDRESS OF MESSAGE
  80. *
  81. *
  82. ENTRY S=BMSG
  83. S=BMSG EQ *
  84. SB2 1
  85. RJ S=LOG
  86. EQ S=BMSG
  87. *
  88. *
  89. *
  90. *
  91. * S=MSG OUTPUT DAYFILE MESSAGE
  92. *
  93. * ON ENTRY - B1 = ADDRESS OF MESSAGE
  94. *
  95. *
  96. ENTRY S=MSG
  97. S=MSG EQ *
  98. SB2 B0
  99. RJ S=LOG
  100. EQ S=MSG
  101. *
  102. *
  103. *
  104. *
  105. * S=LOG OUTPUT DAYFILE MESSAGES
  106. *
  107. * ON ENTRY - B1 = ADDRESS OF MESSAGE
  108. * B2 = TYPE OF MESSAGE
  109. *
  110. *
  111. * MESSAGE TYPES -
  112. *
  113. * 0 = SYSTEM DAYFILE, USER DAYFILE, LINE 1
  114. * 1 = LINE 1 OF CONTROL POINT
  115. * 2 = LINE 2 OF CONTROL POINT
  116. * 3 = USER DAYFILE, LINE 1
  117. * 4 = ERROR LOG
  118. * 5 = ACCOUNT FILE
  119. *
  120. ENTRY S=LOG
  121. S=LOG EQ *
  122. SX1 B1
  123. MESSAGE X1,B2,R OUTPUT MESSAGE
  124. EQ S=LOG
  125. * /--- BLOCK ROUTINES 00 000 76/08/01 06.30
  126. *
  127. *
  128. *
  129. * S=WAIT RECALL FOR INDICATED TIME
  130. *
  131. * ON ENTRY - B1 = MILLISECOND TIME TO PAUSE
  132. *
  133. * NOTE - IF THE CPU RECALL PARAMETER (CR) IS LESS
  134. * THAN THE MINIMUM CLOCK *TICK* IN THE *CLOCKER*
  135. * ROUTINE OF PP/MRQ, WE WILL RECALL BEFORE THE CLOCK
  136. * CAN TICK, WHICH LOOKS LIKE THE CLOCKER HAS DIED.
  137. *
  138. *
  139. ENTRY S=WAIT
  140. S=WAIT EQ *
  141. SX6 B1 PICK UP TIME TO PAUSE
  142. NG X6,S=WAIT
  143. ZR X6,S=WAIT
  144. SA1 SYSCLOK
  145.  
  146. *** DEBUG CODE
  147. *
  148.  
  149. BX6 X1 (X6) = *SYSCLOK*
  150. SA6 OSYSCLK
  151. SX6 B1 RESTORE X6
  152.  
  153. *
  154. *** DEBUG CODE
  155.  
  156. IX6 X1+X6 COMPUTE END WAIT TIME
  157. SA6 ENDTIME
  158.  
  159. SX6 10D WAIT AT LEAST 10 RECALLS
  160. SA6 DEADCLK BEFORE DECIDING CLOCK IS DEAD
  161. *
  162. SW10 RECALL
  163.  
  164. *** DEBUG CODE
  165. *
  166.  
  167. SA1 SYSCLOK CURRENT MSEC CLOCK
  168. BX6 X1
  169. SA1 OSYSCLK MSEC CLOCK BEFORE RECALL
  170. IX1 X1-X6 COMPARE
  171. NG X1,SW20 -- CURRENT .GT. PREVIOUS, OK
  172.  
  173. MX6 -1 DECREMENT DEADMAN COUNTER
  174. SA1 DEADCLK
  175. IX6 X1+X6
  176. SA6 A1
  177. PL X6,SW30 -- NOT DEAD FOR 'N RECALLS
  178.  
  179. * START CLOCK UP
  180.  
  181. MX6 -1
  182. SA1 MSCKCNT (X1) = NUMBER OF TIMES STARTED
  183. IX6 X1-X6 (X6) = (X1) + 1
  184. SA6 A1 STORE *MSCKCNT*
  185. MASTOR SWK1,MS.SCK,B0 START MILLISECOND CLOCK
  186.  
  187. SW20 BSS 0
  188. SX6 10D RESET CLOCK DEADMAN
  189. SA6 DEADCLK
  190.  
  191. SA1 SYSCLOK STORE CURRENT MSEC CLOCK
  192. BX6 X1
  193. SA6 OSYSCLK
  194.  
  195. SW30 BSS 0
  196.  
  197. *
  198. *** DEBUG CODE
  199.  
  200. SA1 SYSCLOK
  201. BX6 X1
  202. SA1 ENDTIME
  203. IX6 X6-X1
  204. NG X6,SW10 IF TIME IS NOT UP
  205. EQ S=WAIT
  206. *
  207. DEADCLK BSS 1 DEADMAN COUNTER FOR CLOCK
  208. *
  209. *
  210. *
  211. *
  212. * S=CTIME RETURN CPU TIME USED
  213. *
  214. * ON ENTRY - B1 - ADDRESS TO RETURN CLOCK
  215. *
  216. *
  217. ENTRY S=CTIME
  218. S=CTIME EQ *
  219. TIME B1
  220.  
  221. * CONVERT TIME TO MILLISECONDS
  222.  
  223. SA1 B1
  224. MX6 -12
  225. BX2 -X6*X1 (X2) = MILLISECONDS
  226. AX1 12
  227. MX6 -36
  228. BX1 -X6*X1 (X1) = SECONDS
  229. SX6 1000
  230. IX6 X6*X1
  231. * /--- BLOCK ROUTINES 00 000 76/08/01 06.30
  232. IX6 X6+X2
  233. SA6 A1
  234. EQ S=CTIME
  235. *
  236. *
  237. * /--- BLOCK ROUTINES 00 000 76/10/31 12.08
  238. *
  239. *
  240. *
  241. * S=CM OBTAIN CENTRAL MEMORY
  242. *
  243. * ON ENTRY - B1 = ADDRESS OF MEMORY REQUEST WORD
  244. *
  245. *
  246. ENTRY S=CM
  247. S=CM EQ *
  248. MX0 30
  249. SA1 B1
  250. BX6 X0*X1 SET UP ARGUMENT
  251. SA6 SWK1
  252. SX6 B1
  253. SA6 SWK2 SAVE ADDRESS OF ARGUMENT
  254. SB1 1
  255. MEMORY CM,SWK1,R
  256. RECALL SWK1
  257. MX0 30
  258. SA1 SWK1
  259. BX6 X0*X1
  260. SA2 SWK2
  261. SA6 X2
  262. MESSAGE =0,2,R CLEAR 2ND LINE MESSAGE
  263. SA1 SYSCLOK SAVE CLOCK
  264. BX6 X1
  265. SA6 SWK1
  266. RECALL IDLE
  267. SA1 SWK1 COMPARE CLOCKS
  268. SA2 SYSCLOK
  269. IX1 X1-X2
  270. NZ X1,S=CM IF STILL RUNNING
  271. MASTOR SWK1,MS.SCK,B0 START MILLISECOND CLOCK
  272. EQ S=CM
  273. * /--- BLOCK ROUTINES 00 000 79/02/14 15.11
  274. *
  275. *
  276. * S=READY LOGIC READY
  277. * AFFILIATES WITH PLATO AND SETS CPU PRIORITY
  278. *
  279. * ON ENTRY - B1 = ADDRESS OF CPU PRIORITY
  280. *
  281. *
  282. ENTRY S=READY
  283. S=READY EQ *
  284. SA1 B1 PICK UP CPU PRIORITY
  285. .NOS23 IFGE OSLEV,617D (NOS VERSION 2.3)
  286. BX6 X1
  287. .NOS23 ELSE
  288. .NOSV2 IFGE OSLEV,562D (NOS VERSION 2)
  289. SX2 PLSI INITIAL PLATO ID
  290. .NOSV2 ELSE (NOS VERSION 1)
  291. SX2 LSSS-1 PICK UP QUEUE PRIORITY
  292. .NOSV2 ENDIF
  293. LX2 30
  294. BX6 X1+X2 SET UP PRIORITY REQUEST
  295. .NOS23 ENDIF
  296. SA6 SWK1+1
  297. MASTOR SWK1,MS.PRI
  298. MODE 1 SET ERROR EXIT TYPE
  299. *
  300. SRDY1 BSS 0
  301. SA1 =4L"LGC.PLAT" PLATO LOGIC IDENTIFIER
  302. BX6 X1
  303. SA6 SWK1+1
  304. MX6 0 MARK FLAG REGISTER NOT REQUIRED
  305. SA6 SWK1+2
  306. MASTOR SWK1,MS.AFF AFFILIATE
  307. MX0 -11
  308. SA1 SWK1 CHECK REPLY CODE
  309. AX1 12
  310. BX1 -X0*X1 MASK OFF ERROR CODE
  311. ZR X1,SRDY2
  312. RECALL IDLE FOR A WHILE
  313. EQ SRDY1
  314. *
  315. * IDENTIFY THIS CONDENSOR AS A LOGIC. CONDENSOR
  316. * LOGIC NAMES CONSIST OF THE FOLLOWING --
  317. *
  318. * 12/*CO*
  319. * 6/MAINFRAME ORDINAL (CONFIG SYMBOL *MFORD*)
  320. * 6/NUMBER FROM 1 TO 9
  321. *
  322. SRDY2 BSS 0
  323. SX6 MS.MAS*10000B+MA.MFO
  324. LX6 60D-24D
  325. SA6 SWK1
  326. SYSTEM "PPU.MAS",R,SWK1
  327. RECALL SWK1
  328.  
  329. * /--- BLOCK ROUTINES 00 000 79/02/14 15.23
  330. SA1 SWK1+1 (X1) = MF ORDINAL (INTEGER)
  331. SX2 1RA (X2) = FIRST MFORD (CHAR)
  332. IX6 X1+X2 (X6) = MF ORDINAL (CHAR)
  333. LX6 42 (X6) = 12/0,6/MIDCHAR,42/0
  334. * SX1 2RCO (X1) = 48/0,12/*CO*
  335. SA1 CONDNAM (X1) = 36/0,24/*COA1*
  336. AX1 12 (X1) = 48/0,12/*CO*
  337. LX1 48 (X1) = 12/*CO*,48/0
  338. BX6 X1+X6 (X6) = 12/*CO*,6/MIDCHAR,42/0
  339. SX1 1R1 (X1) = FIRST ORDINAL TO TRY
  340. SRDY2.1 BSS 0
  341. LX1 60-24 SHIFT ORDINAL TO 4TH CHAR
  342. BX6 X1+X6 FORM LOGIC NAME
  343. SA6 APLACOM
  344. SA6 SWK1+1 ALSO STORE IN MASTOR REQ BUFFER
  345. MASTOR SWK1,MS.ILOG IDENTIFY CONDENSOR AS LOGIC
  346. MX0 -11
  347. SA1 SWK1 CHECK MASTOR REPLY CODE
  348. AX1 12
  349. BX1 -X0*X1 (X1) = MASTOR REPLY CODE
  350. ZR X1,SRDY3 IF LOGIC NAME ACCEPTED
  351. SA1 APLACOM (X1) = LAST LOGIC NAME TRIED
  352. MX0 18
  353. BX6 X0*X1 (X6) = 12/*CO,6/MIDCHAR,42/0
  354. AX1 36 SHIFT LETTER TO BOTTOM
  355. MX0 -6
  356. BX1 -X0*X1 (X1) = LAST LETTER TRIED
  357. SX2 X1-1R9 TEST FOR ORDINAL OUT OF RANGE
  358. SX1 X1+1 INCREMENT ORDINAL
  359. NZ X2,SRDY2.1 TRY NEW LOGIC NAME
  360. SB1 =15CDUPLICATE LOGIC
  361. RJ S=MSG
  362. * /--- BLOCK ROUTINES 00 000 84/12/07 08.30
  363. RJ S=ABORT
  364. *
  365. SRDY3 MASTOR SWK1,MS.SCK,B0 START MILLISECOND CLOCK
  366. EQ S=READY
  367. *
  368. * /--- BLOCK ROUTINES 00 000 79/09/22 20.21
  369. *
  370. *
  371. *
  372. * S=KILL TERMINATE THIS JOB
  373. *
  374. ENTRY S=KILL
  375. S=KILL EQ *
  376. ENDRUN
  377. EQ S=KILL
  378. *
  379. *
  380. *
  381. * S=ABORT ABORT CONTROL POINT
  382. *
  383. *
  384. ENTRY S=ABORT
  385. S=ABORT EQ *
  386. ABORT
  387. + EQ *
  388. *
  389. * /--- BLOCK ROUTINES 00 000 79/07/05 03.28
  390. SETR SPACE 5,11
  391. ** S=SETR - SET ADDRESS OF MASTOR REQUEST BUFFER
  392. *
  393. * INFORMS MASTOR OF REQUEST BUFFER ADDRESS
  394. *
  395. * ENTRY - ((B1)) = REQUEST BUFFER ADDRESS
  396. * (B2) = LENGTH OF REQUEST BUFFER
  397.  
  398.  
  399. ENTRY S=SETR
  400.  
  401. S=SETR PS
  402. SA1 B1
  403. BX6 X1
  404. SA6 SWK1+1
  405. SX6 B2 LENGTH OF REQUEST BUFFER
  406. MX1 1
  407. BX6 X1+X6 SET *NO REPLY AREA* FLAG
  408. SA6 A6+1
  409. SX6 3RNEW MARK AS NEW STYLE AREA
  410. SA6 A6+1
  411. MASTOR SWK1,MS.SETR
  412. SA1 SWK1
  413. MX0 -11
  414. AX1 12
  415. BX1 -X0*X1
  416. ZR X1,S=SETR IF NO ERROR
  417. SB1 =C/ MASTOR SETR REJECT./
  418. RJ S=MSG
  419. RJ S=ABORT
  420. * /--- BLOCK ECSPRTY 00 000 81/06/25 04.18
  421. *
  422. ENTRY ECSPRTY
  423. *
  424. *
  425. *
  426. *
  427. LIST X
  428. *
  429. *CALL ECSPRTY
  430. *
  431. *
  432. * /--- BLOCK END 00 000 79/02/14 15.22
  433. *
  434. CONDNAM DATA 4R"LGC.COND" (COA1)
  435. MSCKCNT BSSZ 1 COUNT WHEN S=WAIT STARTS CLOCK
  436. OSYSCLK BSS 1 PREVIOUS VALUE OF *SYSCLOK*
  437. ENDTIME BSS 1 TIME TO LEAVE RECALL (S=WAIT)
  438. *
  439. *
  440. SWK1 BSS 1
  441. SWK2 BSS 1
  442. SWK3 BSS 1
  443. *
  444. *
  445. END