Table of Contents

1MD

Table Of Contents

  • [00005] 1MD - MASS STORAGE ERROR MESSAGE PROCESSOR.
  • [00009] MASS STORAGE ERROR MESSAGE PROCESSOR.
  • [00189] MACRO DEFINITIONS.
  • [00214] ASSEMBLY CONSTANTS.
  • [00257] MAIN PROGRAM.
  • [00258] MPR - BUFFERED I/O MESSAGE PROCESSOR.
  • [00355] MAIN PROCESSING ROUTINES.
  • [00357] FMM - FORMAT AND ISSUE 819 BML MESSAGE.
  • [00471] SUBROUTINES.
  • [00473] CCR - CALL CONVERSION ROUTINE.
  • [00505] CDA - CONVERT DISK ADDRESS FOR *ERMD* MESSAGE.
  • [00532] CIL - CLEAR *EMB* INTERLOCK AND RESET FLAGS.
  • [00560] CLM - CLEAR MESSAGE BUFFER.
  • [00576] CMP - CONVERT BASIC MESSAGE PARAMETERS.
  • [00640] CPD - COPY ERROR DATA.
  • [00692] CSD - CONVERT STATUS DATA.
  • [00724] C1P - CONVERT FIRST PAIR OF HEX DIGITS.
  • [00742] C2P - CONVERT SECOND PAIR OF HEX DIGITS.
  • [00762] C3P - CONVERT THIRD PAIR OF HEX DIGITS.
  • [00778] C4D - CONVERT FOUR OCTAL DIGITS.
  • [00802] C6D - CONVERT SIX OCTAL DIGITS.
  • [00832] FMT - FORMAT *BML* MESSAGE.
  • [00918] GEM - GENERATE ERRLOG MESSAGE FOR MASS STORAGE ERROR.
  • [01006] GIL - GET *EMB* INTERLOCK.
  • [01035] MESSAGE GENERATORS.
  • [01089] MESSAGE GENERATORS.
  • [01182] MESSAGE GENERATORS.
  • [01227] MESSAGE GENERATORS.
  • [01369] MESSAGE GENERATORS.
  • [01485] MISCELLANEOUS.
  • [01487] TDVT - TABLE OF MASS STORAGE DEVICE TYPES.
  • [01494] TELM - TABLE OF ERRLOG MESSAGES.
  • [01539] TEMP - TABLE OF ERRLOG MESSAGE PROCESSORS.
  • [01545] TMID - TABLE OF MASS STORAGE BML MESSAGE ID-S.

Source Code

1MD.txt
  1. IDENT 1MD,MPR
  2. PERIPH
  3. BASE MIXED
  4. SST
  5. TITLE 1MD - MASS STORAGE ERROR MESSAGE PROCESSOR.
  6. *COMMENT 1MD - MS ERROR MESSAGE PROCESSOR.
  7. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  8. 1MD SPACE 4,10
  9. *** 1MD - MASS STORAGE ERROR MESSAGE PROCESSOR.
  10. * S. L. BETH 80/03/17.
  11. * R. M. DANISCH 85/12/31.
  12. * P. D. HAAS 86/07/01.
  13. SPACE 4,15
  14. *** *1MD* IS CALLED BY THE MASS STORAGE DRIVERS AND THE 819
  15. * INTERRUPT HANDLER TO ISSUE MASS STORAGE ERROR MESSAGES. FOR
  16. * 819 ERRORS, *1MD* MUST CONSTRUCT THE BML MESSAGE BEFORE
  17. * ISSUING IT. FOR ALL OTHER DEVICE TYPES, IT IS ASSUMED THE
  18. * DRIVER HAS ALREADY BUILT THE MESSAGE BEFORE CALLING *1MD*.
  19. * ONLY BML MESSAGES ARE ISSUED FOR 819 DEVICES. BUT BML, ERROR
  20. * LOG OR SYSTEM DAYFILE MESSAGES MAY BE ISSUED FOR OTHER DEVICE
  21. * TYPES.
  22. *
  23. * *1MD* MUST BE CM RESIDENT SINCE A LOAD FROM DISK MAY NOT BE
  24. * POSSIBLE IN A CONFIGURATION WHERE THE ONLY SYSTEM DEVICE IS
  25. * THE DEVICE TAKING ERRORS.
  26. 1MD SPACE 4,10
  27. *** CALL FORMAT -
  28. *
  29. *T 18/ 1MD, 1/, 5/ SCP, 24/, 12/ F
  30. *
  31. * SCP = SYSTEM CONTROL POINT NUMBER.
  32. * F = 0 IF 819 DEVICE.
  33. * 1 IF NOT 819 DEVICE.
  34. 1MD SPACE 4,10
  35. *** ERROR LOG MESSAGES.
  36. *
  37. * * 1MD - MESSAGES LOST.* - *1MD* WAS UNABLE TO FLUSH THE ERROR
  38. * BUFFER FAST ENOUGH TO KEEP UP WITH THE GENERATION OF
  39. * ERROR MESSAGES BY THE DRIVER(S).
  40. 1MD SPACE 4,20
  41. *** BINARY MAINTENANCE LOG ENTRY FORMATS.
  42. *
  43. * GENERAL FORMAT -
  44. *
  45. *T 12/ ID, 4/ DT, 1/ 0, 7/ SC, 6/ PP, 6/ CH, 6/ 0, 6/ UN, 12/ 0
  46. *T, 12/ EO, 6/ RC, 6/ FG, 6/ CR, 6/ 0, 12/ MF, 12/ 0
  47. *T, 12/ EC, 12/ CY, 12/ TS, 12/ LF, 12/ GS
  48. *T, 60/ DETAILED STATUS
  49. *T, 60/ .
  50. *T, 60/ .
  51. *T, 60/ .
  52. *T, 6/ UFC, 18/ OSR, 18/ ACR, 18/ ESR
  53. *
  54. *
  55. * EXTENDED MEMORY FORMAT -
  56. *
  57. *T 12/ ID, 4/ DT, 1/ 0, 7/ SC, 6/ PP, 6/ CH, 24/ 0
  58. *T, 12/ EO, 6/ RC, 6/ FG, 6/ CR, 6/ 0, 12/ MF, 12/ 0
  59. *T, 12/ EC, 48/ 0
  60. *T, 12/ FB, 12/ FS, 12/ WC, 24/ AD
  61. *T, 60/ ERROR DATA
  62. *T, 60/ ERROR DATA
  63. *
  64. *
  65. * 819 FORMAT -
  66. *
  67. *T 12/ ID, 4/ DT, 1/, 7/ SC, 36/ ACCESS PATH
  68. *T, 12/ EO, 6/ RC, 6/ FG, 6/ CR, 6/ 0, 24/ 0
  69. *T, 12/ PPID, 12/ BYTE COUNT, 36/ ERROR DATA
  70. *T, 60/ ERROR DATA
  71. *T, 60/ ERROR DATA
  72. *T, 60/ ERROR DATA
  73. *
  74. *
  75. * 887 / 9853 / 583X / 47444 FORMAT -
  76. *
  77. *T 12/ ID, 4/ DT, 1/0, 7/ SC, 6/PP, 6/CH, 6/EQ, 6/UN, 6/PN, 6/0
  78. *T, 12/ EO, 6/ RC, 6/ FG, 12/ 0, 12/ MF, 12/ 0
  79. *T, 12/ IF, 12/ F1, 12/ F2, 12/ F3, 12/ FF
  80. *T, 12/ RS, 12/ RB, 12/ ST, 12/ CY, 12/ TS
  81. *T, 16/ EXS, 16/ IDS, 16/ BSR, 12/ LCM
  82. *T, 04/ LCM, 16/ LFN, 16/ CRG, 16/ CRG, 08/ CRG
  83. *T, 08/ CRG, 16/ CRG, 16/ 000, 16/ 000, 04/ 000
  84. *T, 12/ 000, 16/ TRG, 16/ TRG, 16/ TRG
  85. *T, 16/ SLS, 16/ SLS, 16/ SLS, 12/ SLS
  86. *T, 04/ SLS, 16/ SLS, 16/ SLS, 16/ SLS, 08/ DVS
  87. *T, 08/ DVS, 16/ DVS, 16/ DVS, 16/ DVS, 04/ DVS
  88. *T, 12/ DVS, 16/ DVS, 16/ DVS, 16/ DVS
  89. *
  90. *
  91. * COMMON FIELD DESCRIPTIONS -
  92. *
  93. * ID MESSAGE ID. SEE *COMSDFS*.
  94. * DT DRIVER TYPE. SEE *COMSDFS*.
  95. * SC SYMPTOM CODE. SEE *COMSDFS*.
  96. * PP PP NUMBER OF DRIVER.
  97. * CH CHANNEL NUMBER.
  98. * EQ EQUIPMENT (CONTROL MODULE/CONTROLLER) NUMBER.
  99. * UN UNIT NUMBER.
  100. * PN PORT NUMBER.
  101. * EO EST ORDINAL.
  102. * RC RETRY COUNT.
  103. * FG FLAGS (GENERAL)
  104. * BIT 41 UNUSED (ZERO).
  105. * BIT 40 UNUSED (ZERO).
  106. * BIT 39 SET IF NOT FIRST BLOCK OF MESSAGE.
  107. * BIT 38 SET IF NOT LAST BLOCK OF MESSAGE.
  108. * BIT 37 SET/CLEAR IF WRITE/READ OPERATION,
  109. * RESPECTIVELY.
  110. * BIT 36 SET/CLEAR IF UNRECOVERED/RECOVERED,
  111. * RESPECTIVELY.
  112. * CR RECOVERY CHANNEL.
  113. * MF MAINFRAME ID.
  114. * EC ERROR CODE.
  115. * CY CYLINDER AT SEEK TIME.
  116. * TS TRACK AND SECTOR AT SEEK TIME.
  117. * LF LAST FUNCTION ISSUED.
  118. * GS INITIAL GENERAL STATUS.
  119.  
  120.  
  121. * EXTENDED MEMORY FIELD DESCRIPTIONS -
  122. *
  123. * FB FLAG BITS
  124. * BIT 59 UNUSED (ZERO).
  125. * BIT 58 UNUSED (ZERO).
  126. * BIT 57 UNUSED (ZERO).
  127. * BIT 56 UNUSED (ZERO).
  128. * BIT 55 UNUSED (ZERO).
  129. * BIT 54 UNUSED (ZERO).
  130. * BIT 53 UNUSED (ZERO).
  131. * BIT 52 UNUSED (ZERO).
  132. * BIT 51 UNUSED (ZERO).
  133. * BIT 50 UNUSED (ZERO).
  134. * BIT 49 SET IF ERROR DATA WORD TWO PRESENT.
  135. * BIT 48 SET IF ERROR DATA WORD ONE PRESENT.
  136. * FS FUNCTION STATUS.
  137. * WC WORD COUNT.
  138. * AD EXTENDED MEMORY ADDRESS.
  139. *
  140. *
  141. * 819 FIELD DESCRIPTIONS -
  142. *
  143. * ACCESS PATH = HARDWARE PATH TO DEVICE.
  144. * PPID = INPUT REGISTER ADDRESS OF *1MD* PPU.
  145. * BYTE COUNT = ERROR DATA BYTE COUNT.
  146. * ERROR DATA = COPY OF DATA FROM *FLPP* DRIVER.
  147. *
  148. *
  149. * 887 / 9853 / 583X /47444 FIELD DESCRIPTIONS -
  150. *
  151. * IF = INITIAL FAULT CODE.
  152. * F1 = *T* REGISTER FAULT CODE (887 ONLY).
  153. * = CHANNEL STATUS FAULT CODE (9853/583X/47444 ONLY).
  154. * F2 = STATUS FAULT CODE.
  155. * F3 = RECOVERY FAULT CODE.
  156. * FF = FINAL FAULT CODE.
  157. * RS = RESERVED.
  158. * RB = RESIDUAL BYTE COUNT.
  159. * ST = SECTORS TRANSFERED SINCE SEEK.
  160. * EXS = EXECUTION STATUS (887 ONLY).
  161. * = ENDING STATUS (9853/583X/47444 ONLY).
  162. * IDS = IDLE STATUS (887 ONLY).
  163. * BSR = BIT SIGNIFICANT RESPONSE (887 ONLY).
  164. * LCM = LAST COMMAND.
  165. * LFN = LAST ISI/IPI ADAPTOR FUNCTION.
  166. * CRG = CHANNEL REGISTER.
  167. * TRG = *T* REGISTER.
  168. * SLS = SLAVE STATUS (INCLUDES 9853/583X/47444 DEVICE STATUS).
  169. * DVS = DEVICE STATUS (887 ONLY).
  170.  
  171.  
  172. * 895 (DMA ONLY) FIELD DESCRIPTIONS -
  173. *
  174. * UFC UPPER 4 BITS OF LAST FUNCTION.
  175. * OSR OPERATIONAL STATUS REGISTER.
  176. * ACR ADAPTOR CONTROL REGISTER.
  177. * ESR ERROR STATUS REGISTER.
  178. 1MD SPACE 4,10
  179. * COMMON DECKS.
  180.  
  181.  
  182. *CALL COMPMAC
  183. QUAL$S EQU 1 DEFINE NO QUALIFICATION FOR *COMSDFS*
  184. *CALL COMSDFS
  185. *CALL COMSEVT
  186. *CALL COMSMSC
  187. *CALL COMSMSP
  188. *CALL COMSPIM
  189. TITLE MACRO DEFINITIONS.
  190. MACROS SPACE 4,10
  191. ** MACRO DEFINITIONS.
  192.  
  193.  
  194. ** TBLM = GENERATE MASS STORAGE TABLES.
  195. *
  196. * TBLM EQ
  197. * EQ = MASS STORAGE EQUIPMENT MNEMONIC.
  198.  
  199.  
  200. PURGMAC TBLM
  201.  
  202. TBLM MACRO EQ
  203. VFD 12/2R_EQ
  204. TEMP RMT
  205. .2 IF -DEF,P_EQ
  206. VFD 12/GEMX
  207. .2 ELSE 1
  208. VFD 12/P_EQ
  209. TEMP RMT
  210. TMID RMT
  211. VFD 12/MLID_EQ
  212. TMID RMT
  213. ENDM
  214. TITLE ASSEMBLY CONSTANTS.
  215. **** ASSEMBLY CONSTANTS.
  216.  
  217.  
  218. * 819 GENERAL STATUS FIELDS.
  219.  
  220. G1FD EQU 0 GROUP 1 STATUS FIELD
  221. UNFD EQU 1 UNIT FIELD
  222. CLFD EQU 2 CYLINDER ADDRESS
  223. EQFD EQU 3 3/ MUX CHANNEL, 9/ EST ORDINAL
  224. WCFD EQU 4 NUMBER OF ERROR PACKET WORDS
  225. ADFD EQU 5 HEAD AND SECTOR
  226. PCFD EQU 7 PREVIOUS CYLINDER
  227. PAFD EQU 10 PREVIOUS HEAD AND SECTOR
  228. EPFD EQU 11 START OF ERROR PACKET
  229.  
  230. * ERROR PACKET FIELDS.
  231.  
  232. G2FD EQU 0 GROUP 2 STATUS FIELD
  233. SBFD EQU 1 SUBSYSTEM STATUS
  234. CNFD EQU 2 CONTROLLER STATUS
  235. RTFD EQU 3 RETRY COUNT
  236. 1MD SPACE 4,10
  237. ** DIRECT LOCATION ASSIGNMENTS.
  238.  
  239.  
  240. BA EQU 16 BML DATA BUFFER ADDRESS
  241. PA EQU 17 ERRLOG MESSAGE PARAMETER ADDRESS
  242. ED EQU 20 ERROR DATA POINTER
  243. WC EQU 21 PP WORD COUNT
  244. MT EQU 22 MESSAGE TYPE
  245. BC EQU 23 ERROR DATA BYTE COUNT
  246. CB EQU 24 CM WORD BYTE COUNT
  247. EP EQU 25 - 31 *EMB* POINTER WORD
  248. EH EQU 32 - 36 *EMB* HEADER WORD 1
  249. EO EQU 37 ERROR MESSAGE OFFSET
  250. LN EQU 40 MESSAGE LENGTH
  251. EL EQU 41 *ERROR LOG MESSAGES ISSUED* FLAG
  252. ML EQU 42 MESSAGES LOST ACCUMULATOR
  253. MD EQU 43 - 47 MESSAGE DATA ADDRESS (5 LOCATIONS)
  254. CT EQU 57 CHANNEL TYPE
  255. EX EQU 60 - 64 *EMB* HEADER WORD 2
  256. ****
  257. TITLE MAIN PROGRAM.
  258. ** MPR - BUFFERED I/O MESSAGE PROCESSOR.
  259.  
  260.  
  261. ORG PPFW
  262.  
  263.  
  264. MPR LDN EMBP FETCH *EMB* POINTER WORD
  265. CRD EP
  266. LDN ZERL INITIALIZE DIRECT CELLS
  267. CRD EL
  268. ERRNZ EL+1-ML CODE DEPENDS ON VALUE
  269. ERRNZ ML+1-MD CODE DEPENDS ON VALUE
  270. MPR1 LDD EP+1
  271. SHN 14 READ *EMB* HEADER WORD 1
  272. LMD EP+2
  273. CRD EH
  274. ADN 1 READ *EMB* HEADER WORD 2
  275. CRD EX
  276. LDD EH+3 *IN*
  277. SBD EX+3 *OUT*
  278. ZJP MPR7 IF NO MORE MESSAGES
  279. MPR2 LDD EX+3 *OUT*
  280. SBD EX+4 *LIMIT*
  281. MJN MPR3 IF *OUT* IN PROPER RANGE
  282. MONITOR HNGM *OUT* BEYOND *LIMIT*
  283.  
  284. MPR3 LDD EP+1 READ NEXT MESSAGE HEADER INTO PP
  285. SHN 14
  286. LMD EP+2
  287. ADD EX+3
  288. ADN 2 ALLOW FOR *EMB* HEADER
  289. CRD CM
  290. LDD CM+3 MESSAGE LENGTH IN CM WORDS
  291. ZJN MPR5 IF BUFFER TERMINATOR - RESET *EMB* *OUT*
  292. STD LN
  293. SHN 2
  294. ADD LN
  295. STD WC MESSAGE LENGTH IN PP WORDS
  296. SBK BUFFL+1
  297. MJN MPR4 IF MESSAGE WILL FIT IN BUFFER
  298. MONITOR HNGM MESSAGE TOO LARGE FOR BUFFER
  299.  
  300. MPR4 LDD EP+1 READ COMPLETE MESSAGE INTO PP
  301. SHN 14
  302. LMD EP+2
  303. ADD EX+3
  304. ADN 2 ALLOW FOR *EMB* HEADER
  305. CRM BUFF,LN
  306. LDD CM+4
  307. SHN -13
  308. STD T1
  309. LDM MPRA,T1 SET PROCESSOR ADDRESS
  310. STD T1
  311. RJM 0,T1 PROCESS MESSAGE
  312. LDD EX+3 UPDATE *OUT*
  313. ADD LN
  314. MPR5 STD EX+3
  315. SBD EX+4 *LIMIT*
  316. MJN MPR5.1 IF *OUT* IN PROPER RANGE
  317. ZJN MPR5 IF *OUT* AT *LIMIT*
  318. MONITOR HNGM *OUT* BEYOND *LIMIT*
  319.  
  320. MPR5.1 LDD EP+1
  321. SHN 14
  322. LMD EP+2
  323. ADN 1 UPDATE *EMB* HEADER WORD 2
  324. CWD EX
  325. LDD EH+3 *IN*
  326. SBD EX+3 *OUT*
  327. MPR6 NJP MPR2 IF MORE MESSAGES
  328. LJM MPR1 REREAD HEADER AND RECHECK
  329.  
  330. MPR7 RJM GIL GET INTERLOCK, READ *EMB* HEADER WORD 1
  331. LDD EH+1 COUNT MESSAGES LOST
  332. RAD ML
  333. ZJN MPR8 IF NO MESSAGES WERE LOST
  334. STD EL
  335. LDC MPRB+ERLN ISSUE * 1MD - MESSAGES LOST* MESSAGE
  336. RJM DFM
  337. MPR8 LDD EL
  338. ZJN MPR9 IF NO ERROR LOG MESSAGES WERE ISSUED
  339. LDN ZERL
  340. CRD CM
  341. LDK ELAE ISSUE *ERROR LOG ALERT* EVENT
  342. STD CM+4
  343. MONITOR EATM
  344. MPR9 RJM CIL CLEAR INTERLOCK AND *1MD* ACTIVE FLAG
  345. NJP MPR6 IF THERE ARE MESSAGES IN THE BUFFER
  346. MONITOR DPPM DROP PP
  347. LJM PPR EXIT
  348.  
  349.  
  350. MPRA BSS 0 TABLE OF PROCESSOR ADDRESSES
  351. CON LOG NON-819 PROCESSOR
  352. CON FMM 819 PROCESSOR
  353.  
  354. MPRB DATA C* 1MD - MESSAGES LOST.*
  355. TITLE MAIN PROCESSING ROUTINES.
  356. FMM SPACE 4,10
  357. ** FMM - FORMAT AND ISSUE 819 BML MESSAGE.
  358. *
  359. * ENTRY (BUFF - BUFF+(EX+3)-1) = MESSAGE TO BE PROCESSED.
  360. *
  361. * USES BC, CB, CM+1, ED.
  362. *
  363. * CALLS CLM, CPD, DFM, FMT.
  364.  
  365.  
  366. FMM SUBR ENTRY/EXIT
  367. LDC BUFF+5
  368. STD ED SET START OF ERROR DATA
  369. FMM1 RJM CLM CLEAR MESSAGE BUFFER
  370. * LDN 0 CLEAR CM WORD BYTE COUNT
  371. STD CB
  372. RJM FMT FORMAT BML DATA
  373. LDM WCFD,ED SET ERROR DATA BYTE COUNT
  374. ADN EPFD
  375. STD BC
  376. STM BYTM
  377. FMM2 RJM CPD COPY ERROR DATA
  378. LDN 6*5 SET *BML* MESSAGE BYTE COUNT
  379. STD CM+1
  380. LDC BMLM+BMLN ISSUE BML DATA
  381. RJM DFM
  382. * LDN 0 CLEAR BYTE COUNT IN BML DATA
  383. STM BYTM
  384. LDD BC
  385. ZJP FMMX IF NO MORE DATA TO COPY
  386. LDM RTYM SET *NOT FIRST BLOCK* FLAG
  387. SCN 10
  388. LMN 10
  389. STM RTYM
  390. UJN FMM2 COPY ADDITIONAL DATA
  391. FMM SPACE 4,10
  392. ** BML MESSAGE BUFFER.
  393.  
  394.  
  395. BMLM VFD 12/RM0006 819 MESSAGE ID
  396. SYMM BSS 1 SYMPTOM CODE
  397. PTHM BSS 3 PATH IDENTIFICATION
  398. ESTM BSS 1 EST ORDINAL
  399. RTYM BSS 1 RETRY COUNT
  400. MFIM BSS 1 MAINFRAME ID
  401. HUIM BSS 2 6/ FLAGS, 18/ HARDWARE IDENTIFICATION
  402. PPIM BSS 1 PPU IDENTIFICATION
  403. BYTM BSS 1 ERROR DATA BYTE COUNT
  404. ERDM BSS 22 ERROR DATA
  405. ENDM BSS 0 END OF BLOCK
  406. LOG SPACE 4,20
  407. * LOG - LOG NON-819 MESSAGES.
  408. *
  409. * THIS ROUTINE ISSUES NON-819 ERROR MESSAGES. MESSAGES
  410. * MAY BE SENT TO THE BML, ERROR LOG OR SYSTEM DAYFILE.
  411. *
  412. * ENTRY (LN) = MESSAGE LENGTH IN CM WORDS.
  413. * (WC) = MESSAGE LENGTH IN PP WORDS.
  414. * (EP+1 - EP+2) = *EMB* ADDRESS.
  415. * (EX+3) = OFFSET TO MESSAGE HEADER IN *EMB*.
  416. * (BUFF - BUFF+(LN)-1) = MESSAGE TO BE PROCESSED.
  417. *
  418. * EXIT (EL) .NE. 0 IF ERROR LOG MESSAGE WAS ISSUED.
  419. *
  420. * USES CM+1, EL, MT.
  421. *
  422. * CALLS DFM, DV5, GEM.
  423.  
  424.  
  425. LOG SUBR ENTRY/EXIT
  426. LDN 0
  427. STD EO
  428. LDM BUFF+4,EO SET MESSAGE TYPE
  429. STD MT
  430. LMN ELDY
  431. ZJN LOG2 IF ERROR LOG MESSAGE
  432. LMN MLDY&ELDY
  433. NJN LOG3 IF NOT BML MESSAGE
  434. LDD EP+1 GET *EMB* ADDRESS
  435. SHN 14
  436. LMD EP+2
  437. ADD EX+3 ADD OFFSET TO MESSAGE HEADER
  438. ADN 3 ALLOW FOR *EMB* AND MESSAGE HEADERS
  439. STD MD+4 SET CENTRAL MESSAGE DATA ADDRESS
  440. SHN -14
  441. STD MD+3
  442. LDD WC
  443. SBM BUFF+2,EO
  444. RJM DV5 RECALCULATE BYTE COUNT
  445. STD T0
  446. SHN 2
  447. ADM BUFF+2,EO INCLUDE RESIDUAL BYTE COUNT
  448. ADD T0
  449. SBN 5 EXCLUDE HEADER WORD
  450. STD CM+1
  451. LDC BMCN+MD
  452. UJN LOG4 ISSUE BML MESSAGE
  453.  
  454. LOG2 LDM CM+2 PRESERVE ERRLOG ALERT FLAG
  455. RAD EL
  456. LOG3 LDM LOGA,MT SET DAYFILE SELECTION OPTION
  457. SHN 14
  458. LMC BUFF+5 ISSUE DAYFILE MESSAGE
  459. LOG4 RJM DFM
  460. RJM GEM GENERATE ERRLOG MESSAGE
  461. UJP LOGX RETURN
  462.  
  463.  
  464. * TABLE OF DAYFILE SELECTION OPTIONS.
  465.  
  466. LOGA INDEX
  467. INDEX MSDY,JNMN/10000 MASTER DAYFILE
  468. INDEX ELDY,ERLN/10000 ERROR LOG DAYFILE
  469. INDEX MLDY,BMLN/10000 MAINTENANCE LOG DAYFILE
  470. INDEX MLDY+1
  471. TITLE SUBROUTINES.
  472. CCR SPACE 4,10
  473. ** CCR - CALL CONVERSION ROUTINE.
  474. *
  475. * ENTRY (T5) = INDEX TO LAST CONVERSION ROUTINE USED.
  476. *
  477. * EXIT (T5) = INDEX TO CONVERSION ROUTINE USED.
  478. *
  479. * USES T1.
  480. *
  481. * CALLS CONVERSION ROUTINES LISTED IN *THCR*.
  482.  
  483.  
  484. CCR1 LDM THCR,T5 SELECT CONVERSION ROUTINE
  485. STD T1
  486. RJM 0,T1 CONVERT HEX DATA
  487.  
  488. CCR SUBR ENTRY/EXIT
  489. AOD T5
  490. SBN THCRL
  491. MJN CCR1 IF NOT END OF *THCR*
  492. ZJN CCR0 IF VALID INDEX
  493. MONITOR CHGM CONDITIONAL HANG
  494.  
  495. CCR0 STD T5 RESET INDEX
  496. UJN CCR1 SELECT CONVERSION ROUTINE
  497.  
  498.  
  499. THCR BSS 0 TABLE OF HEX CONVERSION ROUTINES
  500. CON C1P
  501. CON C2P
  502. CON C3P
  503. THCRL EQU *-THCR LENGTH OF TABLE
  504. CDA SPACE 4,10
  505. ** CDA - CONVERT DISK ADDRESS FOR *ERMD* MESSAGE.
  506. *
  507. * ENTRY (A) = RELATIVE LOCATION OF DISK ADDRESS.
  508. *
  509. * EXIT (BA) = DATA ADDRESS ADVANCED.
  510. *
  511. * USES PA.
  512. *
  513. * CALLS C2D, C4D.
  514.  
  515.  
  516. CDA SUBR ENTRY/EXIT
  517. ADD EO
  518. STD BA
  519. LDC ERMD+3 SET PARAMETER ADDRESS
  520. STD PA
  521. RJM C4D CONVERT CYLINDER NUMBER
  522. LDI BA
  523. SHN -6
  524. RJM C2D CONVERT TRACK NUMBER
  525. STM ERMD+11
  526. LDI BA
  527. RJM C2D CONVERT SECTOR NUMBER
  528. STM ERMD+16
  529. AOD BA
  530. UJN CDAX RETURN
  531. CIL SPACE 4,10
  532. ** CIL - CLEAR *EMB* INTERLOCK AND RESET FLAGS.
  533. *
  534. * ENTRY (EP+1 - EP+2) = FWA OF *EMB*.
  535. * (EH - EH+4) = *EMB* INTERLOCK WORD 1.
  536. * (EX - EX+4) = *EMB* INTERLOCK WORD 2.
  537. *
  538. * EXIT (A) = (EH+4) = 0 IF *EMB* BUFFER IS EMPTY.
  539. * *1MD* ACTIVE CLEARED IF *EMB* BUFFER IS EMPTY.
  540. * *EMB* INTERLOCK CLEARED IN ALL CASES.
  541.  
  542.  
  543. CIL SUBR ENTRY/EXIT
  544. LDD EH+3 *IN*
  545. SBD EX+3 *OUT*
  546. ZJN CIL1 IF *EMB* EMPTY
  547. LDN 2 AVOID CLEARING *1MD ACTIVE*
  548. CIL1 LMN 3 INTERLOCK AND *1MD* ACTIVE
  549. LMD EH+4 CLEAR INTERLOCK, POSSIBLY *1MD ACTIVE*
  550. STD EH+4
  551. LDN 0 CLEAR *MESSAGES LOST*
  552. STD EH+1
  553. LDD EP+1
  554. SHN 14
  555. LMD EP+2
  556. CWD EH
  557. LDD EH+4
  558. UJN CILX RETURN
  559. CLM SPACE 4,10
  560. ** CLM - CLEAR MESSAGE BUFFER.
  561. *
  562. * EXIT (A) = 0.
  563. *
  564. * USES T1.
  565.  
  566.  
  567. CLM SUBR ENTRY/EXIT
  568. LDN ENDM-BMLM-1
  569. STD T1
  570. CLM1 LDN 0 CLEAR BUFFER
  571. STM BMLM,T1
  572. SOD T1
  573. NJN CLM1 IF NOT END OF BUFFER
  574. UJN CLMX RETURN
  575. CMP SPACE 4,10
  576. ** CMP - CONVERT BASIC MESSAGE PARAMETERS.
  577. *
  578. * ENTRY (EO) = BML MESSAGE OFFSET INTO *BUFF*.
  579. *
  580. * EXIT (CT) = CHANNEL TYPE.
  581. *
  582. * USES PA.
  583. *
  584. * CALLS CDA, C2D, C4D.
  585.  
  586.  
  587. CMP SUBR ENTRY/EXIT
  588.  
  589. * INSERT PARAMETERS IN *ERMB* MESSAGE.
  590.  
  591. LDM BUFF+3*5,EO CONVERT ERROR CODE
  592. RJM C2D
  593. STM ERMB+7 SET IN MESSAGE
  594.  
  595. * INSERT PARAMETERS IN *ERMC* MESSAGE.
  596.  
  597. LDM BUFF+1*5+2,EO SET CHANNEL SPECIFICATION
  598. STD CT
  599. LPN 37 CONVERT CHANNEL NUMBER
  600. RJM C2D
  601. STM ERMC+3
  602. LDD CT EXTRACT CHANNEL TYPE
  603. LPN 40
  604. STD CT
  605. ZJN CMP1 IF NON-CONCURRENT CHANNEL
  606. LDC 2RNC&2RCC
  607. CMP1 LMC 2RNC SET CHANNEL TYPE IN MESSAGE
  608. STM ERMC
  609. LDM BUFF+1*5+3,EO CONVERT UNIT NUMBER
  610. RJM C2D
  611. STM ERMC+10
  612.  
  613. * INSERT PARAMETERS IN *ERMD* MESSAGE.
  614.  
  615. LDC BUFF+3*5+1 CONVERT DISK ADDRESS
  616. RJM CDA
  617.  
  618. * INSERT PARAMETERS IN *ERME* MESSAGE.
  619.  
  620. LDC ERME+14 SET PARAMETER ADDRESS
  621. STD PA
  622. LDD CT
  623. ZJN CMP2 IF NON-CONCURRENT CHANNEL
  624. LDM BUFF+10*5,EO
  625. SHN -6 CONVERT UPPER 4 BITS OF FUNCTION
  626. RJM C2D
  627. STI PA SET IN MESSAGE
  628. AOD PA
  629. CMP2 RJM C4D CONVERT LAST FUNCTION
  630. LDC 2L..
  631. STI PA TERMINATE MESSAGE
  632.  
  633. * INSERT PARAMETERS IN *ERMF* MESSAGE.
  634.  
  635. LDC ERMG+5 SET PARAMETER ADDRESS
  636. STD PA
  637. RJM C4D CONVERT GENERAL STATUS
  638. UJP CMPX RETURN
  639. CPD SPACE 4,15
  640. ** CPD - COPY ERROR DATA.
  641. *
  642. * ENTRY (BC) = ERROR PACKET BYTE COUNT.
  643. * (CB) = CM WORD BYTE COUNT.
  644. * (ED) = ADDRESS OF ERROR PACKET.
  645. *
  646. * EXIT *BML* BUFFER FILLED.
  647. * POINTERS UPDATED.
  648. *
  649. * USES BC, CB, ED, T2.
  650.  
  651.  
  652. CPD3 AOD T2 ADVANCE *BML* BUFFER COUNT
  653. LMN ENDM-ERDM
  654. ZJN CPD5 IF END OF BUFFER
  655. LDN 0 ZERO FILL BUFFER
  656. STM ERDM,T2
  657. CPD4 UJN CPD3 LOOP ON ZERO FILL
  658.  
  659. CPD5 STD BC
  660. LDD CB
  661. ZJN CPDX IF EVEN CM WORD BYTE COUNT
  662. CPD6 AOD ED ADVANCE ERROR DATA POINTER
  663. AOD CB
  664. LMN 5
  665. NJN CPD6 IF NOT END OF CM WORD
  666. STD CB
  667. LDM RTYM CLEAR CONTINUATION FLAG
  668. SCN 4
  669. STM RTYM
  670.  
  671. CPD SUBR ENTRY/EXIT
  672. LDN 0
  673. STD T2
  674. CPD1 LDI ED COPY ERROR DATA
  675. STM ERDM,T2
  676. AOD ED ADVANCE ERROR DATA POINTER
  677. AOD CB
  678. LMN 5
  679. NJN CPD2 IF NOT FULL CM WORD
  680. STD CB
  681. CPD2 SOD BC DECREMENT BYTE COUNT
  682. ZJN CPD4 IF END OF ERROR DATA
  683. AOD T2 ADVANCE *BML* BUFFER POINTER
  684. LMN ENDM-ERDM
  685. NJN CPD1 IF NOT END OF *BML* BUFFER
  686. LDM RTYM SET CONTINUATION FLAG
  687. SCN 4
  688. LMN 4
  689. STM RTYM
  690. UJN CPDX RETURN
  691. CSD SPACE 4,10
  692. ** CSD - CONVERT STATUS DATA.
  693. *
  694. * ENTRY (A) = 6/ PC, 12/ MA
  695. * PC = PARAMETER COUNT FOR MESSAGE BLOCK.
  696. * MA = MESSAGE ADDRESS FOR 1ST PARAMETER.
  697. *
  698. * USES PA, T6, T7.
  699. *
  700. * CALLS CCR.
  701.  
  702.  
  703. CSD1 RJM CCR CALL CONVERSION ROUTINE
  704. LDD T6
  705. SHN 21-0
  706. NJN CSD3 IF NOT MESSAGE BOUNDARY
  707. CSD2 LDC 200125
  708. CSD3 STD T6 UPDATE SKIP CONTROL
  709. SHN 1-21
  710. LMN 2
  711. RAD PA ADJUST PARAMETER ADDRESS
  712. SOD T7
  713. NJN CSD1 IF NOT END OF PARAMETERS
  714.  
  715. CSD SUBR ENTRY/EXIT
  716. SBN 3
  717. STD PA
  718. SHN -14 SET PARAMETER COUNT
  719. STD T7
  720. ADN 1 ALLOW FOR TWO BYTE PARAMETERS
  721. RAD T7
  722. UJN CSD2 SET SKIP CONTROL
  723. C1P SPACE 4,10
  724. ** C1P - CONVERT FIRST PAIR OF HEX DIGITS.
  725. *
  726. * ENTRY (BA) = ADDRESS OF HEX DATA.
  727. *
  728. * EXIT (T2) = FIRST DIGIT OF NEXT PAIR.
  729. * (BA) = BUFFER ADDRESS ADVANCED.
  730. *
  731. * CALLS CHD.
  732.  
  733.  
  734. C1P SUBR ENTRY/EXIT
  735. LDI BA
  736. STD T2 SAVE DIGIT FOR NEXT CONVERSION
  737. SHN -4
  738. RJM CHD CONVERT HEX DATA
  739. AOD BA
  740. UJN C1PX RETURN
  741. C2P SPACE 4,10
  742. ** C2P - CONVERT SECOND PAIR OF HEX DIGITS.
  743. *
  744. * ENTRY (T2) = FIRST DIGIT OF PAIR.
  745. * (BA) = ADDRESS OF HEX DATA.
  746. *
  747. * EXIT (T2) = NEXT PAIR FOR CONVERSION.
  748. *
  749. * CALLS CHD.
  750.  
  751.  
  752. C2P SUBR ENTRY/EXIT
  753. LDD T2
  754. LPN 17 EXTRACT FIRST DIGIT
  755. SHN 14
  756. LMI BA SAVE NEXT PAIR OF HEX DIGITS
  757. STD T2
  758. SHN -10 CONVERT HEX DATA
  759. RJM CHD
  760. UJN C2PX RETURN
  761. C3P SPACE 4,10
  762. ** C3P - CONVERT THIRD PAIR OF HEX DIGITS.
  763. *
  764. * ENTRY (T2) = PAIR FOR CONVERSION.
  765. * (BA) = ADDRESS OF HEX DATA.
  766. *
  767. * EXIT (BA) = BUFFER ADDRESS ADVANCED.
  768. *
  769. * CALLS CHD.
  770.  
  771.  
  772. C3P SUBR ENTRY/EXIT
  773. LDD T2
  774. RJM CHD CONVERT HEX DATA
  775. AOD BA
  776. UJN C3PX RETURN
  777. C4D SPACE 4,10
  778. ** C4D - CONVERT FOUR OCTAL DIGITS.
  779. *
  780. * ENTRY (BA) = ADDRESS OF OCTAL DATA.
  781. * (PA) = ADDRESS TO STORE CONVERSION.
  782. *
  783. * EXIT (BA) = DATA ADDRESS ADVANCED.
  784. * (PA) = PARAMETER ADDRESS ADVANCED.
  785. *
  786. * CALLS C2D.
  787.  
  788.  
  789. C4D SUBR ENTRY/EXIT
  790. LDI BA
  791. SHN -6 CONVERT UPPER TWO DIGITS
  792. RJM C2D
  793. STI PA STORE CONVERSION
  794. AOD PA
  795. LDI BA CONVERT LOWER DIGITS
  796. RJM C2D
  797. STI PA STORE CONVERSION
  798. AOD BA
  799. AOD PA
  800. UJN C4DX RETURN
  801. C6D SPACE 4,15
  802. ** C6D - CONVERT SIX OCTAL DIGITS.
  803. *
  804. * ENTRY (A) .GE. 0 IF DATA BEGINS ON HALF BYTE BOUNDARY.
  805. * .LT. 0 IF DATA BEGINS ON FULL BYTE BOUNDARY.
  806. * (BA) = ADDRESS OF OCTAL DATA.
  807. * (PA) = ADDRESS TO STORE CONVERSION.
  808. *
  809. * EXIT (BA) = DATA ADDRESS ADVANCED.
  810. * (PA) = PARAMETER ADDRESS ADVANCED.
  811. *
  812. * CALLS C2D, C4D.
  813.  
  814.  
  815. C6D1 LDI BA CONVERT TWO DIGITS
  816. RJM C2D
  817. STI PA SET CONVERSION IN MESSAGE
  818. AOD PA
  819. AOD BA CONVERT FOUR DIGITS
  820. RJM C4D
  821.  
  822. C6D SUBR ENTRY/EXIT
  823. PJN C6D1 IF DATA ON HALF BYTE BOUNDARY
  824. RJM C4D CONVERT FOUR DIGITS
  825. LDI BA
  826. SHN -6 CONVERT TWO DIGITS
  827. RJM C2D
  828. STI PA SET CONVERSION IN MESSAGE
  829. AOD PA
  830. UJN C6DX RETURN
  831. FNT SPACE 4,10
  832. ** FMT - FORMAT *BML* MESSAGE.
  833. *
  834. * ENTRY (ED) = ADDRESS OF ERROR MESSAGE DATA.
  835. *
  836. * USES T0, T1, CM - CM+4.
  837.  
  838.  
  839. FMT SUBR ENTRY/EXIT
  840.  
  841. * SET SYMPTOM CODE AND DRIVER TYPE.
  842.  
  843. LDI ED TEST UNRECOVERED DATA ERROR
  844. ERRNZ G1FD CODE IS VALUE DEPENDENT
  845. SHN 21-12
  846. PJN FMT1 IF NOT UNRECOVERED DATA ERROR
  847. LDN RS0101-100
  848. UJN FMT4 SET SYMPTOM CODE
  849.  
  850. FMT1 SHN 12-2
  851. PJN FMT2 IF NOT REQUEST ERROR
  852. LDN RS0104-100
  853. UJN FMT4 SET SYMPTOM CODE
  854.  
  855. FMT2 LDM EPFD+G2FD,ED CHECK ERROR RECOVERY
  856. SHN 21-6
  857. PJN FMT3 IF NOT RECOVERED DATA ERROR
  858. LDN RS0102-100
  859. UJN FMT4 SET SYMPTOM CODE
  860.  
  861. FMT3 LDN RS0103-100
  862. FMT4 ADC DHCD*400+100
  863. STM SYMM
  864.  
  865. * SET DATA PATH INFORMATION.
  866.  
  867. LDM UNFD,ED CHECK UNIT NUMBER
  868. LPN 7
  869. STM PTHM+1 SET VALUE IN BML MESSAGE
  870. LPN 4
  871. ADN 2 CHANNEL (CONTROLLER) NUMBER
  872. STD T1
  873. LDM EQFD,ED SET FLPP NUMBER
  874. SHN -11
  875. SHN 1
  876. STD T0
  877. LDM EQFD,ED SET EST ORDINAL
  878. LPC 777
  879. STM ESTM
  880. SFA EST SET DEVICE MNEMONIC
  881. ADK EQDE
  882. CRD CM
  883. LDD CM+3
  884. ADC -2RDV
  885. STM EQFD,ED
  886. LDM EPFD+G2FD,ED CHECK WHICH FLPP FOUND ERROR
  887. SHN 0-13
  888. ADD T0 ADJUST FLPP NUMBER
  889. SHN 6
  890. STM MFIM
  891. LMD T1
  892. STM PTHM SET RECOVERY PATH
  893.  
  894. * SET RETRY COUNT + RECOVERY FLAGS.
  895.  
  896. LDM UNFD,ED SET READ/WRITE FLAG
  897. SHN -5
  898. LPN 2
  899. STD T0
  900. LDI ED
  901. ERRNZ G1FD CODE IS VALUE DEPENDENT
  902. SHN -12
  903. LPN 1 EXTRACT UNRECOVERED STATUS
  904. RAD T0
  905. LDM EPFD+RTFD,ED SET RETRY COUNT
  906. LPC 777
  907. SBD HN
  908. MJN FMT5 IF .LE. 77
  909. LCN 1
  910. FMT5 ADD HN RECOVERY COUNT
  911. SHN 6
  912. LMD T0 APPEND FLAGS
  913. STM RTYM
  914. LDD IA SET PP IDENTIFICATION
  915. STM PPIM
  916. LJM FMTX RETURN
  917. GEM SPACE 4,15
  918. ** GEM - GENERATE ERRLOG MESSAGE FOR MASS STORAGE ERROR.
  919. *
  920. * ENTRY (EO) = BML MESSAGE OFFSET INTO *BUFF*.
  921. * (LN) = BML MESSAGE LENGTH.
  922. * (MT) = MESSAGE TYPE.
  923. *
  924. * EXIT (EL) = 1 IF ERRLOG MESSAGE ISSUED.
  925. *
  926. * USES T1, T5, T7, EL, LA, CM - CM+4.
  927. *
  928. * CALLS ACS, C2D, DFM.
  929. *
  930. * MACROS SFA.
  931.  
  932.  
  933. GEM3 STD LA SAVE MESSAGE TABLE ADDRESS
  934. GEM4 LDC ELMB+3
  935. STD T1 SET ASSEMBLY ADDRESS
  936. LDN 0
  937. STI T1
  938. LDI LA APPEND MESSAGE TO PREFIX
  939. RJM ACS
  940. LDC ELMB+ERLN ISSUE ERRLOG MESSAGE
  941. RJM DFM
  942. AOD LA ADVANCE MESSAGE TABLE ADDRESS
  943. LDI LA
  944. NJN GEM4 IF NOT END OF TABLE
  945. LDN 1
  946. STD EL SET ERRLOG ALERT STATUS
  947.  
  948. GEM SUBR ENTRY/EXIT
  949. LDD MT
  950. LMN MLDY
  951. NJN GEMX IF NOT BML MESSAGE
  952. LCN 0 INITIALIZE INDEX
  953. STD T7
  954. GEM0 AOD T7 ADVANCE INDEX
  955. SBK TMIDL
  956. ZJN GEMX IF END OF LIST
  957. LDM TMID,T7 GET NEXT MASS STORAGE MESSAGE ID
  958. LMM BUFF+1*5,EO
  959. NJN GEM0 IF MESSAGE ID DOES NOT MATCH
  960. LDM BUFF+2*5+1,EO
  961. LPN 1
  962. ZJN GEMX IF RECOVERED ERROR
  963. LDM BUFF+2*5,EO
  964. STD T5 SET EST ORDINAL
  965. ZJN GEMX IF NO EST ORDINAL SPECIFIED
  966. LDK ESTP CHECK MAXIMUM EST ORDINAL
  967. CRD CM
  968. LDD T5
  969. SBD CM+1 MAXIMUM MASS STORAGE EST ORDINAL + 1
  970. PJN GEMX IF NOT VALID MASS STORAGE DEVICE
  971. SFA EST,T5
  972. ADK EQDE READ EST ENTRY
  973. CRD CM
  974. LCN 0 INITIALIZE INDEX
  975. STD T7
  976. GEM1 AOD T7 ADVANCE INDEX
  977. LDM TDVT,T7 CHECK NEXT MASS STORAGE DEVICE TYPE
  978. ZJP GEMX IF END OF LIST
  979. LMD CM+3
  980. NJN GEM1 IF NOT MATCHING DEVICE TYPE
  981. LDD CM+3
  982. STM ELMB GENERATE MESSAGE PREFIX
  983. LDD T5
  984. LPN 7
  985. SHN 6 SEPARATE PREFIX FROM MESSAGE
  986. ADC 2R0,
  987. STM ELMB+2
  988. LDD T5 CONVERT REMAINDER OF EST ORDINAL
  989. SHN -3
  990. RJM C2D
  991. STM ELMB+1
  992. LDD LN CHECK MESSAGE LENGTH
  993. SBN 4
  994. PJN GEM2 IF NOT BASIC MESSAGE
  995. LDC GEMA
  996. LJM GEM3 ISSUE BASIC ERRLOG MESSAGE
  997.  
  998. GEM2 LDM TEMP,T7 SET PROCESSOR ADDRESS
  999. STD T7
  1000. LJM 0,T7 EXIT TO MESSAGE PROCESSOR
  1001.  
  1002.  
  1003. GEMA CON ERMA
  1004. CON 0
  1005. GIL SPACE 4,10
  1006. ** GIL - GET *EMB* INTERLOCK.
  1007. *
  1008. * ENTRY (EP+1 - EP+2) = FWA OF *EMB*.
  1009. *
  1010. * EXIT *EMB* INTERLOCK OBTAINED.
  1011. * (EH - EH+4) = *EMB* HEADER WORD 1 REFRESHED.
  1012. *
  1013. * USES CM - CM+4, EH - EH+4.
  1014. *
  1015. * MACROS DELAY, MONITOR.
  1016.  
  1017.  
  1018. GIL2 LDD EP+1
  1019. SHN 14 READ *EMB* HEADER WORD
  1020. LMD EP+2
  1021. CRD EH
  1022.  
  1023. GIL SUBR ENTRY/EXIT
  1024. GIL1 LDK ZERL
  1025. CRD CM
  1026. LDD EP+1 FORMAT *UTEM* REQUEST
  1027. STD CM+3
  1028. LDD EP+2
  1029. STD CM+4
  1030. MONITOR UTEM GET *EMB* INTERLOCK
  1031. LDD CM+1
  1032. ZJN GIL2 IF INTERLOCK OBTAINED
  1033. DELAY
  1034. UJN GIL1 RETRY
  1035. TITLE MESSAGE GENERATORS.
  1036. PDA SPACE 4,10
  1037. ** GENERATE ERRLOG MESSAGES FOR *LDAM* TYPE DEVICES.
  1038.  
  1039.  
  1040. PDA BSS 0 ENTRY
  1041. PDB BSS 0
  1042. PDD BSS 0
  1043. PDG BSS 0
  1044. PDI BSS 0
  1045. PDJ BSS 0
  1046. PDK BSS 0
  1047. PDL BSS 0
  1048. PDM BSS 0
  1049. PDQ BSS 0
  1050. PDR BSS 0
  1051. PDX BSS 0
  1052. PDY BSS 0
  1053. PDZ BSS 0
  1054. RJM CMP CONVERT MESSAGE PARAMETERS
  1055.  
  1056. * INSERT PARAMETERS IN *ERMI* THRU *ERMM* MESSAGES.
  1057.  
  1058. LDC ERMI+2 SET PARAMETER ADDRESS
  1059. STD PA
  1060. LDN 5 NUMBER OF MESSAGES
  1061. STD T7
  1062. PDA1 LDN 4 NUMBER OF PARAMETERS / MESSAGE
  1063. STD T6
  1064. PDA2 RJM C4D CONVERT FOUR OCTAL DIGITS
  1065. LDN 2
  1066. RAD PA ADVANCE PARAMETER ADDRESS
  1067. SOD T6
  1068. NJN PDA2 IF NOT END OF MESSAGE
  1069. AOD PA
  1070. SOD T7
  1071. NJN PDA1 IF NOT END OF MESSAGES
  1072. LDC PDAT
  1073. LJM GEM3 ISSUE ERRLOG MESSAGES
  1074.  
  1075.  
  1076. PDAT CON ERMA
  1077. CON ERMB
  1078. CON ERMC
  1079. CON ERMD
  1080. CON ERME
  1081. CON ERMF
  1082. CON ERMH
  1083. CON ERMI
  1084. CON ERMJ
  1085. CON ERMK
  1086. CON ERML
  1087. CON ERMM
  1088. CON 0
  1089. TITLE MESSAGE GENERATORS.
  1090. PDC SPACE 4,10
  1091. ** GENERATE ERRLOG MESSAGES FOR CCC COUPLED DEVICES.
  1092.  
  1093.  
  1094. PDC BSS 0 ENTRY
  1095. RJM CMP CONVERT MESSAGE PARAMETERS
  1096.  
  1097. * INSERT PARAMETERS IN *ERMZ* THRU *ERM5* MESSAGES.
  1098.  
  1099. LDC ERMZ-1 SET PARAMETER ADDRESS
  1100. STD PA
  1101. LDN THCRL-1 INITIALIZE CONVERSION ROUTINE INDEX
  1102. STD T5
  1103. LDN 24D NUMBER OF PARAMETERS IN MESSAGE BLOCK
  1104. STD T7
  1105. PDC1 LPN 3
  1106. ZJN PDC2 IF CROSSING MESSAGE BOUNDARY
  1107. LCN 1
  1108. PDC2 ADN 4 ADVANCE CONVERSION ADDRESS
  1109. RAD PA
  1110. RJM CCR CALL CONVERSION ROUTINE
  1111. SOD T7
  1112. NJN PDC1 IF NOT END OF PARAMETERS
  1113.  
  1114. * INSERT PARAMETERS IN *ERMX* MESSAGE.
  1115.  
  1116. LDC ERMX+12 SET PARAMETER ADDRESS
  1117. STD PA
  1118. AOD BA ADJUST BML DATA ADDRESS
  1119. LDI BA
  1120. RJM CHD CONVERT CYBER I/F STATUS
  1121.  
  1122. * INSERT PARAMETERS IN *ERMY* MESSAGE.
  1123.  
  1124. LDC ERMY+6 SET PARAMETER ADDRESS
  1125. STD PA
  1126. AOD BA ADJUST BML DATA ADDRESS
  1127. LDI BA
  1128. STD T2 SAVE STATUS FOR *C3P*
  1129. SHN -10
  1130. RJM CHD CONVERT CCC STATUS
  1131. LDN 1R -1R0
  1132. SHN 6 INSERT BLANK SEPARATOR
  1133. RAM -1,PA
  1134. RJM C3P CONVERT REMAINDER OF STATUS
  1135. LDD CT
  1136. ZJN PDC3 IF NOT DMA PATH TO DEVICE
  1137.  
  1138. * INSERT PARAMETERS IN *ERM6* MESSAGE.
  1139.  
  1140. AOD BA ADJUST DATA ADDRESS
  1141. LDC ERM6+7
  1142. STD PA
  1143. RJM C6D CONVERT OPERATIONAL STATUS REGISTER
  1144.  
  1145. * INSERT PARAMETERS IN *ERM7* MESSAGE.
  1146.  
  1147. LDC ERM7+7 SET PARAMETER ADDRESS
  1148. STD PA
  1149. LCN 0 CONVERT ADAPTOR CONTROL REGISTER
  1150. RJM C6D
  1151.  
  1152. * INSERT PARAMETERS IN *ERM8* MESSAGE.
  1153.  
  1154. LDC ERM8+7 SET PARAMETER ADDRESS
  1155. STD PA
  1156. RJM C6D CONVERT ERROR STATUS REGISTER
  1157. LDC ERM6
  1158. PDC3 STM PDCTE SET / CLEAR END OF MESSAGES
  1159. LDC PDCT
  1160. LJM GEM3 ISSUE ERRLOG MESSAGES
  1161.  
  1162.  
  1163. PDCT CON ERMA
  1164. CON ERMB
  1165. CON ERMC
  1166. CON ERMD
  1167. CON ERME
  1168. CON ERMF
  1169. CON ERMX
  1170. CON ERMY
  1171. CON ERMH
  1172. CON ERMZ
  1173. CON ERM1
  1174. CON ERM2
  1175. CON ERM3
  1176. CON ERM4
  1177. CON ERM5
  1178. PDCTE CON ERM6
  1179. CON ERM7
  1180. CON ERM8
  1181. CON 0
  1182. TITLE MESSAGE GENERATORS.
  1183. PDE SPACE 4,10
  1184. ** GENERATE ERRLOG MESSAGES FOR EXTENDED MEMORY DEVICES.
  1185.  
  1186.  
  1187. PDE BSS 0 ENTRY
  1188. PDP BSS 0
  1189.  
  1190. * INSERT PARAMETERS IN *ERMB* MESSAGE.
  1191.  
  1192. LDM BUFF+3*5,EO CONVERT ERROR CODE
  1193. RJM C2D
  1194. STM ERMB+7 SET IN MESSAGE
  1195.  
  1196. * INSERT PARAMETERS IN *ERMG* MESSAGE.
  1197.  
  1198. LDC BUFF+4*5+1 SET BUFFER ADDRESS
  1199. ADD EO
  1200. STD BA
  1201. LDC ERMG+5 SET PARAMETER ADDRESS
  1202. STD PA
  1203. RJM C4D CONVERT STATUS
  1204.  
  1205. * INSERT PARAMETERS IN *ERMN* MESSAGE.
  1206.  
  1207. LDC ERMN+7 SET PARAMETER ADDRESS
  1208. STD PA
  1209. RJM C4D CONVERT WORD COUNT
  1210.  
  1211. * INSERT PARAMETERS IN *ERMO* MESSAGE.
  1212.  
  1213. LDC ERMO+5 SET PARAMETER ADDRESS
  1214. STD PA
  1215. RJM C4D CONVERT EXTENDED MEMORY ADDRESS
  1216. RJM C4D
  1217. LDC PDET
  1218. LJM GEM3 ISSUE ERRLOG MESSAGES
  1219.  
  1220.  
  1221. PDET CON ERMA
  1222. CON ERMB
  1223. CON ERMG
  1224. CON ERMN
  1225. CON ERMO
  1226. CON 0
  1227. TITLE MESSAGE GENERATORS.
  1228. PDF SPACE 4,10
  1229. ** GENERATE ERRLOG MESSAGES FOR 887 DEVICES.
  1230.  
  1231.  
  1232. PDF BSS 0 ENTRY
  1233. PDH BSS 0
  1234. LDN 0
  1235. PDF1 STM PDFA
  1236.  
  1237. * INSERT PARAMETERS IN *ERMP* MESSAGE.
  1238.  
  1239. LDM BUFF+3*5+4,EO CONVERT FAULT CODE
  1240. RJM C2D
  1241. STM ERMP+7 SET IN MESSAGE
  1242.  
  1243. * INSERT PARAMETERS IN *ERMQ* MESSAGE.
  1244.  
  1245. LDM BUFF+1*5+2,EO CONVERT CPP NUMBER
  1246. SHN -6
  1247. RJM C2D
  1248. STM ERMQ+3
  1249. LDM BUFF+1*5+2,EO CONVERT CCH NUMBER
  1250. LPN 37
  1251. RJM C2D
  1252. STM ERMQ+10
  1253. LDM BUFF+1*5+4,EO APPEND PORT DESIGNATOR
  1254. ADC 2RA,
  1255. STM ERMQ+11
  1256. LDM BUFF+1*5+3,EO CONVERT EQUIPMENT (CONTROLLER) NUMBER
  1257. SHN -6
  1258. RJM C2D
  1259. SHN 6
  1260. LMN 1R,
  1261. STM ERMQ+15
  1262. LDM BUFF+1*5+3,EO CONVERT UNIT NUMBER
  1263. LPN 77
  1264. RJM C2D
  1265. STM ERMQ+21
  1266. PDF2 LDC PDNT SET LIST ADDRESS
  1267. STD LA
  1268. PDF3 LDM PDFT-PDNT,LA COPY MESSAGE LIST
  1269. STI LA
  1270. AOD LA ADVANCE LIST ADDRESS
  1271. LMC PDNT+PDFTE-PDFT
  1272. NJN PDF3 IF NOT END OF COPY
  1273. LDD LN
  1274. SBN 4
  1275. NJN PDF4 IF MESSAGE HAS MORE THAN FAULT CODE
  1276. * LDN 0
  1277. STM PDNT+PDFTC-PDFT TERMINATE MESSAGE LIST
  1278. LDC PDNT
  1279. LJM GEM3 ISSUE ERRLOG MESSAGES
  1280.  
  1281. * INSERT PARAMETERS IN *ERMD* MESSAGE.
  1282.  
  1283. PDF4 LDC BUFF+4*5+3 CONVERT DISK ADDRESS
  1284. RJM CDA
  1285.  
  1286. * INSERT PARAMETERS IN *ERMS* MESSAGE.
  1287.  
  1288. LDC ERMS+10 SET PARAMETER ADDRESS
  1289. STD PA
  1290. LDN 4 ADJUST BML DATA ADDRESS
  1291. RAD BA
  1292. LDM PDFA
  1293. NJN PDF5 IF NOT 887 DEVICE
  1294. LDI BA
  1295. LPC 377 ISOLATE COMMAND CODE
  1296. STI BA
  1297. PDF5 LDN THCRL-1 INITIALIZE CONVERSION ROUTINE INDEX
  1298. STD T5
  1299. RJM CCR CONVERT LAST COMMAND
  1300. RJM CCR
  1301.  
  1302. * INSERT PARAMETERS IN *ERME* MESSAGE.
  1303.  
  1304. LDC ERME+14 SET PARAMETER ADDRESS
  1305. STD PA
  1306. RJM CCR CONVERT LAST FUNCTION
  1307. RJM CCR
  1308. LDC 2L.. TERMINATE MESSAGE
  1309. STI PA
  1310.  
  1311. * INSERT PARAMETERS IN *ERMR* MESSAGE.
  1312.  
  1313. LDC ERMR+4 SET PARAMETER ADDRESS
  1314. STD PA
  1315. LDN 4 ITERATION COUNT
  1316. STD T7
  1317. PDF6 AOD PA SKIP BLANK SEPARATOR
  1318. RJM CCR
  1319. RJM CCR CONVERT CHANNEL DATA
  1320. SOD T7
  1321. NJN PDF6 IF MORE PARAMETERS
  1322. LDN 1R -1R0
  1323. SHN 6 INSERT BLANK SEPARATOR
  1324. RAM ERMR+14
  1325. LDD LN CHECK BML MESSAGE LENGTH
  1326. SBN 10D
  1327. PJN PDF8 IF MESSAGE INCLUDES STATUS BLOCKS
  1328. LDN 0
  1329. PDF7 STM PDFTE SET / CLEAR END OF MESSAGES
  1330.  
  1331. LDC PDFT
  1332. LJM GEM3 ISSUE ERRLOG MESSAGES
  1333.  
  1334. PDF8 LDN THCRL-1 INITIALIZE CONVERSION ROUTINE INDEX
  1335. STD T5
  1336. LDN 10 ADJUST BML DATA ADDRESS
  1337. RAD BA
  1338. LDC 0 887 VS. 9853/583X/47444 PATH SELECTOR
  1339. PDFA EQU *-1
  1340. NJP PDN1 IF 9853/583X/47444 DEVICE
  1341.  
  1342. * INSERT PARAMETERS IN *ERMU* AND *ERMV* MESSAGES.
  1343.  
  1344. LDC 7S12+ERMU+2 CONVERT STATUS DATA
  1345. RJM CSD
  1346.  
  1347. * INSERT PARAMETERS IN *ERMI* AND *ERMJ* MESSAGES.
  1348.  
  1349. LDC 10S12+ERMI+2 CONVERT STATUS DATA
  1350. RJM CSD
  1351. LDC ERMT
  1352. UJP PDF7 ISSUE ERRLOG MESSAGES
  1353.  
  1354.  
  1355. PDFT CON ERMA
  1356. CON ERMP
  1357. CON ERMQ
  1358. PDFTC CON ERMD
  1359. CON ERME
  1360. CON ERMR
  1361. CON ERMS
  1362. PDFTE CON ERMT
  1363. CON ERMU
  1364. CON ERMV
  1365. CON ERMW
  1366. CON ERMI
  1367. CON ERMJ
  1368. CON 0
  1369. TITLE MESSAGE GENERATORS.
  1370. PDN SPACE 4,10
  1371. ** GENERATE ERRLOG MESSAGES FOR 9853/583X/47444 DEVICES.
  1372.  
  1373.  
  1374. PDN BSS 0 ENTRY
  1375. PEA BSS 0 DAS SSD 1X
  1376. PEB BSS 0 DAS SSD 2X
  1377. PEC BSS 0 DAS SABRE 1X
  1378. PED BSS 0 DAS SABRE 1XP
  1379. PEE BSS 0 DAS SABRE 2X
  1380. PEF BSS 0 DAS SABRE 2XP
  1381. PEG BSS 0 DAS ELITE 1X
  1382. PEH BSS 0 DAS ELITE 1XP
  1383. PEI BSS 0 DAS ELITE 2X (MP)
  1384. PEJ BSS 0 DAS ELITE 2XP (MP)
  1385. PEK BSS 0 DAS ELITE 3XP (MP)
  1386. PEL BSS 0 DAS ELITE 4X (MP)
  1387. PEM BSS 0 DAS SABRE 3XP (MP)
  1388. PEN BSS 0 DAS SABRE 4X (MP)
  1389. PEO BSS 0 DAS 3.5IN 1X
  1390. PEP BSS 0 DAS 3.5IN 1XP
  1391. PES BSS 0 DAS 3.5IN 2X (MP)
  1392. PEU BSS 0 DAS 3.5IN 2XP (MP)
  1393. PEV BSS 0 DAS 3.5IN 3XP (MP)
  1394. PEW BSS 0 DAS 3.5IN 4X (MP)
  1395. LDN 2
  1396. LJM PDF1 GENERATE ALL BUT STATUS MESSAGES
  1397.  
  1398. PDNT EQU BFMS-76 ADDRESS OF MESSAGE LIST
  1399.  
  1400. PDN1 LDC ERM9 PUT STATUS HEADER MESSAGE IN LIST
  1401. STI LA
  1402. AOD LA ADVANCE LIST ADDRESS
  1403. LDC PDNT+100
  1404. STD PA SET MESSAGE ASSEMBLY ADDRESS
  1405. STD CM
  1406. LDI BA FWA OF RESPONSE PACKET
  1407. LPN 17
  1408. SHN 14
  1409. LMM 1,BA FORM STATUS BLOCK LENGTH
  1410. SHN -10
  1411. ADN 1 ALLOW FOR PADDING ON LAST SUBSTATUS
  1412. SCN 1
  1413. STD BC SET OCTET COUNT
  1414. SBN 12
  1415. PJN PDN5 IF LENGTH NOT TOO SHORT
  1416. PDN3 SOD LA
  1417. PDN4 LDN 0 TERMINATE LIST
  1418. STI LA
  1419. LDC PDNT
  1420. LJM GEM3 ISSUE ERRLOG MESSAGES
  1421.  
  1422. PDN5 SBK 200
  1423. PJN PDN3 IF LENGTH TOO LONG
  1424. RJM CCR
  1425. LDN 10 LENGTH OF BASIC RESPONSE PACKET
  1426. PDN6 STD T7
  1427. ADN 1+2 INCLUDE ID WORD
  1428. SCN 1
  1429. STD T4 ALLOW FOR PADDING
  1430. RJM CCR
  1431. PDN7 LDN 4 SET LOOP CONTROL
  1432. STD T6
  1433. PDN8 LDC 2R INSERT LEADING BLANKS IN BUFFER
  1434. STI PA
  1435. AOD PA CONVERT TWO HEX DIGITS
  1436. RJM CCR
  1437. SOD T7
  1438. ZJN PDN9 IF END OF SUBSTATUS
  1439. RJM CCR
  1440. SOD T7
  1441. ZJN PDN9 IF END OF SUBSTATUS
  1442. SOD T6
  1443. NJN PDN8 IF NOT END OF MESSAGE LINE
  1444. LDN 1R &1R.
  1445. PDN9 LMN 1R. SET END OF LINE
  1446. SHN 6
  1447. STI PA TERMINATE MESSAGE LINE
  1448. LDD CM
  1449. STI LA PUT LINE IN MESSAGE LIST
  1450. AOD PA
  1451. STD CM FWA OF NEXT LINE
  1452. AOD LA
  1453. LDD T7
  1454. NJN PDN13 IF NOT END OF SUBSTATUS
  1455. * LDN 0
  1456. SBD T4 DECREMENT STATUS LENGTH
  1457. RAD BC
  1458. MJN PDN9.1 IF END OF STATUS BLOCK
  1459. NJN PDN9.2 IF NOT END OF STATUS BLOCK
  1460. PDN9.1 LJM PDN4 TERMINATE LIST
  1461.  
  1462. PDN9.2 LDD T4
  1463. LPN 1
  1464. ZJN PDN10 IF NOT PADDING OCTET
  1465. RJM CCR
  1466. SOD PA RESET PARAMETER ADDRESS
  1467. PDN10 LDC 2R
  1468. STI PA SET LEADING BLANKS IN BUFFER
  1469. AOD PA
  1470. RJM CCR CONVERT SUBSTATUS LENGTH
  1471. SOD T0
  1472. MJN PDN11 IF INVALID SUBSTATUS LENGTH
  1473. LPC 177
  1474. NJN PDN12 IF VALID SUBSTATUS
  1475. PDN11 LDD BC
  1476. PDN12 LJM PDN6 GENERATE NEXT MESSAGE LINE
  1477.  
  1478. PDN13 LDC 2R BLANK FILL START OF MESSAGE
  1479. STI PA
  1480. STM 1,PA DONT RELIST SUBSTATUS HEADER
  1481. STM 2,PA
  1482. LDN 3 ADVANCE BUFFER ADDRESS
  1483. RAD PA
  1484. LJM PDN7 CONTINUE SUBSTATUS ON NEXT LINE
  1485. TITLE MISCELLANEOUS.
  1486. TDVT SPACE 4,10
  1487. ** TDVT - TABLE OF MASS STORAGE DEVICE TYPES.
  1488.  
  1489.  
  1490. TDVT BSS 0 TABLE OF DEVICE TYPES
  1491. TBL "MSEQ"
  1492. CON 0 END OF TABLE
  1493. TELM SPACE 4,10
  1494. ** TELM - TABLE OF ERRLOG MESSAGES.
  1495.  
  1496.  
  1497. TELM BSS 0 TABLE OF MESSAGES
  1498. ERMA DATA Z*UNRECOVERED MASS STORAGE ERROR.*
  1499. ERMB DATA Z*ERROR CODE = NN.*
  1500. ERMC DATA Z*NCH = CC, UN = UU.*
  1501. ERMD DATA Z*CYL = YYYY, TRK = TT, SEC = SS.*
  1502. ERME DATA Z*LAST CHANNEL FUNCTION = FFFFFF.*
  1503. ERMF DATA H*GENERAL *
  1504. ERMG DATA Z*STATUS = GGGG.*
  1505. ERMH DATA Z*DETAILED STATUS.*
  1506. ERMI DATA Z* 01=XXXX 02=XXXX 03=XXXX 04=XXXX.*
  1507. ERMJ DATA Z* 05=XXXX 06=XXXX 07=XXXX 08=XXXX.*
  1508. ERMK DATA Z* 09=XXXX 10=XXXX 11=XXXX 12=XXXX.*
  1509. ERML DATA Z* 13=XXXX 14=XXXX 15=XXXX 16=XXXX.*
  1510. ERMM DATA Z* 17=XXXX 18=XXXX 19=XXXX 20=XXXX.*
  1511.  
  1512. ERMN DATA Z*WORD COUNT = CCCC.*
  1513. ERMO DATA Z*XM ADDR = AAAAAAAA.*
  1514.  
  1515. ERMP DATA Z*FAULT CODE = NN.*
  1516. ERMQ DATA Z*CPP = PP, CCH = CCB, EQ = E, UN = UU.*
  1517. ERMR DATA Z*CCH REG = DDDD EEEE OO C RRRR.*
  1518. ERMS DATA Z*LAST COMMAND = CCCC.*
  1519. ERMT DATA Z*IHD STATUS.*
  1520. ERMU DATA Z* 01=AAAA 02=BBBB 03=CCCC 04=DDDD.*
  1521. ERMV DATA Z* 05=EEEE 06=FFFF 07=GGGG.*
  1522. ERMW DATA Z*DEVICE STATUS.*
  1523.  
  1524. ERMX DATA Z*CYBER I/F STATUS = II.*
  1525. ERMY DATA Z*CCC STATUS = CCC.*
  1526. ERMZ DATA Z* SB00=SS SB01=SS SB02=SS SB03=SS.*
  1527. ERM1 DATA Z* SB04=SS SB05=SS SB06=SS SB07=SS.*
  1528. ERM2 DATA Z* SB08=SS SB09=SS SB10=SS SB11=SS.*
  1529. ERM3 DATA Z* SB12=SS SB13=SS SB14=SS SB15=SS.*
  1530. ERM4 DATA Z* SB16=SS SB17=SS SB18=SS SB19=SS.*
  1531. ERM5 DATA Z* SB20=SS SB21=SS SB22=SS SB23=SS.*
  1532.  
  1533. ERM6 DATA Z*OP STAT REG = OOOOOO.*
  1534. ERM7 DATA Z*AD CNTL REG = AAAAAA.*
  1535. ERM8 DATA Z*ER STAT REG = EEEEEE.*
  1536.  
  1537. ERM9 DATA Z*9853/583X/47444 STATUS.*
  1538. TEMP SPACE 4,10
  1539. ** TEMP - TABLE OF ERRLOG MESSAGE PROCESSORS.
  1540.  
  1541.  
  1542. TEMP BSS 0 TABLE OF MESSAGE PROCESSORS
  1543. TEMP HERE
  1544. TMID SPACE 4,10
  1545. ** TMID - TABLE OF MASS STORAGE BML MESSAGE ID-S.
  1546.  
  1547.  
  1548. TMID BSS 0 TABLE OF MESSAGE ID-S
  1549. TMID HERE
  1550. TMIDL EQU *-TMID LENGTH OF TABLE
  1551. SPACE 4,10
  1552. ** COMMON DECKS.
  1553.  
  1554.  
  1555. *CALL COMPACS
  1556. CA EQU PA DEFINE CONVERSION ADDRESS
  1557. LIST X
  1558. *CALL COMPCHD
  1559. LIST *
  1560. *CALL COMPC2D
  1561. *CALL COMPDV5
  1562. 1MD SPACE 4,10
  1563. OVERFLOW
  1564. BUFF SPACE 4,10
  1565. ELMB BSS 0 ERRLOG MESSAGE ASSEMBLY BUFFER
  1566. BUFF EQU ELMB+5*5 MESSAGE BUFFER
  1567. BUFFL EQU PDNT-BUFF
  1568. ERRNG PDNT-BUFF-5*200 OVERFLOW
  1569. END