CDC Community

๐Ÿ”น Historical Conservation ๐Ÿ”น

User Tools

Site Tools


plato.source:plaopl:ecstst

ECSTST

Table Of Contents

  • [00003] ECSTST ECS TEST ROUTINE
  • [00004] DEFINITIONS
  • [00036] INITIALIZATIONS
  • [00050] ECSTST
  • [00102] GENERATE TEST PATTERN
  • [00182] ROUTINES
  • [00324] ECS PARITY ERROR PROCESSING
  • [00520] STORAGE DEFINITIONS

Source Code

ECSTST.txt
  1. ECSTST
  2. IDENT ECSTST,111B,ECSTST
  3. TITLE ECSTST ECS TEST ROUTINE
  4. TITLE DEFINITIONS
  5. *
  6. *
  7. ABS
  8. SST
  9. SYSCOM
  10. *
  11. *
  12. *CALL COMCMAC
  13. *CALL PLASMRC
  14. *
  15. ECSDIM EQU 2000B ECS FIELD LENGTH
  16. BUFDIM EQU 2000B READ/WRITE BUFFER LENGTHS
  17. *
  18. TRLIM EQU 200B MAXIMUM TRANSFER LENGTH
  19. BILIM EQU 200B MAXIMUM BIAS
  20. *
  21. *
  22. PURGMAC CALL
  23. CALL MACRO NAME,N1,N2,N3,N4,N5,N6
  24. NN DECMIC 0
  25. ECHO 5,P1=(N1,N2,N3,N4,N5,N6),P2=(1,2,3,4,5,6)
  26. IFC EQ,*P1**,1
  27. STOPDUP
  28. IFC NE,*P1**,2
  29. SB_P2 P1
  30. NN DECMIC P2
  31. RJ _NAME_
  32. BSS 0
  33. ENDM
  34. *
  35. *
  36. TITLE INITIALIZATIONS
  37. *
  38. *
  39. *
  40. ORG 111B
  41. ECSTST SX6 LWA+101B SET CM FIELD LENGTH
  42. AX6 6
  43. LX6 30+6 POSITION FOR MEMORY REQUEST
  44. SA6 CMFL
  45. CALL S=CM,CMFL
  46. SX6 ECSDIM SET ECS FIELD LENGTH
  47. SA6 CMFL
  48. CALL S=ECS,CMFL
  49. *
  50. TITLE ECSTST
  51. *
  52. *
  53. *
  54. MAIN MX6 0 RE-SET PATTERN INDEX
  55. SA6 IP
  56. *
  57. M100 CALL S=WAIT,500 IDLE
  58. CALL PATTERN GENERATE NEXT TEST PATTERN
  59. SB6 B0 B6 = BUFFER INDEX
  60. SB7 1 B7 = TRANSFER LENGTH
  61. *
  62. * WRITE, READ, VERIFY PATTERN
  63. *
  64. M200 SA0 WBUFF SET CM ADDRESS
  65. SX0 B6 SET ECS ADDRESS
  66. + WE B7 WRITE PATTERN TO ECS
  67. RJ ECSPRTY
  68. SA0 B6+RBUFF SET CM ADDRESS
  69. + RE B7 READ PATTERN FROM ECS
  70. RJ ECSPRTY
  71. SB1 B7-1 B1 = INDEX WITHIN TRANSFER
  72. SB2 B6+RBUFF B2 = READ BUFFER ADDRESS
  73. SB3 1 B3 = 1
  74. *
  75. M220 SA1 B1+B2 GET READ BUFFER ENTRY
  76. SA2 B1+WBUFF GET WRITE BUFFER ENTRY
  77. IX6 X1-X2
  78. NZ X6,M500 JUMP IF VERIFY ERROR
  79. SB1 B1-B3
  80. PL B1,M220 END TEST
  81. *
  82. * INCREMENT TRANSFER LENGTH
  83. *
  84. SB7 B7+1 INCREMENT TRANSFER LENGTH
  85. SB1 B7-TRLIM-1
  86. NG B1,M200
  87. SB7 1 RE-SET TRANSFER LENGTH
  88. *
  89. * INCREMENT BUFFER INDEX
  90. *
  91. SB6 B6+1 INCREMENT BUFFER INDEX
  92. SB1 B6-BILIM-1
  93. NG B1,M200
  94. EQ M100 GENERATE NEXT PATTERN
  95. *
  96. *
  97. * PROCESS VERIFY ERROR
  98. *
  99. M500 CALL S=MSG,(=12CVERIFY ERROR)
  100. EQ MAIN
  101. *
  102. TITLE GENERATE TEST PATTERN
  103. *
  104. *
  105. *
  106. * PATTERN GENERATE TEST PATTERN
  107. * ON ENTRY - *IP* = INDEX OF PATTERN
  108. *
  109. *
  110. PATTERN EQ *
  111. SA1 IP GET PATTERN INDEX
  112. SB1 X1
  113. SX6 X1+1 ADVANCE INDEX
  114. SA6 A1
  115. JP B1+*+1 JUMP TO APPROPRIATE ROUTINE
  116. *
  117. + EQ PAT000 0 = ALL ZEROS
  118. + EQ PAT100 1 = ALL ONES
  119. + EQ PAT200 2 = ONE BIT SET
  120. + EQ PAT300 3 = ONE BIT CLEAR
  121. + EQ PAT400 4 = ALTERNATING ONES/ZEROS
  122. + EQ PAT500 5 = ADDRESS
  123. + EQ PAT600 6 = COMPLEMENTED ADDRESS
  124. + EQ PAT990 RE-SET INDEX
  125. *
  126. *
  127. PAT000 MX6 0 X6 = PATTERN
  128. EQ PATSHF
  129. *
  130. PAT100 MX6 60 X6 = PATTERN
  131. EQ PATSHF
  132. *
  133. PAT200 SX6 1 X6 = PATTERN
  134. EQ PATSHF
  135. *
  136. PAT300 MX6 -1 X6 = PATTERN
  137. EQ PATSHF
  138. *
  139. PAT400 SA1 =52525252525252525252B
  140. BX6 X1 X6 = PATTERN
  141. EQ PATSHF
  142. *
  143. *
  144. PAT500 SB1 BUFDIM-1 B1 = INDEX
  145. PAT510 SX6 B1+1
  146. BX1 X6 FORM PATTERN = 30/INDX, 30/INDX
  147. LX1 30
  148. BX6 X1+X6
  149. SA6 B1+RBUFF SET NEXT WORD OF READ BUFFER
  150. SA6 B1+WBUFF SET NEXT WORD OF WRITE BUFFER
  151. SB1 B1-1
  152. PL B1,PAT510 END TEST
  153. EQ PATTERN
  154. *
  155. PAT600 SB1 BUFDIM-1 B1 = INDEX
  156. PAT610 SX6 B1+1
  157. BX1 X6 FORM PATTERN = 30/INDX, 30/INDX
  158. LX1 30
  159. BX6 X1+X6
  160. BX6 -X6 COMPLEMENT ADDRESSES
  161. SA6 B1+RBUFF SET NEXT WORD OF READ BUFFER
  162. SA6 B1+WBUFF SET NEXT WORD OF WRITE BUFFER
  163. SB1 B1-1
  164. PL B1,PAT610 END TEST
  165. EQ PATTERN
  166. *
  167. *
  168. PAT990 SX6 1 RE-SET INDEX
  169. SA6 IP
  170. EQ PAT000
  171. *
  172. *
  173. PATSHF SB1 BUFDIM-1 B1 = BUFFER INDEX
  174. PATS20 SA6 B1+RBUFF SET NEXT WORD OF READ BUFFER
  175. SA6 B1+WBUFF SET NEXT WORD OF WRITE BUFFER
  176. LX6 1 SHIFT PATTERN
  177. SB1 B1-1
  178. PL B1,PATS20 END TEST
  179. EQ PATTERN
  180. *
  181. *
  182. TITLE ROUTINES
  183. *
  184. *
  185. *
  186. * S=MAS
  187. * CALLS *MAS* PPU TO POST REQUEST TO *MASTOR*
  188. * ON ENTRY - *MASREQ* = REQUEST
  189. *
  190. *
  191. S=MAS EQ *
  192. SYSTEM MAS,R,MASREQ
  193. RECALL MASREQ
  194. EQ S=MAS
  195. *
  196. *
  197. *
  198. * S=MZER ZERO *MASTOR* REQUEST AREA
  199. *
  200. S=MZER EQ *
  201. MX6 0 X6 = 0
  202. SX1 MS.MDIM X1 = INDEX IN REQUEST BUFFER
  203. *
  204. S=MZ10 SX1 X1-1 END TEST
  205. NG X1,S=MZER
  206. SA6 X1+MASREQ ZERO NEXT WORD OF REQUEST BUFF
  207. EQ S=MZ10
  208. *
  209. *
  210. *
  211. * S=WAIT IDLE
  212. * ON ENTRY - B1 = NUMBER OF RECALL CYCLES TO IDLE
  213. *
  214. S=WAIT EQ *
  215. SX6 B1 SET NUMBER TIMES TO RECALL
  216. SA6 SWK1
  217. *
  218. S=W10 RECALL IDLE
  219. SA1 SWK1
  220. SX6 X1-1 END TEST
  221. ZR X6,S=WAIT
  222. NG X6,S=WAIT
  223. SA6 A1 UPDATE COUNTER
  224. EQ S=W10
  225. *
  226. *
  227. *
  228. *
  229. * S=BMSG
  230. * OUTPUTS B-DISPLAY MESSAGE
  231. * ON ENTRY - B1 = ADDRESS OF MESSAGE
  232. *
  233. *
  234. S=BMSG EQ *
  235. MESSAGE B1,1,RECALL
  236. EQ S=BMSG
  237. *
  238. *
  239. *
  240. * S=MSG
  241. * OUTPUTS DAYFILE MESSAGE
  242. * ON ENTRY - B1 = ADDRESS OF MESSAGE
  243. *
  244. *
  245. S=MSG EQ *
  246. MESSAGE B1,0,RECALL
  247. EQ S=MSG
  248. *
  249. *
  250. * S=CM OBTAIN CENTRAL MEMORY
  251. * ON ENTRY - B1 = ADDRESS OF MEMORY REQUEST WORD
  252. *
  253. S=CM EQ *
  254. MX0 30
  255. SA1 B1
  256. BX6 X0*X1 SET UP ARGUMENT
  257. SA6 SWK1
  258. MEMORY CM,SWK1,RECALL
  259. EQ S=CM
  260. *
  261. *
  262. *
  263. * S=ECS OBTAIN ECS
  264. * ON ENTRY - B1 = ADDRESS OF AMOUNT OF ECS REQUIRED
  265. *
  266. S=ECS EQ *
  267. CALL S=MZER ZERO *MASTOR* REQUEST AREA
  268. SX6 MS.ECS SET *MASTOR* REQUEST CODE
  269. LX6 60-12
  270. SA6 MASREQ
  271. SA1 B1 SET AMOUNT OF ECS REQUESTED
  272. BX6 X1
  273. SA6 MASREQ+1
  274. *
  275. S=EC10 CALL S=MAS ATTEMPT TO OBTAIN ECS
  276. MX0 -11
  277. SA1 MASREQ CHECK REPLY CODE
  278. AX1 12
  279. BX1 -X0*X1
  280. ZR X1,S=ECS EXIT IF REQUEST COMPLETED
  281. CALL S=BMSG,(=25CWAITING FOR ECS)
  282. CALL S=WAIT,100
  283. EQ S=EC10
  284. *
  285. *
  286. *
  287. *
  288. * S=OTOA CONVERT OCTAL TO DISPLAY CODE
  289. * ON ENTRY - X1 = OCTAL TO CONVERT
  290. * ON EXIT - X6,X7 = DISPLAY CODE
  291. *
  292. *
  293. S=OTOA EQ *
  294. SB1 1 B1 = 1
  295. CALL WOD
  296. EQ S=OTOA
  297. *
  298. *
  299. *
  300. * S=ATOO CONVERT DISPLAY CODE TO OCTAL
  301. * ON ENTRY - X1 = DISPLAY CODE TO CONVERT
  302. * ON EXIT - X6 = OCTAL
  303. * X7 = 0 = CONVERSION SUCCESSFUL
  304. * -1 = ILLEGAL OCTAL VALUE
  305. *
  306. *
  307. S=ATOO EQ *
  308. SB1 1 B1 = 1
  309. SB7 B0 B7 = 0 = OCTAL
  310. BX5 X1 X5 = DISPLAY CODE
  311. CALL DXB
  312. MX7 0 X7 = 0 = OK
  313. ZR X4,S=ATOO
  314. MX7 -1 X7 = -1 = ERROR
  315. EQ S=ATOO
  316. *
  317. *
  318. *
  319. *CALL COMCSYS
  320. *CALL COMCWOD
  321. *CALL COMCDXB
  322. *
  323. *
  324. TITLE ECS PARITY ERROR PROCESSING
  325. *
  326. *
  327. *
  328. * -ECSPRTY-
  329. * ECS PARITY ERROR PROCESSING FOR ROUTINES WHICH DO
  330. * NOT PROVIDE FOR ERROR RECOVERY
  331. *
  332. * OUTPUTS ECS ERROR DAYFILE MESSAGES AND TERMINATES
  333. * JOB
  334. *
  335. * USES MACROS - CALL, SYSTEM
  336. * USES SYMBOLS - MTEXT, ECSRA, ECSRET
  337. * CALLS - S=OTOA, S=MSG
  338. *
  339. * AFTER ERROR PROCESSING CONTROL IS RETURNED TO THE
  340. * ADDRESS INDICATED BY *ECSRET*
  341. *
  342. * IF CELL *ECSRA* IS DEFINED IT IS ASSUMED TO HOLD
  343. * THE ECS REFERENCE ADDRESS
  344. * IF CELL *ECSRA* IS NOT DEFINED A CALL TO *MASTOR*
  345. * IS MADE TO OBTAIN THE ECS RA
  346. *
  347. *
  348. QUAL ECSPRTY
  349. *
  350. *
  351. ECSPRTY EQ *
  352. SA1 ECSPRTY
  353. LX1 30
  354. SX6 X1 SAVE ADDRESS
  355. SA6 PLOC
  356. SA1 X1-1 LOAD RE/WE INSTRUCTION
  357. *
  358. * GET B-REGISTER NUMBER AND TRANSFER LENGTH
  359. *
  360. LX1 12 POSITION B-REGISTER NUMBER
  361. MX2 -3
  362. BX2 -X2*X1 MASK OFF B-REGISTER NUMBER
  363. LX2 45
  364. SA3 KSB1 SB1 X1+B0 INSTRUCTION
  365. BX6 X2+X3 ATTACH REGISTER NUMBER
  366. SA6 ERR10 PLANT INSTRUCTION
  367. LX1 18 POSITION LENGTH OF RE/WE
  368. + NO AVOID ERROR MODE 0
  369. *
  370. * SEARCH TO FIND EXACT ADDRESS ERROR OCCURRED AT
  371. *
  372. ERR10 BSSZ 1 SB1 X1+BN
  373. BX6 X0
  374. SA6 TFWA SAVE FWA OF ECS TRANSFER
  375. SX6 B1
  376. SA6 TLTH SAVE LENGTH OF TRANSFER
  377. MX6 -1
  378. SA6 ERRADD MARK EXACT ADDR NOT KNOWN YET
  379. SX1 1
  380. SA0 CONTNT
  381. *
  382. ERR20 SB1 B1-1 END TEST
  383. NG B1,ERR40 EXIT IF CANNOT FIND ERROR
  384. + RE 1
  385. EQ ERR30 JUMP IF FOUND THE ERROR
  386. IX0 X0+X1 ADVANCE ECS ADDRESS
  387. EQ ERR20
  388. *
  389. *
  390. * TEST FAILING LOCATION WITH ALL ZERO/ONES PATTERNS
  391. *
  392. ERR30 BX6 X0 SAVE EXACT ADDRESS OF ERROR
  393. SA6 ERRADD
  394. SA0 ZRPAT OVERWRITE WITH ZERO PATTERN
  395. + WE 1
  396. + RE 1 RE-READ BAD LOCATION
  397. + SA0 ONPAT OVERWRITE WITH ONES PATTERN
  398. + WE 1
  399. + RE 1 RE-READ BAD LOCATION
  400. *
  401. *
  402. * OBTAIN ECS REFERENCE ADDRESS
  403. *
  404. ERR40 BSS 0
  405. *
  406. EPIF IF -DEF,ECSRA
  407. SYSTEM MAS,R,XRAQ
  408. SA1 XRAQ+2 LOAD ECS REFERENCE ADDRESS
  409. BX6 X1
  410. SA6 XXRA
  411. EPIF ELSE
  412. SA1 ECSRA LOAD ECS REFERENCE ADDRESS
  413. BX6 X1
  414. SA6 XXRA
  415. EPIF ENDIF
  416. *
  417. * FORMAT ECS ERROR DAYFILE MESSAGES
  418. *
  419. SA1 TFWA LOAD ECS FWA OF TRANSFER
  420. SA2 XXRA LOAD ECS REFERENCE ADDRESS
  421. IX1 X1+X2
  422. CALL S=OTOA
  423. MX0 42
  424. LX7 18 POSTION 7 CHAR DISPLAY CODES
  425. BX7 X0*X7
  426. SA7 LINE3+1
  427. *
  428. SA1 TLTH LOAD LENGTH OF ECS TRANSFER
  429. CALL S=OTOA
  430. MX0 42
  431. LX7 18 POSTION 7 CHAR DISPLAY CODES
  432. BX7 X0*X7
  433. SA7 LINE4+1
  434. *
  435. SA1 PLOC LOAD PROGRAM ADDRESS
  436. CALL S=OTOA
  437. MX0 42
  438. LX7 18 POSTION 7 CHAR DISPLAY CODES
  439. BX7 X0*X7
  440. SA7 LINE5+1
  441. *
  442. SA1 ERRADD LOAD ECS ADDR OF FAILING WORD
  443. NG X1,ERR50
  444. SA2 XXRA LOAD ECS REFERENCE ADDRESS
  445. IX1 X1+X2
  446. CALL S=OTOA
  447. MX0 42
  448. LX7 18 POSTION 7 CHAR DISPLAY CODES
  449. BX7 X0*X7
  450. SA7 LINE2+1
  451. *
  452. SA1 CONTNT LOAD CONTENTS OF FAILING WORD
  453. CALL S=OTOA
  454. SA6 LINE6+1
  455. SA7 LINE6+2
  456. *
  457. SA1 ZRPAT LOAD ZERO TEST PATTERN
  458. CALL S=OTOA
  459. SA6 LINE7+1
  460. SA7 LINE7+2
  461. *
  462. SA1 ONPAT LOAD ONES TEST PATTERN
  463. CALL S=OTOA
  464. SA6 LINE8+1
  465. SA7 LINE8+2
  466. *
  467. * OUTPUT DAYFILE MESSAGES
  468. *
  469. ERR50 CALL S=MSG,LINE0
  470. CALL S=MSG,LINE1
  471. CALL S=MSG,LINE2
  472. CALL S=MSG,LINE3
  473. CALL S=MSG,LINE4
  474. CALL S=MSG,LINE5
  475. CALL S=MSG,LINE6
  476. CALL S=MSG,LINE7
  477. CALL S=MSG,LINE8
  478. CALL S=MSG,LINE0
  479. *
  480. MX6 0 RESTORE ZERO PATTERN
  481. SA6 ZRPAT
  482. MX6 60 RESTORE ONES PATTERN
  483. SA6 ONPAT
  484. SA1 ECSRET
  485. SB1 X1 GET RETURN ADDRESS
  486. JP B1
  487. *
  488. *
  489. *
  490. *
  491. KSB1 SB1 X1+B0
  492. *
  493. LINE0 DIS ,*+++++++++++++++++++++++++++++++++++*
  494. LINE1 DIS ,*ECS PARITY ERROR*
  495. LINE2 DIS ,*ECS ADDR UNKNOWN*
  496. LINE3 DIS ,*FWA TRANS XXXXXXX*
  497. LINE4 DIS ,*LTH TRANS XXXXXXX*
  498. LINE5 DIS ,*CALL ADDR XXXXXXX*
  499. LINE6 DIS ,*CONTENTS UNKNOWN *
  500. LINE7 DIS ,*ZEROS UNKNOWN *
  501. LINE8 DIS ,*ONES UNKNOWN *
  502. *
  503. TFWA BSSZ 1 FWA OF ECS TRANSFER
  504. TLTH BSSZ 1 LENGTH OF TRANSFER
  505. ERRADD BSSZ 1 ECS ADDRESS OF BAD WORD
  506. CONTNT BSSZ 1 CONTENTS OF BAD WORD
  507. PLOC BSSZ 1 PROGRAM CALL LOCATION
  508. ZRPAT BSSZ 1 ZEROS
  509. ONPAT VFD 60/-0B ONES
  510. XXRA BSSZ 1 ECS REFERENCE ADDRESS
  511. *
  512. XRAQ VFD 12/MS.EFL,48/0
  513. BSSZ MS.MDIM-1
  514. *
  515. *
  516. QUAL *
  517. ECSPRTY EQU /ECSPRTY/ECSPRTY
  518. *
  519. *
  520. TITLE STORAGE DEFINITIONS
  521. *
  522. *
  523. *
  524. CMFL BSS 1 CM FIELD LENGTH
  525. *
  526. SWK1 BSS 1
  527. SWK2 BSS 1
  528. SWK3 BSS 1
  529. MASREQ BSSZ MS.MDIM MASTOR REQUEST AREA
  530. *
  531. IP DATA 0 PATTERN INDEX
  532. *
  533. ECSRET VFD 60/MAIN RETURN ADDRESS FOR ECS ERRORS
  534. *
  535. WBUFF BSSZ BUFDIM WRITE BUFFER
  536. RBUFF BSSZ BUFDIM READ BUFFER
  537. *
  538. *
  539. LWA END
plato.source/plaopl/ecstst.txt ยท Last modified: 2021/02/06 16:22 by 127.0.0.1