Table of Contents

ELM

Table Of Contents

  • [00007] ELM - ERROR LOG MESSAGE PROCESSOR.
  • [00009] ERROR LOG MESSAGE PROCESSOR.
  • [00101] MAIN PROGRAM.
  • [00141] ABT - ABORT PROGRAM.
  • [00149] ECS - ERROR PROCESSOR.
  • [00150] ECS - PROCESS ECS ERROR MESSAGES.
  • [00348] PRS - PRESET PROGRAM.

Source Code

ELM.txt
  1. IDENT ELM,ELM
  2. PERIPH
  3. BASE MIXED
  4. SST
  5. *COMMENT ELM - ERROR LOG MESSAGE PROCESSOR.
  6. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  7. TITLE ELM - ERROR LOG MESSAGE PROCESSOR.
  8. SPACE 4
  9. *** ELM - ERROR LOG MESSAGE PROCESSOR.
  10. * S. L. BETH. 77/03/24.
  11. SPACE 4
  12. *** ELM IS CALLED BY USER PROGRAMS TO LOG MESSAGES
  13. * IN THE BINARY MAINTENANCE LOG.
  14. SPACE 4
  15. *** CALL.
  16. *
  17. *
  18. *T RA+1 18/ *ELM*,6/ R,18/ 0,18/ ADDR
  19. *
  20. * ECS ERROR INFORMATION HAS THE FOLLOWING FORMAT.
  21. *
  22. *T ADDR VFD 24/ 0,12/ L, 12/ DC,11/ STATUS,1/ C
  23. *T VFD 36/ 0,6/ RW,6/ 0,12/ WC
  24. *T VFD 6/, 6/ CD, 6/ RT, 18/ CMA, 24/ EMA
  25. *T VFD 60/ BAD DATA
  26. *T VFD 60/ GOOD DATA
  27. *
  28. * L LENGTH OF ERROR BLOCK.
  29. *
  30. * DC DEVICE CODE *EC* = ECS.
  31. *
  32. * STATUS
  33. * 1 = DAYFILE MESSAGE LIMIT.
  34. *
  35. * C COMPLETION BIT.
  36. *
  37. * RW READ / WRITE FLAG.
  38. * 1 = READ.
  39. * 2 = WRITE.
  40. *
  41. * WC WORD COUNT OF BLOCK TRANSFER.
  42. *
  43. * CD RECOVERY CONDITIONS.
  44. * 0 = BLOCK REREAD RECOVERED.
  45. * 1 = DATA NOT RECOVERED.
  46. *
  47. * RT RETRY COUNT.
  48. *
  49. * CMA CM ADDRESS OF TRANSFER.
  50. *
  51. * EMA EXTENDED MEMORY ADDRESS OF TRANSFER.
  52. SPACE 4
  53. *** OPERATOR MESSAGES.
  54. *
  55. *
  56. * * ELM - ARGUMENT ERROR.* PROCESSOR WAS CALLED WITH AN
  57. * ILLEGAL DEVICE CODE OR ERROR BLOCK ADDRESS.
  58. *
  59. * * ELM - EXTENDED MEMORY NOT ASSIGNED.* A CALL WAS MADE TO
  60. * REPORT AN EXTENDED MEMORY ERROR AND THE CONTROL POINT
  61. * DID NOT HAVE EXTENDED MEMORY ASSIGNED.
  62. *
  63. * * ELM - DAYFILE MESSAGE LIMIT.* A CALL WAS MADE TO REPORT
  64. * AN ERROR AND THE USERS DAYFILE MESSAGE LIMIT HAD BEEN
  65. * REACHED.
  66. SPACE 4
  67. *CALL COMPMAC
  68. *CALL COMSCPS
  69. *CALL COMSDFS
  70. *CALL COMSMSP
  71. *CALL COMSPIM
  72. SPACE 4,10
  73. ** EQUATES FOR ERROR BUFFER.
  74.  
  75.  
  76. BLKL EQU 2 BLOCK LENGTH
  77. DVCD EQU 3 DEVICE CODE
  78. COMP EQU 4 COMPLETION BIT
  79. RWFG EQU 1*5+3 READ/WRITE FLAG
  80. WDCT EQU 1*5+3 WORD COUNT
  81. COND EQU 2*5 RECOVERY CONDITIONS
  82. RTCT EQU 2*5+1 RETRY COUNT
  83. CMAD EQU 2*5+1 RELATIVE CM ADDRESS
  84. EMAD EQU 2*5+3 RELATIVE EM ADDRESS
  85. BDDA EQU 3*5 BAD DATA
  86. GDDA EQU 4*5 GOOD DATA
  87. BUFL EQU 5*5 BUFFER LENGTH
  88. SPACE 4
  89. * EQUATES FOR STATUS REPLIES.
  90.  
  91.  
  92. LDFM EQU 1 DAYFILE LIMIT REACHED
  93. SPACE 4
  94. ** DIRECT LOCATION ASSIGNMENTS.
  95.  
  96.  
  97. CN EQU 27 RECOVERED/UNRECOVERED FLAG
  98. CW EQU 30 - 34 CONTROL WORDS
  99. ST EQU 36 STATUS TO RETURN
  100. ELM TITLE MAIN PROGRAM.
  101. ** ELM - MAIN PROGRAM.
  102.  
  103.  
  104. ORG PPFW
  105.  
  106. ELM RJM PRS GET ERROR PROCESSOR ADDRESS
  107. ZJN ELM1 IF DAYFILE MESSAGE LIMIT
  108. STM ELMA
  109. RJM * CALL ERROR PROCESSOR
  110. ELMA EQU *-1
  111. LDN 1 DECREMENT DAYFILE MESSAGE LIMIT
  112. STD CM+1
  113. STD CM+2
  114. LDD MA
  115. CWM ELMB,ON
  116. MONITOR UADM UPDATE DAYFILE LIMIT
  117. ELM1 LDD ST SET STATUS AND COMPLETION BIT
  118. SHN 1
  119. ADN 1
  120. RAM BUF+COMP
  121. LDD IR+3
  122. LPN 77
  123. SHN 6
  124. ADD RA
  125. SHN 6
  126. ADD IR+4
  127. CWM BUF,ON
  128. MONITOR DPPM DROP PPU
  129. LJM PPR RETURN TO PP RESIDENT
  130.  
  131.  
  132. * BUFFER FOR *UADM* FUNCTION.
  133.  
  134.  
  135. ELMB CON CDCS DECREMENT FIELD
  136. CON ACLW
  137. CON 36D*100+12D
  138. CON 0
  139. CON 0
  140. ABT SPACE 4,10
  141. ** ABT - ABORT PROGRAM.
  142. *
  143. * ENTRY (A) = ERROR MESSAGE ADDRESS.
  144.  
  145.  
  146. ABT RJM DFM
  147. MONITOR ABTM
  148. LJM PPR RETURN TO PP RESIDENT
  149. TITLE ECS - ERROR PROCESSOR.
  150. ** ECS - PROCESS ECS ERROR MESSAGES.
  151. *
  152. * ENTRY (BUF) = ECS ERROR BUFFER.
  153. *
  154. * EXIT TO *ABT* IF ECS NOT ASSIGNED.
  155.  
  156.  
  157. ECS SUBR ENTRY/EXIT
  158. LDD CP READ ECS CONTROL WORD
  159. ADN ECSW
  160. CRD CW
  161. LDD CW+4 CHECK FOR ECS ASSIGNED
  162. NJN ECS1 IF USER ECS ASSIGNED
  163. LDC =C* ELM - EXTENDED MEMORY NOT ASSIGNED.*
  164. LJM ABT ABORT JOB
  165.  
  166. ECS1 LDM BUF+RWFG SET READ/WRITE FLAG IN MESSAGE
  167. SHN -6
  168. LPN 2
  169. STM MSGA+6
  170. LDN PARE SET ERROR CODE
  171. STM MSGA+12
  172. LDC /COMSDFS/HS0040+/COMSDFS/DELM*400
  173. STM MSGA+1
  174. LDM BUF+RTCT ADD RETRY COUNT TO MESSAGE
  175. SCN 77
  176. RAM MSGA+6
  177. LDM BUF+COND SET RECOVERED/UNRECOVERED STATUS
  178. LPN 1
  179. RAM MSGA+6
  180. LDK MMFL ADD MACHINE ID TO MESSAGE
  181. CRD CM
  182. LDD CM
  183. STM MSGA+10
  184.  
  185. * THE WORD COUNT SUPPLIED IN THE PARAMETER BLOCK IS THE WORD
  186. * COUNT OF THE ENTIRE BLOCK SPECIFIED BY THE USER. THE
  187. * EXTENDED MEMORY ADDRESS, HOWEVER, APPLIES TO A PARTICULAR
  188. * ADDRESS IN ERROR. THE WORD COUNT REPORTED IN THE BML
  189. * MESSAGE IS THEREFORE ALWAYS ONE, TO INDICATE THE EXTENDED
  190. * MEMORY ADDRESS IS AN ACTUAL ERROR ADDRESS INSTEAD OF THE
  191. * ADDRESS OF A BLOCK CONTAINING AN ERROR.
  192.  
  193. LDN 1 ADD WORD COUNT TO MESSAGE
  194. STM MSGA+21
  195.  
  196. * DETERMINE THE MESSAGE ID WHICH CORRESPONDS TO THIS DEVICE
  197. * AND ADD IT TO THE BML MESSAGE HEADER.
  198.  
  199. LDK UEML ADD EST ORDINAL TO MESSAGE
  200. CRD CM
  201. LDD CM+2
  202. LPC 777
  203. STD T5
  204. STM MSGA+5
  205. ZJN ECS3 IF NO EQUIPMENT
  206. SFA EST GET EST ENTRY FOR DEVICE
  207. ADK EQDE
  208. CRD CM
  209. LDD CM+4 GET WORD *DILL* FROM THE MST
  210. SHN 3
  211. ADK DILL
  212. CRD CM
  213. LDN ECSBL
  214. STD T1
  215. ECS2 LCN 2 SCAN TABLE FOR A MATCH
  216. RAD T1
  217. ZJN ECS3 IF DEVICE NOT FOUND IN TABLE
  218. LDM ECSB-2,T1
  219. LMD CM+3
  220. LPC 707
  221. NJN ECS2 IF A MATCH HAS NOT YET BEEN FOUND
  222. LDM ECSB-1,T1
  223. ECS3 STM MSGA+0 ADD MESSAGE ID TO MESSAGE
  224.  
  225. * CONVERT EM ADDRESS AND ADD IT TO THE BML MESSAGE.
  226.  
  227. LDD CW+2 ADJUST FOR RAE
  228. SHN 14
  229. ADD CW+3
  230. ECSA SHN 0
  231. * SHN 17+UESC
  232. STD T0
  233. SHN -6
  234. SCN 77
  235. RAM BUF+EMAD+1
  236. STM MSGA+23
  237. SHN -14
  238. ADD T0
  239. RAM BUF+EMAD
  240. STM MSGA+22
  241.  
  242. * CONVERT CM ADDRESS AND ADD IT TO THE BML MESSAGE.
  243.  
  244. LDD RA
  245. SHN 6
  246. RAM BUF+CMAD+1
  247. STM MSGA+16
  248. SHN -14
  249. RAM BUF+CMAD
  250. LPN 77
  251. STM MSGA+15
  252.  
  253. * ADD BAD DATA AND GOOD DATA TO MESSAGE. BAD DATA, (DATA
  254. * RECEIVED OR SENT ON THE FIRST TRY) IS ALWAYS PROVIDED IN THE
  255. * PARAMETER BLOCK. GOOD DATA (DATA RECEIVED ON THE SECOND
  256. * ATTEMPT) IS ONLY PROVIDED IN THE CASE OF A RECOVERED READ
  257. * EXTENDED MEMORY ERROR IN WHICH THE DATA FROM THE SECOND
  258. * READ ATTEMPT IS DIFFERENT FROM THE DATA RECEIVED THE FIRST
  259. * TIME.
  260.  
  261. LDN 2
  262. STD T1
  263. LDD MA
  264. CWM BUF+BDDA,ON
  265. CWM BUF+GDDA,ON
  266. SBN 2
  267. CRM MSGA+24,T1
  268. LDM BUF+COND CHECK FOR GOOD DATA
  269. LPN 1
  270. NJN ECS4 IF NO GOOD DATA
  271. LDM BUF+RWFG
  272. SHN -7
  273. LPN 1
  274. NJN ECS4 IF A WRITE PARITY ERROR
  275. LDN 3
  276. ECS4 STM MSGA+17
  277. LDN 6*5 SET BML MESSAGE LENGTH
  278. STD CM+1
  279. LDC MSGA+BMLN ISSUE BML MESSAGE
  280. RJM DFM
  281. AOM ELMB+4 BUMP MESSAGE INCREMENT
  282.  
  283. * IF THE ERROR WAS UNRECOVERED, ISSUE AN ERROR MESSAGE TO THE
  284. * ERRLOG AND TO THE SYSTEM AND JOB DAYFILES INDICATING THE TYPE
  285. * OF ERROR AND THE DEVICE ON WHICH THE ERROR OCCURRED.
  286.  
  287. LDM BUF+COND
  288. LPN 1
  289. STD CN
  290. ZJN ECS5 IF THE ERROR WAS RECOVERED
  291. LDD T5 SET EQUIPMENT ORDINAL IN MESSAGE
  292. LPN 7
  293. SHN 6
  294. RAM ECSG+2
  295. LDD T5
  296. SHN -3
  297. RJM C2D
  298. STM ECSG+1
  299. LDC ECSG ISSUE SYSTEM AND DAYFILE MESSAGES
  300. RJM DFM
  301. LDC ECSG+ERLN ISSUE ERRLOG MESSAGE
  302. RJM DFM
  303.  
  304. * INCREMENT THE RECOVERED OR UNRECOVERED ERROR COUNTER IN THE
  305. * MST FOR THE CURRENT DEVICE.
  306.  
  307. ECS5 LDD T5 SET EST ORDINAL
  308. ZJN ECS6 IF NO EQUIPMENT DEFINED
  309. STD CM+1
  310. LDD CN SET BYTE NUMBER
  311. ADN 3
  312. STD CM+2
  313. LDK ICTS SET SUBFUNCTION
  314. STD CM+3
  315. MONITOR SMDM INCREMENT COUNTER
  316. ECS6 LJM ECSX RETURN
  317.  
  318.  
  319.  
  320. ECSB BSS 0 TABLE OF MESSAGE IDENTIFERS
  321.  
  322. CON 112,/COMSDFS/RM0070 (DP) ECS I - DC135 DDP
  323. CON 110,/COMSDFS/RM0071 (DE) ECS I - COUPLER
  324. CON 212,/COMSDFS/RM0072 (DP) ECS II - DC135 DDP
  325. CON 210,/COMSDFS/RM0073 (DE) ECS II - COUPLER
  326. CON 111,/COMSDFS/RM0074 (DP) ECS I - DC145 DDP
  327. CON 211,/COMSDFS/RM0075 (DP) ECS II - DC145 DDP
  328. CON 320,/COMSDFS/RM0076 (DE) LCME - COUPLER
  329. CON 510,/COMSDFS/RM0207 (DE) ESM - COUPLER
  330. CON 511,/COMSDFS/RM0210 (DP) ESM - LOW SPEED PORT
  331.  
  332. ECSBL EQU *-ECSB+2 MESSAGE ID TABLE LENGTH
  333.  
  334. ECSG DATA C*EQ000 PE MASS STORAGE ERROR.*
  335. SPACE 4,10
  336. * COMMON DECKS.
  337.  
  338. *CALL COMPC2D
  339.  
  340. USE LITERALS
  341.  
  342.  
  343. * MESSAGE SKELETONS.
  344.  
  345.  
  346. MSGA BSSZ 6*5 BML MESSAGE BUFFER
  347. PRS SPACE 4,10
  348. ** PRS - PRESET PROGRAM.
  349. *
  350. * EXIT (BUF) = ERROR DATA BUFFER.
  351. * (A) = MESSAGE PROCESSOR ADDRESS.
  352. * (A) = 0 IF DAYFILE LIMIT REACHED.
  353. * TO *ABT* IF ARGUMENT ERROR DETECTED.
  354. *
  355. * USES T1, CM - CM+4, ST.
  356.  
  357.  
  358. PRS SUBR ENTRY/EXIT
  359. LDK MEFL
  360. CRD CM
  361. LDD CM+2
  362. SHN -11
  363. ADC SHNI+17
  364. STM ECSA
  365. LDN 0 CLEAR STATUS REPLY
  366. STD ST
  367. LDD IR+3 CHECK CALL PARAMETERS
  368. LPN 77
  369. SHN 14
  370. ADD IR+4
  371. ADN BUFL/5
  372. SHN -6
  373. SBD FL
  374. MJN PRS2 IF BUFFER NOT BEYOND FL
  375. PRS1 LDC =C* ELM - ARGUMENT ERROR.*
  376. LJM ABT ABORT JOB
  377.  
  378. PRS2 LDN BUFL/5 READ ERROR BUFFER
  379. STD T1
  380. LDD IR+3
  381. LPN 77
  382. SHN 6
  383. ADD RA
  384. SHN 6
  385. ADD IR+4
  386. CRM BUF,T1
  387. LDD CP CHECK FOR DAYFILE LIMIT
  388. ADK ACLW
  389. CRD CM
  390. LDD CM+1
  391. NJN PRS3 IF DAYFILE LIMIT NOT REACHED
  392. LDN LDFM SET DAYFILE LIMIT STATUS
  393. STD ST
  394. LDN 0
  395. LJM PRSX RETURN
  396.  
  397. PRS3 LCN 1 FIND ERROR PROCESSOR
  398. STD T1
  399. PRS4 LDN 2
  400. RAD T1
  401. LDM PRSA,T1
  402. ZJN PRS5 IF END OF TABLE
  403. LMM BUF+DVCD
  404. NJN PRS4 IF NO MATCH
  405. LDM PRSA+1,T1 SET PROCESSOR ADDRESS
  406. LJM PRSX RETURN
  407.  
  408. PRS5 LJM PRS1 ABORT
  409.  
  410. ** LIST OF ERROR PROCESSORS.
  411. *
  412. * ENTRY = 2 WORDS.
  413. *T, 12/ DEVICE CODE,12/ PROCESSOR
  414.  
  415.  
  416. PRSA VFD 12/2REC,12/ECS
  417. CON 0
  418.  
  419.  
  420. BUF EQU * ERROR DATA BUFFER
  421. END