User Tools

Site Tools


cdc:nos2.source:opl871:1rm

Table of Contents

1RM

Table Of Contents

  • [00005] 1RM - REDEFINE MASS STORAGE.
  • [00213] MACROS.
  • [00215] COMMAND - SPECIFY LEGAL K-DISPLAY COMMANDS.
  • [00243] LDBUF - LOAD ADDRESS OF CALL BUFFER WORD.
  • [00256] IFCOM - CHECK IF COMMAND ENTERED.
  • [00287] MESG - SEND MESSAGE TO K-DISPLAY.
  • [00328] RDM - MAIN PROGRAM.
  • [00329] RDM - MAIN PROGRAM.
  • [00393] TFCN - TABLE OF FUNCTION CODE PROCESSORS.
  • [00409] CDI - CLEAR *DATI* INTERLOCK. (FUNCTION RCDF).
  • [00433] CLR - CLEAR IDLE AND SUSPEND REQUEST.
  • [00434] CLR - CLEAR IDLE AND SUSPEND REQUEST. (FUNCTION RCLF).
  • [00510] RDD - REDEFINE UNITS. (FUNCTION RDDF).
  • [00577] SPD - SUSPEND PROCESSING ON DEVICE. (FUNCTION RSPF).
  • [00640] UMT - UPDATE SHARED DEVICE MST FROM EXTENDED MEMORY.
  • [00641] UMT - UPDATE SHARED DEVICE MST FROM ECS. (FUNCTION RUMF).
  • [00678] CAS - CHECK ALL SUSPENDS CLEARED.
  • [00728] CDP - COMPLETE DEVICE PROCESSING.
  • [00752] CLC - CHECK FOR LEGAL COMMAND.
  • [00788] CNR - CHECK NOT READY STATUS ON DEVICE.
  • [00816] CSP - CLEAR SUSPEND STATUS.
  • [00853] C3D - CONVERT THREE DIGITS OF DECIMAL DISPLAY CODE.
  • [00894] DOS - DELAY APPROXIMATELY ONE SECOND.
  • [00917] GCI - GET CHANNEL CONTROLWARE TABLE INDEX.
  • [00949] KMS - SEND MESSAGE TO K-DISPLAY.
  • [00991] LDB - LOAD CALL BLOCK BUFFER ADDRESS.
  • [01005] PSA - PROCESS SERVO ADJUSTMENT.
  • [01084] PUE - PROCESS UNIT ERROR.
  • [01114] RDE - READ DAT ENTRY FROM EXTENDED MEMORY.
  • [01188] RRD - RESET *RD* DEVICE FIELDS.
  • [01229] SCF - SET COMMON *RD* DEVICE FIELDS.
  • [01322] SCH - SET CHANNEL(S) IN EST.
  • [01343] SDI - SET *DATI* INTERLOCK.
  • [01379] SDU - SPIN DOWN UNITS.
  • [01437] SEQ - SET EQUIPMENT PARAMETERS.
  • [01496] SLC - SET LEGAL COMMAND.
  • [01521] SNC - SET CHANNEL SPECIFIED BY *NC*.
  • [01556] SPU - SET PHYSICAL UNIT.
  • [01586] SSP - SET SUSPEND STATUS ON DEVICE.
  • [01631] SUU - SPIN UP UNITS.
  • [01690] ULD - UPDATE LINKED DEVICE MST-S.
  • [01792] VLB - VERIFY LABEL.
  • [01877] WAM - WAIT FOR ALL MACHINES TO SYNCHRONIZE PROCESSING.
  • [01951] WFC - WAIT FOR COMMAND TO BE ENTERED.
  • [01975] COMMON DECKS.
  • [02006] PRS - PRESET.

Source Code

1RM.txt
  1. IDENT 1RM,RDM
  2. PERIPH
  3. BASE M
  4. SST
  5. TITLE 1RM - REDEFINE MASS STORAGE.
  6. *COMMENT 1RM - REDEFINE MASS STORAGE.
  7. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  8. RDM SPACE 4,10
  9. ***** 1RM - REDEFINE MASS STORAGE.
  10. *
  11. * A. J. BEEKMAN. 77/04/25.
  12. * W. E. GOEBEL. 80/02/25.
  13. *
  14. * *1RM* PROVIDES FUNCTIONS USED IN THE REDEFINITION OR REPAIR
  15. * OF 844 AND 885 TYPE MASS STORAGE DEVICES.
  16. SPACE 4,10
  17. *** *1RM* USES PARAMETERS PASSED TO IT FROM THE CPU ROUTINE
  18. * *CONFIG* (CONFIGURATION MONITOR) TO PERFORM OPERATIONS
  19. * WHICH CONTROL THE ON-LINE RECONFIGURATION OR REPAIR OF
  20. * 844 AND 885 TYPE MASS STORAGE DEVICES.
  21. SPACE 4,10
  22. *** *1RM* PROCESSES THE FUNCTIONS AS DEFINED IN *COMS1RM*.
  23. * ALL *1RM* FUNCTIONS REQUIRE THAT THE CALLING JOB HAS MASS
  24. * STORAGE SUBSYSTEM ID.
  25. *
  26. * THE CALL TO *1RM* IS IN THE FOLLOWING FORM -
  27. *
  28. *T IR 24/ *1RMP*,18/ KDMA,18/ ADDR
  29. *
  30. * ADDR = ADDRESS OF CALL BLOCK.
  31. * KDMA = K-DISPLAY MESSAGE LINE ADDRESS.
  32. *
  33. * THE CALL BLOCK FORMAT IS DOCUMENTED IN *COMS1RM*.
  34. SPACE 4,10
  35. *** K-DISPLAY COMMANDS.
  36. *
  37. * THE FOLLOWING COMMANDS ARE ENTERED IN RESPONSE TO AN
  38. * ERROR CONDITION DETECTED BY *1RM*.
  39. *
  40. * ABORT. THIS COMMAND IS ENTERED TO DISCONTINUE PROCESSING
  41. * OF THE CURRENT COMMAND IN PROGRESS.
  42. *
  43. * IGNORE. THE ERROR CONDITION DETECTED BY *1RM* IS TO
  44. * BE IGNORED. THIS COMMAND SHOULD BE USED WITH
  45. * DISCRETION. IT SHOULD BE USED ONLY WHEN THE
  46. * ERROR BEING POSTED IS WELL UNDERSTOOD AND
  47. * CAN LEGITIMATELY BE IGNORED.
  48. *
  49. * NEXT. THIS COMMAND IS ENTERED IN RESPONSE TO AN
  50. * 885 SERVO TIMING CHECK WHEN THE TIMING DATA
  51. * IS IN THE REQUIRED RANGE. ENTRY OF THIS
  52. * COMMAND WILL CAUSE PROCESSING TO CONTINUE
  53. * WITH EITHER THE NEXT UNIT OR THE NEXT STEP
  54. * OF PROCESSING.
  55. *
  56. * RECHECK. THIS COMMAND IS ENTERED TO RETRY A PROCESS
  57. * WHICH PREVIOUSLY GAVE AN ERROR. IF THE ERROR
  58. * PERSISTS THE MESSAGE WILL BE POSTED AGAIN
  59. * WITH ANOTHER OPPORTUNITY FOR OPERATOR ACTION.
  60. SPACE 4,10
  61. *** K-DISPLAY OPERATOR MESSAGES.
  62. *
  63. *
  64. * THE FOLLOWING COMMANDS ARE POSTED ON THE K-DISPLAY BY
  65. * *1RM*. WHEN *1RM* DETECTS A CONDITION WHICH MAY BE
  66. * RESPONDED TO BY THE OPERATOR, A MESSAGE IS POSTED AND
  67. * THE LEGAL COMMANDS ARE POSTED ON THE K-DISPLAY. THE
  68. * FOLLOWING LIST OF ERROR MESSAGES LISTS THOSE LEGAL
  69. * COMMANDS AND INDICATES IF AN OPERATOR RESPONSE IS
  70. * REQUIRED OR OPTIONAL.
  71. *
  72. *
  73. * UNIT XX, CHYY WRITE/READ VERIFY ERROR.
  74. * PART OF THE VALIDATION PROCEDURE WHEN RETURNING
  75. * AN EQUIPMENT FOR SYSTEM USE (CLEAR COMMAND) IS
  76. * TO WRITE A SECTOR OF DATA TO THE DEVICE, READ IT
  77. * BACK AND VERIFY THE DATA. WHEN THIS VERIFICATION
  78. * FAILS THE ABOVE MESSAGE APPEARS.
  79. * COMMANDS - REQUIRED.
  80. * ABORT, IGNORE, RECHECK.
  81. *
  82. *
  83. * ERROR IN PERFORMING SERVO CHECK ON UNIT XX.
  84. * THE SERVO ADJUSTMENT PROCEDURE HAS ENCOUNTERED
  85. * A DISK ERROR CONDITION.
  86. * COMMANDS - REQUIRED.
  87. * ABORT, IGNORE, RECHECK.
  88. *
  89. *
  90. * UNIT XX SERVO TIMING= XXX. ACCEPTABLE RANGE IS 325 TO 345.
  91. * WHEN RECONFIGURING AN 885 HDA A SERVO ADJUSTMENT
  92. * PROCEDURE IS EXECUTED. THIS PROCEDURE MEASURES
  93. * SERVO TIMING CHARACTERISTICS WHICH MUST BE IN THE
  94. * SPECIFIED RANGE. A DRIVE ADJUSTMENT MUST BE MADE
  95. * BY A CE UNTIL THE TIMING IS IN THE SPECIFIED
  96. * RANGE.
  97. * COMMANDS - REQUIRED.
  98. * ABORT, RECHECK.
  99. * NEXT. ONLY IF TIMING IS IN RANGE.
  100. * IGNORE. ONLY IF TIMING IS NOT IN RANGE.
  101. *
  102. *
  103. * ERROR ON LINK DEVICE.
  104. * WHEN A DEVICE IS SHARED BETWEEN MAINFRAMES THE
  105. * LINK DEVICE IS READ TO SYNCHRONIZE PROCESSING
  106. * BETWEEN MACHINES. WHEN AN ERROR OCCURS IN
  107. * READING THE LINK DEVICE THIS ERROR MESSAGE
  108. * IS ISSUED.
  109. * COMMANDS - REQUIRED.
  110. * ABORT, IGNORE.
  111. *
  112. *
  113. * SPIN DOWN UNIT XX.
  114. * THIS IS A DIRECTIVE TO THE OPERATOR OR CE TO
  115. * SPIN DOWN THE SPECIFIED UNIT IN PREPARATION
  116. * FOR MOVING THE PACK OR HDA.
  117. * COMMAND - OPTIONAL.
  118. * ABORT, IGNORE.
  119. *
  120. *
  121. * MOVE PACK FROM UNIT XX TO UNIT YY AND SPIN UP.
  122. * THIS DIRECTIVE IS ISSUED TO THE OPERATOR FOR
  123. * EACH UNIT TO BE MOVED DURING A RECONFIGURATION.
  124. * UNIT XX HAS PREVIOUSLY BEEN DIRECTED TO BE
  125. * SPUN DOWN AND ITS PACK OR HDA IS NOW TO BE
  126. * MOVED TO UNIT YY.
  127. * COMMANDS - OPTIONAL.
  128. * ABORT, IGNORE.
  129. *
  130. *
  131. * UNIT XX, CHYY LABEL READ ERROR.
  132. * IN VERIFYING THAT THE CORRECT LABEL IS PRESENT
  133. * ON UNIT XX A DISK ERROR OCCURRED WHICH PREVENTED
  134. * THE LABEL FROM BEING READ SUCCESSFULLY.
  135. * THE CHANNEL IS SPECIFIED IN THE MESSAGE AND
  136. * MAY BE HELPFUL IF THE VERIFY ERROR OCCURS
  137. * ONLY FROM A SINGLE CHANNEL IN A DUAL ACCESS
  138. * CONFIGURATION.
  139. * COMMANDS - REQUIRED.
  140. * ABORT, IGNORE, RECHECK.
  141. *
  142. *
  143. * UNIT XX, CHYY LABEL VERIFICATION ERROR.
  144. * THE LABEL SECTOR WAS READ BUT THE DATA IN THE
  145. * LABEL SECTOR IS NOT CORRECT.
  146. * COMMANDS - REQUIRED.
  147. * ABORT, IGNORE, RECHECK.
  148. *
  149. *
  150. * WAITING FOR MACHINE ID=XX.
  151. * A SHARED DEVICE IS BEING PROCESSED AND IT HAS
  152. * BEEN DETECTED THAT MACHINE IDXX IS NOT AT THE
  153. * SAME STAGE OF PROCESSING AS THIS MACHINE.
  154. * COMMANDS - REQUIRED.
  155. * ABORT, IGNORE.
  156. *
  157. *
  158. * COMMAND ABORTED.
  159. * INFORMATIVE MESSAGE STATING THAT THE ATTEMPTED
  160. * COMMAND WAS ABORTED AND ALL VALUES FOR THE CURRENT
  161. * EQUIPMENT BEING PROCESSED HAVE BEEN RESET TO THEIR
  162. * ORIGINAL VALUE.
  163. * COMMANDS - NONE.
  164. *
  165. *
  166. * UNIT XX SERVO TIMING IN PROGRESS.
  167. * INFORMATIVE MESSAGE STATING THAT ADJUSTMENTS ARE
  168. * BEING MADE ON THE SERVO TIMING.
  169. * COMMANDS - NONE.
  170. *
  171. *
  172. * EQXXX, REDEFINITION COMPLETE.
  173. * NORMAL COMPLETION MESSAGE.
  174. *
  175. *
  176. * EQXXX, SYSTEM USAGE OF DEVICE SUSPENDED.
  177. * INFORMATIVE MESSAGE STATING THAT DEVICE USAGE HAS
  178. * BEEN SUSPENDED AS REQUESTED.
  179. * COMMANDS - NONE.
  180. SPACE 4,10
  181. *** DAYFILE MESSAGES.
  182. *
  183. * * 1RM INCORRECT REQUEST.* = INCORRECT FUNCTION CODE OR STATUS
  184. * WORD ADDRESS OUT OF RANGE.
  185. *
  186. * * 1RM USER ACCESS NOT VALID.* = CALLING JOB NOT MASS STORAGE
  187. * SUBSYSTEM QUEUE PRIORITY.
  188. SPACE 4,10
  189. ** ROUTINES USED.
  190. *
  191. * 0SI - SERVO TIMING.
  192. SPACE 4
  193. ** COMMON DECKS.
  194.  
  195.  
  196. *CALL COMPMAC
  197. *CALL COMSCPS
  198. QUAL DSL
  199. *CALL COMSDSL
  200. QUAL *
  201. *CALL COMSEVT
  202. *CALL COMSLSD
  203. *CALL COMSMMF
  204. *CALL COMSMSP
  205. *CALL COMSMST
  206. *CALL COMSPIM
  207. *CALL COMSPRD
  208. *CALL COMSSSD
  209. *CALL COMSZOL
  210. LIST X
  211. *CALL COMS1RM
  212. LIST *
  213. TITLE MACROS.
  214. COMMAND SPACE 4,10
  215. ** COMMAND - SPECIFY LEGAL K-DISPLAY COMMANDS.
  216. *
  217. * THE *TPAR* WORD INDICATES TO *CONFIG* WHICH K-DISPLAY
  218. * COMMANDS ARE LEGAL FOR *1RM* PROCESSING. THIS
  219. * MACRO IS USED TO SET THE *TPAR* WORD TO THE LEGAL
  220. * COMMANDS. WHEN *CONFIG* DETECTS A LEGAL COMMAND IT IS
  221. * PASSED TO *1RM* VIA WORD *TCOM* IN THE CALL BLOCK.
  222. * *1RM* CHECKS FOR COMMANDS WITH THE AID OF THE *IFCOM*
  223. * MACRO.
  224. *
  225. * COMMAND C
  226. * C = A LIST OF LEGAL COMMAND KEYWORDS.
  227.  
  228.  
  229. COMMAND MACRO C
  230. MACREF COMMAND
  231. .2 SET 0
  232. IRP C
  233. .1 DECMIC ._C-1
  234. .2 SET .2+1BS".1"
  235. IRP
  236. IFGT .2,77
  237. LDC .2
  238. ELSE 1
  239. LDN .2
  240. RJM SLC
  241. ENDM
  242. LDBUF SPACE 4,10
  243. ** LDBUF - LOAD ADDRESS OF CALL BUFFER WORD.
  244. *
  245. * LDBUF ADD
  246. * ADD = CALL BUFFER WORD INDEX.
  247.  
  248.  
  249. LDBUF MACRO A
  250. MACREF LDBUF
  251. RJM LDB
  252. IFNE A,0,1
  253. ADN A
  254. ENDM
  255. IFCOM SPACE 4,10
  256. ** IFCOM - CHECK IF COMMAND ENTERED.
  257. *
  258. * THIS MACRO CHECKS FOR A COMMAND PREVIOUSLY SPECIFIED
  259. * WITH THE COMMAND MACRO TO SEE IF IT HAS BEEN ENTERED
  260. * VIA THE K-DISPLAY.
  261. *
  262. * IFCOM C,TAG
  263. * C = COMMAND LIST TO BE CHECKED.
  264. * TAG = ADDRESS TO JUMP TO IF COMMAND ENTERED.
  265.  
  266.  
  267. IFCOM MACRO C,TAG
  268. MACREF IFCOM
  269. .2 SET 0
  270. IRP C
  271. .1 DECMIC ._C-1
  272. .2 SET .2+1BS".1"
  273. IRP
  274. IFGT .2,77
  275. LDC .2
  276. ELSE 1
  277. LDN .2
  278. RJM CLC
  279. IF DEF,TAG
  280. IFLT *-TAG,40
  281. NJN TAG IF TAG WITHIN RANGE
  282. ELSE 2
  283. ZJN *+3 IF TAG OUT OF RANGE, REVERSE TEST LOGIC
  284. LJM TAG LONG JUMP TO TAG
  285. ENDM
  286. MESG SPACE 4,10
  287. ** MESG - SEND MESSAGE TO K-DISPLAY.
  288. *
  289. * MESG ADD
  290. * ADD = ADDRESS OF K-DISPLAY MESSAGE.
  291.  
  292.  
  293. MESG MACRO A
  294. MACREF MESG
  295. IFC NE,=A=*=,1
  296. LDC A
  297. RJM KMS
  298. ENDM
  299. SPACE 4,10
  300. **** DIRECT LOCATION ASSIGNMENTS.
  301.  
  302.  
  303. BEGIN BSSN 20
  304. CN BSSN 5 CM WORD BUFFER
  305. CH BSSN 1 CHANNEL CURRENTLY IN USE
  306. DI BSSN 1 DAT INDEX
  307. EQ BSSN 1 EST ORDINAL FOR RECONFIGURATION
  308. FN BSSN 1 FUNCTION IN PROGRESS
  309. GL BSSN 1 DEVICE UNAVAILABLE FLAG
  310. LU BSSN 1 LOGICAL UNIT NUMBER OF CURRENT UNIT
  311. LT BSSN 1 LABEL TRACK FROM MST
  312. MF BSSN 1 MMF STATUS
  313. MM BSSN 1 MACHINE MASK FOR THIS MACHINE
  314. MS BSSN 1 MST ADDRESS/10B
  315. NC BSSN 1 FIRST OF SECOND CHANNEL FLAG
  316. NU BSSN 1 NUMBER OF UNITS FOR EQUIPMENT
  317. PU BSSN 1 PHYSICAL UNIT NUMBER OF CURRENT UNIT
  318. RM BSSN 1 *RD* DEVICE MST ADDRESS/10B
  319. RU BSSN 1 UNITS FOR RECONFIGURATION OR REPAIR
  320. SC BSSN 1 SUSPENDED DEVICE COUNT
  321. SL BSSN 1 SINGLE UNIT SECTOR LIMIT FOR EQUIPMENT
  322. MX BSSN 0 MAXIMUM DIRECT CELL
  323. END BSSN
  324. ERRPL MX-50 DIRECT CELL OVERFLOW
  325.  
  326.  
  327. ****
  328. TITLE RDM - MAIN PROGRAM.
  329. ** RDM - MAIN PROGRAM.
  330.  
  331.  
  332. ORG PPFW
  333. RDM RJM PRS PRESET
  334. RDM1 DELAY
  335. PAUSE
  336. LDBUF RFNB CHECK FOR FUNCTION REQUEST
  337. CRD CN
  338. LDD CM+1
  339. ZJN RDM2 IF NO ERROR FLAG
  340. LDN 0
  341. LJM RDM4 DROP PP
  342.  
  343. RDM2 LDD CN+4
  344. SHN 21
  345. PJN RDM1 IF NO FUNCTION PRESENT
  346. STD FN
  347. RJM SEQ SET EQUIPMENT PARAMETERS
  348. LDM TFCN,FN
  349. STM RDMA
  350. RJM * PROCESS REQUEST
  351. RDMA EQU *-1
  352.  
  353. * RETURN FROM FUNCTION PROCESSOR.
  354. * IF A DEVICE SUSPEND REQUEST IS OUTSTANDING *1RM* MUST
  355. * REMAIN ASSIGNED UNTIL IT IS CLEARED. IF *1RM* WERE
  356. * TO DROP OUT A DEADLOCK COULD BE CREATED BECAUSE OF
  357. * PP RESOURCES BEING TIED UP WAITING FOR THE SUSPENDED
  358. * DEVICE.
  359. *
  360. * (A) = 0 IF COMMAND WAS NOT ABORTED.
  361. * (A) .NE. 0 IF *ABORT* WAS ENTERED.
  362.  
  363. ZJN RDM3 IF COMMAND NOT ABORTED
  364. MESG RDMB *COMMAND ABORTED*
  365. RDM3 RJM RRD RESET *RD* DEVICE
  366. LDBUF RFNB READ FUNCTION WORD
  367. CRD CN
  368. LDD SC CHECK FOR SUSPENDED DEVICES
  369. ZJN RDM4 IF NO DEVICE SUSPENDED - DROP PP
  370. LDD CN+4
  371. SCN 1
  372. RDM4 STD CN+4
  373. LDBUF RFNB
  374. CWD CN
  375. LDD CN+4
  376. ZJN RDM5 IF DROP OF PP
  377. LJM RDM1 CHECK FOR NEXT FUNCTION
  378.  
  379. RDM5 RJM CSP CLEAR EQUIPMENT ASSIGNMENT
  380. LDK ZERL RESTART JOBS WAITING ON DEVICE
  381. CRD CM
  382. LDD EQ EST ORDINAL
  383. STD CM+3
  384. * LDN 0 *WISE* SUBFUNCTION
  385. * STD CM+4
  386. ERRNZ WISE ADJUST CODE IF VALUE CHANGES
  387. MONITOR EATM
  388. MONITOR DPPM
  389. LJM PPR EXIT
  390.  
  391. RDMB DATA C*COMMAND ABORTED.*
  392. SPACE 4,10
  393. ** TFCN - TABLE OF FUNCTION CODE PROCESSORS.
  394. *
  395. * ENTRY = 1 WORD INDEXED BY FUNCTION CODE.
  396. *
  397. *T 12/ ADDR
  398. * ADDR = ADDRESS OF FUNCTION PROCESSOR.
  399.  
  400.  
  401. TFCN INDEX TABLE OF FUNCTION CODE PROCESSORS
  402. INDEX RUMF,UMT UPDATE MST-S FROM EXTENDED MEMORY
  403. INDEX RCLF,CLR CLEAR IDLE AND SUSPEND REQUESTS
  404. INDEX RCDF,CDI CLEAR DAT INTERLOCK
  405. INDEX RDDF,RDD REDEFINE DEVICE
  406. INDEX RSPF,SPD SUSPEND DEVICE ACTIVITY
  407. INDEX RMXF
  408. CDI TITLE CLEAR *DATI* INTERLOCK.
  409. ** CDI - CLEAR *DATI* INTERLOCK. (FUNCTION RCDF).
  410. *
  411. * ENTRY (MF) = MULTI-MAINFRAME LINK DEVICE.
  412. *
  413. * USES CN - CN+4.
  414. *
  415. * CALLS IFR.
  416.  
  417.  
  418. CDI SUBR ENTRY/EXIT
  419. LDD MF CHECK FOR MULTI-MAINFRAME
  420. ZJN CDIX IF NOT MMF
  421. LDC MMFL READ *DATI* INTERLOCK INDICATION
  422. CRD CN
  423. LDD CN+2
  424. ZJN CDIX IF INTERLOCK NOT SET
  425. LCN DATI
  426. RJM IFR CLEAR *DATI* FLAG REGISTER INTERLOCK
  427. LDN 0 CLEAR INTERLOCK INDICATOR
  428. STD CN+2
  429. LDC MMFL
  430. CWD CN
  431. LDN 0
  432. UJN CDIX RETURN
  433. TITLE CLR - CLEAR IDLE AND SUSPEND REQUEST.
  434. ** CLR - CLEAR IDLE AND SUSPEND REQUEST. (FUNCTION RCLF).
  435. *
  436. * CLEAR THE IDLE AND SUSPEND REQUESTED BIT FOR THE SPECIFIED
  437. * EQUIPMENT.
  438. *
  439. * ENTRY (EQ) = EST ORDINAL.
  440. *
  441. * EXIT (A) .NE. 0 IF THE OPERATION WAS ABORTED OR AN ERROR
  442. * FLAG IS SET AT THE CONTROL POINT.
  443. *
  444. * USES LU, NC, T5, T7, CM - CM+4, CN - CN+4.
  445. *
  446. * CALLS CAS, CDI, CDP, CSP, MSV, PUE, SCF, SDI, SNC, VLB, WAM.
  447. *
  448. * MACROS CMSTF, LDBUF, MONITOR, SFA.
  449.  
  450.  
  451. CLR SUBR ENTRY
  452. LDD GL
  453. ZJN CLR1 IF DEVICE AVAILABLE
  454. LJM CLR6 CLEAR SUSPEND AND IDLE STATUS
  455.  
  456. CLR1 LDN MSTL SET MST WORD COUNT
  457. STD T7
  458. LDBUF ESTD READ EST ENTRY
  459. CRD CN
  460. ADN MSTD-ESTD READ MST
  461. CRM BFMS,T7
  462. RJM SCF SET COMMON FIELDS IN *RD* DEVICE
  463. NJN CLRX IF ERROR FLAG SET AT CP
  464.  
  465. * VERIFY FUNCTIONAL AND LOGICAL INTEGRITY OF EQUIPMENT.
  466.  
  467. CLR2 LDN 1 SET FIRST CHANNEL
  468. STD NC
  469. CLR3 RJM SNC SET *NC* CHANNEL
  470. NJN CLR5 IF CHANNEL NOT AVAILABLE
  471. RJM VLB VERIFY LABEL SECTOR
  472. NJN CLR7 IF *ABORT*
  473. CLR4 RJM MSV MASS STORAGE VERIFICATION
  474. ZJN CLR5 IF VERIFY GOOD
  475. LDC CLRA * UNIT XX, CHYY WRITE/READ VERIFY ERROR.*
  476. RJM PUE PROCESS UNIT ERROR
  477. MJN CLR4 IF *RECHECK*
  478. NJN CLR7 IF *ABORT*
  479. CLR5 SOD NC
  480. PJN CLR3 IF MORE CHANNELS TO PROCESS
  481.  
  482. * ADVANCE TO NEXT UNIT.
  483.  
  484. AOD LU
  485. LDD SL
  486. RAD T7
  487. SBM SLM
  488. MJN CLR2 IF MORE UNITS TO PROCESS
  489.  
  490. * CLEAR SUSPEND AND IDLE STATUS.
  491.  
  492. CLR6 RJM SDI SET DAT INTERLOCK
  493. CLR7 NJN CLR9 IF *ABORT*
  494. RJM CSP CLEAR SUSPEND STATUS
  495. RJM CAS CHECK ALL SUSPENDS CLEARED
  496. NJN CLR8 IF SUSPEND SET FOR OTHER MACHINES
  497. LDD EQ
  498. STD T5
  499. CMSTF GRDR CLEAR REDEFINITION REQUESTED
  500. CLR8 RJM CDI CLEAR DAT INTERLOCK
  501. LDC ZJNI+WAM4-WAMB USE CORRECT CONDITIONAL JUMP
  502. RJM WAM ENSURE SYNCHRONIZATION OF PROCESSING
  503. NJN CLR9 IF *ABORT*
  504. RJM CDP COMPLETE DEVICE PROCESSING
  505. LDN 0
  506. CLR9 LJM CLRX RETURN
  507.  
  508. CLRA DATA C* UNIT XX, CHYY WRITE/READ VERIFY ERROR.*
  509. RDD TITLE REDEFINE UNITS FUNCTION PROCESSOR.
  510. ** RDD - REDEFINE UNITS. (FUNCTION RDDF).
  511. *
  512. * REDEFINE AN EQUIPMENT BY CHANGING THE UNITS AND OPTIONALLY
  513. * THE CHANNELS. THE CHANGE MAY INVOLVE PHYSICALLY MOVING
  514. * PACKS OR HDAS IN WHICH CASE THE PROCESS IS GUIDED BY
  515. * MESSAGES WHICH APPEAR ON THE *K* DISPLAY AND AT THE USER-S
  516. * CONTROL POINT.
  517. *
  518. * ENTRY (FG) = FLAGS.
  519. * 1 = SPIN DOWN UNITS BEING CHANGED.
  520. * 2 = VERIFY LABELS ON NEW CONFIGURATION.
  521. *
  522. * EXIT (A) .NE. 0 IF OPERATION ABORTED.
  523. *
  524. * USES CM - CM+4, CN - CN+4.
  525. *
  526. * CALLS CLR, GCI, SCH, SDU, SPD, SUU, ULD.
  527. *
  528. * MACROS LDBUF.
  529.  
  530.  
  531. RDD SUBR ENTRY/EXIT
  532. LDD RU
  533. ZJN RDD1 IF NO CHANGE OF UNITS
  534. RJM SPD SUSPEND DEVICE USAGE
  535. NJN RDDX IF REDEFINITION ABORTED
  536. LDD GL
  537. NJN RDD1 IF DEVICE UNAVAILABLE
  538. RJM SDU SPIN DOWN CHANGED UNITS
  539. NJN RDDX IF *ABORT* OR ERROR FLAG SET
  540. RJM SUU SPIN UP UNITS
  541. NJN RDDX IF *ABORT* OR ERROR FLAG SET
  542.  
  543. * SET NEW CONFIGURATION IN MST.
  544.  
  545. RDD1 LDBUF ESTD SET NEW CHANNELS
  546. CRD CN
  547. LDD CN+1 SET NEW CHANNELS IN EST
  548. RJM GCI
  549. ZJN RDD2 IF FULL-TRACK CHANNEL
  550. LDD CN+1 SET HALF-TRACK FLAG
  551. LPC 7377
  552. LMC 400
  553. STD CN+1
  554. RDD2 LDD CN+2 PROCESS SECOND CHANNEL
  555. ZJN RDD5 IF NO SECOND CHANNEL
  556. RJM GCI
  557. ZJN RDD5 IF FULL-TRACK CHANNEL
  558. LDD CN+2 SET HALF-TRACK FLAG
  559. LPC 7377
  560. LMC 400
  561. STD CN+2
  562. RDD5 LDD EQ SET CHANNELS IN EST
  563. RJM SCH
  564. LDBUF MSTD+DDLL SET NEW UNIT LIST
  565. CRD CN
  566. LDD CN
  567. LPC 3777
  568. STD CN
  569. LDD MS
  570. SHN 3
  571. ADN DDLL
  572. CWD CN
  573. RJM ULD UPDATE LINKED DEVICES MST-S
  574. RJM CLR CLEAR SUSPEND AND IDLE AFTER VALIDATION
  575. LJM RDDX RETURN
  576. SPD TITLE SUSPEND PROCESSING ON DEVICE.
  577. ** SPD - SUSPEND PROCESSING ON DEVICE. (FUNCTION RSPF).
  578. *
  579. * THIS FUNCTION SUSPENDS PROCESSING ON A DEVICE SO THAT
  580. * REPAIR OPERATIONS CAN BE EFFECTED. ALSO A DEVICE MAY
  581. * BE SUSPENDED SO THAT A UNIT IN ITS CONFIGURATION MAY
  582. * BE ADDED TO ANOTHER EQUIPMENT.
  583. *
  584. * EXIT (A) .NE. 0 IF THE OPERATION WAS ABORTED OR AN ERROR
  585. * FLAG IS SET AT THE CONTROL POINT.
  586. * (SC) UPDATED TO INDICATE NEW SUSPEND COUNT.
  587. *
  588. * USES CM - CM+4.
  589. *
  590. * CALLS CDI, SDI, SSP, WAM.
  591. *
  592. * MACROS MONITOR, SFA.
  593.  
  594.  
  595. SPD SUBR ENTRY/EXIT
  596.  
  597. * THE *DATI* INTERLOCK IS HELD WHILE SETTING THE SUSPEND
  598. * STATUS ON A DEVICE. SUSPEND STATUS REQUIRES THAT IDLE
  599. * BE SET ON THE DEVICE. THE *DATI* INTERLOCK CONTROLS THE
  600. * CLEARING OF SUSPEND. WHEN THE LAST MACHINE CLEARS IT-S
  601. * SUSPEND STATUS IT ALSO CLEARS DEVICE IDLE. THUS WHEN
  602. * CHECKING TO ENSURE IDLE IS SET SO THAT SUSPEND MAY THEN BE
  603. * SET, THE *DATI* INTERLOCK IS HELD TO ENSURE THAT ANOTHER
  604. * MACHINE IS NOT CLEARING IDLE AT THE SAME TIME.
  605.  
  606. RJM SDI SET *DATI* INTERLOCK
  607. NJN SPDX IF SUSPEND ABORTED
  608.  
  609. * CHECK THAT THE DEVICE IDLE STATUS HAS NOT BEEN CLEARED
  610. * BY ANOTHER MACHINE.
  611.  
  612. LDD EQ OBTAIN UP-TO-DATE MST IN CM
  613. STD CM+1
  614. LDN UTRS
  615. STD CM+3
  616. MONITOR STBM
  617. SFA EST,EQ READ *ACGL* WORD OF MST
  618. ADK EQDE
  619. CRD CM
  620. LDD CM+4
  621. SHN 3
  622. ADN ACGL
  623. CRD CM
  624. LDD CM+4 CHECK REDEFINITION REQUESTED BIT
  625. SHN 21-GRDR
  626. PJN SPD1 IF IDLE NOT SET
  627. RJM SSP SET SUSPEND STATUS
  628. SPD1 RJM CDI CLEAR *DATI* INTERLOCK
  629.  
  630. * IN ORDER TO ENSURE ALL MACHINES ARE SYNCHRONIZED IN
  631. * THEIR PROCESSING OF A DEVICE THE FOLLOWING CODE WAITS
  632. * FOR ANY OTHER MACHINES SHARING THE DEVICE TO SUSPEND
  633. * ACTIVITY.
  634.  
  635. LDC NJNI+WAM4-WAMB USE CORRECT CONDITIONAL JUMP
  636. RJM WAM WAIT FOR ALL MACHINES
  637. NJN SPD2 IF *ABORT*
  638. * LDN 0 INDICATE NO ABORT
  639. SPD2 LJM SPDX RETURN
  640. TITLE UMT - UPDATE SHARED DEVICE MST FROM EXTENDED MEMORY.
  641. ** UMT - UPDATE SHARED DEVICE MST FROM ECS. (FUNCTION RUMF).
  642. *
  643. * ENTRY NO CALL BLOCK PARAMETERS NEEDED.
  644. *
  645. * EXIT MST-S FOR ALL SHARED DEVICES UPDATED FROM ECS.
  646. *
  647. * USES CM - CM+4, CN - CN+4.
  648. *
  649. * MACROS MONITOR, SFA.
  650.  
  651.  
  652. UMT SUBR ENTRY/EXIT
  653. LDD MF
  654. ZJN UMTX IF NOT MULTI-MAINFRAME
  655. LDN ESTP INITIALIZE EST SEARCH
  656. CRD CN
  657. LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  658. STD CN
  659. UMT1 AOD CN ADVANCE EST ORDINAL
  660. LMD CN+3
  661. ZJN UMTX IF END OF EQUIPMENTS
  662. SFA EST,CN READ EST ENTRY
  663. ADK EQDE
  664. CRD CM
  665. LDD CM
  666. SHN 21-13
  667. PJN UMT1 IF NOT MASS STORAGE
  668. SHN 21-11-21+13
  669. PJN UMT1 IF NOT SHARED DEVICE
  670. LDD CN UPDATE MST FROM EXTENDED MEMORY
  671. STD CM+1
  672. LDN UTRS
  673. STD CM+3
  674. MONITOR STBM
  675. UJN UMT1 NEXT EQUIPMENT
  676. CAS TITLE SUBROUTINES.
  677. CAS SPACE 4,10
  678. ** CAS - CHECK ALL SUSPENDS CLEARED.
  679. *
  680. * ENTRY (EQ) = EST ORDINAL.
  681. * (DI) = DAT INDEX.
  682. *
  683. * EXIT (A) = 0 IF SUSPEND CLEARED FOR ALL OTHER MACHINES.
  684. *
  685. * USES T1 - T3.
  686. *
  687. * CALLS RDE.
  688. *
  689. * MACROS SFA.
  690.  
  691.  
  692. CAS SUBR ENTRY/EXIT
  693. LDD MF
  694. ZJN CASX IF NOT MMF
  695. SFA EST,EQ TEST FOR SHARED DEVICE
  696. ADK EQDE
  697. CRD CM
  698. LDD CM
  699. LPC 1000
  700. ZJN CASX IF DEVICE NOT SHARED
  701. RJM RDE READ DAT ENTRY FOR DEVICE
  702. NJN CASX IF *ABORT*
  703. LDC BFMS+2+DALL*5
  704. STD T1
  705. LDN 1 PRESET SEARCH MASK
  706. STD T2
  707. LDN MXMF
  708. STD T3
  709. CAS1 LDM TDAT+5+4
  710. LMD T2
  711. SBM TDAT+5+4
  712. PJN CAS2 IF NOT SHARING WITH THIS MACHINE
  713. LDI T1
  714. SHN 0-10
  715. LMN 3
  716. ZJN CAS4 IF DEVICE IS DOWN
  717. CAS2 LDD T2 ADVANCE MACHINE MASK AND INDEX
  718. RAD T2
  719. LDN LLLL*5
  720. RAD T1
  721. SOD T3
  722. NJN CAS1 IF MORE MACHINES
  723. CAS3 LJM CASX RETURN
  724.  
  725. CAS4 LDN 1 SET REPLY STATUS
  726. UJN CAS3 RETURN
  727. CDP SPACE 4,10
  728. ** CDP - COMPLETE DEVICE PROCESSING.
  729. *
  730. * ENTRY (EQ) = EST ORDINAL.
  731. *
  732. * CALLS C2D.
  733. *
  734. * MACROS MESG.
  735.  
  736.  
  737. CDP SUBR ENTRY/EXIT
  738. LDD EQ CONVERT UPPER TWO DIGITS OF EST ORDINAL
  739. SHN -3
  740. RJM C2D
  741. STM CDPA+1
  742. LDD EQ CONVERT LOWER DIGIT OF EST ORDINAL
  743. LPN 7
  744. SHN 6
  745. ADC 2R0,
  746. STM CDPA+2
  747. MESG CDPA
  748. UJN CDPX RETURN
  749.  
  750. CDPA DATA C*EQXXX, REDEFINITION COMPLETE.*
  751. CLC SPACE 4,10
  752. ** CLC - CHECK FOR LEGAL COMMAND.
  753. *
  754. * ENTRY (A) = COMMAND MASK TO CHECK.
  755. *
  756. * EXIT (A) .NE. 0 IF COMMAND ENTERED.
  757. * LEGAL COMMANDS CLEARED WHEN (A) .NE. 0.
  758. *
  759. * USES CM - CM+4.
  760. *
  761. * MACROS COMMAND, LDBUF, PAUSE.
  762.  
  763.  
  764. .1 DECMIC .ABORT-1 SET BIT NUMBER MICRO FOR *ABORT*
  765. CLC1 LDN 1BS".1" ERROR FLAG TREATED AS *ABORT* COMMAND
  766. CLC2 BSS 0
  767. CLCA LPC *
  768. ZJN CLCX IF NO LEGAL COMMAND FOUND
  769. COMMAND CLEAR LEGAL COMMANDS
  770. LDN 1 RETURN STATUS
  771.  
  772. CLC SUBR ENTRY/EXIT
  773. STM CLCA+1 SET LEGAL COMMAND MASK
  774. SHN -14
  775. LMC LPCI
  776. STM CLCA
  777. PAUSE CHECK ERROR FLAG
  778. LDD CM+1
  779. SBN ODET
  780. PJN CLC1 IF ERROR FLAG SET
  781. LDBUF TCOM READ LEGAL COMMANDS
  782. CRD CM
  783. LDD CM+3
  784. SHN 14
  785. LMD CM+4
  786. LJM CLC2 RETURN
  787. CNR SPACE 4,10
  788. ** CNR - CHECK NOT READY STATUS ON DEVICE.
  789. *
  790. * ENTRY (T6) = TRACK TO READ.
  791. * (T5) = EST ORDINAL.
  792. *
  793. * EXIT (A) = 0 IF UNIT HAS NOT READY STATUS.
  794. * .GT. 0 IF UNIT HAS READY STATUS.
  795. * .LT. 0 IF MASS STORAGE READ ERROR.
  796. *
  797. * CALLS RDS.
  798. *
  799. * MACROS ENDMS, SETMS.
  800.  
  801.  
  802. CNR1 ENDMS
  803. LDN 1 SET READY STATUS
  804.  
  805. CNR SUBR ENTRY/EXIT
  806. SETMS IO,(AD,DF,NR)
  807. LDC BFMS READ SECTOR
  808. RJM RDS
  809. PJN CNR1 IF NO MASS STORAGE ERROR
  810. LPN 77 CHECK NOT READY STATUS
  811. LMN NRDE
  812. ZJN CNRX IF NOT READY
  813. LCN 1 SET READ ERROR
  814. UJN CNRX RETURN
  815. CSP SPACE 4,10
  816. ** CSP - CLEAR SUSPEND STATUS.
  817. *
  818. * ENTRY (MS) = MST ADDRESS/10B.
  819. * (SC) = SUSPEND COUNT.
  820. *
  821. * USES SC, T5, CM - CM+7.
  822. *
  823. * MACROS CMSTF, MONITOR.
  824.  
  825.  
  826. CSP SUBR ENTRY/EXIT
  827. LDM SCFA
  828. LPN 77
  829. ZJN CSP1 IF EQUIPMENT NOT ASSIGNED
  830. SOM SCFA CLEAR ASSIGNMENT FLAG
  831. LDD CP GET EJT ORDINAL
  832. ADK TERW
  833. CRD CM+3
  834. LDD EQ
  835. LMC 4000 INDICATE EJT ORDINAL PASSED
  836. STD CM+1
  837. MONITOR DEQM
  838. CSP1 LDD SC
  839. ZJN CSPX IF EQUIPMENTS NOT SUSPENDED
  840. LDD EQ SET DEVICE STATE = ON
  841. STD T5
  842. STD CM+1
  843. LDN **
  844. CSPA EQU *-1
  845. ZJN CSP2 IF DEVICE STATE UNCHANGED
  846. LDK ONES
  847. STD CM+2
  848. MONITOR SEQM
  849. SOD SC UPDATE SUSPEND COUNT
  850. CSP2 CMSTF LFPR FORCE UPDATE OF LOCAL MST TO ECS
  851. UJP CSPX RETURN
  852. C3D SPACE 4,10
  853. ** C3D - CONVERT THREE DIGITS OF DECIMAL DISPLAY CODE.
  854. *
  855. * ENTRY (A) = NUMBER TO CONVERT.
  856. *
  857. * EXIT (A) = THREE DISPLAY CODE DIGITS.
  858. * (A) = 999 IN DISPLAY CODE IF .GT. THREE DIGITS.
  859. *
  860. * USES CM - CM+4.
  861.  
  862.  
  863. C3D3 LDC 3R999
  864.  
  865. C3D SUBR ENTRY/EXIT
  866. STD CM+3
  867. ADC -999D
  868. PJN C3D3 IF .GE. 999
  869. LDN 2 PRESET DIVISION
  870. STD CM+4
  871. LDN 0
  872. STD CM
  873. STD CM+1
  874. STD CM+2
  875. C3D1 LDD CM+3
  876. SBM C3DA,CM+4
  877. MJN C3D2 IF NEXT DECIMAL PLACE
  878. STD CM+3
  879. AOM CM,CM+4
  880. UJN C3D1 CONTINUE DIVISION
  881.  
  882. C3D2 SOD CM+4
  883. PJN C3D1 IF NOT COMPLETE
  884. LDD CM+2 ASSEMBLE DIGITS
  885. SHN 6
  886. ADD CM+1
  887. SHN 6
  888. ADD CM
  889. ADC 3R000
  890. UJN C3DX RETURN
  891.  
  892. C3DA CON 1,10D,100D DIVISION TABLE
  893. DOS SPACE 4,20
  894. ** DOS - DELAY APPROXIMATELY ONE SECOND.
  895. *
  896. * THE PURPOSE OF THIS ROUTINE IS TO AVOID CHECKING THE DEVICE
  897. * TOO OFTEN. THE TIME INTERVAL IS NOT REALLY IMPORTANT.
  898. *
  899. * USES T1, T2.
  900. *
  901. * MACROS DELAY, PAUSE.
  902.  
  903.  
  904. DOS SUBR ENTRY/EXIT
  905. LDN 40D SET DELAY INCREMENT PARAMETERS
  906. STD T2
  907. DOS1 LDC 100D
  908. STD T1
  909. DOS2 DELAY
  910. PAUSE NE
  911. SOD T1
  912. NJN DOS2 IF NOT END OF INNER INCREMENT
  913. SOD T2
  914. NJN DOS1 IF NOT END OF DELAY
  915. UJN DOSX RETURN
  916. GCI SPACE 4,10
  917. ** GCI - GET CHANNEL CONTROLWARE TABLE INDEX.
  918. *
  919. * ENTRY (A) = CHANNEL(S).
  920. *
  921. * EXIT (A) = 0, IF FULL-TRACK CONTROLLER CHANNEL.
  922. * .NE. 0, OTHERWISE.
  923. * (T2) = CHANNEL BEING PROCESSED.
  924. *
  925. * USES T0, T1, T2, CM - CM+4.
  926.  
  927.  
  928. GCI SUBR ENTRY/EXIT
  929. LPN 37 SAVE CHANNEL NUMBER
  930. STD T1
  931. STD T2
  932. LCN 0
  933. STD T0
  934. GCI1 AOD T0 INCREMENT CM WORD OFFSET
  935. LCN 5 DIVIDE BY 5
  936. RAD T1
  937. PJN GCI1 IF INCORRECT CM WORD OFFSET
  938. LDC ** FWA OF CHANNEL CONTROLWARE TABLE
  939. GCIA EQU *-2
  940. ADD T0 ADD CORRECT CM WORD OFFSET
  941. CRD CM
  942. LDM CM+5,T1
  943. LPN 77
  944. LMN /DSL/FTCW
  945. ZJN GCIX IF FULL TRACK CONTROLWARE CHANNEL
  946. LMN /DSL/FMCW&/DSL/FTCW
  947. UJN GCIX RETURN
  948. KMS SPACE 4,10
  949. ** KMS - SEND MESSAGE TO K-DISPLAY.
  950. *
  951. * ENTRY (A) = MESSAGE ADDRESS.
  952. *
  953. * USES T1 - T2.
  954. *
  955. * MACROS DELAY, PAUSE.
  956.  
  957.  
  958. KMS SUBR ENTRY/EXIT
  959. STD T1
  960. LDN 0
  961. STD T2
  962. KMS1 LDI T1 MOVE MESSAGE TO BUFFER
  963. ZJN KMS2 IF END OF MESSAGE
  964. STM KMSA,T2
  965. AOD T1
  966. AOD T2
  967. LMN 60D/2
  968. NJN KMS1 IF NOT END OF LINE
  969. KMS2 LDC 2R BLANK FILL MESSAGE
  970. STM KMSA,T2
  971. AOD T2
  972. SBN 60D/2
  973. MJN KMS2 IF NOT END OF LINE
  974. LDN 6
  975. STD T1
  976. LDD IR+3 WRITE MESSAGE TO K-DISPLAY
  977. SCN 77
  978. SHN 6
  979. ADD IR+2
  980. ADD RA
  981. SHN 6
  982. CWM KMSA,T1
  983. KMS3 DELAY PAUSE FOR MESSAGE TO BE SEEN
  984. PAUSE NE
  985. SOD T2
  986. PJN KMS3 IF MORE DELAY
  987. LJM KMSX RETURN
  988.  
  989. KMSA BSS 60D/2+1
  990. LDB SPACE 4,10
  991. ** LDB - LOAD CALL BLOCK BUFFER ADDRESS.
  992. *
  993. * EXIT (A) = ABSOLUTE ADDRESS OF CALL BLOCK.
  994.  
  995.  
  996. LDB SUBR ENTRY/EXIT
  997. LDD IR+3 GET CALL BLOCK ADDRESS FROM *IR*
  998. LPN 77
  999. SHN 6
  1000. ADD RA
  1001. SHN 6
  1002. ADD IR+4
  1003. UJN LDBX RETURN
  1004. PSA SPACE 4,10
  1005. ** PSA - PROCESS SERVO ADJUSTMENT.
  1006. *
  1007. * ENTRY (T5) = 0.
  1008. * (T6) = LABEL TRACK.
  1009. * (T7) = CURRENT SECTOR.
  1010. *
  1011. * EXIT (A) .NE. 0 IF *ABORT*.
  1012. *
  1013. * USES CN - CN+1, T6 - T7.
  1014. *
  1015. * CALLS C3D, SPU, WFC.
  1016. *
  1017. * MACROS COMMAND, EXECUTE, MESG, SETMS.
  1018.  
  1019.  
  1020. PSA9 LDN 0 RETURN STATUS
  1021.  
  1022. PSA SUBR ENTRY/EXIT
  1023. SETMS STATUS
  1024. LDD CM+3
  1025. LPC 3777
  1026. LMC 2RDM
  1027. ZJN PSA1 IF 885
  1028. LMN 2RDQ&2RDM
  1029. NJN PSA9 IF NOT 885
  1030. PSA1 LDD T7 SAVE LOGICAL SECTOR NUMBER
  1031. STD CN
  1032. LDD RM SET UNIT IN MESSAGES
  1033. RJM SPU
  1034. STM PSAB+24
  1035. STM PSAC+3
  1036. STM PSAD+3
  1037. PSA2 MESG PSAD * UNIT XX SERVO TIMING IN PROGRESS.*
  1038. LDN 0 SET *0SI* FUNCTION
  1039. STM OVLA
  1040. EXECUTE 0SI,OVLA+1
  1041. STM PSAA SET PROCESSOR ADDRESS
  1042. LDN 0 SET TRACK TO ZERO
  1043. STD T6
  1044. LDD CN RESTORE SECTOR NUMBER
  1045. STD T7
  1046. RJM * PERFORM SERVO CHECK
  1047. PSAA EQU *-1
  1048. MJN PSA4 IF SERVO CHECK UNSUCCESSFUL
  1049. STD CN+1 SAVE TIME
  1050. NJN PSA3 IF NOT OUT OF RANGE
  1051. LDC 999D SET OUT OF RANGE
  1052. PSA3 RJM C3D CONVERT THREE DIGITS TO DECIMAL DISPLAY
  1053. STM PSAC+14
  1054. SHN -14
  1055. LMC 2L
  1056. STM PSAC+13
  1057. LDD CN+1
  1058. ADC -325D
  1059. MJN PSA5 IF OUT OF RANGE
  1060. SBN 346D-325D
  1061. PJN PSA5 IF OUT OF RANGE
  1062. COMMAND (ABORT,NEXT,RECHECK) ENABLE COMMANDS
  1063. UJN PSA6 SET MESSAGE
  1064.  
  1065. PSA4 COMMAND (ABORT,IGNORE,RECHECK) ENABLE COMMANDS
  1066. MESG PSAB SET ERROR MESSAGE
  1067. UJN PSA7 WAIT FOR COMMAND
  1068.  
  1069. PSA5 COMMAND (ABORT,IGNORE,RECHECK) ENABLE COMMANDS
  1070. PSA6 MESG PSAC SET TIMING DATA MESSAGE
  1071. PSA7 LDD LT RESET TO LABEL TRACK
  1072. STD T6
  1073. RJM WFC WAIT FOR COMMAND
  1074. PJN PSA8 IF NOT *RECHECK*
  1075. LJM PSA2 RECHECK SERVO TIMING
  1076.  
  1077. PSA8 LJM PSAX RETURN WITH STATUS
  1078.  
  1079. PSAB DATA C* ERROR IN PERFORMING SERVO CHECK ON UNITXX.*
  1080. PSAC DATA C* UNIT XX SERVO TIMING= XXX. ACCEPTABLE RANGE IS 325
  1081. ,TO 345.*
  1082. PSAD DATA C* UNIT XX SERVO TIMING IN PROGRESS.*
  1083. PUE SPACE 4,10
  1084. ** PUE - PROCESS UNIT ERROR.
  1085. *
  1086. * ENTRY (A) = ERROR MESSAGE ADDRESS.
  1087. * (CH) = CHANNEL.
  1088. *
  1089. * EXIT (A) .LT. 0 IF *RECHECK* COMMAND ENTERED.
  1090. * (A) = 0 IF *IGNORE* OR *NEXT* COMMAND ENTERED.
  1091. * (A) .GT. 0 IF *ABORT* COMMAND ENTERED.
  1092. *
  1093. * USES T1.
  1094. *
  1095. * CALLS C2D, SPU, WFC.
  1096. *
  1097. * MACROS COMMAND, MESG.
  1098.  
  1099.  
  1100. PUE SUBR ENTRY/EXIT
  1101. STD T1
  1102. LDD RM SET UNIT AND CHANNEL IN MESSAGE
  1103. RJM SPU
  1104. STM 3,T1
  1105. LDD CH
  1106. RJM C2D
  1107. STM 6,T1
  1108. COMMAND (ABORT,IGNORE,RECHECK)
  1109. LDD T1
  1110. MESG *
  1111. RJM WFC WAIT FOR COMMAND
  1112. LJM PUEX RETURN
  1113. RDE SPACE 4,20
  1114. ** RDE - READ DAT ENTRY FROM EXTENDED MEMORY.
  1115. *
  1116. * ENTRY (MF) = LINK EQUIPMENT.
  1117. * (DI) = DAT INDEX.
  1118. *
  1119. * EXIT (A) .NE. 0 IF *ABORT*.
  1120. * (TDAT) = DAT ENTRY.
  1121. * (BFMS) = DAT TRACK FOR THIS EQUIPMENT.
  1122. *
  1123. * USES T3, CM - CM+4, T5 - T7.
  1124. *
  1125. * CALLS RDS.
  1126. *
  1127. * MACROS COMMAND, ENDMS, IFCOM, MESG, SETMS.
  1128.  
  1129.  
  1130. RDE SUBR ENTRY/EXIT
  1131. LDD MF SET LINK EQUIPMENT
  1132. STD T5
  1133. SETMS IO,(NR,DF)
  1134.  
  1135. * SET POINTERS TO READ DAT.
  1136.  
  1137. LDD CM+4 GET DAT POINTER
  1138. SHN 3
  1139. ADN ALGL
  1140. CRD CM
  1141. LDD CM+4 SET DAT TRACK
  1142. STD T6
  1143. LDD DI SET DAT SECTOR
  1144. SHN 21-4
  1145. STD T7
  1146. SHN -14 SET DAT SECTOR INDEX
  1147. STD T3
  1148. SHN 2 SET INDEX * 5
  1149. RAD T3
  1150.  
  1151. * READ DAT.
  1152.  
  1153. LDC BFMS READ SECTOR
  1154. RJM RDS
  1155. PJN RDE2 IF NO ERROR
  1156. MESG RDEA ERROR ON LINK DEVICE
  1157. COMMAND (ABORT,IGNORE) SET LEGAL COMMANDS
  1158. RDE1 IFCOM IGNORE,RDE2 IF *IGNORE*
  1159. IFCOM ABORT,RDEX IF *ABORT*
  1160. UJN RDE1 RECHECK COMMAND ENTRY
  1161.  
  1162. RDE2 LDN 0 INITIALIZE BUFFER INDEX
  1163. STD CM
  1164. RDE3 LDM BFMS+2,T3
  1165. STM TDAT,CM
  1166. AOD T3 ADVANCE POINTERS
  1167. AOD CM
  1168. LMN 5*2
  1169. NJN RDE3 IF TWO WORDS NOT MOVED
  1170. LDM TDAT+4 SET DAT TRACK FOR THIS EQUIPMENT
  1171. STD T6
  1172. LDN 0
  1173. STD T7
  1174. LDC BFMS READ DAT TRACK
  1175. RJM RDS
  1176. PJN RDE5 IF NO ERROR
  1177. MESG RDEA ERROR ON LINK DEVICE
  1178. COMMAND (ABORT,IGNORE) SET LEGAL COMMANDS
  1179. RDE4 IFCOM IGNORE,RDE5 IF *IGNORE*
  1180. IFCOM ABORT,RDEX IF *ABORT*
  1181. UJN RDE4 RECHECK COMMAND ENTRY
  1182.  
  1183. RDE5 ENDMS
  1184. LJM RDEX RETURN
  1185.  
  1186. RDEA DATA C*ERROR ON LINK DEVICE.*
  1187. RRD SPACE 4,10
  1188. ** RRD - RESET *RD* DEVICE FIELDS.
  1189. *
  1190. * ENTRY (RM) = MST ADDRESS/10B OF *RD* DEVICE.
  1191. * (EQ) = ORIGINAL EST ORDINAL.
  1192. *
  1193. * USES CM - CM+4, CN - CN+4.
  1194. *
  1195. * CALLS SCH.
  1196. *
  1197. * MACROS MONITOR.
  1198.  
  1199.  
  1200. RRD SUBR ENTRY/EXIT
  1201. LDM SCFB
  1202. ZJN RRDX IF *RD* DOES NOT NEED TO BE RESET
  1203.  
  1204. * RESET EST/MST FIELDS.
  1205.  
  1206. LDN ZERL CLEAR CHANNELS
  1207. CRD CM
  1208. LDD RM CLEAR MST WORDS
  1209. SHN 3
  1210. ADN MDGL
  1211. CWD CM
  1212. ADN DILL-MDGL
  1213. CWD CM
  1214. ADN DDLL-DILL
  1215. CWD CM
  1216. LDN ZERL CLEAR CHANNELS
  1217. CRD CN
  1218. LDN 0
  1219. RJM SCH
  1220. LDC 2RRD RESET *RD* EQUIPMENT TYPE
  1221. STD CM+3
  1222. LDN SMNS SET MNEMONIC
  1223. STD CM+2
  1224. MONITOR SEQM
  1225. * LDN 0
  1226. STM SCFB CLEAR *RD* ALTERED FLAG
  1227. LJM RRDX RETURN
  1228. SCF SPACE 4,20
  1229. ** SCF - SET COMMON *RD* DEVICE FIELDS.
  1230. *
  1231. * ENTRY (CN - CN+4) = EST ENTRY.
  1232. * (BFMS) = MST ENTRY.
  1233. * (EQ) = ORIGINAL EST ORDINAL.
  1234. *
  1235. * EXIT (A) .NE. 0 IF AN ERROR FLAG IS SET IN THE CPA.
  1236. * (T5) = 0.
  1237. * (T6) = LABEL TRACK.
  1238. * (T7) = 0.
  1239. * (LU) = 0.
  1240. *
  1241. * USES T5, T7 - CM+3.
  1242. *
  1243. * CALLS SCH.
  1244. *
  1245. * MACROS DELAY, MONITOR, PAUSE.
  1246.  
  1247.  
  1248. SCF SUBR ENTRY/EXIT
  1249. SCFA LDN 0
  1250. * LDN 1 (ON SECOND CALL)
  1251. NJP SCF2 IF DEVICE ALREADY ASSIGNED
  1252. LDD CP
  1253. ADK TERW
  1254. CRD T7
  1255. LDD EQ SET ORIGINAL EST ORDINAL
  1256. STD T5
  1257. SCF1 DELAY
  1258. PAUSE
  1259. LDD CM+1
  1260. NJN SCFX IF ERROR FLAG IS SET
  1261. LDD T5 SET EST ORDINAL
  1262. LMC 4000
  1263. STD CM+1
  1264. LDK RVES
  1265. STD CM+2
  1266. LDD T7 SPECIFY EJT ORDINAL
  1267. STD CM+3
  1268. MONITOR REQM
  1269. LDD CM+1
  1270. ZJN SCF1 IF EQUIPMENT NOT ASSIGNED
  1271. AOM SCFA INDICATE ASSIGNED EQUIPMENT
  1272. SCF2 LDN 0 CLEAR DEVICE ACTIVITY/SET STATE = ON
  1273. STM BFMS+DALL*5
  1274. STM BFMS+DALL*5+1
  1275. LDD RM SET PARAMETERS IN *RD* DEVICE
  1276. SHN 3
  1277. ADN MDGL
  1278. CWM BFMS+MDGL*5,ON
  1279. ADN DILL-MDGL-1
  1280. CWM BFMS+DILL*5,ON
  1281. ADN DDLL-DILL-1
  1282. CWM BFMS+DDLL*5,ON
  1283. LDN 0 SET CHANNELS
  1284. RJM SCH
  1285. LDN 0
  1286. STD CM+1
  1287. LDD CN+3 SET EQUIPMENT TYPE IN EQUIPMENT 0
  1288. STD CM+3
  1289. LDN SMNS SET MNEMONIC
  1290. STD CM+2
  1291. MONITOR SEQM
  1292. SFA EST,EQ
  1293. ADN EQAE
  1294. CRD CM
  1295. LDD CM+2 SET INSTRUCTION PLUG FOR DRIVER
  1296. STM SCFC+4
  1297. LDN 1
  1298. STD CM+1
  1299. LDD MA
  1300. CWM SCFC,ON
  1301. LDN 0 SET ADDRESS FOR *RD* DEVICE
  1302. SFA EST
  1303. STD CM+4
  1304. SHN -14
  1305. STD CM+3
  1306. MONITOR UTEM
  1307. * LDN 0 PRESET VALIDATION LOOP
  1308. STD LU
  1309. STD T5
  1310. STD T7
  1311. LDD LT
  1312. STD T6
  1313. AOM SCFB FLAG *RD* ALTERED
  1314. SETMS IO,(AD,DF,NR)
  1315. LDM MSD CHECK STATUS
  1316. LPC 100
  1317. LJM SCFX RETURN
  1318.  
  1319. SCFB CON 0 *RD* DEVICE ALTERED FLAG
  1320. SCFC VFD 6/EQAE,6/12D,6/24D,42/0
  1321. SCH SPACE 4,10
  1322. ** SCH - SET CHANNEL(S) IN EST.
  1323. *
  1324. * ENTRY (A) = EQUIPMENT.
  1325. * (CN+1 - CN+2) = CHANNEL(S).
  1326. *
  1327. * USES CM - CM+4.
  1328. *
  1329. * MACROS MONITOR.
  1330.  
  1331.  
  1332. SCH SUBR ENTRY/EXIT
  1333. STD CM+1 ENTER CALL PARAMETERS
  1334. LDD CN+1
  1335. STD CM+2
  1336. LDD CN+2
  1337. STD CM+4
  1338. LDN SCHS SET CHANNEL(S) IN EST
  1339. STD CM+3
  1340. MONITOR SCSM SET CHANNELS
  1341. UJN SCHX RETURN
  1342. SDI SPACE 4,10
  1343. ** SDI - SET *DATI* INTERLOCK.
  1344. *
  1345. * ENTRY (MF) = MMF LINK DEVICE.
  1346. *
  1347. * EXIT (A) .NE. 0 IF ABORT COMMAND ENTERED.
  1348. *
  1349. * USES CN - CN+4.
  1350. *
  1351. * CALLS IFR.
  1352. *
  1353. * MACROS COMMAND, IFCOM.
  1354.  
  1355.  
  1356. SDI2 COMMAND RESET LEGAL COMMANDS
  1357. LDC 4000 SET DAT INTERLOCK INDICATION
  1358. STD CN+2
  1359. LDC MMFL WRITE INTERLOCK INDICATOR
  1360. CWD CN
  1361. SDI3 LDN 0 RETURN STATUS
  1362.  
  1363. SDI SUBR ENTRY/EXIT
  1364. LDD MF
  1365. ZJN SDIX IF NOT MULTI-MAINFRAME
  1366. LDC MMFL CHECK *DATI* INTERLOCK HELD
  1367. CRD CN
  1368. LDD CN+2
  1369. NJN SDI3 IF INTERLOCK PREVIOUSLY SET
  1370. COMMAND ABORT ENABLE *ABORT* COMMAND
  1371.  
  1372. SDI1 LDN DATI ATTEMPT TO SET INTERLOCK
  1373. RJM IFR
  1374. LDD CM+1
  1375. ZJN SDI2 IF INTERLOCK SET
  1376. IFCOM ABORT,SDIX IF ABORT COMMAND ENTERED
  1377. UJN SDI1 RECHECK INTERLOCK
  1378. SDU SPACE 4,10
  1379. ** SDU - SPIN DOWN UNITS.
  1380. *
  1381. * THIS ROUTINE MONITORS THE SPINNING DOWN OF UNITS TO BE
  1382. * RECONFIGURED OR RECABLED.
  1383. *
  1384. * ENTRY (RU) = UNITS TO BE RECONFIGURED OR RECABLED.
  1385. *
  1386. * EXIT (A) .NE. 0 IF *ABORT* ENTERED OR A CONTROL POINT
  1387. * ERROR FLAG IS SET.
  1388. *
  1389. * USES LU, T7, CN - CN+4.
  1390. *
  1391. * CALLS CNR, DOS, SCF, SPU.
  1392. *
  1393. * MACROS COMMAND, IFCOM, MESG, SFA.
  1394.  
  1395.  
  1396. SDU4 LDN 0
  1397.  
  1398. SDU SUBR ENTRY/EXIT
  1399. LDN MSTL SET *RD* DEVICE
  1400. STD T7
  1401. SFA EST,EQ SET OLD DEVICE PARAMETERS
  1402. ADK EQDE
  1403. CRD CN
  1404. LDD MS
  1405. SHN 3
  1406. CRM BFMS,T7
  1407. RJM SCF SET COMMON *RD* DEVICE FIELDS
  1408. NJN SDUX IF ERROR FLAG SET
  1409. UJN SDU2 ENTER LOOP
  1410.  
  1411. * FIND UNITS TO PROCESS AND WAIT FOR *NOT READY*.
  1412.  
  1413. SDU1 COMMAND CLEAR COMMAND LIST
  1414. AOD LU ADVANCE UNIT
  1415. LDD SL
  1416. RAD T7
  1417. SBM SLM
  1418. PJN SDU4 IF NO MORE UNITS
  1419. SDU2 LDD RU CHECK IF PROCESSING THIS UNIT
  1420. LMM TMSK,LU
  1421. SBD RU
  1422. PJN SDU1 IF NOT THIS UNIT
  1423. LDD RM
  1424. RJM SPU SET PHYSICAL UNIT NUMBER
  1425. STM SDUA+10
  1426. MESG SDUA * SPIN DOWN UNIT XX.*
  1427. SDU3 RJM CNR CHECK NOT READY
  1428. ZJN SDU1 IF NOT READY
  1429. COMMAND (ABORT,IGNORE)
  1430. IFCOM IGNORE,SDU1 IF *IGNORE*
  1431. IFCOM ABORT,SDUX IF *ABORT*
  1432. RJM DOS DELAY
  1433. UJN SDU3 RETRY
  1434.  
  1435. SDUA DATA C* SPIN DOWN UNIT XX.*
  1436. SEQ SPACE 4,10
  1437. ** SEQ - SET EQUIPMENT PARAMETERS.
  1438. *
  1439. * EXIT (DI) = DAT INDEX FOR EQUIPMENT.
  1440. * (EQ) = EST ORDINAL FROM CALL BLOCK.
  1441. * (GL) = DEVICE UNAVAILABLE FLAG.
  1442. * (LT) = LABEL TRACK FOR EQUIPMENT.
  1443. * (MS) = MST ADDRESS FOR EQUIPMENT.
  1444. * (NU) = NUMBER OF UNITS IN EQUIPMENT.
  1445. * (RU) = UNITS FOR RECONFIGURATION OR REPAIR.
  1446. * (SL) = SINGLE UNIT SECTOR LIMIT.
  1447. *
  1448. * USES DI, EQ, GL, LT, MS, NU, RU, SL, CM - CM+4, T5 - T7.
  1449. *
  1450. * MACROS LDBUF, MONITOR, SFA.
  1451.  
  1452.  
  1453. SEQ SUBR ENTRY/EXIT
  1454. LDBUF CUEQ GET CURRENT EST ORDINAL
  1455. CRD CM
  1456. ADN URCD-CUEQ GET RECONFIGURATION AND REPAIR UNITS
  1457. CRD CM-1
  1458. ADN ESTD-URCD GET EST ENTRY
  1459. CRD CM-2
  1460. ADN MSTD-ESTD+ALGL GET LABEL TRACK
  1461. CRD CM-3
  1462. LDD CM+4 SET EST ORDINAL
  1463. STD EQ
  1464. LDD CM-1+4 SET UNITS
  1465. STD RU
  1466. LDD CM-2+4 SET MST ADDRESS
  1467. STD MS
  1468. LDD CM-3+1 SET LABEL TRACK
  1469. STD LT
  1470. LDBUF MSTD+MDGL READ DAT INDEX
  1471. CRD CM-2
  1472. ADN DDLL-MDGL READ NUMBER OF UNITS
  1473. CRD CM
  1474. LDD CM-2 SET DAT INDEX
  1475. LPC 377
  1476. STD DI
  1477. LDD CM-2+1 SET SINGLE UNIT SECTOR LIMIT
  1478. LPC 3777
  1479. STD SL
  1480. LDD CM SET NUMBER OF UNITS
  1481. LPN 7
  1482. ADN 1
  1483. STD NU
  1484. LDD CM
  1485. SHN 21-12
  1486. PJN SEQ1 IF NOT NULL EQUIPMENT
  1487. SOD NU
  1488. SEQ1 SFA EST,EQ SET DEVICE UNAVAILABLE FLAG
  1489. ADK EQDE
  1490. CRD CM
  1491. LDD CM
  1492. LPC 100
  1493. STD GL
  1494. SEQ2 LJM SEQX RETURN
  1495. SLC SPACE 4,10
  1496. ** SLC - SET LEGAL COMMAND.
  1497. *
  1498. * ENTRY (A) = BIT MASK OF LEGAL COMMANDS.
  1499. *
  1500. * MACROS LDBUF.
  1501.  
  1502.  
  1503. SLC1 LDN ZERL CLEAR LEGAL COMMANDS
  1504. CRM SLCA,ON
  1505. LDBUF TCOM CLEAR COMMANDS ENTERED
  1506. CWM SLCA,ON
  1507. SBN 1+TCOM-TPAR
  1508. CWM SLCA,ON
  1509.  
  1510. SLC SUBR ENTRY/EXIT
  1511. ZJN SLC1 IF CLEARING COMMANDS
  1512. STM SLCA+4 CLEAR LEGAL COMMANDS
  1513. SHN -14
  1514. STM SLCA+3
  1515. LDBUF TPAR SET LEGAL COMMANDS
  1516. CWM SLCA,ON
  1517. UJN SLCX RETURN
  1518.  
  1519. SLCA BSSZ 5 LEGAL COMMANDS
  1520. SNC SPACE 4,10
  1521. ** SNC - SET CHANNEL SPECIFIED BY *NC*.
  1522. *
  1523. * ENTRY (NC) = CHANNEL FLAG, 0 = FIRST CHANNEL.
  1524. *
  1525. * EXIT (A) = 0 IF CHANNEL SET IN *RD* DEVICE.
  1526. * (A) .NE. 0 IF CHANNEL DOWN OR NOT PRESENT.
  1527. *
  1528. * USES CH, CM - CM+4, CN - CN+4.
  1529. *
  1530. * CALLS SCH.
  1531. *
  1532. * MACROS LDBUF.
  1533.  
  1534.  
  1535. SNC2 LDN 1 SET CHANNEL NOT PRESENT
  1536.  
  1537. SNC SUBR ENTRY/EXIT
  1538. LDD NC
  1539. ZJN SNC1 IF FIRST CHANNEL
  1540. LDD CN+2
  1541. ZJN SNC2 IF NO SECOND CHANNEL
  1542. STD CN+1
  1543. LDN 0
  1544. SNC1 STD CN+2
  1545. LPN 77
  1546. STD CH
  1547. SHN 21-12
  1548. MJN SNCX IF DOWN CHANNEL
  1549. LDN 0
  1550. RJM SCH SET CHANNEL IN EST
  1551. LDBUF ESTD RESTORE EST
  1552. CRD CN
  1553. LDN 0
  1554. UJN SNCX RETURN
  1555. SPU SPACE 4,10
  1556. ** SPU - SET PHYSICAL UNIT.
  1557. *
  1558. * ENTRY (LU) = LOGICAL UNIT NUMBER.
  1559. * (A) = MST ADDRESS CONTAINING UNIT.
  1560. *
  1561. * EXIT (PU) = UNIT NUMBER.
  1562. * (A) = DISPLAY CODE UNIT NUMBER.
  1563. *
  1564. * USES PU, T0, CM - CM+4.
  1565. *
  1566. * CALLS C2D.
  1567.  
  1568.  
  1569. SPU SUBR ENTRY/EXIT
  1570. SHN 3 READ *DDLL* MST WORD
  1571. ADN DDLL
  1572. CRD CM
  1573. LDN CM*2+11 SET BYTE POINTER = CM+4 - LU/2
  1574. SBD LU
  1575. SHN 21
  1576. STD T0
  1577. LMD T0
  1578. LMI T0
  1579. MJN SPU1 IF FIRST UNIT IN BYTE
  1580. SHN -6
  1581. SPU1 LPN 77
  1582. STD PU
  1583. RJM C2D CONVERT TO DISPLAY CODE
  1584. UJN SPUX RETURN
  1585. SSP SPACE 4,20
  1586. ** SSP - SET SUSPEND STATUS ON DEVICE.
  1587. *
  1588. * ENTRY (EQ) = EST ORDINAL.
  1589. * (MS) = MST ADDRESS.
  1590. * (SC) = CURRENT COUNT OF SUSPENDED DEVICES.
  1591. *
  1592. * EXIT (A) .NE. 0 IF A CONTROL POINT ERROR FLAG IS SET.
  1593. * (SC) = UPDATED SUSPEND COUNT.
  1594. *
  1595. * USES CM+1, CM+2, SC, T5.
  1596. *
  1597. * CALLS C2D.
  1598. *
  1599. * MACROS CMSTF, MESG, MONITOR.
  1600.  
  1601.  
  1602. SSP SUBR ENTRY/EXIT
  1603.  
  1604. * SET DOWN STATUS.
  1605.  
  1606. LDD EQ
  1607. STD T5
  1608. STD CM+1
  1609. LDK DWES
  1610. STD CM+2
  1611. MONITOR SEQM
  1612. AOD SC UPDATE SUSPEND COUNT
  1613. AOM CSPA SET DEVICE STATE CHANGE FLAG
  1614. LDD EQ SET EQUIPMENT
  1615. STD T5
  1616. SHN -3 CONVERT UPPER TWO DIGITS OF EST ORDINAL
  1617. RJM C2D
  1618. STM SSPA+1
  1619. LDD EQ CONVERT LOWER DIGIT OF EST ORDINAL
  1620. LPN 7
  1621. SHN 6
  1622. ADC 2R0,
  1623. STM SSPA+2
  1624. CMSTF LFPR FORCE UPDATE OF LOCAL MST TO ECS
  1625. MESG SSPA
  1626. LDN 0
  1627. LJM SSPX RETURN
  1628.  
  1629. SSPA DATA C*EQXXX, SYSTEM USAGE OF DEVICE SUSPENDED.*
  1630. SUU SPACE 4,10
  1631. ** SUU - SPIN UP UNITS.
  1632. *
  1633. * ENTRY (RU) = UNITS TO BE RECONFIGURED OR RECABLED.
  1634. *
  1635. * EXIT (A) .NE. 0 IF *ABORT* ENTERED OR CP ERROR FLAG IS SET.
  1636. *
  1637. * USES LU, T7, CN - CN+4.
  1638. *
  1639. * CALLS CNR, DOS, PSA, SCF, SPU.
  1640. *
  1641. * MACROS COMMAND, IFCOM, LDBUF, MESG.
  1642.  
  1643.  
  1644. SUU SUBR ENTRY/EXIT
  1645. LDN MSTL SET *RD* DEVICE
  1646. STD T7
  1647. LDBUF ESTD SET NEW DEVICE PARAMETERS
  1648. CRD CN
  1649. ADN MSTD-ESTD
  1650. CRM BFMS,T7
  1651. RJM SCF SET COMMON *RD* DEVICE FIELDS
  1652. NJN SUUX IF CONTROL POINT ERROR FLAG SET
  1653.  
  1654.  
  1655. UJN SUU2 ENTER LOOP
  1656.  
  1657. SUU1 COMMAND CLEAR COMMAND LIST
  1658. AOD LU ADVANCE UNIT
  1659. LDD SL
  1660. RAD T7
  1661. SBM SLM
  1662. ZJN SUUX IF END OF UNITS
  1663. SUU2 LDD RU
  1664. LMM TMSK,LU
  1665. SBD RU
  1666. PJN SUU1 IF NOT CHANGING THIS UNIT
  1667. LDD MS
  1668. RJM SPU GET OLD UNIT NUMBER
  1669. STM SUUA+12
  1670. LDD RM
  1671. RJM SPU GET NEW UNIT NUMBER
  1672. STM SUUA+20
  1673. COMMAND (ABORT,IGNORE) SET LEGAL COMMANDS
  1674. MESG SUUA *MOVE PACK FROM UNIT XX TO UNIT YY ...*
  1675. SUU3 RJM CNR CHECK IF UNIT READY
  1676. NJN SUU4 IF READY CHECK SERVO TIMING
  1677. RJM DOS DELAY
  1678. IFCOM IGNORE,SUU1 IF IGNORE OF NOT READY
  1679. IFCOM ABORT,SUUX IF *ABORT*
  1680. UJN SUU3 RECHECK UNIT
  1681.  
  1682. SUU4 RJM PSA PROCESS SERVO ADJUSTMENT
  1683. NJN SUU5 IF *ABORT*
  1684. LJM SUU1 PROCESS NEXT UNIT
  1685.  
  1686. SUU5 LJM SUUX RETURN
  1687.  
  1688. SUUA DATA C*MOVE PACK FROM UNIT XX TO UNIT YY AND SPIN UP.*
  1689. ULD SPACE 4,20
  1690. ** ULD - UPDATE LINKED DEVICE MST-S.
  1691. *
  1692. * ENTRY (NU) = NUMBER OF UNITS FOR EQUIPMENT.
  1693. * (MS) = MST ADDRESS/10B OF EQUIPMENT TO RECONFIGURE.
  1694. *
  1695. * USES T7, CM - CM+4, CN - CN+4, T1 - T3.
  1696. *
  1697. * MACROS SFA.
  1698.  
  1699.  
  1700. ULD SUBR ENTRY/EXIT
  1701.  
  1702. * CHECK IF UNIT IS IN FIRST EQUIPMENT OF LINKED DEVICE.
  1703.  
  1704. LDD MS GET ORIGINAL NUMBER OF UNITS - 1
  1705. SHN 3
  1706. ADN DDLL
  1707. CRD CM
  1708. LDD CM
  1709. SHN -3
  1710. LPN 7
  1711. ADN 1
  1712. STD T1 SAVE POSITION IN UNIT LIST
  1713. SBD NU
  1714. PJN ULDX IF UNITS IN FIRST EQUIPMENT IN CHAIN
  1715.  
  1716. * BUILD TABLE OF UNITS IN *TDAT*.
  1717.  
  1718. LDN 0 INITIALIZE LOOP
  1719. STD T2
  1720. LDN 4
  1721. STD T3
  1722. ULD1 LDM CM,T3 SET UNITS
  1723. SHN 14
  1724. STM TDAT+1,T2
  1725. SHN -14
  1726. STM TDAT,T2
  1727. LDN 2 ADVANCE TABLE POINTER
  1728. RAD T2
  1729. SOD T3
  1730. NJN ULD1 IF MORE UNITS IN *DDLL*
  1731.  
  1732. * GET NEXT EQUIPMENT IN CHAIN.
  1733.  
  1734. ULD2 LDD MS
  1735. SHN 3
  1736. ADN STLL
  1737. CRD CN
  1738. LDD CN+4
  1739. SHN -3
  1740. SFA EST
  1741. ADK EQDE
  1742. CRD CM
  1743. LDD CM+4
  1744. STD T7 SAVE MST ADDRESS
  1745. SHN 3
  1746. ADN DDLL
  1747. CRD CM
  1748. LDD CM
  1749. SHN 21-12
  1750. MJN ULD2 IF NULL EQUIPMENT
  1751. LDD CM SET NUMBER OF UNITS - 1 FOR THIS EQUIPMENT
  1752. SHN -3
  1753. LPN 7
  1754. STD T2
  1755.  
  1756. * RESET UNIT LIST FROM TABLE OF UNITS.
  1757.  
  1758. LDN CM+4 PRESET LOOP
  1759. STD T3
  1760. ULD3 LDI T3 REPLACE LOWER UNIT
  1761. SCN 77
  1762. LMM TDAT,T1
  1763. STI T3
  1764. AOD T1 ADVANCE TABLE POINTER
  1765. SBD NU
  1766. PJN ULD4 IF END OF UNITS
  1767. SOD T2
  1768. MJN ULD4 IF END OF EQUIPMENT
  1769. LDI T3 REPLACE UPPER UNIT
  1770. SHN 14
  1771. SCN 77
  1772. LMM TDAT,T1
  1773. SHN 6
  1774. STI T3
  1775. SOD T3
  1776. AOD T1 ADVANCE TABLE POINTER
  1777. SBD NU
  1778. PJN ULD4 IF END OF UNITS
  1779. SOD T2
  1780. PJN ULD3 IF MORE UNITS IN THIS EQUIPMENT
  1781. ULD4 LDD T7 REWRITE UNIT LIST
  1782. SHN 3
  1783. ADN DDLL
  1784. CWD CM
  1785. LDD T1
  1786. SBD NU
  1787. PJN ULD5 IF END OF UNITS
  1788. LJM ULD2 GET NEXT EQUIPMENT IN CHAIN
  1789.  
  1790. ULD5 LJM ULDX RETURN
  1791. VLB SPACE 4,20
  1792. ** VLB - VERIFY LABEL.
  1793. *
  1794. * ENTRY (T5) = 0, *RD* PSEUDO EQUIPMENT.
  1795. * (T6) = LABEL TRACK.
  1796. * (T7) = LU * SINGLE UNIT SECTOR LIMIT.
  1797. * (LU) = LOGICAL UNIT NUMBER, 0 - 7.
  1798. * (PU) = PHYSICAL UNIT NUMBER, 0 - 77.
  1799. * (CH) = CHANNEL(S) TO CHECK.
  1800. *
  1801. * EXIT (A) .NE. 0 IF ABORT ENTERED.
  1802. *
  1803. * USES CM - CM+4.
  1804. *
  1805. * CALLS PUE, RDS.
  1806. *
  1807. * MACROS ENDMS, SETMS.
  1808.  
  1809.  
  1810. VLB5 LDC VLBB * UNIT XX LABEL VERIFY ERROR.*
  1811. RJM PUE PROCESS UNIT ERROR
  1812. MJN VLB1 IF *RECHECK*
  1813. * UJN VLBX RETURN *ABORT* OR *IGNORE* STATUS
  1814.  
  1815. VLB SUBR ENTRY/EXIT
  1816. VLB1 SETMS IO,(AD,DF,NR)
  1817. LDC BFMS READ LABEL SECTOR
  1818. RJM RDS
  1819. PJN VLB2 IF NO READ ERROR
  1820. LDC VLBA * UNIT XX LABEL READ ERROR.*
  1821. RJM PUE PROCESS UNIT ERROR
  1822. MJN VLB1 IF *RECHECK*
  1823. NJN VLBX IF *ABORT*
  1824. * UJN VLB2 IGNORE READ ERROR
  1825.  
  1826. VLB2 ENDMS
  1827.  
  1828. * VERIFY CONTROL BYTES, TRACK AND EQUIPMENT TYPE.
  1829.  
  1830. LDM BFMS CHECK CONTROL BYTES
  1831. LMC 3777
  1832. VLB3 NJN VLB5 IF NOT PROPER CONTROL BYTE
  1833. LDM BFMS+1
  1834. LMN 77
  1835. NJN VLB3 IF NOT PROPER WORD COUNT
  1836. LDM FTSS
  1837. LMD LT
  1838. NJN VLB3 IF NOT PROPER TRACK
  1839. LDD MS READ FAMILY AND DEVICE NUMBER
  1840. SHN 3
  1841. ADN PFGL
  1842. CRD CM
  1843. LDM E4SS CHECK EQUIPMENT TYPE
  1844. LMD CN+3
  1845. LPC 3777
  1846. VLB4 NJN VLB3 IF NOT CORRECT EQUIPMENT TYPE
  1847.  
  1848. * VERIFY FAMILY, DEVICE NUMBER AND RELATIVE UNIT.
  1849.  
  1850. LDD CM+4 SET RELATIVE UNIT
  1851. SCN 70
  1852. STD CM+4
  1853. LDD LU
  1854. SHN 3
  1855. RAD CM+4
  1856. LDM N4SS+5*PFGL COMPARE FAMILY AND DEVICE NUMBER
  1857. LMD CM
  1858. NJN VLB4 IF NO MATCH
  1859. LDM N4SS+5*PFGL+1
  1860. LMD CM+1
  1861. NJN VLB4 IF NO MATCH
  1862. LDM N4SS+5*PFGL+2
  1863. LMD CM+2
  1864. NJN VLB4 IF NO MATCH
  1865. LDM N4SS+5*PFGL+3
  1866. LMD CM+3
  1867. NJN VLB4 IF NO MATCH
  1868. LDM N4SS+5*PFGL+4 COMPARE RELATIVE UNIT AND TOTAL UNITS
  1869. LMD CM+4
  1870. LPN 77
  1871. NJN VLB4 IF NO MATCH
  1872. LJM VLBX RETURN
  1873.  
  1874. VLBA DATA C* UNIT XX, CHYY LABEL READ ERROR.*
  1875. VLBB DATA C* UNIT XX, CHYY LABEL VERIFICATION ERROR.*
  1876. WAM SPACE 4,10
  1877. ** WAM - WAIT FOR ALL MACHINES TO SYNCHRONIZE PROCESSING.
  1878. *
  1879. * ENTRY (A) = CONDITIONAL JUMP INSTRUCTION FOR *WAMB*.
  1880. * (MF) = MULTI-MAINFRAME FLAG.
  1881. * (MM) = MACHINE MASK OF THIS MACHINE.
  1882. *
  1883. * EXIT (A) .NE. 0 IF COMMAND ABORTED.
  1884. *
  1885. * USES CN - CN+2.
  1886. *
  1887. * CALLS RDE.
  1888. *
  1889. * MACROS COMMAND, IFCOM, MESG, SFA.
  1890.  
  1891.  
  1892. WAM5 COMMAND CLEAR COMMAND LIST
  1893. LDN 1 RETURN ABORT STATUS
  1894.  
  1895. WAM SUBR ENTRY/EXIT
  1896. STM WAMB CHANGE CONDITIONAL JUMP INSTRUCTION
  1897. ERRNG 37+WAMB-WAM4 IF OUT OF RANGE
  1898. LDD MF
  1899. ZJN WAMX IF NOT MULTI-MAINFRAME
  1900. SFA EST,EQ TEST FOR SHARED DEVICE
  1901. ADK EQDE
  1902. CRD CM
  1903. LDD CM
  1904. LPC 1000
  1905. ZJN WAMX IF DEVICE NOT SHARED
  1906.  
  1907. * CHECK FOR DOWN STATUS SET/CLEAR ON ALL ACTIVE MACHINES
  1908. * SHARING THIS DEVICE.
  1909.  
  1910. LDN 1 INITIALIZE MACHINE SEARCH LOOP
  1911. STD CN MACHINE INDEX
  1912. STD CN+1 MACHINE MASK
  1913. LDN 0
  1914. STD CN+2 MST LOCAL AREA INDEX
  1915. WAM1 RJM RDE READ DAT ENTRY
  1916. NJN WAM5 IF *ABORT*
  1917. WAM2 LDM TDAT+5+4 CHECK ACCESS BIT
  1918. LMD CN+1
  1919. SBM TDAT+5+4
  1920. PJN WAM3 IF NO ACCESS SET FOR MACHINE
  1921. LDD MM
  1922. LMD CN+1
  1923. ZJN WAM3 IF THIS MACHINE
  1924. LDM BFMS+2+DALL*5,CN+2
  1925. SHN 0-10
  1926. LMN 3
  1927. NJN WAM4 IF DEVICE NOT DOWN
  1928. * ZJN WAM4 IF DEVICE STILL DOWN
  1929. WAMB EQU *-1
  1930. WAM3 LDD CN+1 ADVANCE MACHINE
  1931. RAD CN+1
  1932. LDN LLLL*5
  1933. RAD CN+2
  1934. AOD CN
  1935. LMN MXMF+1
  1936. NJN WAM2 IF NOT END OF MACHINES
  1937. COMMAND CLEAR LEGAL COMMAND TABLE
  1938. LDN 0
  1939. LJM WAMX RETURN
  1940.  
  1941. WAM4 COMMAND (ABORT,IGNORE) ENABLE COMMAND PROCESSING
  1942. LDM BFMS+2+STLL*5+2,CN+2 SET MACHINE ID
  1943. STM WAMA+14
  1944. MESG WAMA SET MESSAGE IN K-DISPLAY
  1945. IFCOM IGNORE,WAM3 IF *IGNORE* COMMAND ENTERED
  1946. IFCOM ABORT,WAM5 IF *ABORT* COMMAND ENTERED
  1947. LJM WAM1 RECHECK THIS MACHINE INDEX
  1948.  
  1949. WAMA DATA C* WAITING FOR MACHINE ID=XX.*
  1950. WFC SPACE 4,10
  1951. ** WFC - WAIT FOR COMMAND TO BE ENTERED.
  1952. *
  1953. * EXIT (A) .LT. 0 IF *RECHECK* COMMAND ENTERED.
  1954. * (A) = 0 IF *IGNORE* OR *NEXT* COMMAND ENTERED.
  1955. * (A) .GT. 0 IF *ABORT* COMMAND ENTERED.
  1956. * COMMAND LIST CLEARED.
  1957. *
  1958. * USES T1.
  1959. *
  1960. * MACROS COMMAND, IFCOM.
  1961.  
  1962.  
  1963. WFC2 COMMAND CLEAR COMMAND LIST
  1964. SOD T1 RETURN COMMAND CODE
  1965.  
  1966. WFC SUBR ENTRY/EXIT
  1967. WFC1 LDN 0 PRESET COMMAND CODE
  1968. STD T1
  1969. IFCOM RECHECK,WFC2 IF *RECHECK*
  1970. AOD T1
  1971. IFCOM (IGNORE,NEXT),WFC2 IF *IGNORE* OR *NEXT*
  1972. AOD T1
  1973. IFCOM ABORT,WFC2 IF *ABORT*
  1974. UJN WFC1 RECHECK COMMAND ENTRY
  1975. TITLE COMMON DECKS.
  1976. ** COMMON DECKS.
  1977.  
  1978.  
  1979. *CALL COMPC2D
  1980. *CALL COMPIFR
  1981. *CALL COMPTGB
  1982. *CALL COMPTLB
  1983. *CALL COMPMSV
  1984. SPACE 4
  1985. USE LITERALS
  1986. TABLES SPACE 4,10
  1987. TMSK BSS 0 TABLE OF MASK BITS INDEXED BY ORDINAL
  1988. CON 1
  1989. CON 2
  1990. CON 4
  1991. CON 10
  1992. CON 20
  1993. CON 40
  1994. CON 100
  1995. CON 200
  1996. CON 400
  1997. CON 1000
  1998. CON 2000
  1999. CON 4000
  2000.  
  2001. TDAT EQU * TWO CM WORD BUFFER FOR DAT ENTRY
  2002. OVLA EQU TDAT+5*2 OVERLAY AREA
  2003. L.1RM EQU OVLA+1+ZPXL END OF *1RM* PLUS *0PI*
  2004. ERRPL L.1RM-BFMS *OPI* EXTENDS INTO BFMS
  2005. PRS TITLE PRESET.
  2006. ** PRS - PRESET.
  2007. *
  2008. * EXIT (SC) = 0, SUSPENDED DEVICE COUNT.
  2009. * (EQ) = *RD* EQUIPMENT EST ORDINAL.
  2010. * (RM) = *RD* DEVICE MST ADDRESS.
  2011. * (MF) = MULTI-MAINFRAME LINK DEVICE NUMBER.
  2012. * (TUNL) = DDLL MST WORD FOR NEW DEFINITION.
  2013. *
  2014. * USES EQ, MF, MM, RM, SC, CM - CM+4.
  2015. *
  2016. * CALLS DFM.
  2017. *
  2018. * MACROS MONITOR, SFA.
  2019.  
  2020.  
  2021. PRS SUBR ENTRY/EXIT
  2022.  
  2023. * CHECK STATUS WORD ADDRESS.
  2024.  
  2025. LDD IR+3 CHECK ADDRESS
  2026. LPN 77
  2027. SHN 14
  2028. MJN PRS1 IF OUT OF RANGE
  2029. ADD IR+4
  2030. ADN CBMX
  2031. SHN -6
  2032. SBD FL
  2033. PJN PRS1 IF .GT. FL - 1
  2034. LDD IR+3 SET ADDRESS - 2
  2035. LPN 77
  2036. SHN 14
  2037. ADD IR+4
  2038. SBN 2
  2039. PJN PRS2 IF .GT. RA + 1
  2040. PRS1 LDC =C* 1RM INCORRECT REQUEST.*
  2041. LJM PRS3 ISSUE ERROR MESSAGE AND ABORT
  2042.  
  2043. * CHECK FOR LEGAL ACCESS.
  2044.  
  2045. PRS2 LDD CP GET QUEUE PRIORITY
  2046. ADN JCIW
  2047. CRD CM
  2048. LDC MSSI
  2049. LMD CM+2
  2050. ZJN PRS4 IF LEGAL ACCESS
  2051. LDC =C* 1RM USER ACCESS NOT VALID.*
  2052. PRS3 RJM DFM ISSUE MESSAGE
  2053. MONITOR ABTM
  2054. LJM PPR EXIT
  2055.  
  2056. * GET MASS STORAGE EQUIPMENT EST POINTERS.
  2057. * SET MULTI-MAINFRAME STATUS.
  2058.  
  2059. PRS4 LDC MMFL GET EST ORDINAL OF LINK DEVICE
  2060. CRD CM
  2061. LDD CM+1 SET MMF STATUS
  2062. LPC 777
  2063. STD MF
  2064. LDD CM+3 SET MACHINE MASK
  2065. STD MM
  2066. LDN RDEQ READ *RD* EST ENTRY
  2067. STD EQ
  2068. SFA EST
  2069. ADK EQDE
  2070. CRD CM
  2071. LDD CM+4
  2072. STD RM
  2073. LDN 0 CLEAR SUSPENDED DEVICE COUNT
  2074. STD SC
  2075. LDK CHTP READ FWA OF CHANNEL TABLES
  2076. CRD CM
  2077. LDD CM+2 PRESET FWA OF CONTROLWARE TABLE
  2078. SHN 14
  2079. LMD CM+3
  2080. ADN CTALL*2
  2081. STM GCIA+1
  2082. SHN -14
  2083. RAM GCIA
  2084. LJM PRSX RETURN
  2085. SPACE 4
  2086. END
cdc/nos2.source/opl871/1rm.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator