Table of Contents

1MR

Table Of Contents

  • [00007] 1MR - MACHINE RECOVERY PROCESSOR.
  • [00009] MACHINE RECOVERY PROCESSOR.
  • [00171] MAIN ROUTINE.
  • [00201] ABT - ISSUE MESSAGE AND ABORT.
  • [00225] WDS - WRITE MASS STORAGE.
  • [00246] FUNCTION 1 - PROCESS DAT, FAT, MRT-S.
  • [00248] PMT - PROCESS DAT, FAT, MRT,S. (FUNCTION 1)
  • [00334] FUNCTION 4 - PROCESS RESERVES AND BAT-S.
  • [00336] PRB - PROCESS RESERVES AND BAT-S. (FUNCTION 4)
  • [00377] SUBROUTINES.
  • [00379] CAA - CALCULATE ABSOLUTE ADDRESS.
  • [00395] CAT - CALCULATE ADDRESS OF TRT.
  • [00412] CAM - CHECK ACCESS MODES FOR DIRECT ACCESS FILE.
  • [00451] CFI - CLEAR FLAG REGISTER INTERLOCKS HELD BY *1MR*.
  • [00479] CQF - CHECK QUEUE FILE.
  • [00576] DAP - DELAY AND PAUSE.
  • [00591] DPS - DETERMINE IF PRESERVED FILE AND RESERVATION BIT
  • [00616] IQF - INITIALIZE *IQFT*.
  • [00661] MRM - ISSUE MRT ERROR MESSAGE.
  • [00700] MRT - PROCESS MRT.
  • [00804] MSR - RETURN ERROR TO *MREC*.
  • [00822] PFB - CLEAN UP DIRECT ACCESS FILE SYSTEM SECTORS.
  • [01001] PTR - PROCESS TRACK RESERVATION.
  • [01041] RRS - REREAD SYSTEM SECTOR IF TRACK INTERLOCK NOT SET.
  • [01069] RSC - READ SECTOR AND CHECK FOR ERRORS.
  • [01088] SCI - INCREMENT/DECREMENT *MREC* ACTIVITY COUNT.
  • [01117] SDP - SET DEVICE PARAMETERS.
  • [01166] STB - SET TRACK BIT.
  • [01190] STI - SET TRACK INTERLOCK.
  • [01223] TQF - TERMINATE *IQFT*.
  • [01324] WQF - WRITE *IQFT* SECTOR.
  • [01376] EXTENDED MEMORY MMF SUBROUTINES.
  • [01387] CFR - CLEAR FLAG REGISTER BIT.
  • [01409] DAT - READ(WRITE) DAT ENTRY (2 WORDS).
  • [01450] ECS - READ/WRITE EXTENDED MEMORY.
  • [01471] FAT - PROCESS FAST ATTACH PERMANENT FILES.
  • [01576] PDT - CLEAR DEVICE ACCESSED BIT IN DAT FOR DOWNED MACHINE.
  • [01607] SFR - SET FLAG REGISTER BIT.
  • [01646] TFRB - TABLE OF FLAG REGISTER BIT INTERLOCKS.
  • [01661] TFR - TOGGLE FLAG REGISTER BIT.
  • [01688] WFW - WRITE FAT WORD.
  • [01715] FUNCTION 0 - RETRIEVE DISPLAY INFORMATION.
  • [01717] RDI - RETRIEVE DISPLAY INFORMATION. (FUNCTION 0)
  • [01773] FUNCTION 3 - CLEAR DEVICE INTERLOCKS.
  • [01775] CDV - CLEAR DEVICE INTERLOCKS. (FUNCTION 3)
  • [02015] *CDV* SUBROUTINES.
  • [02017] ABE - ACCESS *BDT* ENTRY.
  • [02047] CBI - CLEAR SHARED BUFFERED DEVICE INTERLOCKS.
  • [02125] PRESET.
  • [02127] PRS - PRESET PROGRAM.
  • [02331] ISD MMF SUBROUTINES.
  • [02350] CTC - COPY DISK TABLES TO CENTRAL MEMORY.
  • [02393] CUC - COMPARE UPDATE COUNTS.
  • [02416] PFA - PROCESS FAST ATTACH FOR ISD.
  • [02452] RMI - RELEASE MST INTERLOCKS.
  • [02571] SDM - CHECK DEVICE SHARED TO DOWN MF.
  • [02623] UDT - UPDATE DEVICE INFORMATION TABLE IN CM.
  • [02649] VDT - VERIFY DISK TABLES.
  • [02756] SCP - SET / CLEAR PP PAUSE FLAG.
  • [02777] FUNCTION 2 - UPDATE MST ENTRIES IN CM.
  • [02779] UMT - UPDATE MST ENTRIES IN CM. (FUNCTION 2)
  • [02860] COMMON SUBROUTINES.
  • [02873] RES - PROCESS UNIT AND CONTROLLER RESERVES.
  • [02952] CBW - CLEAR BAT WRITE ACCESS PERMISSIONS.
  • [02982] CLU - CLEAR UTILITY / DEVICE INTERLOCKS.
  • [03089] RLS - READ LABEL SECTOR.
  • [03185] WSC - WRITE EXTENDED MEMORY SECTOR.

Source Code

1MR.txt
  1. IDENT 1MR,/MRP/MRP
  2. PERIPH
  3. BASE MIXED
  4. SST
  5. *COMMENT 1MR - MACHINE RECOVERY PROCESSOR.
  6. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  7. TITLE 1MR - MACHINE RECOVERY PROCESSOR.
  8. SPACE 4
  9. *** 1MR - MACHINE RECOVERY PROCESSOR.
  10. * R. J. PRIEVE 75/02/14.
  11. * P. D. HAAS. 87/04/10.
  12. SPACE 4
  13. *** 1MR PROCESSES FUNCTION REQUESTS FROM *MREC*, THE
  14. * MACHINE RECOVERY UTILITY.
  15. *
  16. * FUNCTIONS PROCESSED ARE THE FOLLOWING.
  17. *
  18. * FUNCTION 0 - RETRIEVE DISPLAY INFORMATION.
  19. * FUNCTION 1 - PROCESS DAT, FAT, MRT,S, SYSTEM SECTORS,
  20. * AND UNIT AND/OR CONTROLLER RESERVE SITUATIONS.
  21. * FUNCTION 2 - UPDATE MST ENTRIES IN CM FOR INDEPENDENT
  22. * SHARED DEVICES.
  23. * FUNCTION 3 - CLEAR DEVICE INTERLOCKS.
  24. SPACE 4
  25. *** ENTRY CONDITIONS.
  26. *
  27. *T, IR 18/1MR,18/0,6/FN,18/PARM
  28. *
  29. * FN FUNCTION NUMBER.
  30. * PARM PARAMETER.
  31. *
  32. * PARAMETERS ARE DOCUMENTED IN HEADER INFORMATION
  33. * OF EACH FUNCTION PROCESSOR.
  34. SPACE 4
  35. *** DAYFILE MESSAGES.
  36. *
  37. * * INCORRECT 1MR FUNCTION.*
  38. *
  39. * * 1MR ERROR FLAG TERMINATION.* - ERROR FLAG WAS SET AT
  40. * MREC,S CONTROL POINT.
  41. *
  42. * * SSER, EQXXX, TKYYYY.* - UNRECOVERED ERROR OCCURRED WHEN
  43. * ATTEMPTING TO READ OR WRITE THE SYSTEM SECTOR ON EQXXX,
  44. * TRACK YYYY. THE SECTOR IS NOT PROCESSED. PROCESSING
  45. * CONTINUES. THIS MESSAGE IS ALSO ISSUED TO THE ERRLOG.
  46. *
  47. * * EQXXX, MRT PROCESSED BUT NOT REWRITTEN.* - UNRECOVERED
  48. * WRITE ERROR OCCURRED WHEN ATTEMPTING TO ZERO OUT THE MRT
  49. * FOR EQXXX. PROCESSING CONTINUES.
  50. *
  51. * * EQXXX, TKYYYY, INCORRECT LOCAL FILE.* - MRT BIT WAS FOUND
  52. * SET FOR TRACK YYYY ON EQXXX, BUT THE TRACK WAS NOT THE FIRST
  53. * TRACK OF A LOCAL FILE. THE MRT BIT WAS CLEARED BUT THE
  54. * TRACK WAS NOT DROPPED.
  55. *
  56. * * EQXXX, DAF INTERLOCKS NOT CLEARED.* - INTERLOCKS IN THE
  57. * SYSTEM SECTORS OF DIRECT ACCESS FILES ON EQXXX WERE NOT
  58. * CLEARED, EITHER BECAUSE OF MASS STORAGE ERRORS OR
  59. * BECAUSE A PF CATALOG SIZE ERROR WAS DETECTED.
  60. *
  61. * * RECOVERING PF.EQXXX, TRK YYYY.* - INFORMATIVE MESSAGE ISSUED
  62. * AT CONTROL POINT WHEN PRESERVED FILES ARE BEING PROCESSED
  63. * ON EQXXX.
  64. *
  65. * * EQXXX, UNYY, CHECKING RESERVE.* - INFORMATIVE MESSAGE
  66. * ISSUED TO B-DISPLAY WHILE CONTROLLER AND UNIT RESERVES
  67. * ARE BEING PROCESSED. IN THE CASE OF MULTI-UNIT
  68. * DEVICES, YY IS THE PHYSICAL UNIT NUMBER.
  69. *
  70. * * EQXXX, CLEARING LABEL SECTOR INTERLOCKS.* - INFORMATIVE
  71. * MESSAGE ISSUED TO B-DISPLAY WHILE THE RMS COPY OF THE
  72. * MST IS BEING PROCESSED (SHARED RMS SYSTEM ONLY).
  73. *
  74. * * EQXXX, CHYY, CONTROLLER RESERVED.* - INFORMATIVE MESSAGE
  75. * ISSUED TO B-DISPLAY INDICATING THAT THE HARDWARE CONTROLLER
  76. * RESERVE IS HELD BY THE DOWN MAINFRAME FOR THE SPECIFIED
  77. * CHANNEL/DEVICE. TO CLEAR THE RESERVE, THE OPERATOR SHOULD
  78. * HIT THE DEADSTART BUTTON. IF THE CONTROLLER IS TO BE
  79. * IGNORED BY THIS MAINFRAME, JUST ENTER THE *GO,JSN* COMMAND.
  80. *
  81. * * EQXXX, UNYY, UNIT RESERVED.* - INFORMATIVE MESSAGE ISSUED
  82. * TO B-DISPLAY INDICATING THAT THE HARDWARE UNIT RESERVE IS
  83. * HELD BY THE DOWN MAINFRAME FOR THE SPECIFIED UNIT. IF THIS
  84. * DEVICE IS TO BE IGNORED BY THIS MAINFRAME, THE OPERATOR
  85. * SHOULD JUST ENTER *GO,JSN*. OTHERWISE, THE OPERATOR SHOULD
  86. * CLEAR THE UNIT RESERVE (SEE DOCUMENTATION IN *MREC*) ON
  87. * THE UNIT TO CONTINUE PROCESSING.
  88. *
  89. * * INTERLOCKING IQFT, EQXXX.* - INDICATES *1MR* IS WAITING
  90. * FOR THE INTERLOCK ON THE *IQFT* TRACK.
  91. SPACE 4
  92. *CALL COMPMAC
  93. *CALL COMSCPS
  94. *CALL COMSIOQ
  95. *CALL COMSJIO
  96. QUAL LSD
  97. *CALL COMSLSD
  98. QUAL *
  99. N4SS EQU /LSD/N4SS
  100. DISS EQU /LSD/DISS
  101. CKSS EQU /LSD/CKSS
  102. DKSS EQU /LSD/DKSS
  103. QUAL MMF
  104. LIST X
  105. *CALL COMSMMF
  106. LIST *
  107. QUAL *
  108. MISD EQU /MMF/MISD
  109. MMPF EQU /MMF/MMPF
  110. MXMF EQU /MMF/MXMF
  111. QUAL MRT
  112. LIST X
  113. *CALL COMSMRT
  114. LIST *
  115. QUAL *
  116. *CALL COMSMSP
  117. *CALL COMSMST
  118. *CALL COMSPFM
  119. *CALL COMSPIM
  120. *CALL COMSSSD
  121. *CALL COMSSSE
  122. *CALL COMSWEI
  123. SPACE 4,10
  124. ** ASSEMBLY CONSTANTS.
  125.  
  126.  
  127. BUFS EQU BFMS-502 SCRATCH BUFFER
  128. QBUF EQU BUFS-502 *IQFT* BUFFER
  129. BUFD EQU QBUF-5*2 *DAT* BUFFER
  130. SPACE 4
  131. **** DIRECT LOCATION ASSIGNMENTS.
  132.  
  133.  
  134. ORG 16
  135. EF BSS 1 ERROR FLAG
  136. SC BSS 1 SCRATCH
  137. CN BSS 5 CM BUFFER
  138. DA BSS 2 DAT TRACK ADDRESS
  139. DF BSS 1 DIRECT ACCESS FILE COUNT
  140. DT BSS 1 DAT/FAT TRACK
  141. ET BSS 2 ENVIRONMENT TABLE ADDRESS
  142. EQ BSS 1 EQUIPMENT BEING PROCESSED
  143. ID BSS 1 MACHINE ID OF THIS MACHINE
  144. LK BSS 1 LINK DEVICE EST ORDINAL
  145. MD BSS 1 MACHINE INDEX OF DOWNED MACHINE
  146. MI BSS 1 MID OF DOWNED MACHINE
  147. MK BSS 1 MACHINE MASK OF DOWNED MACHINE
  148. NT BSS 1 NUMBER OF TRACKS ON CURRENT DEVICE
  149. FT BSS 1 FILE TYPE
  150. PF BSS 1 PRESERVED FILE TRACK INTERLOCK STATUS
  151. TC BSS 1 TRACK COUNT
  152. BY BSS 1 BYTE COUNT
  153. WB EQU NT - BY WORD BUFFER (5 LOCATIONS)
  154. BI BSS 1 BIT COUNT
  155. AD BSS 1 ADDRESS OF CURRENT MRT BYTE
  156.  
  157. ORG 57
  158.  
  159. SD BSS 1 TYPE OF SHARED DEVICE (FUNCTION 2)
  160. * 0 = EXTENDED MEMORY MMF DEVICE.
  161. * 1 = INDEPENDENT SHARED DEVICE (ISD).
  162. TW BSS 1 CONSTANT 2
  163. SX BSS 1 CONSTANT 6
  164. RE BSS 1 READ EXTENDED MEMORY SUBFUNCTION * 1000
  165. WE BSS 1 WRITE EXTENDED MEMORY SUBFUNCTION * 1000
  166. CT BSS 1 CURRENT TRACK
  167. QF BSS 1 FIRST TRACK OF *IQFT*
  168. QT BSS 1 CURRENT TRACK OF *IQFT*
  169. QS BSS 1 CURRENT SECTOR OF *IQFT*
  170. ****
  171. TITLE MAIN ROUTINE.
  172.  
  173.  
  174. ** MAIN ROUTINE.
  175.  
  176.  
  177. QUAL MRP
  178. ORG PPFW
  179.  
  180. MRP RJM PRS PRESET
  181. MRPA EQU *-1
  182.  
  183. DROP RJM CFI CLEAR FLAG REGISTER INTERLOCKS
  184. MRP1 LDN 1 SET COMPLETE FLAG FOR *MREC*
  185. STD CN+4
  186. LDD RA
  187. SHN 6
  188. ADC /MRT/RCLW
  189. CWD CN
  190. MRP2 MONITOR DPPM DROP PP
  191. UJN ABT1 EXIT TO PP RESIDENT
  192.  
  193. ERR LDC =C* 1MR ERROR FLAG TERMINATION.*
  194. RJM DFM
  195. LDC WDSX RESET ERROR RETURN FROM *WDS*
  196. STM WDSA
  197. RJM TQF TERMINATE *IQFT*
  198. RJM CFI CLEAR FLAG REGISTER INTERLOCKS
  199. UJN MRP2 DROP PP
  200. SPACE 4
  201. ** ABT - ISSUE MESSAGE AND ABORT.
  202. *
  203. * ENTRY (A) = MESSAGE ADDRESS.
  204.  
  205.  
  206. ABT RJM DFM ISSUE MESSAGE
  207. RJM CFI CLEAR FLAG REGISTER INTERLOCKS
  208. MONITOR ABTM
  209. ABT1 LJM PPR EXIT TO PP RESIDENT
  210. SPACE 4
  211. ** COMMON DECKS.
  212.  
  213.  
  214. QUAL
  215. *CALL COMPC2D
  216. *CALL COMPCEA
  217. *CALL COMPCKP
  218. *CALL COMPRSS
  219. *CALL COMPSSE
  220.  
  221. QUAL MRP
  222. *CALL COMPWEI
  223. *CALL COMPWSS
  224. WDS SPACE 4,10
  225. ** WDS - WRITE MASS STORAGE.
  226. *
  227. * ENTRY (A) = SAME AS ENTRY TO DRIVER.
  228. * (T5 - T7) = MASS STORAGE PARAMETERS.
  229. *
  230. * EXIT (A) = 0 IF NO WRITE ERRORS.
  231. *
  232. * CALLS WDS.
  233.  
  234.  
  235. WDS1 LDN 0 INDICATE SUCCESSFUL WRITE
  236.  
  237. WDS SUBR ENTRY/EXIT
  238. RJM //WDS
  239. PJN WDS1 IF WRITE COMPLETED
  240. SHN 21-12
  241. SHN 0-21
  242. NJN WDSX IF NON-RECOVERABLE ERROR
  243. LCN 10
  244. LJM WDSX ERROR RETURN
  245. WDSA EQU *-1
  246. TITLE FUNCTION 1 - PROCESS DAT, FAT, MRT-S.
  247. PMT SPACE 4
  248. ** PMT - PROCESS DAT, FAT, MRT,S. (FUNCTION 1)
  249. *
  250. * ENTRY (IR+3 - IR+4) = ADDR.
  251. *
  252. * ADDR ADDRESS OF TABLE OF DEVICES TO RECOVER.
  253. *
  254. * CALLS CAA, CLU, C2D, DAT, DFM, MRT, PDT, PFB, RMI, SDM,
  255. * SDP, SFR, *2MS*.
  256. *
  257. * MACROS EXECUTE, PAUSE.
  258.  
  259.  
  260. PMT SUBR ENTRY/EXIT
  261. EXECUTE 2MS LOAD HARDWARE RESERVE ROUTINES
  262. LDD LK
  263. ZJN PMT1 IF NOT EXTENDED MEMORY MMF
  264. LDN /MMF/DATI
  265. RJM SFR SET DAT INTERLOCK
  266. RJM CLU CLEAR UTILITY / DEVICE INTERLOCKS
  267.  
  268. * PROCESS DAT, MRT-S, SYSTEM SECTORS.
  269.  
  270. PMT1 LCN 0 PRESET TABLE INDEX
  271. STD SC
  272. PMT2 PAUSE NE
  273. AOD SC READ TABLE ENTRY
  274. RJM CAA
  275. ADD SC
  276. CRD CM
  277. LDD CM+4 SET EST ORDINAL
  278. STD EQ
  279. STD T5
  280. NJN PMT3 IF NOT END OF DEVICES TO RECOVER
  281. LJM PMTX RETURN
  282.  
  283. PMT3 LDD CM SET POSSIBLE IGNORE DEVICE
  284. STM PMTA
  285. LDD CM+3 SET TYPE OF SHARED DEVICE
  286. STD SD
  287. ZJN PMT4 IF NOT ISD
  288. LDD T5
  289. STD LK
  290. RJM SDM CHECK IF DEVICE SHARED TO DOWN MF
  291. NJN PMT2 IF NOT SHARED TO DOWN MF
  292. RJM RMI RELEASE MST INTERLOCKS
  293. UJN PMT5 PROCESS MRT
  294.  
  295. PMT4 RJM PDT PROCESS DAT FOR DEVICE
  296. ZJN PMT7 IF NO PROCESSING FOR DEVICE
  297. PMT5 RJM SDP SET DEVICE PARAMETERS
  298. STM PMTB
  299. RJM MRT PROCESS MRT FOR DEVICE
  300. LDC 0
  301. PMTA EQU *-1
  302. LMN /MRT/IGN
  303. ZJN PMT6 IF IGNORE DEVICE
  304. LDC ** CHECK PFC SIZE
  305. PMTB EQU *-1
  306. ZJN PMT8 IF 8-WORD PF CATALOGS
  307. LDD DF
  308. ZJN PMT6 IF NO DAF-S
  309. RJM PFB PROCESS DAF SYSTEM SECTORS
  310. NJN PMT8 IF ALL FILES NOT PROCESSED
  311. PMT6 LDD SD
  312. NJN PMT7 IF ISD
  313. LDD WE WRITE DAT ENTRY WITH ACCESS CLEARED
  314. STD T3
  315. LDD MA
  316. CWM BUFD,TW STORE DAT ENTRY IN MESSAGE BUFFER
  317. LDD EQ SET EQUIPMENT
  318. RJM DAT WRITE DAT ENTRY
  319. PMT7 LJM PMT2 LOOP FOR NEXT DEVICE
  320.  
  321. PMT8 LDD EQ CONVERT UPPER DIGIT OF EST ORDINAL
  322. SHN -6
  323. ADC 2RQ0
  324. STM PMTC+1
  325. LDD EQ CONVERT LOWER TWO DIGITS OF EST ORDINAL
  326. RJM C2D
  327. STM PMTC+2
  328. LDC PMTC * EQXXX, DAF INTERLOCKS NOT CLEARED.*
  329. RJM DFM
  330. UJN PMT7 LOOP FOR NEXT DEVICE
  331.  
  332.  
  333. PMTC DATA C* EQXXX, DAF INTERLOCKS NOT CLEARED.*
  334. TITLE FUNCTION 4 - PROCESS RESERVES AND BAT-S.
  335. PRB SPACE 4,10
  336. ** PRB - PROCESS RESERVES AND BAT-S. (FUNCTION 4)
  337. *
  338. * ENTRY (IR+3 - IR+4) = ADDR.
  339. *
  340. * ADDR ADDRESS OF TABLE OF DEVICES TO RECOVER.
  341. *
  342. * CALLS ECS, RES, *2MS*.
  343. *
  344. * MACROS EXECUTE.
  345.  
  346.  
  347. PRB SUBR ENTRY/EXIT
  348. LDD LK
  349. ZJN PRB1 IF NOT EXTENDED MEMORY MMF
  350.  
  351. * DISABLE LEVEL 3 RECOVERY OF DOWNED MACHINE.
  352.  
  353. LDN ZERL BUILD MMFL WORD FOR DOWNED MACHINE
  354. CRD CM
  355. LDD MI SET MID OF DOWNED MACHINE
  356. STD CM
  357. LDD MD SET MACHINE INDEX OF DOWNED MACHINE
  358. STD CM+4
  359. LDD MA SET CM BUFFER ADDRESS
  360. CWD CM
  361. LDD ET+1 SET EXTENDED MEMORY ADDRESS
  362. ADD MD ADD INDEX INTO CORRECT ENTRY
  363. SBN 1
  364. STD CM+4
  365. SHN -14
  366. ADD ET
  367. ADD WE
  368. STD CM+3
  369. LDN 1-1 WRITE EXTENDED MEMORY
  370. RJM ECS
  371.  
  372. * PROCESS CONTROLLER AND UNIT RESERVES.
  373.  
  374. PRB1 EXECUTE 2MS LOAD HARDWARE RESERVE ROUTINES
  375. RJM RES PROCESS BAT-S AND HARDWARE RESERVES
  376. UJP PRBX RETURN
  377. TITLE SUBROUTINES.
  378. CAA SPACE 4
  379. ** CAA - CALCULATE ABSOLUTE ADDRESS.
  380. *
  381. * ENTRY (IR+3 - IR+4) = RELATIVE ADDRESS.
  382. *
  383. * EXIT (A) = ABSOLUTE ADDRESS.
  384.  
  385.  
  386. CAA SUBR ENTRY/EXIT
  387. LDD IR+3
  388. LPN 77
  389. SHN 6
  390. ADD RA
  391. SHN 6
  392. ADD IR+4
  393. UJN CAAX RETURN
  394. CAT SPACE 4,10
  395. ** CAT - CALCULATE ADDRESS OF TRT.
  396. *
  397. * ENTRY (A) = ADDRESS OF WORD *TRLL* IN MST.
  398. *
  399. * EXIT (A) = FWA OF TRT.
  400. *
  401. * USES CM - CM+4.
  402.  
  403.  
  404. CAT SUBR ENTRY/EXIT
  405. CRD CM GET FWA OF TRT
  406. LDD CM+3
  407. LPN 77
  408. SHN 14
  409. LMD CM+4
  410. UJN CATX RETURN
  411. CAM SPACE 4
  412. ** CAM - CHECK ACCESS MODES FOR DIRECT ACCESS FILE.
  413. *
  414. * ENTRY (T5) = EST ORDINAL.
  415. * (T6) = FIRST TRACK.
  416. * (BFMS) = SYSTEM SECTOR.
  417. *
  418. * EXIT (A) = (PF) = 0 IF FILE PURGED.
  419. *
  420. * USES CM - CM+4.
  421. *
  422. * CALLS RRS.
  423. *
  424. * MACROS ENDMS, MONITOR.
  425.  
  426.  
  427. CAM1 LDN 1 SET FILE NOT PURGED
  428.  
  429. CAM SUBR ENTRY/EXIT
  430. LDM CASS CHECK PURGE BIT
  431. SHN 21-5
  432. PJN CAM1 IF PURGE BIT NOT SET
  433. SHN -21+5+22 CHECK IF ACTIVE USERS
  434. LPN 32
  435. ADM UCSS+1
  436. ADM UCSS+2
  437. ADM UCSS+3
  438. ADM UCSS+4
  439. NJN CAMX IF ACTIVE USERS
  440. RJM RRS
  441. ENDMS
  442. LDD T6 RELEASE FILE SPACE
  443. STD CM+2
  444. LDD T5
  445. STD CM+1
  446. MONITOR DTKM
  447. * LDN 0 CLEAR TRACK INTERLOCK STATUS
  448. STD PF
  449. UJN CAMX RETURN
  450. CFI SPACE 4,10
  451. ** CFI - CLEAR FLAG REGISTER INTERLOCKS HELD BY *1MR*.
  452. *
  453. * ENTRY (CFIA) = LINK DEVICE EST ORDINAL, IF ECS MMF.
  454. * = 0, IF ISD MMF.
  455. *
  456. * USES T2.
  457. *
  458. * CALLS CFR, SCI.
  459.  
  460.  
  461. CFI SUBR ENTRY/EXIT
  462. RJM SCI CLEAR *CMS* INTERLOCK
  463. LDC ** CHECK TYPE OF MMF OPERATION
  464. CFIA EQU *-1 (LINK DEVICE EST ORDINAL, IF ECS MMF)
  465. ZJN CFIX IF NOT EXTENDED MEMORY MMF
  466. LDC TFRB-3 CLEAR FLAG REGISTER INTERLOCKS
  467. STD T2
  468. CFI1 LDN 3
  469. RAD T2
  470. LDI T2
  471. ZJN CFIX IF END OF FLAG BITS
  472. LPN 40
  473. ZJN CFI1 IF NOT SET
  474. LMI T2
  475. RJM CFR
  476. UJN CFI1
  477.  
  478. CQF SPACE 4,15
  479. ** CQF - CHECK QUEUE FILE.
  480. *
  481. * ENTRY (MI) = ID OF DOWN MACHINE.
  482. * (QF) = FIRST TRACK OF *IQFT* IF INITIALIZED.
  483. * (T4) = CHANNEL (RESERVED).
  484. * (T5) = EST ORDINAL.
  485. * (CT) = (T6) = FIRST TRACK OF PRESERVED FILE.
  486. * (BFMS) = PRESERVED FILE SYSTEM SECTOR.
  487. *
  488. * EXIT (A) = 0 IF NOT QUEUE FILE.
  489. * (FT) = FILE TYPE.
  490. *
  491. * USES T1, T2, T3.
  492. *
  493. * CALLS IQF, WQF, WSS.
  494. *
  495. * MACROS ENDMS, FILEREC, SETMS.
  496.  
  497.  
  498. CQF6 LDN 0 INDICATE NON-QUEUE FILE
  499.  
  500. CQF SUBR ENTRY/EXIT
  501. LDM FNSS+4 EXTRACT FILE TYPE
  502. SHN -6
  503. STD FT
  504. LDN RDATL SET LENGTH OF QUEUE FILE TABLE
  505. STD T3
  506. CQF1 SOD T3 DECREMENT INDEX
  507. MJN CQF6 IF END OF TABLE
  508. LDM RDAT,T3
  509. LMD FT
  510. NJN CQF1 IF NOT MATCHING FILE TYPE
  511. LDM FGSS
  512. LPN 2
  513. ZJN CQF2 IF INACTIVE QUEUE FILE
  514. LDM RMSS
  515. LMD MI
  516. NJN CQF6 IF NOT ACTIVE QUEUE FILE ON DOWN MACHINE
  517. LCN 2 SET QUEUE FILE INACTIVE
  518. RAM FGSS
  519. RJM WSS REWRITE SYSTEM SECTOR
  520. CQF2 LDD QF
  521. NJN CQF3 IF QUEUE FILE PROCESSING INITIATED
  522. ENDMS
  523. RJM IQF INITIALIZE *IQFT*
  524. CQF3 LDM RMSS SET MACHINE ID
  525. STM FMSS+4
  526. LDM FLSS SET FILE LENGTH
  527. STM CDSS
  528. LDM FLSS+1
  529. STM CDSS+1
  530. LDC IOSS SYSTEM SECTOR ADDRESS OF QFT ENTRY
  531. STD T1
  532. LDC QBUF+2 SET BUFFER ADDRESS
  533. CQFC EQU *-1
  534. STD T2
  535. ADN 5*QFTE END OF QFT ENTRY
  536. STD T3
  537. ADN 5*10-5*QFTE END OF MAXIMUM SIZE QFT ENTRY
  538. STM CQFD
  539.  
  540. * MOVE IQFT ENTRY TO BUFFER.
  541.  
  542. CQF4 LDI T1 MOVE QFT ENTRY
  543. STI T2
  544. AOD T1 ADVANCE BUFFER ADDRESSES
  545. AOD T2
  546. LMD T3
  547. NJN CQF4 IF NOT END OF QFT ENTRY
  548. LDN 5
  549. STD T1
  550. LDD MA MOVE REMAINDER OF IQFT ENTRY
  551. CWM CDSS,ON
  552. CWM FMSS,ON
  553. CWM FDSS,ON
  554. CWM ACSS,ON
  555. CWM FOSS,ON
  556. SBN 5
  557. CRM QBUF+2+5*10,T1
  558. CQFD EQU *-1
  559. LDC 5*QFEWL ADVANCE BUFFER ADDRESS
  560. RAM CQFC
  561. LDN QFEWL ADVANCE SECTOR LENGTH
  562. RAM QBUF+1
  563. SHN -6
  564. ZJN CQF5 IF NOT FULL SECTOR
  565. RJM WQF WRITE *IQFT* SECTOR
  566. ZJN CQF5 IF SECTOR WRITTEN
  567. LJM IQF2 END OF SPACE ON *IQFT*
  568.  
  569. CQF5 LDD CT RESET CURRENT TRACK
  570. STD T6
  571. LJM CQFX RETURN
  572.  
  573.  
  574. FILEREC
  575. DAP SPACE 4,10
  576. ** DAP - DELAY AND PAUSE.
  577. *
  578. * EXIT (A) = 0 IF *ODET* OR ERROR .GE. *SPET* SET.
  579.  
  580.  
  581. DAP SUBR ENTRY/EXIT
  582. DELAY
  583. PAUSE
  584. LDD CM+1
  585. SBN ODET
  586. ZJN DAPX IF OPERATOR DROP
  587. SBN SPET-ODET
  588. SHN -21 (A) = 1 IF NO ERROR *SPET* OR ABOVE
  589. UJN DAPX RETURN
  590. DPS SPACE 4
  591. ** DPS - DETERMINE IF PRESERVED FILE AND RESERVATION BIT
  592. * IS SET FOR TRACK SPECIFIED.
  593. *
  594. * ENTRY (T6) = TRACK.
  595. *
  596. * EXIT (A, BIT 21) = RESERVATION BIT.
  597. * (A, BIT 7) = PRESERVED FILE BIT.
  598. * (A, BIT 3) = TRACK INTERLOCK BIT.
  599. *
  600. * USES CM - CM+4.
  601.  
  602.  
  603. DPS SUBR ENTRY/EXIT
  604. LDD T6 READ TRT WORD
  605. SHN -2
  606. DPSA ADC TRTS
  607. CRD CM
  608. LDD T6 SET SHIFT COUNT
  609. LPN 3
  610. ADC SHNI+16
  611. STM DPSB
  612. LDD CM+4
  613. DPSB SHN 16
  614. UJN DPSX RETURN
  615. IQF SPACE 4,15
  616. ** IQF - INITIALIZE *IQFT*.
  617. *
  618. * ENTRY (T5) = EST ORDINAL.
  619. *
  620. * EXIT (QF) = (QT) = FIRST TRACK OF *IQFT*.
  621. * (QS) = FIRST SECTOR OF *IQFT*.
  622. *
  623. * USES T3, T6.
  624. *
  625. * CALLS RSS, WSS.
  626. *
  627. * MACROS SETMS.
  628.  
  629.  
  630. IQF SUBR ENTRY/EXIT
  631. IQF2 LDM PFBA
  632. STD T6 SET *IQFT* TRACK
  633. STD QF
  634. STD QT
  635. LDC 500
  636. STD T3
  637. IQF4 LDN 0 CLEAR SYSTEM SECTOR BUFFER
  638. STM BFMS+1,T3
  639. STM QBUF+1,T3 CLEAR IQFT BUFFER
  640. SOD T3
  641. NJN IQF4 LOOP TO START OF BUFFER
  642. STM QBUF+1 CLEAR SECTOR WORD COUNT
  643. LDD MA MOVE FILE NAME TO BUFFER
  644. CWM IQFA,ON
  645. SBN 1
  646. CRM FNSS,ON
  647. SETMS POSITION
  648. RJM WSS WRITE *IQFT* SYSTEM SECTOR
  649. LDN FSMS SET FIRST *IQF* SECTOR
  650. STD QS
  651. LDD CT RESTORE CURRENT TRACK
  652. STD T6
  653. SETMS POSITION
  654. * LDN 0 REREAD QUEUE FILE SYSTEM SECTOR
  655. RJM RSS
  656. LJM IQFX RETURN
  657.  
  658.  
  659. IQFA VFD 42/0LQUEUES,6/1,6/SYFT,6/0
  660. MRM SPACE 4
  661. ** MRM - ISSUE MRT ERROR MESSAGE.
  662. *
  663. * ENTRY (A) = ADDRESS OF MESSAGE.
  664. * (T6) = TRACK.
  665. * (EQ) = EST ORDINAL TO BE INSERTED IN MESSAGE.
  666. *
  667. * USES T1.
  668. *
  669. * CALLS C2D, DFM.
  670.  
  671.  
  672. MRM SUBR ENTRY/EXIT
  673. STD T1 SAVE MESSAGE ADDRESS
  674. STM MRMA
  675. LDD EQ CONVERT UPPER DIGIT OF EST ORDINAL
  676. SHN -6
  677. ADC 2RQ0
  678. STM 1,T1
  679. LDD EQ CONVERT LOWER TWO DIGITS OF EST ORDINAL
  680. RJM C2D
  681. STM 2,T1
  682. LDD T1
  683. LMC MRTC
  684. ZJN MRM1 IF NO TRACK IN MESSAGE
  685. LDD T6 CONVERT TRACK MESSAGE
  686. RJM C2D
  687. STM 6,T1
  688. LDD T6
  689. SHN -6
  690. RJM C2D
  691. STM 5,T1
  692. LDD T1 ISSUE MESSAGE TO ERRLOG
  693. LMC ERLN
  694. RJM DFM
  695. MRM1 LDC * ISSUE MESSAGE TO DAYFILE
  696. MRMA EQU *-1
  697. RJM DFM
  698. LJM MRMX RETURN
  699. MRT SPACE 4
  700. ** MRT - PROCESS MRT.
  701. *
  702. * ENTRY (T6) = MRT TRACK NUMBER.
  703. * (NT) = NUMBER OF TRACKS ON DEVICE BEING RECOVERED.
  704. * (EQ) = EST ORDINAL BEING PROCESSED.
  705. *
  706. * EXIT TO *MSR* IF LINK DEVICE ERROR.
  707. *
  708. * USES AD, BY, TC, T5, T6, CM - CM+4.
  709. *
  710. * CALLS MRM, PTR, RSC, WDS.
  711. *
  712. * MACROS ENDMS, MONITOR, SETMS.
  713.  
  714.  
  715. MRT8 LDD MA RESET MRT TRACK AND SECTOR
  716. CWM MRTB,ON
  717. SBN 1
  718. CRD T3
  719. SETMS IO,(NS,RW)
  720. LDC BUFS SET BUFFER ADDRESS
  721. RJM WDS WRITE SECTOR
  722. MJN MRT9 IF ERROR
  723. ENDMS
  724. UJN MRTX RETURN
  725.  
  726. MRT9 LDC MRTC SET MESSAGE ADDRESS
  727. RJM MRM ISSUE ERROR MESSAGE
  728.  
  729. MRT SUBR ENTRY/EXIT
  730. LDD EQ UPDATE TRT FOR DEVICE
  731. STD CM+1
  732. LDN UTRS
  733. STD CM+3
  734. MONITOR STBM
  735. * LDN 0 SET FIRST TRACK
  736. STD TC
  737. STD BY
  738. LDD LK READ MRT SECTOR FROM LINK DEVICE
  739. STD T5
  740. LDD SD
  741. ZJN MRT1 IF NOT ISD
  742. LDN /MMF/MRTL-/MMF/MRST
  743. MRT1 ADN /MMF/MRST-1 SET MRT SECTOR
  744. ADD MD
  745. STD T7
  746. SETMS IO,NS
  747. LDC BUFS+2+4 SET FIRST MRT BYTE TO PROCESS
  748. STD AD
  749. SBN 2+4 READ MRT SECTOR
  750. RJM RSC
  751. LDD MA SAVE MRT TRACK AND SECTOR
  752. CWD T3
  753. CRM MRTB,ON
  754. ENDMS
  755. LDD EQ SET EST ORDINAL
  756. STD T5
  757. SETMS IO,RW
  758. MRT2 LDI AD
  759. NJN MRT4 IF BITS SET IN BYTE
  760. MRT3 SOD AD
  761. LDN 14 INCREMENT TRACKS
  762. RAD TC
  763. AOD BY INCREMENT BYTE WITHIN WORD
  764. LMN 3
  765. NJN MRT2 IF NOT DONE WITH CM WORD
  766. * LDN 0
  767. STD BY RESET BYTE COUNTER
  768. LDN 10
  769. RAD AD
  770. LCN 4 ADJUST TRACK COUNT
  771. RAD TC
  772. SBD NT
  773. MJN MRT2 IF MORE TRACKS TO CHECK
  774. LJM MRT8
  775.  
  776. MRT4 LDN 1 INITIALIZE MASK
  777. STM MRTA
  778. SHN 13-0 SET TRACK
  779. ADD TC
  780. STD T6
  781. MRT5 LDI AD
  782. ZJN MRT3 IF NO MORE TRACK BITS IN MRT BYTE
  783. LPC 0
  784. MRTA EQU *-1
  785. ZJN MRT6 IF TRACK BIT NOT SET
  786. LMI AD CLEAR TRACK BIT
  787. STI AD
  788. RJM PTR PROCESS TRACK RESERVATION
  789. MJN MRT6 IF VALID TRACK ASSIGNMENT
  790. LDC MRTD ISSUE ERROR MESSAGE
  791. RJM MRM
  792. MRT6 AOD T6 ADVANCE TRACK
  793. LDM MRTA
  794. RAM MRTA ADJUST MASK FOR NEXT MRT BIT
  795. SHN -14
  796. ZJN MRT5 IF NOT ZERO MASK
  797. LJM MRT3 SET NEXT MRT BYTE
  798.  
  799.  
  800. MRTB BSS 5 TEMPORARY STORAGE
  801. MRTC DATA C* EQXXX, MRT PROCESSED BUT NOT REWRITTEN.*
  802. MRTD DATA C* EQXXX, TKYYYY, INCORRECT LOCAL FILE.*
  803. MSR SPACE 4
  804. ** MSR - RETURN ERROR TO *MREC*.
  805. *
  806. * ENTRY (A) = ERROR CODE.
  807. *
  808. * EXIT ERROR RETURN WORD RETURNED TO *MREC*.
  809. *
  810. * CALLS CFR.
  811.  
  812.  
  813. MSR STD T5 SAVE ERROR CODE
  814. LDN ZERL
  815. CRD T0
  816. LDD RA RETURN ERROR WORD TO *MREC*
  817. SHN 6
  818. ADC /MRT/ERRW
  819. CWD T1
  820. MSR1 LJM DROP DROP PP
  821. PFB SPACE 4
  822. ** PFB - CLEAN UP DIRECT ACCESS FILE SYSTEM SECTORS.
  823. *
  824. * ENTRY (EQ) = EST ORDINAL TO PROCESS.
  825. * (NT) = NUMBER OF TRACKS ON DEVICE.
  826. *
  827. * EXIT (A) = 0 IF DEVICE CLEANUP COMPLETED.
  828. *
  829. * USES BY, CT, NT, PF, TC, T2, T5, T6, T7, CM - CM+4.
  830. *
  831. * CALLS CAM, CQF, C2D, DPS, FAT, PFA, RRS, RSS, SSE, STB,
  832. * STI, TQF, USC, WDS.
  833. *
  834. * MACROS ENDMS, PAUSE, SETMS.
  835.  
  836.  
  837. PFB SUBR ENTRY/EXIT
  838. LDD EQ SET EST ORDINAL
  839. STD T5
  840. SHN -6 CONVERT UPPER DIGIT OF EST ORDINAL
  841. ADC 2RQ0
  842. STM PFBB+10
  843. STM PFBC+13
  844. LDD EQ CONVERT LOWER TWO DIGITS OF EST ORDINAL
  845. RJM C2D
  846. STM PFBB+11
  847. STM PFBC+14
  848. SETMS IO,(NS,RW)
  849. LDN 0
  850. STD BY PRESET FILES PROCESSED COUNT
  851. STD EF
  852. LDD CM+4 GET *IQFT* POINTER FROM MST
  853. STM PFBD
  854. PFB0 SHN 3
  855. ADN ACGL
  856. CRD CM
  857. LDD CM+3 SET *IQFT* TRACK
  858. STM PFBA
  859. STD T6 INTERLOCK *IQFT*
  860. RJM STI
  861. ZJN PFB1 IF TRACK INTERLOCKED
  862. LDD CP
  863. ADN MS2W STORE WAITING MESSAGE
  864. CWM PFBC,TR
  865. DELAY 10*100D DELAY 100 MS
  866. PAUSE NE
  867. LDC ** LOAD MST ADDRESS
  868. PFBD EQU *-1
  869. UJN PFB0 LOOP ON INTERLOCK
  870.  
  871. PFB1 STD PF
  872. LDC PFB18 SET WRITE ERROR PROCESSING RETURN
  873. STM WDSA
  874. LDD MD SET MACHINE INDEX*5
  875. STD TC
  876. SHN 2
  877. RAD TC
  878. ADC UCSS SET BEGINNING OF DOWNED MACHINE ENTRY
  879. STM USCA
  880. LDC 4000-1 SET INITIAL TRACK
  881. STD CT
  882. ADN 1 SET LAST TRACK + 1
  883. RAD NT
  884. PFB2 AOD CT ADVANCE TRACK NUMBER
  885. LMD NT
  886. NJN PFB3 IF NOT END OF TRT
  887. STD CM
  888. LDC WDSX RESET ERROR RETURN
  889. STM WDSA
  890. LDD CP CLEAR CONTROL POINT MESSAGE
  891. ADN MS2W
  892. CWD CM
  893. RJM TQF TERMINATE *IQFT*
  894. LDD EF
  895. LJM PFBX RETURN
  896.  
  897. PFB3 LDD CT SET NEXT TRACK
  898. STD T6
  899. LMC 0
  900. PFBA EQU *-1
  901. ZJN PFB2 IF *IQFT* TRACK
  902. RJM DPS DETERMINE TRACK STATUS
  903. SHN 21-7
  904. PJN PFB2 IF NOT FIRST TRACK OF PRESERVED FILE
  905.  
  906. * READ AND VERIFY SYSTEM SECTOR.
  907.  
  908. AOD BY INCREMENT SYSTEM SECTORS PROCESSED
  909. LMN NFTP
  910. NJN PFB4 IF NOT TIME TO PAUSE
  911. STD BY RESET COUNTER
  912. PAUSE NE
  913. PFB4 LDD T6 SET TRACK NUMBER IN MESSAGE
  914. RJM C2D
  915. STM PFBB+16
  916. LDD T6
  917. SHN -6
  918. RJM C2D
  919. STM PFBB+15
  920. LDD CP ISSUE MESSAGE
  921. ADN MS2W
  922. CWM PFBB,TR
  923. SETMS POSITION
  924. * LDN 0
  925. RJM RSS
  926. ZJN PFB7 IF VALID SYSTEM SECTOR
  927. PFB5 ENDMS
  928. LDD PF
  929. ZJN PFB6 IF TRACK NOT INTERLOCKED
  930. LDN CTIS
  931. RJM STB CLEAR TRACK INTERLOCK
  932. * LDN 0
  933. STD PF
  934. PFB6 LJM PFB2 LOOP FOR NEXT PRESERVED FILE
  935.  
  936. PFB7 RJM CQF CHECK FOR QUEUE FILE
  937. NJN PFB5 IF QUEUE FILE PROCESSED
  938. LDD FT CHECK FILE TYPE
  939. LMN PMFT
  940. ZJN PFB10 IF DIRECT ACCESS FILE
  941. LMN FAFT&PMFT
  942. NJN PFB5 IF NOT FAST ATTACH FILE
  943. RJM RRS
  944. LDD SD
  945. NJN PFB9 IF ISD
  946. LDM FISS
  947. LPC 3777
  948. ZJN PFB10 IF NOT GLOBAL ATTACH FILE
  949. RJM FAT PROCESS FAST ATTACH FILE
  950. PFB8 NJN PFB5 IF FILE STILL IN FAST ATTACH STATUS
  951. LJM PFB14 REWRITE SECTOR
  952.  
  953. PFB9 RJM PFA PROCESS FAST ATTACH FILE ON ISD
  954. NJN PFB8 IF SYSTEM SECTOR UPDATE NOT REQUIRED
  955. UJN PFB14 REWRITE SYSTEM SECTOR
  956.  
  957. * UPDATE USER COUNTS IN SYSTEM SECTOR.
  958.  
  959. PFB10 LDM UCSS,TC CHECK IF ALL COUNTS ZERO
  960. LPN 1
  961. STD T2
  962. ADM UCSS+1,TC
  963. ADM UCSS+2,TC
  964. ADM UCSS+3,TC
  965. ADM UCSS+4,TC
  966. NJN PFB12 IF NECESSARY TO UPDATE SECTOR
  967. RJM CAM CHECK ACCESS MODE BITS
  968. NJN PFB8 IF FILE NOT PURGED
  969. PFB11 LJM PFB2 LOOP FOR NEXT PRESERVED FILE
  970.  
  971. PFB12 RJM RRS REREAD SYSTEM SECTOR WITH INTERLOCK
  972. LDN 0
  973. STM FISS
  974. RJM USC UPDATE SYSTEM SECTOR COUNTS
  975. LDC PMFT*100
  976. STM FNSS+4
  977. PFB14 RJM CAM CHECK ACCESS MODE BITS
  978. ZJN PFB11 IF FILE PURGED
  979.  
  980. * WRITE SECTOR BACK TO DEVICE.
  981.  
  982. LDN 0 RESET SECTOR
  983. STD T7
  984. LDC BFMS WRITE SECTOR
  985. RJM WDS
  986. ZJN PFB16 IF NO ERRORS
  987. ENDMS
  988. RJM SSE
  989. PFB16 LJM PFB5 CLEAR TRACK INTERLOCK
  990.  
  991. PFB18 AOD EF SET ERROR FLAG
  992. LDD NT
  993. SBN 1 ENABLE IMMEDIATE RETURN
  994. STD CT
  995. UJN PFB16 COMPLETE OPERATIONS ON DEVICE
  996.  
  997.  
  998. PFBB DATA C* RECOVERING PF.EQXXX, TRK YYYY.*
  999. PFBC DATA C*$INTERLOCKING IQFT, EQXXX.*
  1000. PTR SPACE 4,15
  1001. ** PTR - PROCESS TRACK RESERVATION.
  1002. *
  1003. * ENTRY (T5) = EST ORDINAL.
  1004. * (T6) = CURRENT TRACK.
  1005. * (SD) = INDEPENDENT SHARED DEVICE STATUS.
  1006. *
  1007. * EXIT (A) .GE. 0 IF INCORRECT LOCAL FILE.
  1008. *
  1009. * USES CM - CM+4.
  1010. *
  1011. * CALLS DPS, RSS, STB.
  1012. *
  1013. * MACROS ENDMS, MONITOR.
  1014.  
  1015.  
  1016. PTR1 LDN CTIS CLEAR INTERLOCK
  1017. RJM STB
  1018. PTR3 LCN 0 SET EXIT CONDITION
  1019.  
  1020. PTR SUBR ENTRY/EXIT
  1021. RJM DPS DETERMINE TRACK STATUS
  1022. SHN 21-3
  1023. MJN PTR1 IF TRACK INTERLOCKED
  1024. SHN 3-21+22
  1025. PJN PTRX IF TRACK NOT RESERVED
  1026. SHN 21-7
  1027. MJN PTRX IF FILE PRESERVED
  1028. LDN 0 READ SYSTEM SECTOR
  1029. RJM RSS
  1030. LPC 7777
  1031. NJN PTRX IF SYSTEM SECTOR ERROR
  1032. ENDMS
  1033. LDD T6 RELEASE LOCAL FILE DISK SPACE
  1034. STD CM+2
  1035. LDD T5
  1036. LMC 2000 SET TRACK DROP FOR ANOTHER MACHINE
  1037. STD CM+1
  1038. MONITOR DTKM
  1039. UJN PTR3 RETURN
  1040. RRS SPACE 4,15
  1041. ** RRS - REREAD SYSTEM SECTOR IF TRACK INTERLOCK NOT SET.
  1042. *
  1043. * ENTRY (PF) = TRACK INTERLOCK STATUS.
  1044. *
  1045. * EXIT TO CALLER IF TRACK INTERLOCKED ON ENTRY.
  1046. *
  1047. * EXIT (A) = (T6) IF TRACK NO LONGER RESERVED.
  1048. * = RESPONSE FROM *RSS*.
  1049. * TO PREVIOUS *RSS* CALLER IF TRACK NOT ALREADY
  1050. * INTERLOCKED.
  1051. *
  1052. * CALLS RSS, STI.
  1053. *
  1054. * MACROS ENDMS.
  1055.  
  1056.  
  1057. RRS SUBR ENTRY/EXIT
  1058. LDD PF
  1059. NJN RRSX IF FIRST TRACK INTERLOCKED
  1060. ENDMS
  1061. LDM RSS CHANGE RETURN TO LAST *RSS* CALLER
  1062. STM RRS
  1063. RJM STI SET TRACK INTERLOCK
  1064. NJN RRSX IF TRACK NO LONGER RESERVED
  1065. * LDN 0 REREAD SYSTEM SECTOR
  1066. RJM RSS
  1067. UJN RRSX RETURN
  1068. RSC SPACE 4,10
  1069. ** RSC - READ SECTOR AND CHECK FOR ERRORS.
  1070. *
  1071. * ENTRY (A) = BUFFER ADDRESS.
  1072. * (T5 - T7) = DRIVER PARAMETERS.
  1073. *
  1074. * ERROR TO *MSR* IF READ ERROR.
  1075. *
  1076. * CALLS RDS.
  1077. *
  1078. * MACROS ENDMS.
  1079.  
  1080.  
  1081. RSC SUBR ENTRY/EXIT
  1082. RJM RDS READ SECTOR
  1083. PJN RSCX IF NO ERROR
  1084. RSC1 ENDMS
  1085. LDN /MRT/RER SET READ ERROR
  1086. LJM MSR PROCESS ERROR
  1087. SCI SPACE 4,15
  1088. ** SCI - INCREMENT/DECREMENT *MREC* ACTIVITY COUNT.
  1089. *
  1090. * *CMS* WILL WAIT ON THE ACTIVITY COUNT IN *INWL* BEFORE AN
  1091. * UNLOAD WILL BE PROCESSED.
  1092. *
  1093. * EXIT (A) = 0.
  1094. *
  1095. * USES CM - CM+4.
  1096. *
  1097. * MACROS MONITOR.
  1098.  
  1099.  
  1100. SCI SUBR ENTRY/EXIT
  1101. SCIA LDD MA INCREMENT/DECREMENT *MREC* COUNT
  1102. * UJN SCIX (NOT *PMT* OR *UMT* FUNCTION)
  1103. CWM SCIB,TW
  1104. SBN 1
  1105. CRD CM
  1106. MONITOR UADM
  1107. LDD CM+1
  1108. ZJN SCIX IF NO OVERFLOW/UNDERFLOW
  1109. SCI1 MONITOR HNGM
  1110. UJN SCI1 HANG
  1111.  
  1112.  
  1113. SCIB VFD 12/LIOS,12/INWL,6/18D,6/6,24/0 INCREMENT ACTIVITY
  1114. *SCIB VFD 12/LDOS,12/INWL,6/18D,6/6,24/0 (DECREMENT ACTIVITY)
  1115. VFD 12/0,12/1,12/1,24/0
  1116. SDP SPACE 4,15
  1117. ** SDP - SET DEVICE PARAMETERS.
  1118. *
  1119. * ENTRY (EQ) = EQUIPMENT.
  1120. *
  1121. * EXIT (A) = PF CATALOG SIZE.
  1122. * = 0, 8 WORD CATALOGS.
  1123. * = 1000, 16 WORD CATALOGS.
  1124. * (DF) = DAF COUNT.
  1125. * (NT) = NUMBER OF TRACKS ON DEVICE.
  1126. * (DPSA - DPSA+1) = TRT ADDRESS.
  1127. *
  1128. * USES T0 - T6, CN - CN+4.
  1129. *
  1130. * MACROS SFA.
  1131. *
  1132. * CALLS CAT.
  1133.  
  1134.  
  1135. SDP SUBR ENTRY/EXIT
  1136. SFA EST,EQ SET DEVICE PARAMETERS
  1137. ADK EQDE
  1138. CRD CN
  1139. LDD CN+4
  1140. SHN 3
  1141. ADN MDGL
  1142. CRD T0
  1143. SBN MDGL-TDGL
  1144. CRD T1
  1145. ADN ACGL-TDGL
  1146. CRD CN SET DAF COUNT
  1147. ADN TRLL-ACGL
  1148. RJM CAT CALCULATE FWA OF TRT
  1149. SBD TH
  1150. STM DPSA+1
  1151. SHN -14
  1152. LMC ADCI
  1153. STM DPSA
  1154. LDD T1+2
  1155. SHN 2
  1156. STD NT NUMBER OF TRACKS
  1157. SHN 21-13
  1158. PJN SDP1 IF NOT FULL-LENGTH TRT
  1159. SOD NT SET (NT) = 3777
  1160. SDP1 LDD CN+2
  1161. STD DF DAF COUNT
  1162. LDD T0 GET PFC SIZE
  1163. LPC 1000
  1164. LJM SDPX RETURN
  1165. STB SPACE 4,15
  1166. ** STB - SET TRACK BIT.
  1167. *
  1168. * ENTRY (A) = *STBM* SUBFUNCTION CODE.
  1169. * (T5) = EST ORDINAL.
  1170. * (T6) = TRACK NUMBER.
  1171. *
  1172. * EXIT (A) = MONITOR RESPONSE.
  1173. *
  1174. * USES CM - CM+4.
  1175. *
  1176. * MACROS MONITOR.
  1177.  
  1178.  
  1179. STB SUBR ENTRY/EXIT
  1180. STD CM+3 SET SUBFUNCTION CODE
  1181. LDD T6 SET TRACK
  1182. STD CM+2
  1183. LDD T5 SET EST ORDINAL
  1184. LMC 1S10
  1185. STD CM+1
  1186. MONITOR STBM ISSUE REQUEST
  1187. LDD CM+1
  1188. UJN STBX RETURN
  1189. STI SPACE 4,15
  1190. ** STI - SET TRACK INTERLOCK.
  1191. *
  1192. * ENTRY (T5) = EST ORDINAL.
  1193. * (T6) = TRACK.
  1194. *
  1195. * EXIT (A) = 0 IF TRACK INTERLOCKED.
  1196. * = (T6) IF TRACK NOT RESERVED.
  1197. * (PF) = (T6) IF TRACK INTERLOCKED.
  1198. *
  1199. * ERROR TO *ERR* IF *ORET* ERROR FLAG DETECTED.
  1200. *
  1201. * CALLS STB.
  1202. *
  1203. * MACROS DELAY, PAUSE.
  1204.  
  1205.  
  1206. STI2 LDD T6 FLAG TRACK INTERLOCKED
  1207. STD PF
  1208. STI3 LMD T6 RETURN INTERLOCK STATUS
  1209.  
  1210. STI SUBR ENTRY/EXIT
  1211. STI1 LDN STIS ATTEMPT TRACK INTERLOCK
  1212. RJM STB
  1213. ZJN STI2 IF INTERLOCK SET
  1214. LMN 2
  1215. ZJN STI3 IF TRACK NOT RESERVED
  1216. DELAY 250D*10
  1217. PAUSE
  1218. LDD CM+1 CHECK ERROR FLAG
  1219. LMN ORET
  1220. NJN STI1 IF NOT OPERATOR OVERRIDE
  1221. LJM ERR PROCESS ERROR FLAG TERMINATION
  1222. TQF SPACE 4,15
  1223. ** TQF - TERMINATE *IQFT*.
  1224. *
  1225. * ENTRY (T5) = EST ORDINAL.
  1226. * (QF) = FIRST TRACK OF *IQFT*.
  1227. * (QT) = CURRENT *IQFT* TRACK.
  1228. * (QS) = CURRENT *IQFT* SECTOR.
  1229. *
  1230. * EXIT (QF) = 0.
  1231. *
  1232. * USES T1, T6, T7.
  1233. *
  1234. * CALLS STB, WEI, WQF.
  1235. *
  1236. * MACROS ENDMS, MONITOR, SETMS.
  1237.  
  1238.  
  1239. TQF2 LDM PFBA
  1240. ZJN TQFX IF *IQFT* NOT INTERLOCKED
  1241. STD T6
  1242. LDN CTIS CLEAR TRACK INTERLOCK
  1243. RJM STB
  1244. * LDN 0 CLEAR *IQFT* PROCESSING INITIATED
  1245. STD QF
  1246. STM PFBA CLEAR TRACK INTERLOCKED FLAG
  1247.  
  1248. TQF SUBR ENTRY/EXIT
  1249. LDD QF
  1250. ZJN TQF2 IF NO QUEUE FILE PROCESSING
  1251. LDC 500
  1252. STD T1
  1253. TQF1 LDN 0 CLEAR EOI SECTOR BUFFER
  1254. STM BFMS+1,T1
  1255. SOD T1
  1256. NJN TQF1 LOOP TO START OF BUFFER
  1257. RJM WQF WRITE LAST *IQFT* SECTOR
  1258. LDD MA MOVE FILE NAME TO BUFFER
  1259. CWM IQFA,ON
  1260. SBN 1
  1261. CRM BFMS+FNEI,ON
  1262. LDD T5 SETUP EOI SECTOR BUFFER
  1263. STM BFMS+FSEI
  1264. LDD QF
  1265. STM BFMS+FTEI
  1266. LDD QT SET CURRENT *IQFT* TRACK AND SECTOR
  1267. STD T6
  1268. LDD QS
  1269. STD T7
  1270. SETMS POSITION
  1271. RJM WEI WRITE EOI SECTOR
  1272. ENDMS
  1273. LDD T5 SET EOI IN TRT
  1274. LMC 1S11
  1275. STD CM+1
  1276. LDD QT
  1277. LPC 3777
  1278. STD CM+2
  1279. LDD QS
  1280. STD CM+3
  1281. MONITOR DTKM
  1282. LJM TQF2 CLEAR TRACK INTERLOCK
  1283. USC SPACE 4,10
  1284. * USC - UPDATE SYSTEM SECTOR COUNTS.
  1285. *
  1286. * ENTRY (T2) = WRITE MODE FLAG FROM UCSS OF DOWN MACHINE.
  1287. * (TC) = MACHINE INDEX*5.
  1288. * (MI) = MACHINE INDEX.
  1289. * (UCSA) = ADDRESS IN BUFFER OF DOWN MACHINE PF COUNTS.
  1290. * (BFMS) = SYSTEM SECTOR.
  1291. *
  1292. * EXIT COUNTS UPDATED AND ENTRY CLEARED FOR DOWN MACHINE.
  1293.  
  1294.  
  1295. USC SUBR ENTRY/EXIT
  1296. LDN 0 SUBTRACT DOWN MACHINE COUNTS FROM TOTAL
  1297. SBM UCSS+1,TC
  1298. RAM UCSS+1
  1299. LDN 0
  1300. SBM UCSS+2,TC
  1301. RAM UCSS+2
  1302. LDN 0
  1303. SBM UCSS+3,TC
  1304. RAM UCSS+3
  1305. LDN 0
  1306. SBM UCSS+4,TC
  1307. RAM UCSS+4
  1308. LDM UCSS,TC
  1309. LPN 2
  1310. ZJN USC1 IF LOCAL UTILITY ATTACH FLAG NOT SET
  1311. LDM CASS CLEAR GLOBAL UTILITY ATTACH FLAG
  1312. LPC 7677
  1313. STM CASS
  1314. USC1 LDN ZERL CLEAR ENTRY FOR DOWNED MACHINE
  1315. CRM *,ON
  1316. USCA EQU *-1
  1317. LDD T2
  1318. ZJN USC2 IF WRITE MODE NOT SET
  1319. LDM CASS CLEAR WRITE MODE BITS IN ACCESS WORD
  1320. LPC 7541
  1321. STM CASS
  1322. USC2 LJM USCX RETURN
  1323. WQF SPACE 4,15
  1324. ** WQF - WRITE *IQFT* SECTOR.
  1325. *
  1326. * ENTRY (T5) = EST ORDINAL.
  1327. * (QT) = CURRENT *IQFT* TRACK.
  1328. * (QS) = CURRENT *IQFT* SECTOR.
  1329. *
  1330. * EXIT (A) = 0 IF SECTOR WRITTEN.
  1331. *
  1332. * USES T6, T7, CM - CM+4.
  1333. *
  1334. * CALLS WDS.
  1335. *
  1336. * MACROS ENDMS, MONITOR.
  1337.  
  1338.  
  1339. WQF SUBR ENTRY/EXIT
  1340. LDD QT SET CURRENT *IQFT* TRACK
  1341. STD T6
  1342. LDC QBUF+2 RESET BUFFER POINTER
  1343. STM CQFC
  1344. LDD QS SET *IQFT* SECTOR
  1345. STD T7
  1346. ADN 1 SET SECTOR LINKAGE
  1347. STM QBUF
  1348. STD QS SET NEXT *IQFT* SECTOR
  1349. LMM SLM
  1350. NJN WQF1 IF NOT SECTOR LIMIT
  1351. ENDMS
  1352. * LDN 0
  1353. STD CM+3
  1354. STD CM+4
  1355. STD QS
  1356. LDD T5 REQUEST NEXT *IQFT* TRACK
  1357. STD CM+1
  1358. LDD T6
  1359. STD CM+2
  1360. MONITOR RTCM
  1361. LDD CM+4 SET NEXT TRACK IN SECTOR LINKAGE
  1362. STM QBUF
  1363. ZJN WQF3 IF NO TRACK AVAILABLE
  1364. STD QT
  1365. WQF1 SETMS POSITION
  1366. LDC QBUF+WLSF WRITE *IQFT* SECTOR
  1367. RJM WDS
  1368. ENDMS
  1369. * LDN 0
  1370. STM QBUF+1
  1371. WQF2 LJM WQFX RETURN
  1372.  
  1373. WQF3 LDD T7 SAVE LAST SECTOR FOR EOI
  1374. STD QS
  1375. UJN WQF2 RETURN
  1376. TITLE EXTENDED MEMORY MMF SUBROUTINES.
  1377. SPACE 4,10
  1378. *** EXTENDED MEMORY MMF SUBROUTINES.
  1379. *
  1380. * THE FOLLOWING CODE IS USED ONLY FOR ECS MMF ENVIRONMENTS.
  1381. * IT IS OVERLAID BY ISD MMF CODE IF RUNNING IN AN ISD SYSTEM.
  1382.  
  1383.  
  1384. USE OVERLAY
  1385. OVLA EQU *+5 *2MR* LOAD ADDRESS
  1386. CFR SPACE 4,10
  1387. ** CFR - CLEAR FLAG REGISTER BIT.
  1388. *
  1389. * ENTRY (A) = BIT NUMBER TO CLEAR.
  1390. *
  1391. * USES CM - CM+4.
  1392. *
  1393. * CALLS TFR.
  1394. *
  1395. * MACROS MONITOR.
  1396.  
  1397.  
  1398. CFR SUBR ENTRY/EXIT
  1399. RJM TFR TOGGLE FLAG REGISTER BIT
  1400. LDD T1 BIT NUMBER
  1401. SHN 6
  1402. STD CM+1
  1403. LDN CFRS SET TO CLEAR FLAG REGISTER BIT
  1404. SHN 11
  1405. STD CM+3
  1406. MONITOR ECSM
  1407. UJN CFRX RETURN
  1408. DAT SPACE 4,10
  1409. ** DAT - READ(WRITE) DAT ENTRY (2 WORDS).
  1410. *
  1411. * ENTRY (A) = EST ORDINAL OF EQUIPMENT.
  1412. * (T3) = RECS*1000 IF READ, WECS*1000 IF WRITE.
  1413. * DAT IN CM BUFFER (MA - MA+1) IF WRITE.
  1414. *
  1415. * EXIT (BUFD) = 2 WORD DAT ENTRY. (READ ONLY)
  1416. *
  1417. * CALLS ECS.
  1418. *
  1419. * USES CM - CM+4, T1.
  1420. *
  1421. * MACROS SFA.
  1422.  
  1423.  
  1424. DAT SUBR ENTRY/EXIT
  1425. SFA EST READ EST ENTRY
  1426. ADK EQDE
  1427. CRD CM
  1428. LDD CM+4 READ MST FOR DAT INDEX
  1429. SHN 3
  1430. ADN MDGL
  1431. CRD CM
  1432. LDD CM SET DAT INDEX
  1433. LPC 377
  1434. SHN 1
  1435. ADD DA+1
  1436. STD CM+4
  1437. SHN -14
  1438. ADD T3 SET TO READ/WRITE EXTENDED MEMORY
  1439. ADD DA
  1440. STD CM+3
  1441. LDN 2-1 READ TWO WORDS
  1442. RJM ECS READ(WRITE) EXTENDED MEMORY
  1443. LDD T3
  1444. LMD WE
  1445. ZJN DATX IF WRITE
  1446. LDD MA
  1447. CRM BUFD,TW
  1448. UJN DATX RETURN
  1449. ECS SPACE 4,10
  1450. ** ECS - READ/WRITE EXTENDED MEMORY.
  1451. *
  1452. * ENTRY (A) = WORD COUNT - 1.
  1453. * (CM+3 - CM+4) = PARAMETERS FOR *ECSM* FUNCTION.
  1454. *
  1455. * EXIT (A) = 0.
  1456. *
  1457. * ERROR TO *MSR* IF TRANSFER ERROR.
  1458.  
  1459.  
  1460. ECS SUBR ENTRY/EXIT
  1461. SHN 6
  1462. STD CM+1 SET WORD COUNT
  1463. LDD MA
  1464. STD CM+2 SET BUFFER ADDRESS
  1465. MONITOR ECSM
  1466. LDD CM+1
  1467. ZJN ECSX IF NO ERRORS
  1468. LDN /MRT/RER SET READ ERROR
  1469. LJM MSR PROCESS ERROR
  1470. FAT SPACE 4,10
  1471. ** FAT - PROCESS FAST ATTACH PERMANENT FILES.
  1472. *
  1473. * ENTRY (A) = INDEX OF FAT ENTRY IN EXTENDED MEMORY.
  1474. * SYSTEM SECTOR IN BFMS.
  1475. *
  1476. * EXIT (A) = 0 IF REMOVE FILE FROM FAST ATTACH STATUS.
  1477. *
  1478. * USES T2, T3, T7, CM - CM+4.
  1479. *
  1480. * CALLS CFR, ECS, SFR, WFW.
  1481. *
  1482. * MACROS ENDMS.
  1483.  
  1484.  
  1485. FAT SUBR ENTRY/EXIT
  1486. STD T3
  1487. LDK MMFL
  1488. CRD CM
  1489. LDD CM+1
  1490. SHN 21-12
  1491. PJN FAT1 IF NOT LSPMMF
  1492. SHN 12-21
  1493. LPC 777
  1494. LMD T5
  1495. NJN FAT1 IF FILE DOES NOT RESIDE ON LINK DEVICE
  1496. ENDMS
  1497. FAT1 LDN /MMF/FATI OBTAIN *FATI* INTERLOCK
  1498. RJM SFR
  1499. LDN 0 SET FAT WORD TO READ
  1500. STD T2
  1501. FAT2 LDD T3 SET FAST ATTACH TRACK ADDRESS
  1502. SHN /MMF/FATS
  1503. ADD T2
  1504. ADD DA+1
  1505. ADC /MMF/FAST*100
  1506. STD CM+4
  1507. SHN -14
  1508. ADD DA
  1509. ADD RE READ EXTENDED MEMORY
  1510. STD CM+3
  1511. LDN 1-1 SET WORD COUNT
  1512. RJM ECS READ FAT WORD
  1513. LDD T2 READ FAT ENTRY INTO BUFFER
  1514. SHN 2
  1515. ADD T2
  1516. ADC BUFS
  1517. STM FATA
  1518. LDD MA
  1519. CRM BUFS,ON
  1520. FATA EQU *-1
  1521. AOD T2
  1522. LMN /MMF/MXMF+2
  1523. NJN FAT2 IF NOT END OF WORDS TO READ
  1524. LDD MD SET INDEX INTO ENTRY FOR DOWNED MACHINE
  1525. SHN 2
  1526. ADD MD
  1527. STD T2
  1528. STD T7 PRESET EXIT CONDITION
  1529. LDN 0 ADJUST COUNTS
  1530. SBM BUFS+5+2,T2
  1531. RAM BUFS+5+2
  1532. LDN 0
  1533. SBM BUFS+5+3,T2
  1534. RAM BUFS+5+3
  1535. LDN 0
  1536. SBM BUFS+5+4,T2
  1537. RAM BUFS+5+4
  1538. LDD MA WRITE GLOBAL COUNTS TO EXTENDED MEMORY
  1539. CWM BUFS+5,ON
  1540. LDN 1
  1541. RJM WFW WRITE FAT WORD
  1542. LDN ZERL
  1543. CRD CM
  1544. LDD MA
  1545. CWD CM
  1546. LDD MD
  1547. ADN 1
  1548. RJM WFW WRITE FAT WORD
  1549. LDN 0
  1550. STM BUFS+5,T2 ZERO SLOT FOR THIS MACHINE
  1551. STD T2
  1552. FAT3 LDM BUFS+2*5,T2
  1553. NJN FAT4 IF FILE STILL ATTACHED
  1554. LDN 5
  1555. RAD T2
  1556. LMK 5*/MMF/MXMF
  1557. NJN FAT3 IF NOT END OF MACHINES TO CHECK
  1558. STM FISS CLEAR FAST ATTACH STATUS
  1559. STD T7 SET EXIT CONDITION
  1560. LDN ZERL CLEAR ENTRY IN EXTENDED MEMORY
  1561. CRD CM
  1562. LDD MA
  1563. CWD CM
  1564. LDN 0
  1565. RJM WFW WRITE WORD 0 OF FAT
  1566. LDC PMFT*100 RESET FILE TYPE
  1567. STM FNSS+4
  1568. LDM CASS CLEAR WRITE MODE BITS IN ACCESS WORD
  1569. LPC 7541
  1570. STM CASS
  1571. FAT4 LDN /MMF/FATI CLEAR *FATI* INTERLOCK
  1572. RJM CFR
  1573. LDD T7
  1574. LJM FATX RETURN
  1575. PDT SPACE 4,10
  1576. ** PDT - CLEAR DEVICE ACCESSED BIT IN DAT FOR DOWNED MACHINE.
  1577. *
  1578. * ENTRY (EQ) = EST ORDINAL.
  1579. *
  1580. * EXIT (A) = 0 IF NOT PROCESSING DEVICE.
  1581. * (T6) = MST TRACK IF PROCESSING DEVICE.
  1582. *
  1583. * USES T3, T6.
  1584. *
  1585. * CALLS CKP, DAT.
  1586.  
  1587.  
  1588. PDT SUBR ENTRY/EXIT
  1589. LDD MK
  1590. STM PDTA SET DOWNED MACHINE MASK
  1591. LDD RE
  1592. STD T3 SET READ OF DAT
  1593. LDD EQ
  1594. RJM DAT
  1595. LDM BUFD+5+4 CHECK IF DOWNED MACHINE ACCESSING DEVICE
  1596. LPC *
  1597. PDTA EQU *-1
  1598. ZJN PDTX IF DEVICE ACCESS NOT SET
  1599. LMM BUFD+5+4
  1600. STM BUFD+5+4
  1601. LDM BUFD+4 SET MST TRACK FOR DEVICE
  1602. STD T6
  1603. RJM CKP SET CHECKPOINT BIT
  1604. LDN 1
  1605. UJN PDTX RETURN
  1606. SFR SPACE 4,10
  1607. ** SFR - SET FLAG REGISTER BIT.
  1608. *
  1609. * ENTRY (A) = BIT NUMBER TO SET.
  1610. *
  1611. * ERROR TO *ERR* IF ERROR FLAG SET.
  1612. *
  1613. * USES T1, CM - CM+4.
  1614. *
  1615. * CALLS DAP, TFR.
  1616. *
  1617. * MACROS MONITOR.
  1618.  
  1619.  
  1620. SFR2 LDD CP CLEAR MESSAGE
  1621. ADN MS2W
  1622. CWD CM
  1623.  
  1624. SFR SUBR ENTRY/EXIT
  1625. RJM TFR TOGGLE FLAG REGISTER BIT
  1626. SFR1 LDD T1 SET BIT NUMBER
  1627. SHN 6
  1628. STD CM+1
  1629. LDC SFRS*1000
  1630. STD CM+3
  1631. MONITOR ECSM
  1632. LDD CM+1
  1633. ZJN SFR2 IF BIT SET
  1634. LDD CP
  1635. ADN MS2W
  1636. CWM SFRA,TR
  1637. RJM DAP DELAY AND PAUSE
  1638. NJN SFR1 IF NO OPERATOR DROP
  1639. LDD T1 RESET BIT INTERLOCKED FLAG
  1640. RJM TFR TOGGLE FLAG REGISTER BIT
  1641. LJM ERR ERROR FLAG TERMINATION
  1642.  
  1643.  
  1644. SFRA DATA C*WAITING FOR XXXI INTERLOCK.*
  1645. TFRB SPACE 4,10
  1646. ** TFRB - TABLE OF FLAG REGISTER BIT INTERLOCKS.
  1647. *
  1648. * ENTRY = 3 WORDS.
  1649. *T, TFRB 6/,1/I ,5/N ,24/FLAG BIT MNEMONIC
  1650. * I FLAG BIT INTERLOCKED FLAG
  1651. * N BIT NUMBER
  1652.  
  1653.  
  1654. TFRB BSS 0 TABLE OF FLAG REGISTER BIT INTERLOCKS
  1655. VFD 12//MMF/DATI,24/0LDATI DAT INTERLOCK
  1656. VFD 12//MMF/FATI,24/0LFATI FAST ATTACH TRACK INTERLOCK
  1657. VFD 12//MMF/BDTI,24/0LBDTI BDT INTERLOCK
  1658.  
  1659. CON 0 TERMINATOR
  1660. TFR SPACE 4,10
  1661. ** TFR - TOGGLE FLAG REGISTER BIT.
  1662. *
  1663. * ENTRY (A) = FLAG BIT NUMBER.
  1664. *
  1665. * USES T1, CM+2.
  1666.  
  1667.  
  1668. TFR SUBR ENTRY/EXIT
  1669. STD T1
  1670. LDC TFRB-3 INITIALIZE BIT SEARCH
  1671. STD CM+2
  1672. TFR1 LDN 3 SEARCH FOR FLAG BIT
  1673. RAD CM+2
  1674. LDI CM+2
  1675. ZJN * IF BIT NOT FOUND
  1676. LMD T1
  1677. LPN 37
  1678. NJN TFR1 IF NOT FOUND
  1679. LDI CM+2 TOGGLE BIT
  1680. LMN 40
  1681. STI CM+2
  1682. LDM 1,CM+2 SET BIT MNEMONIC IN MESSAGE
  1683. STM SFRA+6
  1684. LDM 2,CM+2
  1685. STM SFRA+7
  1686. UJN TFRX RETURN
  1687. WFW SPACE 4,10
  1688. ** WFW - WRITE FAT WORD.
  1689. *
  1690. * ENTRY (A) = RELATIVE FAT WORD TO WRITE.
  1691. * (T3) = FAT INDEX.
  1692. * MESSAGE BUFFER CONTAINS WORD TO WRITE.
  1693. *
  1694. * USES CM+3, CM+4.
  1695. *
  1696. * CALLS ECS.
  1697.  
  1698.  
  1699. WFW SUBR ENTRY/EXIT
  1700. SHN 22-/MMF/FATS
  1701. ADD T3
  1702. SHN /MMF/FATS
  1703. ADD DA+1 SET FAST ATTACH TRACK ADDRESS
  1704. ADC /MMF/FAST*100
  1705. STD CM+4
  1706. SHN -14
  1707. ADD DA
  1708. ADD WE
  1709. STD CM+3
  1710. LDN 1-1 WORD COUNT
  1711. RJM ECS WRITE EXTENDED MEMORY
  1712. UJN WFWX RETURN
  1713. SPACE 4,5
  1714. E1MR BSS 0 END OF ECS MMF CODE
  1715. TITLE FUNCTION 0 - RETRIEVE DISPLAY INFORMATION.
  1716. RDI SPACE 4,10
  1717. ** RDI - RETRIEVE DISPLAY INFORMATION. (FUNCTION 0)
  1718. *
  1719. * ENTRY (IR+3 - IR+4) = ADDR.
  1720. *
  1721. * ADDR ADDRESS OF TABLE OF SHARED DEVICES FOR THIS MACHINE.
  1722. *
  1723. * CALLS CAA, DAT.
  1724. *
  1725. * MACROS SFA.
  1726.  
  1727.  
  1728. RDI SUBR ENTRY/EXIT
  1729. LDK EFRL READ MACHINE STATE TABLE
  1730. CRD CM
  1731. LDN /MMF/MXMF SET MAXIMUM NUMBER OF MAINFRAMES
  1732. STD T1
  1733. LDD CM
  1734. SHN 14
  1735. LMD CM+1
  1736. CRM BFMS,T1
  1737. LDD RA WRITE STATE TABLE TO CM TABLE
  1738. SHN 6
  1739. ADK /MRT/TMID
  1740. CWM BFMS,T1
  1741.  
  1742. * RETURN MASKS OF MACHINES SHARING DEVICES WITH THIS MACHINE.
  1743.  
  1744. LCN 0 SET TABLE INDEX
  1745. STD SC
  1746. RDI1 AOD SC INCREMENT TABLE INDEX
  1747. RJM CAA
  1748. ADD SC
  1749. CRD CN READ TABLE ENTRY
  1750. LDD CN+4
  1751. ZJN RDIX IF END OF TABLE
  1752. SFA EST
  1753. ADK EQDE READ EST ENTRY
  1754. CRD CM
  1755. LDD CM
  1756. SHN 21-6
  1757. MJN RDI1 IF DEVICE UNAVAILABLE
  1758. LDD RE
  1759. STD T3 SET READ OPERATION
  1760. LDD CN+4
  1761. RJM DAT READ DAT ENTRY
  1762. LDM BUFD+5+4
  1763. LMC 0 CLEAR MASK OF THIS MACHINE
  1764. RDIA EQU *-1
  1765. STD CN SET MACHINE MASK
  1766. RJM CAA
  1767. ADD SC WRITE ENTRY BACK TO *MREC*
  1768. CWD CN
  1769. UJP RDI1 LOOP FOR NEXT DEVICE
  1770.  
  1771.  
  1772. ERRNG BUFD-* CODE OVERFLOWS BUFFER
  1773. TITLE FUNCTION 3 - CLEAR DEVICE INTERLOCKS.
  1774. CDV SPACE 4,10
  1775. ** CDV - CLEAR DEVICE INTERLOCKS. (FUNCTION 3)
  1776. *
  1777. * ENTRY (IR+4) = MACHINE INDEX FOR WHICH TO CLEAR INTERLOCKS.
  1778. *
  1779. * EXIT TO *MRP2*.
  1780. *
  1781. * MACROS MONITOR.
  1782.  
  1783.  
  1784. CDV8 MONITOR HNGM
  1785. CDV9 LDK EFRL CHANGE STATE OF DOWN MACHINE
  1786. CRD CM
  1787. LDD CM
  1788. SHN 14
  1789. LMD CM+1
  1790. ADD IR+4
  1791. ADK /MMF/MFST-1
  1792. CRD CN
  1793. LDD CN+4
  1794. LMN /MMF/MFMR
  1795. NJN CDV8 IF NOT IN PROPER STATE
  1796. * LDN /MMF/MFDN SET *1MR* DONE STATE
  1797. ERRNZ /MMF/MFDN CODE DEPENDS ON VALUE OF TAG
  1798. STD CN+4
  1799. LDD CM WRITE STATE WORD
  1800. SHN 14
  1801. LMD CM+1
  1802. ADD IR+4
  1803. ADK /MMF/MFST-1
  1804. CWD CN
  1805. LJM MRP2 EXIT TO DROP PP ONLY
  1806.  
  1807. CDV SUBR ENTRY/EXIT
  1808. LDK ESTP PRESET EQUIPMENT SEARCH
  1809. CRD CM
  1810. LDD CM+3
  1811. STD EQ
  1812. CDV1 SOD EQ
  1813. ZJN CDV9 IF END OF EQUIPMENTS
  1814. SFA EST
  1815. ADK EQDE
  1816. CRD CN
  1817. LDD CN
  1818. LPC 5020
  1819. LMC 5000
  1820. NJN CDV1 IF NOT MMF SHARED DEVICE
  1821.  
  1822. * OBTAIN DEVICE INTERLOCK WHILE PROCESSING TRACK INTERLOCKS.
  1823.  
  1824. RJM CBI CLEAR SHARED BUFFERED DEVICE INTERLOCKS
  1825. LDD EQ SET EST ORDINAL
  1826. STD CM+1
  1827. LDN SDIS INTERLOCK DEVICE
  1828. STD CM+3
  1829. MONITOR STBM
  1830. LDD CN+4 GET TRT ADDRESS
  1831. SHN 3
  1832. ADK TDGL
  1833. CRD T1
  1834. ADK SDGL-TDGL
  1835. CRD T6 (T6 - T6+1) = EM ADDRESS OF MST
  1836. ADK TRLL-SDGL
  1837. CRD CN+3-4 (CN+2 - CN+3) = TRT ADDRESS
  1838. LDD T1+2 SET TRT LENGTH
  1839. STD TC
  1840. LDN 0 SET CURRENT TRT WORD
  1841. STD CN
  1842. UJN CDV3 ENTER LOOP
  1843.  
  1844. * LOOP THROUGH TRT WORDS CHECKING FOR INTERLOCKED TRACKS.
  1845.  
  1846. CDV2 AOD CN ADVANCE TRT WORD
  1847. SBD TC
  1848. PJP CDV4 IF END OF TRT
  1849. CDV3 LDD CN+2 READ TRT WORD
  1850. SHN 14
  1851. LMD CN+3
  1852. ADD CN
  1853. CRD T1
  1854. LDD T1+4
  1855. SHN -4
  1856. LPN 17
  1857. ZJN CDV2 IF NO TRACK INTERLOCK BITS SET
  1858.  
  1859. * INTERLOCKED TRACK(S) FOUND, CHECK IF HELD BY DOWN MACHINE.
  1860.  
  1861. ADC TCDVB GET INTERLOCK BITS IN MRT ORDER
  1862. STD T0
  1863. LDI T0
  1864. STM CDVB (CDVB) = TRACK INTERLOCK BITS (MRT ORDER)
  1865. LDD IR+4 COMPUTE EXTENDED MEMORY MRT ADDRESS
  1866. SHN 6+3
  1867. ADD CN
  1868. SHN -3
  1869. ADC /MMF/MRST*100-100
  1870. STD SC ADDRESS OF MRT WORD IN TRACK
  1871. ADD T6+1
  1872. STD CM+4
  1873. SHN -14
  1874. ADD T6
  1875. ADD RE
  1876. STD CM+3
  1877. LDD MA SET CM ADDRESS
  1878. STD CM+2
  1879. LDN 0 SET WORD COUNT TO 1
  1880. STD CM+1
  1881. MONITOR ECSM
  1882. LDD MA READ MRT WORD
  1883. CRD CM
  1884.  
  1885. * CHECK MRT WORD OF DOWN MACHINE TO SEE IF IT HAS INTERLOCKS.
  1886.  
  1887. LDD CN COMPUTE MRT BYTE
  1888. LPN 7
  1889. STD BI
  1890. LDM TCDV,BI SET BYTE FROM TABLE
  1891. STD BY
  1892. LDM TCDVA,BI SET MRT SHIFTS
  1893. STM CDVA
  1894. LMN 77
  1895. STM CDVC
  1896. LDI BY
  1897. CDVA SHN ** SHIFT MRT BITS TO BITS 4 - 7
  1898. LPC **
  1899. CDVB EQU *-1
  1900. ZJP CDV2 IF NO INTERLOCKS HELD BY THIS MACHINE
  1901. STD T0 SAVE INTERLOCKS CLEARED
  1902. CDVC SHN ** SHIFT BACK
  1903. LMI BY
  1904. STI BY
  1905.  
  1906. * CLEAR TRACK INTERLOCK BITS IN TRT WORD.
  1907.  
  1908. LDD T0 GET INTERLOCK BITS CLEARED IN TRT ORDER
  1909. SHN -4
  1910. ADC TCDVB
  1911. STD T0
  1912. LDI T0
  1913. LMD T1+4
  1914. STD T1+4
  1915. LDD CN+2 WRITE TRT WORD
  1916. SHN 14
  1917. ADD CN+3
  1918. ADD CN
  1919. CWD T1
  1920.  
  1921. * REWRITE MRT WORD TO EXTENDED MEMORY.
  1922.  
  1923. LDD MA SET CM ADDRESS
  1924. CWD CM WRITE MRT WORD TO MB
  1925. STD CM+2
  1926. LDD SC SET ADDRESS OF MRT WORD
  1927. ADD T6+1
  1928. STD CM+4
  1929. SHN -14
  1930. ADD T6
  1931. ADD WE
  1932. STD CM+3
  1933. LDN 0 SET WORD COUNT TO 1
  1934. STD CM+1
  1935. MONITOR ECSM
  1936. LJM CDV2 PROCESS NEXT TRT WORD
  1937.  
  1938. * ADJUST *PFM* ACTIVITY COUNTS.
  1939.  
  1940. CDV4 LDN GLGL-LLLL COMPUTE EM ADDRESS OF LOCAL MST
  1941. STD SC
  1942. LDN 0
  1943. STD T0
  1944. CDV5 LDN LLLL
  1945. RAD SC
  1946. AOD T0
  1947. LMD IR+4
  1948. NJN CDV5 IF NOT END OF COMPUTATION
  1949. ERRNG 6-LLLL LOCAL MST EXCEEDS MESSAGE BUFFER
  1950. LDD SC SET EXTENDED MEMORY ADDRESS FOR *ECSM*
  1951. ADD T6+1
  1952. STD CM+4
  1953. SHN -14
  1954. ADD T6
  1955. ADD RE
  1956. STD CM+3
  1957. LDD MA SET CM ADDRESS
  1958. STD CM+2
  1959. LDC LLLL*100-100
  1960. STD CM+1
  1961. MONITOR ECSM
  1962. LDD MA READ LOCAL AREA
  1963. CRM MBUF,SX
  1964.  
  1965. * SUBTRACT LOCAL PF COUNTS FROM GLOBAL.
  1966.  
  1967. LDD CN+4 READ GLOBAL COUNT WORD FROM CM MST
  1968. SHN 3
  1969. ADK TDGL
  1970. CRD CM
  1971. LDD CM+1
  1972. ZJN CDV7 IF NO COUNTS SET
  1973. SBM MBUF+DULL*5-GLGL*5+1
  1974. MJN CDV6 IF COUNTER UNDERFLOW
  1975. STD CM+1
  1976. CDV6 LDN 0
  1977. STM MBUF+DULL*5-GLGL*5+1
  1978. LDD CN+4
  1979. SHN 3
  1980. ADK TDGL
  1981. CWD CM
  1982.  
  1983. * WRITE LOCAL MST BACK TO EXTENDED MEMORY.
  1984.  
  1985. LDD MA WRITE LOCAL AREA
  1986. STD CM+2
  1987. CWM MBUF,SX
  1988. LDD SC SET EXTENDED MEMORY ADDRESS FOR *ECSM*
  1989. ADD T6+1
  1990. STD CM+4
  1991. SHN -14
  1992. ADD T6
  1993. ADD WE
  1994. STD CM+3
  1995. LDC LLLL*100-100
  1996. STD CM+1
  1997. MONITOR ECSM
  1998.  
  1999. * CLEAR DEVICE INTERLOCK. NOTE THAT THE TRT AND GLOBAL MST
  2000. * ARE WRITTEN TO EXTENDED MEMORY BY THIS FUNCTION.
  2001.  
  2002. CDV7 LDD EQ
  2003. ADC 4000 SET CHECKPOINT BIT
  2004. STD CM+1
  2005. LDN CDIS
  2006. STD CM+3
  2007. MONITOR STBM
  2008. LJM CDV1 PROCESS NEXT EQUIPMENT
  2009.  
  2010.  
  2011. TCDV CON CM+4,CM+4,CM+4,CM+3,CM+3,CM+3,CM+2,CM+2
  2012. TCDVA CON SHNI+4,SHNI,SHNI+73,SHNI+4,SHNI,SHNI+73,SHNI+4,SHNI
  2013. TCDVB CON 00,200,100,300,40,240,140,340
  2014. CON 20,220,120,320,60,260,160,360
  2015. TITLE *CDV* SUBROUTINES.
  2016. ABE SPACE 4,10
  2017. ** ABE - ACCESS *BDT* ENTRY.
  2018. *
  2019. * ENTRY (A) = READ/WRITE FUNCTION CODE (*RE* OR *WE*).
  2020. * (SC) = *DAT* INDEX.
  2021. * (ABEA) = *BDT* TRACK.
  2022. *
  2023. * USES CM+3, CM+4, T6, T7.
  2024. *
  2025. * CALLS CEA, ECS.
  2026.  
  2027.  
  2028. ABE SUBR ENTRY/EXIT
  2029. ADC ADDI
  2030. STM ABEB
  2031. LDC ** (*BDT* TRACK)
  2032. ABEA EQU *-1
  2033. STD T6
  2034. LDN 0
  2035. STD T7
  2036. RJM CEA CONVERT EXTENDED MEMORY ADDRESS
  2037. LDD SC ADD *DAT* INDEX
  2038. RAD CM+4
  2039. SHN -14
  2040. ABEB ADD RE READ FUNCTION
  2041. * ADD WE (WRITE FUNCTION)
  2042. RAD CM+3
  2043. LDN 1-1 READ OR WRITE ONE WORD
  2044. RJM ECS READ OR WRITE *BDT* ENTRY
  2045. UJN ABEX RETURN
  2046. CBI SPACE 4,10
  2047. ** CBI - CLEAR SHARED BUFFERED DEVICE INTERLOCKS.
  2048. *
  2049. * ENTRY (MD) = MACHINE INDEX OF DOWNED MACHINE.
  2050. * (EQ) = EST ORDINAL.
  2051. * (CN - CN+4) = EST ENTRY.
  2052. *
  2053. * USES SC, CM - CM+4, T1 - T5.
  2054. *
  2055. * CALLS ABE, CFR, SFR.
  2056. *
  2057. * MACROS CMSTF, MONITOR.
  2058.  
  2059.  
  2060. CBI SUBR ENTRY/EXIT
  2061. LDD CN
  2062. SHN 21-5
  2063. PJN CBIX IF NOT SHARED BUFFERED DEVICE
  2064. LDN ZERL
  2065. CRD CM
  2066. LDD MD SET MACHINE INDEX OF DOWNED MACHINE
  2067. STD CM+2
  2068. LDD EQ SET EST ORDINAL
  2069. STD CM+4
  2070. LDN CBRS CLEAR *BAT* READ ACCESS PERMISSIONS
  2071. STD CM+1
  2072. MONITOR MTEM
  2073. LDD CN+4
  2074. SHN 3
  2075. ADN MDGL
  2076. CRD CM
  2077. LDD CM GET *DAT* INDEX
  2078. LPC 377
  2079. STD SC
  2080. LDN /MMF/BDTI SET *BDT* INTERLOCK
  2081. RJM SFR
  2082. LDN RE READ *BDT* ENTRY
  2083. RJM ABE
  2084. LDD MA
  2085. CRD T1
  2086. LDD T1 CHECK ERROR PROCESSING INTERLOCK
  2087. ZJN CBI1 IF INTERLOCK NOT SET
  2088. LPN 7
  2089. LMD MD
  2090. NJN CBI1 IF INTERLOCK NOT HELD BY DOWNED MACHINE
  2091. STD T1 CLEAR INTERLOCK
  2092. CMSTF GDER CLEAR ERROR PROCESSING BIT IN *ACGL*
  2093. CBI1 LDD T2 CHECK RESTORE PARITY INTERLOCK
  2094. ZJN CBI2 IF INTERLOCK NOT SET
  2095. LPN 7
  2096. LMD MD
  2097. NJN CBI2 IF INTERLOCK NOT HELD BY DOWNED MACHINE
  2098. STD T1+1 CLEAR INTERLOCK
  2099. STD T1+2 CLEAR CONTROLLER SERIAL NUMBER
  2100. STD T1+3
  2101. STD T1+4
  2102. CMSTF GDUR CLEAR RESTORE IN PROGRESS BIT IN *ACGL*
  2103. CMSTF GDRI CLEAR RESTORE INITIATION BIT IN *ACGL*
  2104. CBI2 LDD MA
  2105. CWD T1
  2106. LDN WE REWRITE *BDT* ENTRY
  2107. RJM ABE
  2108. LDN /MMF/BDTI CLEAR *BDT* INTERLOCK
  2109. RJM CFR
  2110. CMSTF GPDA CLEAR MMF PARITY DEVICE ACCESS FLAG
  2111. CBIA EQU *-3 (BIT NUMBER FOR DOWNED MAINFRAME)
  2112. UJP CBIX RETURN
  2113. SPACE 4,10
  2114. * COMMON DECKS.
  2115.  
  2116.  
  2117. QUAL COMPTGB
  2118. QUAL$ EQU 0 PREVENT FURTHER QUALIFICATION
  2119. T5 EQU EQ USE *EQ* AS EST ORDINAL IN *COMPTGB*
  2120. *CALL COMPTGB
  2121. QUAL *
  2122. TGB EQU /COMPTGB/TGB
  2123. SPACE 4,10
  2124. MBUF BSS 0
  2125. TITLE PRESET.
  2126. PRS SPACE 4,10
  2127. ** PRS - PRESET PROGRAM.
  2128. *
  2129. * EXIT (ID) = MID OF THIS MACHINE.
  2130. * (LK) = EST ORDINAL OF LINK DEVICE.
  2131. * (MD) = MACHINE INDEX OF DOWNED MACHINE.
  2132. * (MK) = MACHINE MASK OF DOWNED MACHINE.
  2133. * (MI) = MID OF DOWNED MACHINE.
  2134. * (AD) = FUNCTION CODE.
  2135. * (QF) = 0.
  2136. * (TW) = CONSTANT TWO.
  2137. * (SX) = CONSTANT SIX.
  2138. * (DT) = DAT / FAT TRACK.
  2139. * (RE) = *ECSM* READ FUNCTION.
  2140. * (WE) = *ECSM* WRITE FUNCTION.
  2141. * (DA - DA+1) = DEVICE ACCESS TABLE ADDRESS.
  2142. * (ET - ET+1) = ENVIRONMENT TABLE ADDRESS.
  2143. *
  2144. * CALLS AST, CEA, DAP, SCI.
  2145. *
  2146. * MACROS SFA.
  2147.  
  2148.  
  2149. PRS SUBR ENTRY/EXIT
  2150. LDN 2
  2151. STD TW
  2152. LDD IR+3
  2153. SHN -6
  2154. STD AD
  2155. SBN /MRT/MFUN
  2156. MJN PRS0 IF LEGAL FUNCTION
  2157. LDC PRSA * INCORRECT 1MR FUNCTION.*
  2158. LJM ABT ABORT
  2159.  
  2160. PRS0 LDD AD CHECK FUNCTION CODE
  2161. LMN /MRT/PMT
  2162. ZJN PRS0.1 IF *PMT* FUNCTION
  2163. LMN /MRT/UMT&/MRT/PMT
  2164. ZJN PRS0.1 IF *UMT* FUNCTION
  2165. ISTORE SCIA,(UJN SCIX) DISABLE *CMS* INTERLOCK CODE
  2166. LJM PRS3 READ MULTIMAINFRAME INFORMATION
  2167.  
  2168. * WAIT FOR *CMS* TO COMPLETE.
  2169.  
  2170. PRS0.1 LDC FEAF*10000+MSSI
  2171. RJM AST CHECK FOR *CMS* ACTIVE
  2172. ZJN PRS2 IF *CMS* NOT ACTIVE
  2173. RJM DAP DELAY AND PAUSE
  2174. NJN PRS1 IF NO ERROR FLAG SET
  2175. STD CM CLEAR MESSAGE
  2176. LDD CP
  2177. ADK MS2W
  2178. CWD CM
  2179. LJM MRP2 DROP PP
  2180.  
  2181. PRS1 LDD CP * WAITING FOR *CMS* TO FINISH.*
  2182. ADK MS2W
  2183. CWM PRSC,TR
  2184. LDN ZERL
  2185. CRD CM
  2186. LDD MA
  2187. CWD IR
  2188. MONITOR RECM RECALL *1MR*
  2189. LJM PPR RETURN TO RESIDENT
  2190.  
  2191. PRS2 STD CM CLEAR MESSAGE
  2192. LDD CP
  2193. ADK MS2W
  2194. CWD CM
  2195. RJM SCI SET *CMS* INTERLOCK
  2196. * LDN 0
  2197. STD QF
  2198. LDN LDOS SET TO DECREMENT ACTIVITY COUNT
  2199. STM SCIB
  2200.  
  2201. * READ MULTIMAINFRAME INFORMATION.
  2202.  
  2203. PRS3 LDK MMFL READ LINK DEVICE EST ORDINAL
  2204. CRD CM
  2205. LDD CM STORE MID OF THIS MACHINE
  2206. STD ID
  2207. LDD CM+3 SET MACHINE MASK
  2208. STM RDIA
  2209. LDD CM+1 CHECK FOR SHARED BUFFERED DEVICES
  2210. SHN 21-11
  2211. MJN PRS3.1 IF SHARED BUFFERED DEVICES DEFINED
  2212. AOM PRSE DISABLE SHARED BUFFERED DEVICE PROCESSING
  2213. PRS3.1 LDD CM+1 STORE EST ORDINAL OF LINK DEVICE
  2214. LPC 777
  2215. STD LK SET LINK EST ORDINAL
  2216. STM CFIA
  2217. ZJN PRS4 IF NO LINK DEVICE
  2218. SFA EST READ EST ENTRY
  2219. ADK EQDE
  2220. CRD CN
  2221. LDD CN+4 READ MST TO OBTAIN LABEL TRACK
  2222. SHN 3
  2223. ADN ALGL
  2224. CRD CN
  2225. LDD CN+4 SET DAT/FAT TRACK
  2226. STD DT
  2227. LDD CN+1 SET LABEL TRACK
  2228. STD T6
  2229. LDN /MMF/ETLT SET ENVIRONMENT TABLE SECTOR
  2230. STD T7
  2231. RJM CEA CONVERT TO EXTENDED MEMORY ADDRESS
  2232. LDD CM+3
  2233. STD ET
  2234. LDD CM+4
  2235. STD ET+1
  2236. LDD DT SET DAT/FAT TRACK ADDRESS
  2237. STD T6
  2238. LDN 0
  2239. STD T7
  2240. RJM CEA CONVERT EXTENDED MEMORY ADDRESS
  2241. LDD CM+4
  2242. STD DA+1
  2243. LDD CM+3
  2244. STD DA
  2245. PRS4 LDD AD
  2246. LMN /MRT/CDV
  2247. NJN PRS5 IF NOT CLEAR DEVICE INTERLOCK FUNCTION
  2248. LDD IR+4
  2249. UJN PRS6 SET MACHINE INDEX OF DOWNED MACHINE
  2250.  
  2251. PRS5 LDD RA SET MACHINE INDEX OF DOWNED MACHINE
  2252. SHN 6
  2253. ADC /MRT/MASK
  2254. CRD CM
  2255. LDD CM+4
  2256. PRS6 STD MD
  2257. ADN GPDA-1 SET BIT NUMBER FOR *CMSTF* REQUEST
  2258. LMC LCNI
  2259. STM CBIA
  2260. LDM PRSB-1,MD SET MASK OF DOWNED MACHINE
  2261. STD MK
  2262. LDD CM SET MID OF DOWNED MACHINE
  2263. STD MI
  2264. LDN 6
  2265. STD SX
  2266. LDC RECS*1000
  2267. STD RE
  2268. LDC WECS*1000
  2269. STD WE
  2270. PRSE LDN 0
  2271. * LDN 1 (SHARED BUFFERED DEVICES NOT DEFINED)
  2272. NJN PRS7 IF SHARED BUFFERED DEVICES NOT DEFINED
  2273. LDD ET+1
  2274. ADN /MMF/BAET SET ADDRESS OF ENVIRONMENT TABLE WORD
  2275. STD CM+4
  2276. SHN -14
  2277. ADD ET
  2278. ADD RE
  2279. STD CM+3
  2280. LDN 1-1 READ ONE WORD FROM EXTENDED MEMORY
  2281. RJM ECS
  2282. LDD MA
  2283. CRD CM
  2284. LDD CM+1 SET *BDT* FIRST TRACK
  2285. STM ABEA
  2286.  
  2287. * CHECK FOR ISD ENVIRONMENT.
  2288.  
  2289. PRS7 LDM PRSD,AD SET ADDRESS OF FUNCTION PROCESSOR
  2290. STM MRPA
  2291. LDD LK
  2292. NJP MRP IF EXTENDED MEMORY MMF
  2293. LDC MRP
  2294. STM EXR SET RETURN ADDRESS
  2295. EXECUTE 2MR,*
  2296. LJM EXR+1 LOAD ISD MMF SUBROUTINES
  2297.  
  2298.  
  2299. PRSA DATA C* INCORRECT 1MR FUNCTION.*
  2300.  
  2301.  
  2302. * TABLE OF MACHINE MASKS (INDEXED BY MACHINE INDEX).
  2303.  
  2304. PRSB BSS 0
  2305. .1 SET 1
  2306. DUP MXMF,2
  2307. CON .1
  2308. .1 SET .1+.1
  2309.  
  2310.  
  2311. PRSC DATA 30L WAITING FOR *CMS* TO FINISH.
  2312.  
  2313.  
  2314. * TABLE OF FUNCTION PROCESSOR ADDRESSES.
  2315.  
  2316. PRSD INDEX
  2317. INDEX /MRT/RDI,RDI RETRIEVE DISPLAY INFORMATION
  2318. INDEX /MRT/PMT,PMT PROCESS DAT, FAT, MRT-S
  2319. INDEX /MRT/UMT,UMT UPDATE MST ENTRIES IN CM
  2320. INDEX /MRT/CDV,CDV CLEAR DEVICE INTERLOCKS
  2321. INDEX /MRT/PRB,PRB PROCESS RESERVES AND BAT-S
  2322. INDEX /MRT/MFUN
  2323. SPACE 4,10
  2324. * PRESET COMMON DECKS.
  2325.  
  2326.  
  2327. *CALL COMPAST
  2328. SPACE 4,10
  2329. OVERFLOW
  2330. TTL 1MR/2MR - PROCESS ISD RECOVERY.
  2331. TITLE ISD MMF SUBROUTINES.
  2332. IDENT 2MR,OVLA
  2333. *COMMENT 1MR - PROCESS ISD RECOVERY.
  2334. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  2335. SPACE 4,10
  2336. *** 2MR - PROCESS ISD RECOVERY.
  2337. * D. K. ELDRED. 82/12/01.
  2338. SPACE 4,10
  2339. *** ISD MMF SUBROUTINES.
  2340. *
  2341. * THE FOLLOWING CODE IS USED ONLY FOR ISD MMF ENVIRONMENTS.
  2342. * IT OVERLAYS THE EXTENDED MEMORY MMF SUBROUTINES IN *1MR*.
  2343.  
  2344.  
  2345. ORG OVLA
  2346.  
  2347. TMR SUBR ENTRY/EXIT
  2348. UJN TMRX RETURN
  2349. CTC SPACE 4,15
  2350. ** CTC - COPY DISK TABLES TO CENTRAL MEMORY.
  2351. *
  2352. * ENTRY (T3) = MST POINTER.
  2353. * (T5) = EST ORDINAL.
  2354. * (T6) = LABEL TRACK.
  2355. * (CT) = LAST TRT SECTOR + 1.
  2356. * (WB+2) = TRT LENGTH.
  2357. * (WB+3) = LABEL SECTOR NUMBER.
  2358. *
  2359. * USES CT, T7, WB, WB+1.
  2360. *
  2361. * CALLS CAT, RDS.
  2362.  
  2363.  
  2364. CTC1 LDD WB+2 ADJUST WORD COUNT
  2365. LPN 77
  2366. ZJN CTCX IF END OF TRT ON SECTOR BOUNDARY
  2367. STD WB
  2368. CTC2 LDC BUFS READ SECTOR OF TRT DATA
  2369. RJM RDS
  2370. LDD T3 SET MST POINTER TO TRT
  2371. SHN 3
  2372. ADN TRLL CALCULATE TRT ADDRESS
  2373. RJM CAT
  2374. ADD WB+1 WRITE TRT DATA TO CENTRAL MEMORY
  2375. CWM BUFS+2,WB
  2376. LDD HN ADVANCE TRT OFFSET
  2377. RAD WB+1
  2378. CTC3 AOD T7 ADVANCE SECTOR NUMBER
  2379. SBD CT
  2380. MJN CTC2 IF ANOTHER FULL SECTOR
  2381. ZJN CTC1 IF PARTIAL SECTOR
  2382.  
  2383. CTC SUBR ENTRY/EXIT
  2384. LDN 0
  2385. STD WB+1 INITIALIZE TRT OFFSET
  2386. LDD HN
  2387. STD WB SET FULL SECTOR WORD COUNT
  2388. LDD WB+3
  2389. STD T7 SET LABEL SECTOR
  2390. SOD CT
  2391. UJN CTC3 COPY TRT
  2392. CUC SPACE 4,10
  2393. ** CUC - COMPARE UPDATE COUNTS.
  2394. *
  2395. * ENTRY (A) = ADDRESS OF COUNTER IN *BFMS* BUFFER.
  2396. * (BUFS) = TRT / MRT SECTOR.
  2397. *
  2398. * EXIT (A) = 0 IF COUNTS MATCH.
  2399. *
  2400. * USES T1.
  2401.  
  2402.  
  2403. CUC SUBR ENTRY/EXIT
  2404. STD T1
  2405. LDI T1 COMPARE UPDATE COUNTS
  2406. LMM BUFS+2+5*77+2
  2407. NJN CUCX IF NO MATCH
  2408. LDM 1,T1
  2409. LMM BUFS+2+5*77+3
  2410. NJN CUCX IF NON-MATCHING COUNTS
  2411. LDM 2,T1
  2412. LMM BUFS+2+5*77+4
  2413. SCN 77
  2414. UJN CUCX RETURN
  2415. PFA SPACE 4,15
  2416. ** PFA - PROCESS FAST ATTACH FOR ISD.
  2417. *
  2418. * ENTRY (TC) = MACHINE INDEX*5.
  2419. * SYSTEM SECTOR IN BFMS.
  2420. *
  2421. * EXIT (A) = 0 IF REWRITE SYSTEM SECTOR.
  2422. *
  2423. * CALLS USC.
  2424. *
  2425. * USES T2.
  2426.  
  2427.  
  2428. PFA3 LDN 1 SET NO SYSTEM SECTOR REWRITE
  2429.  
  2430. PFA SUBR ENTRY/EXIT
  2431. LDM UCSS,TC
  2432. SHN 21-2
  2433. PJN PFA3 IF NO ENTRY FOR DOWNED MACHINE
  2434. SHN -21+2+22
  2435. LPN 1
  2436. STD T2
  2437. RJM USC UPDATE SYSTEM SECTOR COUNTS
  2438. LDN 0 PRESET COUNTER
  2439. STD T2
  2440. PFA1 LDM UCSS+5,T2
  2441. NJN PFA2 IF FILE STILL BEING ACCESSED
  2442. LDN 5 ADVANCE COUNTER
  2443. RAD T2
  2444. LMC /MMF/MMPF*5
  2445. NJN PFA1 IF NOT ALL MAINFRAMES CHECKED
  2446. STM FISS CLEAR FAST ATTACH STATUS
  2447. LDC PMFT*100 RESET FILE TYPE
  2448. STM FNSS+4
  2449. PFA2 LDN 0 SET TO REWRITE SYSTEM SECTOR
  2450. UJN PFAX RETURN
  2451. RMI SPACE 4,10
  2452. ** RMI - RELEASE MST INTERLOCKS.
  2453. *
  2454. * ENTRY (T5) = EST ORDINAL.
  2455. * (MD) = DOWNED MACHINE INDEX.
  2456. *
  2457. * EXIT TO *MSR* IF LABEL SECTOR ERROR.
  2458. *
  2459. * USES T6, T7, CM - CM+4.
  2460.  
  2461. * CALLS CDC, CLC, CTC, C2D, DAP, RSC, UDT, VDT, WDS.
  2462. *
  2463. * MACROS ENDMS, SETMS.
  2464.  
  2465.  
  2466. RMI SUBR ENTRY/EXIT
  2467. LDD T5 CONVERT UPPER DIGIT OF EST ORDINAL
  2468. SHN -6
  2469. ADC 2RQ0
  2470. STM RMIB+1
  2471. LDD T5 CONVERT LOWER TWO DIGITS OF EST ORDINAL
  2472. RJM C2D
  2473. STM RMIB+2
  2474. SETMS IO,(NS,DE,RW)
  2475. LDD CM+4 SET MST ADDRESS
  2476. STD T3
  2477. SHN 3
  2478. ADN ALGL READ DEVICE ALLOCATION WORD
  2479. CRD CM
  2480. LDD CM+1 SET LABEL TRACK
  2481. STD T6
  2482. LDN /MMF/LSLT
  2483. STD T7
  2484. LDD CP WRITE MESSAGE TO B-DISPLAY
  2485. ADN MS2W
  2486. CWM RMIB,TR
  2487. RMI1 LDC BFMS READ LABEL SECTOR
  2488. RJM RSC
  2489. RJM VDT VERIFY DISK TABLES
  2490. ZJN RMI2 IF RESERVE HELD BY DOWN MACHINE
  2491. MJN RMI4 IF DEVICE NOT INTERLOCKED
  2492. ENDMS
  2493. RJM DAP DELAY
  2494. NJP RMI1 IF NO OPERATOR DROP
  2495. LJM ERR PROCESS OPERATOR DROP
  2496.  
  2497. RMI2 LDD WB+3
  2498. ZJN RMI3 IF PRIMARY MRT CURRENT
  2499. LDN 0
  2500. SBD WB+3 SET PRIMARY MRT SECTOR
  2501. RAD T7
  2502. LDC BUFS COPY MRT TO PRIMARY LOCATION
  2503. RJM WDS
  2504. RMI3 LDM N4SS+5*SDGL+4
  2505. SCN 77 CLEAR DOWN MACHINE INTERLOCK
  2506. SHN -1
  2507. LMD WB+4 SET THIS MACHINE-S INTERLOCK
  2508. SHN 1
  2509. STM N4SS+5*SDGL+4
  2510. LDN /MMF/LSLT SET PRIMARY LABEL SECTOR
  2511. STD T7
  2512. RJM CLC COMPUTE LABEL CHECKSUM
  2513. STM CKSS
  2514. RMI4 LDD MD
  2515. SHN 2 DOWN MACHINE INDEX * 5
  2516. ADD MD
  2517. ADC DISS-5 SET DIT ENTRY ADDRESS
  2518. STD T0
  2519. STM RMIA
  2520. LDI T0 EXTRACT ACTIVITY COUNT
  2521. LPN 77
  2522. LMC -0 DECREMENT PFM ACTIVITY COUNT
  2523. RAM N4SS+TDGL*5+1
  2524.  
  2525. * CLEAR PF INTERLOCK AND INSTALL INTERLOCK IF HELD
  2526. * BY DOWN MACHINE.
  2527.  
  2528. LDI T0
  2529. LPC 300
  2530. LMM N4SS+5*TDGL+1 CLEAR PF AND INSTALL INTERLOCKS
  2531. STM N4SS+5*TDGL+1
  2532. LDN ZERL CLEAR DIT ENTRY
  2533. CRM **,ON
  2534. RMIA EQU *-1
  2535. LDN /MMF/LSLT SET PRIMARY LABEL SECTOR
  2536. STD T7
  2537. RJM CDC COMPUTE LABEL CHECKSUM
  2538. STM CKSS
  2539. LDC BFMS+WLSF WRITE LABEL SECTOR
  2540. RJM WDS
  2541. PJN RMI6 IF NO WRITE ERROR
  2542. LDN /MRT/WER SET WRITE ERROR
  2543. LJM MSR RETURN ERROR TO *MREC*
  2544.  
  2545. RMI6 LDD WB
  2546. NJN RMI8 IF NOT UPDATING TABLES IN CM
  2547. AOM N4SS+5*SDGL+4
  2548. LDD T3 CALCULATE FWA OF TRT
  2549. SHN 3
  2550. ADK TDGL SET DEVICE INTERLOCK IN CM
  2551. CWM N4SS,TR
  2552. RJM CTC COPY TRT TO CENTRAL MEMORY
  2553. ENDMS
  2554. RJM UDT UPDATE DEVICE INFORMATION TABLE
  2555. LDN CDIS
  2556. STD CM+3 SET *STBM* SUBFUNCTION
  2557. LDD T5
  2558. STD CM+1 REBUILD TABLES ON DISK
  2559. MONITOR STBM
  2560. RMI8 ENDMS RELEASE MASS STORAGE RESOURCES
  2561. * LDN 0
  2562. STD CM
  2563. LDD CP
  2564. ADN MS2W CLEAR MESSAGE
  2565. CWD CM
  2566. LJM RMIX RETURN
  2567.  
  2568.  
  2569. RMIB DATA C* EQXXX, CLEARING MST INTERLOCKS.*
  2570. SDM SPACE 4,15
  2571. ** SDM - CHECK DEVICE SHARED TO DOWN MF.
  2572. *
  2573. * ENTRY (T5) = EST ORDINAL.
  2574. * (MI) = MID OF DOWN MAINFRAME.
  2575. *
  2576. * EXIT (A) = 0, DEVICE SHARED TO DOWN MF.
  2577. * = 1, DEVICE NOT SHARED TO DOWN MF.
  2578. * (MD) = MACHINE INDEX.
  2579. *
  2580. * USES RE, T6, CM - CM+4.
  2581. *
  2582. * MACROS SFA.
  2583. *
  2584. * CALLS CAT.
  2585.  
  2586.  
  2587. SDM SUBR ENTRY/EXIT
  2588. SFA EST,T5
  2589. ADK EQDE READ EST ENTRY
  2590. CRD CM
  2591. LDD CM CHECK DEVICE ATTRIBUTES
  2592. LPC 4120
  2593. LMC 4020
  2594. NJN SDM2 IF NOT MASS STORAGE / AVAILABLE / ISD
  2595. LDD CM+4
  2596. STD RE SAVE MST ADDRESS / 10
  2597. SHN 3
  2598. ADK TDGL FETCH TRT LENGTH
  2599. CRD CM
  2600. LDD CM+2 DETERMINE LENGTH OF MRT
  2601. ADN 7
  2602. SHN -3
  2603. ADD CM+2 ADD LENGTH OF THE TRT
  2604. SBN 1
  2605. STD T6 SET DIT OFFSET
  2606. LDN /MMF/MMPF
  2607. STD MD MAXIMUM MACHINE CONFIGURATION
  2608. SDM1 LDD RE
  2609. SHN 3
  2610. ADN TRLL
  2611. RJM CAT CALCULATE FWA OF TRT
  2612. ADD T6
  2613. ADD MD
  2614. CRD CM READ DIT ENTRY
  2615. LDD CM+4
  2616. LMD MI
  2617. ZJN SDM3 IF MATCHING MACHINE ID-S
  2618. SOD MD
  2619. NJN SDM1 IF MORE TO CHECK
  2620. SDM2 LDN 1
  2621. SDM3 LJM SDMX RETURN
  2622. UDT SPACE 4,10
  2623. ** UDT - UPDATE DEVICE INFORMATION TABLE IN CM.
  2624. *
  2625. * ENTRY (T3) = MST POINTER.
  2626. * (WB+2) = TRT LENGTH.
  2627. * (BFMS) = LABEL SECTOR.
  2628. *
  2629. * USES T1, WB+2.
  2630. *
  2631. * CALLS CAT.
  2632.  
  2633.  
  2634. UDT SUBR ENTRY/EXIT
  2635. LDN /MMF/MISD
  2636. STD T1 DIT LENGTH
  2637. LDD WB+2
  2638. ADN 7 CALCULATE DIT OFFSET
  2639. SHN -3
  2640. RAD WB+2 APPEND MRT LENGTH TO TRT LENGTH
  2641. LDD T3
  2642. SHN 3
  2643. ADN TRLL CALCULATE FWA OF TRT
  2644. RJM CAT
  2645. ADD WB+2 COPY DIT TO CENTRAL MEMORY
  2646. CWM DISS,T1
  2647. UJN UDTX RETURN
  2648. VDT SPACE 4,25
  2649. ** VDT - VERIFY DISK TABLES.
  2650. *
  2651. * ENTRY (MD) = DOWN MACHINE INDEX FOR SPECIFIED DEVICE.
  2652. * (T3) = MST POINTER.
  2653. * (T5) = EST ORDINAL.
  2654. * (T6) = LABEL TRACK.
  2655. * (T7) = 0.
  2656. * (BFMS) = FIRST LABEL SECTOR.
  2657. *
  2658. * EXIT (A) .LT. 0 IF DEVICE NOT INTERLOCKED.
  2659. * .GT. 0 IF INTERLOCK HELD BY ACTIVE MACHINE.
  2660. * .EQ. 0 IF INTERLOCK HELD BY DOWN MACHINE.
  2661. * (T7) = MRT SECTOR NUMBER IF TABLES VERIFIED.
  2662. * (WB) = 0 IF DEVICE INTERLOCK HELD BY DOWN MACHINE.
  2663. * (WB+2) = TRT LENGTH.
  2664. * (WB+3) = LABEL SECTOR NUMBER IF TABLES VERIFIED.
  2665. * (WB+4) = THIS MACHINE INDEX FOR SPECIFIED DEVICE.
  2666. * (BFMS) = LABEL SECTOR.
  2667. * (BUFS) = MRT SECTOR IF DOWN MACHINE HAS INTERLOCK.
  2668. *
  2669. * USES CT, CM - CM+4, WB - WB+4.
  2670. *
  2671. * CALLS CLC, CTC, CUC, RSC.
  2672. *
  2673. * MACROS ENDMS.
  2674.  
  2675.  
  2676. VDT8 LCN 1 INDICATE DEVICE NOT INTERLOCKED
  2677.  
  2678. VDT SUBR ENTRY/EXIT
  2679. LDD T3
  2680. SHN 3
  2681. ADK TDGL FETCH TRT LENGTH
  2682. CRD WB
  2683. ADN DULL-TDGL GET DEVICE USAGE WORD
  2684. CRD CM
  2685. LDD CM+2 EXTRACT DIT ORDINAL
  2686. LPN 17
  2687. ADN 1 SET MACHINE INDEX
  2688. STD WB+4
  2689. LDM N4SS+5*SDGL+4 CHECK SOFTWARE RESERVE
  2690. LPN 77
  2691. ZJN VDT8 IF DEVICE NOT INTERLOCKED
  2692. SHN -1
  2693. LMD MD CHECK DEVICE HOLDING INTERLOCK
  2694. STD WB
  2695. NJN VDTX IF NOT HELD BY DOWN MACHINE
  2696. VDT1 STD WB+3
  2697. RJM CLC COMPUTE LABEL CHECKSUM
  2698. LMM CKSS
  2699. NJN VDT3 IF CHECKSUM ERROR
  2700.  
  2701. * READ ENTIRE TRT TO ENSURE NO DISK ERRORS FOR *CTC*.
  2702.  
  2703. AOD T7 SET FIRST SECTOR OF TRT
  2704. LDD WB+2
  2705. SHN -6 CALCULATE LAST SECTOR OF TRT
  2706. ADN 2
  2707. ADD WB+3 INCLUDE ALTERNATE TABLES BIAS
  2708. STD CT
  2709. VDT2 LDC BUFS READ TRT SECTOR
  2710. RJM RSC
  2711. AOD T7 ADVANCE SECTOR NUMBER
  2712. LMD CT
  2713. NJN VDT2 IF NOT END OF TRT SECTOR
  2714.  
  2715. * VERIFY UPDATE COUNTS BETWEEN MST AND TRT.
  2716.  
  2717. LDC N4SS+5*SDGL+2 COMPARE UPDATE COUNTS
  2718. RJM CUC
  2719. VDT3 NJN VDT4 IF NON-MATCHING COUNTS
  2720. LDN /MMF/MRTL-1
  2721. ADD MD
  2722. ADD WB+3 SET MRT SECTOR OF DOWN MACHINE
  2723. STD T7
  2724. LDC BUFS READ MRT SECTOR
  2725. RJM RSC
  2726.  
  2727. * VERIFY UPDATE COUNTS BETWEEN DIT AND MRT.
  2728.  
  2729. LDD MD CALCULATE ADDRESS OF DIT ENTRY
  2730. SHN 2
  2731. ADD MD
  2732. ADC /LSD/DISS-5+1 COMPARE UPDATE COUNTS
  2733. RJM CUC
  2734. ZJP VDTX IF MATCHING COUNTS
  2735. VDT4 LDD WB+3
  2736. ZJN VDT5 IF ALTERNATE LABEL NOT CHECKED
  2737. ENDMS
  2738. LJM RSC1 PROCESS READ ERROR
  2739.  
  2740. VDT5 LDD T3 READ MST
  2741. SHN 3
  2742. ADN DULL SET ALTERNATE LABEL SECTOR
  2743. CRD T7
  2744. LDC BFMS READ LABEL SECTOR
  2745. RJM RSC
  2746. LDD T7
  2747. LJM VDT1 VERIFY ALTERNATE LABEL TABLES
  2748. SPACE 4,10
  2749. ** COMMON DECKS.
  2750.  
  2751.  
  2752. *CALL COMPCLC
  2753. SPACE 4,5
  2754. ERRNG QBUF-* CODE OVERFLOW INTO BUFFERS
  2755. SCP SPACE 4,10
  2756. ** SCP - SET / CLEAR PP PAUSE FLAG.
  2757. *
  2758. * ENTRY (A) = 0 IF CLEARING PP PAUSE FLAG.
  2759. * = 1 IF SETTING PP PAUSE FLAG.
  2760. *
  2761. * USES CM - CM+4.
  2762.  
  2763.  
  2764. SCP SUBR ENTRY/EXIT
  2765. STD T0
  2766. LDD CP FETCH SENSE SWITCH WORD
  2767. ADN SNSW
  2768. CRD CM
  2769. LDD CM+3 SET / CLEAR PAUSE FLAG
  2770. SCN 1
  2771. LMD T0
  2772. STD CM+3
  2773. LDD CP STORE SENSE SWITCH WORD
  2774. ADN SNSW
  2775. CWD CM
  2776. UJN SCPX RETURN
  2777. TITLE FUNCTION 2 - UPDATE MST ENTRIES IN CM.
  2778. UMT SPACE 4,10
  2779. ** UMT - UPDATE MST ENTRIES IN CM. (FUNCTION 2)
  2780. *
  2781. * EXIT MST-S FOR INDEPENDENT SHARED DEVICES UPDATED IN CM.
  2782. *
  2783. * USES T1, T5, T6, WB+2, CM - CM+4, CN - CN+4.
  2784. *
  2785. * CALLS C2D, RLS, SCP, SDM, UDT, VDT.
  2786. *
  2787. * MACROS DELAY, EXECUTE, SFA.
  2788.  
  2789.  
  2790. UMT8 LDN 0 CLEAR PP PAUSE FLAG
  2791. RJM SCP
  2792.  
  2793. UMT SUBR ENTRY/EXIT
  2794. EXECUTE 2MS
  2795. LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  2796. STD T5
  2797. LDN 0 CLEAR TRACK POINTER (FOR *STB*)
  2798. STD T6
  2799. LDN ESTP GET EST POINTERS
  2800. CRD CN
  2801. UMT1 AOD T5 ADVANCE EST ORDINAL
  2802. LMD CN+3
  2803. ZJN UMT8 IF END OF MASS STORAGE DEVICES
  2804. RJM SDM
  2805. NJN UMT1 IF NOT AVAILABLE ISD SHARED WITH DOWN MF
  2806. LDD T5
  2807. SHN -6
  2808. ADC 2RQ0 CONVERT UPPER DIGIT OF EST ORDINAL
  2809. STM UMTA+1
  2810. STM UMTB+1
  2811. LDD T5 CONVERT LOWER TWO DIGITS OF EST ORDINAL
  2812. RJM C2D
  2813. STM UMTA+2
  2814. STM UMTB+2
  2815. LDN 1 SET PP PAUSE FLAG
  2816. RJM SCP
  2817. UMT2 RJM RLS READ LABEL SECTOR
  2818. NJN UMT4 IF READ ERRORS
  2819. RJM VDT VERIFY DISK TABLES
  2820. ENDMS
  2821. RJM UDT UPDATE DIT IN CENTRAL MEMORY
  2822. UMT3 LJM UMT1 PROCESS NEXT EST ENTRY
  2823.  
  2824. UMT4 LPN 77 EXTRACT ERROR CODE
  2825. LMN CRSE
  2826. NJN UMT5 IF CONTROLLER NOT RESERVED
  2827. LDD T4
  2828. RJM C2D CONVERT CHANNEL FOR MESSAGE
  2829. STM UMTA+5
  2830. LDD CP WRITE MESSAGE TO B-DISPLAY
  2831. ADN MS2W
  2832. CWM UMTA,TR
  2833. UJN UMT6 CHECK FOR CLEARED PP PAUSE FLAG
  2834.  
  2835. UMT5 LMN RESE&CRSE
  2836. NJP RSC1 IF UNIT NOT RESERVED
  2837. LDM RLSA+5
  2838. STM UMTB+5 SET UNIT NUMBER IN MESSAGE
  2839. LDD CP
  2840. ADN MS2W COPY MESSAGE TO B-DISPLAY
  2841. CWM UMTB,TR
  2842. UMT6 DELAY
  2843. LDD CP READ SENSE SWITCH WORD
  2844. ADN SNSW
  2845. CRD CM
  2846. LDD CM+3 CHECK FOR PAUSE FLAG CLEARED
  2847. SHN 21-0
  2848. MJP UMT2 IF *GO* COMMAND NOT ISSUED
  2849. UMT7 LJM UMT1 PROCESS NEXT EST ENTRY
  2850.  
  2851.  
  2852. UMTA DATA C* EQXXX, CHYY, CONTROLLER RESERVED.*
  2853. UMTB DATA C* EQXXX, UNYY, UNIT RESERVED.*
  2854. SPACE 4,10
  2855. E2MR BSS 0 END OF ISD RECOVERY CODE
  2856. OVERFLOW OVLA
  2857.  
  2858. OVLB MAX E1MR+5,E2MR+5 *2MS* LOAD ADDRESS
  2859. TTL 1MR/2MS - HARDWARE RESERVE ROUTINES.
  2860. TITLE COMMON SUBROUTINES.
  2861. IDENT 2MS,OVLB
  2862. *COMMENT 1MR - HARDWARE RESERVE ROUTINES.
  2863. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  2864. SPACE 4,10
  2865. *** 2MS - HARDWARE RESERVE ROUTINES.
  2866.  
  2867. ORG OVLB
  2868.  
  2869.  
  2870. TMS SUBR ENTRY/EXIT
  2871. UJN TMSX RETURN AFTER LOAD
  2872. RES SPACE 4,15
  2873. ** RES - PROCESS UNIT AND CONTROLLER RESERVES.
  2874. *
  2875. * ENTRY (IR+3 - IR+4) = FWA OF TABLE OF DEVICES TO RECOVER.
  2876. *
  2877. * EXIT RETURN TO *MREC* FOR OPERATOR ACTION IF THERE IS
  2878. * A UNIT OR CONTROLLER RESERVE WHICH CANNOT BE CLEARED.
  2879. *
  2880. * USES SC, T5, T6, CM - CM+4, CN -CN+4.
  2881. *
  2882. * CALLS CAA, CBW, RLS, SDM, *0RI*.
  2883. *
  2884. * MACROS EXECUTE.
  2885.  
  2886.  
  2887. RES SUBR ENTRY/EXIT
  2888. EXECUTE 0RI,BUFS+1
  2889. STM RESA SET PROCESSOR ADDRESS
  2890. LCN 0
  2891. STD SC
  2892. RES1 AOD SC ADVANCE TABLE INDEX
  2893. RJM CAA
  2894. ADD SC READ TABLE ENTRY FOR NEXT SHARED DEVICE
  2895. CRD CN
  2896. LDD CN+4 SET EST ORDINAL
  2897. STD T5
  2898. ZJN RESX IF END OF DEVICES TO RECOVER
  2899. LDD CN+3
  2900. ZJN RES2 IF NOT ISD
  2901. RJM SDM
  2902. NJN RES1 IF NOT SHARED WITH DOWN MF
  2903. RES2 LDD CN
  2904. ZJN RES3 IF DEVICE HAS NOT YET BEEN PROCESSED
  2905. SBN /MRT/REL
  2906. MJN RES1 IF IGNORE OR DEVICE ALREADY PROCESSED
  2907. RES3 RJM CBW CLEAR BAT WRITE PERMISSIONS
  2908. RJM RLS READ LABEL SECTOR
  2909. ZJN RES4 IF NO ERRORS
  2910. LPN 77
  2911. LMN CRSE
  2912. ZJN RES7 IF CONTROLLER RESERVED
  2913. LMN RESE&CRSE
  2914. ZJN RES5 IF UNIT RESERVED
  2915. RES4 LDN /MRT/PRO SET DEVICE PROCESSED
  2916. STD CN
  2917. RJM CAA WRITE ENTRY BACK TO TABLE
  2918. ADD SC
  2919. CWD CN
  2920. LJM RES1 CHECK NEXT EQUIPMENT
  2921.  
  2922. RES5 LDD BI CHECK EQUIPMENT TYPE
  2923. SHN 21-7
  2924. PJN RES8 IF NOT *LDAM* EQUIPMENT
  2925. LDD CN CHECK FOR RELEASE REQUESTED
  2926. SBN /MRT/REL
  2927. NJN RES8 IF OPERATOR DID NOT SELECT RELEASE
  2928. STD CN
  2929. RJM * EXECUTE *0RI* TO RELEASE RESERVE
  2930. RESA EQU *-1
  2931. UJN RES3 RECHECK RESERVE
  2932.  
  2933. RES7 LDD T4 RETURN CHANNEL NUMBER
  2934. STD CN+1
  2935. LDN /MRT/CRS SET CONTROLLER RESERVED
  2936. UJN RES9 CONTINUE
  2937.  
  2938. RES8 LDN /MRT/URS SET UNIT RESERVED
  2939. RES9 STD CN+4
  2940. LDD T5 SET EQUIPMENT
  2941. STD CN+3
  2942. LDD SC SET INDEX INTO DEVICE TABLE
  2943. STD CN+2
  2944. LDN 0
  2945. STD CN
  2946. LDD RA RETURN ERROR WORD TO *MREC*
  2947. SHN 6
  2948. ADC /MRT/ERRW
  2949. CWD CN
  2950. LJM DROP DROP PP
  2951. CBW SPACE 4,10
  2952. ** CBW - CLEAR BAT WRITE ACCESS PERMISSIONS.
  2953. *
  2954. * ENTRY (T5) = EST ORDINAL FOR DEVICE.
  2955. * (MD) = MACHINE INDEX OF DOWNED MACHINE.
  2956. *
  2957. * USES CM - CM+4, WB - WB+4.
  2958. *
  2959. * MACROS MONITOR, SFA.
  2960.  
  2961.  
  2962. CBW SUBR ENTRY/EXIT
  2963. SFA EST,T5 SET DEVICE PARAMETERS
  2964. ADK EQDE
  2965. CRD WB
  2966. LDD WB
  2967. SHN 21-11
  2968. PJN CBWX IF NOT ECS MMF SHARED DEVICE
  2969. SHN 21-5-21+11
  2970. PJN CBWX IF NOT SHARED BUFFERED DEVICE
  2971. LDN ZERL
  2972. CRD CM
  2973. LDD MD SET MACHINE INDEX OF DOWNED MACHINE
  2974. STD CM+2
  2975. LDD T5 SET EST ORDINAL
  2976. STD CM+4
  2977. LDN CBWS CLEAR BAT WRITE ACCESS PERMISSIONS
  2978. STD CM+1
  2979. MONITOR MTEM
  2980. UJN CBWX RETURN
  2981. CLU SPACE 4,10
  2982. ** CLU - CLEAR UTILITY / DEVICE INTERLOCKS.
  2983. *
  2984. * USES SC, CM - CM+4, CN - CN+4, T2 - T7.
  2985. *
  2986. * CALLS CEA, ECS, RSC, WSC.
  2987. *
  2988. * MACROS ENDMS, SETMS.
  2989.  
  2990.  
  2991. CLU SUBR ENTRY/EXIT
  2992. LDD ET+1
  2993. ADN /MMF/DAET SET ADDRESS OF ENVIRONMENT TABLE WORD
  2994. STD CM+4
  2995. SHN -14
  2996. ADD ET
  2997. ADD RE
  2998. STD CM+3
  2999. LDN 1-1 READ ONE WORD FROM EXTENDED MEMORY
  3000. RJM ECS
  3001. * LDN 0 SET FIRST SECTOR
  3002. STD T7
  3003. LDD MA GET WORD FROM CM BUFFER
  3004. CRD CM
  3005. LDD CM+4 NUMBER OF WORDS IN DAT
  3006. SHN -1
  3007. STD SC NUMBER OF DAT ENTRIES
  3008. LDD DT SET DAT TRACK
  3009. STD T6
  3010. LDD LK READ FIRST SECTOR OF DAT
  3011. STD T5
  3012. SETMS IO,RW
  3013. CLU1 LDC BFMS READ EXTENDED MEMORY SECTOR
  3014. RJM RSC
  3015. LDN 100/2 SET NUMBER OF DAT ENTRIES
  3016. STD T2
  3017. LDN 1 SKIP HEADER BYTES
  3018. STD T3
  3019. CLU2 LDN 12 INCREMENT POSITION IN BUFFER
  3020. RAD T3
  3021. LDM BFMS-11,T3
  3022. ZJN CLU4 IF HOLE
  3023. LDM BFMS,T3
  3024. LMD MK
  3025. NJN CLU4 IF NOT ONLY DOWNED MACHINE USING DEVICE
  3026. * LDN 0
  3027. STM BFMS,T3 CLEAR STATUS BYTE
  3028. LDM BFMS-5,T3
  3029. NJN CLU6 IF SHARED DEVICE
  3030. * LDN 0
  3031. STM BFMS-11,T3 CLEAR *DAT* ENTRY
  3032. CLU4 SOD SC
  3033. NJN CLU5 IF MORE DAT ENTRIES
  3034. * LDN 0
  3035. RJM WSC REWRITE SECTOR
  3036. ENDMS
  3037. LJM CLUX RETURN
  3038.  
  3039. CLU5 SOD T2
  3040. NJN CLU2 IF NOT END OF SECTOR
  3041. * LDN 0
  3042. RJM WSC REWRITE SECTOR
  3043. AOD T7
  3044. LJM CLU1 READ NEXT SECTOR
  3045.  
  3046. * CLEAR INTERLOCKS IN *ACGL* AND *SDGL*.
  3047.  
  3048. CLU6 LDD T7 SAVE DAT SECTOR
  3049. STD CN+1
  3050. LDD T2 SAVE POSITION IN DAT
  3051. STD CN
  3052. LDM BFMS-5,T3 SET MST TRACK
  3053. STD T6
  3054. LDN /MMF/MSST SET MST SECTOR
  3055. STD T7
  3056. LDC BUFS READ MST SECTOR
  3057. RJM RSC
  3058. LDN 0 SET LOCAL AREA OFFSET
  3059. STD T1
  3060. LDD MD SET LOCAL AREA COUNT
  3061. STD T2
  3062. CLU7 LDN 0 CLEAR LOCAL INTERLOCKS
  3063. STM BUFS+2+5*DULL+1,T1
  3064. LDK LLLL*5 ADVANCE OFFSET
  3065. RAD T1
  3066. SOD T2
  3067. NJN CLU7 IF NOT END OF MACHINES
  3068. * LDN 0
  3069. STM BUFS+2+5*TDGL+1 CLEAR GLOBAL INTERLOCKS
  3070. LDM BUFS+2+5*SDGL+4
  3071. SCN 77 CLEAR SOFTWARE RESERVE
  3072. STM BUFS+2+5*SDGL+4
  3073. LDN ZERL CLEAR DEVICE DESCRIPTION
  3074. CRM BUFS+2+5*PFGL,ON
  3075. LDM BUFS+2+5*ACGL+4
  3076. LPK MGLAP
  3077. LMK MGUNL SET GLOBAL UNLOAD
  3078. STM BUFS+2+5*ACGL+4
  3079. LDC BUFS REWRITE MST SECTOR
  3080. RJM WSC
  3081. LDD DT RESTORE DAT TRACK
  3082. STD T6
  3083. LDD CN+1 RESTORE DAT SECTOR
  3084. STD T7
  3085. LDD CN RESTORE DAT POSITION
  3086. STD T2
  3087. UJP CLU4 PROCESS NEXT DAT ENTRY
  3088. RLS SPACE 4,20
  3089. ** RLS - READ LABEL SECTOR.
  3090. *
  3091. * ENTRY (T5) = EST ORDINAL.
  3092. *
  3093. * EXIT (A) = 0 IF NO ERROR.
  3094. * = (RDCT) IF ERROR.
  3095. * (T3) = MST POINTER.
  3096. * (T6) = LABEL TRACK.
  3097. * (BI) = BYTE 0 OF EST ENTRY FOR DEVICE.
  3098. * (CN+1) = PHYSICAL UNIT NUMBER IF UNIT RESERVED.
  3099. * (BFMS) = FIRST LABEL SECTOR.
  3100. *
  3101. * CALLS C2D, RDS.
  3102. *
  3103. * USES QS, T1, T7, CM - CM+4, WB - WB+4.
  3104. *
  3105. * MACROS ENDMS, SETMS.
  3106.  
  3107.  
  3108. RLS SUBR ENTRY/EXIT
  3109. SETMS IO,(NS,RR)
  3110. LDD CM SAVE BYTE 0 OF *EQDE* WORD
  3111. STD BI
  3112. LDD CM+4 SAVE MST POINTER
  3113. STD T3
  3114. SHN 3
  3115. ADN ALGL FETCH LABEL TRACK
  3116. CRD T6
  3117. ADN MDGL-ALGL GET SECTOR LIMITS
  3118. CRD CM
  3119. ADN DDLL-MDGL READ UNIT LIST
  3120. CRD WB
  3121. LDD T7 SET LABEL TRACK
  3122. STD T6
  3123. LDD CM+1 EXTRACT SINGLE UNIT SECTOR LIMIT
  3124. LPC 3777
  3125. STD QS
  3126. LDD CM+4 SET LAST LABEL SECTOR
  3127. SBD QS
  3128. STD T7
  3129. LDD T5 CONVERT UPPER DIGIT OF EST ORDINAL
  3130. SHN -6
  3131. ADC 2RQ0
  3132. STM RLSA+1
  3133. LDD T5 CONVERT LOWER TWO DIGITS OF EST ORDINAL
  3134. RJM C2D
  3135. STM RLSA+2
  3136. LDD WB EXTRACT UNIT COUNT
  3137. LPN 7
  3138. LMN 7 INVERT COUNT
  3139. STD WB
  3140.  
  3141. * READ LABEL SECTOR.
  3142.  
  3143. RLS1 SHN 21-0 SET UNIT LIST INDEX
  3144. STD T1
  3145. SCN 3 MERGE BYTE FROM UNIT LIST
  3146. LMM WB+1,T1
  3147. MJN RLS2 IF UNIT PACKED LOW
  3148. SHN -6
  3149. RLS2 LPN 77 EXTRACT UNIT NUMBER
  3150. STD CN+1
  3151. RJM C2D
  3152. STM RLSA+5
  3153. LDD CP WRITE MESSAGE TO B-DISPLAY
  3154. ADN MS2W
  3155. CWM RLSA,TR
  3156. LDC BFMS READ SECTOR
  3157. RJM RDS
  3158. PJN RLS4 IF NO ERROR
  3159. LPN 77
  3160. LMN CRSE
  3161. ZJN RLS3 IF CONTROLLER RESERVED
  3162. LMN RESE&CRSE
  3163. NJN RLS4 IF NOT UNIT RESERVED
  3164. RLS3 ENDMS
  3165. * LDN 0
  3166. STD CM
  3167. LDD CP CLEAR MESSAGE
  3168. ADN MS2W
  3169. CWD CM
  3170. LDM RDCT SET ERROR STATUS
  3171. LJM RLSX RETURN
  3172.  
  3173. * ADVANCE TO NEXT UNIT OF MULTI-UNIT DEVICE.
  3174.  
  3175. RLS4 LDD T7 DECREMENT SECTOR ADDRESS
  3176. SBD QS
  3177. MJN RLS3 IF END OF UNITS
  3178. STD T7
  3179. AOD WB
  3180. LJM RLS1 LOOP FOR NEXT UNIT
  3181.  
  3182.  
  3183. RLSA DATA C* EQXXX, UNYY, CHECKING RESERVE.*
  3184. WSC SPACE 4,10
  3185. ** WSC - WRITE EXTENDED MEMORY SECTOR.
  3186. *
  3187. * ENTRY (A) = 0 IF DATA IN *BFMS*.
  3188. * (T4 - T7) = DRIVER PARAMETERS.
  3189. *
  3190. * EXIT TO *MSR* IF UNRECOVERED WRITE ERROR.
  3191. *
  3192. * CALLS WDS, MSR.
  3193.  
  3194.  
  3195. WSC SUBR ENTRY/EXIT
  3196. NJN WSC1 IF ALTERNATE BUFFER
  3197. LDC BFMS SET BUFFER ADDRESS
  3198. WSC1 RJM WDS WRITE SECTOR
  3199. PJN WSCX IF NO ERROR
  3200. LDN /MRT/WER SET LINK DEVICE WRITE ERROR
  3201. LJM MSR PROCESS ERROR
  3202.  
  3203.  
  3204. ERRNG BUFS-* CODE OVERFLOWS BUFFER
  3205. TTL 1MR - MACHINE RECOVERY PROCESSOR.
  3206. SPACE 4,10
  3207. END