Table of Contents

1MB

Table Of Contents

  • [00007] 1MB - HARDWARE ERROR PROCESSOR.
  • [00009] HARDWARE ERROR PROCESSOR.
  • [00098] COMMON SUBROUTINES.
  • [00100] COMMON - COMMON CODE FOR *1MB* AND *1SC*.
  • [00108] CKC - CHECK FOR *1CK* COMPLETE.
  • [00128] CKP - CHECKPOINT SYSTEM.
  • [00174] CSH - CHECKPOINT SYSTEM, SET STEP, AND HANG.
  • [00202] DPP - DROP PP.
  • [00255] RSM - REQUEST STEP MODE.
  • [00295] TBLM - CREATE TABLE ENTRY MACRO.
  • [00318] EMBE - ERROR MESSAGE TABLE ENTRY.
  • [00334] RPTR - CONVERT ADDRESS FROM R-REGISTER FORMAT.
  • [00393] MAINTENANCE REGISTER PROCESSING.
  • [00498] TDFA - TABLE OF *DFT* ANALYSIS CODES.
  • [00527] CNR - CHECK FOR NOS REQUEST.
  • [00572] CRQ - CHECK *DFT* REQUEST FOR SPECIAL PROCESSING.
  • [00713] OS ACTION CODE PROCESSING ROUTINES.
  • [00724] ENW - ENVIRONMENT WARNING.
  • [00759] LPW - LONG POWER WARNING.
  • [00767] SPW - SHORT POWER WARNING.
  • [00780] WCL - WARNING CLEAR.
  • [00826] FIE - FATAL IOU ERROR.
  • [00851] NIE - NOS/VE IOU ERROR.
  • [00862] MOB - MULTIPLE ODD BIT ERROR.
  • [00870] OS ACTION CODE SUBROUTINES.
  • [00872] CCI - CLEAR M/R CONTROL WORD INTERLOCK.
  • [00892] CCM - CREATE CONSOLE MESSAGE.
  • [00995] CHC - CONVERT HEXADECIMAL CHARACTER TO DISPLAY CODE.
  • [01011] CTC - CONVERT TWO CHARACTERS.
  • [01038] CTD - CONVERT TWO DIGITS.
  • [01062] RER - READ *EID* REGISTER.
  • [01125] RERA - TABLE OF MESSAGE CHARACTERS.
  • [01141] SCM - SET ANALYSIS CODE IN MESSAGE.
  • [01166] WWC - WAIT FOR WARNING CLEAR.
  • [01200] MAINTENANCE REGISTER PROCESSING SUBROUTINES.
  • [01202] CBM - COMPLETE *BML* MESSAGES.
  • [01242] CPM - CLEAR PP MEMORY.
  • [01266] CTH - CHECK THRESHOLD EXCEEDED.
  • [01310] CTP - CHECK FOR TIME AND CHECKPOINT PROCESSING.
  • [01366] C9E - CHECK SPECIAL MODEL 990 ERRORS.
  • [01420] DOA - DETERMINE OS ACTION.
  • [01469] DOB - GET DFT/OS BUFFER ADDRESS.
  • [01477] DPR - DUMP PP REGISTERS.
  • [01544] DSP - GET *EICB* ADDRESS.
  • [01555] FNR - FIND NON-REGISTER DATA.
  • [01591] FOM - FIND OLDEST M/R BUFFER ENTRY.
  • [01687] FSS - FIND SUPPORTIVE STATUS DATA.
  • [01722] GPB - GET POINTER TO *BML* BUFFER.
  • [01757] IMD - ISSUE MODEL DEPENDENT DATA *BML* MESSAGE.
  • [01776] LDT - LOG DATA STRUCTURE.
  • [01815] LED - LOAD AND EXECUTE *DFT*.
  • [01978] LMD - LOG MODEL DEPENDENT BUFFER.
  • [02055] LMR - LOG MAINTENANCE REGISTERS.
  • [02157] LNR - LOG NON-REGISTER DATA.
  • [02189] LSS - LOG SUPPORTIVE STATUS DATA.
  • [02226] LTE - LOG TABLE ENTRIES.
  • [02276] MDB - LOG MODEL DEPENDENT BUFFER DATA.
  • [02360] MRB - GET M/R BUFFERS ADDRESS.
  • [02369] MRER - MAINTENANCE REGISTER ERROR HANDLER.
  • [02405] PMB - PACK MAINTENANCE REGISTER TO *BML*.
  • [02443] PMR - UNPACK M/R INTO *BCMR*.
  • [02470] PWB - PACK WORD TO BUFFER.
  • [02506] RMR - READ MAINTENANCE REGISTER.
  • [02538] SCA - SET M/R BUFFER CONTROL WORDS ADDRESS.
  • [02563] SDA - SET NOS REQUEST HEADER ADDRESS.
  • [02572] SID - SET SECDED ID TABLE INFORMATION.
  • [02628] UCC - UPDATE CTI CLOCK.
  • [02656] WLB - WRITE LAST *BML* MESSAGE.
  • [02707] OVERLAYABLE SUBROUTINES.
  • [02711] SBA - SET BUFFER ADDRESSES.
  • [02828] COMMON PRESET.
  • [02830] PRESET - COMMON PRESET CODE FOR *1MB* AND *1SC*.
  • [02924] PRESET.
  • [02952] STA - SET TABLE ADDRESSES.
  • [03158] BIS - BUILD ID SUMMARY TABLE ADDRESS.
  • [03181] CFE - CHECK FOR FATAL ERRORS.
  • [03255] IBM - ISSUE BML MESSAGE.
  • [03389] ODW - OUTPUT DESCRIPTOR WORD TO SCR.
  • [03408] OLB - OUTPUT LOG TO *BML*.
  • [03475] PTP - PERFORM TIME PROCESSING.
  • [03535] RSC - READ S/C REGISTER(S).
  • [03598] PEF - CHECK FOR POWER OR ENVIRONMENTAL FAILURE.
  • [03644] PSB - PROCESS SINGLE BIT SECDED ERRORS.
  • [03683] TEB - CLEAR TEST/ERROR BITS IN S/C.
  • [03732] CHN - CHANGE S/C REGISTER CHANNEL.
  • [03751] TPE - TEST POWER FAILURE AND ENVIRONMENTAL BITS.
  • [03823] TRB - TEST S/C REGISTER BIT.
  • [03850] UBS - UPDATE BIT STATUS.
  • [03957] TSCR - TABLE FOR THE CONTENTS OF THE S/C REGISTERS.
  • [03967] PCS - PRESET FOR 1SC.
  • [04077] CFP - CHECK FOR *FLPP* ERROR.
  • [04175] MAIN PROGRAM.
  • [04199] SUBROUTINES.
  • [04201] CMC - CHECK MASS STORAGE CHANNEL.
  • [04268] PRESET PROGRAM.
  • [04270] PRS - PRESET PROGRAM.
  • [04342] IHD - ISSUE HOUR AND DATE TO DAYFILES.
  • [04368] CCO - CLEAR COUNTS IN EST/MST ENTRIES.
  • [04443] CRC - CLEAR RELOAD COUNTS IN CONTROLWARE TABLE.
  • [04505] PES - PROCESS ESM SECDED ERROR LOG.
  • [04643] OLB - OUTPUT LOG TO *BML*.
  • [04706] WCF - WAIT FOR CHANNEL FULL.
  • [04723] PCI - PRESET CHANNEL INSTRUCTIONS.

Source Code

1MB.txt
  1. IDENT 1MB,/1MB/MEP
  2. PERIPH
  3. BASE MIXED
  4. SST SSCP
  5. *COMMENT 1MB - HARDWARE ERROR PROCESSOR.
  6. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  7. TITLE 1MB - HARDWARE ERROR PROCESSOR.
  8. SPACE 4,10
  9. *** 1MB - HARDWARE ERROR PROCESSOR.
  10. * J. D. LANGE. 74/05/10.
  11. * C. R. LUND. 80/01/07.
  12. * P. J. ENGLE. 84/09/10.
  13. * M. S. PESCHMAN 85/07/24.
  14. SPACE 4,30
  15. *** EITHER *1MB* OR *1SC* IS CALLED BY THE SYSTEM MONITOR
  16. * TO PERFORM FUNCTIONS WHICH CAN NOT BE PROCESSED BY THE
  17. * MONITOR.
  18. * FOR MAINFRAMES WITH MAINTENANCE REGISTERS, ERRORS ARE
  19. * PROCESSED BY *1MB* IN ROUTINE *MEP*. CORRECTED MEMORY
  20. * ERRORS ARE HANDLED COMPLETELY BY *1MB* WHO BUILDS THE TABLE
  21. * OF UNIQUE ID-S AS IS DONE FOR SECDED ERRORS.
  22. * *1SC* PERFORMS SCR PROCESSING ON FATAL SCR ERRORS
  23. * AND ON UNIQUE SECDED ERRORS ONLY. *1SC* FIRST CHECKS FOR
  24. * FATAL ERRORS, AND (IF NONE HAVE OCCURRED) THEN INCREMENTS
  25. * THE APPROPRIATE COUNTER IN CM WORD *SCRL* FOR UNIQUE
  26. * SECDED ERRORS, CLEARS THE ERROR BIT IN THE SCR, AND DROPS
  27. * THE PP. IF MONITOR HAS DETERMINED THAT A SECDED ERROR
  28. * WAS NOT UNIQUE (I.E. - THE ERROR WAS CAUSED BY THE SAME
  29. * MEMORY LOCATION PREVIOUSLY THAT HOUR), MONITOR WILL
  30. * INCREMENT THE APPROPRIATE COUNTERS IF THOSE COUNTERS HAVE
  31. * NOT EXCEEDED THEIR THRESHOLDS. WHEN MONITOR HAS
  32. * FINISHED PROCESSING NON-UNIQUE ERRORS, IT WILL CLEAR
  33. * THE SECDED ERROR BIT AND CONTINUE IN ITS PROCESSING LOOP.
  34. * IN A SYSTEM EXPERIENCING FREQUENT SINGLE BIT SECDED
  35. * ERRORS, THIS PROCESS OF CHECKING FOR ERROR UNIQUENESS IN
  36. * MONITOR WILL REDUCE THE NUMBER OF CALLS TO *1SC* TO A
  37. * MAXIMUM OF *UIDL* PER HOUR (SEE *COMSSCR*).
  38. * FOR CYBER 176 MACHINES, LCME SINGLE BIT SECDED
  39. * ERRORS ARE PROCESSED IN A SIMILAR MANNER.
  40. * FOR MAINFRAMES WITH AN ESM MAINTENANCE PORT
  41. * DEFINED, *2TH* WILL LOG THE CONTENTS OF THE ESM
  42. * SECDED LOG TO THE BML AT THE END OF EVERY HOUR.
  43. * SCR PROCESSING AND TERMINOLOGY IS ALSO USED TO
  44. * REFER TO CYBER 170 - 865/875 MAINTENANCE REGISTERS.
  45. SPACE 4,10
  46. **** DIRECT LOCATION ASSIGNMENTS.
  47.  
  48.  
  49. T8 EQU 16 TEMPORARY
  50. T9 EQU 17 TEMPORARY
  51. CN EQU 20 - 24 CM BUFFER (5 LOCATIONS)
  52. WB EQU CN - CN+4 FOR *COMPIMB* COMPATIBILITY
  53. MF EQU 25 MACHINE FLAG
  54. NB EQU 26 NUMBER OF PP BYTES IN *BML* MESSAGE
  55. PN EQU 27 PP NUMBER * 100B
  56. SC EQU 30 - 34 S/C PARAMETER WORD *SCRL* (5 LOCATIONS)
  57. MI EQU 60 - 64 MAINFRAME IDENTIFICATION
  58. EM EQU 65 LAST MASS STORAGE EST ORDINAL + 1
  59.  
  60.  
  61. ** DIRECT CELLS FOR STATUS AND CONTROL REGISTER PROCESSING.
  62.  
  63. QUAL 1SC
  64. CH EQU 40 - 41 S/C REGISTER CHANNELS
  65. ER EQU 42 NUMBER OF S/C REGISTER ERRORS
  66. NP EQU 43 NUMBER OF PP-S IN SYSTEM
  67. NW EQU 44 NUMBER OF CM WORDS IN *BML* MESSAGE
  68. QUAL *
  69.  
  70.  
  71. ** DIRECT CELLS FOR MAINTENANCE REGISTER PROCESSING.
  72.  
  73. QUAL 1MB
  74. BP EQU 40 NEXT WORD IN *BML* MESSAGE TO USE
  75. EC EQU 41 ELEMENT ACCESS CODE
  76. MB EQU 42 - 43 M/R BUFFER CONTROL WORD ADDRESS
  77. MS EQU 44 - 45 M/R BUFFER ADDRESS
  78. RN EQU 46 REGISTER NUMBER
  79. DC EQU 60 - 64 *DFT* CONTROL WORD
  80. QUAL *
  81. ****
  82. SPACE 4,10
  83. * ASSEMBLY CONSTANTS.
  84.  
  85.  
  86. QUAL$ EQU 0 DO NOT QUALIFY COMMON DECKS
  87.  
  88. MF70 EQU 0 CYBER 70
  89. ERRNZ MF70 CODE DEPENDS ON ZERO VALUE
  90. MF170 EQU 1 CYBER 170
  91. MF700 EQU 2 CYBER 170 - 700 SERIES
  92. MF865 EQU 3 CYBER 170 - 865
  93. MF875 EQU 4 CYBER 170 - 875
  94. MF180 EQU 5 CYBER 180 CLASS MACHINE
  95. MF176A EQU 6 CYBER 176 LEVEL A
  96. MF176B EQU 7 CYBER 176 LEVEL B
  97. MFMAX EQU 10B MAXIMUM MAINFRAME TYPE + 1
  98. TITLE COMMON SUBROUTINES.
  99. COMMON SPACE 4,10
  100. ** COMMON - COMMON CODE FOR *1MB* AND *1SC*.
  101. *
  102. * THIS MACRO PROVIDES SIMILAR CODE FOR *1MB* AND *1SC*.
  103.  
  104.  
  105. COMMON MACRO
  106. COMMON RMT
  107. CKC SPACE 4,10
  108. ** CKC - CHECK FOR *1CK* COMPLETE.
  109. *
  110. * ENTRY (SC+2) = *1CK* IR ADDRESS.
  111. *
  112. * EXIT *1CK* COMPLETE.
  113. *
  114. * USES CM - CM+4.
  115.  
  116.  
  117. CKC SUBR ENTRY/EXIT
  118. CKC1 LDD SC+2 READ *1CK* IR
  119. CRD CM
  120. LDD CM+1
  121. SCN 77
  122. SHN 6
  123. LMD CM
  124. LMC 3RK1C
  125. NJN CKCX IF *1CK* COMPLETE
  126. UJN CKC1 LOOP
  127. CKP SPACE 4,15
  128. ** CKP - CHECKPOINT SYSTEM.
  129. *
  130. * ENTRY (SC+2) = *1CK* IR ADDRESS.
  131. *
  132. * EXIT EXITS TO *1CK* ON INITIAL CALL.
  133. * CHECKPOINT IN PROGRESS BIT SET IN *EICB*.
  134. *
  135. * USES CM - CM+4, SC+2.
  136. *
  137. * CALLS /1MB/DSP, *1CK*.
  138. *
  139. * MACROS EXECUTE.
  140.  
  141.  
  142. CKP SUBR ENTRY/EXIT
  143. LDD SC+2 CHECK FOR *1CK* ALREADY CALLED
  144. NJN CKPX IF *1CK* ALREADY CALLED
  145. .A IFC EQ,/"QUAL"/1MB/
  146. RJM /1MB/DSP GET *EICB* POINTER
  147. ZJN CKP1 IF NO *EICB*
  148. ADN D7ST
  149. CRD CM READ STATUS WORD
  150. LDD CM
  151. SCN 4
  152. LMN 4 SET CHECKPOINT IN PROGRESS
  153. STD CM
  154. RJM /1MB/DSP
  155. ADN D7ST
  156. CWD CM
  157. .A ENDIF
  158. CKP1 EXECUTE 1CK,=
  159. LDD IA CALL *1CK*
  160. CWM CKPA,ON
  161. SCN 7
  162. STD SC+2
  163. LDM CKPA+2
  164. LMN 10
  165. CKP2 ZJP DPP3 IF TO RECALL *1MB*
  166. LMN 11&10
  167. ZJN CKP2 IF TO RECALL *1MB*
  168. LMN 13&11
  169. ZJN CKP2 IF TO RECALL *1MB*
  170. LJM DPP2 EXIT TO *1CK* AND ENABLE *1MB* CALL
  171.  
  172. CKPA VFD 18/0L1CK,6/0,12/1,24/0 SYSTEM CHECKPOINT CALL
  173. CSH SPACE 4,10
  174. ** CSH - CHECKPOINT SYSTEM, SET STEP, AND HANG.
  175. *
  176. * ENTRY AT *CSH1* FOR CYBER 176 DOUBLE BIT *SECDED* ERROR.
  177. *
  178. * CALLS CKC, CKP, RSM.
  179.  
  180.  
  181. CSH SUBR ENTRY (DOES NOT RETURN)
  182. .A IFC EQ,/"QUAL"/1MB/
  183. RJM /1MB/DPR DUMP PP REGISTERS
  184. .A ENDIF
  185. RJM CKP ATTEMPT SYSTEM CHECKPOINT
  186. LDD CP
  187. ADN MS2W DISPLAY * FATAL ERROR.* MESSAGE
  188. CWM CSHM,TR
  189. CSHA EQU *-1 (MESSAGE ADDRESS)
  190. RJM CKC WAIT FOR *1CK* TO FINISH
  191. .A IFC EQ,/"QUAL"/1MB/
  192. RJM /1MB/DPR DUMP PP REGISTERS
  193. .A ENDIF
  194. CSH1 RJM RSM STEP SYSTEM
  195. CSH2 LDD CP DISPLAY *FATAL ERROR* MESSAGE AGAIN
  196. ADN MS2W
  197. CWM CSHM,TR
  198. CSHB EQU *-1 (MESSAGE ADDRESS)
  199. DELAY 5*8D DELAY 5 SECONDS (FOR OTHER MESSAGES)
  200. UJN CSH2 DISPLAY MESSAGE AGAIN
  201. DPP SPACE 4,20
  202. ** DPP - DROP PP.
  203. *
  204. * ENTRY (SC - SC+4) = *SCRL* WORD WITH MONITOR LOCK-OUT BIT
  205. * SET.
  206. *
  207. * EXIT (SC - SC+4) = *SCRL* WORD WITH MONITOR LOCK-OUT BIT
  208. * CLEARED.
  209. * = WRITTEN TO CENTRAL MEMORY.
  210. * PP DROPPED.
  211. * 16-BIT INSTRUCTIONS CLEARED, IF PRESENT.
  212. * EXIT TO *PPR*.
  213. *
  214. * NOTE THE *DPPM* FUNCTION IN THIS ROUTINE IS
  215. * EXECUTED OUT OF NORMAL ORDER TO PREVENT
  216. * PP SATURATION WHEN *1MB* IS STEPPED
  217. * ON A *DPPM*.
  218.  
  219.  
  220. .A IFC EQ,/"QUAL"/1MB/
  221. DPP5 LJM LED RELOAD DFT FOR SECOND TOP OF HOUR
  222. .A ENDIF
  223.  
  224. DPP MONITOR DPPM DROP PP
  225. DPPA EQU DPP
  226. * UJN DPP5 (SECOND PASS TOP OF HOUR)
  227. DPP1 LDN 0 CLEAR *1CK* IR ADDRESS
  228. STD SC+2
  229. DPP2 LDD SC CLEAR MONITOR LOCK-OUT BIT
  230. LPC 3777
  231. STD SC
  232. DPP3 LDC SCRL UPDATE *SCRL*
  233. CWD SC
  234. .A IFC EQ,/"QUAL"/1MB/
  235. DPPB LDN 0
  236. * LDN 1 (16-BIT INSTRUCTIONS PRESENT)
  237. ZJN DPP4 IF NO 16-BIT INSTRUCTIONS
  238. RJM CPM CLEAR PP MEMORY
  239. LDC 400000B+LINS ADDRESS OF INSTRUCTION TABLE
  240. RJM DLI CLEAR 16-BIT INSTRUCTIONS
  241. .A ENDIF
  242. DPP4 LJM PPR EXIT TO PP RESIDENT
  243. IBM SPACE 4,10
  244. ** *BML* MESSAGE BUFFER.
  245.  
  246.  
  247. IBMF VFD 12/0,12/0,6/0,6/0,24/0 MESSAGE ID/SYMPTOM CODE
  248. IBMG VFD 12/0,9/0,1/0,2/0,36/0 MESSAGE CONTINUATION BIT
  249. IBMH VFD 60/0 BML MESSAGE BUFFER (4 CM WORDS)
  250. VFD 60/0
  251. VFD 60/0
  252. VFD 60/0
  253. IBMHL EQU * END OF BML BUFFER
  254. RSM SPACE 4,10
  255. ** RSM - REQUEST STEP MODE.
  256. *
  257. * ENTRY (SC - SC+4) = (SCRL).
  258. *
  259. * EXIT STEP MODE SET.
  260. *
  261. * USES CM - CM+4, SC - SC+4.
  262. *
  263. * MACROS MONITOR.
  264.  
  265.  
  266. RSM SUBR ENTRY/EXIT
  267. LDD SC
  268. SHN 21-11
  269. MJN RSMX IF STEP ALREADY REQUESTED
  270. LDD TH SET REQUEST BIT AND WRITE SCRL
  271. RAD SC
  272. LDC SCRL
  273. CWD SC
  274. LDD SC
  275. SHN 21-10
  276. MJN RSMX IF STEP SET
  277. LDN 0 CLEAR EJT ORDINAL
  278. STD CM+2
  279. LDN DPPM STEP ON DROP PP
  280. STD CM+3
  281. LMD TH
  282. STD CM+4
  283. LDN ESPS SET EMERGENCY STEP SUBFUNCTION
  284. STD CM+1
  285. MONITOR DSRM SET STEP MODE
  286. LDC SCRL READ *SCRL*
  287. CRD SC
  288. UJN RSMX RETURN
  289.  
  290. COMMON RMT
  291. COMMON ENDM
  292. SPACE 4,10
  293. * MACROS.
  294. TBLM SPACE 4,10
  295. ** TBLM - CREATE TABLE ENTRY MACRO.
  296. *
  297. *NAM TBLM
  298. *
  299. * ENTRY NAM = TABLE NAME.
  300. *
  301. * EXIT NAM_E MACRO DEFINED.
  302.  
  303.  
  304. PURGMAC TBLM
  305.  
  306. MACRO TBLM,NAM
  307. PURGMAC NAM_E
  308. NAM_E MACRO ADDR
  309. LOCAL A
  310. MACREF NAM_E
  311. NOREF A
  312. A EQU ADDR
  313. T_NAM RMT
  314. CON A
  315. RMT
  316. TBLM ENDM
  317. EMBE SPACE 4,10
  318. ** EMBE - ERROR MESSAGE TABLE ENTRY.
  319. *
  320. * THIS MACRO GENERATES AN ENTRY IN REMOTE LIST *TEMB*
  321. * THAT CONTAINS THE ADDRESS OF AN INSTRUCTION WHICH
  322. * REQUIRES THE FWA OF THE ERROR MESSAGE TABLE.
  323. *
  324. * EMBE ADDR
  325. *
  326. * ENTRY (ADDR) = ADDRESS OF INSTRUCTION.
  327. *
  328. * EXIT ADDRESS IS ADDED TO THE REMOTE BLOCK *TEMB*.
  329.  
  330.  
  331. EMB TBLM
  332. SPACE 4,10
  333. RPTR SPACE 4,15
  334. ** RPTR - CONVERT ADDRESS FROM R-REGISTER FORMAT.
  335. *
  336. * RPTR DC,ADDR
  337. *
  338. * ENTRY *DC* = DIRECT CELL LOCATION OF R-REGISTER FORMAT
  339. * ADDRESS (R-UPPER IN *DC*+1 IS ASSUMED = 0).
  340. * *ADDR* = LOCATION TO STORE CONVERTED ADDRESS.
  341. *
  342. * EXIT (ADDR - ADDR+1) = CONVERTED ADDRESS.
  343. * (A) = CONVERTED ADDRESS, IF *ADDR* NOT SPECIFIED.
  344.  
  345.  
  346. PURGMAC RPTR
  347.  
  348. RPTR MACRO D,A
  349. LDD D+2 R-LOWER
  350. SHN 6
  351. LMD D OFFSET
  352. .A IFC NE,$A$$
  353. STM A+1
  354. SHN -14
  355. RAM A
  356. .A ENDIF
  357. RPTR ENDM
  358. ** COMMON DECKS.
  359.  
  360.  
  361. *CALL COMPMAC
  362. RICHI$ BSS 0
  363. *CALL COMPCHI
  364. *CALL COMPIOU
  365. *CALL COMPMRM
  366. *CALL COMSCPS
  367. *CALL COMSDFS
  368. LIST X
  369. *CALL COMSDFT
  370. LIST *
  371. QUAL DSL
  372. *CALL COMSDSL
  373. QUAL *
  374. *CALL COMSDST
  375. *CALL COMSEVT
  376. *CALL COMSIOU
  377. *CALL COMSMSC
  378. QUAL MSP
  379. *CALL COMSMSP
  380. QUAL *
  381. *CALL COMSMST
  382. *CALL COMSPIM
  383. *CALL COMSREM
  384. QUAL SSD
  385. *CALL COMSSSD
  386. QUAL *
  387. LIST X
  388. *CALL COMSSCR
  389. LIST *
  390. QUAL 1DS
  391. *CALL COMS1DS
  392. QUAL *
  393. TITLE MAINTENANCE REGISTER PROCESSING.
  394. *** MEP - MAINTENANCE CHANNEL ERROR PROCESSOR.
  395. *
  396. * *MEP* IS THE MAIN DRIVER THAT PROCESSES THE LOGGING OF ERRORS
  397. * THAT WERE DETECTED BY *DFT*. *1MB* IS CALLED BY *MTR* TO
  398. * LOAD *DFT* IN THE NON-DEDICATED CASE. *1MB* WILL REACT TO
  399. * THE OS ACTION CODES SUPPLIED BY *DFT* AND LOG THE MAINTENANCE
  400. * REGISTERS TO THE *BML*.
  401. SPACE 4,10
  402. *** DAYFILE MESSAGES.
  403. *
  404. *
  405. * * 1MB - CALL ERROR.* = *1MB* WAS CALLED WITH AN ILLEGAL
  406. * FUNCTION BIT CODE.
  407. SPACE 4,20
  408. *** SYSTEM CONTROL POINT MESSAGES.
  409. *
  410. *
  411. * HH.MM.SS ERR=DEMMXXXXXXXX
  412. *
  413. * HH.MM.SS = TIME THE ERROR WAS DETECTED, IF VERSION 4 OR ABOVE
  414. * *DFT* AND THE TIME WAS AVAILABLE FROM THE WALL
  415. * CLOCK CHIP.
  416. * = TIME THE ERROR WAS LOGGED BY *1MB*, IF *DFT*
  417. * VERSION 3, OR THE TIME WAS NOT AVAILABLE TO *DFT*.
  418. *
  419. * E = ELEMENT SPECIFIER.
  420. * = C, FOR PROCESSOR 0.
  421. * = D, FOR PROCESSOR 1.
  422. * = I, FOR IOU 0.
  423. * = J, FOR IOU 1.
  424. * = M, FOR MEMORY.
  425. * = A, FOR *DFT* INTERNAL ERROR.
  426. *
  427. * MM = MODEL NUMBER OF THE SPECIFIED ELEMENT.
  428. * THIS FIELD IS NOT PRESENT IF THE ELEMENT SPECIFIER IS
  429. * *A*.
  430. *
  431. * XXXXXXXX = MODEL DEPENDENT DATA FURTHER DESCRIBING THE ERROR.
  432. * THIS NORMALLY CONSISTS OF THE THREE CHARACTER
  433. * *DFT* ANALYSIS CODE.
  434. *
  435. *
  436. * IN THE FOLLOWING MESSAGES, THE HEXADECIMAL NUMBER IN THE
  437. * MESSAGE IS THE *DFT* ANALYSIS CODE WHICH CAUSED THE MESSAGE.
  438. *
  439. * *(204) FATAL CPU ERROR*
  440. * *(215) FATAL MCH ERROR*
  441. *
  442. * THE FOLLOWING MESSAGE IS POSTED WHEN A POWER OR ENVIRONMENT
  443. * WARNING HAS CLEARED.
  444. *
  445. * *POWER/ENVIRONMENT NORMAL*
  446. SPACE 4,10
  447. ORG PPFW
  448. QUAL 1MB
  449.  
  450. MEP BSS 0 ENTRY
  451. LJM MEP1 PRESET
  452.  
  453. * GLOBAL STORAGE.
  454.  
  455. DFTV CON 0 *DFT* VERSION (0 = VERSION 3)
  456. SSCW CON 0,0 SUPPORTIVE STATUS CONTROL WORD ADDRESS
  457. SPACE 4,10
  458. ** COMMON SUBROUTINES.
  459.  
  460.  
  461. COMMON
  462.  
  463. LIST D
  464. COMMON HERE
  465. LIST *
  466. SPACE 4,10
  467. * COMMON DECKS WITH NO 16-BIT INSTRUCTIONS.
  468.  
  469.  
  470. *CALL COMPMRA
  471. *CALL COMPACS
  472. *CALL COMT8AD
  473. SPACE 4,10
  474. * SYSTEM CONTROL POINT MESSAGES.
  475.  
  476.  
  477. MSFS DATA 28C HH.MM.SS.ERR=XXXXXXXXXXXX
  478. CSHM EQU MSFS DEFAULT *CSHM* MESSAGE
  479. MSCP DATA C*(204) FATAL CPU ERROR*
  480. MSME DATA C*(215) FATAL MCH ERROR*
  481. MSPN DATA C*POWER/ENVIRONMENT NORMAL*
  482. TOSC SPACE 4,10
  483. ** TABLE OF OS ACTION CODES.
  484.  
  485. TOSC INDEX
  486. INDEX EWAC,ENW ENVIRONMENT WARNING
  487. INDEX LPAC,LPW LONG POWER WARNING
  488. INDEX SPAC,SPW SHORT POWER WARNING
  489. INDEX WCAC,WCL WARNING CLEAR
  490. INDEX FIAC,FIE FATAL IOU ERROR
  491. INDEX NVAC,NIE NOS/VE IOU ERROR
  492. INDEX UMAC,MEP6 FATAL CM ERROR
  493. INDEX MBAC,MOB MULTIPLE ODD BIT ERROR
  494. INDEX UPAC,MEP6 FATAL CPU ERROR
  495. INDEX UIAC,FIE UNCORRECTED IOU ERROR
  496. INDEX MXAC
  497. TDFA SPACE 4,10
  498. ** TDFA - TABLE OF *DFT* ANALYSIS CODES.
  499. *
  500. *T 12/ *DFT* CODE, 12/ ACTION, 12/ ROUTINE
  501. *
  502. * FOR *DFT* VERSION 4, OR ABOVE THE PROCESSING ROUTINE IS
  503. * SELECTED BY FINDING A TABLE ENTRY WITH A *DFT* ANALYSIS CODE
  504. * AND OS ACTION CODE MATCHING THOSE PASSED BY *DFT*. IF NO
  505. * MATCH IS FOUND, ROUTINE *MSC* WILL BE SELECTED. THE TABLE
  506. * MUST BE IN ASCENDING ORDER BY ANALYSIS CODE.
  507.  
  508.  
  509. TDFA BSS 0
  510. CON 4,S7AC,FIE C170 UNCORRECTED IOU ERROR (NIO PP)
  511. CON 4,S8AC,NIE C180 UNCORRECTED IOU ERROR (NIO PP)
  512. CON 6,SSAC,FIE FATAL IOU ERROR (NIO PP)
  513. CON 0#8,SSAC,FIE FATAL IOU ERROR (CIO PP)
  514. CON 0#9,S7AC,FIE C170 UNCORRECTED IOU ERROR (CIO PP)
  515. CON 0#9,S8AC,NIE C180 UNCORRECTED IOU ERROR (CIO PP)
  516. CON 0#105,SSAC,MOB MULTIPLE ODD BIT MEMORY ERROR
  517. CON 0#106,SSAC,MOB PARTIAL WRITE PARITY ERROR
  518. CON 0#21E,SSAC,MOB PARTIAL WRITE PARITY ERROR (990)
  519. CON 0#701,ISAC,ENW ENVIRONMENT WARNING
  520. CON 0#702,ISAC,LPW LONG POWER WARNING
  521. CON 0#703,SSAC,SPW SHORT POWER WARNING
  522. CON 0#704,RSAC,WCL ENVIRONMENT WARNING CLEAR
  523. CON 0#705,RSAC,WCL LONG POWER WARNING CLEAR
  524. CON 0#706,USAC,WCL SHORT POWER WARNING CLEAR
  525. CON 0#FFF END OF TABLE
  526. CNR SPACE 4,15
  527. ** CNR - CHECK FOR NOS REQUEST.
  528. *
  529. * THIS ROUTINE IS CALLED IF *DFT* IS IN DEDICATED MODE AND
  530. * THERE IS A NOS REQUEST PRESENT. IT RESERVES THE CIP
  531. * CHANNEL, SETS THE REQUEST STATUS = *ACTIVE*, WAITS FOR THE
  532. * REQUEST TO BE PROCESSED, AND RELEASES THE CIP CHANNEL.
  533. *
  534. * USES CM - CM+4, T1 - T1+4.
  535. *
  536. * CALLS CRQ, SDA.
  537. *
  538. * MACROS DCHAN, DELAY, RCHAN.
  539.  
  540.  
  541. CNR SUBR ENTRY/EXIT
  542. RJM SDA READ NOS REQUEST HEADER
  543. CRD T1
  544. LDD T1+4 CHECK REQUEST STATUS
  545. LMN STRY
  546. NJN CNRX IF NOT STATUS = *READY*
  547. LDN DSAL LOCATE CIP CHANNEL
  548. CRD CM
  549. LDD CM+4 RESERVE CIP CHANNEL
  550. LPN 77
  551. STM CNRA
  552. RCHAN
  553. RJM CRQ CHECK REQUEST FOR SPECIAL PROCESSING
  554. LDN STAC SET STATUS = *ACTIVE*
  555. STD T1+4
  556. RJM SDA REWRITE NOS REQUEST HEADER
  557. CWD T1
  558.  
  559. * WAIT FOR REQUEST TO BE PROCESSED BY *DFT*.
  560.  
  561. CNR1 DELAY
  562. RJM SDA READ NOS REQUEST HEADER
  563. CRD T1
  564. LDD T1+4
  565. LMN STAC
  566. ZJN CNR1 IF STATUS = *ACTIVE* STILL PRESENT
  567. LDC ** RELEASE CIP CHANNEL
  568. CNRA EQU *-1
  569. DCHAN
  570. LJM CNRX RETURN
  571. CRQ SPACE 4,10
  572. ** CRQ - CHECK *DFT* REQUEST FOR SPECIAL PROCESSING.
  573. *
  574. * EXIT *UADM/FRAS* ISSUED IF NECESSARY.
  575. *
  576. * CALLS SDA.
  577. *
  578. * USES CM - CM+4.
  579. *
  580. * MACROS MONITOR.
  581.  
  582.  
  583. CRQ SUBR ENTRY/EXIT
  584.  
  585. * THE FOLLOWING CODE ASSUMES THERE IS ONLY ONE REQUEST BUFFER
  586. * WHICH IMMEDIATELY FOLLOWS THE REQUEST HEADER.
  587.  
  588. RJM SDA READ REQUEST
  589. ADN 1
  590. CRM CRQA,ON
  591. LDM CRQA CHECK REQUEST
  592. LMN RQSF
  593. NJN CRQX IF NO *UADM* NEEDED
  594. LDC FRAS SET *UADM* SUBFUNCTION
  595. STM CRQA
  596. LDD MA WRITE REQUEST TO MESSAGE BUFFER
  597. CWM CRQA,ON
  598. LDN ZERL SET *UADM* PARAMETERS
  599. CRD CM
  600. LDN 1 SET REQUEST COUNT
  601. STD CM+1
  602. * STD CM+2 (NO DROP FLAG IGNORED)
  603. MONITOR UADM ALERT *CPUMTR* OF PENDING *FRC* UPDATE
  604. UJN CRQX RETURN
  605.  
  606.  
  607. CRQA BSS 5
  608. MEP SPACE 4,20
  609. * MAIN PROGRAM.
  610.  
  611. ** PROGRAMMING NOTE.
  612. *
  613. * WHENEVER A CALL TO *DFM* IS MADE, IT MAY BE NECESSARY FOR
  614. * *1DD* TO BE INVOKED TO FLUSH THE DAYFILE BUFFER. *1DD*
  615. * OVERLAYS A PART OF THE PP, WHICH IT RESTORES WHEN COMPLETE.
  616. * HOWEVER, SINCE ONLY 12-BIT DATA CAN BE RESTORED BY THIS
  617. * PROCESS, *1MB* MUST NEVER DEPEND ON 16-BIT DATA BEING
  618. * PRESERVED ACROSS A *DFM* CALL IN THE PART OF THE PP USED BY
  619. * *1DD*. FIRST, ANY *1MB* CODE CONTAINING LONG INSTRUCTIONS
  620. * MUST NOT START BEFORE LOCATION *DDLW*, DEFINED IN *COMSMSC*
  621. * AS THE LAST WORD USED BY *1DD*. SECOND, SINCE ANY DIRECT
  622. * CELLS CONTAINING 16-BIT DATA WILL NOT BE INTACT AFTER *1DD*
  623. * IS COMPLETE, CARE SHOULD BE TAKEN EITHER TO STORE 16-BIT DATA
  624. * IN THE PROTECTED AREA OF *1MB*, OR TO RE-READ THE DATA FROM
  625. * CM AFTER THE *DFM* CALL.
  626.  
  627.  
  628. .MEP MAX *,DDLW
  629. ORG .MEP
  630.  
  631. MEP1 RJM PRS PRESET FOR *1MB*
  632. LDK EIBP READ *EICB* POINTER
  633. CRD CN
  634. ADN INWL-EIBP CHECK *MCH* ERROR BIT
  635. CRD CM
  636. LDD CN+3 SAVE *EICB* ADDRESS
  637. RAM DSPA
  638. LDD CN+4
  639. RAM DSPA+1
  640. LDD CM+4
  641. SHN 21-5
  642. MJP MRER IF MCH ERROR IN PROGRESS
  643. LDC LINS DEFINE LONG INSTRUCTIONS
  644. RJM DLI
  645. AOM DPPB
  646. RJM SBA SET BUFFER ADDRESSES
  647. RJM CTP CHECK FOR TIME PROCESSING
  648. LDDL DC+3
  649. SHN 21-DCE7
  650. MJN MEP2 IF ERRORS LOGGED IN M/R BUFFER
  651. LJM LED LOAD AND EXECUTE *DFT*
  652.  
  653. MEP2 LCN 0 CLEAR C170 ERROR PRESENT FLAG
  654. STDL CN
  655. STDL CN+1
  656. STDL CN+2
  657. SCBN DCE7
  658. STDL CN+3
  659. RJM DOB
  660. ADK DFCW
  661. RDCL CN
  662. MEP3 LDN 1 SET INTERVAL BETWEEN CONTROL WORDS
  663. STD T2
  664. RJM SCA SET ADDRESS OF CONTROL WORDS
  665. LDD DC+2 SET NUMBER OF M/R BUFFER CONTROL WORDS
  666. LPC 377
  667. RJM FOM FIND OLDEST M/R BUFFER CONTROL WORD
  668. STM FSSB SAVE M/R CONTROL WORD OFFSET
  669. STM LMRD SET NON-REGISTER FLAG
  670. ZJN MEP4 IF NO ENTRIES PRESENT
  671. RJM FSS FIND SUPPORTIVE STATUS DATA
  672. UJN MEP5 DETERMINE OS ACTION
  673.  
  674. MEP4 RJM FNR FIND NON-REGISTER DATA
  675. NJN MEP5 IF DATA PRESENT
  676. LDC **
  677. MEPA EQU *-1 AUTORESTART PENDING FLAG
  678. ZJP DPP IF AUTORESTART NOT PENDING
  679. LDD IA LOAD *1DS* TO ISSUE *AUTO*
  680. CWM MEPD,ON
  681. LJM DPP1 CALL *1DS* AND ENABLE *1MB* CALL
  682.  
  683. MEP5 LDD CN+1 SET SYMPTOM CODE IN *BML*
  684. STM IBMF+1
  685. LDDL CN+2 SET SEQUENCE NUMBER IN *BML*
  686. SHN -10
  687. STM IBMG+4
  688. RJM DOA DETERMINE OS ACTION
  689.  
  690. * OS ACTION ROUTINES WILL RETURN HERE.
  691.  
  692. MEP6 RJM CTH CHECK THRESHOLD EXCEEDED
  693. RJM LMR LOG MAINTENANCE REGISTERS
  694.  
  695. * CLEAR C170 VALID DATA FLAG, LOGGING ACTION FLAG, INTERLOCK
  696. * FLAG AND THRESHOLD EXCEEDED FLAG IN M/R BUFFER CONTROL WORD.
  697.  
  698. LDD MB READ CONTROL WORD
  699. SHN 14
  700. LMD MB+1
  701. CRDL CN
  702. LDDL CN+2 CLEAR FLAGS
  703. MEPC SCBN (MRV7,MRIL,MRLG,MRTH)
  704. * SCBN (MRV7,MRIL) (180 LOGGING)
  705. STDL CN+2
  706. LDD MB REWRITE M/R BUFFER CONTROL WORD
  707. SHN 14
  708. LMD MB+1
  709. CWDL CN
  710. LJM MEP3 PROCESS NEXT M/R ENTRY
  711.  
  712. MEPD VFD 18/0L1DS,6/0,2/0,1/0,3/0,6//1DS/IASF,12/0,12/0
  713. TITLE OS ACTION CODE PROCESSING ROUTINES.
  714. SPACE 4,10
  715. *** OS ACTION CODE PROCESSING ROUTINES.
  716. *
  717. * ENTRY (MB - MB+1) = ADDRESS OF M/R CONTROL WORD.
  718. * (DC - DC+3) = *DFT* CONTROL WORD.
  719. * (CN - CN+3) = M/R BUFFER CONTROL WORD.
  720. *
  721. * EXIT TO *MEP6* TO LOG MAINTENANCE REGISTERS.
  722. * TO *CSH* TO CHECKPOINT AND HANG.
  723. ENW SPACE 4,10
  724. ** ENW - ENVIRONMENT WARNING.
  725. *
  726. * EXIT TO *WWC* TO WAIT FOR WARNING CLEAR.
  727. *
  728. * USES CM - CM+3.
  729. *
  730. * CALLS CCI, CCM, CKC, CKP, DOB, LMR, RSM.
  731.  
  732.  
  733. ENW BSS 0 ENTRY
  734. RJM CCM CREATE CONSOLE MESSAGE
  735. LDD SC+2
  736. NJN ENW1 IF *1CK* ALREADY CALLED
  737. RJM LMR LOG MAINTENANCE REGISTERS
  738. ENW1 LDN ZERL SET C170 ERROR FLAG
  739. CRDL CM
  740. AOD CM+3
  741. ERRNZ DCE7 CODE DEPENDS ON VALUE
  742. RJM DOB
  743. ADK DFCW
  744. RDSL CM
  745. RJM CCI CLEAR M/R CONTROL WORD INTERLOCK
  746. ENWC LDN 10 SET *1CK* TO RECALL *1MB*
  747. * LDN 13 (LONG POWER WARNING)
  748. STM CKPA+2
  749. LDN SPLG SET *1MB* FUNCTION CODE
  750. STM CKPA+3
  751. RJM CKP LOAD AND EXECUTE *1CK*
  752. RJM CKC WAIT FOR *1CK* TO COMPLETE
  753. RJM RSM REQUEST STEP MODE
  754. LDD CP DISPLAY OPERATOR MESSAGE
  755. ADN MS2W
  756. CWM MSFS,TR
  757. LJM WWC WAIT FOR WARNING CLEAR
  758. LPW SPACE 4,10
  759. ** LPW - LONG POWER WARNING.
  760.  
  761.  
  762. LPW BSS 0 ENTRY
  763. LDN 13-10 CHANGE *1CK* CALL TO LONG POWER WARNING
  764. RAM ENWC
  765. LJM ENW PROCESS AS ENVIRONMENT WARNING
  766. SPW SPACE 4,10
  767. ** SPW - SHORT POWER WARNING.
  768. *
  769. * EXIT TO *WWC* TO WAIT FOR WARNING CLEAR.
  770. *
  771. * CALLS CCM, LMR, RSM.
  772.  
  773.  
  774. SPW BSS 0 ENTRY
  775. RJM CCM CREATE CONSOLE MESSAGE
  776. RJM LMR LOG MAINTENANCE REGISTERS
  777. RJM RSM REQUEST STEP MODE
  778. LJM WWC WAIT FOR WARNING TO CLEAR
  779. WCL SPACE 4,10
  780. ** WCL - WARNING CLEAR.
  781. *
  782. * EXIT TO *MEP6* TO LOG MAINTENANCE REGISTERS.
  783. * (SCRL) UPDATED.
  784. *
  785. * USES CM - CM+4, SC - SC+4.
  786. *
  787. * MACROS DELAY, MONITOR.
  788.  
  789.  
  790. WCL LDD CP DISPLAY *POWER/ENVIRONMENT NORMAL*
  791. ADN MS2W
  792. CWM MSPN,TR
  793. LDN SSTL CHECK AUTORESTART
  794. CRD CM
  795. LDD CM
  796. SHN 21-13
  797. MJN WCL2 IF AUTORESTART DISABLED
  798. LDD SC
  799. SHN 21-11
  800. MJN WCL1 IF *1MB* REQUEST BIT SET
  801. LDD TH
  802. RAD SC
  803. LDC SCRL STORE *SCRL* WITH REQUESTED FLAG SET
  804. CWD SC
  805. WCL1 LDN ZERL
  806. CRD CM
  807. LDN 4 SET *DSRM* SUBFUNCTION TO CLEAR STEP
  808. STD CM+1
  809. STM MEPA SET AUTORESTART PENDING
  810. MONITOR DSRM
  811. WCL2 LDC SCRL ENABLE *UNSTEP* COMMAND
  812. CRD SC
  813. LDD SC
  814. LPC 6777
  815. STD SC
  816. LDC SCRL
  817. CWD SC
  818. WCL3 DELAY
  819. LDC SCRL CHECK STEP MODE
  820. CRD SC
  821. LDD SC
  822. SHN 21-10
  823. MJN WCL3 IF STEP STILL SET
  824. LJM MEP6 LOG MAINTENANCE REGISTERS
  825. FIE SPACE 4,10
  826. ** FIE - FATAL IOU ERROR.
  827. *
  828. * EXIT TO *CSH* TO CHECK POINT DEVICES AND THEN HANG.
  829. *
  830. * USES CM - CM+3.
  831. *
  832. * CALLS CCI, CCM, CSH, DOB.
  833.  
  834.  
  835. FIE BSS 0 ENTRY
  836. RJM CCM CREATE CONSOLE MESSAGE
  837. LDN 11 CHECK POINT DEVICES AND RECALL *1MB*
  838. STM CKPA+2
  839. LDN SPLG SET *1MB* FUNCTION CODE
  840. STM CKPA+3
  841. LDN ZERL SET C170 ERROR FLAG
  842. CRDL CM
  843. AOD CM+3
  844. ERRNZ DCE7 CODE DEPENDS ON VALUE
  845. RJM DOB
  846. ADK DFCW
  847. RDSL CM
  848. RJM CCI CLEAR M/R CONTROL WORD INTERLOCK
  849. RJM CSH CHECKPOINT AND HANG
  850. NIE SPACE 4,10
  851. ** NIE - NOS/VE IOU ERROR.
  852. *
  853. * EXIT TO *MEP6* TO LOG MAINTENANCE REGISTERS.
  854. *
  855. * CALLS CCM.
  856.  
  857.  
  858. NIE BSS 0 ENTRY
  859. RJM CCM CREATE CONSOLE MESSAGE
  860. LJM MEP6 LOG MAINTENANCE REGISTERS
  861. MOB SPACE 4,10
  862. ** MOB - MULTIPLE ODD BIT ERROR.
  863. *
  864. * CALLS CCI, CCM, RSM.
  865.  
  866. MOB RJM CCI CLEAR M/R INTERLOCK
  867. RJM CCM CREATE CONSOLE MESSAGE
  868. RJM RSM REQUEST STEP MODE
  869. UJN * HANG
  870. TITLE OS ACTION CODE SUBROUTINES.
  871. CCI SPACE 4,10
  872. ** CCI - CLEAR M/R CONTROL WORD INTERLOCK.
  873. *
  874. * ENTRY (MB - MB+1) = ADDRESS OF OLDEST M/R CONTROL WORD.
  875. *
  876. * USES CM - CM+3.
  877.  
  878.  
  879. CCI SUBR ENTRY/EXIT
  880. LCN 0 CLEAR M/R CONTROL WORD INTERLOCK
  881. STDL CM
  882. STDL CM+1
  883. STDL CM+3
  884. SCBN MRIL
  885. STDL CM+2
  886. LDD MB
  887. SHN 14
  888. LMD MB+1
  889. RDCL CM
  890. UJN CCIX RETURN
  891. CCM SPACE 4,15
  892. ** CCM - CREATE CONSOLE MESSAGE.
  893. *
  894. * ENTRY (SSCW - SSCW+1) = ADDRESS OF SUPPORTIVE STATUS DATA.
  895. * (DFTV) = *DFT* VERSION.
  896. * (CN - CN+3) = M/R BUFFER CONTROL WORD.
  897. *
  898. * EXIT TIME AND FAULT SYMPTOM CODE BUILT INTO MESSAGE.
  899. * MESSAGE ISSUED TO SYSTEM CONTROL POINT.
  900. *
  901. * CALLS ACS, CTC, CTD, RER, SCM.
  902. *
  903. * USES T1, T3, T5, CM - CM+3.
  904.  
  905.  
  906. CCM SUBR ENTRY/EXIT
  907. LDM DFTV
  908. ZJN CCM1 IF NOT *DFT* VERSION 4 OR ABOVE
  909. LDN 2
  910. STD T1
  911. LDM SSCW
  912. SHN 14
  913. LMM SSCW+1
  914. ADN 1
  915. CRDL CM READ DATE/TIME
  916. ADN 1
  917. CRML CCMB,T1 READ FAULT SYMPTOM CODE
  918. LDD CM
  919. SHN 21-10
  920. MJN CCM1 IF NO VALID DATA
  921. NJN CCM2 IF NOT MODEL 20 IOU
  922. CCM1 LDK TIML GET TIME
  923. CRM MSFS,ON
  924. LDC MSFS+5 SET ADDRESS FOR ASSEMBLY
  925. STD T1
  926. LDN 0 SET END OF ASSEMBLY FOR *ACS*
  927. STM MSFS+5
  928. UJN CCM3 CONVERT FAULT SYMPTOM CODE
  929.  
  930. * CONVERT TIME FROM SUPPORTIVE STATUS DATA.
  931.  
  932. CCM2 LDC 2L . SET END OF STRING FOR *ACS*
  933. STD T5
  934. LDC 2L SET END OF ASSEMBLY FOR *ACS*
  935. STM MSFS
  936. LDC MSFS SET ADDRESS FOR ASSEMBLY
  937. STD T1
  938. LDDL CM+2 CONVERT HOURS
  939. SHN -10
  940. RJM CTD
  941. RJM ACS
  942. LDD CM+2 CONVERT MINUTES
  943. LPC 377
  944. RJM CTD
  945. RJM ACS
  946. LDDL CM+3 CONVERT SECONDS
  947. SHN -10
  948. RJM CTD
  949. RJM ACS
  950. CCM3 LDC CCMA ADD *ERR=* TO MESSAGE
  951. RJM ACS
  952. LDM MSFS+4
  953. SCN 77
  954. ADN 1R
  955. STM MSFS+4
  956. LDD CN+1
  957. LPC 3777
  958. SBK 0#707
  959. PJN CCM4 IF NOT WARNING
  960. ADK 0#707-0#701
  961. PJN CCM5 IF WARNING
  962. CCM4 LDM DFTV
  963. NJN CCM6 IF *DFT* VERSION 4 OR ABOVE
  964.  
  965. * BUILD MESSAGE FOR ALL *DFT* VERSION 3 ERRORS, AND WARNING
  966. * ERRORS FOR *DFT* VERSION 4 AND ABOVE.
  967.  
  968. CCM5 RJM RER READ *EID* REGISTER
  969. RJM SCM SET ANALYSIS CODE IN MESSAGE
  970. LDN 0 ADD TERMINATOR
  971. STM MSFS+13
  972. UJN CCM8 DISPLAY OPERATOR MESSAGE
  973.  
  974. * CONVERT FAULT SYMPTOM CODE DATA FOR *DFT* VERSION 4 AND
  975. * ABOVE (EXCEPT FOR WARNING ERRORS).
  976.  
  977. CCM6 LDN 0 SET END OF STRING FOR *ACS*
  978. STD T5
  979. LDC CCMB+2 SET START OF FAULT SYMPTOM CODE
  980. STD T3
  981. CCM7 RJM CTC CONVERT TWO CHARACTERS
  982. RJM ACS
  983. AOD T3
  984. LMC CCMB+10
  985. NJN CCM7 IF MORE TO CONVERT
  986. CCM8 LDD CP DISPLAY OPERATOR MESSAGE
  987. ADN MS2W
  988. CWM MSFS,TR * HH.MM.SS ERR=XXXXXXXXXXXX*
  989. LJM CCMX RETURN
  990.  
  991.  
  992. CCMA DATA C*ERR=*
  993. CCMB BSS 2*4 FAULT SYMPTOM CODE
  994. CHC SPACE 4,10
  995. ** CHC - CONVERT HEXADECIMAL CHARACTER TO DISPLAY CODE.
  996. *
  997. * ENTRY (A) = VALUE TO CONVERT.
  998. *
  999. * EXIT (A) = DISPLAY CODE.
  1000.  
  1001.  
  1002. CHC1 ADN 10D+1R0 CONVERT TO DISPLAY CODE
  1003.  
  1004. CHC SUBR ENTRY/EXIT
  1005. LPN 17 MASK ONE CHARACTER
  1006. SBN 10D
  1007. MJN CHC1 IF DECIMAL CHARACTER
  1008. ADN 1RA SET HEX CHARACTER
  1009. UJN CHCX RETURN
  1010. CTC SPACE 4,10
  1011. ** CTC - CONVERT TWO CHARACTERS.
  1012. *
  1013. * ENTRY (T3) = ADDRESS OF TWO 8-BIT ASCII CHARACTERS.
  1014. *
  1015. * EXIT (A) = ADDRESS OF TWO DISPLAY CODE CHARACTERS.
  1016. * (T4 - T5) = TWO CHARACTERS PLUS ZERO TERMINATOR.
  1017. *
  1018. * USES T4, T6.
  1019.  
  1020.  
  1021. CTC SUBR ENTRY/EXIT
  1022. LDIL T3 CONVERT FIRST CHARACTER
  1023. SHN -10
  1024. SBN 40
  1025. STD T6
  1026. LDM T8AD,T6
  1027. SHN 6
  1028. STD T4
  1029. LDI T3 CONVERT SECOND CHARACTER
  1030. LPC 377
  1031. SBN 40
  1032. STD T6
  1033. LDM T8AD,T6
  1034. RAD T4
  1035. LDN T4 SET ADDRESS OF STRING
  1036. UJN CTCX RETURN
  1037. CTD SPACE 4,10
  1038. ** CTD - CONVERT TWO DIGITS.
  1039. *
  1040. * ENTRY (A) = TWO 4-BIT DIGITS.
  1041. *
  1042. * EXIT (A) = ADDRESS OF STRING TO ADD TO MESSAGE.
  1043. * (T4) = STRING TO ADD TO MESSAGE.
  1044. * (CALLER MUST SUPPLY TERMINATOR IF NECESSARY).
  1045. *
  1046. * USES T3, T4.
  1047.  
  1048.  
  1049. CTD SUBR ENTRY/EXIT
  1050. STD T3
  1051. SHN -4 CONVERT FIRST CHARACTER
  1052. ADN 1R0
  1053. SHN 6
  1054. STD T4
  1055. LDD T3 CONVERT SECOND CHARACTER
  1056. LPN 17
  1057. ADN 1R0
  1058. RAD T4
  1059. LDN T4 SET ADDRESS OF STRING
  1060. UJN CTDX RETURN
  1061. RER SPACE 4,15
  1062. ** RER - READ *EID* REGISTER.
  1063. *
  1064. * ENTRY (CN - CN+3) = M/R BUFFER CONTROL WORD.
  1065. * *DFT* INDICATES CPU 1 OR IOU 1 BY LOGGING ELEMENT CODE
  1066. * 10(16) OR 12(16) IN THE *EID* REGISTER (INSTEAD OF 0
  1067. * OR 2).
  1068. * (MB - MB+1) = THE ADDRESS OF THE CURRENT NON REGISTER
  1069. * STATUS BUFFER (*NRSB*) ENTRY.
  1070. *
  1071. * EXIT ELEMENT CODE AND MODEL NUMBER SET IN MESSAGE.
  1072. *
  1073. * USES T1, CM - CM+3.
  1074. *
  1075. * CALLS CTD, MRB.
  1076.  
  1077.  
  1078. RER SUBR ENTRY/EXIT
  1079. LDM IBMG CHECK FOR *DFT* VERSION 5 OR ABOVE
  1080. SBN 5
  1081. MJN RER0 IF LESS THAN VERSION 5
  1082.  
  1083. * FOR *DFT* VERSION 5 OR ABOVE, GET THE ELEMENT ID (*EID*)
  1084. * FROM THE *NRSB* ENTRY.
  1085.  
  1086. LDD MB GET ADDRESS OF *NRSB* ENTRY
  1087. SHN 14
  1088. ADD MB+1
  1089. ADN 5 OFFSET TO *EID* REGISTER ENTRY
  1090. CRDL CM READ IN *EID* REGISTER
  1091. UJN RER1.1 PROCESS THE *EID*
  1092.  
  1093. RER0 LDN 0 INITIALIZE OFFSET
  1094. STD T1
  1095. RER1 AOD T1
  1096. SBN 5
  1097. ZJN RER1 IF SECOND HEADER WORD
  1098. SBN 10-5
  1099. ZJN RER2 IF END OF BUFFER (USE ZERO DATA)
  1100. RJM MRB GET ADDRESS OF M/R BUFFERS
  1101. ADD CN+3 ADD OFFSET
  1102. ADD T1 SKIP TO NEXT WORD
  1103. CRDL CM READ *EID* REGISTER
  1104. LDDL CM
  1105. ADDL CM+1
  1106. ADDL CM+2
  1107. ADDL CM+3
  1108. ZJN RER1 IF *EID* NOT FOUND YET
  1109. RER1.1 LDDL CM+2 GET ELEMENT CODE
  1110. SHN -10
  1111. ADN 1
  1112. RER2 STD T1
  1113. SHN -2 INCLUDE CPU 1/IOU 1 FLAG
  1114. RAD T1
  1115. LDM RERA,T1 GET MESSAGE CHARACTERS
  1116. STM MSFS+7
  1117. LDD CM+2 GET MODEL NUMBER
  1118. LPC 377
  1119. RJM CTD CONVERT DIGITS
  1120. LDD T4 ADD MODEL NUMBER TO MESSAGE
  1121. STM MSFS+10
  1122. UJP RERX RETURN
  1123.  
  1124.  
  1125. ** RERA - TABLE OF MESSAGE CHARACTERS.
  1126. *
  1127. * INDEXED BY ELEMENT CODE.
  1128.  
  1129.  
  1130. RERA BSS 0
  1131. DATA 2R00 UNKNOWN ELEMENT
  1132. DATA 2RDC PROCESSOR 0
  1133. DATA 2RDM MEMORY
  1134. DATA 2RDI IOU 0
  1135. DATA 2R UNUSED
  1136. DATA 2RDD PROCESSOR 1
  1137. DATA 2R UNUSED
  1138. DATA 2RDJ IOU 1
  1139.  
  1140. SCM SPACE 4,15
  1141. ** SCM - SET ANALYSIS CODE IN MESSAGE.
  1142. *
  1143. * THE *DFT* ANALYSIS CODE FROM THE CONTROL WORD IS CONVERTED
  1144. * TO HEXADECIMAL DISPLAY CODE AND PLACED IN THE CONSOLE
  1145. * MESSAGE.
  1146. *
  1147. * ENTRY (CN - CN+3) = CONTROL WORD.
  1148.  
  1149.  
  1150. SCM SUBR ENTRY/EXIT
  1151. LDD CN+1 GET *DFT* ANALYSIS CODE
  1152. RJM CHC CONVERT THIRD CHARACTER
  1153. SHN 6
  1154. STM MSFS+12
  1155. LDD CN+1 CONVERT SECOND CHARACTER
  1156. SHN -4
  1157. RJM CHC
  1158. STM MSFS+11
  1159. LDD CN+1 CONVERT FIRST CHARACTER
  1160. SHN -10
  1161. RJM CHC
  1162. SHN 6
  1163. RAM MSFS+11
  1164. UJP SCMX RETURN
  1165. WWC SPACE 4,10
  1166. ** WWC - WAIT FOR WARNING CLEAR.
  1167. *
  1168. * EXIT TO *LED* TO LOAD *DFT* IF *DFT* NOT DEDICATED.
  1169. * TO *WCL* TO PROCESS WARNING CLEAR IF *DFT* DEDICATED.
  1170. *
  1171. * USES CN - CN+3.
  1172. *
  1173. * CALLS CCI.
  1174. *
  1175. * MACROS DELAY.
  1176.  
  1177.  
  1178. WWC RJM CCI CLEAR M/R CONTROL WORD INTERLOCK
  1179. LDDL DC+3 CHECK IF DEDICATED *DFT*
  1180. SHN 21-DCDM
  1181. PJN WWC1 IF *DFT* DEDICATED
  1182. LJM LED LOAD *DFT*
  1183.  
  1184. WWC1 DELAY
  1185. LDD MB READ M/R CONTROL WORD
  1186. SHN 14
  1187. LMD MB+1
  1188. CRDL CN
  1189. LDD CN CHECK FOR WARNING CLEAR
  1190. LPC 377
  1191. LMK WCAC
  1192. ZJN WWC2 IF WARNING CLEAR
  1193. LMK RSAC&WCAC
  1194. ZJN WWC2 IF SYSTEM RESUME
  1195. LMK USAC&RSAC
  1196. NJN WWC1 IF NOT SYSTEM UNSTEP
  1197. WWC2 LDD CN+1 PUT SYMPTOM CODE IN *BML*
  1198. STM IBMF+1
  1199. LJM WCL PROCESS WARNING CLEAR
  1200. TITLE MAINTENANCE REGISTER PROCESSING SUBROUTINES.
  1201. CBM SPACE 4,10
  1202. ** CBM - COMPLETE *BML* MESSAGES.
  1203. *
  1204. * ENTRY ALL DATA PRESENT IN *BML* BUFFER AND TRAILER WORD.
  1205. *
  1206. * EXIT *BML* BUFFER PADDED WITH SUFFICIENT ZERO WORDS.
  1207. * THE BUFFER IS FLUSHED IF NECESSARY.
  1208. * FINAL *BML* MESSAGE ISSUED.
  1209. *
  1210. * USES BP.
  1211. *
  1212. * CALLS PMB, WLB.
  1213.  
  1214.  
  1215. CBM SUBR ENTRY/EXIT
  1216. LDN ZERL
  1217. CRML BDMR,ON USE ZERO AS REGISTER NUMBERS
  1218. LDN ZERL
  1219. CRM BCMR,ON CLEAR M/R BUFFER
  1220. LDN ZERL
  1221. CRM BCMR+7-4,ON
  1222. CBM1 LDD T5
  1223. ZJN CBM2 IF WRITE COMPLETE
  1224. RJM PMB PACK AND WRITE FAKE M/R
  1225. UJN CBM1 CONTINUE PROCESSING
  1226.  
  1227. CBM2 LDN 5 UPDATE POINTER TO *BML* BUFFER
  1228. RAD BP
  1229. STM CBMA
  1230. ADC -IBMHL
  1231. PJN CBM3 IF READ COMPLETE
  1232. LDN ZERL CLEAR BUFFER
  1233. CRM **,ON
  1234. CBMA EQU *-1
  1235. UJN CBM2 CHECK AGAIN
  1236.  
  1237. CBM3 LDN 6 SET MESSAGE LENGTH
  1238. STD T4
  1239. RJM WLB WRITE LAST *BML* MESSAGE
  1240. UJP CBMX RETURN
  1241. CPM SPACE 4,10
  1242. ** CPM - CLEAR PP MEMORY.
  1243. *
  1244. * ENTRY (DC - DC+3) = *DFT* CONTROL WORD.
  1245. *
  1246. * USES T0.
  1247. *
  1248. * CLEARS ALL PP MEMORY FROM LWA OF *1MB* CODE TO THE END OF
  1249. * THE PP. THIS INSURES THAT ALL 16-BIT INSTRUCTIONS USED BY
  1250. * *DFT* ARE CLEARED BEFORE THE PP IS RETURNED TO NOS.
  1251.  
  1252.  
  1253. CPM SUBR ENTRY/EXIT
  1254. LDDL DC+3
  1255. SHN 21-DCDM
  1256. PJN CPMX IF DEDICATED *DFT*
  1257. LDC L1MB FIRST WORD TO CLEAR
  1258. STD T0
  1259. LDN 0
  1260. CPM1 STI T0
  1261. AOD T0
  1262. SHN -14
  1263. ZJN CPM1 IF MORE MEMORY TO CLEAR
  1264. UJN CPMX RETURN
  1265. CTH SPACE 4,10
  1266. ** CTH - CHECK THRESHOLD EXCEEDED.
  1267. *
  1268. * ENTRY (CN - CN+3) = M/R BUFFER CONTROL WORD.
  1269. *
  1270. * USES CM - CM+4, T1, T2.
  1271. *
  1272. * CALLS DFM.
  1273. *
  1274. * MACROS MONITOR.
  1275.  
  1276.  
  1277. CTH SUBR ENTRY/EXIT
  1278. LDDL CN+2
  1279. SHN 21-MRTH
  1280. PJN CTHX IF NOT THRESHOLD EXCEEDED
  1281. LDDL CN+1 GET *DFT* ANALYSIS CODE
  1282. SHN 0-14
  1283. LMN 3
  1284. STD T1 (1 = CORRECTED, 0 = UNCORRECTED)
  1285. LDD CN+1 GET TYPE OF ERROR
  1286. SHN 0-10
  1287. LPN 3
  1288. SHN 1
  1289. STD T2 (0 = IOU, 2 = CM, 4 = CPU)
  1290. LDM CTHA,T2 BUILD APPROPRIATE MESSAGE TEXT
  1291. STM CTHB,T1
  1292. LDM CTHA+1,T2
  1293. STM CTHB+1,T1
  1294. LDC CTHB+ERLN ISSUE ERROR LOG MESSAGE
  1295. ADD T1
  1296. RJM DFM
  1297. LDN ZERL ISSUE OPERATOR EVENT
  1298. CRD CM
  1299. LDK ELAE
  1300. STM CM+4
  1301. MONITOR EATM
  1302. UJP CTHX RETURN
  1303.  
  1304. CTHA DATA 4HIOU
  1305. DATA 4HCM
  1306. DATA 4HCPU
  1307. CTHB DATA 6H UN
  1308. DATA C*CORRECTED ERROR THRESHOLD EXCEEDED.*
  1309. CTP SPACE 4,10
  1310. ** CTP - CHECK FOR TIME AND CHECKPOINT PROCESSING.
  1311. *
  1312. * ENTRY (IR+2) = FUNCTION CALL.
  1313. *
  1314. * EXIT TO *CSH* IF CHECKPOINT REQUEST.
  1315. * TO *LED* IF TIME REQUEST AND *DFT* NOT DEDICATED.
  1316. * TO *DPP* IF TIME REQUEST AND *DFT* DEDICATED.
  1317. *
  1318. * USES CM - CM+3, DC - DC+3, IR+2.
  1319. *
  1320. * CALLS CCO, CRC, CSH, DOB, PES, UCC, *2TH*.
  1321. *
  1322. * MACROS EXECUTE.
  1323.  
  1324.  
  1325. CTP SUBR ENTRY/EXIT
  1326. LDD IR+2 CHECK FOR TIME PROCESSING
  1327. LPN SPCP
  1328. NJP CTP2 IF CHECKPOINT REQUEST
  1329. LMD IR+2
  1330. LPN SPTP
  1331. ZJN CTPX IF NOT TIME PROCESSING
  1332. RJM UCC UPDATE CTI CLOCK
  1333. EXECUTE 2TH LOAD TOP-OF-HOUR ROUTINES
  1334. RJM /IHD/CRC CLEAR RELOAD COUNT IN CONTROLWARE TABLE
  1335. RJM /IHD/CCO CLEAR COUNTS IN EST/MST ENTRIES
  1336. RJM /IHD/PES PROCESS ESM SECDED LOGGING
  1337. CTPA LDC ZERL SET LOG COUNTERS AND SECDED TABLE FLAG
  1338. * LJM CTPX (IF NOS/VE LOGGING)
  1339. CRDL CM
  1340. LDBC DCZC
  1341. STDL CM+3
  1342. RJM DOB
  1343. ADK DFCW
  1344. RDSL CM
  1345. CRDL DC
  1346. LDDL DC+3 CHECK DEDICATED FLAG
  1347. SHN 21-DCDM
  1348. PJP DPP IF DEDICATED *DFT*
  1349. CTP1 LDN SPLG SET LOGGING FUNCTION CODE
  1350. CTPB EQU *-1
  1351. * LDN SPTH (IF TOP OF HOUR PART TWO)
  1352. STD IR+2
  1353. LDD IA
  1354. CWD IR
  1355. LJM LED LOAD *DFT*
  1356.  
  1357. CTP2 LDN 10 SET *1CK* TO RECALL *1MB*
  1358. STM CKPA+2
  1359. LDN SPCP SET *1MB* FUNCTION CODE
  1360. STM CKPA+3
  1361. LDC MSCP *(204) FATAL CPU ERROR*
  1362. STM CSHA
  1363. STM CSHB
  1364. RJM CSH CHECKPOINT AND HANG
  1365. C9E SPACE 4,15
  1366. ** C9E - CHECK SPECIAL MODEL 990 ERRORS.
  1367. *
  1368. * ENTRY (IBMF+1) = *DFT* ANALYSIS CODE.
  1369. * (T4) = CURRENT OFFSET INTO M/R BUFFER.
  1370. *
  1371. * EXIT (A) = 0, IF SPECIAL 990 ERROR PRESENT.
  1372. * *BML* DATA PLACED IN BUFFER, IF (A) = 0.
  1373. *
  1374. * USES T4, T6.
  1375. *
  1376. * CALLS GPB, RMR.
  1377.  
  1378.  
  1379. C9E SUBR ENTRY/EXIT
  1380. LDM IBMF+1
  1381. LPC 3777 MASK MULTIPLE OCCURRANCE FLAG
  1382. LMC 0#206
  1383. ZJN C9E1 IF REPAIRED ERROR
  1384. LMK 0#207&0#206
  1385. ZJN C9E1 IF UNREPAIRED ERROR
  1386. LMK 0#205&0#207
  1387. ZJN C9E1 IF RETRY IN PROGRESS ERROR
  1388. LMK 0#21B&0#205
  1389. ZJN C9E1 IF RETRY CONVERTED TO UNCORRECTED ERROR
  1390. LMK 0#21C&0#21B
  1391. ZJN C9E1 IF RETRY EXHAUSTED ERROR
  1392. LMK 0#21D&0#21C
  1393. NJN C9EX IF NOT RETRY EXHAUSTED ERROR
  1394. C9E1 LDD T4
  1395. SBN 5
  1396. NJN C9EX IF NOT LAST M/R BUFFER
  1397. STD T4
  1398. STD T6 INITIALIZE SUMMARY STATUS FLAG
  1399.  
  1400. * PROCESS LAST BUFFER FOR SPECIAL 990 ERRORS.
  1401.  
  1402. RJM GPB READ DATA WORD INTO *BML* MESSAGE
  1403. LDD BP
  1404. STM C9EA
  1405. LDD MS
  1406. SHN 14
  1407. LMD MS+1
  1408. CRM **,ON
  1409. C9EA EQU *-1
  1410. LDC LDNI+0 SET *RMR* TO NOT USE *STATUS SUMMARY* FLAG
  1411. STM RMRA
  1412. LDN ZERL USE ZERO AS REGISTER NUMBERS
  1413. CRML BDMR,ON
  1414. RJM RMR LOG FAILING ADDRESS WORDS AS REGISTERS
  1415. LDC LDNI+1 RESTORE *RMR* USE OF *STATUS SUMMARY* FLAG
  1416. STM RMRA
  1417. LDN 0 SET EXIT FLAG
  1418. LJM C9EX RETURN
  1419. DOA SPACE 4,10
  1420. ** DOA - DETERMINE OS ACTION.
  1421. *
  1422. * ENTRY (CN - CN+3) = CONTROL WORD.
  1423. *
  1424. * EXIT TO OS ACTION ROUTINE.
  1425. * NORMAL RETURN, IF NO OS ACTION CODE OR VERSION 3
  1426. * AND NO VALID OS ACTION CODE.
  1427. *
  1428. * USES T1, T2.
  1429.  
  1430.  
  1431. DOA3 LDD T1
  1432. SBN MXAC
  1433. PJN DOAX IF NOT A VALID ACTION CODE
  1434. LDM TOSC,T1 SET OS ACTION ROUTINE ADDRESS
  1435. UJN DOA5 EXIT TO ROUTINE
  1436.  
  1437. DOA4 LDC MOB ROUTINE FOR NO MATCH FOUND
  1438. DOA5 STM DOAA
  1439. LJM ** PROCESS OS ACTION
  1440. DOAA EQU *-1
  1441.  
  1442. DOA SUBR ENTRY/EXIT
  1443. LDD CN
  1444. LPC 377
  1445. STD T1
  1446. ZJN DOAX IF NO OS ACTION CODE
  1447. LDD CN+2 CHECK VALID 170 DATA FLAG
  1448. LPBC MRV7
  1449. ZJN DOAX IF NO VALID 170 DATA FLAG
  1450. LDM DFTV
  1451. ZJN DOA3 IF *DFT* VERSION 3
  1452. LDN 0
  1453. STD T2
  1454. UJN DOA2 ENTER LOOP
  1455.  
  1456. DOA1 LDN 3 ADVANCE TO NEXT ENTRY
  1457. RAD T2
  1458. DOA2 LDD CN+1 GET *DFT* ANALYSIS CODE
  1459. LPC 3777
  1460. SBM TDFA,T2
  1461. MJN DOA4 IF ENTRY NOT IN TABLE
  1462. NJN DOA1 IF NO MATCH
  1463. LDD T1 GET OS ACTION CODE
  1464. LMM TDFA+1,T2
  1465. NJN DOA1 IF ACTION CODE DOES NOT MATCH
  1466. LDM TDFA+2,T2 SET OS ACTION CODE ADDRESS
  1467. UJP DOA5 EXIT TO ROUTINE
  1468. DOB SPACE 4,10
  1469. ** DOB - GET DFT/OS BUFFER ADDRESS.
  1470. *
  1471. * EXIT (A) = ADDRESS OF DFT/OS BUFFER.
  1472.  
  1473. DOB SUBR ENTRY/EXIT
  1474. DOBA LDC **
  1475. UJN DOBX RETURN
  1476. DPR SPACE 4,10
  1477. ** DPR - DUMP PP REGISTERS.
  1478. *
  1479. * EXIT A, P, Q AND K REGISTERS OF EACH PP
  1480. * DUMPED TO *PRGB*.
  1481. *
  1482. * USES EC, T2, T3, T4, CM - CM+4, CN - CN+4.
  1483. *
  1484. * MACROS EXITMR, LOCKMR, READMR, WRITMR.
  1485.  
  1486.  
  1487. DPR SUBR ENTRY/EXIT
  1488. EXITMR DPRX MODIFY ERROR EXIT ADDRESS
  1489. LDK PPUL GET NUMBER OF PP-S
  1490. CRD CN
  1491. ADK EABL+2-PPUL GET IOU CONNECT CODE
  1492. CRD CM
  1493. LDD CM+3
  1494. STD EC
  1495. READMR BCMR,,DEMR READ EC REGISTER
  1496. LDN 0 INITIALIZE BUFFER POINTER
  1497. STD T3
  1498. STD T4 INITIALIZE REGISTER NUMBER
  1499. STD T2 INITIALIZE PP NUMBER
  1500. DPR1 LDM BCMR+4 SET PP NUMBER
  1501. SCN 77
  1502. LMD T2
  1503. LMN 40 SET AUTO MODE BIT
  1504. STM BCMR+4
  1505. LDM BCMR+6 MERGE REGISTER NUMBER
  1506. SCN 3
  1507. LMD T4
  1508. STM BCMR+6
  1509. LOCKMR SET GET LONG TERM INTERLOCK
  1510. WRITMR BCMR,,DEMR WRITE EC REGISTER
  1511. READMR BDMR,,ISTR READ STATUS REGISTER
  1512. LOCKMR CLEAR CLEAR LONG TERM INTERLOCK
  1513. LDM BDMR+4 FETCH REGISTER
  1514. LPN 3
  1515. SHN 10
  1516. LMM BDMR+5
  1517. SHN 10
  1518. LMM BDMR+6
  1519. STM PRGB+1,T3 STORE IN BUFFER
  1520. SHN -14
  1521. STM PRGB,T3
  1522. LDN 2 INCREMENT BUFFER POINTER
  1523. RAD T3
  1524. AOD T4 INCREMENT REGISTER NUMBER
  1525. SBN 4
  1526. MJN DPR2 IF NOT END OF REGISTERS FOR THIS PP
  1527. LDN 0 RESET REGISTER NUMBER
  1528. STD T4
  1529. SOD CN+2 DECREMENT NUMBER OF PP-S
  1530. ZJN DPR3 IF END OF PP-S
  1531. AOD T2 INCREMENT PP NUMBER
  1532. SBN 12
  1533. NJN DPR2 IF NOT PP 20
  1534. ADN 12+6
  1535. STD T2
  1536. DPR2 LJM DPR1 READ NEXT REGISTER
  1537.  
  1538. DPR3 LDC PRGB SET BUFFER ADDRESS IN INPUT REGISTER
  1539. STD IR+4
  1540. LDD IA
  1541. CWD IR
  1542. LJM DPRX RETURN
  1543. DSP SPACE 4,10
  1544. ** DSP - GET *EICB* ADDRESS.
  1545. *
  1546. * ENTRY (DSPA) = ADDRESS OF *EICB*.
  1547. *
  1548. * EXIT (A) = ADDRESS OF *EICB*.
  1549.  
  1550.  
  1551. DSP SUBR ENTRY/EXIT
  1552. DSPA LDC **
  1553. UJN DSPX RETURN
  1554. FNR SPACE 4,15
  1555. ** FNR - FIND NON-REGISTER DATA.
  1556. *
  1557. * ENTRY (FNRA - FNRA+1) = FWA OF NON-REGISTER DATA.
  1558. *
  1559. * EXIT (A) = 0, IF NO ENTRY TO PROCESS.
  1560. * (MB - MB+1) = ADDRESS OF CONTROL WORD FOR ENTRY.
  1561. * (CN - CN+3) = CONTROL WORD TO PROCESS.
  1562. * (CN+3) = SIZE OF ENTRY TO LOG.
  1563. *
  1564. * USES T1, T2, CM - CM+3, MB - MB+1.
  1565. *
  1566. * CALLS FOM.
  1567.  
  1568.  
  1569. FNR SUBR ENTRY/EXIT
  1570. FNRA LDC ** (FWA OF NON-REGISTER DATA)
  1571. ZJN FNRX IF *DFT* VERSION 3
  1572. CRDL CM READ HEADER WORD
  1573. ADN 1
  1574. STD MB+1 SAVE ADDRESS OF START OF FIRST ENTRY
  1575. SHN -14
  1576. STD MB
  1577. LDD CM+3 SET INTERVAL BETWEEN CONTROL WORDS
  1578. STD T2
  1579. LDD CM+2 SET NUMBER OF CONTROL WORDS TO SEARCH
  1580. RJM FOM FIND OLDEST ENTRY
  1581. ZJN FNR1 IF NO ENTRY TO PROCESS
  1582. LDD MB READ SIZE OF DATA TO LOG
  1583. SHN 14
  1584. LMD MB+1
  1585. ADN 1
  1586. CRDL CM
  1587. LDD CM+3 SAVE SIZE OF DATA TO LOG
  1588. FNR1 STD CN+3
  1589. UJN FNRX RETURN
  1590. FOM SPACE 4,10
  1591. ** FOM - FIND OLDEST M/R BUFFER ENTRY.
  1592. *
  1593. * ENTRY (A) = NUMBER OF CONTROL WORDS TO SEARCH.
  1594. * (T2) = INTERVAL BETWEEN CONTROL WORDS.
  1595. * (MB - MB+1) = ADDRESS OF FIRST CONTROL WORD.
  1596. *
  1597. * EXIT (A) = (T7) = OFFSET OF OLDEST CONTROL WORD.
  1598. * = 0, IF NO ENTRY FOUND TO PROCESS.
  1599. * (CN - CN+3) = OLDEST M/R CONTROL WORD.
  1600. * (MB - MB+1) = ADDRESS OF OLDEST M/R CONTROL WORD.
  1601. *
  1602. * USES CN - CN+3, MB - MB+1, T1, T6, T7, T8.
  1603.  
  1604.  
  1605. * INTERLOCK SELECTED ENTRY. IF UNABLE TO DO SO, *DFT* IS IN
  1606. * THE PROCESS OF OVERWRITING IT AND A NEW ENTRY MUST BE
  1607. * SELECTED. IF THE INTERLOCK IS OBTAINED, BUT THE SEQUENCE
  1608. * NUMBER IS DIFFERENT, *DFT* HAS OVERWRITTEN IT. A NEW ENTRY
  1609. * MUST BE SELECTED.
  1610.  
  1611. FOM6 LDD T7
  1612. ZJN FOMX IF NO ENTRY SELECTED
  1613. LDN ZERL SET UP INTERLOCK WORD
  1614. CRDL CN
  1615. LDBC MRIL
  1616. STD CN+2
  1617. LDD MB
  1618. SHN 14
  1619. LMD MB+1
  1620. ADD T7
  1621. RDSL CN SET INTERLOCK ON OLDEST CONTROL WORD
  1622. LDDL CN+2
  1623. SHN 21-MRIL
  1624. MJN FOM1 IF INTERLOCKED BY *DFT*
  1625. LDDL CN+2
  1626. SHN -10 CHECK SEQUENCE NUMBER
  1627. SBD T8
  1628. ZJN FOM7 IF SAME SEQUENCE NUMBER
  1629. LDD MB CLEAR INTERLOCK
  1630. SHN 14
  1631. LMD MB+1
  1632. ADD T7
  1633. CWDL CN
  1634. UJN FOM1 RESTART SEARCH
  1635.  
  1636. FOM7 LDD T7 SET OLDEST BUFFER CONTROL WORD ADDRESS
  1637. RAD MB+1
  1638. SHN -14
  1639. RAD MB
  1640. LDD T7
  1641.  
  1642. FOM SUBR ENTRY/EXIT
  1643. STM FOMB SAVE NUMBER OF CONTROL WORDS
  1644. FOM1 LDN 0
  1645. STD T6 COUNTER FOR M/R BUFFER ENTRIES
  1646. STD T7 OFFSET OF OLDEST M/R BUFFER
  1647. STD T8 SEQUENCE NUMBER OF OLDEST M/R BUFFER
  1648. LDC **
  1649. FOMB EQU *-1 (NUMBER OF CONTROL WORDS TO SEARCH)
  1650. STD T1
  1651. UJN FOM3 ENTER LOOP
  1652.  
  1653. FOM2 LDD T2 ADVANCE TO NEXT CONTROL WORD
  1654. RAD T6
  1655. SOD T1
  1656. ZJP FOM6 IF SEARCH COMPLETE
  1657. FOM3 LDD MB READ NEXT M/R CONTROL WORD
  1658. SHN 14
  1659. LMD MB+1
  1660. ADD T6
  1661. CRDL CN
  1662. LDDL CN+2 CHECK VALID DATA FLAG AND INTERLOCK FLAG
  1663. FOMA LPBC (MRV7,MRIL,MRLG)
  1664. * LPBC (MRV7,MRIL) (IF 180 LOGGING)
  1665. SHN 21-MRIL
  1666. MJN FOM2 IF INTERLOCKED BY *DFT*
  1667. ZJN FOM2 IF NOT A POTENTIAL EARLIEST ENTRY
  1668. LDD T7
  1669. ZJN FOM5 IF NO ENTRY SELECTED YET
  1670. LDDL CN+2 GET SEQUENCE NUMBER
  1671. SHN -10
  1672. SBD T8 SUBTRACT OLDEST SEQUENCE NUMBER
  1673. MJN FOM4 IF LOWER THAN PREVIOUS
  1674. SBN 40
  1675. PJN FOM5 IF WRAP AROUND
  1676. FOM3.1 UJP FOM2 PROCESS NEXT ENTRY
  1677.  
  1678. FOM4 ADN 40
  1679. MJN FOM2 IF NOT AN EARLIER ENTRY
  1680. FOM5 LDDL CN+2 SET NEW OLDEST SEQUENCE NUMBER
  1681. SHN -10
  1682. STD T8
  1683. LDD T6 SET NEW OLDEST OFFSET
  1684. STD T7
  1685. UJN FOM3.1 PROCESS NEXT ENTRY
  1686. FSS SPACE 4,10
  1687. ** FSS - FIND SUPPORTIVE STATUS DATA.
  1688. *
  1689. * ENTRY (FSSA) = FWA OF SUPPORTIVE STATUS BUFFER.
  1690. * (FSSB) = OFFSET OF ENTRY IN M/R BUFFER CONTROL WORDS.
  1691. * (MUST BE NON-ZERO)
  1692. *
  1693. * EXIT (SSCW - SSCW+1) = ADDRESS OF CONTROL WORD FOR
  1694. * SUPPORTIVE STATUS DATA.
  1695. *
  1696. * USES T1, CM - CM+4, MS - MS+1.
  1697.  
  1698.  
  1699. FSS SUBR ENTRY/EXIT
  1700. FSSA LDC ** GET START OF SUPPORTIVE STATUS BUFFERS
  1701. ZJN FSSX IF *DFT* VERSION 3
  1702. CRDL CM
  1703. ADN 1 ADVANCE TO START OF FIRST ENTRY
  1704. STD MS+1
  1705. SHN -14
  1706. STD MS
  1707. LDC * SET OFFSET
  1708. FSSB EQU *-1
  1709. STD T1
  1710. FSS1 LDD CM+3 ADVANCE TO NEXT ENTRY
  1711. RAD MS+1
  1712. SHN -14
  1713. RAD MS
  1714. SOD T1
  1715. NJN FSS1 IF NOT YET AT CORRECT ENTRY
  1716. LDD MS SAVE ADDRESS OF CONTROL WORD FOR ENTRY
  1717. STM SSCW
  1718. LDD MS+1
  1719. STM SSCW+1
  1720. UJN FSSX RETURN
  1721. GPB SPACE 4,10
  1722. ** GPB - GET POINTER TO *BML* BUFFER.
  1723. *
  1724. * ENTRY (BP) = PREVIOUS POINTER INTO *BML* BUFFER.
  1725. *
  1726. * EXIT (BP) UPDATED.
  1727. * *BML* MESSAGE ISSUED.
  1728. *
  1729. * USES BP, CM - CM+4.
  1730. *
  1731. * CALLS DFM.
  1732.  
  1733.  
  1734. GPB SUBR ENTRY/EXIT
  1735. LDN 5
  1736. RAD BP UPDATE POINTER TO *BML* BUFFER
  1737. ADC -IBMHL
  1738. MJN GPBX IF STILL WITHIN BUFFER
  1739. LDN ZERL
  1740. CRD CM FORM *BML* PARAMETERS
  1741. LDN 6*5 SET BYTE COUNT
  1742. STD CM+1
  1743. LDM IBMG+1 UNCONDITIONALLY SET CONTINUATION BIT
  1744. SCN 4
  1745. LMN 4
  1746. STM IBMG+1
  1747. LDC IBMF+BMLN SEND *BML* MESSAGE
  1748. RJM DFM
  1749. LDC IBMH
  1750. STD BP
  1751. LDM IBMG+1 SET NOT FIRST BLOCK FLAG
  1752. SCN 10
  1753. LMN 10
  1754. STM IBMG+1
  1755. UJN GPBX RETURN
  1756. IMD SPACE 4,10
  1757. ** IMD - ISSUE MODEL DEPENDENT DATA *BML* MESSAGE.
  1758. *
  1759. * ENTRY MESSAGE BUILT AT *BHDR*.
  1760. * (A) = LENGTH OF MESSAGE TO ISSUE.
  1761. *
  1762. * CALLS IMB.
  1763.  
  1764.  
  1765. IMD SUBR ENTRY/EXIT
  1766. ADN 1
  1767. STM BHDR+3
  1768. LDC BHDR
  1769. RJM IMB ISSUE MESSAGE TO BUFFER
  1770. LDM MBUF+1*5+1 SET NOT FIRST BLOCK FLAG
  1771. SCN 10
  1772. LMN 10
  1773. STM MBUF+1*5+1
  1774. UJP IMDX RETURN
  1775. LDT SPACE 4,15
  1776. ** LDT - LOG DATA STRUCTURE.
  1777. *
  1778. * *LDT* LOGS THE SUPPORTIVE STATUS BUFFER AND NON-REGISTER
  1779. * DATA.
  1780. *
  1781. * ENTRY (T4) = NUMBER OF WORDS TO LOG.
  1782. * (MS - MS+1) = ADDRESS-1 OF FIRST WORD TO LOG.
  1783. *
  1784. * USES BP, T4, T5, CN - CN+3, MS - MS+1.
  1785. *
  1786. * CALLS CMB, PMB, PMR.
  1787.  
  1788.  
  1789. LDT SUBR ENTRY/EXIT
  1790. LDN 0 CLEAR CONTINUATION/NOT FIRST BLOCK FLAGS
  1791. STM IBMG+1
  1792. STD T5 SET UP FOR *PMB*
  1793. LDC IBMH-5
  1794. STD BP
  1795. LDN ZERL USE ZERO AS REGISTER NUMBERS
  1796. CRML BDMR,ON
  1797. LDT1 AOD MS+1 READ NEXT WORD OF DATA
  1798. SHN -14
  1799. RAD MS
  1800. SHN 14
  1801. LMD MS+1
  1802. CRDL CN
  1803. RJM PMR PACK DATA INTO *BCMR* BUFFER
  1804. RJM PMB PACK DATA INTO *BML* MESSAGE
  1805. NJN LDT2 IF NOT AT END OF BLOCK
  1806. LDM IBMG+1 SET NOT FIRST BLOCK FLAG
  1807. SCN 10
  1808. LMN 10
  1809. STM IBMG+1
  1810. LDT2 SOD T4
  1811. NJN LDT1 IF MORE WORDS TO LOG
  1812. RJM CBM COMPLETE *BML* MESSAGES
  1813. UJP LDTX RETURN
  1814. LED SPACE 4,10
  1815. ** LED - LOAD AND EXECUTE *DFT*.
  1816. *
  1817. * EXIT *DFT* IS LOADED INTO THIS PP.
  1818. *
  1819. * USES DC - DC+1, CM - CM+3, CN - CN+4, SC, T0, T7.
  1820. *
  1821. * CALLS DOB.
  1822.  
  1823.  
  1824. LED BSS 0 ENTRY
  1825. RJM DOB READ *DFT* CONTROL WORD
  1826. ADK DFCW
  1827. CRDL DC
  1828. LDDL DC+3 CHECK DEDICATED MODE
  1829. SHN 21-DCDM
  1830. PJP LED1 IF *DFT* IS IN DEDICATED MODE
  1831.  
  1832. * SAVE PP RESIDENT.
  1833.  
  1834. SETMS NODRIVER CLEAR DRIVER PRESENT FLAG
  1835. LDC DFPSL-1 SET WORD COUNT TO SAVE
  1836. STD T7
  1837. LDN DFTBL TRANSFER BOOTSTRAP TO *MSFW*
  1838. STD CM
  1839. LDD MA
  1840. CWM LEDD,CM
  1841. LDD MA
  1842. CRM MSFW,CM
  1843. LDC MSFW-1 SET EXECUTION ADDRESS ON RETURN FROM *DFT*
  1844. STD T0
  1845. RJM DOB GET *PPR* SAVE AREA BUFFER ADDRESS
  1846. ADK DFPS
  1847. CRDL CM
  1848. RPTR CM CONVERT ADDRESS
  1849. CWD T0 WRITE FIRST WORD OF *PPR*
  1850. ADN 1
  1851. CWM 5,T7 WRITE REMAINDER OF *PPR*
  1852. LDN DSAL RESERVE CIP CHANNEL
  1853. CRD CM
  1854. LDD CM+4
  1855. LPN 77
  1856. RCHAN
  1857.  
  1858. * CHECK NOS REQUEST STATUS.
  1859.  
  1860. RJM SDA READ NOS REQUEST HEADER
  1861. CRD CM
  1862. LDD CM+4 CHECK STATUS
  1863. LMN STRY
  1864. NJN LED3 IF NOT STATUS = *READY*
  1865. LDN STAC SET STATUS = *ACTIVE*
  1866. STD CM+4
  1867. RJM SDA REWRITE NOS REQUEST HEADER
  1868. CWD CM
  1869. UJN LED3 CONTINUE WITH LOADING *DFT*
  1870.  
  1871. LED1 SHN 21-DCVR-21+DCDM+22
  1872. PJN LED2 IF *DFT* NOT ALREADY ACTIVATED
  1873. RJM CNR CHECK FOR NOS REQUEST
  1874. LJM DPP DROP PP
  1875.  
  1876. LED2 LDD IA CHANGE *1MB* TO *DFT* IN INPUT REGISTER
  1877. CRD CM
  1878. LDC 2RDF
  1879. STD CM
  1880. LDD CM+1
  1881. LPN 77
  1882. LMC 1RT*100
  1883. STD CM+1
  1884. LDD IA
  1885. CWD CM
  1886. LED3 LDM IBMF+2 SET PP NUMBER IN *DFT* CONTROL WORD
  1887. SHN -6
  1888. LMDL DC+1
  1889. LPN 37
  1890. LMDL DC+1
  1891. STDL DC+1
  1892. RJM DOB
  1893. ADK DFCW
  1894. CWDL DC UPDATE *DFT* CONTROL WORD
  1895.  
  1896. * FIND *DFT* ENTRY IN *CTI* CM DIRECTORY.
  1897.  
  1898. LDN 0
  1899. STD T1
  1900. LDK EIBP
  1901. CRD CN
  1902. LDD CN+3
  1903. SHN 14
  1904. LMD CN+4
  1905. ADK DSCM+2 READ *CTI* CM DIRECTORY POINTER
  1906. CRDL CN
  1907. LRD CN+1 LOAD R-REGISTER
  1908. LDDL CN SAVE REMAINDER
  1909. STD T2
  1910. LED4 ADC 400000 SET BIT TO USE R-REGISTER
  1911. CRDL CN READ *CTI* DIRECTORY ENTRY
  1912. LDDL CN
  1913. LMC 2RDF
  1914. NJN LED5 IF NOT *DFT* ENTRY
  1915. LDDL CN+1
  1916. SHN -6
  1917. LMN 1RT
  1918. ZJN LED6 IF *DFT* ENTRY
  1919. LED5 LDDL CN+3 FIND NEXT DIRECTORY ENTRY
  1920. RAD T2
  1921. SHN -14
  1922. RAD T1
  1923. SHN 14
  1924. LMD T2
  1925. UJN LED4 CHECK NEXT DIRECTORY ENTRY
  1926.  
  1927. * MOVE CODE TO SAVE AREA SO *DFT* DOES NOT OVERWRITE IT.
  1928.  
  1929. LED6 LDN .LED2 SIZE OF CODE TO MOVE
  1930. STD T3
  1931. LDD MA MOVE CODE THROUGH MESSSAGE BUFFER
  1932. CWML LEDA,T3
  1933. SBD T3
  1934. CRML CN,T3
  1935. LJM CN JUMP TO LOADER
  1936.  
  1937. * LOAD AND EXECUTE *DFT*.
  1938.  
  1939. LEDA BSS 0 START OF CODE TO MOVE
  1940. LDD T1
  1941. SHN 14
  1942. LMD T2
  1943. ADC 400001
  1944. CRDL CN READ *DFT* LOAD PARAMETERS
  1945. ADN 1
  1946. STD T2
  1947. SHN -14
  1948. STD T1
  1949. LDD CN SET *DFT* LOAD ADDRESS
  1950. STD LEDC
  1951. LDD T1 LOAD *DFT*
  1952. SHN 14
  1953. LMD T2
  1954. CRML **,CN+1
  1955. LEDB EQU *-1 (*DFT* LOAD ADDRESS)
  1956. LJM 100 EXECUTE *DFT*
  1957.  
  1958.  
  1959. .LED1 EQU *-LEDA-1
  1960. .LED2 EQU .LED1/4+1
  1961. ERRPL .LED2-7 CODE LONGER THAN MESSAGE BUFFER
  1962. LEDC EQU LEDB-LEDA+CN LOCATION TO PLUG *DFT* LOAD ADDRESS
  1963.  
  1964. * BOOTSTRAP USED TO DROP CIP CHANNEL ON RETURN FROM *DFT*.
  1965.  
  1966. LEDD BSS 0
  1967. LOC MSFW
  1968. LDN DSAL LOCATE CIP CHANNEL
  1969. CRD CM
  1970. LDD CM+4 RELEASE CIP CHANNEL
  1971. LPN 77
  1972. DCHAN
  1973. LJM PPR RELOAD *1MB*
  1974. LOC *O
  1975. .LEDDL SET *-LEDD+4
  1976. ERRNG DFTBL-.LEDDL/5 *DFT* BOOTSTRAP TOO LONG
  1977. LMD SPACE 4,15
  1978. ** LMD - LOG MODEL DEPENDENT BUFFER.
  1979. *
  1980. * ENTRY (T4) = LENGTH OF DATA TO LOG.
  1981. * (MS - MS+1) = FWA - 1 OF DATA TO LOG.
  1982. *
  1983. * EXIT MODEL DEPENDENT DATA ISSUED TO *BML*.
  1984. *
  1985. * USES T1 - T5, BP, MS, CN - CN+3.
  1986. *
  1987. * CALLS IMD, PMR, PWB.
  1988.  
  1989.  
  1990. LMD7 LDM MBUF+1*5+1 CLEAR CONTINUATION BIT
  1991. SCN 4
  1992. STM MBUF+1*5+1
  1993. LMD8 LDC 18D
  1994. LMDA EQU *-1 (NUMBER OF WORDS TO LOG)
  1995. RJM IMD ISSUE *BML* MESSAGE
  1996. LDN 18D RESET WORD COUNT
  1997. STM LMDA
  1998. LDD T4
  1999. NJN LMD1 IF MORE DATA TO LOG
  2000.  
  2001. LMD SUBR ENTRY/EXIT
  2002. LMD1 LDC MBUF+2*5 SET BUFFER POINTER
  2003. STD T1
  2004. STD BP
  2005. ADK 15D*5 SET POINTER TO ASSEMBLY FOR LAST 4 BITS
  2006. STD EC
  2007. LMD2 LDN 0 CLEAR BUFFER
  2008. STI T1
  2009. AOD T1
  2010. LMC MBUF+50D*5
  2011. NJN LMD2 IF MORE TO CLEAR
  2012. STD T5 INITIALIZE COUNTER
  2013. LDN 15D NUMBER OF WORDS PER BLOCK
  2014. STD T1
  2015. LMD3 AOD MS+1 READ NEXT WORD
  2016. SHN -14
  2017. RAD MS
  2018. SHN 14
  2019. LMD MS+1
  2020. CRDL CN
  2021. RJM PMR PACK WORD INTO *BCMR*
  2022. RJM PWB PACK WORD INTO BUFFER
  2023. LJM LMD4,T5 POSITION LAST 4 BITS
  2024. * LJM LMD4 (LEFTMOST BITS)
  2025. * LJM LMD4+1 (MIDDLE BITS)
  2026. * LJM LMD4+2 (RIGHTMOST BITS)
  2027.  
  2028. LMD4 SHN 4
  2029. SHN 4
  2030. RAI EC ADD TO ASSEMBLY
  2031. SOD T4
  2032. ZJP LMD7 IF NO MORE DATA TO LOG
  2033. AOD T5
  2034. SBN 3
  2035. MJN LMD5 IF NOT END OF BYTE
  2036. LDN 0 RESET COUNTER
  2037. STD T5
  2038. AOD EC ADVANCE TO NEXT BYTE
  2039. LMD5 LDN 5 ADVANCE BUFFER POINTER
  2040. RAD BP
  2041. SOD T1
  2042. LMD6 NJP LMD3 IF NOT END OF GROUP
  2043. LDN 15D RESET GROUP COUNTER
  2044. STD T1
  2045. LDC 15D*5 ADVANCE ASSEMBLY BUFFER
  2046. RAD EC
  2047. LDN 5 SKIP OVER ASSEMBLY BUFFER
  2048. RAD BP
  2049. LMC MBUF+50D*5
  2050. ZJP LMD8 IF END OF *BML* MESSAGE
  2051. LDN 16D INCREMENT WORD COUNT TO LOG
  2052. RAM LMDA
  2053. UJN LMD6 READ NEXT WORD
  2054. LMR SPACE 4,10
  2055. ** LMR - LOG MAINTENANCE REGISTERS.
  2056. *
  2057. * ENTRY (CN - CN+3) = M/R CONTROL WORD.
  2058. * (MB - MB+1) = ADDRESS OF CONTROL WORD.
  2059. * (LMRA) = SIZE OF ELEMENT COUNTER BUFFER.
  2060. * (LMRB) = SIZE OF M/R BUFFER.
  2061. * (LMRD) = NON-REGISTER DATA FLAG.
  2062. *
  2063. * EXIT MAINTENANCE REGISTERS LOGGED TO *BML*.
  2064. * (MB - MB+1) UNCHANGED.
  2065. *
  2066. * USES BP, T4, T5, T6, CM - CM+4, MS - MS+1.
  2067. *
  2068. * CALLS CBM, C9E, DOB, LNR, LSS, LTE, MDB, MRB, RMR, SID, WLB.
  2069. *
  2070. * MACROS RPTR.
  2071.  
  2072.  
  2073. LMR10 RJM LNR LOG NON-REGISTER DATA
  2074.  
  2075. LMR SUBR ENTRY/EXIT
  2076. LMRC LDD CN+2
  2077. * UJN LMRX (NOS/VE LOGGING)
  2078. SHN 21-MRLG
  2079. PJN LMRX IF NO LOGGING ACTION
  2080. LDC **
  2081. LMRD EQU *-1 (NON-REGISTER DATA FLAG)
  2082. ZJN LMR10 IF PROCESSING NON-REGISTER DATA
  2083. LDM IBMG+1 CLEAR NOT FIRST BLOCK FLAG
  2084. SCN 10
  2085. STM IBMG+1
  2086.  
  2087. * LOCATE MAINTENANCE REGISTER BUFFER.
  2088.  
  2089. LDC **
  2090. LMRB EQU *-1 (LENGTH OF M/R BUFFER)
  2091. STD T4
  2092. RJM MRB GET ADDRESS OF M/R BUFFERS
  2093. ADD CN+3 ADD OFFSET
  2094. STD MS+1
  2095. SHN -14
  2096. STD MS
  2097.  
  2098. * DETERMINE ANALYSIS CODE.
  2099.  
  2100. LDD CN+1 GET ANALYSIS CODE
  2101. LMC 0#707
  2102. ZJN LMR1 IF TO LOG ELEMENT COUNTER TABLE
  2103. LMK 0#708&0#707
  2104. ZJN LMR4 IF TO LOG SECDED ID TABLE
  2105. SHN -10
  2106. NJN LMR5 IF NOT WARNING ANALYSIS CODE
  2107.  
  2108. * PROCESS WARNING ANALYSIS CODE.
  2109.  
  2110. LDN 10D SET SIZE TO LOG
  2111. UJN LMR2 LOG EID REGISTERS
  2112.  
  2113. * PROCESS ELEMENT COUNTER TABLE.
  2114.  
  2115. LMR1 LDC MECB
  2116. LMRA EQU *-1 (SIZE OF ELEMENT COUNTER BUFFER)
  2117. LMR2 STD T4
  2118. LMR3 RJM LTE LOG TABLE ENTRIES
  2119. RJM WLB WRITE LAST *BML* MESSAGE
  2120. LJM LMR8 LOG SUPPORTIVE STATUS DATA
  2121.  
  2122. * PROCESS SECDED ID TABLE.
  2123.  
  2124. LMR4 RJM SID SET SECDED INFORMATION
  2125. NJN LMR3 IF SECDED ID TABLE NOT EMPTY
  2126. UJN LMR9 RETURN
  2127.  
  2128. * PROCESS MAINTENANCE REGISTERS.
  2129.  
  2130. LMR5 LDN 0 PRESET *RMR*
  2131. STD T5
  2132. STD T6
  2133. LDC IBMH-5 PRESET *GPB*
  2134. STD BP
  2135. LMR6 LCN 5
  2136. RAD T4
  2137. MJN LMR7 IF ALL BUFFERS PROCESSED
  2138. LDD MS READ M/R BUFFER HEADER WORD
  2139. SHN 14
  2140. LMD MS+1
  2141. CRML BDMR,ON
  2142. RJM RMR READ MAINTENANCE REGISTER BUFFER
  2143. NJN LMR7 IF LOGGING COMPLETE
  2144. AOD MS+1 ADVANCE TO NEXT BUFFER
  2145. SHN -14
  2146. RAD MS
  2147. RJM C9E CHECK SPECIAL 990 ERROR
  2148. NJN LMR6 IF NOT SPECIAL 990 ERROR
  2149. LMR7 RJM CBM COMPLETE *BML* MESSAGES
  2150. LMR8 RJM LSS LOG SUPPORTIVE STATUS DATA
  2151. RJM MDB LOG MODEL DEPENDENT BUFFER
  2152. LMR9 LDM IBMG CLEAR SPECIAL FLAGS FROM *BML*
  2153. LPN 77
  2154. STM IBMG
  2155. LJM LMRX RETURN
  2156. LNR SPACE 4,10
  2157. ** LNR - LOG NON-REGISTER DATA.
  2158. *
  2159. * ENTRY (MB - MB+1) = ADDRESS OF CONTROL WORD FOR ENTRY.
  2160. * (CN - CN+3) = CONTROL WORD FOR ENTRY TO LOG.
  2161. *
  2162. * EXIT NON-REGISTER DATA LOGGED TO BML.
  2163. *
  2164. * USES T4, MS - MS+1.
  2165. *
  2166. * CALLS LDT.
  2167.  
  2168.  
  2169. LNR SUBR ENTRY/EXIT
  2170. LDM IBMG SET NON-REGISTER DATA FLAG
  2171. LPN 77
  2172. ADC 400
  2173. STM IBMG
  2174. LDD MB INITIALIZE ADDRESS OF DATA TO LOG
  2175. STD MS
  2176. SHN 14
  2177. LMD MB+1
  2178. STD MS+1
  2179. ADN 1 LENGTH TO LOG WORD
  2180. CRD CM READ LENGTH WORD
  2181. LDD CM+4 SET LENGTH OF DATA TO INCLUDE LENGTH WORD
  2182. STD T4
  2183. RJM LDT LOG DATA STRUCTURE
  2184. LDM IBMG CLEAR NON-REGISTER DATA FLAG
  2185. LPN 77
  2186. STM IBMG
  2187. UJN LNRX RETURN
  2188. LSS SPACE 4,15
  2189. ** LSS - LOG SUPPORTIVE STATUS DATA.
  2190. *
  2191. * ENTRY (SSCW - SSCW+1) = ADDRESS OF CONTROL WORD FOR ENTRY
  2192. * TO LOG.
  2193. *
  2194. * EXIT SUPPORTIVE STATUS BUFFER DATA LOGGED.
  2195. * (MDBB) = MODEL DEPENDENT BUFFER ORDINAL.
  2196. * (MDBC) = MDB DATA UNLOGGED STATUS.
  2197. *
  2198. * USES T4, CM - CM+3, MS - MS+1.
  2199. *
  2200. * CALLS LDT.
  2201.  
  2202.  
  2203. LSS SUBR ENTRY/EXIT
  2204. LDM DFTV
  2205. ZJN LSSX IF *DFT* VERSION 3
  2206. LDM SSCW SET ADDRESS OF CONTROL WORD
  2207. STD MS
  2208. SHN 14
  2209. LMM SSCW+1
  2210. STD MS+1
  2211. CRDL CM READ CONTROL WORD
  2212. LDD CM+1 SET LENGTH OF DATA TO LOG
  2213. STD T4
  2214. ZJN LSSX IF NO DATA TO LOG
  2215. LDD CM+2 SAVE MODEL DEPENDENT BUFFER ORDINAL
  2216. LPC 377
  2217. STM MDBB
  2218. LDDL CM+2 SAVE UNLOGGED DATA STATUS
  2219. SHN -10
  2220. STM MDBC
  2221. LDD HN SET SUPPORTIVE STATUS BUFFER FLAG
  2222. RAM IBMG
  2223. RJM LDT LOG DATA STRUCTURE
  2224. UJP LSSX RETURN
  2225. LTE SPACE 4,15
  2226. ** LTE - LOG TABLE ENTRIES.
  2227. *
  2228. * ENTRY MESSAGE ID AND SYMPTOM CODE IN *BML* HEADER.
  2229. * (T4) = WORD SIZE OF *BML* MESSAGE.
  2230. * (MS - MS+1) = ADDRESS OF FIRST ENTRY TO LOG.
  2231. *
  2232. * EXIT ENTRIES LOGGED TO *BML*.
  2233. * (T4) = CM WORDS TO WRITE IN LAST *BML* MESSAGE.
  2234. *
  2235. * USES MS - MS+1, T1, T4.
  2236. *
  2237. * CALLS DFM, LMB.
  2238.  
  2239.  
  2240. LTE2 LDD MS READ LAST *BML* MESSAGE DATA
  2241. SHN 14
  2242. LMD MS+1
  2243. CRM IBMH,T4
  2244. AOD T4 ADD HEADER WORDS TO COUNT
  2245. AOD T4
  2246.  
  2247. LTE SUBR ENTRY/EXIT
  2248. LTE1 LDN 4
  2249. STD T1
  2250. LDM IBMG+1 SET CONTINUATION BIT
  2251. SCN 4
  2252. LMN 4
  2253. STM IBMG+1
  2254. LDD T4
  2255. SBN 5
  2256. MJN LTE2 IF LAST *BML* MESSAGE TO ISSUE
  2257. ADN 1
  2258. STD T4
  2259. LDD MS
  2260. SHN 14
  2261. LMD MS+1
  2262. CRM IBMH,T1 READ BUFFER INTO *BML*
  2263. STD MS+1
  2264. SHN -14
  2265. STD MS
  2266. LDN 6*5 PP WORDS IN *BML* MESSAGE
  2267. STD CM+1
  2268. LDC IBMF+BMLN ISSUE *BML* MESSAGE
  2269. RJM DFM
  2270. LDM IBMG+1 SET NOT FIRST BLOCK FLAG
  2271. SCN 10
  2272. LMN 10
  2273. STM IBMG+1
  2274. LJM LTE1 PROCESS NEXT *BML* MESSAGE
  2275. MDB SPACE 4,15
  2276. ** MDB - LOG MODEL DEPENDENT BUFFER DATA.
  2277. *
  2278. * ENTRY (MB - MB+1) = ADDRESS OF M/R BUFFER CONTROL WORD.
  2279. * (MDBA) = ADDRESS OF MODEL DEPENDENT BUFFER.
  2280. * (MDBB) = MODEL DEPENDENT BUFFER ORDINAL.
  2281. * (MDBC) = MODEL DEPENDENT DATA UNLOGGED STATUS.
  2282. *
  2283. * EXIT MODEL DEPENDENT BUFFER DATA LOGGED.
  2284. *
  2285. * USES T1, T4, CM - CM+3, MS - MS+1, T8 - T9.
  2286. *
  2287. * CALLS LMD.
  2288. *
  2289. * MACROS RPTR.
  2290.  
  2291.  
  2292. MDB SUBR ENTRY/EXIT
  2293. LDD MB READ M/R BUFFER CONTROL WORD
  2294. SHN 14
  2295. LMD MB+1
  2296. CRDL CM
  2297. LDDL CM+2
  2298. SHN 21-MRMD
  2299. PJN MDBX IF NO MODEL DEPENDENT DATA
  2300. MDBA LDC ** (MODEL DEPENDENT BUFFER ADDRESS)
  2301. ADC **
  2302. MDBB EQU *-1 (MODEL DEPENDENT BUFFER ORDINAL)
  2303. CRDL CM READ MODEL DEPENDENT BUFFER POINTER
  2304. LDC *
  2305. MDBC EQU *-1 (DATA UNLOGGED STATUS)
  2306. NJN MDBX IF DATA UNLOGGED OR OVERWRITTEN
  2307. RPTR CM CONVERT ADDRESS
  2308. CRDL CM READ HEADER
  2309. STD MS+1 SAVE ADDRESS OF HEADER
  2310. STD T9
  2311. SHN -14
  2312. STD MS
  2313. STD T8
  2314. LDD CM+3 SET LENGTH TO LOG
  2315. ZJN MDBX IF NO DATA TO LOG
  2316. SBN 1
  2317. STD T4
  2318. LDM IBMG SET MODEL DEPENDENT DATA FLAG
  2319. LPN 77
  2320. ADC 200
  2321. STM IBMG
  2322. LDM IBMG+1
  2323. SCN 14 CLEAR NOT FIRST BLOCK FLAG
  2324. LMN 4 SET CONTINUATION BIT
  2325. STM IBMG+1
  2326. LDN 2 MOVE MESSAGE HEADER TO PP BUFFER
  2327. STD T1
  2328. LDD MA
  2329. CWM IBMF,T1
  2330. SBD T1
  2331. CRM MBUF,T1
  2332. LDN ZERL CLEAR *EMB* HEADER WORD
  2333. CRM BHDR,ON
  2334. LDK MLDY SET MESSAGE TYPE
  2335. STM BHDR+4
  2336. RJM LMD LOG MODEL DEPENDENT DATA
  2337. LDD T8 READ MODEL DEPENDENT HEADER
  2338. SHN 14
  2339. LMD T9
  2340. CRDL CM
  2341. LDDL CM CLEAR CONTROL WORD OFFSET
  2342. LPC 0#FF00
  2343. STDL CM
  2344. LDD T8
  2345. SHN 14
  2346. LMD T9
  2347. CWDL CM
  2348. MDB1 DELAY
  2349. LDK EMBP CHECK FOR *1MD* STILL ACTIVE
  2350. CRD CM
  2351. LDD CM+1
  2352. SHN 14
  2353. LMD CM+2
  2354. CRD CM
  2355. LDD CM+4
  2356. LPN 2
  2357. NJN MDB1 IF *1MD* ACTIVE
  2358. UJP MDBX RETURN
  2359. MRB SPACE 4,10
  2360. ** MRB - GET M/R BUFFERS ADDRESS.
  2361. *
  2362. * (A) = ADDRESS OF M/R BUFFERS.
  2363.  
  2364.  
  2365. MRB SUBR ENTRY/EXIT
  2366. MRBA LDC ** (ADDRESS OF M/R BUFFERS)
  2367. UJN MRBX RETURN
  2368. MRER SPACE 4,10
  2369. ** MRER - MAINTENANCE REGISTER ERROR HANDLER.
  2370. *
  2371. * ENTRY FATAL MAINTENANCE REGISTER ERROR.
  2372. *
  2373. * EXIT TO *CSH*.
  2374. *
  2375. * USES CM - CM+4.
  2376. *
  2377. * CALLS CSH.
  2378. *
  2379. * MACROS MONITOR.
  2380.  
  2381.  
  2382. MRER LDC MSME SET MESSAGE ADDRESS
  2383. STM CSHA
  2384. STM CSHB
  2385. STM CKPA+2
  2386. LDN SPLG SET *1MB* FUNCTION CODE
  2387. STM CKPA+3
  2388. LDN ZERL
  2389. CRD CM
  2390. LDN 1 SET *MCH* ERROR IN PROGRESS
  2391. STD CM+1
  2392. STD CM+2
  2393. LDD MA
  2394. CWM MRERA,ON
  2395. MONITOR UADM
  2396. RJM CSH CHECKPOINT AND HANG THE SYSTEM
  2397.  
  2398.  
  2399. MRERA CON LIOS INCREMENT LOW CORE FIELD BY ONE
  2400. CON INWL WORD ADDRESS
  2401. CON 5*100+1 BIT ADDRESS/FIELD WIDTH
  2402. CON 0
  2403. CON 0
  2404. PMB SPACE 4,15
  2405. ** PMB - PACK MAINTENANCE REGISTER TO *BML*.
  2406. *
  2407. * ENTRY (T5) = BYTE IN M/R HEADER WORD WITH REGISTER NUMBER.
  2408. * (BCMR - BCMR+7) = CONTENTS OF REGISTER.
  2409. *
  2410. * EXIT REGISTER WRITTEN TO *BML*.
  2411. * (A)= (T5) = 0, IF ALL REGISTERS IN THIS BLOCK
  2412. * WRITTEN.
  2413. * (T5) = BYTE WITH NEXT REGISTER NUMBER, OTHERWISE.
  2414. *
  2415. * USES T5.
  2416. *
  2417. * CALLS GPB, PWB.
  2418.  
  2419.  
  2420. PMB SUBR ENTRY/EXIT
  2421. RJM GPB GET POINTER INTO *BML* BUFFER
  2422. RJM PWB PACK REGISTER INTO BUFFER
  2423. SHN 10
  2424. LMML BDMR,T5 INCLUDE REGISTER NUMBER
  2425. STM PMBB,T5
  2426. AOD T5
  2427. SBN 4
  2428. MJN PMB1 IF TRAILER WORD NOT FULL
  2429. RJM GPB GET POINTER TO *BML* BUFFER
  2430. LDD BP
  2431. STM PMBA
  2432. LDD MA
  2433. CWM PMBB,ON COPY TRAILER WORD TO *BML* BUFFER
  2434. LDD MA
  2435. CRM **,ON
  2436. PMBA EQU *-1
  2437. LDN 0
  2438. STD T5
  2439. PMB1 UJP PMBX RETURN
  2440.  
  2441. PMBB VFD 4/0,8/0,4/0,8/0,4/0,8/0,4/0,8/0,12/0
  2442. PMR SPACE 4,10
  2443. ** PMR - UNPACK M/R INTO *BCMR*.
  2444. *
  2445. * ENTRY (CN - CN+3) = REGISTER.
  2446. *
  2447. * EXIT MAINTENANCE REGISTER WRITTEN TO *BML* BUFFER.
  2448. *
  2449. * USES T3, T7.
  2450.  
  2451.  
  2452. PMR SUBR ENTRY/EXIT
  2453. LDN 0
  2454. STD T3
  2455. LDN CN
  2456. STD T7
  2457. PMR1 LDIL T7
  2458. SHN -10
  2459. STM BCMR,T3
  2460. AOD T3
  2461. LDIL T7
  2462. LPC 377
  2463. STM BCMR,T3
  2464. AOD T3
  2465. AOD T7
  2466. SBN CN+4
  2467. ZJN PMRX IF PACKING COMPLETE
  2468. UJN PMR1 CONTINUE PACKING
  2469. PWB SPACE 4,10
  2470. ** PWB - PACK WORD TO BUFFER.
  2471. *
  2472. * ENTRY (BCMR - BCMR+7) = DATA WORD.
  2473. * (BP) = OFFSET INTO *BML* BUFFER.
  2474. *
  2475. * EXIT (A) = BITS 60 - 63 OF DATA WORD RIGHT JUSTIFIED.
  2476. * BITS 0 - 59 OF DATA WORD MOVED TO *BML* WORD.
  2477.  
  2478.  
  2479. PWB SUBR ENTRY/EXIT
  2480. LDM BCMR PACK REGISTER INTO BUFFER
  2481. SHN 10
  2482. LMM BCMR+1
  2483. SHN -4+22
  2484. STI BP
  2485. SHN 0+4-22
  2486. SHN 10
  2487. LMM BCMR+2
  2488. STM 1,BP
  2489. LDM BCMR+3
  2490. SHN 10
  2491. LMM BCMR+4
  2492. SHN -4+22
  2493. STM 2,BP
  2494. SHN 0+4-22
  2495. SHN 10
  2496. LMM BCMR+5
  2497. STM 3,BP
  2498. LDM BCMR+6
  2499. SHN 10
  2500. LMM BCMR+7
  2501. SHN -4+22
  2502. STM 4,BP
  2503. SHN 0+4-22
  2504. UJP PWBX RETURN
  2505. RMR SPACE 4,10
  2506. ** RMR - READ MAINTENANCE REGISTER.
  2507. *
  2508. * ENTRY (BDMR - BDMR+3) = M/R CONTROL WORD.
  2509. * (MS - MS+1) = ADDRESS OF MAINTENANCE REGISTER.
  2510. * (T5) = BYTE WITH NEXT REGISTER NUMBER TO LOG.
  2511. * (T6) = 0 IF STATUS SUMMARY NOT YET LOGGED.
  2512. *
  2513. * EXIT (A) = 0, IF MORE BUFFERS TO CHECK.
  2514. *
  2515. * USES CN - CN+3, MS - MS+1, T5.
  2516. *
  2517. * CALLS PMB, PMR.
  2518.  
  2519.  
  2520. RMR SUBR ENTRY/EXIT
  2521. RMR1 LDML BDMR,T5 GET NEXT REGISTER NUMBER
  2522. NJN RMR2 IF REGISTER IS PRESENT
  2523. LDD T6
  2524. NJN RMRX IF ALL REGISTERS LOGGED
  2525. RMRA LDN 1 SET STATUS SUMMARY LOGGED
  2526. STD T6
  2527. RMR2 AOD MS+1 READ MAINTENANCE REGISTER
  2528. SHN -14
  2529. RAD MS
  2530. SHN 14
  2531. LMD MS+1
  2532. CRDL CN
  2533. RJM PMR PACK REGISTER INTO *BCMR* BUFFER
  2534. RJM PMB PACK M/R INTO *BML* MESSAGE
  2535. ZJN RMRX IF BUFFER COMPLETE
  2536. UJN RMR1 PROCESS NEXT REGISTER
  2537. SCA SPACE 4,10
  2538. ** SCA - SET M/R BUFFER CONTROL WORDS ADDRESS.
  2539. *
  2540. * EXIT (MB - MB+1) = ADDRESS OF FIRST M/R CONTROL WORD.
  2541. *
  2542. * CALLS DOB.
  2543. *
  2544. * USES CM - CM+3, MB - MB+1.
  2545. *
  2546. * MACROS RPTR.
  2547.  
  2548.  
  2549. SCA SUBR ENTRY/EXIT
  2550. RJM DOB
  2551. SCAA ADK DFHL
  2552. * UJN SCA2 (*DFT* VERSION 4 OR ABOVE)
  2553. SCA1 STD MB+1 SAVE ADDRESS
  2554. SHN -14
  2555. STD MB
  2556. UJN SCAX RETURN
  2557.  
  2558. SCA2 ADK DFBC
  2559. CRDL CM READ M/R BUFFER CONTROL WORD POINTER
  2560. RPTR CM CONVERT ADDRESS
  2561. UJN SCA1 SAVE ADDRESS
  2562. SDA SPACE 4,10
  2563. ** SDA - SET NOS REQUEST HEADER ADDRESS.
  2564. *
  2565. * EXIT (A) = ADDRESS OF NOS REQUEST HEADER.
  2566.  
  2567.  
  2568. SDA SUBR ENTRY/EXIT
  2569. SDAA LDC ** (ADDRESS OF NOS REQUEST HEADER)
  2570. UJN SDAX RETURN
  2571. SID SPACE 4,10
  2572. ** SID - SET SECDED ID TABLE INFORMATION.
  2573. *
  2574. * ENTRY (MS - MS+1) = ADDRESS OF M/R BUFFER.
  2575. *
  2576. * EXIT (A) = NUMBER OF SECDED ENTRIES.
  2577. *
  2578. * USES CM - CM+4, MS - MS+1, T1 - T1+4.
  2579.  
  2580.  
  2581. SID SUBR ENTRY/EXIT
  2582. LDD MS READ MEMORY SIZE
  2583. SHN 14
  2584. LMD MS+1
  2585. CRD CM
  2586. ADN 1 READ MEMORY MODEL
  2587. CRD T1
  2588. LDD T1+3
  2589. SHN -4
  2590. STM IBMG+2 STORE MEMORY MODEL
  2591. LDDL CM ADD MEMORY SIZE TO *BML*
  2592. SHN 22-4
  2593. STM IBMF+3
  2594. SHN 4-22
  2595. SHN 10
  2596. STD T1
  2597. LDDL CM+1
  2598. SHN -10
  2599. LMD T1
  2600. STM IBMF+4
  2601. LDN 2 ADVANCE TO SECDED ENTRIES
  2602. RAD MS+1
  2603. SHN -14
  2604. RAD MS
  2605.  
  2606. * CALCULATE SECDED TABLE SIZE.
  2607.  
  2608. LDN 0
  2609. STD T4
  2610. SID1 LDD MS READ NEXT SECDED ENTRY
  2611. SHN 14
  2612. LMD MS+1
  2613. ADD T4
  2614. CRD CM
  2615. LDD CM CHECK IF EMPTY ENTRY
  2616. ADD CM+1
  2617. ADD CM+2
  2618. ADD CM+3
  2619. ADD CM+4
  2620. SBN 1
  2621. MJN SID2 IF LAST ENTRY
  2622. AOD T4
  2623. UJN SID1 CHECK NEXT ENTRY
  2624.  
  2625. SID2 LDD T4 RETURN SECDED SIZE
  2626. UJP SIDX RETURN
  2627. UCC SPACE 4,10
  2628. ** UCC - UPDATE CTI CLOCK.
  2629. *
  2630. * ENTRY DURING TOP-OF-HOUR PROCESSING.
  2631. *
  2632. * EXIT *1MA* CALLED IF TIME IS MIDNIGHT.
  2633. *
  2634. * USES CM - CM+4.
  2635. *
  2636. * MACROS MONITOR.
  2637.  
  2638.  
  2639. UCC SUBR ENTRY/EXIT
  2640. LDN PDTL CHECK TIME
  2641. CRD CM
  2642. LDD CM+3
  2643. LPN 77
  2644. NJN UCCX IF NOT MIDNIGHT
  2645. LDD IR+1 UPDATE CONTROL POINT NUMBER
  2646. LPN 37
  2647. RAM UCCA+1
  2648. LDD MA WRITE *1MA* REQUEST TO MESSAGE BUFFER
  2649. CWM UCCA,ON
  2650. MONITOR RPPM REQUEST PP FOR *1MA*
  2651. UJN UCCX RETURN
  2652.  
  2653.  
  2654. UCCA VFD 18/3L1MA,6/**,12/6,12/,12/
  2655. WLB SPACE 4,10
  2656. ** WLB - WRITE LAST *BML* MESSAGE.
  2657. *
  2658. * ENTRY DATA FOR LAST *BML* MESSAGE IN BUFFER.
  2659. * (T4) = WORD COUNT OF MESSAGE.
  2660. *
  2661. * EXIT LAST *BML* MESSAGE WRITTEN.
  2662. *
  2663. * CALLS DFM.
  2664. *
  2665. * USES CM - CM+4.
  2666.  
  2667.  
  2668. WLB SUBR ENTRY/EXIT
  2669. LDM IBMG+1 CLEAR CONTINUATION BIT
  2670. SCN 4
  2671. STM IBMG+1
  2672. LDN ZERL
  2673. CRD CM
  2674. LDD T4 SET BYTE COUNT
  2675. SHN 2
  2676. ADD T4
  2677. STD CM+1
  2678. LDC IBMF+BMLN SEND LAST *BML* MESSAGE
  2679. RJM DFM
  2680. UJN WLBX RETURN
  2681. LINS SPACE 4,10
  2682. LINS BSS 0 TABLE OF LONG INSTRUCTIONS
  2683. LIST16
  2684. SPACE 4,10
  2685. ** COMMON DECKS.
  2686.  
  2687.  
  2688. *CALL COMPDLI
  2689. QUAL COMPIMB
  2690. LIST X
  2691. *CALL COMPIMB
  2692. LIST *
  2693. QUAL *
  2694. IMB EQU /COMPIMB/IMB
  2695. SPACE 4,15
  2696. ** MAINTENANCE REGISTER BUFFERS.
  2697.  
  2698.  
  2699. BCMR EQU *
  2700. BDMR EQU BCMR+10
  2701. PRGB EQU BDMR+10 PP REGISTER BUFFER
  2702. BHDR EQU PRGB *EMB* HEADER WORD
  2703. MBUF EQU BHDR+5 MODEL DEPENDENT DATA *BML* BUFFER
  2704.  
  2705. ERRPL PRGB+240B-EPFW PP REGISTER BUFFER OVERFLOW
  2706. ERRPL MBUF+50D*5-EPFW MODEL DEPENDENT DATA BUFFER OVERFLOW
  2707. TITLE OVERLAYABLE SUBROUTINES.
  2708. * THESE SUBROUTINES ARE OVERLAYED BY THE MAINTENANCE REGISTER
  2709. * AND MODEL DEPENDENT DATA BUFFERS.
  2710. SBA SPACE 4,25
  2711. ** SBA - SET BUFFER ADDRESSES.
  2712. *
  2713. * EXIT (DC - DC+3) = *DFT* CONTROL WORD.
  2714. * (DOBA - DOBA+1) = DFT/OS BUFFER ADDRESS.
  2715. * (SDAA - SDAA+1) = NOS REQUEST HEADER ADDRESS.
  2716. * (MRBA - MRBA+1) = ADDRESS OF M/R BUFFERS.
  2717. * (LMRB) = LENGTH OF M/R BUFFER.
  2718. * MACHINE ID, MESSAGE ID AND CHANNEL PLACED IN *BML*
  2719. * MESSAGE BUFFER.
  2720. * *DFT* VERSION PLACED IN *BML* MESSAGE BUFFER.
  2721. * CODE MODIFIED TO SKIP LOGGING IF NOS/VE IS LOGGING.
  2722. *
  2723. * IN ADDITION, FOR *DFT* VERSION 4 OR ABOVE -
  2724. * (DFTV) = *DFT* VERSION.
  2725. * (LMRA) = SIZE OF ELEMENT COUNTER BUFFER.
  2726. * (FNRA - FNRA+1) = NON-REGISTER DATA ADDRESS.
  2727. * (LSSA - LSSA+1) = SUPPORTIVE STATUS BUFFER ADDRESS.
  2728. * (MDBA - MDBA+1) = MODEL DEPENDENT BUFFER ADDRESS.
  2729. *
  2730. * USES CM - CM+4, CN - CN+4, DC - DC+3.
  2731. *
  2732. * CALLS DLI, DOB, DSP.
  2733. *
  2734. * MACROS ISTORE, RPTR.
  2735.  
  2736.  
  2737. SBA SUBR ENTRY/EXIT
  2738. LDC SBAL DEFINE LONG INSTRUCTIONS
  2739. RJM DLI
  2740. RJM DSP READ *DFT/OS* BUFFER POINTER
  2741. ADK DSCM+3
  2742. CRDL CN
  2743. RPTR CN,DOBA SET *DFT/OS* BUFFER ADDRESS
  2744. RJM DOB READ *DFT* CONTROL WORD
  2745. ADK DFCW
  2746. CRDL DC
  2747. ADK DFRQ-DFCW READ NOS REQUEST HEADER POINTER
  2748. CRDL CM
  2749. ADK DFMR-DFRQ READ M/R BUFFERS POINTER
  2750. CRDL CN
  2751. RPTR CN,MRBA SAVE FWA OF M/R BUFFERS
  2752. RPTR CM,SDAA SET ADDRESS OF NOS REQUEST HEADER
  2753. LDDL DC+2 SET LENGTH OF M/R BUFFER
  2754. SHN -10
  2755. STM LMRB
  2756. LDDL DC+1 GET *DFT* VERSION
  2757. SHN -10
  2758. LPN 77
  2759. STM IBMG SET *DFT* VERSION INTO *BML*
  2760. SHN -2
  2761. STM DFTV SAVE *DFT* VERSION (0 = VERSION 3)
  2762. ZJP SBA2 IF *DFT* VERSION 3
  2763. ISTORE SCAA,(UJN SCA2) USE POINTER TO FIND CONTROL WORDS
  2764. RJM DOB
  2765. ADK DFMD READ MODEL DEPENDENT BUFFER POINTER
  2766. CRDL T1
  2767. ADK DFSS-DFMD READ SUPPORTIVE STATUS BUFFER POINTER
  2768. CRDL CM
  2769. ADK DFNR-DFSS READ NON-REGISTER DATA POINTER
  2770. CRDL CN
  2771. RPTR T1,MDBA SAVE FWA OF MODEL DEPENDENT BUFFER
  2772. RPTR CM,FSSA SAVE FWA OF SUPPORTIVE STATUS DATA
  2773. LDM IBMG CHECK FOR *DFT* VERSION 5 AND ABOVE
  2774. SBN 5
  2775. MJN SBA1 IF *DFT* VERSION 4 OR PRIOR
  2776. RPTR CN,FNRA SAVE FWA OF NON-REGISTER DATA
  2777. LDDL DC+3 CHECK DEDICATED MODE
  2778. SHN 21-DCDM
  2779. PJN SBA1 IF *DFT* IS IN DEDICATED MODE
  2780. LDD IR+2 CHECK FOR TOP OF HOUR
  2781. LPN SPTP
  2782. ZJN SBA0 IF NOT TOP OF HOUR
  2783. ISTORE CTPB,(LDN SPTH) SET TO SECOND TOP OF HOUR FUNCTION
  2784. UJN SBA1 CONTINUE
  2785.  
  2786. SBA0 LDD IR+2 CHECK FOR TOP OF HOUR PASS TWO
  2787. LPN SPTH
  2788. ZJN SBA1 IF NOT TOP OF HOUR PASS TWO
  2789. ISTORE DPPA,(UJN DPP5) SET TO RECALL *DFT*
  2790. * LPN SPTP
  2791. LPN SPLG
  2792. STD IR+2
  2793. LDD IA REWRITE INPUT REGISTER
  2794. CWD IR
  2795. SBA1 RJM DOB
  2796. ADK DFEC READ ELEMENT COUNTER BUFFER POINTER
  2797. CRDL CM
  2798. LDD CM+3 SAVE SIZE OF BUFFER
  2799. STM LMRA
  2800. SBA2 LDDL DC+3 CHECK OS LOGGING FLAG
  2801. SHN 21-DCLG
  2802. MJN SBA3 IF 170 LOGGING
  2803. ISTORE LMRC,(UJN LMRX) SKIP LOGGING
  2804. LDC LJMI SET *LJM*
  2805. STM CTPA
  2806. LDC CTPX SET *LJM* ADDRESS
  2807. STM CTPA+1
  2808. LDBC (MRV7,MRIL)
  2809. STM FOMA+1
  2810. LDBC (MRV7,MRIL)
  2811. LMC SCNI
  2812. STM MEPC
  2813. SBA3 LDC MMFL SET MACHINE ID INTO *BML*
  2814. CRD CM
  2815. LDD CM
  2816. STM IBMG+3
  2817. LDC /COMSDFS/HM0250 SET MESSAGE ID INTO *BML*
  2818. STM IBMF
  2819. LDN MR SET CHANNEL NUMBER INTO *BML*
  2820. RAM IBMF+2
  2821. LDC 400000B+SBAL CLEAR LONG INSTRUCTIONS
  2822. RJM DLI
  2823. LJM SBAX RETURN
  2824.  
  2825.  
  2826. SBAL BSS 0 TABLE OF LONG INSTRUCTIONS
  2827. LIST16
  2828. TITLE COMMON PRESET.
  2829. PRESET SPACE 4,10
  2830. ** PRESET - COMMON PRESET CODE FOR *1MB* AND *1SC*.
  2831. *
  2832. * THIS MACRO PROVIDES IDENTICAL CODE FOR *1MB* AND *1SC*.
  2833. *
  2834. * ENTRY (IR+2) = *1MB* FUNCTION BITS.
  2835. *
  2836. * EXIT (MF) = MAINFRAME TYPE.
  2837. * = 0 = MF70 = CYBER 70.
  2838. * = 1 = MF170 = CYBER 170.
  2839. * = 2 = MF700 = CYBER 170 - 700 SERIES.
  2840. * = 3 = MF865 = CYBER 170 - 865.
  2841. * = 4 = MF875 = CYBER 170 - 875.
  2842. * = 5 = MF180 = CYBER 180 CLASS MACHINE.
  2843. * = 6 = MF176A = CYBER 176 LEVEL A.
  2844. * = 7 = MF176B = CYBER 176 LEVEL B.
  2845. * (PN) = PP NUMBER * 100B
  2846. *
  2847. * ERROR EXIT TO *PPR* IF CALLED WITH INCORRECT FUNCTION CODE.
  2848. *
  2849. * USES MF, T1, T3, T4, CM - CM+4, MI - MI+4, SC - SC+4.
  2850. *
  2851. * CALLS DFM.
  2852.  
  2853.  
  2854. PRESET MACRO
  2855. PRESET RMT
  2856. LIST D
  2857. PRS SUBR ENTRY/EXIT
  2858. LDK MABL READ MAINFRAME IDENTIFICATION
  2859. CRD MI
  2860. LDC SCRL READ *SCRL* WORD
  2861. CRD SC
  2862. LDN MF70 PRESET CYBER 70 MAINFRAME TYPE
  2863. STD MF
  2864. LDD MI+1
  2865. SHN 21-7
  2866. PJN PRS8 IF CYBER 70
  2867. SHN 21-13-21+7+22
  2868. MJN PRS3 IF NOT CYBER 180 CLASS MACHINE
  2869. SHN 0-2-21+13+22
  2870. LPN 21
  2871. ZJN PRS2 IF CYBER 170 - 865
  2872. LMN 1
  2873. ZJN PRS1 IF CYBER 170 - 875
  2874. LDN MF180&MF875
  2875. PRS1 LMN MF875&MF865
  2876. PRS2 LMN MF865
  2877. UJN PRS7 SET MACHINE TYPE
  2878.  
  2879. PRS3 SHN 0-10-21+13
  2880. LMN 17
  2881. ZJN PRS5 IF CYBER 176 LEVEL A
  2882. LMN 16&17
  2883. ZJN PRS6 IF CYBER 176 LEVEL B
  2884. LPN 1
  2885. ZJN PRS4 IF CYBER 170 - 700 SERIES
  2886. LDN MF170&MF700
  2887. PRS4 LMN MF700&MF176A
  2888. PRS5 LMN MF176A&MF176B
  2889. PRS6 LMN MF176B
  2890. PRS7 STD MF
  2891. PRS8 LDD IR+2 CHECK FUNCTION BITS
  2892. SBK SPMX
  2893. MJN PRS12 IF LEGAL FUNCTION
  2894.  
  2895. * PROCESS INCORRECT FUNCTION CODE.
  2896.  
  2897. LDC PRSA ISSUE CALL ERROR MESSAGE
  2898. RJM DFM
  2899. MONITOR DPPM
  2900. LJM PPR EXIT TO PP RESIDENT
  2901.  
  2902. PRS12 LDD CP SET CONTROL POINT NUMBER IN PP CALL
  2903. SHN -7
  2904. RAM CKPA+1
  2905. LDN PPCP STORE LOGICAL PP NUMBER BEING USED
  2906. CRD CM
  2907. LDD IA
  2908. SBD CM+4
  2909. SHN -3
  2910. SBN 12 CHECK BARREL
  2911. MJN PRS12.1 IF IN LOWER BARREL
  2912. ADN 20-12 ADJUST FOR PP20-PP31
  2913. PRS12.1 ADN 12
  2914. SHN 6
  2915. STM IBMF+2
  2916. STD PN
  2917. LJM PRS13 COMPLETE PRESET
  2918.  
  2919.  
  2920. PRSA DATA C* 1MB - CALL ERROR.*
  2921. LIST *
  2922. PRESET RMT
  2923. PRESET ENDM
  2924. TITLE PRESET.
  2925. SPACE 4,10
  2926. ** COMMON PRESET.
  2927.  
  2928.  
  2929. PRESET
  2930. PRESET HERE
  2931.  
  2932. PRS13 LDD CP
  2933. SHN -7
  2934. RAM MEPD+1 PRESET CP IN *1DS* CALL
  2935.  
  2936. * PLUG *EMB* ADDRESSES.
  2937.  
  2938. LDK EMBP FETCH *EMB* POINTER
  2939. CRD CM
  2940. .CM1 EQU CM+1
  2941. LDC .CM1*10000+TEMB
  2942. RJM STA SET *EMB* ADDRESSES
  2943. LJM PRSX EXIT PRESET
  2944.  
  2945.  
  2946. TEMB BSS 0 TABLE OF *EMB* ADDRESSES
  2947. QUAL COMPIMB
  2948. TEMB HERE
  2949. QUAL *
  2950. CON 0 TERMINATE TABLE
  2951. STA SPACE 4,10
  2952. ** STA - SET TABLE ADDRESSES.
  2953. *
  2954. * ENTRY (A) = 6/ TP, 12/ TA
  2955. * TP = TABLE POINTER.
  2956. * TA = INSTRUCTION TABLE ADDRESS.
  2957. *
  2958. * EXIT (A) = 0.
  2959. *
  2960. * USES T0, T1, T2.
  2961.  
  2962.  
  2963. STA1 STD T2 SET INSTRUCTION ADDRESS
  2964. LDM 1,T1
  2965. RAM 1,T2 SET LOWER 12 BITS OF ADDRESS
  2966. SHN -14
  2967. ADI T1 SET UPPER 6 BITS OF ADDRESS
  2968. LPN 37
  2969. RAI T2
  2970. AOD T0 ADVANCE INSTRUCTION LIST
  2971. STA2 LDI T0
  2972. NJN STA1 IF NOT END OF TABLE
  2973.  
  2974. STA SUBR ENTRY/EXIT
  2975. STD T0
  2976. SHN -14 SET ADDRESS POINTER
  2977. STD T1
  2978. UJN STA2 ENTER LOOP
  2979. L1MB EQU * LWA+1 OF *1MB* CODE
  2980. SPACE 4,10
  2981. OVERFLOW PPFW,EPFW
  2982. TTL 1MB/1SC - SCR ERROR PROCESSOR.
  2983. TITLE
  2984. IDENT 1SC,PPFW
  2985. QUAL 1SC
  2986. *COMMENT 1MB - SCR ERROR PROCESSOR.
  2987. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  2988. SEP SPACE 4,10
  2989. *** SEP - SCR ERROR PROCESSOR.
  2990. *
  2991. * *SEP* IS THE MAIN DRIVER THAT PROCESSES ERRORS
  2992. * DETECTED IN THE SCR (OR SIMULATED SCR). *1SC* IS CALLED
  2993. * FOR LOGGING *UIDL* (SEE *COMSSCR*) UNIQUE SECDED ERRORS,
  2994. * FOR END-OF-HOUR PROCESSING, AND FOR ALL SCR ERRORS OTHER
  2995. * THAN SECDED ERRORS.
  2996. *
  2997. * *1SC* FIRST CHECKS FOR GROUP 1 AND GROUP 2 FATAL ERRORS (SEE
  2998. * *COMSSCR*). IF ANY OF THESE BITS ARE SET, *1SC* DISPLAYS
  2999. * *FATAL MAINFRAME ERROR*, CHECKPOINTS THE DEVICES (IF NOT A
  3000. * IAF ERROR), REQUESTS STEP MODE, AND HANGS THE PP. IF NO
  3001. * FATAL ERROR BITS ARE DETECTED, *1SC* CONTINUES CHECKING FOR
  3002. * OTHER ERRORS.
  3003. *
  3004. * *1SC* THEN CHECKS THE S/C REGISTER FOR BITS 36 AND/OR
  3005. * 37 SET. IF BIT 36 (POWER FAILURE) IS SET, THE STEP
  3006. * REQUEST BIT IN CM WORD *SCRL* IS SET AND A STEP FUNCTION
  3007. * IS ISSUED. THE S/C REGISTER(S) ARE READ ALONG WITH THE
  3008. * TIME OF DAY. IF ONLY BIT 36 IS SET, THE MESSAGE
  3009. * *POWER FAILURE.* IS DISPLAYED AT THE SYSTEM CONTROL
  3010. * POINT. IF BOTH BITS 36 AND 37 ARE SET, THE MESSAGE
  3011. * *POWER DOWN.* IS DISPLAYED. IF BIT 37 ALONE IS SET, *1CK*
  3012. * IS CALLED TO PERFORM A SYSTEM CHECKPOINT AND THE MESSAGE
  3013. * *SHUTDOWN IMMINENT.* IS ENTERED IN THE ERROR LOG AND
  3014. * DISPLAYED AT THE SYSTEM CP. THEN THE STEP REQUEST BIT
  3015. * IS SET AND A STEP FUNCTION IS ISSUED. DURING THIS TIME
  3016. * AND SUBSEQUENTLY, BITS 36 AND 37 ARE MONITORED AND THE
  3017. * CONTROL POINT MESSAGE KEPT UP TO DATE. IF BIT 36 BECOMES
  3018. * SET, STEP MODE IS IMMEDIATELY REQUESTED. IF BOTH BITS
  3019. * BECOME CLEAR, THE MESSAGE *POWER/ENVIRONMENT NORMAL.*
  3020. * IS DISPLAYED AT THE SYSTEM CONTROL POINT, THE S/C
  3021. * REGISTER(S) AND THE TIME OF DAY ARE READ, AND THE STEP
  3022. * REQUEST BIT IS CLEARED, ENABLING THE ENTERING OF THE
  3023. * *DSD* COMMAND *UNSTEP.* BY THE OPERATOR. WHEN *UNSTEP.*
  3024. * IS EXECUTED, *1SC* ENTERS INTO THE ERROR LOG AS
  3025. * APPROPRIATE, THE MESSAGE *SR HH.MM.SS. POWER FAILURE.*
  3026. * OR *SR HH.MM.SS. POWER DOWN.*. THE LAST MESSAGE SEQUENCE
  3027. * IN THE ERROR LOG BEFORE *1MB* DROPS WILL BE
  3028. * *SR HH.MM.SS. POWER/ENVIRONMENT NORMAL.*.
  3029. * (ON A CYBER 70, BIT 0 OF THE INTERLOCK REGISTER INDICATES
  3030. * POWER FAILURE. THERE IS NO SHUTDOWN IMMINENT BIT. THE
  3031. * POWER FAILURE PROCEDURE DESCRIBED ABOVE IS FOLLOWED
  3032. * EXCEPT THE MESSAGE PREFIX BECOMES *IR* INSTEAD OF *SR*.)
  3033. *
  3034. * IF S/C REGISTER BITS 36 AND/OR 37 ARE NOT SET,
  3035. * *1SC* S/C REGISTER(S) PROCESSING WILL, FOR EACH
  3036. * AVAILABLE S/C REGISTER, CLEAR APPROPRIATE ERROR
  3037. * BITS, AND ISSUE ERROR INFORMATION TO THE BML.
  3038. *
  3039. * FOR PP MEMORY PARITY ERRORS, *1SC* WILL DISPLAY A
  3040. * *PP MEMORY PARITY ERROR* MESSAGE AT THE SYSTEM
  3041. * CONTROL POINT.
  3042. *
  3043. * EACH SINGLE BIT SECDED ERROR DETECTED IN THE SCR (OR
  3044. * SIMULATED SCR) WILL BE COUNTED. THE FIRST *UIDL* UNIQUE
  3045. * PER HOUR WILL BE LOGGED (SUBSEQUENT SINGLE BIT SECDED
  3046. * ERRORS DETECTED BY MONITOR WILL MERELY INCREMENT THE COUNTS
  3047. * AND CLEAR THE ERROR BITS IN MONITOR ITSELF). AT THE END OF
  3048. * EACH HOUR, THE *TIME PROCESSING* CALL TO *1SC* WILL CAUSE
  3049. * THE CURRENT SINGLE BIT SECDED ERROR COUNT TO BE LOGGED TO
  3050. * THE ERROR LOG. THE CM AND LCME SECDED ID TABLES AND COUNTS
  3051. * WILL ALSO BE LOGGED TO THE BML. THESE TABLES AND COUNTS
  3052. * WILL THEN BE CLEARED AFTER LOGGING. THE ESM SECDED
  3053. * ERROR LOG IS ALSO LOGGED TO THE BML, IF AN ESM
  3054. * MAINTENANCE PORT IS DEFINED.
  3055. *
  3056. * FOR CYBER 176 MACHINES, LCME SINGLE BIT SECDED
  3057. * ERRORS ARE HANDLED IN A SIMILAR MANNER. THE
  3058. * THRESHOLD VALUE FOR LCME IS ALSO DEFINED BY *UIDL*.
  3059. *
  3060. * ALL DETECTED DOUBLE BIT SECDED ERRORS WILL BE LOGGED.
  3061. *
  3062. * NOTE - *1SC* IS, TO AN EXTENT, FUNCTION-DRIVEN BY BITS. ONE
  3063. * BIT IN THE PARAMETER LIST DENOTES WHETHER OR NOT MONITOR HAS
  3064. * DETECTED A CM SINGLE BIT SECDED ERROR. A SECOND BIT
  3065. * SPECIFIES IF AN LCME SINGLE BIT SECDED ERROR HAS BEEN
  3066. * DETECTED. A THIRD BIT DENOTES IF END-OF-HOUR PROCESSING HAS
  3067. * BEEN SPECIFIED. THUS, AN OPEN WINDOW FOR SECDED ERRORS
  3068. * EXISTS FROM THE TIME MONITOR CALLS *1SC* UNTIL *1SC* BEGINS
  3069. * PROCESSING. THIS PRESENTS NO MAJOR CONCERN, HOWEVER, SINCE
  3070. * *1SC* WILL NOT PROCESS ANY SECDED ERRORS NOT DETECTED BY
  3071. * MONITOR. THOSE SECDED BITS WILL REMAIN SET UNTIL MONITOR
  3072. * DETECTS THE ERROR IN ITS NEXT CYCLE.
  3073. * WHEN *1SC* IS FINISHED, IT WILL CLEAR BIT 59 IN
  3074. * CM LOCATION *SCRL*, SET BY *MTR*, TO RE-ENABLE
  3075. * S/C REGISTER ERROR LOGGING.
  3076. SPACE 4,10
  3077. *** CALL.
  3078. *
  3079. *
  3080. *T IR 18/ *1SC*,1/0,5/ CP,9/0,1/ C,1/ L,1/ T,24/0
  3081. * CP CONTROL POINT NUMBER.
  3082. * C SET IF CM SINGLE BIT SECDED ERROR.
  3083. * L SET IF LCME SINGLE BIT SECDED ERROR (176 ONLY).
  3084. * T SET IF TIME PROCESSING SPECIFIED.
  3085. SPACE 4,10
  3086. *** DAYFILE MESSAGES.
  3087. *
  3088. *
  3089. * * 1SC - CALL ERROR.* = *1SC* WAS CALLED WITH AN ILLEGAL
  3090. * FUNCTION BIT CODE.
  3091. *
  3092. * * 1SC - ESM CHANNEL HANG.* = THE ESM MAINTENANCE
  3093. * CHANNEL HUNG ACTIVE WHILE WAITING TO FUNCTION THE
  3094. * ESM TO READ THE ESM SECDED LOG.
  3095. *
  3096. * * 1SC - INCOMPLETE ESM SECDED READ.* = *1SC* DETECTED
  3097. * THAT NOT ALL OF THE ESM SECDED LOG WAS READ OFF THE
  3098. * ESM MAINTENANCE CHANNEL.
  3099. SPACE 4,20
  3100. *** SCR PROCESSING SYSTEM CONTROL POINT MESSAGES.
  3101. *
  3102. *
  3103. * * FATAL MAINFRAME ERROR.*
  3104. *
  3105. * * POWER FAILURE.*
  3106. * BIT 36 OF S/C REGISTER SET.
  3107. * BIT 0 OF INTERLOCK REGISTER SET (CYBER 70)
  3108. *
  3109. * * SHUTDOWN IMMINENT.*
  3110. * BIT 37 OF S/C REGISTER SET.
  3111. *
  3112. * * POWER DOWN.*
  3113. * BOTH BITS 36 AND 37 OF S/C REGISTER SET.
  3114. *
  3115. * * POWER/ENVIRONMENT NORMAL.*
  3116. * BOTH BITS 36 AND 37 OF S/C REGISTER CLEAR.
  3117. SPACE 4,40
  3118. *** SCR PROCESSING ERROR LOG MESSAGES.
  3119. *
  3120. *
  3121. * *SR HH.MM.SS. POWER FAILURE.*
  3122. * *IR HH.MM.SS. POWER FAILURE.* (CYBER 70)
  3123. *
  3124. * *SR SHUTDOWN IMMINENT.*
  3125. *
  3126. * *SR HH.MM.SS. POWER DOWN.*
  3127. *
  3128. * *SR HH.MM.SS. POWER/ENVIRONMENT NORMAL.*
  3129. * *IR HH.MM.SS. POWER/ENVIRONMENT NORMAL.* (CYBER 70)
  3130. *
  3131. * WHERE HH.MM.SS. IS TIME OF DAY.
  3132. * ABOVE MESSAGES ARE FOLLOWED BY S/C REGISTER(S)
  3133. * CONTENTS READ AT TIME HH.MM.SS. IN FORMAT
  3134. * SHOWN ABOVE.
  3135.  
  3136.  
  3137. ORG PPFW
  3138. SEP RJM PSC PRESET FOR *1SC*
  3139. RJM RSC READ S/C REGISTER(S)
  3140. SEPA RJM CFE CHECK FOR FATAL ERRORS
  3141. * UJN *+2 (IF CYBER 70 AND NO SIMULATION)
  3142. RJM PEF CHECK FOR POWER OR ENVIRONMENTAL FAILURE
  3143. RJM TEB CLEAR TEST ERROR BITS IN S/C
  3144. RJM PSB PROCESS SINGLE BIT ERRORS
  3145. RJM IBM ISSUE BML MESSAGE
  3146. RJM PTP PERFORM TIME PROCESSING
  3147. LJM DPP DROP PP
  3148. SPACE 4,10
  3149. ** COMMON SUBROUTINES.
  3150.  
  3151.  
  3152. COMMON
  3153.  
  3154. LIST D
  3155. COMMON HERE
  3156. LIST *
  3157. BIS SPACE 4,10
  3158. ** BIS - BUILD ID SUMMARY TABLE ADDRESS.
  3159. *
  3160. * ENTRY (SC - SC+4) = SCR PARAMETER WORD *SCRL*.
  3161. *
  3162. * EXIT (T3) = ID TABLE LENGTH.
  3163. *
  3164. * USES T3, T6, T7.
  3165.  
  3166.  
  3167. BIS SUBR ENTRY/EXIT
  3168. LDD SC BUILD ID SUMMARY TABLE ADDRESS
  3169. LPN 77
  3170. SHN 14
  3171. LMD SC+1
  3172. BISA ADN UIDL
  3173. * ADN UIDL*2 (ADD OFFSET FOR LCME ID TABLE)
  3174. STD T7
  3175. SHN -14
  3176. STD T6
  3177. LDN UIDL GET ID TABLE LENGTH
  3178. STD T3
  3179. UJN BISX RETURN
  3180. CFE SPACE 4,10
  3181. ** CFE - CHECK FOR FATAL ERRORS.
  3182. *
  3183. * ENTRY (MF) = MAINFRAME TYPE FLAG.
  3184. *
  3185. * EXIT IF ANY FATAL ERROR BITS SET, HANGS WITH STEP MODE
  3186. * SET, FORCING DEADSTART. OTHERWISE, EXIT IS NORMAL.
  3187. *
  3188. * USES T2, CM - CM+4, CN - CN+4.
  3189. *
  3190. * CALLS CSH, TRB.
  3191.  
  3192. CFE SUBR ENTRY/EXIT
  3193. LDM TSCR+20 TEST SCR FOR GROUP ONE FATAL ERRORS
  3194. LPC FEM0 (CYBER 170)
  3195. * LPC FEM6 (CYBER 176)
  3196. * LPC FEM7 (CYBER 170 - 700 SERIES)
  3197. * LPC FEM8 (CYBER 170 - 865/875)
  3198. CFEA EQU *-1
  3199. NJN CFE1 IF FATAL ERROR
  3200. LDM TSCR+17
  3201. NJN CFE1 IF FATAL ERROR
  3202. LDD CH+1
  3203. ZJN CFE2 IF DONE WITH SCR REGISTERS
  3204. LDM TSCR+40
  3205. ZJN CFE2 IF NO GROUP ONE FATAL ERRORS
  3206. CFE1 LJM CFE7 PROCESS FATAL ERROR
  3207.  
  3208. CFE2 LDN CMCE CHECK FOR *CMC* ERROR (BIT CLEAR ON 176)
  3209. RJM TRB TEST BIT
  3210. NJN CFE6 IF *CMC* INPUT ERROR
  3211. CFE3 LDN SECD
  3212. RJM TRB
  3213. ZJN CFE4 IF NO SECDED ERROR
  3214. LDC SDSC CHECK IF DOUBLE BIT ERROR
  3215. RJM TRB
  3216. ZJN CFE4 IF NO DOUBLE BIT ERROR
  3217. LDD MF
  3218. SBN MF176A
  3219. MJN CFE6 IF NOT A CYBER 176
  3220. LJM CSH1 REQUEST STEP AND HANG
  3221.  
  3222. CFE4 LDD MF GET MACHINE TYPE
  3223. SBN MF176A
  3224. MJN CFE5 IF NOT CYBER 176
  3225. LDN LSCD CHECK FOR LCME SECDED ERROR
  3226. RJM TRB
  3227. ZJN CFE5 IF NO LCME SECDED ERROR
  3228. LDC LDSC CHECK IF DOUBLE BIT ERROR
  3229. RJM TRB
  3230. NJN CFE6 IF DOUBLE BIT LCME ERROR
  3231. CFE5 LJM CFEX RETURN
  3232.  
  3233. CFE6 LDD CP CHECK SYSTEM CONTROL POINT FOR *PEET*
  3234. ADN STSW
  3235. CRD CM
  3236. LDD CM+1
  3237. LMN PEET
  3238. ZJN CFE7 IF PROGRAM MODE CPUMTR ENCOUNTERED ERROR
  3239. LDC VCPT*200+STSW CHECK FOR *IAF* ERROR
  3240. CRD CM
  3241. ADN JCIW-STSW-1
  3242. CRD CN
  3243. LDD CN+2
  3244. LMC /SSD/IFSI
  3245. NJN CFE8 IF NOT *IAF*
  3246. LDD CM+1
  3247. LMN PEET
  3248. NJN CFE8 IF ERROR NOT IN *IAF* FL
  3249. CFE7 AOM CKPA+2 SET FUNCTION TO CHECKPOINT DEVICES
  3250. CFE8 RJM CSH CHECKPOINT, STEP, AND HANG
  3251.  
  3252.  
  3253. CSHM DATA C* FATAL MAINFRAME ERROR.* DEFAULT *CSH* MESSAGE
  3254. IBM SPACE 4,10
  3255. ** IBM - ISSUE BML MESSAGE.
  3256. *
  3257. * ENTRY (IR+2) = *1MB* FUNCTION BITS.
  3258. * (MF) = MAINFRAME TYPE.
  3259. * (SC - SC+4) = SCR PARAMETER WORD *SCRL*.
  3260. *
  3261. * USES T3, T5 - T7, CM - CM+4, CN - CN+4, NW.
  3262. *
  3263. * CALLS BIS, DFM, OLB.
  3264.  
  3265.  
  3266. IBM SUBR ENTRY/EXIT
  3267. LDM TMID,MF GET MESSAGE ID
  3268. STM IBMF
  3269. LDC MMFL GET MACHINE ID
  3270. CRD CM
  3271. LDD CM
  3272. STM IBMG+3
  3273. LDD MF CHECK FOR CYBER 70
  3274. ZJN IBMX IF INTERLOCK REGISTER
  3275. LDN CHSC STORE SCR CHANNEL
  3276. RAM IBMF+2
  3277. LDD ER
  3278. ZJN IBM3 IF NO ERRORS IN SCR
  3279. RJM OLB OUTPUT LOG TO BML
  3280. IBM3 LDD IR+2
  3281. LPN SPTP
  3282. ZJN IBMX IF NOT TIME PROCESSING
  3283.  
  3284. * OUTPUT SECDED ERROR SUMMARY TABLE TO BML.
  3285.  
  3286. IBM4 LDM IBMH+2 RESET FIRST SCR CHANNEL
  3287. SCN 77
  3288. LMD CH
  3289. STM IBMH+2
  3290. LDC /COMSDFS/HS0102 (CM SUMMARY TABLE)
  3291. * LDC /COMSDFS/HS0104 (LCME SUMMARY TABLE)
  3292. IBMA EQU *-1
  3293. STM IBMF+1
  3294. LDN ZERL SAVE 5 WORDS OF ZEROES
  3295. CRD CN
  3296. RJM BIS BUILD ID SUMMARY TABLE ADDRESS
  3297. LDN 0 INITIALIZE TOTAL MESSAGE WORD COUNT
  3298. STD NW
  3299. IBM5 SOD T7 DECREMENT NEXT TABLE ENTRY ADDRESS
  3300. PJN IBM6 IF NO UNDERFLOW
  3301. SOD T6
  3302. AOD T7
  3303. IBM6 LDD T6 READ NEXT ID TABLE ENTRY
  3304. SHN 14
  3305. ADD T7
  3306. CRD CM
  3307. LDD CM+4 CHECK IF ERROR COUNT .GT. 0
  3308. ZJN IBM7 IF REMAINING TABLE ENTRIES EMPTY
  3309. AOD NW INCREMENT UNIQUE SECDED ERROR COUNT
  3310. SOD T3
  3311. NJN IBM5 IF ENTIRE ID TABLE NOT SEARCHED
  3312. IBM7 RJM BIS REBUILD LWA+1 OF TABLE
  3313. RAM BISA
  3314. IBM8 LDD NW
  3315. NJN IBM10 IF SECDED ERRORS OCCURRED THIS HOUR
  3316. LDD MF
  3317. SBN MF176A
  3318. MJN IBM9 IF NOT CYBER 176
  3319. LDN /COMSDFS/HS0104-/COMSDFS/HS0102 LCME ERRORS ID
  3320. RAM IBMA
  3321. LMC /COMSDFS/HS0104
  3322. NJN IBM9 IF LCME ERRORS REPORTED
  3323. LJM IBM4 PROCESS LCME SECDED SUMMARY TABLE
  3324.  
  3325. IBM9 LJM IBMX RETURN
  3326.  
  3327. IBM10 LDN 12 INITIALIZE BML MESSAGE BYTE COUNT
  3328. STD T5
  3329. LDC IBMH INITIALIZE MESSAGE BUFFER POINTER
  3330. STM IBME
  3331. IBM11 SOD T7 DECREMENT NEXT TABLE ENTRY ADDRESS
  3332. PJN IBM12 IF NO UNDERFLOW
  3333. SOD T6
  3334. AOD T7
  3335. IBM12 LDD NW
  3336. ZJN IBM13 IF TIME TO ISSUE DAYFILE MESSAGE
  3337. SOD NW DECREMENT UNIQUE SECDED ERROR COUNT
  3338. LDD T6 READ NEXT TABLE ENTRY INTO MESSAGE BUFFER
  3339. SHN 14
  3340. ADD T7
  3341. CRM IBMH,ON
  3342. IBME EQU *-1
  3343. * CRM IBMH+5,ON
  3344. * CRM IBMH+12,ON
  3345. * CRM IBMH+17,ON
  3346. SBN 1 RESET CURRENT ID TABLE ADDRESS
  3347. CWD CN CLEAR ID SUMMARY TABLE ENTRY
  3348. LDN 5 INCREMENT MESSAGE BUFFER POINTER
  3349. RAM IBME
  3350. LDN 5 INCREMENT MESSAGE BYTE COUNT
  3351. RAD T5
  3352. SBN 36
  3353. ZJN IBM13 IF BML MESSAGE BUFFER FULL
  3354. LJM IBM11 PROCESS MORE TABLE ENTRIES
  3355.  
  3356. * ISSUE DAYFILE MESSAGE.
  3357.  
  3358. IBM13 LDN ZERL CLEAR CM REGISTERS FOR DAYFILE CALL
  3359. CRD CM
  3360. LDD T5 SET BYTE COUNT OF MESSAGE
  3361. STD CM+1
  3362. LDD NW
  3363. ZJN IBM14 IF END OF BML MESSAGE
  3364. LDM IBMG+1 SET CONTINUATION BIT STATUS
  3365. SCN 4
  3366. LMN 4
  3367. UJN IBM15 STORE STATUS
  3368.  
  3369. IBM14 LDM IBMG+1 STORE MESSAGE STATUS
  3370. SCN 4
  3371. IBM15 STM IBMG+1
  3372. LDC IBMF+BMLN ISSUE DAYFILE MESSAGE
  3373. RJM DFM
  3374. LDM IBMG+1 SET NOT FIRST BLOCK FLAG
  3375. SCN 10
  3376. LMN 10
  3377. STM IBMG+1
  3378. LJM IBM8 CONTINUE PROCESSING
  3379. SPACE 4,10
  3380. TMID INDEX TABLE OF MESSAGE IDS
  3381. INDEX MF170,/COMSDFS/HM0200 CYBER 170
  3382. INDEX MF700,/COMSDFS/HM0201 CYBER 170 - 700 SERIES
  3383. INDEX MF865,/COMSDFS/HM0204 CYBER 170 - 865
  3384. INDEX MF875,/COMSDFS/HM0205 CYBER 170 - 875
  3385. INDEX MF176A,/COMSDFS/HM0202 CYBER 176 LEVEL A
  3386. INDEX MF176B,/COMSDFS/HM0203 CYBER 176 LEVEL B
  3387. INDEX MFMAX
  3388. ODW SPACE 4,10
  3389. ** ODW - OUTPUT DESCRIPTOR WORD TO SCR.
  3390. *
  3391. * ENTRY (A) = DESCRIPTOR WORD.
  3392. * CHANNEL INSTRUCTION SET.
  3393. *
  3394. * EXIT (A) = SCR REPLY WORD.
  3395.  
  3396.  
  3397. ODW SUBR ENTRY/EXIT
  3398. OAN CHSC OUTPUT DESCRIPTOR WORD
  3399. * OAN CHSC+20 (SECOND SCR)
  3400. * OAN 15 (INTERLOCK REGISTER)
  3401. ODWA EQU *-1
  3402. IAN CHSC INPUT SCR REPLY WORD
  3403. * IAN CHSC+20 (SECOND SCR)
  3404. * IAN 15 (INTERLOCK REGISTER)
  3405. ODWB EQU *-1
  3406. UJN ODWX EXIT
  3407. OLB SPACE 4,10
  3408. ** OLB - OUTPUT LOG TO *BML*.
  3409. *
  3410. * ENTRY (CH+1) = 0, IF ONLY ONE SCR REGISTER.
  3411. * TABLE *TSCR* CONTAINS SCR SECDED DATA.
  3412. *
  3413. * USES CM - CM+4, T3 - T5.
  3414. *
  3415. * CALLS DFM.
  3416.  
  3417.  
  3418. OLB8 LDN ZERL CLEAR FOR DAYFILE CALL
  3419. CRD CM
  3420. LDN 6*5 SET MESSAGE LENGTH
  3421. STD CM+1
  3422. LDC IBMF+BMLN ISSUE DAYFILE MESSAGE
  3423. RJM DFM
  3424. LDM IBMG+1 CHECK CONTINUATION BIT
  3425. LPN 4
  3426. ZJN OLBX IF COMPLETE, RETURN
  3427. LDN 14 SET NOT FIRST BLOCK FLAG
  3428. STM IBMG+1
  3429. UJN OLB1 ISSUE NEXT MESSAGE
  3430.  
  3431. OLB SUBR ENTRY/EXIT
  3432. LDC /COMSDFS/HS0100
  3433. STM IBMF+1
  3434. LDN 0 PRESET INPUT TABLE INDEX
  3435. STD T3
  3436. OLB1 LDN 0 PRESET *BML* MESSAGE INDEX
  3437. STD T4
  3438. OLB2 LDM TSCR,T3 SCR ERROR LOG TABLE
  3439. STM IBMH,T4 MOVE ONE BYTE FROM INPUT TABLE TO *BML*
  3440. AOD T3 INCREMENT INPUT TABLE INDEX
  3441. AOD T4 INCREMENT *BML* MESSAGE INDEX
  3442. LMN 4*5
  3443. ZJN OLB4 IF AT END OF *BML* MESSAGE BUFFER
  3444. LDD T3
  3445. ADC -NSCB (FIRST SCR ERROR LOG)
  3446. OLBA EQU *-1
  3447. * ADC -NSCB-NSCB (SECOND SCR ERROR LOG)
  3448. NJN OLB2 IF NOT AT END OF ERROR LOG
  3449. OLB3 LDN 0 CLEAR BYTES AT END OF ERROR LOG
  3450. STM IBMH,T4
  3451. AOD T4
  3452. LMN 4*5
  3453. NJN OLB3 IF MORE BYTES TO CLEAR
  3454. LDM IBMG+1 CHECK CONTINUATION BIT
  3455. LPN 4
  3456. NJN OLB5 IF PROCESSING SECOND SCR *BML* MESSAGE
  3457. LDD CH+1
  3458. ZJN OLB6 IF ONLY ONE SCR *BML* MESSAGE
  3459. LDC -NSCB-NSCB RESET FOR END OF SECOND SCR *BML* MESSAGE
  3460. STM OLBA
  3461. OLB4 LDM IBMG+1 SET CONTINUATION BIT
  3462. SCN 4
  3463. LMN 4
  3464. UJN OLB7 STORE STATUS
  3465.  
  3466. OLB5 LDM IBMF+2 CHANGE TO SECOND SCR CHANNEL
  3467. SCN 77
  3468. LMD CH+1
  3469. STM IBMF+2
  3470. OLB6 LDM IBMG+1 CLEAR CONTINUATION BIT
  3471. SCN 4
  3472. OLB7 STM IBMG+1
  3473. LJM OLB8 CONTINUE
  3474. PTP SPACE 4,15
  3475. ** PTP - PERFORM TIME PROCESSING.
  3476. *
  3477. * ENTRY (IR+2) = *1MB* FUNCTION BITS.
  3478. * (MF) = MAINFRAME TYPE.
  3479. *
  3480. * EXIT THE ESM SECDED ERROR LOG IS LOGGED TO THE
  3481. * BML FOR A *TIME PROCESSING* CALL, IF AN ESM
  3482. * MAINTENANCE PORT IS DEFINED.
  3483. *
  3484. * USES CM - CM+4, T3.
  3485. *
  3486. * CALLS CCO, CRC, DFM, PES, *2TH*.
  3487. *
  3488. * MACROS EXECUTE.
  3489.  
  3490.  
  3491. PTP SUBR ENTRY/EXIT
  3492. LDD IR+2 CHECK FOR *TIME PROCESSING* FUNCTION
  3493. LPN SPTP
  3494. ZJN PTPX IF NOT *TIME PROCESSING* FUNCTION
  3495. EXECUTE 2TH LOAD TOP-OF-HOUR ROUTINES
  3496. LDC CECL READ ERROR COUNTERS
  3497. CRD CM
  3498. CRM IBMG,ON
  3499. LDD CM
  3500. ADD CM+1
  3501. ADD CM+2
  3502. ADD CM+3
  3503. ADD CM+4
  3504. NJN PTP1 IF ERRORS TO REPORT
  3505. LJM PTP2 CLEAR COUNTS
  3506.  
  3507. PTP1 LDN ZERL CLEAR MESSAGE BUFFER
  3508. CRD CM
  3509. CRM IBMF,ON
  3510. SBN 1
  3511. CRM IBMH,ON
  3512. SBN 1
  3513. CRM IBMH+5,ON
  3514. LDC CECL CLEAR ERROR COUNTERS
  3515. CWD CM
  3516. LDD T3 IOU CORRECTED ERROR COUNT
  3517. STM IBMH+4 PLACE IN BML MESSAGE
  3518. LDC /COMSDFS/HM0410 SET MESSAGE ID
  3519. STM IBMF
  3520. LDC /COMSDFS/HS0101 SET MESSAGE SYMPTOM
  3521. STM IBMF+1
  3522. LDN 3*5 SET BYTE COUNT FOR BML MESSAGE
  3523. STD CM+1
  3524. LDC IBMF+BMLN ISSUE BML MESSAGE
  3525. RJM DFM
  3526. LDN ZERL CLEAR BML BUFFER
  3527. CRM IBMG,ON
  3528. PTP2 RJM /IHD/CRC CLEAR RELOAD COUNT IN CONTROLWARE TABLE
  3529. RJM /IHD/CCO CLEAR COUNTS IN EST/MST ENTRIES
  3530. LDD MF CHECK FOR CYBER 70
  3531. ZJN PTP3 IF PROCESSING INTERLOCK REGISTER
  3532. RJM /IHD/PES PROCESS ESM SECDED LOGGING
  3533. PTP3 LJM PTPX RETURN
  3534. RSC SPACE 4,15
  3535. ** RSC - READ S/C REGISTER(S).
  3536. *
  3537. * READS THE CONTENTS OF THE S/C REGISTER(S) FROM
  3538. * CHANNEL 16 AND/OR CHANNEL 36.
  3539. *
  3540. * ENTRY (MF) = MAINFRAME TYPE.
  3541. *
  3542. * EXIT TABLE *TSCR* CONTAINS HARDWARE COPY OF SCR.
  3543. *
  3544. * USES T1, T2, T3, T4.
  3545. *
  3546. * CALLS CHN, ODW.
  3547.  
  3548.  
  3549. RSC SUBR ENTRY/EXIT
  3550.  
  3551. * READ S/C REGISTER.
  3552.  
  3553. LDC TSCR SET BUFFER ADDRESS
  3554. * LDC TSCR+50 (POWER FAILURE)
  3555. RSCA EQU *-1
  3556. STD T1
  3557. STD T2
  3558. LDD CH+1 SECOND SCR CHANNEL
  3559. SHN 0-4 CONVERT 0 TO 0, 36 TO 1
  3560. STD T4
  3561. RSC1 LDN NSCB-1 SET S/C WORD TO READ
  3562. STD T3
  3563. RSC2 LDD T3 READ WORD (T3) OF S/C REGISTER
  3564. RJM ODW OUTPUT DESCRIPTOR WORD
  3565. STI T2 SAVE S/C CONTENTS
  3566. AOD T2 INCREMENT *TSCR* BUFFER ADDRESS
  3567. SOD T3 DECREMENT WORD COUNT FOR S/C
  3568. PJN RSC2 IF NOT FINISHED WITH S/C
  3569. SOD T4
  3570. NJN RSC3 IF FINISHED WITH BOTH S/C,S
  3571. LDN CHSC+20 CHANNEL 36
  3572. RJM CHN CHANGE TO CHANNEL 36 S/C
  3573. UJN RSC1 LOOP FOR CHANNEL 36 S/C
  3574.  
  3575. RSC3 LDD CH FIRST SCR CHANNEL
  3576. RJM CHN RESET CHANNEL FOR BITS 36 AND 37
  3577. LDM 20,T1 CLEAR FIRST SCR BYTE 0 INACTIVE BITS
  3578. LPC ABM0 CYBER 170 ACTIVE BIT MASK
  3579. * LPC ABM6 (CYBER 176)
  3580. * LPC ABM7 (CYBER 170 - 700 SERIES)
  3581. * LPC ABM8 (CYBER 170 - 865/875)
  3582. RSCB EQU *-1
  3583. STM 20,T1
  3584. LDM 17,T1 CLEAR FIRST SCR BYTE 1 INACTIVE BITS
  3585. RSCC SCN 0
  3586. * SCN INB6 (CYBER 176)
  3587. * SCN INB1 (CPU 1 OFF)
  3588. * SCN INB0 (CPU 0 OFF)
  3589. STM 17,T1
  3590. LDM 40,T1 CLEAR SECOND SCR BYTE 1 INACTIVE BITS
  3591. RSCD SCN 0
  3592. * SCN INB6 (CYBER 176)
  3593. * SCN INB1 (CPU 1 OFF)
  3594. * SCN INB0 (CPU 0 OFF)
  3595. STM 40,T1
  3596. LJM RSCX RETURN
  3597. PEF SPACE 4,15
  3598. ** PEF - CHECK FOR POWER OR ENVIRONMENTAL FAILURE.
  3599. *
  3600. * EXIT NORMAL IF POWER FAILURE OR ENVIRONMENTAL BITS NOT SET.
  3601. * NO EXIT TAKEN IF POWER FAILURE AND/OR ENVIRONMENTAL
  3602. * BITS REMAIN SET.
  3603. * EXIT THROUGH *UBS* OTHERWISE.
  3604. *
  3605. * USES T2.
  3606. *
  3607. * CALLS CKC, CKP, DFM, IEL, RSC, RSM, TPE, UBS.
  3608.  
  3609.  
  3610. PEF SUBR ENTRY/EXIT
  3611. RJM TPE TEST POWER FAILURE AND ENVIRONMENTAL BITS
  3612. ZJN PEFX IF NEITHER SET
  3613. LPN 1
  3614. ZJN PEF2 IF NO POWER FAILURE
  3615.  
  3616. * ENTRY HERE FROM *UBS* IF POWER FAILURE SET FOR FIRST TIME.
  3617.  
  3618. PEF1 RJM RSM REQUEST STEP
  3619. LDM UBSC,T1 SET MESSAGE
  3620. SBN 5
  3621. STM PEFA
  3622. SBN 1
  3623. STM UBSB
  3624. LDN TIML READ TIME
  3625. CRM *,ON
  3626. PEFA EQU *-1 (TIME MESSAGE ADDRESS)
  3627. LDC TSCR+50 SET BUFFER ADDRESS
  3628. STM RSCA
  3629. LDC LDNI+1 SET POWER FAILURE PREVIOUSLY PROCESSED
  3630. STM UBSD
  3631. RJM RSC READ S/C REGISTER(S)
  3632. LDC TSCR RESET BUFFER ADDRESS
  3633. STM RSCA
  3634. UJN PEF3 WAIT FOR CONDITION TO CHANGE
  3635.  
  3636. PEF2 RJM CKP CALL *1CK* IF NOT ALREADY CALLED
  3637. LDC MSGF-1+ERLN
  3638. RJM DFM
  3639. RJM CKC CHECK FOR *1CK* COMPLETE
  3640. RJM RSM REQUEST STEP MODE
  3641. PEF3 RJM UBS UPDATE BIT STATUS
  3642. UJN PEF3 WAIT UNTIL CLEAR
  3643. PSB SPACE 4,15
  3644. ** PSB - PROCESS SINGLE BIT SECDED ERRORS.
  3645. *
  3646. * ENTRY (IR+2) = FUNCTION BITS.
  3647. * (MF) = MAINFRAME TYPE.
  3648. *
  3649. * EXIT SECDED ERROR BITS ARE CLEARED IN THE SCR IF THEIR
  3650. * CORRESPONDING FUNCTION BITS IN IR+2 WERE SET.
  3651. *
  3652. * USES ER.
  3653. *
  3654. * CALLS ODW.
  3655.  
  3656.  
  3657. PSB SUBR ENTRY/EXIT
  3658. LDD IR+2 CHECK FOR CM SECDED FUNCTION BIT SET
  3659. LPN SPCS
  3660. ZJN PSB2 IF CM SECDED FUNCTION BIT NOT SET
  3661. AOD ER SET ERROR FLAG
  3662. LDC FCCL+SECD CLEAR SECDED ERROR
  3663. RJM ODW
  3664. LDD MF TEST FOR CYBER 176
  3665. SBN MF176A
  3666. MJN PSBX IF NOT CYBER 176
  3667. LDC FCSB+CCRT SET CM RANK II CLEAR
  3668. RJM ODW
  3669. LDC FCCL+CCRT CLEAR CM RANK II CLEAR
  3670. RJM ODW
  3671. PSB2 LDD IR+2 CHECK FOR LCME SECDED FUNCTION BIT SET
  3672. LPN SPLS
  3673. ZJN PSBX IF LCME SECDED FUNCTION BIT NOT SET
  3674. PSB3 AOD ER SET ERROR FLAG
  3675. LDC FCCL+LSCD CLEAR LCME SECDED ERROR
  3676. RJM ODW
  3677. LDC FCSB+LCRT SET LCME RANK II CLEAR
  3678. RJM ODW
  3679. LDC FCCL+LCRT CLEAR LCME RANK II CLEAR
  3680. RJM ODW
  3681. LJM PSBX EXIT
  3682. TEB SPACE 4,15
  3683. ** TEB - CLEAR TEST/ERROR BITS IN S/C.
  3684. *
  3685. * ENTRY (CH) = SCR CHANNEL NUMBER.
  3686. * (MF) = MAINFRAME TYPE.
  3687. * (CH+1) = 0, IF ONLY ONE SCR CHANNEL.
  3688. * (TSCR) = TABLE CONTAINING COPY OF THE SCR(S).
  3689. *
  3690. * EXIT ERROR BITS THAT ARE SET IN *TSCR* ARE CLEARED FROM
  3691. * THE SCR WITH THE EXCEPTION OF BIT 3. ON A CYBER 176
  3692. * BIT 11 IS ALSO NOT CLEARED. BIT 3 (AND BIT 11 ON A
  3693. * CYBER 176) IS PROCESSED IN ROUTINE *PSB*.
  3694. *
  3695. * USES ER, T4, T5.
  3696. *
  3697. * CALLS CHN, ODW, TRB.
  3698.  
  3699.  
  3700. TEB3 SOD T5
  3701. PJN TEB1 IF SECOND CHANNEL
  3702.  
  3703. TEB SUBR ENTRY/EXIT
  3704. LDD CH+1
  3705. SHN 0-4 CONVERT 0 TO 0, 36 TO 1
  3706. STD T5
  3707. LDD MF
  3708. SBN MF176A
  3709. PJN TEB1 IF CYBER 176
  3710. LDN PSNI ENABLE CLEARING OF BIT 11
  3711. STM TEBA
  3712. TEB1 LDM CH,T5 SET REGISTER CHANNEL
  3713. RJM CHN CHANGE CHANNEL
  3714. LDN NTEB SET MAXIMUM ERROR BIT
  3715. STD T4
  3716. TEB2 SOD T4 TEST NEXT BIT
  3717. MJN TEB3 IF END OF BITS
  3718. LMN SECD
  3719. ZJN TEB2 IF BIT 3
  3720. LMN LSCD&SECD
  3721. TEBA ZJN TEB2 IF BIT 11
  3722. * PSN (NON-CYBER 176 MAINFRAMES)
  3723. LMN LSCD RESTORE CONTENTS
  3724. RJM TRB
  3725. ZJN TEB2 IF NOT SET
  3726. AOD ER SET ERROR FLAG
  3727. LDC FCCL
  3728. LMD T4
  3729. RJM ODW CLEAR BIT
  3730. UJN TEB2 LOOP FOR NEXT BIT
  3731. CHN SPACE 4,10
  3732. ** CHN - CHANGE S/C REGISTER CHANNEL.
  3733. * MODIFIES CHANNEL INSTRUCTIONS IN SUBROUTINE *ODW*.
  3734. *
  3735. * ENTRY (A) = S/C REGISTER CHANNEL.
  3736.  
  3737.  
  3738. CHN SUBR ENTRY/EXIT
  3739. LMC OANI
  3740. STM ODWA
  3741. LMC IANI&OANI
  3742. STM ODWB
  3743. LPN 77
  3744. LMN 36
  3745. ZJN CHN1 IF CHANNEL 36
  3746. LCN NSCB
  3747. CHN1 ADC LDNI+NSCB*2
  3748. STM TRBA
  3749. UJN CHNX RETURN
  3750. TPE SPACE 4,20
  3751. ** TPE - TEST POWER FAILURE AND ENVIRONMENTAL BITS.
  3752. *
  3753. * EXIT IF POWER FAILURE BIT SET, (T1) = (A) = 1.
  3754. * IF ENVIRONMENTAL BIT SET, (T1) = (A) = 2.
  3755. * IF BOTH BITS SET, (T1) = (A) = 3.
  3756. * IF NEITHER BIT SET, (T1) = (A) = 0.
  3757. *
  3758. * USES T1, T5.
  3759. *
  3760. * CALLS ODW.
  3761. *
  3762. * MACROS DELAY.
  3763. *
  3764. * NOTE - A *TEST* FUNCTION IS USED FOR THE FIRST CALL AND A
  3765. * *TEST/CLEAR* FUNCTION IS USED FOR ALL FURTHER CALLS.
  3766. * THIS PREVENTS A TRANSIENT SETTING OF BITS 36,37 FROM
  3767. * CAUSING A SYSTEM CHECKPOINT IN ROUTINE *PEF* BUT CLEARING
  3768. * BEFORE *1MB* CAN BE RECALLED TO LOG THE ERROR MESSAGES.
  3769.  
  3770.  
  3771. TPE SUBR ENTRY/EXIT
  3772. LDC 600 PRESET DELAY LOOP COUNT
  3773. STM TPEF
  3774. TPEA UJN TPE1 TEST BIT 36
  3775. * PSN IF CYBER 70
  3776. LDC FCTB TEST BIT 0 OF INTERLOCK REGISTER
  3777. * LDC FCTC (SUBSEQUENT CALLS)
  3778. TPEB EQU *-1
  3779. RJM ODW OUTPUT DESCRIPTOR WORD
  3780. STD T1 SET RETURN CODE
  3781. LDC FCTC CHANGE TO TEST/CLEAR FUNCTION
  3782. STM TPEB
  3783. TPEC UJN TPE3 RESTORE EXIT VALUE
  3784. * PSN IF SIMULATOR REQUESTED
  3785.  
  3786. TPE1 LDC FCTB+MAPF TEST MAINS POWER FAILURE
  3787. * LDC FCTC+MAPF (SUBSEQUENT CALLS)
  3788. TPED EQU *-1
  3789. RJM ODW OUTPUT DESCRIPTOR WORD
  3790. STD T1 SET RETURN CODE
  3791. LDC FCTB+SHIM TEST SHUTDOWN IMMINENT
  3792. * LDC FCTC+SHIM (SUBSEQUENT CALLS)
  3793. TPEE EQU *-1
  3794. RJM ODW OUTPUT DESCRIPTOR WORD
  3795. SHN 1 SET RETURN CODE
  3796. RAD T1
  3797. TPE1.1 UJN TPE4 CHANGE FUNCTION CODES
  3798. * ZJN TPEX IF NO ERROR DETECTED
  3799. TPEG EQU *-1
  3800. LPN 1
  3801. NJN TPE3 IF MAINS POWER FAILURE
  3802. LDN 77 INNER LOOP DELAY COUNT
  3803. STD T5
  3804. TPE2 DELAY
  3805. SOD T5
  3806. NJN TPE2 IF NOT END OF INNER DELAY LOOP
  3807. SOM TPEF
  3808. NJN TPE1 IF NOT END OF DELAY PERIOD
  3809. TPE3 LDD T1 GET RETURN CODE
  3810. LJM TPEX RETURN
  3811.  
  3812. TPE4 LDC FCTC+MAPF CHANGE TO TEST/CLEAR FUNCTION
  3813. STM TPED
  3814. ADN SHIM-MAPF
  3815. STM TPEE
  3816. ISTORE TPEG,(ZJN TPEX)
  3817. LDD T1
  3818. UJN TPE1.1 ENTER LOOP
  3819.  
  3820.  
  3821. TPEF CON 0 DELAY LOOP COUNT
  3822. TRB SPACE 4,10
  3823. ** TRB - TEST S/C REGISTER BIT.
  3824. *
  3825. * ENTRY (A) BIT TO BE TESTED.
  3826. *
  3827. * EXIT (A) = 0 BIT CLEAR.
  3828. * (A) = 1 BIT SET.
  3829. *
  3830. * USES T0, T1.
  3831.  
  3832.  
  3833. TRB SUBR ENTRY/EXIT
  3834. STD T0
  3835. TRBA LDN NSCB SET WORD INDEX
  3836. * LDN NSCB*2 (CHANNEL 36)
  3837. STD T1
  3838. TRB1 SOD T1
  3839. LCN 14
  3840. RAD T0
  3841. PJN TRB1 IF WORD NOT FOUND
  3842. ADN 14
  3843. LMC SHNI+77
  3844. STM TRBB
  3845. LDM TSCR,T1
  3846. TRBB SHN -0
  3847. LPN 1
  3848. UJN TRBX RETURN
  3849. UBS SPACE 4,25
  3850. ** UBS - UPDATE BIT STATUS.
  3851. * CHECKS S/C REGISTER FOR STATUS OF POWER FAILURE (BIT 36) AND
  3852. * SHUTDOWN IMMINENT (BIT 37), UPDATES CONTROL POINT MESSAGE IF
  3853. * NECESSARY, EXITS TO POWER FAILURE ROUTINE IF BIT 36 SET FOR
  3854. * THE FIRST TIME, AND TERMINATES IF BOTH BITS CLEAR
  3855. * AFTER UNSTEP IS ENTERED BY OPERATOR.
  3856. *
  3857. * ENTRY (T2) = 77 IF FIRST ENTRY.
  3858. * = PREVIOUS EXIT CONDITION OF *UBS*.
  3859. * (T1) = OUTPUT OF *TPE*.
  3860. *
  3861. * EXIT (T2) = CONDITION CODE.
  3862. * 1, IF POWER FAILURE (BIT 36) SET.
  3863. * 2, IF SHUTDOWN IMMINENT (BIT 37) SET.
  3864. * 3, IF BOTH BITS SET.
  3865. * IF BOTH BITS CLEAR, WAITS FOR OPERATOR *UNSTEP*
  3866. * COMMAND, THEN EXITS TO *DPP*.
  3867. *
  3868. * USES SC - SC+4.
  3869. *
  3870. * CALLS DFM, DPP, IEL, RSC, RSM, TPE.
  3871.  
  3872.  
  3873. UBS9 LDD T2
  3874. NJN UBS10 IF PREVIOUS CONDITION NOT ALL CLEAR
  3875. RJM RSM RESTORE STEP MODE
  3876. UBS10 LDD T1 SET CONDITION HISTORY
  3877. STD T2
  3878.  
  3879. UBS SUBR ENTRY/EXIT
  3880. UBS1 RJM TPE TEST POWER FAILURE AND ENVIRONMENTAL BITS
  3881. LMD T2
  3882. NJN UBS2 IF CONDITION CHANGED
  3883. LDD T1
  3884. NJN UBSX IF NOT BOTH CLEAR
  3885. LJM UBS5 CHECK STEP MODE
  3886.  
  3887. UBS2 LDM UBSC,T1 GET MESSAGE ADDRESS
  3888. STM UBSA
  3889. LDD CP DISPLAY STSTEM CONTROL POINT MESSAGE
  3890. ADN MS2W
  3891. CWM *,TR
  3892. UBSA EQU *-1 (MESSAGE ADDRESS)
  3893. LDD T1
  3894. ZJN UBS4 IF ALL CLEAR
  3895. LPN 1
  3896. ZJN UBS9 IF NOT POWER FAILURE
  3897. UBSD LDN 0
  3898. * LDN 1 (POWER FAILURE PREVIOUSLY PROCESSED)
  3899. NJN UBS9 IF POWER FAILURE PREVIOUSLY PROCESSED
  3900. LJM PEF1 PROCESS POWER FAILURE/ENVIRONMENTAL BITS
  3901.  
  3902. UBS4 LDN TIML READ TIME OF DAY
  3903. CRM TIMA,ON
  3904. LDD SC CLEAR STEP REQUEST
  3905. LPC 6777
  3906. STD SC
  3907. LDC SCRL WRITE SCRL
  3908. CWD SC
  3909. RJM RSC READ S/C REGISTER(S)
  3910. UBS5 LDC SCRL CHECK STEP MODE
  3911. CRD SC
  3912. LDD SC
  3913. SHN 21-10
  3914. PJN UBS6 IF STEP NOT SET
  3915. LDN 0 SET CONDITION HISTORY
  3916. STD T2
  3917. LJM UBS1 TEST POWER/ENVIRONMENTAL BITS
  3918.  
  3919. UBS6 LDC 0 LOG PRELIMINARY MESSAGE
  3920. UBSB EQU *-1 (MESSAGE ADDRESS)
  3921. NJN UBS8 IF TWO MESSAGES TO BE LOGGED
  3922. UBS7 LDN 0 CLEAR TWO MESSAGE INDICATION
  3923. STM UBSB
  3924. LDC MSGD-6
  3925. UBS8 ADC ERLN
  3926. RJM DFM
  3927. LDM UBSB
  3928. NJN UBS7 IF ALL MESSAGES NOT LOGGED
  3929. STD CM+2 CLEAR INPUT FILE SCHEDULING FLAG
  3930. MONITOR RSJM REQUEST SCHEDULER
  3931. RJM PTP PERFORM TIME PROCESSING
  3932. LJM DPP DROP PP
  3933.  
  3934.  
  3935. * MESSAGE ADDRESS TABLE
  3936.  
  3937. UBSC CON MSGD
  3938. CON MSGE
  3939. CON MSGF
  3940. CON MSGG
  3941.  
  3942.  
  3943. * ERROR LOG MESSAGES.
  3944.  
  3945. MIDA CON 2RSR MESSAGE ID
  3946. TIMA VFD 60/0
  3947. MSGD DATA C* POWER/ENVIRONMENT NORMAL.*
  3948. MIDB CON 2RSR MESSAGE ID
  3949. VFD 60/0 TIME (READ BY ROUTINE *PEF*)
  3950. MSGE DATA C* POWER FAILURE.*
  3951. MIDC CON 2RSR MESSAGE ID
  3952. MSGF DATA C* SHUTDOWN IMMINENT.*
  3953. MIDD CON 2RSR MESSAGE ID
  3954. VFD 60/0 TIME (READ BY ROUTINE *PEF*)
  3955. MSGG DATA C* POWER DOWN.*
  3956. SPACE 4,10
  3957. ** TSCR - TABLE FOR THE CONTENTS OF THE S/C REGISTERS.
  3958. *
  3959. * THIS TABLE CONTAINS THE CONTENTS OF THE S/C REGISTER(S).
  3960. * THE CHANNEL 16 REGISTER, WORDS 16 - 0, FIRST AND THE
  3961. * CHANNEL 36 REGISTER, WORDS 16 - 0, NEXT.
  3962.  
  3963.  
  3964. TSCR EQU * S/C REGISTER TABLE
  3965. TSCRL EQU TSCR+4*NSCB LWA+1 OF S/C REGISTER TABLES
  3966. PSC SPACE 4,10
  3967. ** PCS - PRESET FOR 1SC.
  3968. *
  3969. * USES CH, CH+1, ER, NP, CM - CM+4.
  3970. *
  3971. * CALLS CFP, PRS.
  3972.  
  3973.  
  3974. * CYBER 70 INITIALIZATION.
  3975.  
  3976. PSC7 SOD CH CHANGE TO INTERLOCK REGISTER
  3977. SOM ODWA
  3978. SOM ODWB
  3979. LDN PSNI ENABLE CYBER 70 POWER FAILURE CHECKING
  3980. STM TPEA
  3981. LDN SSTL CHECK FOR SCR SIMULATION
  3982. CRD CM
  3983. LDD CM+3
  3984. SHN 21-3
  3985. MJN PSC8 IF NOT SIMULATING SCR
  3986. LDN PSNI ENABLE SIMULATED ENVIRONMENT CHECKING
  3987. STM TPEC
  3988. UJN PSCX RETURN
  3989.  
  3990. PSC8 LDC 2RIR CHANGE MESSAGE IDENTIFICATION
  3991. STM MIDA
  3992. STM MIDB
  3993. STM MIDC
  3994. STM MIDD
  3995. LDC UJNI+2 DISABLE FATAL ERROR CHECKING
  3996. STM SEPA
  3997.  
  3998. PSC SUBR ENTRY/EXIT
  3999. LDC 2RSC * 1SC - CALL ERROR.*
  4000. STM PRSA+1
  4001. RJM PRS COMMON PRESET
  4002. LDN CHSC SET SCR CHANNELS
  4003. STD CH
  4004. LDN 0
  4005. STD CH+1
  4006. STD ER CLEAR SCR ERROR FLAG
  4007. STD NP INITIALIZE PHYSICAL PP COUNT
  4008. LDN EABLL ELEMENT ATTRIBUTE BLOCK LENGTH
  4009. STD T1
  4010. LDK EABL READ MAINFRAME ATTRIBUTE BLOCK
  4011. CRM EABB,T1
  4012. LDN 2 READ I/O SYSTEM ENTRY
  4013. STD T1
  4014. LDM EABB+IOEI*5+1 GET ADDRESS OF VARIABLE IOU ENTRY
  4015. SCN 77
  4016. SHN 6
  4017. ADM EABB+IOEI*5+0
  4018. SHN 6
  4019. CRM VMAB,T1
  4020. LDN 0
  4021. STD T1
  4022. PSC0.1 LDN 12 INITIALIZE INDEX FOR BYTE
  4023. STD T3
  4024. LDM VMAB+1*5,T1 TEST BYTE FOR PP COUNT
  4025. STD T4
  4026. PSC0.2 LDD T4
  4027. SHN 21-0
  4028. STD T4
  4029. MJN PSC0.3 IF PHYSICAL PP NOT PRESENT
  4030. AOD NP INCREMENT PHYSICAL PP COUNT
  4031. PSC0.3 SOD T3
  4032. NJN PSC0.2 IF MORE PP BITS TO TEST
  4033. AOD T1
  4034. LMN 1
  4035. ZJN PSC0.1 IF NEXT BYTE TO PROCESS
  4036. LDM TFEM,MF SET SCR FATAL ERROR MASK
  4037. STM CFEA
  4038. LDM TABM,MF SET SCR ACTIVE BIT MASK
  4039. STM RSCB
  4040. LDD MF
  4041. NJN PSC1 IF NOT CYBER 70
  4042. LJM PSC7 CONTINUE CYBER 70 PRESET
  4043.  
  4044. * CYBER 170, 700, 865/875 INITIALIZATION.
  4045.  
  4046. PSC1 LDD MF
  4047. SBN MF176A
  4048. MJN PSC2 IF NOT CYBER 176
  4049. RJM CFP CHECK FOR *FLPP* ERROR
  4050. LDN INB6 CLEAR INACTIVE BITS IN SCR BYTE 2
  4051. UJN PSC4 CHECK NUMBER OF S/C REGISTERS
  4052.  
  4053. PSC2 LDD MI+1
  4054. LPN 3
  4055. ZJN PSC5 IF DUAL CPU PRESENT
  4056. LPN 1
  4057. ZJN PSC3 IF CPU 0 ON, CPU 1 OFF OR UNDEFINED
  4058. LDN INB0&INB1 CLEAR INACTIVE BIT IN SCR FOR CPU 0
  4059. PSC3 LMN INB1 CLEAR INACTIVE BIT IN SCR FOR CPU 1
  4060. PSC4 RAM RSCD
  4061. STM RSCC
  4062. PSC5 LDD NP CHECK NUMBER OF S/C REGISTERS
  4063. SBN 13
  4064. MJN PSC6 IF ONLY 1 S/C REGISTER
  4065. LDN 36 ENABLE SECOND REGISTER CHECKING
  4066. STD CH+1
  4067. PSC6 LJM PSCX RETURN
  4068. SPACE 4,10
  4069. ** COMMON PRESET.
  4070.  
  4071.  
  4072. PRESET
  4073. PRESET HERE
  4074.  
  4075. PRS13 LJM PRSX EXIT PRESET
  4076. CFP SPACE 4,10
  4077. ** CFP - CHECK FOR *FLPP* ERROR.
  4078. *
  4079. * EXIT SCANNER POSITIONED TO *FLPP* WITH ERROR.
  4080. *
  4081. * USES T1 - T3.
  4082.  
  4083.  
  4084. CFP2 LDD T3 CHECK NEXT BIT
  4085. SHN -1
  4086. CFP3 STD T3
  4087. LPN 1
  4088. ZJN CFP4 IF BIT TO BE CLEARED
  4089. LDC FCSB&FCCL
  4090. CFP4 LMD T2
  4091. OAN CHSC+40
  4092. IAN CHSC+40
  4093. AOD T2 ADVANCE BIT NUMBER
  4094. LMC FCCL+SCSL+4
  4095. NJN CFP2 IF NOT END OF BITS
  4096. LDN FCRD+FLPW READ *FLPP* STATUS
  4097. OAN CHSC+40
  4098. IAN CHSC+40
  4099. LPN 37
  4100. NJN CFPX IF ERROR DETECTED
  4101. AOD T1 ADVANCE *FLPP* NUMBER
  4102. LMN 20
  4103. NJN CFP1 IF NOT END OF *FLPP-S*
  4104.  
  4105. CFP SUBR ENTRY/EXIT
  4106. LDN 1 SET STARTING *FLPP* NUMBER
  4107. STD T1
  4108. CFP1 LDC FCCL+SCSL PRESET FUNCTION AND BIT NUMBER
  4109. STD T2
  4110. LDD T1 SELECT *FLPP*
  4111. UJN CFP3 ENTER LOOP
  4112. SPACE 4,10
  4113. TABM INDEX TABLE OF SCR ACTIVE BIT MASKS
  4114. INDEX MF70,ABM0 CYBER 70
  4115. INDEX MF170,ABM0 CYBER 170
  4116. INDEX MF700,ABM7 CYBER 170 - 700 SERIES
  4117. INDEX MF865,ABM8 CYBER 170 - 865
  4118. INDEX MF875,ABM8 CYBER 170 - 875
  4119. INDEX MF176A,ABM6 CYBER 176 LEVEL A
  4120. INDEX MF176B,ABM6 CYBER 176 LEVEL B
  4121. INDEX MFMAX
  4122. SPACE 4,10
  4123. TFEM INDEX TABLE OF SCR FATAL ERROR MASKS
  4124. INDEX MF70,FEM0 CYBER 70
  4125. INDEX MF170,FEM0 CYBER 170
  4126. INDEX MF700,FEM7 CYBER 170 - 700 SERIES
  4127. INDEX MF865,FEM8 CYBER 170 - 865
  4128. INDEX MF875,FEM8 CYBER 170 - 875
  4129. INDEX MF176A,FEM6 CYBER 176 LEVEL A
  4130. INDEX MF176B,FEM6 CYBER 176 LEVEL B
  4131. INDEX MFMAX
  4132.  
  4133.  
  4134. EABB BSS EABLL*5 ELEMENT ATTRIBUTE BLOCK
  4135. VMAB BSS 5*2 BUFFER FOR I/O SYSTEM ENTRY
  4136. SPACE 4,10
  4137. OVERFLOW PPFW,EPFW
  4138. TTL 1MB/1MP - PROCESS SCR CHANNEL ERRORS.
  4139. TITLE
  4140. IDENT 1MP,PPFW
  4141. QUAL CCE
  4142. *COMMENT 1MB - CHANNEL ERROR PROCESSOR.
  4143. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  4144. SPACE 4,10
  4145. *** 1MP - PROCESS SCR CHANNEL ERRORS.
  4146. *
  4147. * P. D. HAAS. 82/11/30.
  4148. SPACE 4,10
  4149. *** *1MP* IS CALLED BY *MTR* TO PERFORM PRELIMINARY
  4150. * CHECKS ON THE SCR. IT RESIDES IN THE RPL TO ENSURE A
  4151. * SUCCESSFUL LOAD IN CASE OF CHANNEL ERRORS ON A SYSTEM
  4152. * DEVICE, AND AS SUCH SHOULD BE KEPT AS SMALL AS POSSIBLE.
  4153. *
  4154. * *1MP* CHECKS THE SCR FOR CHANNEL ERRORS, AND IF
  4155. * NONE ARE FOUND OR IF NO SCR EXISTS, CALLS *1MB*. IF
  4156. * CHANNEL ERRORS ARE INDICATED, *1MP* SCANS THE EST TO
  4157. * DETERMINE IF SAID CHANNEL IS ASSOCIATED WITH MASS STORAGE
  4158. * EQUIPMENT. IF SO, *1DS* WILL BE CALLED TO REMOVE THE CHANNEL
  4159. * FROM SYSTEM USE.
  4160. *
  4161. * UPON COMPLETION, *1MP* LOADS *1MB*. CHANNEL
  4162. * ERRORS ASSOCIATED WITH NON MASS STORAGE EQUIPMENT ARE
  4163. * IGNORED.
  4164. SPACE 4,10
  4165. ** COMMON DECKS.
  4166.  
  4167.  
  4168. *CALL COMS1DS
  4169. SPACE 4,10
  4170. **** DIRECT CELL USAGE.
  4171.  
  4172.  
  4173. CH EQU IR+3 CHANNEL NUMBER
  4174. ****
  4175. TITLE MAIN PROGRAM.
  4176. ORG PPFW
  4177.  
  4178.  
  4179. CCE RJM PRS PRESET PROGRAM
  4180. IJM CCE2,CHSC IF NO SCR
  4181. LCN 0 CHANNEL 00 IS LEAST SIGNIFICANT BIT
  4182. STD CH
  4183. LDN FCRD+CPEW READ CHANNEL STATUS
  4184. OAN CHSC
  4185. IAN CHSC
  4186. ZJN CCE1 IF NO PARITY ERRORS
  4187. RJM CMC CHECK MASS STORAGE CHANNELS
  4188. CCE1 IJM CCE2,CHSC+20 IF NO UPPER CHANNEL BANK
  4189. LDN 20-1 CHANNEL 20 IS LEAST SIGNIFICANT BIT
  4190. STD CH
  4191. LDN FCRD+CPEW READ CHANNEL STATUS
  4192. OAN CHSC+20
  4193. IAN CHSC+20
  4194. ZJN CCE2 IF NO PARITY ERRORS
  4195. RJM CMC CHECK MASS STORAGE CHANNELS
  4196. CCE2 LDD IA STORE INPUT REGISTER
  4197. CWD IR
  4198. LJM PPR LOAD AND EXECUTE
  4199. TITLE SUBROUTINES.
  4200. CMC SPACE 4,15
  4201. ** CMC - CHECK MASS STORAGE CHANNEL.
  4202. *
  4203. * ENTRY (A) = CHANNEL STATUS WORD (BYTE) FROM SCR.
  4204. * (CH) = INITIAL CHANNEL VALUE FOR BANK 0 OR 1.
  4205. * (EM) = LAST MASS STORAGE EST ORDINAL + 1.
  4206. *
  4207. * USES T1, T4, T5, CM - CM+4, CN - CN+4.
  4208. *
  4209. * MACROS EXECUTE, MONITOR, SFA.
  4210.  
  4211.  
  4212. CMC2 SFA EST,T5 READ EST ENTRY
  4213. ADK EQDE
  4214. CRD CN
  4215. LDD CN
  4216. SHN 21-13
  4217. PJN CMC6 IF NOT MASS STORAGE
  4218. LDD CN+1
  4219. SHN 21-13
  4220. PJN CMC3 IF PRIMARY CHANNEL ACCESS IS DISABLED
  4221. SHN 13-21
  4222. LMD CH
  4223. LPN 37
  4224. ZJN CMC4 IF CHANNEL MATCH
  4225. CMC3 LDD CN+2
  4226. SHN 21-13
  4227. PJN CMC6 IF SECONDARY CHANNEL NOT PRESENT/DISABLED
  4228. SHN 13-21
  4229. LMD CH
  4230. NJN CMC6 IF NOT A MATCH
  4231.  
  4232. * CALL *1DS* TO GLOBALLY DOWN THE CHANNEL.
  4233.  
  4234. CMC4 LDD MA PLACE *1DS* CALL IN MESSAGE BUFFER
  4235. CWM CMCA,ON
  4236. LDN 0 INITIALIZE RETRY COUNT
  4237. STD T1
  4238. CMC5 STD CM+1
  4239. EXECUTE 1DS,=
  4240. MONITOR RPPM CALL *1DS*
  4241. LDD CM+1
  4242. NJN CMC7 IF PP ASSIGNED
  4243. AOD T1 INCREMENT RETRY COUNT
  4244. SHN -3
  4245. ZJN CMC5 IF RETRY LIMIT NOT REACHED
  4246. UJN CMCX RETURN
  4247.  
  4248. CMC6 AOD T5 ADVANCE EST ORDINAL
  4249. LMD EM
  4250. NJP CMC2 IF MORE DEVICES TO PROCESS
  4251. CMC7 LDD T4
  4252. NJN CMC1 IF MORE CHANNELS WITH ERROR
  4253.  
  4254. CMC SUBR ENTRY/EXIT
  4255. STD T4
  4256. CMC1 AOD CH ADJUST CHANNEL NUMBER
  4257. STM CMCA+3 STORE CHANNEL NUMBER IN *1DS* CALL
  4258. LDD T4
  4259. SHN 21-0 CHECK CHANNEL FLAG
  4260. STD T4
  4261. PJN CMC1 IF NOT CHANNEL WITH ERROR
  4262. LDN NOPE INITIALIZE EST ORDINAL FOR SEARCH
  4263. STD T5
  4264. UJP CMC6 BEGIN EST SCAN
  4265.  
  4266.  
  4267. CMCA VFD 18/3R1DS,6/,6/0,6/DWNF,12/0,12/0
  4268. TITLE PRESET PROGRAM.
  4269. PRS SPACE 4,10
  4270. ** PRS - PRESET PROGRAM.
  4271. *
  4272. * EXIT (EM) = LAST MASS STORAGE EST ORDINAL + 1.
  4273. *
  4274. * USES EM, CM - CM+4, IR - IR+1, MI - MI+4.
  4275. *
  4276. * MACROS MONITOR.
  4277.  
  4278.  
  4279. PRS3 LDK ESTP
  4280. CRD CM
  4281. LDD CM+3 SET LAST MASS STORAGE EST ORDINAL + 1
  4282. STD EM
  4283.  
  4284. PRS SUBR ENTRY/EXIT
  4285. LDN NCPL
  4286. CRD CM
  4287. ADN MABL-NCPL
  4288. CRD MI
  4289. AOD CM+1 CHECK CONTROL POINT
  4290. SHN 7
  4291. LMD CP
  4292. ZJN PRS1 IF CALLED BY SYSTEM
  4293. MONITOR ABTM ABORT JOB
  4294. LJM PPR EXIT TO PP RESIDENT
  4295.  
  4296. PRS1 LDD MI+1
  4297. SHN -6
  4298. LPN 41
  4299. LMN 1
  4300. ZJN PRS2 IF LOWER 800 SERIES MACHINE
  4301. LDN 1RS-1RM
  4302. RAD IR
  4303. LDN 1RC-1RB
  4304. PRS2 SBN 1RP-1RB
  4305. SHN 6
  4306. RAD IR+1
  4307. UJP PRS3 CONTINUE
  4308. SPACE 4,10
  4309. OVERFLOW PPFW,EPFW,CMR
  4310. TTL 1MB/2TH - PROCESS COMMON TOP-OF-HOUR FUNCTIONS.
  4311. TITLE
  4312. QUAL IHD
  4313. IDENT 2TH,IHDX
  4314. *COMMENT 1MB - TOP-OF-HOUR PROCESSOR.
  4315. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  4316. SPACE 4,10
  4317. *** 2TH - TOP-OF-HOUR PROCESSOR.
  4318. *
  4319. * J. M. MAREK 87/11/24.
  4320. SPACE 4,10
  4321. *** *2TH* IS CALLED BY *1MB* AND *1SC* TO PERFORM
  4322. * THE FOLLOWING TOP-OF-HOUR TASKS -
  4323. *
  4324. * - ISSUE HOUR AND DAY MESSAGES TO THE DAYFILES.
  4325. * - CLEAR THE RELOAD COUNT IN THE CONTROLWARE TABLE.
  4326. * - CLEAR COUNTS IN THE EST AND MST.
  4327. * - LOG ESM AND STORNET SECDED AND STATUS INFORMATION.
  4328. SPACE 4,10
  4329. * ASSEMBLY CONSTANTS.
  4330.  
  4331.  
  4332. FRDL EQU 1010B FUNCTION - READ ESM SECDED LOG
  4333. FRST EQU 1011B FUNCTION - RESET ESM SECDED LOG
  4334. FRSP EQU 1040 FUNCTION - READ SIDE DOOR PORT STATUS
  4335. FCSP EQU 1203 FUNCTION - CLEAR SIDE DOOR PORT STATUS
  4336. DCSP EQU 1000 DATA - CLEAR SIDE DOOR PORT STATUS
  4337. NESB EQU 83D NUMBER OF ESM SECDED LOG BYTES
  4338. OVLO MAX /1MB/BCMR+5,/1SC/TSCRL+5
  4339.  
  4340. ORG OVLO
  4341. IHD SPACE 4,10
  4342. ** IHD - ISSUE HOUR AND DATE TO DAYFILES.
  4343. *
  4344. * EXIT HOUR AND DATE MESSAGE ISSUED TO DAYFILES.
  4345. *
  4346. * USES CM+1.
  4347. *
  4348. * CALLS DFM.
  4349.  
  4350.  
  4351. IHD SUBR ENTRY/EXIT
  4352. LDN DTEL SET DATE IN DAYFILE MESSAGES
  4353. CRM IHDA+7,ON
  4354. SBN 1
  4355. CRM IHDB+3,ON
  4356. LDC IHDA ISSUE MESSAGE TO SYSTEM DAYFILE
  4357. RJM DFM
  4358. LDC ERLN+IHDA ISSUE MESSAGE TO ERROR LOG
  4359. RJM DFM
  4360. LDC ACFN+IHDB ISSUE MESSAGE TO ACCOUNT FILE
  4361. RJM DFM
  4362. UJN IHDX RETURN
  4363.  
  4364.  
  4365. IHDA DATA C*SYSTEM DATE: NNNNNNNNNN*
  4366. IHDB DATA C*SIDT, NNNNNNNNNN*
  4367. CCO SPACE 4,10
  4368. ** CCO - CLEAR COUNTS IN EST/MST ENTRIES.
  4369. *
  4370. * EXIT RELOAD COUNTS IN CONTROL MODULE EST ENTRIES CLEARED
  4371. * IF NOT EQUAL TO RELOAD LIMIT.
  4372. * RECOVERED AND UNRECOVERED ERROR COUNTS CLEARED IN EACH
  4373. * MST IN WHICH THE *1SJ* PROCESSED BIT IS NOT SET.
  4374. *
  4375. * USES CM - CM+4, CN - CN+4, T0 - T7.
  4376. *
  4377. * MACROS MONITOR, SFA.
  4378.  
  4379.  
  4380. CCO SUBR ENTRY/EXIT
  4381. LDN ESTP INITIALIZE FOR EST SEARCH
  4382. CRD T0
  4383. CCO1 SOD T0+2 DECREMENT EST ORDINAL
  4384. STD CM+1
  4385. ZJN CCOX IF END OF EST
  4386.  
  4387. * CLEAR CONTROL MODULE RELOAD COUNT IN EST.
  4388.  
  4389. SFA EST READ EST ENTRY
  4390. ADK EQDE
  4391. CRD T3
  4392. ADK EQAE-EQDE
  4393. CRD CN
  4394. LDD T3+3
  4395. LMC 2RCM
  4396. NJN CCO2 IF NOT *CM* DEVICE
  4397. STD CM+4
  4398. LDD CN+2
  4399. SHN -6
  4400. LPN 7
  4401. ZJN CCO2 IF NO RELOAD COUNT
  4402. SBN /MSP/CRTH
  4403. ZJN CCO2 IF RELOAD LIMIT
  4404. LDN SB2S
  4405. STD CM+2
  4406. LDC 7077
  4407. STD CM+3
  4408. MONITOR SEQM CLEAR RELOAD COUNT
  4409.  
  4410. * CLEAR THRESHOLD COUNTS IN MST.
  4411.  
  4412. CCO2 LDD T3
  4413. SHN 21-13
  4414. PJN CCO1 IF NOT MASS STORAGE DEVICE
  4415. LDD T3+4 SET MST ADDRESS
  4416. SHN 3
  4417. STD CM+4
  4418. SHN -14
  4419. STD CM+3
  4420. LDN 2 SET NUMBER OF REQUESTS
  4421. STD CM+1
  4422. LDD MA
  4423. CWM CCOA,CM+1
  4424. MONITOR UTEM
  4425. LDD T3+4 SET MST ADDRESS
  4426. SHN 3
  4427. STD CM+4
  4428. SHN -14
  4429. STD CM+3
  4430. LDN 2 SET NUMBER OF REQUESTS
  4431. STD CM+1
  4432. LDD MA
  4433. CWM CCOB,CM+1
  4434. MONITOR UTEM
  4435. LJM CCO1 PROCESS NEXT EST ENTRY
  4436.  
  4437.  
  4438. CCOA VFD 1/1,5/CTLL,6/1,6/11D,42/0 VERIFY *1SJ* BIT NOT SET
  4439. VFD 1/0,5/CTLL,6/11D,6/0,42/0 CLEAR ERROR COUNT
  4440. CCOB VFD 1/1,5/CTLL,6/1,6/23D,42/0 VERIFY *1SJ* BIT NOT SET
  4441. VFD 1/0,5/CTLL,6/11D,6/12D,42/0 CLEAR ERROR COUNT
  4442. CRC SPACE 4,10
  4443. ** CRC - CLEAR RELOAD COUNTS IN CONTROLWARE TABLE.
  4444. *
  4445. * USES CM - CM+4, CN - CN+4, T2 - T7.
  4446. *
  4447. * MACROS MONITOR.
  4448.  
  4449.  
  4450. CRC SUBR ENTRY/EXIT
  4451. LDN ZERL
  4452. CRD CN
  4453. ADN CHTP-ZERL FETCH CHANNEL TABLES POINTER
  4454. CRD T3+1
  4455. LDN 1 PARAMETER COUNT FOR *UTEM* REQUEST
  4456. STD T4
  4457. LDN CTALL SET CONTROLWARE TABLE LENGTH
  4458. STD T3
  4459. SHN 1 CONTROLWARE TABLE OFFSET
  4460. RAD T7
  4461. SHN -14 SET CONTROLWARE TABLE ADDRESS
  4462. RAD T6
  4463. SHN 14
  4464. LMD T7 READ CONTROLWARE TABLE
  4465. CRM IBMH,T3
  4466. LDN 0 INITIAL CHANNEL VALUE
  4467. STD T5
  4468. LDC IBMH-1 PRESET BYTE ADDRESS FOR TABLE SCAN
  4469. STD T2
  4470. LDN 3 RELOAD COUNT FIELD WIDTH
  4471. STD CN
  4472. CRC1 AOD T2 ADVANCE CONTROLWARE TABLE SEARCH
  4473. LDI T2
  4474. SHN -6 POSITION RELOAD COUNT FIELD
  4475. LPN 7
  4476. ZJN CRC2 IF NO COUNT
  4477. LMN /MSP/CRTH
  4478. ZJN CRC2 IF RELOAD LIMIT
  4479. LDM CRCA,T5
  4480. STD CN+1 DEFINE RELOAD COUNT FIELD IN WORD
  4481. LDD MA
  4482. CWD T3 *UTEM* REQUEST TO (CM - CM+4)
  4483. CRD CM
  4484. CWD CN STORE PARAMETER WORD
  4485. MONITOR UTEM
  4486. CRC2 AOD T5 ADVANCE CHANNEL BYTE INDEX
  4487. LMN 5
  4488. NJN CRC1 IF NOT 5 CHANNELS CHECKED
  4489. STD T5
  4490. AOD T7 ADVANCE CONTROLWARE TABLE ADDRESS
  4491. SHN -14
  4492. RAD T6
  4493. SOD T3
  4494. NJN CRC1 IF MORE CHANNELS TO CHECK
  4495. LJM CRCX RETURN
  4496.  
  4497.  
  4498. CRCA BSS 0 RELOAD COUNT FIELD BIT POSITIONS
  4499. CON 54DS6
  4500. CON 42DS6
  4501. CON 30DS6
  4502. CON 18DS6
  4503. CON 6DS6
  4504. PES SPACE 4,10
  4505. ** PES - PROCESS ESM SECDED ERROR LOG.
  4506. *
  4507. * ENTRY (MF) = MAINFRAME TYPE.
  4508. *
  4509. * USES T1, T2, T5, CM - CM+4, CN - CN+4.
  4510. *
  4511. * CALLS C2D, DFM, OLB, PCI, WCF.
  4512. *
  4513. * MACROS DCHAN, RCHAN, RICHI, RSTC, SFA.
  4514.  
  4515.  
  4516. PES SUBR ENTRY/EXIT
  4517. LDN NOPE-1 SEARCH FOR EM DEVICE WITH MAINTENANCE PORT
  4518. STD T5
  4519. PES1 AOD T5 ADVANCE EST ORDINAL
  4520. LMD EM
  4521. ZJN PESX IF END OF MASS STORAGE DEVICES
  4522. SFA EST,T5 READ EST ENTRY
  4523. ADK EQDE
  4524. CRD CN
  4525. ADK EQAE-EQDE
  4526. CRD CM
  4527. LDD CN+3
  4528. LMC 2RDE
  4529. ZJN PES3 IF EXTENDED MEMORY ENTRY
  4530. LMN 2RDP&2RDE
  4531. PES2 NJN PES1 IF NOT EXTENDED MEMORY ENTRY
  4532.  
  4533. PES3 LDD CM+2 SAVE MAINTENANCE PORT CHANNEL NUMBER
  4534. LPN 37
  4535. ZJN PES1 IF NO MAINTENANCE PORT DEFINED
  4536. STD CN
  4537. LMD PN SET PP NUMBER AND CHANNEL NUMBER
  4538. STM IBMF+2
  4539.  
  4540. * REQUEST MAINTENANCE PORT CHANNEL.
  4541.  
  4542. RJM PCI PRESET CHANNEL INSTRUCTIONS
  4543. RICHI REDEFINE I/O INSTRUCTIONS
  4544. LDC 4000+0 REQUEST CHANNEL, RETURN IF DOWN
  4545. CHTE *-1
  4546. RCHAN
  4547. LDD CM+1
  4548. SHN 0-13
  4549. NJN PES2 IF CHANNEL DOWN
  4550. LDD CN+4 CHECK EM TYPE
  4551. SHN 3
  4552. ADN DILL
  4553. CRD CM
  4554. LDD CM+3
  4555. SHN -6
  4556. LPN 7
  4557. LMN 5
  4558. ZJN PES3.1 IF ESM
  4559. LDK /COMSDFS/HM0173-/COMSDFS/HM0211 STORNET MESSAGE ID
  4560. PES3.1 ADC /COMSDFS/HM0211 ESM MESSAGE ID
  4561. STM IBMF
  4562. LDD T5 SET EST ORDINAL
  4563. STM IBMG
  4564. SHN -3
  4565. RJM C2D CONVERT UPPER TWO DIGITS
  4566. STM PESA+1
  4567. STM PESB+1
  4568. LDD T5 CONVERT LOWER DIGIT
  4569. LPN 7
  4570. SHN 6
  4571. ADC 2R0,
  4572. STM PESA+2
  4573. STM PESB+2
  4574.  
  4575. * READ MAINTENANCE CHANNEL STATUS.
  4576.  
  4577. AJM PES5,0 IF CHANNEL IS ACTIVE
  4578. FNC FRSP,0
  4579. LDN 77
  4580. PES4 IJM PES6,0 IF ESM MAINTENANCE CHANNEL INACTIVE
  4581. SBN 1
  4582. NJN PES4 IF NOT TIMED OUT ON INACTIVE
  4583. PES5 DCN 40
  4584. LDC PESA ISSUE ERROR MESSAGE TO SYSTEM DAYFILE
  4585. RJM DFM
  4586. LDC PESA+ERLN ISSUE ERROR MESSAGE TO ERROR LOG
  4587. RJM DFM
  4588. LDD CN DROP CHANNEL
  4589. DCHAN
  4590. LJM PES1 RETURN
  4591.  
  4592. PES6 ACN 0
  4593. RJM WCF WAIT FOR CHANNEL FULL
  4594. LDN 4
  4595. STD NB
  4596. IAM IBMH,0
  4597. DCN 40
  4598. FNC FCSP,0 CLEAR SIDE DOOR PORT STATUS
  4599. LDK DCSP
  4600. ACN 0
  4601. OAN 0
  4602. LDC /COMSDFS/HS0101
  4603. STM IBMF+1
  4604. RJM OLB OUTPUT LOG TO *BML*
  4605. LDN 77
  4606. FJM PES5,0 IF CLEAR OPERATION NOT COMPLETE
  4607. DCN 40
  4608.  
  4609. * READ MAINTENANCE CHANNEL STATUS.
  4610.  
  4611. FNC FRDL,0 ISSUE ESM READ FUNCTION
  4612. ACN 0
  4613. RJM WCF WAIT FOR CHANNEL FULL
  4614. LDC NESB
  4615. STD NB
  4616. IAM IBMH,0 READ LOG TO ESM SECDED TABLE
  4617. DCN 40
  4618. ZJN PES8 IF ALL SECDED DATA READ
  4619. STD T1 SAVE COUNT OF WORDS NOT READ
  4620. LDC NESB-1 PRESET INDEX TO BEGIN CLEARING TABLE
  4621. STD T2
  4622. PES7 LDN 0 CLEAR NEXT ESM TABLE BYTE
  4623. STM IBMH,T2
  4624. SOD T2 DECREMENT ESM TABLE INDEX
  4625. SOD T1 DECREMENT COUNT OF WORDS TO BE CLEARED
  4626. NJN PES7 IF MORE WORDS TO CLEAR
  4627. LDC PESB ISSUE ERROR MESSAGE TO SYSTEM DAYFILE
  4628. RJM DFM
  4629. LDC PESB+ERLN ISSUE ERROR MESSAGE TO ERROR LOG
  4630. RJM DFM
  4631. PES8 FNC FRST,0 ISSUE ESM RESET FUNCTION
  4632. LDD CN DROP CHANNEL
  4633. DCHAN
  4634. LDC /COMSDFS/HS0100
  4635. STM IBMF+1
  4636. RJM OLB OUTPUT LOG TO *BML*
  4637. LJM PES1 RETURN
  4638.  
  4639.  
  4640. PESA DATA C*EQ000, MAINTENANCE CHANNEL ERROR.*
  4641. PESB DATA C*EQ000, INCOMPLETE SECDED READ.*
  4642. OLB SPACE 4,15
  4643. ** OLB - OUTPUT LOG TO *BML*.
  4644. *
  4645. * ENTRY (NB) = NUMBER OF BYTES TO WRITE TO *BML*.
  4646. * (IBMF) = *BML* MESSAGE ID.
  4647. * (IBMF+1) = *BML* SYMPTOM CODE.
  4648. * (IBMF+2) = 6/ PP NUMBER, 6/ EM MAINTENANCE CHANNEL.
  4649. * BUFFER *IBMH* CONTAINS *BML* DATA.
  4650. *
  4651. * USES T3, T4, CM - CM+4.
  4652. *
  4653. * CALLS DFM.
  4654.  
  4655.  
  4656.  
  4657. OLB SUBR ENTRY/EXIT
  4658. LDN 0
  4659. STM IBMG+1 CLEAR NOT FIRST MESSAGE/CONTINUATION
  4660. LDN ZERL CLEAR FOR DAYFILE CALL
  4661. CRD CM
  4662. LDD NB
  4663. STD T4
  4664. SBN 4*5+1
  4665. PJN OLB3 IF MESSAGE CONTINUES
  4666. OLB1 LDD T4 SET BYTE COUNT
  4667. ADN 2*5
  4668. STD CM+1
  4669. OLB2 LDN 0 CLEAR REMAINDER OF MESSAGE
  4670. STM IBMH,T4
  4671. AOD T4
  4672. SBN 4*5
  4673. MJN OLB2 IF MORE BYTES TO CLEAR
  4674. LDM IBMG+1 CLEAR CONTINUATION BIT
  4675. SCN 4
  4676. UJN OLB5 STORE CONTINUATION BIT
  4677.  
  4678. OLB3 LDN 4*5 INITIALIZE MESSAGE OFFSET
  4679. STD T3
  4680. OLB4 LDN 6*5 SET MESSAGE LENGTH
  4681. STD CM+1
  4682. LDM IBMG+1 SET CONTINUATION BIT
  4683. SCN 4
  4684. LMN 4
  4685. OLB5 STM IBMG+1
  4686. LDC IBMF+BMLN ISSUE DAYFILE MESSAGE
  4687. RJM DFM
  4688. LDM IBMG+1 CHECK CONTINUATION BIT
  4689. LPN 4
  4690. ZJP OLBX IF COMPLETE, RETURN
  4691. LDN 14
  4692. STM IBMG+1
  4693. LDN 0 PRESET *BML* MESSAGE INDEX
  4694. STD T4
  4695. OLB6 LDM IBMH,T3 MOVE ONE BYTE FROM INPUT TABLE TO *BML*
  4696. STM IBMH,T4
  4697. AOD T4 INCREMENT BUFFER INDEX
  4698. AOD T3 INCREMENT MESSAGE INDEX
  4699. LMD NB
  4700. ZJP OLB1 IF AT END OF MESSAGE
  4701. LDD T4
  4702. LMN 4*5
  4703. NJN OLB6 IF NOT AT END OF BUFFER
  4704. UJP OLB4 OUTPUT BUFFER
  4705. WCF SPACE 4,10
  4706. ** WCF - WAIT FOR CHANNEL FULL.
  4707. *
  4708. * *WCF* WAITS 250 MICROSECONDS FOR THE CHANNEL TO BECOME FULL.
  4709. *
  4710. * EXIT TO *PES5* IF CHANNEL TIMES OUT.
  4711.  
  4712.  
  4713. WCF SUBR ENTRY/EXIT
  4714. LDM .DLY GET DELAY COUNT
  4715. WCF1 FJM WCFX,0 IF MAINTENANCE CHANNEL FULL
  4716. SBN 1
  4717. NJN WCF1 IF NOT TIMED OUT
  4718. LJM PES5 ISSUE ERROR MESSAGE
  4719.  
  4720.  
  4721. RSTC RESTORE I/O INSTRUCTIONS
  4722. PCI SPACE 4,10
  4723. ** PCI - PRESET CHANNEL INSTRUCTIONS.
  4724. *
  4725. * ENTRY (CN) = MAINTENANCE CHANNEL NUMBER.
  4726. * (CTABLE) = FWA OF CHANNEL TABLE.
  4727. *
  4728. * EXIT MAINTENANCE CHANNEL NUMBER IS ADDED TO ALL
  4729. * CHANNEL INSTRUCTIONS IN SUBROUTINE *PES*.
  4730. *
  4731. * USES T1, T2.
  4732. *
  4733. * MACROS CHTB.
  4734.  
  4735.  
  4736. PCI SUBR ENTRY/EXIT
  4737. LDC CTABLE SET START OF CHANNEL TABLE
  4738. STD T1
  4739. PCI1 LDI T1
  4740. ZJN PCIX IF AT END OF CHANNEL TABLE
  4741. STD T2
  4742. LDI T2 GET NEXT CHANNEL INSTRUCTION
  4743. SCN 37
  4744. LMD CN SET MAINTENANCE CHANNEL
  4745. STI T2
  4746. AOD T1
  4747. UJN PCI1 CHECK NEXT TABLE ENTRY
  4748.  
  4749.  
  4750. CTABLE CHTB TABLE TO PRESET ESM I/O INSTRUCTIONS
  4751. COMMON SPACE 4,10
  4752. * COMMON DECKS.
  4753.  
  4754.  
  4755. *CALL COMPC2D
  4756. IBM SPACE 4,10
  4757. * *BML* MESSAGE BUFFER.
  4758.  
  4759.  
  4760. IBMF VFD 12/0,12/0,6/0,6/0,24/0 MESSAGE ID/SYMPTOM CODE
  4761. IBMG VFD 12/0,9/0,1/0,2/0,36/0 MESSAGE CONTINUATION BIT
  4762. IBMH BSS 0 *BML* MESSAGE BUFFER (4 CM WORDS)
  4763. IBMHL EQU 4*5 END OF *BML* BUFFER
  4764. SPACE 4,10
  4765. .1 MAX IBMHL,NESB,CTALL*5
  4766. ERRNG EPFW-IBMH-.1 BUFFER OVERFLOWS ERROR PROCESSOR
  4767. OVERFLOW IHDX,EPFW
  4768. SPACE 4,10
  4769. TTL 1MB - HARDWARE ERROR PROCESSOR.
  4770. END