Table of Contents

MSM

Table Of Contents

  • [00008] MSM/CMS - MASS STORAGE MANAGER.
  • [00100] MACRO DEFINITIONS.
  • [00104] COMMON - COMMON CODE FOR *CMS* AND *RMS.
  • [00124] LRA - LOAD REFERENCE ADDRESS.
  • [00153] PTA - PRESET FIRST WORD ADDRESS OF TRT.
  • [00175] STA - SET FIRST WORD ADDRESS OF TRT.
  • [00187] UJMF - GENERATE LIST OF INSTRUCTIONS TO BE MODIFIED
  • [00202] MMTE - GENERATE MACHINE MASK TABLE ENTRY.
  • [00216] DIRECT LOCATION ASSIGNMENTS.
  • [00315] COMMON WORKING STORAGE AND SUBROUTINES.
  • [00324] MAIN ROUTINE.
  • [00325] CMS - MAIN PROGRAM.
  • [00388] SUBROUTINES.
  • [00390] RPF - RELEASE DIRECT ACCESS INTERLOCKS.
  • [00438] CIR - CHECK FOR INITIALIZE REQUESTS.
  • [00562] GDT - GET DEVICE ACCESS TABLE.
  • [00600] RCL - RECALL PP.
  • [00626] IAM - ISSUE ACCOUNTING MESSAGE.
  • [00693] RCD - RECOVER DEVICES.
  • [00761] RQS - REQUEST STORAGE.
  • [00777] UMT - UPDATE MMF TABLES IN EXTENDED MEMORY.
  • [00800] PRESET.
  • [00802] PRS - PRESET.
  • [00947] IET - INITIALIZE TABLES.
  • [01000] TRCO - TABLE OF RECOVERY OPTIONS.
  • [01088] COMMON WORKING STORAGE AND SUBROUTINES.
  • [01097] MAIN ROUTINE.
  • [01098] RMS - MAIN PROGRAM.
  • [01151] CM RECOVERY ROUTINES.
  • [01153] CAD - CHECK ACTIVE DEVICES (CM RECOVERY).
  • [01225] HNG - DISPLAY ERROR AND HANG PP.
  • [01247] SEM - SET EQUIPMENT MESSAGE.
  • [01278] NON - CM RECOVERY ROUTINES.
  • [01280] CDS - CHECK DEVICE STATUS (LEVEL 0, 1, 2 RECOVERY).
  • [01387] CSE - CHECK SYSTEM EQUIPMENT.
  • [01416] RCD - RECOVER DEVICE.
  • [01478] RDY - RECOVER DAYFILES.
  • [01504] REM - RESTORE UEM FROM CHECKPOINT FILE IF LEVEL 1 OR 2
  • [01525] RLD - RECOVER LINK DEVICE.
  • [01610] UMT - UPDATE MMF TABLES IN EXTENDED MEMORY.
  • [01641] PRESET PROGRAM.
  • [01643] PRS - PRESET.
  • [01842] CRE - CHECK RECOVERY.
  • [01934] CUR - CHECK FOR UEM RECOVERY REQUIRED.
  • [01975] IET - INITIALIZE EQUIPMENT TABLE.
  • [02059] LCM - LOCATE CM FOR RECOVERY.
  • [02369] MAIN LOOP.
  • [02371] RDA - MAIN ROUTINE.
  • [02575] SUBROUTINES.
  • [02577] CFL - CHANGE FILE LENGTH.
  • [02614] CPS - CHECK PFC SIZE.
  • [02640] CQF - CREATE QUEUED FILE ENTRY.
  • [02744] CUS - CLEAR UNAVAILABLE STATUS.
  • [02821] IEM - ISSUE ERROR LOG MESSAGE.
  • [02847] IQF - INITIALIZE *IQFT*.
  • [02904] PTA - PRESET FIRST WORD ADDRESS OF TRT.
  • [02935] SFT - SET FILE TYPE.
  • [02967] SPF - SEARCH FOR PRESERVED FILE.
  • [03026] TQF - TERMINATE *IQFT*.
  • [03104] VFR - VERIFY FILE FOR RECOVERY DEADSTART.
  • [03128] VTC - VERIFY TRACK CHAIN.
  • [03151] WQF - WRITE QUEUED FILE SECTOR.
  • [03213] IDM - ISSUE DAYFILE MESSAGES FOR FILES PROCESSED.
  • [03292] IRM - ISSUE RECOVERY MESSAGES.
  • [03408] LSN - LIST PACK SERIAL NUMBERS.
  • [03480] PFE - PERMANENT FILE ERROR.
  • [03579] CTU - CLEAR TOTAL USER COUNTS.
  • [03610] GDE - GET DAT ENTRY.
  • [03686] WDE - WRITE DAT ENTRY TO EXTENDED MEMORY.
  • [03717] WSR - WRITE SYSTEM SECTOR WITH REWRITE.
  • [03774] PRESET.
  • [03776] PRS - PRESET.
  • [03924] MRL - MAIN RECOVERY LOOP.
  • [03973] COMMON DECKS.
  • [03989] COMMON SUBROUTINES.
  • [03991] ADE - ACCESS DAT ENTRY.
  • [04030] ATC - ADJUST TRACK COUNT.
  • [04088] CDA - CHECK DEVICE AVAILABILITY.
  • [04122] CDI - CLEAR ISD INTERLOCKS.
  • [04179] CLR - CLEAR RESIDENT TRT.
  • [04288] CLT - CHECK LABEL TRACK.
  • [04316] CMT - CLEAR MST.
  • [04428] IES - INITIALIZE EQUIPMENT STATUS.
  • [04511] SSL - SET SECTOR LIMITS.
  • [04558] LABEL PROCESSING ROUTINES.
  • [04560] CAM - CHANGE ACCESS MODE.
  • [04632] CCS - CHECK CHANNEL STATUS.
  • [04662] CLE - CHECK LABEL ERROR.
  • [04683] CME - CHECK MASS STORAGE ERROR.
  • [04731] CUC - COMPARE UPDATE COUNTS.
  • [04786] CUD - CHECK UNAVAILABLE DEVICE.
  • [04822] GAS - GET ALTERNATE LABEL SECTOR.
  • [04852] PUE - PROCESS UNSECURED SYSTEM SECURITY ERROR.
  • [04887] RUC - RETRIEVE UPDATE COUNT FROM TRT.
  • [04930] SDU - SET DEVICE UNLOADED.
  • [04952] SFT - SET FULL TRACK MODE.
  • [04998] SHT - SET HALF TRACK MODE.
  • [05040] SOM - SET EST ORDINAL IN MESSAGE.
  • [05068] RDL - READ DEVICE LABEL.
  • [05172] RLM - READ LOCAL MST BLOCK.
  • [05255] RLS - READ LABEL SECTOR.
  • [05515] CMI - CHECK MST INTERLOCKS.
  • [05555] SDT - SEARCH DEVICE INFORMATION TABLE.
  • [05601] SLT - SEARCH FOR LABEL TRACK.
  • [05638] VAL - VERIFY ACCESS LEVEL LIMITS.
  • [05705] WMT - ENTER MST TO CM TABLE.
  • [05823] WOC - WAIT ON OPERATOR COMMAND.
  • [05861] PRESET.
  • [05863] PRS - PRESET.
  • [05936] EMF - ENABLE MMF RECOVERY.
  • [06009] MAIN ROUTINE.
  • [06059] PRIMARY SUBROUTINES.
  • [06061] SDF - SET DEFAULT FAMILY NAME.
  • [06083] VPF - VERIFY PF SYSTEM FOR CONFLICTS IN -
  • [06167] SUBROUTINES.
  • [06169] CFN - COMPARE FAMILY/PACK NAMES.
  • [06192] CFR - CHECK FAMILY DEVICE RECOVERED.
  • [06215] ERR - PROCESS ERROR CONDITIONS.
  • [06319] GNE - GET NEXT ENTRY.
  • [06396] MMF ROUTINES.
  • [06398] ABD - ALLOCATE BAT FOR DEVICE.
  • [06452] CDE - CHECK DAT ENTRY.
  • [06491] CSD - CHECK SHARED DEVICE STATUS.
  • [06586] EBP - ENABLE BST/BAT PROCESSING FOR SHARED BUFFERED DEVICE.
  • [06657] LDT - LOAD DEVICE ACCESS TABLE.
  • [06751] RDE - READ DAT ENTRY.
  • [06785] SDT - SEARCH DEVICE ACCESS TABLE.
  • [06852] SNT - SET NEXT TRACK IN EXTENDED MEMORY TRACK CHAIN.
  • [06881] UDT - UPDATE DEVICE ACCESS TABLE.
  • [06981] WDE - WRITE DAT ENTRY TO EXTENDED MEMORY.
  • [07002] VERIFY LABEL PARAMETERS.
  • [07004] CCE - CHECK CHAINED EQUIPMENT.
  • [07055] CEP - COMPARE EQUIPMENT PARAMETERS.
  • [07083] CLP - CHECK LABEL PARAMETERS.
  • [07122] VDP - VERIFY DEVICE PARAMETERS.
  • [07159] VLP - VERIFY LABEL PARAMETERS.
  • [07341] *CMS* DEVICE VERIFICATION - COMMON ROUTINES.
  • [07343] CUS - CHECK UNLOAD STATUS.
  • [07377] RIL - READ INDEPENDENT SHARED DEVICE LABEL.
  • [07414] *CMS* ACTIVE/INACTIVE DEVICE ROUTINES.
  • [07416] CAD - CHECK ACTIVE DEVICES.
  • [07493] CID - CHECK INACTIVE DEVICES.
  • [07579] *CMS* ACTIVE/INACTIVE DEVICE SUBROUTINES.
  • [07581] CBF - CHECK FOR BUFFERS TO FLUSH.
  • [07659] CDD - CLEAR DEVICE DESCRIPTION.
  • [07710] CDS - CHECK DEVICE STATUS.
  • [07744] ILK - INTERLOCK *PFM* FROM ACCESSING DEVICE DURING UNLOAD.
  • [07840] RGM - READ GLOBAL MST WORDS.
  • [07903] UIS - UPDATE INDEPENDENT SHARED DEVICE TABLES.
  • [07936] UMS - UPDATE MASS STORAGE TABLES.
  • [07979] POV - MODIFY INSTRUCTIONS AS REQUIRED FOR CM/MMF RECOVERY.
  • [08078] CHECK UNAVAILABLE DEVICE.
  • [08080] CUD - CHECK UNAVAILABLE DEVICES.
  • [08152] SUBROUTINES.
  • [08154] CGU - CHECK GLOBAL UNLOAD.
  • [08216] CIU - CHECK INDEPENDENT SHARED DEVICE UNLOADED.
  • [08285] UPDATE DAT POINTER WORD.
  • [08287] EDT - EDIT DAT POINTER WORD.
  • [08349] UER - UPDATE EXTENDED MEMORY RESIDENT.
  • [08385] UIS - UPDATE ISD MRT TABLES.
  • [08410] CRT - CLEAR MRTS.
  • [08462] ERT - EDIT MRT.
  • [08561] SMT - STORE MST + TRT IN EXTENDED MEMORY.
  • [08659] COPY MST/TRT TO DISK.
  • [08661] CTD - COPY TABLES TO DISK.
  • [08755] RMR - READ MRT.
  • [08829] COPY TRT.
  • [08831] CTT - COPY TRT.
  • [08866] EMT - ENTER MST PARAMETERS FROM LABEL.
  • [08976] ETT - EDIT TRACK TABLE.
  • [09054] RTC - RESERVE TRACK CHAIN.
  • [09120] RTT - RECOVER TRACK RESERVATION TABLE.
  • [09207] STF - SET TRACK FLAW IN TRT.
  • [09244] SET EQUIPMENT CONFIGURATION.
  • [09246] AUL - ASSEMBLE UNIT LIST.
  • [09313] SEC - SET EQUIPMENT CONFIGURATION.
  • [09395] PRESET.
  • [09397] PRS - PRESET OVERLAY.
  • [09468] MAIN INITIALIZATION ROUTINE.
  • [09470] IMS - INITIALIZE MASS STORAGE.
  • [09520] SUBROUTINES.
  • [09522] CFR - CHECK FOR FORMAT REQUEST.
  • [09557] CTF - CHECK TRACK FLAWED IN TRT.
  • [09581] FBT - FLAW BLOCK OF TRACKS IN TRT.
  • [09612] IDS - INITIALIZE DEVICE.
  • [09722] IFM - INTERPRET FLAW MAP.
  • [09791] PFT - PREWRITE FLAWED TRACK.
  • [09811] RCS - RESERVE *CTI* SPACE.
  • [09919] SNC - SELECT AVAILABLE NIO CHANNEL.
  • [09954] POV - PRESET OVERLAY.
  • [10022] PROCESS FORMAT REQUEST.
  • [10024] PFR - PROCESS FORMAT REQUEST.
  • [10124] SUBROUTINES.
  • [10126] F8D - FORMAT 895 DEVICE.
  • [10180] WNB - WAIT NOT BUSY.
  • [10240] CDC - CHASE DAYFILE CHAIN.
  • [10305] CDR - CHECK DAYFILE RECOVERY.
  • [10370] CDT - CHECK LAST UPDATE DATE AND TIME.
  • [10424] CFL - CHECK FILE LENGTH.
  • [10453] TDF - TRUNCATE DAYFILE.
  • [10481] ULA - UPDATE SECTOR OF LOCAL AREAS.
  • [10528] VEI - VERIFY END OF INFORMATION SECTOR.
  • [10607] CUA - CALCULATE UEM ADDRESS.
  • [10649] GCD - GET CHECKPOINT DEVICE.
  • [10701] GSP - GET UEM SECTOR POINTER.
  • [10726] RUE - RECOVER UEM.

Source Code

MSM.txt
  1. IDENT CMS,OBOV-2
  2. PERIPH
  3. BASE M
  4. SST
  5. QUAL$ EQU 1 DEFINE UNQUALIFIED COMMON DECKS
  6. *COMMENT MSM - ON LINE MASS STORAGE MANAGER.
  7. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  8. TITLE MSM/CMS - MASS STORAGE MANAGER.
  9. CMS SPACE 4
  10. ***** MSM - MASS STORAGE MANAGER.
  11. *
  12. * J. L. WARDELL. 73/02/15.
  13. * P. D. HAAS. 74/09/09.
  14. * S. L. BETH. 74/12/20.
  15. * R. M. DESSEL 82/12/15.
  16. * P. C. SMITH. 94/03/21.
  17. SPACE 4,10
  18. *** *CMS* SURVEYS ALL MASS STORAGE DEVICES AND VERIFIES
  19. * THAT THE PROPER PHYSICAL DEVICES ARE MOUNTED OR MAKES THEM
  20. * AVAILABLE FOR USER ACCESS IF POSSIBLE.
  21. *
  22. * ON LINE VERIFICATION OCCURS EVERY 60D SCHEDULER
  23. * CYCLES. TO ENABLE/DISABLE THIS USE *DSD* COMMAND
  24. * *ENABLE/DISABLE REMOVABLE PACKS*.
  25. SPACE 4,10
  26. ** PROGRAMMING NOTE.
  27. * DIRECT CELLS *LA* AND *EE* (*RG* AND *RG+1*)
  28. * ARE USED DURING LEVEL 3 RECOVERY IN OVERLAY *4DB* IF
  29. * EXECUTING ON A CENTRAL MEMORY EXTENSION MAINFRAME.
  30. SPACE 4
  31. ** CALL.
  32. *
  33. *T, 18/ CMS,6/,12/ R,24/
  34. *
  35. * R = POSITION IN EQUIPMENTS FOR UNLOAD INTERLOCK.
  36. SPACE 4
  37. *** DAYFILE MESSAGES.
  38. *
  39. * SEE *4DA* DOCUMENTATION.
  40. SPACE 4
  41. *** ERROR LOG MESSAGES.
  42. *
  43. * *ETXXX, UYY,PS=ZZZZZZ.* = A NEW DEVICE HAS BEEN INTRODUCED ON
  44. * EST ORDINAL *XXX* OF TYPE *ET*. UNIT *YY* OF THE DEVICE HAS
  45. * A PACK SERIAL NUMBER OF *ZZZZZZ*.
  46. *
  47. * SEE *4DB* DOCUMENTATION FOR ADDITIONAL MESSAGES.
  48. SPACE 4
  49. *** ACCOUNT FILE MESSAGES.
  50. *
  51. * *ADDU, XXX, FFFFFFF, DD.* = EST ORDINAL XXX WITH FAMILY NAME
  52. * FFFFFFF AND DEVICE NUMBER DD HAS BEEN UNLOADED.
  53. *
  54. * *ADPD, XXX, PPPPPPP, UUUUUUU.* = EST ORDINAL XXX WITH
  55. * PACKNAME PPPPPPP HAS BEEN DISMOUNTED. IF PRESENT, UUUUUUU
  56. * INDICATES THAT THE PACK WAS A PRIVATE PACK BELONGING TO
  57. * THAT USER.
  58. *
  59. * SEE *4DA* DOCUMENTATION FOR ADDITIONAL MESSAGES.
  60. SPACE 4
  61. *** OPERATOR MESSAGES.
  62. *
  63. * *ERROR ON ACTIVE DEVICES.* = LABEL CHECKING HAS DETECTED
  64. * A DEVICE WITH ACTIVE FILES AS HAVING SOME TYPE OF ERROR (SEE
  65. * E,M DISPLAY FOR ERROR TYPE ). THIS IS AN ABNORMAL SITUATION
  66. * AND SHOULD BE CORRECTED IMMEDIATELY.
  67. *
  68. * SEE E,M DISPLAY (DSD DOCUMENTATION) FOR ERROR TYPES POSSIBLE.
  69. *
  70. * SEE *4DB* DOCUMENTATION FOR ADDITIONAL MESSAGES.
  71. SPACE 4
  72. ** ROUTINES CALLED.
  73. *
  74. * 0PI - LIST PACK SERIAL NUMBERS.
  75. * 5ME - FORMAT ERROR MESSAGES.
  76. SPACE 4
  77. *CALL COMPMAC
  78. *CALL COMSACC
  79. *CALL COMSCPS
  80. *CALL COMSDSL
  81. *CALL COMSEVT
  82. *CALL COMSHIO
  83. *CALL COMSIOQ
  84. *CALL COMSLSD
  85. *CALL COMSMLS
  86. MMF$ EQU 1 INITIALIZE COMSMMF DIRECT CELLS
  87. *CALL COMSMMF
  88. *CALL COMSMSC
  89. *CALL COMSMSP
  90. *CALL COMSPFM
  91. *CALL COMSPIM
  92. *CALL COMSSSD
  93. *CALL COMSWEI
  94. *CALL COMSZOL
  95. SPACE 4,10
  96. LIST X
  97. *CALL COMSMST
  98. SPACE 4,10
  99. LIST *
  100. TITLE MACRO DEFINITIONS.
  101. SPACE 4
  102. ** MACRO DEFINITIONS.
  103. COMMON SPACE 4,10
  104. ** COMMON - COMMON CODE FOR *CMS* AND *RMS.
  105. *
  106. * THIS MACRO PROVIDES IDENTICAL CODE FOR *CMS* AND *RMS*
  107. * WHICH MAY BE CALLED BY THE OVERLAYS COMMON TO THESE TWO
  108. * ROUTINES.
  109.  
  110.  
  111. COMMON MACRO
  112. QUAL
  113. SPACE 4,10
  114. * COMMON WORKING STORAGE.
  115.  
  116.  
  117. ECLT CON 0 EXTENDED MEMORY LABEL TRACK
  118. LDMP CON 0 LINK DEVICE MST POINTER
  119. SPACE 4,10
  120. *CALL COMPC2D
  121. *CALL COMPIFR
  122. *CALL COMPTGB
  123. LRA SPACE 4,15
  124. ** LRA - LOAD REFERENCE ADDRESS.
  125. *
  126. * ENTRY (LRAB) = RA/100 OF FREE AREA.
  127. * (TA) = RA/100 OF FREE AREA FOR NON-CME.
  128. * = 4000 IF CME PRESENT.
  129. * (LRAA) = MODIFIED FOR DESIRED OPERATION.
  130. * (LRAC) = MODIFIED FOR DESIRED OPERATION.
  131. *
  132. * EXIT (A) = REFERENCE ADDRESS.
  133. * *R* REGISTER LOADED IF NECESSARY.
  134. *
  135. * USES RG, RG+1.
  136.  
  137.  
  138. LRA1 LDC 0 LOAD RA INTO *R* REGISTER
  139. LRAB EQU *-1
  140. STD RG+1
  141. SHN -14
  142. STD RG
  143. LRD RG
  144. LRA2 LDD RA SET RA
  145. LRAC EQU *-1
  146. * LDD TA
  147. SHN 6
  148.  
  149. LRA SUBR ENTRY/EXIT
  150. LRAA UJN LRA2 SET RA
  151. * UJN LRA1 (CME PRESENT)
  152. PTA SPACE 4,10
  153. ** PTA - PRESET FIRST WORD ADDRESS OF TRT.
  154. *
  155. * ENTRY (FN - FN+4) = EST ENTRY OF DEVICE.
  156. *
  157. * EXIT (STAA) = FWA OF TRT.
  158. *
  159. * USES CM - CM+4.
  160.  
  161.  
  162. PTA SUBR ENTRY/EXIT
  163. LDD FN+4 GET FWA OF TRT
  164. SHN 3
  165. ADN TRLL
  166. CRD CM
  167. LDD CM+3 SET FWA OF TRT
  168. LPN 77
  169. LMC LDCI
  170. STM STAA-1
  171. LDD CM+4
  172. STM STAA
  173. UJN PTAX RETURN
  174. STA SPACE 4,10
  175. ** STA - SET FIRST WORD ADDRESS OF TRT.
  176. *
  177. * ENTRY (STAA) = FWA OF TRT.
  178.  
  179.  
  180. STA SUBR ENTRY/EXIT
  181. LDC 0
  182. STAA EQU *-1 (FWA TRT)
  183. UJN STAX RETURN
  184. QUAL *
  185. ENDM
  186. SPACE 4
  187. ** UJMF - GENERATE LIST OF INSTRUCTIONS TO BE MODIFIED
  188. * IF RECOVERING MMF SYSTEM.
  189. *
  190. * UJMF TAG
  191.  
  192.  
  193. UJMF MACRO TAG
  194. LOCAL A
  195. MACREF UJMF
  196. A UJN TAG
  197. L"QUAL" RMT
  198. CON A
  199. RMT
  200. UJMF ENDM
  201. SPACE 4
  202. ** MMTE - GENERATE MACHINE MASK TABLE ENTRY.
  203. *
  204. * MMTE ADDR
  205. * ADDR = INSTRUCTION ADDRESS.
  206.  
  207.  
  208. MMTE MACRO L
  209. LOCAL B
  210. MACREF MMTE
  211. B EQU L
  212. T"QUAL" RMT
  213. CON B
  214. RMT
  215. MMTE ENDM
  216. TITLE DIRECT LOCATION ASSIGNMENTS.
  217. SPACE 4
  218. **** DIRECT LOCATION ASSIGNMENTS.
  219.  
  220.  
  221. RG EQU 15 - 16 *R* REGISTER LOADING TEMP CELLS
  222. RI EQU 16 - 17 RANDOM INDEX FOR *CRA*
  223. T8 EQU 16 SCRATCH
  224. T9 EQU 17 SCRATCH
  225. QF EQU 17 FIRST TRACK OF INACTIVE QUEUE FILE
  226. SN EQU 17 SECTOR NUMBER DURING LABEL PROCESSING
  227. FS EQU 20 - 24 CM WORD BUFFER (5 LOCATIONS)
  228. TA EQU 25 REFERENCE ADDRESS (LEVEL 3 RECOVERY)
  229. CD EQU 25 CHECKPOINT DEVICE (4DA, 4DK)
  230. TW EQU 26 CONSTANT TWO
  231. QT EQU 27 QUEUED FILE TRACK (4DA)
  232. CN EQU 30 - 34 CM WORD BUFFER (5 LOCATIONS)
  233. QS EQU 35 QUEUED FILE SECTOR (4DA)
  234. QI EQU 36 QUEUE INDEX (4DA)
  235. EC EQU 37 ERROR CODE
  236. CR EQU 37 CM BUFFER ADDRESS (4DA)
  237. FN EQU 40 - 44 EST ENTRY
  238. RD EQU FN+3 - FN+7 DEVICE RECOVERY STATUS INFORMATION
  239. TS EQU FN+5 MST TRACKS FOR MMF SHARED DEVICES
  240. RE EQU FN+6 EQUIPMENT RECOVERY STATUS INFORMATION
  241. AL EQU FN+7 CM ADDRESS FOR MST LABEL DATA
  242. EQ EQU IR+3 EST ORDINAL
  243. RS EQU IR+4 RECOVERY STATUS
  244. AM EQU 57 ACCESS MODE FLAG
  245. RC EQU 60 DEVICE RECOVERY COUNT
  246. CF EQU 60 CONTROL POINT FOR MESSAGES (*1RF*/*4DA*)
  247. LO EQU 61 LAST MASS STORAGE ORDINAL + 1
  248. UC EQU 62 UNIT COUNT
  249. DI EQU 62 DAT INDEX
  250. ET EQU 62 EOI TRACK
  251. ES EQU 63 EOI SECTOR
  252. SL EQU 63 SECTOR LIMIT
  253. EF EQU 63 ERROR FLAG
  254. CA EQU 64 - 65 CENTRAL ADDRESS
  255. P1 EQU 66 SCRATCH
  256. P2 EQU 67 SCRATCH
  257. ****
  258. SPACE 4,10
  259. * DEFINE QUAL BLOCK ORDER.
  260.  
  261.  
  262. QUAL CMS
  263. QUAL RMS
  264. QUAL RDA
  265. QUAL ISD
  266. QUAL RDC
  267. QUAL RDD
  268. QUAL RDG
  269. QUAL RDI
  270. QUAL
  271. SPACE 4
  272. ** CONSTANTS.
  273.  
  274.  
  275. FLRC EQU 1100 FIELD LENGTH FOR TRT RECOVERY
  276. SPACE 4
  277. ** INTERNAL BUFFERS AND TABLES.
  278.  
  279.  
  280. BAEI EQU PPFW *BAET* IMAGE
  281.  
  282. DLPB EQU BAEI+5 LABEL PARAMETER BLOCK (PFGL + PUGL)
  283.  
  284. OBOV EQU DLPB+5*2 BASE OVERLAY ORIGIN
  285. SPACE 4,10
  286. ** DEVICE RECOVERY STATUS TABLE.
  287. *
  288. * THE DEVICE RECOVERY TABLE IS CONTAINED IN *MSM-S*
  289. * FL. IT CONSISTS OF ONE WORD ENTRIES FOR EACH MASS
  290. * STORAGE EQUIPMENT. THE FORMAT IS AS FOLLOWS -
  291. *T, 12/ DT,12/ MT,12/ TS,12/ RE,12/ AL
  292. *
  293. * DT = DEVICE TYPE.
  294. * MT = MST/10B.
  295. * TS = MST TRACKS FOR MMF SHARED DEVICES.
  296. * RE = EQUIPMENT RECOVERY STATUS INFORMATION.
  297. * WHERE RE IS DEFINED AS:
  298. * 1/M,1/S,1/V,1/R,1/C,1/U,1/D,1/I,1/A,1/T,1/E,1/L
  299. * M = MASS STORAGE DEVICE.
  300. * S = SYSTEM/ASL/LINK DEVICE.
  301. * V = SHARED DEVICE.
  302. * R = REMOVABLE DEVICE.
  303. * C = DEVICE CLEARED FOR RECOVERY.
  304. * U = UNAVAILABLE DEVICE.
  305. * D = INCORRECT FULL TRACK ACCESS.
  306. * I = DEVICE INITIALIZATION SELECTED.
  307. * A = ACCESSED PREVIOUSLY (DAP) BY THIS MF (SHARED
  308. * DEVICES).
  309. * T = ECS TRACK FOR MST/TRT REQUIRED (MMF SHARED
  310. * DEVICES).
  311. * E = DEVICE ACCESSED PREVIOUSLY (DAP) BY SOME MF
  312. * (SHARED DEVICES ONLY).
  313. * L = LABEL STATUS (0 = LABEL IMAGE PRESENT).
  314. * AL = CM ADDRESSES FOR MST LABEL DATA.
  315. TITLE COMMON WORKING STORAGE AND SUBROUTINES.
  316. CMS SPACE 4
  317. QUAL CMS
  318. ORG OBOV-2
  319. LJM PRS PRESET *CMS*
  320. SPACE 4,10
  321. LIST M
  322. COMMON
  323. LIST *
  324. TITLE MAIN ROUTINE.
  325. ** CMS - MAIN PROGRAM.
  326.  
  327.  
  328.  
  329. CMS EXECUTE 4DB
  330. LDC LCMS ENABLE MMF RECOVERY ROUTINES
  331. RJM EMF
  332. CMS1 LDC RDL READ LABELS
  333. RJM MRL
  334. CMS2 LDD RC
  335. ZJN CMS3 IF NO REDEFINITION REQUESTS
  336. LJM CIR1 PROCESS DEVICE REDEFINITION
  337.  
  338. CMS3 EXECUTE 4DD LOAD VERIFICATION ROUTINES
  339. LDC CAD VERIFY ACTIVE DEVICES
  340. RJM MRL
  341. CMSB LDC CID CHECK INACTIVE DEVICES
  342. * UJN CMS4 (DEADSTART SEQUENCING IN EFFECT)
  343. RJM MRL
  344. CMS4 LDN 0 CLEAR RECOVERY COUNT
  345. STD RC
  346. EXECUTE 4DE LOAD UNAVAILABLE DEVICE ROUTINES
  347. LDC CUD CHECK UNAVAILABLE DEVICES
  348. RJM MRL
  349. LDD RC
  350. ZJN CMS7 IF NO EQUIPMENT TO RECOVER
  351. UJMF CMS5
  352. RJM GDT LOAD DEVICE ACCESS TABLE
  353. CMS5 EXECUTE 4DG LOAD RECOVERY ROUTINES
  354. LDD HN DO NOT CLEAR UNAVAILABLE
  355. RAM /RDG/EMTB
  356. LDC RCD RECOVER DEVICES
  357. RJM MRL
  358. UJMF CMS6
  359. RJM UMT UPDATE MMF TABLES
  360. CMS6 EXECUTE 4DC VERIFY PF SYSTEM
  361. RJM RPF RELEASE DA INTERLOCKS
  362. CMS7 RJM CIR CHECK FOR INITIALIZE REQUESTS
  363. CMSD LDN 0
  364. ZJN DPP IF NO ACTIVE DEVICE ERRORS
  365. LDN NCPL
  366. CRD CM
  367. AOD CM+1 DISPLAY MESSAGE AT SYSTEM CP
  368. SHN 7
  369. ADN MS2W
  370. CWM CMSE,TR
  371.  
  372. * DROP PP.
  373.  
  374. DPP UJN DPP1 DEADSTART SEQUENCING NOT IN EFFECT
  375. * LDN CIRD-CIRB (DEADSTART SEQUENCING)
  376. * LDN CIRE-CIRB (DEADSTART SEQUENCING- RECOVERY DEADSTART)
  377. DPPB EQU *-1
  378. RAM CIRA
  379. LDN CIRF NUMBER OF COMMANDS
  380. * LDN CIRF-1 (RECOVERY DEADSTART)
  381. DPPC EQU *-1
  382. LJM CIR5 WRITE COMMAND BUFFER
  383.  
  384. DPP1 MONITOR DPPM
  385. LJM PPR
  386.  
  387. CMSE DATA C* ERROR ON ACTIVE DEVICES.*
  388. TITLE SUBROUTINES.
  389. RPF SPACE 4
  390. ** RPF - RELEASE DIRECT ACCESS INTERLOCKS.
  391. *
  392. * ENTRY (RE) SET FOR DEVICES RECOVERED.
  393. *
  394. * EXIT INTERLOCKS FOR DA FILES ON DEVICES RECOVERED, CLEARED.
  395. * *IQFT* BUILT IF QUEUED FILES FOUND.
  396. * PACK SERIAL NUMBERS LISTED FOR DEVICES RECOVERED.
  397. *
  398. * USES T5, EQ, CR, FN - FN+4.
  399. *
  400. * CALLS IFR, LSN, 4DA.
  401. *
  402. * MACROS EXECUTE, SFA, UJMF.
  403.  
  404.  
  405. RPF1 LDD RA
  406. SHN 6
  407. ADD T5
  408. CRD RD
  409. LDD RE DETERMINE IF DEVICE RECOVERED
  410. SHN 21-7
  411. PJN RPF2 IF DEVICE NOT RECOVERED
  412. SFA EST,T5 READ EST ENTRY
  413. ADK EQDE
  414. CRD FN
  415. RJM /RDA/LSN LIST PACK SERIAL NUMBERS
  416. LDN 0 INDICATE NO INITIALIZE
  417. RJM /RDA/RDA RECOVER PRESERVED FILES
  418. RPF2 AOD EQ ADVANCE TO NEXT EQUIPMENT
  419. RPF3 STD T5
  420. LMD LO
  421. NJN RPF1 IF NOT END OF MS ENTRIES
  422. RPF4 UJMF RPFX
  423. RPFB LDN 0
  424. NJN RPFX IF DATI SET FOR INITIALIZATION
  425. LCN DATI CLEAR FLAG REGISTER INTERLOCK
  426. RJM IFR
  427.  
  428. RPF SUBR ENTRY/EXIT
  429. LDD RC
  430. ZJN RPF4 IF NO EQUIPMENT RECOVERED
  431. EXECUTE 4DA LOAD DA INTERLOCK ROUTINES
  432. LDD CA+1 SET *IQFT* BUFFER ADDRESS
  433. STD CR
  434. LDN NOPE INITIALIZE EST ORDINAL FOR SEARCH
  435. STD EQ
  436. UJN RPF3
  437. CIR SPACE 4
  438. ** CIR - CHECK FOR INITIALIZE REQUESTS.
  439. *
  440. * EXIT *MSI* CALLED IF ANY INITIALIZE REQUESTS FOUND.
  441. *
  442. * USES EQ, P2, RC, FS - FS+4, FN - FN+4, CN - CN+4.
  443. *
  444. * CALLS IFR.
  445. *
  446. * MACROS NFA, SFA, UJMF.
  447.  
  448.  
  449. CIR6 LDD FN
  450. SHN 0-13
  451. ZJN CIR7 IF NOT MASS STORAGE
  452. LDD FN
  453. LPN 2
  454. NJN CIR10 IF DEVICE OFF OR DOWN
  455. LDD FN+4 READ *STLL*
  456. SHN 3
  457. ADN STLL
  458. CRD FS
  459. SBN STLL-DULL
  460. CRD CM
  461. LDD FS+1
  462. LMN STNR
  463. LPN 77
  464. CIR7 ZJN CIR10 IF EQUIPMENT NOT READY
  465. LDD FS
  466. LPC MLFPR+MLUNL+MLIRP
  467. LMN MLIRP
  468. NJN CIR10 IF INITIALIZE NOT TO BE PROCESSED
  469. LDD FS
  470. SHN -7
  471. ZJN CIR9 IF PERMANENT FILES NOT INVOLVED
  472. LPN MLIAL/1S7
  473. NJN CIR8 IF DEADSTART INITIALIZE
  474. LDD CM+4 CHECK ACTIVITY
  475. LPC 3777
  476. ADD CM+1
  477. ADD FS+3
  478. NJN CIR10 IF ACTIVE FILES ON DEVICE
  479. CIR8 AOD RC INCREMENT RECOVERY COUNT
  480. CIR9 AOD P2 ADVANCE INITIALIZATION COUNT
  481. CIR10 AOD EQ ADVANCE TO NEXT EQUIPMENT
  482. LMD LO
  483. ZJN CIR11 IF END OF MASS STORAGE DEVICES
  484. SFA EST,EQ
  485. ADK EQDE
  486. CRD FN
  487. LJM CIR6
  488.  
  489. CIR11 LDD P2 CHECK INITIALIZE STATUS
  490. NJN CIR2 IF INITIALIZE REQUESTS PRESENT
  491.  
  492. CIR SUBR ENTRY/EXIT
  493. LDN 0 PRESET EQUIPMENT INDEX
  494. STD RC CLEAR INITIALIZE COUNT
  495. STD P2
  496. LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  497. STD EQ
  498. UJN CIR10 ENTER LOOP
  499.  
  500. * ENTERED HERE EXTERNALLY.
  501.  
  502. CIR1 LDN CIRC-CIRB CHANGE COMMAND CALL TO *CONFIG.*
  503. RAM CIRA
  504. CIR2 UJMF CIR4
  505. LDD RC
  506. ZJN CIR4 IF NO REQUESTS INVOLVING PF DESCRIPTION
  507. LDC MMFL READ MMF STATUS WORD
  508. CRD CN
  509. LDD CN+2 CHECK DATI STATUS
  510. LMC 4000
  511. ZJN CIR3 IF DAT INTERLOCKED
  512. STD CN+2 SET DAT INTERLOCKED
  513. SHN 0-13
  514. ZJN CIR4 IF INTERLOCKED BY THIS MACHINE
  515. LDN DATI GET FLAG REGISTER INTERLOCK
  516. RJM IFR
  517. ZJN CIR3 IF DAT INTERLOCKED
  518. LJM GDT1 RECALL *CMS*
  519.  
  520. CIR3 LDD RC SET INITIALIZATION COUNT
  521. RAD CN+2
  522. LDC MMFL
  523. CWD CN
  524.  
  525. * SET UP COMMAND TO INITIATE *MSI*.
  526.  
  527. CIR4 LDN 1
  528.  
  529. * ENTERED HERE FROM *DPP*.
  530. * (A) = NUMBER OF COMMAND WORDS.
  531.  
  532. CIR5 STD T1 NUMBER OF COMMAND WORDS
  533. LDD CP READ COMMAND POINTER WORD
  534. ADN CSPW
  535. CRD CM
  536. LDC CSBN SET FWA OF COMMANDS
  537. STD CM+3
  538. SBD T1 SET LIMIT OF COMMANDS
  539. STD CM+4
  540. LDD CP WRITE *CSPW*
  541. ADN CSPW
  542. CWD CM
  543. NFA CSBN STORE COMMANDS
  544. CWM CIRB,T1
  545. CIRA EQU *-1
  546. LJM DPP1 DROP PPU
  547.  
  548.  
  549. CIRB VFD 60/0LMSI.
  550. CIRC VFD 60/0LCONFIG.
  551.  
  552. CIRD BSS 0
  553. DATA C*CLDT.*
  554. CON 0
  555. CIRE DATA C*$ISF(FM=0,SJ,SP)*
  556. * DATA C*$ISF(FM=0,SJ)* (RECOVERY DEADSTART)
  557. CON 0
  558. CIRF2 EQU *-CIRD
  559. CIRF EQU CIRF2/5 CM LENGTH OF COMMANDS
  560. ERRNG 40-CIRF COMMAND BUFFER OVERFLOW
  561. GDT SPACE 4
  562. ** GDT - GET DEVICE ACCESS TABLE.
  563. *
  564. * EXIT DEVICE ACCESS TABLE LOADED.
  565. * TO *RCL* IF DAT BUSY.
  566. *
  567. * USES P2, CN - CN+4.
  568. *
  569. * CALLS CLK, IFR, LDT.
  570. *
  571. * MACROS EXECUTE.
  572.  
  573.  
  574. GDT3 RJM LDT LOAD DEVICE ACCESS TABLE
  575. LDD P2 SET *DATI* STATUS FOR *RPF*
  576. RAM RPFB
  577.  
  578. GDT SUBR ENTRY/EXIT
  579. LDC MMFL READ MMF STATUS WORD
  580. CRD CN
  581. LDD CN+2 CHECK DATI STATUS
  582. SHN -6
  583. STD P2
  584. LMN 40
  585. ZJN GDT3 IF DAT INTERLOCKED
  586. LDN DATI GET DAT INTERLOCK
  587. RJM IFR
  588. ZJN GDT3 IF INTERLOCK SET
  589.  
  590. * ENTERED HERE EXTERNALLY.
  591.  
  592. GDT1 LDD CP
  593. ADN MS2W
  594. CWM GDTA,TR
  595. LDN FIRR FLAG REGISTER INTERLOCK REJECT
  596. LJM RCL RECALL CMS
  597.  
  598. GDTA DATA C*$WAITING - RECOVERY INTERLOCK.*
  599. RCL SPACE 4,10
  600. ** RCL - RECALL PP.
  601. *
  602. * ENTRY (A) = RECALL STACK REASON CODE.
  603. *
  604. * EXIT TO *PPR*.
  605. *
  606. * USES LA, CM - CM+4.
  607. *
  608. * MACROS MONITOR.
  609.  
  610.  
  611. RCL STD CM SET REASON CODE
  612. LDK ZERL
  613. CRD CM+1
  614. LDD MA ENTER PP RECALL REQUEST
  615. CWM RCLA,ON
  616. CWD CM
  617. MONITOR RECM
  618. LJM PPR EXIT TO PP RESIDENT
  619.  
  620. RCLA VFD 60/0LCMS
  621.  
  622. * CODE BEYOND THIS POINT MAY BE OVERLAID.
  623.  
  624. SDVR EQU *
  625. IAM SPACE 4
  626. ** IAM - ISSUE ACCOUNTING MESSAGE.
  627. *
  628. * ENTRY (EQ) = EST ORDINAL.
  629. * (FN - FN+4) = EST ENTRY.
  630. *
  631. * EXIT MESSAGE ISSUED TO ACCOUNTING DAYFILE.
  632. *
  633. * USES T1, CM - CM+4, CN - CN+4.
  634. *
  635. * CALLS ACS, C2D, DFM.
  636.  
  637.  
  638. IAM SUBR ENTRY/EXIT
  639. LDC IAMB SET ADDRESS OF ASSEMBLY BUFFER
  640. STD T1
  641. LDD EQ CONVERT UPPER TWO DIGITS OF EST ORDINAL
  642. SHN -3
  643. RJM C2D
  644. STD CM
  645. LDD EQ CONVERT LOWER DIGIT OF EST ORDINAL
  646. LPN 7
  647. ADN 1R0
  648. SHN 6
  649. STD CM+1
  650. LDN CM ADD EST ORDINAL TO MESSAGE
  651. RJM ACS
  652. LDC =C*, * ADD SEPARATOR TO MESSAGE
  653. RJM ACS
  654. LDD FN+4 GET DEVICE DESCRIPTION
  655. SHN 3
  656. ADN PFGL
  657. CRD CM
  658. ADN PUGL-PFGL READ USER NAME
  659. CRD CN
  660. LDD CM+3 EXTRACT DEVICE NUMBER
  661. LPN 77
  662. ZJN IAM1 IF AUXILIARY DEVICE
  663. RJM C2D CONVERT TO DISPLAY CODE
  664. STD CN
  665. LDD CM+3 SET END OF FAMILY NAME
  666. SCN 77
  667. STD CM+3
  668. LDC 2RDU&2RPD
  669. IAM1 LMC 2RPD SET MESSAGE PREFIX
  670. STM IAMA+1
  671. LDN CM ADD FAMILY/PACKNAME TO MESSAGE
  672. RJM ACS
  673. LDD CN
  674. ZJN IAM2 IF NO USER/DEVICE NUMBER
  675. LDC =C*, *
  676. RJM ACS
  677. LDD CN+3 SET END OF USER NAME
  678. SCN 77
  679. STD CN+3
  680. LDN CN ADD USER/DEVICE NUMBER TO MESSAGE
  681. RJM ACS
  682. IAM2 LDC =C*.* SET MESSAGE TERMINATOR
  683. RJM ACS
  684. LDC IAMA+ACFN ISSUE MESSAGE TO ACCOUNT FILE
  685. RJM DFM
  686. * LDN 0 CLEAR ASSEMBLY BUFFER
  687. STM IAMB
  688. LJM IAMX RETURN
  689.  
  690. IAMA DATA 6HADPD,
  691. IAMB BSSZ 15 ASSEMBLY BUFFER
  692. RCD SPACE 4
  693. ** RCD - RECOVER DEVICES.
  694. *
  695. * ENTRY (RE) = EQUIPMENT TO RECOVER.
  696. * (AL) = CM ADDRESS CONTAINING LABEL MST.
  697. * (RC) = RECOVERY COUNT.
  698. * (EQ) = (T5) = EST ORDINAL.
  699. * (CA+1) = CM ADDRESS OF TRT BUFFER.
  700. * (FN - FN+4) = EST ENTRY.
  701. *
  702. * EXIT DEVICES RECOVERED OR SET UNAVAILABLE.
  703. * (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
  704. * BE REWRITTEN TO CM UPON RETURN TO *MRL*.
  705. *
  706. * USES CA, EC, T1, CN - CN+4.
  707. *
  708. * CALLS CSD, DFM, IES, SEC, UDT.
  709. *
  710. * MACROS SMSTF, UJMF.
  711.  
  712.  
  713. RCD9 SCN 2 CLEAR INTERNAL SHARED STATUS
  714. SHN 7+1
  715. STD RE
  716.  
  717. RCD SUBR ENTRY/EXIT
  718. SHN 21-7
  719. PJN RCD9 IF DEVICE NOT BEING RECOVERED
  720. SMSTF LPTU PROHIBIT TRT UPDATE BY *1RU*
  721. RJM SEC SET PROPER EQUIPMENT CONFIGURATION
  722. UJMF RCD3 NON MMF TRANSFER
  723. LDD RA GET DEVICE NAME FROM LABEL MST
  724. SHN 6
  725. ADD AL
  726. ADN PFGL
  727. CRD CN
  728. RJM CSD CHECK SHARED DEVICE STATUS
  729. NJN RCD1 IF *DAT* CONFLICT
  730. LDD RS
  731. NJN RCD2 IF CONTINUATION OF RECOVERY DEADSTART
  732. LDD RE
  733. LPN 10
  734. ZJN RCD2 IF NOT ACCESSED BY THIS MACHINE
  735. LDC CSDC
  736. RCD1 RJM DFM ISSUE MESSAGE TO DAYFILE
  737. LDN STCE SET CONFIGURATION ERROR
  738. UJN RCD5 ENTER ERROR STATUS
  739.  
  740. RCD2 RJM UDT UPDATE DEVICE ACCESS TABLE
  741. NJN RCD1 IF MST/TRT TRACK UNAVAILABLE
  742. RCD3 LDD RE CHECK STATUS OF LABEL READ
  743. LPN 40
  744. ZJN RCD4 IF VALID ACCESS MODE
  745. LDN STLE SET LABEL ERROR
  746. UJN RCD5 ENTER ERROR STATUS
  747.  
  748. * READ AND EDIT TRT.
  749.  
  750. RCD4 RJM RTT
  751. ZJN RCD6 IF RECOVERY COMPLETE
  752.  
  753. * ERROR IN RECOVERY OF DEVICE.
  754.  
  755. RCD5 STD EC SET ERROR STATUS
  756. SOD RC DECREMENT RECOVERY COUNT
  757. RJM IES INITIALIZE EQUIPMENT STATUS
  758. * LCN 0 (*MRL* REWRITE RECOVERY TABLE FLAG)
  759. RCD6 LJM RCDX RETURN
  760. RQS SPACE 4
  761. ** RQS - REQUEST STORAGE.
  762. *
  763. * ENTRY (A) = STORAGE REQUIRED.
  764. *
  765. * EXIT STORAGE ASSIGNED.
  766. * TO *RCL* IF REQUEST PENDING.
  767. *
  768. * CALLS RSI.
  769.  
  770.  
  771. RQS SUBR ENTRY/EXIT
  772. RJM RSI REQUEST STORAGE INCREASE
  773. ZJN RQSX IF ASSIGNED
  774. LDN CFIR CM FL INCREASE PENDING
  775. LJM RCL RECALL *CMS*
  776. UMT SPACE 4
  777. ** UMT - UPDATE MMF TABLES IN EXTENDED MEMORY.
  778. *
  779. * ENTRY (RC) = NUMBER OF EQUIPMENTS RECOVERED.
  780. *
  781. * CALLS *4DF*, MRL.
  782.  
  783.  
  784. UMT SUBR ENTRY/EXIT
  785. LDD RC
  786. ZJN UMTX IF NO EQUIPMENT RECOVERED
  787. EXECUTE 4DF
  788. LDC UER UPDATE EXTENDED MEMORY RESIDENT
  789. RJM MRL
  790. UJN UMTX RETURN
  791. SPACE 4
  792. ** COMMON DECKS.
  793.  
  794.  
  795. *CALL COMPACS
  796. *CALL COMPRSI
  797.  
  798.  
  799. USE LITERALS
  800. TITLE PRESET.
  801. PRS SPACE 4
  802. ** PRS - PRESET.
  803. *
  804. * EXIT DEVICE STATUS TABLE IN *MSM-S* FL SET WITH
  805. * RECOVERY STATUS INFORMATION AND CM ADDRESSES
  806. * FOR MST LABEL DATA.
  807.  
  808.  
  809. PRS BSS 0
  810. LDD CP CHECK ORIGIN OF CALL
  811. ADN JCIW
  812. CRD CM
  813. ADN SNSW-JCIW
  814. CRD CN
  815. LDD CM+2
  816. LMC MSSI
  817. ZJP PRS2 IF VALID SUBSYSTEM CALL
  818. LMN DSSI&MSSI
  819. NJP PRS3 IF NOT DEADSTART SEQUENCING PRIORITY
  820. ISTORE CMSB,(UJN CMS4) SET DEADSTART SEQUENCING STATUS
  821. ISTORE DPPB,(LDN CIRD-CIRB)
  822. LDD CP SET SYSTEM USER NAME/INDEX
  823. ADN UIDW
  824. CWM PRSA,ON
  825. LDN DSSL SET RECOVERY LEVEL
  826. CRD CM
  827. LDD CM+4 SET RECOVERY STATUS
  828. LPN 3
  829. STD T1
  830. ZJN PRS1 IF NOT RECOVERY DEADSTART
  831. LDC 100*1R) PREVENT *SYSPROC* CALL
  832. STM CIRE+6
  833. LDN 0
  834. STM CIRE+7
  835. SOM DPPC PREVENT *CLDT* CALL
  836. LDN CIRE-CIRD
  837. RAM DPPB
  838. PRS1 LDM TRCO,T1
  839. PRS2 UJN PRS5 SET RECOVERY STATUS
  840.  
  841. PRS3 LDC PRSB ISSUE * INCORRECT CMS CALL.*
  842. RJM DFM
  843. PRS4 LDC MMFL READ MMF STATUS WORD
  844. CRD CN
  845. LDD CN+2 CHECK RECOVERY INTERLOCK
  846. SHN 0-13
  847. ZJN ABT IF DAT NOT INTERLOCKED
  848. LCN DATI RELEASE RECOVERY INTERLOCK
  849. RJM IFR
  850. STD CN+2 CLEAR INTERLOCK STATUS
  851. LDC MMFL
  852. CWD CN
  853. ABT MONITOR ABTM
  854. LJM PPR
  855.  
  856. PRS5 STD RS
  857. PAUSE CHECK ERROR FLAG
  858. LDD CM+1
  859. NJN PRS4 IF ERROR FLAG SET
  860. LDD CN+3 CLEAR PAUSE BIT
  861. SCN 1
  862. STD CN+3
  863. LDD CP
  864. ADN SNSW
  865. CWD CN
  866. ADN PFCW-SNSW SWITCH TO NULL FAMILY
  867. CRD CN
  868. LDD CN+3
  869. STD CM+1
  870. LMN NEEQ CHECK FOR NULL FAMILY
  871. ZJN PRS6 IF NULL FAMILY
  872. LDN DFCS
  873. STD CM+3
  874. MONITOR SMDM
  875. LDN NEEQ SET NULL FAMILY IN *PFCW*
  876. STD CN+3
  877. LDD CP
  878. ADN PFCW
  879. CWD CN
  880. PRS6 LDN ESTP READ EST POINTER
  881. CRD CM
  882. LDN 2 SET CONSTANT TWO
  883. STD TW
  884. LDD CM+3 SET LAST MASS STORAGE ORDINAL + 1
  885. STD LO
  886. ADN 7 SET INDEX INTO MST TABLE
  887. SCN 7
  888. STD CA
  889. ADN 70
  890. SHN -6
  891. STD T1
  892. SBD FL
  893. MJN PRS7 IF ENOUGH STORAGE AVAILABLE
  894. LDD T1
  895. RJM RQS
  896.  
  897. * INITIALIZE TABLES.
  898.  
  899. PRS7 RJM IET INITIALIZE TABLES
  900.  
  901. * CHECK FOR MULTI-MAINFRAME SYSTEM.
  902.  
  903. LDC MMFL READ MMF STATUS WORD
  904. CRD CM
  905. LDD CM+1
  906. LPC 777
  907. ZJN PRS10 IF NOT MMF ENVIRONMENT
  908. STD EQ
  909. LDD RA GET LINK DEVICE
  910. SHN 6
  911. ADD EQ
  912. CRD RD
  913. LDD RE ASSIGN SYSTEM STATUS TO LINK DEVICE
  914. LPC 5500
  915. LMC 2000
  916. STD RE
  917. LDD RA STORE LINK DEVICE RECOVERY INFORMATION
  918. SHN 6
  919. ADD EQ
  920. CWD RD
  921. LDD FN+4 SET EXTENDED MEMORY MST POINTER
  922. STM LDMP
  923. SHN 3 GET ALLOCATION WORD FROM MST
  924. ADN ALGL
  925. CRD CN
  926. LDD CN+1 SET EXTENDED MEMORY LABEL TRACK
  927. STM ECLT
  928. LDN 10-1 ADVANCE FL AS NEEDED FOR *DAT* TABLE
  929. RAM PRSC
  930. PRS10 ZJN PRS12 IF STAND ALONE SYSTEM
  931.  
  932. * SET FL REQUIRED FOR LABEL MSTS.
  933.  
  934. PRS12 LDD CA SET ADDRESS OF TRT BUFFER
  935. STD CA+1
  936. ADN 77
  937. SHN -6
  938. ADC FLRC/100+1 REQUEST FL FOR LABELS, MSTS AND TRT EDIT
  939. PRSC EQU *-1
  940. RJM RQS
  941. LJM CMS RETURN
  942.  
  943.  
  944. PRSA VFD 42/0LSYSTEMX,18/SYUI
  945. PRSB DATA C* INCORRECT CMS CALL.*
  946. IET SPACE 4,10
  947. ** IET - INITIALIZE TABLES.
  948. *
  949. * EXIT DEVICE RECOVERY STATUS TABLE INITIALIZED.
  950. *
  951. * USES TS, RE, AL, EQ, UC, CM - CM+4, FN - FN+4, FS - FS+4.
  952. *
  953. * MACROS SFA.
  954.  
  955.  
  956. IET3 LDN ZERL CLEAR RECOVERY TABLE ENTRY
  957. CRD RD
  958. IET4 LDD RA STORE RECOVERY TABLE INFORMATION
  959. SHN 6
  960. ADD EQ
  961. CWD RD
  962. AOD EQ ADVANCE EST ORDINAL
  963. LMD LO
  964. NJN IET1 IF NOT END OF MASS STORAGE EQUIPMENTS
  965. STD RC
  966.  
  967. IET SUBR ENTRY/EXIT
  968. LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  969. STD EQ
  970. IET1 SFA EST,EQ READ EST ENTRY
  971. ADK EQDE
  972. CRD FN
  973. LDD FN CHECK EST ENTRY
  974. LPC 7500 PRESET RECOVERY TABLE
  975. STD RE
  976. SHN 21-13
  977. PJN IET3 IF NOT MASS STORAGE ENTRY
  978. LDD CA SET ADDRESS OF MST FOR FIRST UNIT
  979. STD AL
  980. LDD FN+4 READ *STLL*
  981. SHN 3
  982. ADN STLL
  983. CRD FS
  984. ADN DDLL-STLL READ *DDLL*
  985. CRD CM
  986. LDD CM CHECK ORIGINAL UNIT COUNT
  987. SHN -3
  988. LPN 7
  989. STD UC
  990. IET2 LDN MSTL ADVANCE INDEX IN MST TABLE
  991. RAD CA
  992. SOD UC DECREMENT UNIT COUNT
  993. PJN IET2 IF MORE UNITS THIS EQUIPMENT
  994. LDD FS ASSIGN SYSTEM STATUS TO ASR DEVICE
  995. LPN MRASD
  996. SHN 12-RASD+RASD/12D*12D
  997. RAD RE
  998. LJM IET4 INITIALIZE DEVICE RECOVERY INFORMATION
  999. TRCO SPACE 4,10
  1000. ** TRCO - TABLE OF RECOVERY OPTIONS.
  1001.  
  1002.  
  1003. TRCO BSS 0
  1004. LOC 0
  1005. CON 0
  1006. CON FLTB+SYTB
  1007. CON FLTB
  1008. CON 0
  1009.  
  1010. LOC *O
  1011. EJECT
  1012. TTL MSM/RMS - RECOVER MASS STORAGE.
  1013. IDENT RMS,OBOV-2
  1014. *COMMENT MSM - MASS STORAGE RECOVERY MANAGER.
  1015. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  1016. SPACE 4
  1017. *** *RMS* SURVEYS ALL MASS STORAGE DEVICES AND RECOVERS
  1018. * ANY DEVICE POSSIBLE. UPON COMPLETION, *REC* IS CALLED
  1019. * INTO THIS PP TO PROCEED WITH SYSTEM RECOVERY.
  1020. SPACE 4
  1021. *** ENTRY CONDITIONS.
  1022. *
  1023. * (IR+3) = CPUMTR MMF INITIALIZATION STATUS-
  1024. * LINK DEVICE LABEL TRACK IF NO ERROR.
  1025. * ERROR MESSAGE NUMBER IF ERROR.
  1026. * (IR+4) = RECOVERY STATUS.
  1027. SPACE 4
  1028. *** OPERATOR MESSAGES.
  1029. *
  1030. *
  1031. * REFER TO OPERATORS GUIDE FOR INFORMATION AS TO CAUSE OF
  1032. * ERROR AND RECOMMENDED CORRECTIVE ACTION.
  1033. *
  1034. * *DEVICE ACTIVE IN DAT.* (MMF)
  1035. *
  1036. * *END OF DAT TRACK CHAIN.* (MMF)
  1037. *
  1038. * *EQXXX EQYYY CONFLICTING DN.*
  1039. *
  1040. * *EQXXX EQYYY CONFLICTING PN.*
  1041. *
  1042. * *EQXXX EQYYY CONFLICTING UM.*
  1043. *
  1044. * *EQXXX, DEVICE ACCESS ERROR.*
  1045. *
  1046. * *ERROR ON DEVICE WITH ACTIVE FILES.*
  1047. *
  1048. * *ERROR ON SYSTEM DEVICE.*
  1049. *
  1050. * *EXTENDED MEMORY LABEL TRACK NOT FOUND.* (MMF)
  1051. *
  1052. * *EXTENDED MEMORY READ/WRITE PARITY ERRORS.* (MMF)
  1053. *
  1054. * *INSUFFICIENT MEMORY FOR CM RECOVERY.*
  1055. *
  1056. * *LABEL TRACK CONFLICT.*
  1057. *
  1058. * *LINK DEVICE SIZE ERROR.* (MMF)
  1059. *
  1060. * *LOCAL AREA SECTOR ERROR.*
  1061. *
  1062. * *MAXIMUM NUMBER MIDS ACTIVE.* (MMF)
  1063. *
  1064. * *MID UNDEFINED IN EXTENDED MEMORY.* (MMF)
  1065. *
  1066. * *MID CURRENTLY ACTIVE IN EXTENDED MEMORY.* (MMF)
  1067. *
  1068. * *MMF DEVICE ACCESS ERROR.* (MMF)
  1069. *
  1070. * *NON-SHARED DEVICE ACTIVE IN DAT.* (MMF)
  1071. *
  1072. * *PF LINKAGE ERROR.*
  1073. *
  1074. * *PRESET NOT ALLOWED.* (MMF)
  1075. *
  1076. * *REMOVABLE DEVICE CONFLICT.* (MMF)
  1077. *
  1078. * *SHARED DEVICE ACTIVE IN DAT.* (MMF)
  1079. *
  1080. * *TRT LENGTH ERROR.*
  1081. *
  1082. * *UNMATCHED SYSTEM DEVICES.*
  1083. SPACE 4
  1084. ** ROUTINES CALLED.
  1085. *
  1086. * 0MF - PRESET MMF LINK DEVICE.
  1087. * 0SD - SPIN UP/DOWN ISMD DRIVES.
  1088. TITLE COMMON WORKING STORAGE AND SUBROUTINES.
  1089. RMS SPACE 4
  1090. QUAL RMS
  1091. ORG OBOV-2
  1092. LJM PRS PRESET *RMS*
  1093. SPACE 4,10
  1094. LIST M
  1095. COMMON
  1096. LIST *
  1097. TITLE MAIN ROUTINE.
  1098. ** RMS - MAIN PROGRAM.
  1099.  
  1100.  
  1101. RMS1 EXECUTE 4DB LOAD RECOVERY ROUTINES
  1102. RJM RLD RECOVER MMF LINK DEVICE
  1103. LDC 0 SET UEM EQUIPMENT FOR SPECIAL PROCESSING
  1104. RMSE EQU *-1
  1105. STM MRLC
  1106. LDC ZJNI-ZJNI SET JUMP TO PROCESS OR IGNORE UEM
  1107. * LDC NJNI-ZJNI (IF PROCESSING ONLY UEM)
  1108. RMSH EQU *-1
  1109. RAM MRLD
  1110. LDC RDL READ LABELS
  1111. RJM MRL
  1112. RMSA LDN 0
  1113. ZJN RMS2 IF NO DEVICE INITIALIZATION
  1114. EXECUTE 4DD LOAD VERIFICATION ROUTINES
  1115. EXECUTE 4DH LOAD INITIALIZATION ROUTINES
  1116. LDC IMS PROCESS DEVICE INITIALIZATION
  1117. RJM MRL
  1118. RMS2 EXECUTE 4DD LOAD VERIFICATION ROUTINES
  1119. EXECUTE 4DG LOAD RECOVERY ROUTINES
  1120. RMSB UJN RMS3 IF NOT CM RECOVERY
  1121. * PSN
  1122. LDC CAD CHECK ACTIVE DEVICES
  1123. RJM MRL
  1124. LDC RMR UPDATE MRT TABLES
  1125. RJM MRL
  1126. RJM UMT UPDATE MMF TABLES
  1127. UJN DPP CALL *REC*
  1128.  
  1129. RMS3 LDC CDS CHECK DEVICE STATUS
  1130. RJM MRL
  1131. LDD RC
  1132. ZJN RMS4 IF NO EQUIPMENTS TO RECOVER
  1133. LDC RCD RECOVER DEVICES
  1134. RJM MRL
  1135. RJM REM RESTORE UEM (LEVEL 1 OR 2 AND UEM PRESENT)
  1136. LDC ** WRITE DAYFILE RECOVERY SELECTIONS BACK
  1137. RMSC EQU *-1
  1138. CWM RMSF,ON
  1139. RMS4 RJM UMT UPDATE MMF TABLES
  1140. EXECUTE 4DC VERIFY PF SYSTEM
  1141.  
  1142. DPP LDC DSCP*200+MS1W STORE *RECOVERY* MESSAGE
  1143. CWM RMSG,ON
  1144. LDD IA CALL *REC* INTO THIS PP
  1145. CWM RMSD,ON
  1146. LJM PPR
  1147.  
  1148. RMSD VFD 18/3LREC,6/DSCP,36/0
  1149. RMSF BSS 5 DAYFILE RECOVERY SELECTIONS
  1150. RMSG DATA C*RECOVERY*
  1151. TITLE CM RECOVERY ROUTINES.
  1152. CAD SPACE 4
  1153. ** CAD - CHECK ACTIVE DEVICES (CM RECOVERY).
  1154. *
  1155. * ENTRY (EQ) = (T5) = EST ORDINAL.
  1156. * (FN - FN+4) = EST ENTRY.
  1157. *
  1158. * EXIT (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
  1159. * BE REWRITTEN TO CM UPON RETURN TO *MRL*.
  1160. *
  1161. * USES T5 - T7, FN - FN+4, FS - FS+4.
  1162. *
  1163. * CALLS ATC, CTD, EBP, IES, VLP.
  1164.  
  1165.  
  1166. CAD SUBR ENTRY/EXIT
  1167. SHN 21-6
  1168. MJN CADX IF DEVICE UNAVAILABLE
  1169. SHN 6-0
  1170. MJN CADX IF LABEL NOT READ
  1171. LDD FN+4 READ PF DESCRIPTION
  1172. SHN 3
  1173. ADN PFGL
  1174. CRM DLPB,TW
  1175. ADN STLL-PFGL-2 READ STATUS (STLL)
  1176. CRD FS
  1177. UJMF CAD2
  1178. RJM RDE READ *DAT* ENTRY
  1179. LDM DATB+11 CHECK ACCESS BY THIS MACHINE
  1180. LPC 0
  1181. CADA EQU *-1
  1182. NJN CAD1 IF DEVICE SET
  1183. LDC =C*MMF DEVICE ACCESS ERROR.*
  1184. LJM HNG DISPLAY MESSAGE AND HANG
  1185.  
  1186. CAD1 LDN 10 SET ACCESS BY THIS MACHINE
  1187. RAD RE
  1188. CAD2 RJM EBP ENABLE BST/BAT PROCESSING, IF REQUIRED
  1189. RJM VLP VERIFY LABEL PARAMETERS
  1190. MJN CAD3 IF NOT FIRST EQUIPMENT IN CHAIN
  1191. NJN CAD4 IF ERRORS FOR THIS EQUIPMENT
  1192. RJM ATC ADJUST TRACK COUNT (AND CLEAR INTERLOCKS)
  1193. LDD FN
  1194. LPN 20
  1195. ZJN CAD3 IF NOT ISHARED DEVICE
  1196. LDD RE
  1197. LPN 10
  1198. ZJN CAD3 IF CURRENT TRT NOT IN THIS MACHINE
  1199. LCN 2
  1200. RAD RE
  1201. RJM CTD
  1202. * LDN 0 (*MRL* REWRITE RECOVERY TABLE FLAG)
  1203. CAD3 LJM CADX RETURN
  1204.  
  1205. * ERROR IN LABEL DETECTED.
  1206.  
  1207. CAD4 LDD FN
  1208. SHN 21-10
  1209. PJN CAD5 IF NOT REMOVABLE DEVICE
  1210. LDD FN+4 CHECK ACTIVITY
  1211. SHN 3
  1212. ADN DULL
  1213. CRD CM
  1214. LDD CM+4
  1215. LPC 3777
  1216. ADD FS+3
  1217. NJN CAD5 IF ACTIVE FILES ON DEVICE
  1218. RJM IES INITIALIZE EQUIPMENT STATUS
  1219. * LCN 0 (*MRL* REWRITE RECOVERY TABLE FLAG)
  1220. UJN CAD3
  1221.  
  1222. CAD5 LDC =C*ERROR ON DEVICE WITH ACTIVE FILES.*
  1223. * LJM HNG
  1224. HNG SPACE 4
  1225. ** HNG - DISPLAY ERROR AND HANG PP.
  1226. *
  1227. * ENTRY (A) = ADDRESS OF MESSAGE.
  1228. *
  1229. * USES T2.
  1230. *
  1231. * CALLS IFR.
  1232. *
  1233. * MACROS UJMF.
  1234.  
  1235.  
  1236. HNG STM HNGA
  1237. UJMF HNG1
  1238. LCN DATI CLEAR FLAG REGISTER INTERLOCK
  1239. RJM IFR
  1240. HNG1 LDN 4
  1241. STD T2
  1242. LDC CPAS+MS2W SET MESSAGE IN RECOVERY MESSAGE BUFFER
  1243. CWM *,T2
  1244. HNGA EQU *-1
  1245. UJN * STOP
  1246. SEM SPACE 4
  1247. ** SEM - SET EQUIPMENT MESSAGE.
  1248. *
  1249. * ENTRY (EQ) = EST ORDINAL.
  1250. * (FN - FN+4) = EST ENTRY.
  1251. *
  1252. * USES CM - CM+4.
  1253. *
  1254. * CALLS C2D.
  1255.  
  1256.  
  1257. SEM SUBR ENTRY/EXIT
  1258. LDN 1R
  1259. STD CM
  1260. LDN 0 SET END OF ASSEMBLY
  1261. STD CM+4
  1262. LDD FN+3 ENTER EQUIPMENT MNEMONIC
  1263. STD CM+1
  1264. LDD EQ CONVERT UPPER TWO DIGITS OF EST ORDINAL
  1265. SHN -3
  1266. RJM C2D
  1267. STD CM+2
  1268. LDD EQ CONVERT LOWER DIGIT OF EST ORDINAL
  1269. LPN 7
  1270. ADN 1R0
  1271. SHN 6
  1272. STD CM+3
  1273. LDC CPAS+MS1W+1
  1274. CWD CM
  1275. ADN MS2W-MS1W-1 CLEAR SECOND LINE OF MESSAGE
  1276. CWD CM+4
  1277. UJN SEMX
  1278. TITLE NON - CM RECOVERY ROUTINES.
  1279. CDS SPACE 4,20
  1280. ** CDS - CHECK DEVICE STATUS (LEVEL 0, 1, 2 RECOVERY).
  1281. *
  1282. * ENTRY (EQ) = (T5) = EST ORDINAL.
  1283. * (FN - FN+4) = EST ENTRY.
  1284. *
  1285. * EXIT (RC) = COUNT OF EQUIPMENTS TO RECOVER.
  1286. * (RE) = SET WITH RECOVERY INFORMATION.
  1287. * (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
  1288. * BE REWRITTEN TO CM UPON RETURN TO *MRL*.
  1289. *
  1290. * USES FN - FN+4, FS - FS+4, T4 - T7, RC, EQ, EC.
  1291. *
  1292. * CALLS CSD, CSE, HNG, IES, UDT, VLP.
  1293. *
  1294. * MACROS UJMF.
  1295.  
  1296.  
  1297. CDS12 LDN 0 INHIBIT FURTHER PROCESSING OF DEVICE
  1298. STD RE
  1299.  
  1300. CDS SUBR ENTRY/EXIT
  1301. SHN 21-4
  1302. MJN CDSX IF INITIALIZATION SPECIFIED
  1303. LDD FN
  1304. LPN 2
  1305. NJN CDS12 IF DEVICE OFF OR DOWN
  1306. LDD RA READ LABEL DATA
  1307. SHN 6
  1308. ADD AL
  1309. ADN PFGL READ DEVICE DESCRIPTION
  1310. CRD CN
  1311. ERRNZ PUGL-PFGL-1 ADJUST IF *PUGL* POSITION CHANGES
  1312. ERRNZ MDGL-PFGL-2 ADJUST IF *MDGL* POSITION CHANGES
  1313. CRM DLPB,TW
  1314. LDD FN+4 READ STLL
  1315. SHN 3
  1316. ADN STLL
  1317. CRD FS
  1318. SBN STLL-MDGL
  1319. CRD CM+3
  1320. RJM CSE CHECK SYSTEM EQUIPMENT
  1321.  
  1322. * VERIFY LABELS FOR THIS EQUIPMENT.
  1323.  
  1324. CDS1 UJMF CDS2
  1325. LDD CN+4
  1326. LPN 70
  1327. NJN CDS2 IF NOT FIRST UNIT OF EQUIPMENT
  1328. RJM CSD CHECK SHARED DEVICE STATUS
  1329. NJN CDS7 IF DAT CONFLICT
  1330. CDS2 RJM VLP VERIFY LABEL PARAMETERS
  1331. MJN CDS4 IF NOT FIRST EQUIPMENT IN CHAIN
  1332. NJN CDS6 IF ERROR ON ANY LABEL
  1333. UJMF CDS3 NON MMF TRANSFER
  1334. RJM UDT UPDATE DEVICE ACCESS TABLE
  1335. NJN CDS7 IF EXTENDED MEMORY TRACK UNAVAILABLE
  1336. CDS3 LDD RE CHECK INCORRECT MODE CHANGE
  1337. LPN 40
  1338. NJN CDS5 IF FULL TRACK ACCESS SET
  1339. LDC 200 SET EQUIPMENT RECOVERY
  1340. RAD RE
  1341. AOD RC ADVANCE RECOVERY COUNT
  1342. CDS4 LJM CDSX RETURN
  1343.  
  1344. CDS5 LDN STLE SET LABEL ERROR STATUS
  1345. STD EC
  1346.  
  1347. * ERROR IN LABEL VERIFICATION.
  1348.  
  1349. CDS6 LDD RE
  1350. SHN 21-10
  1351. MJN CDS10 IF REMOVABLE DEVICE ERROR
  1352. SHN 21-12+22-21+10
  1353. CDSA PJN CDS9 IF NOT DEVICE WITH SYSTEM STATUS
  1354. * PJN CDS11 (LVL0 - IF NOT DEVICE WITH SYSTEM STATUS)
  1355. LDC =C*ERROR ON SYSTEM DEVICE.*
  1356. CDS7 LJM HNG DISPLAY ERROR AND HANG
  1357.  
  1358. * NON REMOVABLE DEVICE ERROR.
  1359.  
  1360. CDS9 LDC =C*ERROR ON DEVICE WITH ACTIVE FILES.*
  1361. UJN CDS7 DISPLAY ERROR AND HANG
  1362.  
  1363. * REMOVABLE DEVICE ERROR.
  1364.  
  1365. CDS10 LDD EC CHECK ERROR CODE
  1366. * UJN CDS11 (LEVEL 0 DEADSTART)
  1367. CDSB EQU *-1
  1368. LMN STLE
  1369. ZJN CDS11 IF LABEL ERROR
  1370. LMN STNR&STLE
  1371. ZJN CDS11 IF NOT READY
  1372. LDD RA CHECK LABEL COPY OF *STLL*
  1373. SHN 6
  1374. ADD AL
  1375. ADN DULL
  1376. CRD CM
  1377. ADN STLL-DULL
  1378. CRD CN
  1379. LDD CM+4 CHECK ACTIVITY
  1380. LPC 3777
  1381. ADD CN+3
  1382. NJN CDS9 IF ACTIVE FILES ON DEVICE
  1383. CDS11 RJM IES INITIALIZE EQUIPMENT STATUS
  1384. * LCN 0 (*MRL* REWRITE RECOVERY TABLE FLAG)
  1385. LJM CDSX RETURN
  1386. CSE SPACE 4,10
  1387. ** CSE - CHECK SYSTEM EQUIPMENT.
  1388. *
  1389. * ENTRY (FN - FN+4) = EST ENTRY.
  1390. * (CM+3 - CM+7) = MDGL WORD OF MST.
  1391. *
  1392. * EXIT TO *HNG* IF MISMATCHED SYSTEM DEVICES.
  1393.  
  1394.  
  1395. CSE2 LDD FN+3 SET SYSTEM DEVICE TYPE
  1396. STM CSEA
  1397. LDD CM+7 SET MAXIMUM SECTOR LIMIT
  1398. STM CSEA+1
  1399.  
  1400. CSE SUBR ENTRY/EXIT
  1401. LDD FN
  1402. SHN 21-12
  1403. PJN CSEX IF NOT SYSTEM DEVICE
  1404. LDM CSEA
  1405. ZJN CSE2 IF FIRST SYSTEM DEVICE
  1406. LMD FN+3 COMPARE DEVICE TYPE
  1407. NJN CSE1 IF NO MATCH WITH FIRST SYSTEM DEVICE
  1408. LDM CSEA+1 CHECK SECTOR LIMIT
  1409. LMD CM+7
  1410. ZJN CSEX IF MATCHING TRACK SIZE
  1411. CSE1 LDC =C*UNMATCHED SYSTEM DEVICES.*
  1412. LJM HNG
  1413.  
  1414. CSEA CON 0,0
  1415. RCD SPACE 4,20
  1416. ** RCD - RECOVER DEVICE.
  1417. *
  1418. * ENTRY (A) = (RE) = EQUIPMENT RECOVERY STATUS INFORMATION.
  1419. * (EQ) = (T5) = EST ORDINAL.
  1420. * (RC) = RECOVERY COUNT.
  1421. * (CA+1) = CM ADDRESS OF TRT BUFFER.
  1422. * (FN - FN+4) = EST ENTRY.
  1423. * (RE) SET WITH DEVICE RECOVERY INFORMATION.
  1424. * (AL) = CM ADDRESS CONTAINING LABEL MST.
  1425. *
  1426. * EXIT DEVICE RECOVERED OR LEFT AS UNAVAILABLE.
  1427. * (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
  1428. * BE REWRITTEN TO CM UPON RETURN TO *MRL*.
  1429. *
  1430. * USES CA, EC, P1, T1.
  1431. *
  1432. * CALLS CDC, HNG, IES, RDY, SEC.
  1433.  
  1434.  
  1435. RCD6 RJM RDY RECOVER DAYFILES
  1436. LDN 0
  1437.  
  1438. RCD SUBR ENTRY/EXIT
  1439. SHN 21-7
  1440. PJN RCDX IF EQUIPMENT NOT BEING RECOVERED
  1441. SMSTF LPTU PROHIBIT TRT UPDATE BY *1RU*
  1442. RJM SEC SET EQUIPMENT CONFIGURATION
  1443.  
  1444. * READ TRT FOR THIS DEVICE.
  1445.  
  1446. RJM RTT
  1447. ZJN RCD6 IF RECOVERY COMPLETE
  1448.  
  1449. * ERROR IN DEVICE RECOVERY.
  1450.  
  1451. STD EC SET ERROR CODE
  1452. LMN STTL
  1453. ZJN RCD1 IF LENGTH ERROR
  1454. LDN RCDB-RCDA
  1455. RCD1 ADC RCDA SET ERROR MESSAGE ADDRESS
  1456. STD P1
  1457. RCDC LDD FN
  1458. * UJN RCD4 (LEVEL 0 DEADSTART)
  1459. SHN 21-10
  1460. PJN RCD5 IF NOT REMOVABLE DEVICE
  1461. LDM MBUF+5*STLL+3
  1462. NJN RCD4 IF ACTIVE USERS
  1463. RCD2 SOD RC DECREMENT RECOVERY COUNT
  1464. RJM IES INITIALIZE EQUIPMENT STATUS
  1465. * LCN 0 (*MRL* REWRITE RECOVERY TABLE FLAG)
  1466. RCD3 UJP RCDX RETURN
  1467.  
  1468. RCD4 LDD RE
  1469. SHN 21-12
  1470. PJN RCD2 IF NOT SYSTEM DEVICE
  1471. RCD5 LDD P1
  1472. LJM HNG DISPLAY MESSAGE AND HANG
  1473.  
  1474.  
  1475. RCDA DATA C*TRT LENGTH ERROR.*
  1476. RCDB DATA C*PF LINKAGE ERROR.*
  1477. RDY SPACE 4,10
  1478. ** RDY - RECOVER DAYFILES.
  1479. *
  1480. * ENTRY (MBUF) = MST.
  1481. *
  1482. * USES P1.
  1483. *
  1484. * CALLS CDC, *4DG*, *4DJ*.
  1485. *
  1486. * MACROS EXECUTE.
  1487.  
  1488.  
  1489. RDY SUBR ENTRY/EXIT
  1490. LDM MBUF+5*ACGL+4
  1491. LPC MGLAP
  1492. ZJN RDYX IF NO SECTOR OF LOCAL AREAS
  1493. LDN EXDF SET NUMBER OF EXCESS DAYFILES
  1494. STD P1
  1495. RDY1 SOD P1
  1496. MJN RDYX IF END OF DAYFILES
  1497. LDM MBUF+5*DALL,P1
  1498. ZJN RDY1 IF NO TRACK ASSIGNED
  1499. EXECUTE 4DJ LOAD DAYFILE RECOVERY ROUTINES
  1500. RJM CDC CHASE DAYFILE CHAIN
  1501. EXECUTE 4DG RELOAD RECOVERY ROUTINES
  1502. UJN RDYX RETURN
  1503. REM SPACE 4,10
  1504. ** REM - RESTORE UEM FROM CHECKPOINT FILE IF LEVEL 1 OR 2
  1505. * DEADSTART AND UEM IS PRESENT.
  1506. *
  1507. * USES LO.
  1508. *
  1509. * CALLS 4DK.
  1510. *
  1511. * MACROS EXECUTE.
  1512.  
  1513.  
  1514. REM1 STM MRLC RESTORE PROCESSING OF ALL EQUIPMENTS
  1515.  
  1516. REM SUBR ENTRY
  1517. SOM REMA
  1518. ZJN REM1 IF UEM NOT TO BE RESTORED THIS PASS
  1519. EXECUTE 4DK RESTORE UEM
  1520.  
  1521. * *4DK* DOES NOT RETURN CONTROL HERE. IT EXITS TO *RMS1*.
  1522.  
  1523. REMA CON 1 IF ZERO, *4DK* WILL NOT BE CALLED
  1524. RLD SPACE 4,15
  1525. ** RLD - RECOVER LINK DEVICE.
  1526. *
  1527. * ENTRY (FN - FN+4) = EST ENTRY FOR LINK DEVICE.
  1528. * (RD - RD+4) = RECOVERY INFORMATION FOR LINK DEVICE.
  1529. *
  1530. * USES EQ, P1, P2, RC, RE, T5, CM - CM+4, CN - CN+4.
  1531. *
  1532. * CALLS CDS, EMF, IMS, LDT, LRA, RCD, RDL, SEM, *0MF*, *4DB*,
  1533. * *4DD*, *4DG*, *4DH*.
  1534. *
  1535. * MACROS EXECUTE, MONITOR.
  1536.  
  1537.  
  1538. RLD2 LDD RE
  1539. SHN 21-4
  1540. PJN RLD3 IF INITIALIZE NOT SPECIFIED
  1541. EXECUTE 4DD LOAD VERIFICATION ROUTINES
  1542. EXECUTE 4DH LOAD INITIALIZATION ROUTINES
  1543. LCN 0 INITIALIZE LINK DEVICE
  1544. RJM IMS
  1545. SOM RMSA DECREMENT INITIALIZATION COUNT
  1546. UJN RLD4 CHECK LABEL TRACK
  1547.  
  1548. RLD3 LDN PSNI FORCE LINK DEVICE SIZE VERIFICATION
  1549. STM WMTC
  1550. RJM RDL READ DEVICE LABEL
  1551. EXECUTE 4DD LOAD VERIFICATION ROUTINES
  1552. EXECUTE 4DG LOAD RECOVERY ROUTINES
  1553. RJM LDT LOAD DEVICE ACCESS TABLE
  1554. LDD EQ
  1555. STD T5
  1556. LDN 0 CHECK DEVICE STATUS
  1557. RJM CDS
  1558. LDD EQ
  1559. STD T5
  1560. LDD RE
  1561. RJM RCD RECOVER DEVICE
  1562. RLD4 LDM LDMP GET DEVICE ALLOCATION WORD FROM MST
  1563. SHN 3
  1564. ADN ALGL
  1565. CRD CN
  1566. LDD CN+1 CHECK LABEL TRACK
  1567. LMM ECLT
  1568. ZJN RLD5 IF SAME AS FOUND BY *CPUMTR*
  1569. MONITOR HNGM HANG PP
  1570.  
  1571. RLD5 STD RC
  1572. LDD RE SAVE LINK DEVICE RECOVERY STATUS
  1573. STM UMTA
  1574. LDC ** *PRESET* COUNT
  1575. RLDA EQU *-1
  1576. ZJN RLD6 IF PRESET NOT SPECIFIED
  1577. STD P1
  1578. LDC ** BUFFERED DEVICE *PRESET* COUNT
  1579. RLDC EQU *-1
  1580. STD P2
  1581. EXECUTE 0MF,PRS
  1582. LDN 0 CLEAR LINK DEVICE RECOVERY STATUS
  1583. STM UMTA
  1584. RLD6 STD RE CLEAR RECOVERY FOR LINK DEVICE
  1585. RJM LRA LOAD REFERENCE ADDRESS
  1586. ADD EQ
  1587. CWD RD
  1588. EXECUTE 4DB RELOAD *4DB*
  1589. LDC LRMS ENABLE MMF RECOVERY
  1590. RJM EMF
  1591.  
  1592. RLD SUBR ENTRY/EXIT
  1593. RLDB LDN 0
  1594. * LDN 1 (LINK DEVICE ALREADY RECOVERED)
  1595. NJN RLDX IF LINK DEVICE ALREADY RECOVERED
  1596. AOM RLDB
  1597. LDC ** (LINK DEVICE EST ORDINAL)
  1598. RLDD EQU *-1
  1599. ZJN RLDX IF STAND-ALONE SYSTEM
  1600. STD T5
  1601. STD EQ
  1602. RLDE LDC LRMS ENABLE MMF RECOVERY
  1603. * UJN RLD1 (PRESET SELECTED)
  1604. RJM EMF
  1605. RLDF STM WMTB ENABLE LINK DEVICE RECOVERY
  1606. * UJN RLDX (CM RECOVERY)
  1607. RLD1 RJM SEM SET EQUIPMENT MESSAGE
  1608. LJM RLD2 CHECK FOR INITIALIZATION
  1609. UMT SPACE 4
  1610. ** UMT - UPDATE MMF TABLES IN EXTENDED MEMORY.
  1611. *
  1612. * CALLS IFR, LRA, MRL, UIS, 4DF.
  1613.  
  1614.  
  1615. UMT1 LDC UIS UPDATE ISD TABLES
  1616. RJM MRL
  1617.  
  1618. UMT SUBR ENTRY/EXIT
  1619. EXECUTE 4DF
  1620. UJMF UMT1
  1621. LDC 0
  1622. UMTB EQU *-1 (LINK DEVICE EST ORDINAL)
  1623. STD T5
  1624. RJM LRA LOAD REFERENCE ADDRESS
  1625. ADD T5
  1626. CRD RD
  1627. LDC * RESTORE LINK DEVICE RECOVERY STATUS
  1628. UMTA EQU *-1
  1629. STD RE
  1630. RJM LRA LOAD REFERENCE ADDRESS
  1631. ADD T5
  1632. CWD RD RESTORE RECOVERY TABLES
  1633. LDC UER UPDATE EXTENDED MEMORY RESIDENT
  1634. RJM MRL
  1635. UMTC LCN DATI CLEAR FLAG REGISTER INTERLOCK
  1636. * UJN UMTX (LEVEL 0 DEADSTART OR CM RECOVERY)
  1637. RJM IFR
  1638. LJM UMTX RETURN
  1639. SPACE 4
  1640. USE LITERALS
  1641. TITLE PRESET PROGRAM.
  1642. PRS SPACE 4
  1643. ** PRS - PRESET.
  1644. *
  1645. * EXIT (RS) = RECOVERY STATUS.
  1646. * (TW) = CONSTANT 2.
  1647. * (LM) = EXTENDED MEMORY MST POINTER IF MMF SYSTEM.
  1648. * (LO) = LAST MASS STORAGE ORDINAL + 1.
  1649. * (FN - FN+4) = EXTENDED MEMORY EST ENTRY IF MMF SYSTEM.
  1650. * (CA+1) = FWA FOR CM TRT BUFFER.
  1651. * DEVICE RECOVERY STATUS TABLE IN *MSM-S* FL SET WITH
  1652. * RECOVERY STATUS INFORMATION AND CM ADDRESSES FOR MST
  1653. * LABEL DATA.
  1654. *
  1655. * USES CA, CA+1, LO, P1, RE, RS, TA, TW, T5, CM - CM+4,
  1656. * CN - CN+4, FN - FN+4, RD - RD+4.
  1657. *
  1658. * CALLS CRE, CUR, IET, IFR, LCM, SUD.
  1659. *
  1660. * MACROS SFA.
  1661.  
  1662.  
  1663. PRS BSS 0
  1664. LDN JSCL READ SCHEDULER CONTROL
  1665. CRD CM
  1666. LDD CM SET SCHEDULER ACTIVE
  1667. LPC 3777
  1668. LMC 4000
  1669. STD CM
  1670. LDN JSCL STORE SCHEDULER CONTROL
  1671. CWD CM
  1672. LDN 2 DEFINE CONSTANT 2
  1673. STD TW
  1674. LDN ESTP READ EST POINTER
  1675. CRD CM
  1676. LDD CM+3 SET LAST MASS STORAGE ORDINAL + 1
  1677. STD LO
  1678. ADN 7 SET INDEX IN MST TABLE
  1679. SCN 7
  1680. STD CA
  1681. STD CA+1
  1682. LDD IR+4 SET RECOVERY STATUS
  1683. * STD RS
  1684. STM RMSD+4 STORE IN *REC* CALL
  1685. NJN PRS0 IF NOT LEVEL 0 DEADSTART
  1686. ISTORE CDSA,(PJN CDS11)
  1687. ISTORE CDSB,(UJN CDS11)
  1688. ISTORE RCDC,(UJN RCD4)
  1689. ISTORE UMTC,(UJN UMTX)
  1690. PRS0 LDD RS
  1691. LPN FLMK
  1692. LMN FLCM
  1693. STD P1
  1694. NJN PRS1 IF NOT CM RECOVERY
  1695. IFGT TA,RA
  1696. LDN RA-TA
  1697. ELSE 1
  1698. LCN RA-TA
  1699. RAM LRAC
  1700. RJM LCM FIND FREE AREA
  1701. LDK MABL CHECK MAINFRAME TYPE
  1702. CRD CM
  1703. LDD CM+1
  1704. SHN 21-13
  1705. MJN PRS1 IF CME NOT PRESENT
  1706. LDC 4000
  1707. STD TA
  1708. LDC 0
  1709. ORG *-1
  1710. LOC LRAA
  1711. UJN LRA1 SET *R* REGISTER
  1712. LOC *O
  1713. STM LRAA
  1714. PRS1 RJM IET INITIALIZE EQUIPMENT TABLE
  1715. LDD P2
  1716. NJN PRS2 IF NOT ALL-ISD CONFIGURATION
  1717. LDK CFGL
  1718. CRD CM
  1719. LDD CM+3
  1720. LPC 7377
  1721. ADC 400 SET ALL-ISD FLAG
  1722. STD CM+3
  1723. LDK CFGL
  1724. CWD CM
  1725. PRS2 LDD CA SET ADDRESS OF TRT BUFFER
  1726. STD CA+1
  1727. LDC CPAS+MS1W ISSUE *SPINNING UP DRIVES* MESSAGE
  1728. CWM PRSE,TR
  1729. LDN 0 SPIN UP ISMD DRIVES
  1730. RJM SUD
  1731. LDN 0 WAIT - SPIN UP COMPLETE
  1732. RJM SUD
  1733. LDC CPAS+MS1W ISSUE RECOVERY MESSAGE
  1734. CWM PRSA,TW
  1735. LDD P1
  1736. NJN PRS3 IF NOT CM RECOVERY
  1737. STM RMSB
  1738. RJM LCM CHECK FIELD LENGTH
  1739. RJM CRE CHECK RECOVERY
  1740. PRS3 LDN DFPP
  1741. CRD CM
  1742. LDD CM SET FWA OF DAYFILE POINTERS
  1743. SHN 14
  1744. ADD CM+1
  1745. CRD CM
  1746. LDD CM SET ADDRESS OF DAYFILE RECOVERY SELECTIONS
  1747. RAM RMSC-1
  1748. LPN 37
  1749. SHN 14
  1750. ADD CM+1
  1751. STM RMSC
  1752. CRM RMSF,ON READ DAYFILE RECOVERY SELECTIONS
  1753. RJM CUR CHECK FOR UEM RECOVERY REQUIRED
  1754. LDK MMFL CHECK MMF STATUS WORD
  1755. CRD CN
  1756. LDD CN+1 GET LINK DEVICE EST ORDINAL
  1757. LPC 777
  1758. STM RLDD
  1759. NJN PRS5 IF NOT STAND ALONE SYSTEM
  1760. PRS4 LDC DSCP*200+MS1W STORE RECOVERY MESSAGE
  1761. CWM PRSF,TW
  1762. LJM RMS1 EXIT TO MAIN ROUTINE
  1763.  
  1764. PRS5 STD T5
  1765. STM UMTB
  1766. SFA EST READ LINK DEVICE EST ENTRY TO (FN - FN+4)
  1767. ADK EQDE
  1768. CRD FN
  1769. LDD IR+3 CHECK FOR INITIALIZE ERROR FROM *CPUMTR*
  1770. STM ECLT
  1771. SHN 21-13
  1772. MJN PRS6 IF NO ERROR
  1773. LDM PRSB-1,IR+3 DISPLAY ERROR CONDITION
  1774. LJM HNG
  1775.  
  1776. PRS6 LDD CN+3 SET MACHINE MASK
  1777. STM CADA
  1778. RJM LRA LOAD REFERENCE ADDRESS
  1779. ADD T5
  1780. CRD RD
  1781. LDD RE ASSIGN SYSTEM STATUS TO LINK DEVICE
  1782. LPC 5520
  1783. LMC 2000
  1784. STD RE
  1785. RJM LRA LOAD REFERENCE ADDRESS
  1786. ADD T5 RESTORE LINK DEVICE INFORMATION
  1787. CWD RD
  1788. LDD FN+4 SET LINK DEVICE MST POINTER
  1789. STM LDMP
  1790. LDK DSCL CHECK PRESET REQUESTED
  1791. CRD CM
  1792. LDD CM+3
  1793. STM RLDA
  1794. ZJN PRS6.1 IF *PRESET* NOT SELECTED
  1795. ISTORE RLDE,(UJN RLD1)
  1796. PRS6.1 LDD CM+4
  1797. STM RLDC
  1798. LDD P1
  1799. NJN PRS6.2 IF NOT CM RECOVERY
  1800. ISTORE RLDF,(UJN RLDX)
  1801. ISTORE UMTC,(UJN UMTX)
  1802. UJN PRS8 STORE RECOVERY MESSAGE
  1803.  
  1804. PRS6.2 LDD RS
  1805. NJN PRS7 IF RECOVERY SELECTED
  1806. LDC 4000 SET DAT INTERLOCKED
  1807. STD CN+2
  1808. LDC MMFL STORE MMF STATUS WORD
  1809. CWD CN
  1810. PRS7 SBN 1 DELAY
  1811. NJN PRS7
  1812. LDC CPAS+MS1W+1 STORE *WAITING* MESSAGE
  1813. CWM PRSC,ON
  1814. ADN MS2W-MS1W-2
  1815. CWM PRSD,TR
  1816. LDN DATI GET FLAG REGISTER INTERLOCK
  1817. RJM IFR
  1818. NJN PRS7 IF DAT BUSY
  1819. PRS8 LJM PRS4 STORE RECOVERY MESSAGE
  1820.  
  1821. PRSA DATA C*RECOVERY,*
  1822.  
  1823. PRSB CON ERM1
  1824. CON ERM2
  1825. CON ERM3
  1826. CON ERM4
  1827. CON ERM5
  1828. CON ERM6
  1829.  
  1830. ERM1 DATA C*EXTENDED MEMORY LABEL TRACK NOT FOUND.*
  1831. ERM2 DATA C*MID UNDEFINED IN EXTENDED MEMORY.*
  1832. ERM3 DATA C*MID CURRENTLY ACTIVE.*
  1833. ERM4 DATA C*MAXIMUM NUMBER MIDS ACTIVE.*
  1834. ERM5 DATA C*EXTENDED MEMORY READ/WRITE PARITY ERRORS.*
  1835. ERM6 DATA C*PRESET NOT ALLOWED.*
  1836.  
  1837. PRSC DATA C*WAITING*
  1838. PRSD DATA C*MMF DEADSTART IN PROGRESS.*
  1839. PRSE DATA C*SPINNING UP DRIVES.*
  1840. PRSF DATA C*RECOVERING*
  1841. CRE SPACE 4,10
  1842. ** CRE - CHECK RECOVERY.
  1843. *
  1844. * EXIT TO *PPR* TO CALL *1CK* IF ONLY TO CHECKPOINT.
  1845. *
  1846. * USES T1 - T6, CM - CM+4.
  1847. * MACROS SFA.
  1848.  
  1849.  
  1850. CRE7 LDN 7 SET CHECKPOINT OF NON-BUFFERED DEVICES
  1851. STM CREB+2
  1852. CRE8 LDN NCPL CALL *1CK* TO SYSTEM CP
  1853. CRD CM
  1854. AOD CM+1
  1855. RAM CREB+1
  1856. LDD IA
  1857. CWM CREB,ON
  1858. EXECUTE 1CK,=
  1859. LJM PPR EXIT TO PP RESIDENT
  1860.  
  1861. CRE SUBR ENTRY/EXIT
  1862. LDD IR+3
  1863. SHN 21-13
  1864. MJN CRE2 IF LABEL TRACK SPECIFICATION
  1865. SHN 13-21
  1866. LPN 7
  1867. ZJN CRE1 IF NO MMF PRESET ERROR
  1868. LMN 2
  1869. NJN CREX IF NOT *RECOVERY DS PREVENTED THIS MID.*
  1870. CRE1 LDD IR+3
  1871. SHN 21-12
  1872. MJN CRE7 IF CHECKPOINT NON-BUFFERED DEVICES
  1873. CRE2 LDC BIOL
  1874. CRD CM
  1875. LDD CM+1
  1876. SHN 14
  1877. LMD CM+2
  1878. NJN CRE2.1 IF BUFFERED I/O PRESENT
  1879. LDD IR+3
  1880. SHN 21-11
  1881. MJP CRE8 IF CHECKPOINT ALL DEVICES
  1882. UJN CREX RETURN
  1883.  
  1884. CRE2.1 ADN PUTP
  1885. CRD T1
  1886. LDD T1+3 CLEAR FLAGS
  1887. LPN 77
  1888. STD T1+3
  1889. LDC CPAS+MS2W ENTER MESSAGE
  1890. CWM CREA,TR
  1891. LDN ZERL REQUEST FLUSH OF ALL WRITE BUFFERS
  1892. CRD CM
  1893. LDC BMFW*100+1
  1894. STD CM+4
  1895. MONITOR BFMM
  1896. CRE3 LDD T1 SET NUMBER OF ENTRIES
  1897. ADN 1
  1898. STD T6
  1899. CRE4 SOD T6
  1900. ZJN CRE5 IF ALL ENTRIES CHECKED
  1901. SHN PUTLS CHECK *PUT* FOR OUTSTANDING REQUESTS
  1902. ADD T1+4
  1903. SHN 6
  1904. ADD T1+3
  1905. SHN 14
  1906. ADK UNCT
  1907. CRD CM
  1908. LDD CM+3
  1909. ZJN CRE4 IF NO REQUESTS OUTSTANDING
  1910. SFA EST,CM+1
  1911. ADK EQDE
  1912. CRD CM
  1913. LDD CM
  1914. LPN 3
  1915. LMN 3
  1916. ZJN CRE4 IF DEVICE IS DOWN
  1917. UJP CRE3 WAIT FOR FLUSH TO COMPLETE
  1918.  
  1919. CRE5 STD CM CLEAR MESSAGE
  1920. LDC CPAS+MS2W
  1921. CWD CM
  1922. LDD IR+3
  1923. SHN 21-13
  1924. MJN CRE6 IF LABEL TRACK SPECIFICATION
  1925. SHN 21-11-21+13
  1926. PJN CRE6 IF NO CHECKPOINT ABORT
  1927. LJM CRE8 CHECKPOINT ALL DEVICES AND ABORT
  1928.  
  1929. CRE6 LJM CREX RETURN
  1930.  
  1931. CREA DATA C*FLUSHING BUFFERED DEVICES.*
  1932. CREB VFD 24/3L1CK,12/6,24/0
  1933. CUR SPACE 4,10
  1934. ** CUR - CHECK FOR UEM RECOVERY REQUIRED.
  1935. *
  1936. * ENTRY (RS) = RECOVERY STATUS.
  1937. *
  1938. * USES CM - CM+4.
  1939. *
  1940. * MACROS SFA.
  1941.  
  1942.  
  1943. CUR SUBR ENTRY/EXIT
  1944. LDD RS
  1945. LPN FLMK
  1946. LMN FLTB
  1947. NJN CURX IF NOT LEVEL 1 OR 2 RECOVERY
  1948. LDN ESTP SEARCH FOR UEM EQUIPMENT
  1949. CRD T3
  1950. LDN NOPE-1
  1951. STD T5
  1952. CUR1 AOD T5
  1953. LMD T6
  1954. ZJN CURX IF NO UEM EQUIPMENT
  1955. SFA EST,T5
  1956. ADK EQDE
  1957. CRD CM
  1958. LDD CM
  1959. SHN 21-13
  1960. PJN CUR1 IF NOT MASS STORAGE
  1961. LDD CM+4
  1962. SHN 3
  1963. ADK DILL
  1964. CRD CM
  1965. LDD CM+3 CHECK MEMORY TYPE
  1966. SHN -6
  1967. LPN 7
  1968. LMN 4
  1969. NJN CUR1 IF NOT UEM
  1970. LDD T5
  1971. STM RMSE
  1972. AOM REMA ENABLE *4DK* CALL
  1973. UJP CURX RETURN
  1974. IET SPACE 4,10
  1975. ** IET - INITIALIZE EQUIPMENT TABLE.
  1976. *
  1977. * ENTRY (CA) = CM ADDRESS OF MST TABLE.
  1978. *
  1979. * EXIT (RC) = 0.
  1980. * (P2) = 0 IF ALL ISD CONFIGURATION.
  1981. * (CA) = LWA OF MST TABLE IN CM.
  1982. * DEVICE RECOVERY INFORMATION IN CM INITIATED.
  1983. *
  1984. * USES T5, UC, CM - CM+4, FN - FN+4, FS - FS+4, RD - RD+4.
  1985. *
  1986. * CALLS LRA.
  1987. *
  1988. * MACROS SFA.
  1989.  
  1990.  
  1991. IET5 LDN ZERL CLEAR RECOVERY TABLE ENTRY
  1992. CRD RD
  1993. IET6 RJM LRA LOAD REFERENCE ADDRESS
  1994. ADD T5
  1995. CWD RD
  1996. AOD T5 ADVANCE EST ORDINAL
  1997. LMD LO
  1998. NJN IET1 IF NOT END OF MASS STORAGE DEVICES
  1999. STD RC
  2000.  
  2001. IET SUBR ENTRY/EXIT
  2002. LDN 0 SET ISD CONFIGURATION FLAG
  2003. STD P2
  2004. LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  2005. STD T5
  2006. IET1 SFA EST,T5 READ EST ENTRY
  2007. ADK EQDE
  2008. CRD FN
  2009. LDD FN CHECK EST ENTRY
  2010. LPC 7500 PRESET RECOVERY TABLE
  2011. STD RE
  2012. SHN 21-13
  2013. PJN IET5 IF NOT MASS STORAGE ENTRY
  2014. LDD CA SET ADDRESS OF MST FOR FIRST UNIT
  2015. STD AL
  2016. LDD FN+4 READ *STLL*
  2017. SHN 3
  2018. ADN STLL
  2019. CRD FS
  2020. ADN DDLL-STLL READ *DDLL*
  2021. CRD CM
  2022. LDD CM SET ORIGINAL UNIT COUNT
  2023. SHN -3
  2024. LPN 7
  2025. STD UC
  2026. LDD FN+3 CHECK FOR ISD DEVICE
  2027. LMC 2RDE
  2028. ZJN IET2 IF EXTENDED MEMORY
  2029. LMN 2RDD&2RDE
  2030. ZJN IET2 IF ISD
  2031. LMN 2RDG&2RDD
  2032. ZJN IET2 IF ISD
  2033. STD P2 SET NON-ISD FLAG
  2034. IET2 LDN MSTL ADVANCE INDEX IN MST TABLE
  2035. RAD CA
  2036. SOD UC
  2037. PJN IET2 IF MORE UNITS THIS EQUIPMENT
  2038. LDD FS ASSIGN SYSTEM STATUS TO ASR DEVICE
  2039. LPN MRASD
  2040. SHN 12-RASD+RASD/12D*12D
  2041. RAD RE
  2042. LDD FS
  2043. LPC MLIAL
  2044. ZJN IET4 IF FULL INITIALIZE NOT SPECIFIED
  2045. LDN 20 SET INITIALIZE FLAG
  2046. RAD RE
  2047. AOM RMSA ADVANCE INITIALIZATION COUNT
  2048. IET3 LJM IET6 STORE RECOVERY INFORMATION
  2049.  
  2050. IET4 LDD FN
  2051. SHN 21-10
  2052. PJN IET3 IF NON-REMOVABLE DEVICE
  2053. LDD RS
  2054. LPN FLMK
  2055. LMN FLTB
  2056. NJN IET3 IF FILES NOT RECOVERED FROM MASS STORAGE
  2057. LJM IET5 DEFER RECOVERY TO *CMS*
  2058. LCM SPACE 4,10
  2059. ** LCM - LOCATE CM FOR RECOVERY.
  2060. *
  2061. * ENTRY (A) = 0 IF RECHECKING FIELD LENGTH.
  2062. * (CA+1) = MEMORY REQUIRED.
  2063. *
  2064. * EXIT (LRAB) = RA OF FREE AREA.
  2065. * (CN - CN+3) = PARAMETERS FROM *CMA*.
  2066. *
  2067. * CALLS CMA.
  2068.  
  2069.  
  2070. LCM SUBR ENTRY/EXIT
  2071. ZJN LCM1 IF RECHECKING FIELD LENGTH
  2072. LDN ZERL
  2073. CRD CN
  2074. LDN CN FIND LARGEST FREE AREA
  2075. RJM CMA
  2076. LDD CN+1 SAVE RA OF AREA
  2077. STM LRAB
  2078. STD TA
  2079. LDD CN
  2080. RAM LRAB-1
  2081. LCM1 LDD CN+2
  2082. NJN LCMX IF SUFFICIENT FL
  2083. LDD CA+1
  2084. ADN 77
  2085. SHN -6
  2086. SBD CN+3
  2087. MJN LCMX IF SUFFICIENT MEMORY AVAILABLE
  2088. ZJN LCMX IF SUFFICIENT MEMORY AVAILABLE
  2089. LDC LCMA * INSUFFICIENT MEMORY FOR CM RECOVERY.*
  2090. LJM HNG PROCESS ERROR
  2091.  
  2092.  
  2093. LCMA DATA C* INSUFFICIENT MEMORY FOR CM RECOVERY.*
  2094. SPACE 4,10
  2095. * COMMON DECKS.
  2096.  
  2097.  
  2098. *CALL COMPCMA
  2099. *CALL COMPSUD
  2100.  
  2101.  
  2102. OVL0 BSS 0 *0SD* LOAD ADDRESS
  2103. ERRNG BFMS-OVL0-ZSDL *0SD* OVERFLOW
  2104.  
  2105. QUAL
  2106. TTL MSM/1RF - RECOVER PRESERVED FILES.
  2107. TITLE
  2108. QUAL RPF
  2109. IDENT 1RF,PPFW
  2110. *COMMENT MSM - RECOVER PRESERVED FILES.
  2111. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  2112. QUAL 1RF
  2113. RPF SPACE 4,15
  2114. *** *1RF* IS CALLED BY *REC* TO RECOVER PRESERVED
  2115. * FILES ON A MASS STORAGE DEVICE. WHEN *1RF* HAS FINISHED
  2116. * WITH A DEVICE, IT INDICATES TO *REC* THAT IT IS COMPLETE.
  2117. * *REC* TELLS IT EITHER TO PROCESS ANOTHER DEVICE OR DROP.
  2118. RPF SPACE 4,15
  2119. *** ENTRY CONDITIONS.
  2120. *
  2121. * (IR+2) = EST ORDINAL.
  2122. * (IR+3) = CP NUMBER AT WHICH TO DISPLAY MESSAGES.
  2123. * (IR+4) = RECOVERY STATUS.
  2124. *
  2125. * WHEN *1RF* COMPLETES, IT SETS (IR+2) TO 0. *REC* EITHER
  2126. * REPLIES WITH ANOTHER EST ORDINAL OR 4000 WHICH INDICATES
  2127. * THAT *1RF* SHOULD DROP.
  2128. RPF SPACE 4,10
  2129. ** ROUTINES CALLED.
  2130. *
  2131. * 4DA - RECOVER PRESERVED FILES.
  2132. RPF SPACE 4,10
  2133. ORG PPFW
  2134.  
  2135. RPF BSS 0 ENTRY
  2136. LDD IR+3 SET *IQFT* BUFFER ADDRESS
  2137. SHN 6
  2138. STD CR
  2139. SHN 7-6 SET MESSAGE CONTROL POINT
  2140. STD CF
  2141. * LDD IR+4 SET RECOVERY STATUS
  2142. * STD RS
  2143. LDD RS
  2144. NJN RPF0 IF RECOVERY DEADSTART
  2145. LDC DSCP+ENRS MOVE TO DEADSTART CONTROL POINT
  2146. STD CM+1
  2147. MONITOR CCAM
  2148. RPF0 LDN 10
  2149. STD T1
  2150. LDD CF SAVE CONTROL POINT MESSAGES
  2151. ADK MS1W
  2152. CRM RPFC,T1
  2153.  
  2154. * NOTE - *DSD* DOES NOT DISPLAY CONTROL POINT MESSAGES ON THE
  2155. * B-DISPLAY UNLESS THERE IS A NON-ZERO EJT ORDINAL PRESENT.
  2156.  
  2157. ADK TFSW-MS1W-10
  2158. CRD CM
  2159. LDD CM SAVE CURRENT EJT ORDINAL
  2160. STM RPFB
  2161. LDN DSEO SET DEADSTART EJT ORDINAL
  2162. STD CM
  2163. LDD CF
  2164. ADK TFSW
  2165. CWD CM
  2166. LDN 2
  2167. STD TW
  2168. EXECUTE 4DA LOAD SYSTEM SECTOR CLEANUP ROUTINES
  2169. LDC LDDI+CF FORCE MESSAGES TO CONTROL POINT *CF*
  2170. STM /RDA/RDAK
  2171. STM /RDA/RDAL
  2172. STM /RDA/CUSA
  2173. LDN 0
  2174. SBN 1 DELAY FOR OTHER *4DA* LOADS TO COMPLETE
  2175. NJN *-1
  2176. RPF2 LDD IR+2 SET EST ORDINAL
  2177. STD T5
  2178. SFA EST FETCH MST POINTER FROM EST
  2179. ADK EQDE
  2180. CRD FN
  2181. LDD FN+4 READ MST STATUS WORD
  2182. SHN 3
  2183. ADN STLL
  2184. CRD CM
  2185. LDD CM EXTRACT FULL INITIALIZE FLAG
  2186. LPC MLIAL
  2187. RJM /RDA/RDA CLEAR PRESERVED FILE INTERLOCKS
  2188. LDN 0
  2189. STD IR+2 INDICATE RECOVERY COMPLETE
  2190. LDD IA
  2191. CWD IR
  2192. RPF3 DELAY WAIT 125 MICROSECONDS
  2193. LDD IA
  2194. CRD IR CHECK FOR REPLY FROM *REC*
  2195. LDD IR+2
  2196. ZJN RPF3 IF NO REPLY YET
  2197. SHN 21-13
  2198. PJN RPF2 IF ANOTHER DEVICE TO PROCESS
  2199. LDN 10
  2200. STD T1
  2201. LDD CF RESTORE CONTROL POINT MESSAGES
  2202. ADN MS1W
  2203. CWM RPFC,T1
  2204. LDD CF
  2205. ADK TFSW
  2206. CRD CM
  2207. LDC 0 RESTORE EJT ORDINAL
  2208. RPFB EQU *-1
  2209. STD CM
  2210. LDD CF
  2211. ADK TFSW
  2212. CWD CM
  2213. RPF4 MONITOR DPPM
  2214. LJM PPR EXIT TO PP RESIDENT
  2215.  
  2216.  
  2217. RPFC BSS 0 CONTROL POINT MESSAGE SAVE AREA
  2218. SPACE 4,10
  2219. SDVR EQU RPFC+10*5
  2220. QUAL
  2221. TTL MSM/4DA - RECOVER PRESERVED FILES.
  2222. TITLE
  2223. IDENT 4DA,/RDA/RDEX
  2224. *COMMENT MSM - RECOVER PRESERVED FILES.
  2225. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  2226. SPACE 4,10
  2227. *** *RDA* PERFORMS SYSTEM SECTOR CLEANUP ON ALL DIRECT
  2228. * ACCESS PERMANENT FILES AS WELL AS BUILDING THE *IQFT*
  2229. * ON LEVEL 0 DEADSTARTS.
  2230. SPACE 4
  2231. *** ENTRY CONDITIONS.
  2232. *
  2233. * (A) = 0, IF DEVICE IS NOT BEING INITIALIZED.
  2234. * (CF) = MESSAGE CONTROL POINT ADDRESS (*1RF* CALL).
  2235. * (CP) = CONTROL POINT ADDRESS (*CMS* CALL).
  2236. * (CR) = RELATIVE ADDRESS OF *IQFT* BUFFER.
  2237. * (FN - FN+4) = EST ENTRY.
  2238. * (RS) = RECOVERY STATUS.
  2239. * (T5) = EST ORDINAL.
  2240. SPACE 4
  2241. *** OPERATOR MESSAGES.
  2242. *
  2243. * *EQXXX, ANNNN TYYYY SZZZZ LINKAGE* = LENGTH / LINKAGE ERROR
  2244. * AT TRACK YYYY SECTOR ZZZZ OF PRESERVED FILE ON EST ORDINAL
  2245. * XXX, FIRST TRACK AT NNNN. OPERATOR INTERVENTION IS REQUIRED.
  2246. * IF THE OPERATOR ENTERS *GO*, EOI WILL BE WRITTEN AT THE
  2247. * LOCATION OF THE ERROR AND RECOVERY WILL PROCEED. IF THE
  2248. * OPERATOR ENTERS *PAUSE*, ERROR IDLE STATUS WILL BE SET AND
  2249. * RECOVERY OPERATIONS ON THE DEVICE TERMINATED.
  2250. *
  2251. * *RECOVER EQXXX, ANNNN TMMMM. = RECOVERING PRESERVED FILE ON
  2252. * EST ORDINAL XXX. FIRST TRACK IS NNNN AND TRACK CURRENTLY
  2253. * BEING READ IS MMMM.
  2254. SPACE 4
  2255. *** DAYFILE MESSAGES.
  2256. *
  2257. * *EQXXX, ERROR IDLE SET.* = THIS FOLLOWS THE *PF LENGTH ERROR*
  2258. * OR *QF LENGTH ERROR* MESSAGE IF ERROR IDLE WAS FORCED BY THE
  2259. * SYSTEM OR THE OPERATOR ENTERED *PAUSE*.
  2260. *
  2261. * *EQXXX NNNN DIRECT ACCESS FILE ERRORS.* = COUNT OF ERRORS
  2262. * DETECTED IN DIRECT ACCESS FILES ON EST ORDINAL XXX. THE
  2263. * COUNT SHOULD MATCH THE NUMBER OF ERROR MESSAGES PRODUCED.
  2264. *
  2265. * *EQXXX NNNN DIRECT ACCESS FILES RECOVERED.* = COUNT OF DIRECT
  2266. * FILES RECOVERED ON EST ORDINAL XXX.
  2267. *
  2268. * *EQXXX, FFFFFFF, DD RECOVERED.* = RECOVERY COMPLETE ON EST
  2269. * ORDINAL XXX WITH FAMILY NAME FFFFFFF AND DEVICE NUMBER DD.
  2270. *
  2271. * *EQXXX NNNN PRESERVED FILE ERRORS.* = COUNT OF ERRORS
  2272. * DETECTED WHILE READING SYSTEM SECTORS ON EST ORDINAL XXX.
  2273. *
  2274. * *EQXXX NNNN QUEUED FILE ERRORS.* = COUNT OF QUEUED FILE
  2275. * ERRORS DETECTED ON EST ORDINAL XXX. THE COUNT SHOULD
  2276. * MATCH THE NUMBER OF ERROR MESSAGES PRODUCED.
  2277. *
  2278. * *EQXXX NNNN QUEUED FILES RECOVERED.* = COUNT OF QUEUED
  2279. * FILES RECOVERED ON EST ORDINAL XXX.
  2280. *
  2281. * *EQXXX NNNN QUEUED FILES IGNORED.* = COUNT OF QUEUED FILES
  2282. * NOT WRITTEN TO THE *IQFT* FILE DUE TO LACK OF SPACE.
  2283. *
  2284. * *EQXXX, PF CATALOG SIZE ERROR.* = THE PERMANENT FILE CATALOGS
  2285. * ON EST ORDINAL XXX ARE THE WRONG SIZE FOR THE CURRENT SYSTEM.
  2286. *
  2287. * *EQXXX, PPPPPPP RECOVERED.* = RECOVERY COMPLETE ON EST
  2288. * ORDINAL XXX WITH PACKNAME PPPPPPP.
  2289. *
  2290. * *EQXXX, PRESERVED FILE RECOVERY INITIATED.* = PRESERVED FILE
  2291. * RECOVERY WAS STARTED FOR EST ORDINAL XXX.
  2292. *
  2293. * *EQXXX, TRACK LIMIT ON IQFT.* = NO TRACK AVAILABLE FOR IQFT.
  2294. *
  2295. * *EQXXX PF LENGTH ERROR UINDEX FILENAME* = PERMANENT FILE
  2296. * LENGTH WAS INCORRECT.
  2297. *
  2298. * *EQXXX QF LENGTH ERROR FILENAME* = QUEUED FILE
  2299. * LENGTH WAS INCORRECT.
  2300. SPACE 4
  2301. *** ACCOUNT FILE MESSAGES.
  2302. *
  2303. * *ADDR, XXX, FFFFFFF, DD, LVLL, LVLU.* = EST ORDINAL XXX
  2304. * WITH FAMILY NAME FFFFFFF, DEVICE NUMBER DD, LOWER SECURITY
  2305. * ACCESS LEVEL LVLL AND UPPER SECURITY ACCESS LEVEL LVLU
  2306. * HAS BEEN RECOVERED.
  2307. *
  2308. * *ADPM, XXX, PPPPPPP, UUUUUUU, LVLL, LVLU.* = EST ORDINAL
  2309. * XXX WITH PACKNAME PPPPPPP, LOWER SECURITY ACCESS LEVEL
  2310. * LVLL AND UPPER SECURITY ACCESS LEVEL LVLU HAS BEEN MOUNTED.
  2311. * IF PRESENT, UUUUUUU INDICATES THAT THE PACK WAS A PRIVATE
  2312. * PACK BELONGING TO THAT USER.
  2313. SPACE 4
  2314. *** ERROR LOG MESSAGES.
  2315. *
  2316. * *EQXXX, ANNNN PF RECOVERY ERROR.* = SYSTEM SECTOR ERROR OR
  2317. * UNIDENTIFIED FILE TYPE WHILE PROCESSING A PRESERVED FILE ON
  2318. * TRACK NNNN OF EST ORDINAL XXX.
  2319. *
  2320. * *EQXXX, ANNNN TYYYY SZZZZ LINKAGE ERROR.* = LENGTH / LINKAGE
  2321. * ERROR AT TRACK YYYY SECTOR ZZZZ OF A PRESERVED FILE WHOSE BOI
  2322. * IS ON TRACK NNNN OF EST ORDINAL XXX.
  2323. *
  2324. * *EQXXX, ERROR IDLE SET.* = THIS FOLLOWS THE *PF LENGTH ERROR*
  2325. * OR *QF LENGTH ERROR* MESSAGE IF ERROR IDLE WAS FORCED BY THE
  2326. * SYSTEM OR THE OPERATOR ENTERED *PAUSE*.
  2327. *
  2328. * *EQXXX, PF CATALOG SIZE ERROR.* = THE PERMANENT FILE CATALOGS
  2329. * ON EST ORDINAL XXX ARE THE WRONG SIZE FOR THE CURRENT SYSTEM.
  2330. *
  2331. * *EQXXX, TYYYY SZZZZ LINKAGE ERROR.* = THIS MESSAGE FOLLOWS
  2332. * THE *PF LENGTH ERROR* AND *QF LENGTH ERROR* MESSAGES, GIVING
  2333. * ADDITIONAL DETAILS ON THE LOCATION OF THE ERROR - EST ORDINAL
  2334. * XXX, TRACK YYYY, SECTOR ZZZZ.
  2335. *
  2336. * *LI LENGTH ERROR FILENAME* = LIBRARY FILE LENGTH
  2337. * WAS INCORRECT. THE *LINKAGE ERROR.* MESSAGE FOLLOWS THIS
  2338. * MESSAGE.
  2339. *
  2340. * *PF LENGTH ERROR UINDEX FILENAME* = PERMANENT FILE LENGTH
  2341. * WAS INCORRECT. THE *LINKAGE ERROR.* MESSAGE FOLLOWS THIS
  2342. * MESSAGE.
  2343. *
  2344. * *QF LENGTH ERROR FILENAME* = QUEUED FILE LENGTH WAS
  2345. * INCORRECT. THE *LINKAGE ERROR.* MESSAGE FOLLOWS THIS
  2346. * MESSAGE.
  2347. SPACE 4
  2348. O4DA MAX /CMS/SDVR+5,/1RF/SDVR+5
  2349.  
  2350. QUAL RDA
  2351. SPACE 4
  2352. *CALL COMSJIO
  2353. *CALL COMSPFM
  2354. *CALL COMSSSE
  2355. SPACE 4,10
  2356. ** ASSEMBLY CONSTANTS.
  2357.  
  2358.  
  2359. EQV$ EQU 1 DO NOT VERIFY EQUIPMENT IN *COMPRSS*
  2360. IRA$ EQU 1 RANDOM ACCESS PROCESSORS INITIALIZED
  2361. NSDF EQU 5 NUMBER OF SPECIAL DAFS
  2362. SBUF EQU BFMS-502 SCRATCH BUFFER FOR EOI SECTOR
  2363. SPACE 4
  2364. DATB EQU O4DA-5 BUFFER FOR DEVICE ACCESS TABLE ENTRY
  2365.  
  2366. ORG O4DA
  2367.  
  2368. RDE SUBR ENTRY/EXIT
  2369. TITLE MAIN LOOP.
  2370. RDA SPACE 4
  2371. ** RDA - MAIN ROUTINE.
  2372.  
  2373.  
  2374. RDA SUBR PRS ENTRY/EXIT
  2375. ERRNZ RDE+1-RDAX CODE DEPENDS ON VALUE
  2376. STD T3 SAVE INITIALIZE FLAG
  2377. ZJN RDA1 IF DEVICE NOT BEING INITIALIZED
  2378. UJMF RDAX
  2379. RDA1 LDD T5 CONVERT UPPER TWO DIGITS OF EST ORDINAL
  2380. SHN -3
  2381. RJM C2D
  2382. STM RDAD
  2383. STM IQFB+1
  2384. STM IDMC+1
  2385. STM IRMB+1
  2386. STM CPSB+1
  2387. STM RDAI+1
  2388. STM RDAJ+1
  2389. STM PFEE+1
  2390. LDD T5 CONVERT LOWER DIGIT OF EST ORDINAL
  2391. LPN 7
  2392. SHN 6
  2393. ADC 2R0,
  2394. STM CPSB+2
  2395. STM IQFB+2
  2396. STM IRMB+2
  2397. STM RDAD+1
  2398. STM RDAI+2
  2399. STM RDAJ+2
  2400. LMN 1R &1R, REMOVE COMMA FROM MESSAGE
  2401. STM IDMC+2
  2402. STM PFEE+2
  2403. LDD T3
  2404. NJN RDA1.1 IF DEVICE BEING INITIALIZED
  2405. LDC RDAJ+NMSN *PRESERVED FILE RECOVERY INITIATED*
  2406. RJM DFM ISSUE DAYFILE MESSAGE
  2407. RDA1.1 LDD FN+4 READ TDGL WORD OF MST
  2408. SHN 3
  2409. ADK TDGL
  2410. CRD CN
  2411. ADN MDGL-TDGL GET MASS STORAGE DRIVER WORD
  2412. CRD T7
  2413. SBN MDGL-ALGL GET DAT TRACK ADDRESS
  2414. CRD CM
  2415. LDD CM+4 SAVE DAT TRACK ADDRESS
  2416. STM SPFD
  2417. LDD T7 SAVE 16-WORD PFC FLAG
  2418. SHN -11
  2419. LPN 1
  2420. STD T1
  2421. STM CPSA
  2422. LDM RDAH,T1 ENABLE / DISABLE DAF PROCESSING
  2423. STM RDAG
  2424. RJM PTA PRESET TRT ADDRESS
  2425. RJM GDE GET *DAT* ENTRY
  2426. SETMS IO,DF
  2427. * LDN 0
  2428. STD CN+3 INITIALIZE TRACK SEARCH
  2429. RDAA UJN RDA2 CONTINUE
  2430. * PSN (LEVEL-0 RECOVERY)
  2431. RJM IQF INITIALIZE THE *IQFT* FILE
  2432. STM CQFA
  2433. ZJN RDA2 IF TRACK NOT ASSIGNED
  2434. AOM CQFC FLAG *IQFT* INITIALIZED
  2435. STM TQFA
  2436.  
  2437. * LOOP FOR EACH TRACK ON DEVICE.
  2438.  
  2439. RDA2 RJM SPF SEARCH FOR PRESERVED FILE
  2440. NJP RDA5 IF PRESERVED FILE FOUND
  2441.  
  2442. * COMPLETE PROCESSING FOR THIS DEVICE.
  2443.  
  2444. LDD RS
  2445. NJN RDA3 IF RECOVERY DEADSTART
  2446. RJM TQF TERMINATE *IQFT*
  2447. RDA3 ENDMS RELEASE CHANNEL
  2448. RJM IDM ISSUE DAYFILE MESSAGES
  2449. RJM WDE UPDATE DAT ENTRY
  2450. LDC 0 SET ERROR IDLE IF NON-ZERO
  2451. RDAM EQU *-1
  2452. ZJN RDA4 IF NO ERROR IDLE TO BE SET
  2453. LDC RDAI+NMSN SEND ERROR IDLE MESSAGES
  2454. RJM DFM
  2455. LDC RDAI+ERLN
  2456. RJM DFM
  2457. SMSTF GDEI SET DEVICE ERROR IDLE STATUS
  2458. LDN STEI
  2459. RJM SES
  2460. CMSTF LCKP CLEAR POSSIBLE CHECKPOINT REQUEST
  2461. RDA4 LDN 0 CLEAR CONSOLE MESSAGE
  2462. STD CM
  2463. RDAK LDD CP
  2464. * LDD CF (*1RF* CALL)
  2465. ADN MS2W
  2466. CWD CM
  2467. RJM CPS CHECK PFC SIZE
  2468. RJM CUS CLEAR UNAVAILABLE STATUS
  2469. LJM RDAX EXIT
  2470.  
  2471. * CONVERT TRACK NUMBER AND DISPLAY MESSAGE.
  2472.  
  2473. RDA5 RJM C2D
  2474. STM RDAE+1
  2475. LDD T6
  2476. SHN -6
  2477. RJM C2D
  2478. STM RDAE
  2479. RDAL LDD CP
  2480. * LDD CF (*1RF* CALL)
  2481. ADN MS2W
  2482. CWM RDAC,TR
  2483. SBN 1 SAVE ADDRESS FOR *RDC* MESSAGE
  2484. STM RDCA
  2485. SETMS POSITION
  2486. * LDN 0
  2487. STD CN CLEAR FILE TYPE
  2488. RJM RSS READ SYSTEM SECTOR
  2489. NJN RDA6 IF ERROR
  2490.  
  2491. * DETERMINE TYPE OF PRESERVED FILE.
  2492.  
  2493. RJM SFT SET FILE TYPE
  2494. NJN RDA6 IF UNKNOWN FILE TYPE
  2495. LDD RS
  2496. ZJN RDA5.1 IF NOT RECOVERY DEADSTART
  2497. RJM VFR VERIFY FILE FOR RECOVERY DEADSTART
  2498. UJN RDA7 PROCESS NEXT TRACK
  2499.  
  2500. RDA5.1 LDD CN CHECK FILE TYPE
  2501. NJN RDA5.2 IF NOT QUEUED FILE
  2502. RJM CQF CREATE QUEUED FILE ENTRY
  2503. UJN RDA7 PROCESS NEXT TRACK
  2504.  
  2505. RDA5.2 LMN PMFT CHECK FILE TYPE
  2506. ZJN RDA9 IF DIRECT ACCESS PERMANENT FILE
  2507. LMN FAFT&PMFT
  2508. ZJN RDA9 IF FAST ATTACH FILE
  2509. LJM RDA10 PROCESS SPECIAL PRESERVED FILE
  2510.  
  2511. RDA6 RJM IEM ISSUE ERROR LOG MESSAGE
  2512. RDA7 LJM RDA2 PROCESS NEXT TRACK
  2513.  
  2514. * RELEASE FILE.
  2515.  
  2516. RDA8 ENDMS
  2517. LDD T5 DROP TRACK CHAIN FOR FILE
  2518. LMC 4000 ADD CHECKPOINT REQUEST
  2519. STD CM+1
  2520. LDD T6
  2521. STD CM+2
  2522. MONITOR DTKM
  2523. UJN RDA7
  2524.  
  2525. * PROCESS PERMANENT FILES.
  2526.  
  2527. RDA9 LDM CASS CHECK FILE ACCESS
  2528. * UJN RDA7 (8-WORD PFC DEVICE)
  2529. RDAG EQU RDA9
  2530. STD CN+1 SET SYSTEM SECTOR REWRITE STATUS
  2531. SHN 21-5
  2532. MJN RDA8 IF PURGE FLAG SET
  2533. SHN 5-4
  2534. MJN RDA11 IF FILE CAN BE SHORTENED
  2535. LDM UCSS+1
  2536. ADM UCSS+2
  2537. ADM UCSS+3
  2538. ADM UCSS+4
  2539. ADM FISS
  2540. RAD CN+1 SET SYSTEM SECTOR REWRITE STATUS
  2541. RDA10 RJM VFL VERIFY FILE LENGTH
  2542. ZJN RDA12 IF NO LENGTH ERROR
  2543. RDA11 RJM RDC READ DISK CHAIN
  2544. ZJN RDA12 IF NO LENGTH/LINKAGE/DISK ERROR
  2545. RJM CFL CHANGE FILE LENGTH
  2546. LDD CN
  2547. LMN LIFT
  2548. ZJN RDA15 IF LIBRARY TYPE FILE
  2549. UJN RDA13 ISSUE FILE ERROR MESSAGE
  2550.  
  2551. RDA12 LDD FS+1
  2552. LMM SBUF+FTEI
  2553. ZJN RDA14 IF NO BOI/EOI ERROR
  2554. RDA13 RJM PFE ISSUE FILE ERROR MESSAGE
  2555. RDA14 RJM CTU CLEAR USER COUNTS
  2556. RDA15 ENDMS
  2557. LJM RDA2 LOOP FOR NEXT TRACK
  2558.  
  2559.  
  2560. RDAC DATA H*RECOVER EQ*
  2561. RDAD DATA 6HXXX, A
  2562. RDAE DATA 4HNNNN
  2563. RDAF CON 0
  2564. DATA C*F RECOVERY ERROR.*
  2565.  
  2566. RDAH BSS 0 TABLE OF INSTRUCTIONS TO PLUG
  2567. LOC RDAG
  2568. UJN RDA7
  2569. LOC *O
  2570. CON LDMI
  2571.  
  2572. RDAI DATA C*EQXXX, ERROR IDLE SET.*
  2573.  
  2574. RDAJ DATA C*EQXXX, PRESERVED FILE RECOVERY INITIATED.*
  2575. TITLE SUBROUTINES.
  2576. CFL SPACE 4,15
  2577. ** CFL - CHANGE FILE LENGTH.
  2578. *
  2579. * ENTRY (T6) = TRACK FOR EOI.
  2580. * (T7) = SECTOR FOR EOI.
  2581. * (CN) = FILE TYPE.
  2582. * (FS+4) = 0, IF EOI REWRITE REQUIRED.
  2583. * (BFMS) LOADED WITH SYSTEM SECTOR.
  2584. *
  2585. * EXIT EOI IN TRT CHANGED.
  2586. * EOI REWRITTEN, IF (FS+4) = 0.
  2587. * ERROR FLAG SET IN SYSTEM SECTOR CATALOG IMAGE.
  2588. * (CN+1) NONZERO (SYSTEM SECTOR REWRITE FLAG).
  2589. *
  2590. * USES CM - CM+4.
  2591. *
  2592. * CALLS CLF, WEI.
  2593.  
  2594.  
  2595. CFL SUBR ENTRY/EXIT
  2596. RJM CLF CHANGE LENGTH OF FILE IN TRT
  2597. LDD FS+4
  2598. NJN CFL1 IF NO REWRITE OF EOI REQUIRED
  2599. LDD MA COPY FNT/FST FROM SYSTEM SECTOR TO EOI
  2600. CWM FNSS,TW
  2601. SBN 2
  2602. CRM SBUF+FNEI,TW
  2603. RJM WEI WRITE EOI
  2604. CFL1 LDD CN CHECK FILE TYPE
  2605. LMN LIFT
  2606. ZJN CFLX IF LIBRARY FILE
  2607. LDM CTSS+FCEC SET ERROR FLAG IN SYSTEM SECTOR
  2608. LPC 7077
  2609. LMC 400
  2610. STM CTSS+FCEC
  2611. AOD CN+1 SET SYSTEM SECTOR REWRITE STATUS
  2612. UJN CFLX RETURN
  2613. CPS SPACE 4,10
  2614. ** CPS - CHECK PFC SIZE.
  2615. *
  2616. * ENTRY (T5) = EST ORDINAL.
  2617. *
  2618. * CALLS DFM, SES.
  2619. *
  2620. * MACROS CMSTF, SMSTF.
  2621.  
  2622.  
  2623. CPS SUBR ENTRY/EXIT
  2624. LDC *
  2625. * LDC 0 (8-WORD PFC DEVICE)
  2626. CPSA EQU *-1
  2627. NJN CPSX IF NOT 8-WORD PFC DEVICE
  2628. LDC CPSB ISSUE DAYFILE MESSAGE
  2629. RJM DFM
  2630. LDC CPSB+ERLN ISSUE MESSAGE TO ERROR LOG
  2631. RJM DFM
  2632. SMSTF GDEI SET GLOBAL ERROR IDLE FLAG
  2633. LDN STCS SET PF CATALOG SIZE ERROR STATUS
  2634. RJM SES
  2635. CMSTF LCKP CLEAR POSSIBLE CHECKPOINT
  2636. UJN CPSX RETURN
  2637.  
  2638. CPSB DATA C*EQXXX, PF CATALOG SIZE ERROR.*
  2639. CQF SPACE 4,20
  2640. ** CQF - CREATE QUEUED FILE ENTRY.
  2641. *
  2642. * CQF CREATES THE ENTRY REPRESENTING A QUEUED FILE IN
  2643. * THE INACTIVE QUEUED FILE LIST.
  2644. *
  2645. * ENTRY (BFMS) = SYSTEM SECTOR.
  2646. * (CQFA) = 0 IF NOT *IQFT* SPACE AVAILABLE.
  2647. *
  2648. * EXIT *IQFT* ENTRY CREATED, IF QUEUE FILE RECOVERED.
  2649. *
  2650. * USES QI, T1, T6, CM - CM+4.
  2651. *
  2652. * CALLS IQF, PFE, RSS, VFL, WEI, WQF, WSR.
  2653. *
  2654. * MACROS FILEREC, SETMS.
  2655.  
  2656.  
  2657. CQF7 AOM PQIC ADVANCE QUEUE FILE IGNORED COUNT
  2658.  
  2659. CQF SUBR ENTRY/EXIT
  2660. LDC 1
  2661. CQFA EQU *-1
  2662. ZJN CQF7 IF NO SPACE FOR/ON *IQFT*
  2663. CQFC LDN 0
  2664. * LDN 1 (QUEUE FILE PROCESSING INITIATED)
  2665. NJN CQF2 IF QUEUE FILE PROCESSING INITIATED
  2666. RJM IQF INITIALIZE *IQFT*
  2667. STM CQFA
  2668. ZJN CQF7 IF TRACK UNAVAILABLE FOR *IQFT*
  2669. LDD FS+1 REREAD THE QUEUE FILE SYSTEM SECTOR
  2670. STD T6
  2671. SETMS POSITION
  2672. * LDN 0 READ SYSTEM SECTOR
  2673. RJM RSS
  2674. AOM CQFC
  2675. STM TQFA
  2676. CQF2 RJM VFL VERIFY FILE LENGTH
  2677. NJN CQF4 IF LENGTH ERROR
  2678. LDM DTSS
  2679. NJN CQF3 IF ENHANCED EOI INDICATED
  2680. LDD MA COPY FNT/FST FROM SYSTEM SECTOR TO EOI
  2681. CWM FNSS,TW
  2682. SBN 2
  2683. CRM SBUF+FNEI,TW
  2684. RJM WEI REWRITE EOI
  2685. UJN CQF5 ADVANCE RECOVERY COUNT
  2686.  
  2687. CQF3 LDD FS+1 VERIFY BOI/EOI
  2688. STD T6
  2689. LMM SBUF+FTEI
  2690. ZJN CQF5 IF VERIFY GOOD
  2691. CQF4 LCN 0 SET LENGTH ERROR
  2692. STM FLSS
  2693. STM FLSS+1
  2694. RJM PFE ISSUE ERROR MESSAGE
  2695. LJM CQF7 IGNORE THIS FILE AND RETURN
  2696.  
  2697. CQF5 AOM PMRC ADVANCE QUEUED FILE RECOVERY COUNT
  2698. LDM FGSS SET INACTIVE QUEUE FILE STATUS
  2699. SCN 2
  2700. STM FGSS
  2701. LDD FS+1 RESET SYSTEM SECTOR ADDRESS
  2702. RJM WSR WRITE SYSTEM SECTOR WITH REWRITE
  2703.  
  2704. * ENTER THIS FILE IN *IQFT* BUFFER IN CM.
  2705.  
  2706. LDM FLSS+1 INSERT FILE LENGTH
  2707. STM CDSS+1
  2708. LDM FLSS
  2709. STM CDSS
  2710. LDD T5 SET EST ORDINAL
  2711. STM IOSS+5*ENTQ
  2712. LDN 10 MAXIMUM QFT ENTRY LENGTH
  2713. STD T1
  2714. LDM RMSS USE THE RESIDENT MACHINE ID FOR RECOVERY
  2715. STM FMSS+4
  2716. LDD RA
  2717. SHN 6
  2718. ADD CR FWA OF IQFT BUFFER
  2719. ADD QI
  2720. CWM IOSS,T1 QFT ENTRY
  2721. CWM CDSS,ON DATE, TIME AND FILE LENGTH IN SECTORS
  2722. CWM FMSS,ON WRITE FAMILY NAME
  2723. CWM FDSS,ON DESTINATION FAMILY NAME
  2724. CWM OASS,ON OWNER USER NAME, USER INDEX
  2725. CWM FOSS,ON OWNER FAMILY NAME
  2726. LDN QFEWL QUEUED FILE ENTRY WORD COUNT
  2727. RAD QI ADVANCE BUFFER POINTER
  2728. SHN -6 WORDS/PRU (0-77)
  2729. ZJN CQF6 IF NOT FULL SECTOR
  2730. RJM WQF WRITE QUEUED FILE SECTOR
  2731. CQF6 LJM CQFX RETURN
  2732.  
  2733.  
  2734. * QUEUED FILE RECOVERY TABLE. (RDAT)
  2735.  
  2736. LIST G
  2737. FILEREC
  2738. LIST *
  2739. CON PMFT+100
  2740. CON FAFT+100
  2741. CON LIFT+100
  2742. RDATBL EQU *-RDAT
  2743. CUS SPACE 4,15
  2744. ** CUS - CLEAR UNAVAILABLE STATUS.
  2745. *
  2746. * ENTRY (T5) = EST ORDINAL.
  2747. * (FN - FN+4) = EST ENTRY.
  2748. *
  2749. * USES T1, T3, T6, T7, CM - CM+4.
  2750. *
  2751. * CALLS CDC, RDS, SDA, SMI, WDS.
  2752. *
  2753. * MACROS DELAY, ENDMS, PAUSE, SETMS.
  2754.  
  2755.  
  2756. CUS6 LDD RS CHECK RECOVERY STATUS
  2757. LPN FLMK
  2758. LMN FLCM
  2759. ZJN CUSX IF CM RECOVERY
  2760. RJM SDA SET DEVICE AVAILABLE
  2761.  
  2762. CUS SUBR ENTRY/EXIT
  2763. LDD FN
  2764. LPN 20
  2765. ZJN CUS6 IF NOT INDEPENDENT SHARED DEVICE
  2766. SETMS IO,(DE,DF,NS)
  2767. LDN FN+1 PRESET ERROR RETRY STATUS
  2768. STD T3
  2769. LDD FN+4 SET LABEL TRACK
  2770. SHN 3
  2771. ADN ALGL
  2772. CRD CM
  2773. LDD CM+1
  2774. STD T6
  2775. LDN 0
  2776. STD T7
  2777. CUS1 LDC BFMS READ LABEL FOR *DIT*
  2778. RJM RDS
  2779. MJN CUS3 IF READ ERROR
  2780. LDM N4SS+5*SDGL+4
  2781. LPN 77
  2782. SHN -1
  2783. ZJN CUS5 IF SOFTWARE INTERLOCK NOT SET
  2784. CUSA LDD CP
  2785. * LDD CF (*1RF* CALL)
  2786. ADN MS2W
  2787. CWM CUSB,TR *WAITING FOR INTERLOCK.*
  2788. CUS2 ENDMS
  2789. DELAY
  2790. PAUSE
  2791. LDD CM+1 CHECK ERROR FLAG
  2792. LMN ORET
  2793. NJN CUS1 IF NOT OPERATOR OVERRIDE
  2794. CUS3 AOD T3
  2795. LMN FN+3
  2796. ZJN CUS4 IF BOTH CHANNELS TRIED
  2797. LDI T3
  2798. NJN CUS2 IF ANOTHER CHANNEL PRESENT
  2799. CUS4 ENDMS
  2800. LJM RDAX EXIT
  2801.  
  2802. CUS5 RJM SMI CALCULATE *DIT* ENTRY ADDRESS
  2803. STD T1
  2804. SHN 2
  2805. ADC //DISS-5+3
  2806. RAD T1
  2807. LDI T1 CLEAR DIT INTERLOCK
  2808. SCN 1
  2809. STI T1
  2810. RJM CDC COMPUTE LABEL CHECKSUM
  2811. STM CKSS
  2812. LDC BFMS+WLSF REWRITE LABEL
  2813. RJM WDS
  2814. MJN CUS4 IF WRITE ERROR
  2815. ENDMS
  2816. LJM CUS6 SET DEVICE AVAILABLE
  2817.  
  2818.  
  2819. CUSB DATA C*WAITING FOR INTERLOCK.*
  2820. IEM SPACE 4,15
  2821. ** IEM - ISSUE ERROR LOG MESSAGE.
  2822. *
  2823. * ENTRY (T4) = CHANNEL NUMBER.
  2824. * (CN) = FILE TYPE.
  2825. *
  2826. * EXIT ERROR COUNT (PMPC) ADVANCED.
  2827. *
  2828. * CALLS DFM.
  2829. *
  2830. * MACROS ENDMS.
  2831.  
  2832.  
  2833. IEM SUBR ENTRY/EXIT
  2834. LDD CN
  2835. LMN SYFT
  2836. ZJN IEMX IF SYSTEM FILE
  2837. AOM PMPC ADVANCE ERROR COUNT
  2838. LDC 2R P
  2839. STM RDAF
  2840. ENDMS RELEASE CHANNEL
  2841. LDC ERLN+RDAD-1 ISSUE MESSAGE TO ERROR LOG
  2842. RJM DFM
  2843. * LDN 0 CLEAR END OF CP MESSAGE
  2844. STM RDAF
  2845. UJN IEMX RETURN
  2846. IQF SPACE 4,15
  2847. ** IQF - INITIALIZE *IQFT*.
  2848. *
  2849. * ENTRY (T5) = EST ORDINAL.
  2850. *
  2851. * EXIT (A) = 0 IF TRACK UNAVAILABLE FOR *IQFT*.
  2852. * (QF) = (QT) = FIRST TRACK OF *IQFT*.
  2853. * (QS) = FIRST SECTOR OF *IQFT*.
  2854. * (QI) = 0.
  2855. *
  2856. * USES T3, CM - CM+4.
  2857. *
  2858. * CALLS DFM, WSS.
  2859. *
  2860. * MACROS ENDMS, MONITOR, SETMS.
  2861.  
  2862.  
  2863. IQF2 LDC IQFB *EQXXX, TRACK LIMIT ON IQFT.*
  2864. RJM DFM
  2865. * LDN 0
  2866.  
  2867. IQF SUBR ENTRY/EXIT
  2868. ENDMS
  2869. LDN ZERL
  2870. CRD CM
  2871. LDD T5 REQUEST *IQFT* TRACK
  2872. STD CM+1
  2873. MONITOR RTCM
  2874. LDD CM+4
  2875. ZJN IQF2 IF NO TRACK AVAILABLE
  2876. STD T6
  2877. STD QF
  2878. STD QT
  2879. LDC 500
  2880. STD T3
  2881. IQF1 LDN 0 CLEAR SYSTEM SECTOR BUFFER
  2882. STM BFMS+1,T3
  2883. SOD T3
  2884. NJN IQF1 IF NOT START OF BUFFER
  2885. STD QI
  2886. LDD RA
  2887. SHN 6
  2888. ADD CR FWA OF IQFT BUFFER
  2889. CWM BFMS,HN CLEAR CM BUFFER
  2890. LDD MA MOVE FILE NAME TO BUFFER
  2891. CWM IQFA,ON
  2892. SBN 1
  2893. CRM FNSS,ON
  2894. SETMS POSITION
  2895. RJM WSS WRITE *IQFT* SYSTEM SECTOR
  2896. LDN FSMS SET FIRST *IQFT* SECTOR
  2897. STD QS
  2898. LJM IQFX RETURN
  2899.  
  2900. IQFA VFD 42/0LQUEUES,6/1,6/SYFT,6/0
  2901.  
  2902. IQFB DATA C*EQXXX, TRACK LIMIT ON IQFT.*
  2903. PTA SPACE 4,10
  2904. ** PTA - PRESET FIRST WORD ADDRESS OF TRT.
  2905. *
  2906. * ENTRY (FN - FN+4) = EST ENTRY OF DEVICE.
  2907. *
  2908. * USES CM - CM+4.
  2909.  
  2910.  
  2911. PTA SUBR ENTRY/EXIT
  2912. LDD FN+4 GET FWA OF TRT
  2913. SHN 3
  2914. ADN TRLL
  2915. CRD CM
  2916. LDD CM+3 SET FWA OF TRT
  2917. LPN 77
  2918. LMC ADCI
  2919. STM SPFA-1
  2920. STM GDEC-1
  2921. LPN 77
  2922. SHN 14
  2923. LMD CM+4
  2924. STM SPFA
  2925. STM GDEC
  2926. SBD TH
  2927. STM SEIA+1
  2928. STM SNTA+1
  2929. SHN -14
  2930. LMC ADCI
  2931. STM SEIA
  2932. STM SNTA
  2933. UJP PTAX RETURN
  2934. SFT SPACE 4,10
  2935. ** SFT - SET FILE TYPE.
  2936. *
  2937. * ENTRY (BFMS) = SYSTEM SECTOR.
  2938. *
  2939. * EXIT (A) = 0, IF VALID FILE TYPE.
  2940. * (CN) = 0, IF QUEUE FILE.
  2941. * (CN) = FILE TYPE, IF NOT QUEUE FILE.
  2942. *
  2943. * USES T2.
  2944.  
  2945.  
  2946. SFT2 LDM RDAT,T2
  2947. SHN -6
  2948. NJN SFT3 IF NOT QUEUED FILE
  2949. STD CN
  2950. SFT3 LDN 0 RETURN SUCCESSFUL STATUS
  2951.  
  2952. SFT SUBR ENTRY/EXIT
  2953. LDN RDATBL-1 SET TABLE LENGTH
  2954. STD T2
  2955. LDM FNSS+4 SET FILE TYPE
  2956. SHN -6
  2957. STD CN
  2958. SFT1 LDD CN CHECK PRESERVED FILE TYPE
  2959. LMM RDAT,T2
  2960. LPN 77
  2961. ZJN SFT2 IF FILE TYPE MATCH
  2962. SOD T2
  2963. PJN SFT1 IF NOT END OF TABLE
  2964. LDN 1
  2965. UJN SFTX RETURN ERROR STATUS
  2966. SPF SPACE 4,10
  2967. ** SPF - SEARCH FOR PRESERVED FILE.
  2968. *
  2969. * ENTRY (CN+2) = TRT LENGTH.
  2970. * (CN+3) = CURRENT TRACK - 4000.
  2971. *
  2972. * EXIT (A) = (T6) = (FS+1) = FIRST TRACK OF FILE.
  2973. * = 0 IF END OF TRT (ALL FILES CHECKED).
  2974. * (FS+4) NONZERO.
  2975. *
  2976. * USES T1, T2, CM - CM+4.
  2977.  
  2978.  
  2979. SPF SUBR ENTRY/EXIT
  2980. LDN 1 ENSURE (FS+4) NONZERO
  2981. STD FS+4
  2982. AOD CN+3
  2983. SHN 21-1
  2984. STD T2 SET TRT WORD INDEX
  2985. LMD CN+2
  2986. ZJN SPFX IF END OF TRT
  2987. SHN 1-21
  2988. STD T1 SET BYTE INDEX
  2989. SPF1 LDD T2
  2990. ADC 0 READ TRT WORD
  2991. SPFA EQU *-1
  2992. CRD CM
  2993. LDD CM+4 CHECK FOR PRESERVED FILES
  2994. SHN -10
  2995. STM SPFB
  2996. NJN SPF5 IF 1 TO 4 PRESERVED FILES THIS WORD
  2997. SPF2 STD T1
  2998. AOD T2 ADVANCE TRT WORD INDEX
  2999. LMD CN+2
  3000. NJN SPF1 IF NOT END OF TRT
  3001. * LDN 0
  3002. UJN SPFX RETURN
  3003.  
  3004. SPF4 AOD T1 ADVANCE BYTE INDEX
  3005. LPN 3
  3006. ZJN SPF2 IF END OF TRT WORD
  3007. SPF5 LDM SPFC,T1
  3008. LPC 0 CHECK FIRST TRACK OF PRESERVED FILE
  3009. SPFB EQU *-1
  3010. ZJN SPF4 IF FILE NOT PRESERVED
  3011. LDD T2
  3012. SHN 2 CALCULATE TRT POSITION
  3013. LMD T1
  3014. STD CN+3
  3015. LMC 4000 SET TRACK NUMBER
  3016. STD T6
  3017. LMC **
  3018. SPFD EQU *-1
  3019. ZJN SPF4 IF *DAT* TRACK
  3020. LDD T6
  3021. STD FS+1
  3022. LJM SPFX RETURN
  3023.  
  3024. SPFC CON 10,4,2,1 PRESERVED FILE TRT FLAGS
  3025. TQF SPACE 4,15
  3026. ** TQF - TERMINATE *IQFT*.
  3027. *
  3028. * ENTRY (T5) = EST ORDINAL.
  3029. * (T4) = CHANNEL.
  3030. * (QF) = FIRST TRACK OF *IQFT*.
  3031. * (QT) = CURRENT *IQFT* TRACK.
  3032. * (QS) = CURRENT *IQFT* SECTOR.
  3033. *
  3034. * EXIT EOI SECTOR WRITTEN ON *IQFT*.
  3035. *
  3036. * USES T1, T6, T7, CM - CM+4.
  3037. *
  3038. * CALLS WEI, WQF.
  3039. *
  3040. * MACROS MONITOR, SMSTF.
  3041.  
  3042.  
  3043. TQF2 LDD QF RELEASE *IQFT* CHAIN
  3044. STD CM+2
  3045. LDD T5
  3046. STD CM+1
  3047. MONITOR DTKM
  3048. TQF3 AOM CQFA RESET QUEUE FILE PROCESSING ENABLED
  3049.  
  3050. TQF SUBR ENTRY/EXIT
  3051. TQFA LDN 0
  3052. * LDN 1 (QUEUE FILE PROCESSING INITIATED)
  3053. ZJN TQF3 IF NO QUEUE FILE PROCESSING
  3054. SOM TQFA
  3055. STM CQFC
  3056. LDD QT
  3057. ZJN TQF2 IF RELEASING *IQFT*
  3058. RJM WQF WRITE LAST *IQFT* SECTOR
  3059. LDC 500
  3060. STD T1
  3061. TQF1 LDN 0 CLEAR EOI SECTOR BUFFER
  3062. STM SBUF+1,T1
  3063. SOD T1
  3064. NJN TQF1 LOOP TO START OF BUFFER
  3065. LDD MA MOVE FILE NAME TO BUFFER
  3066. CWM IQFA,ON
  3067. SBN 1
  3068. CRM SBUF+FNEI,ON
  3069. LDD T5 SETUP EOI/SYSTEM SECTOR BUFFER
  3070. STM SBUF+FSEI
  3071. LDD QF
  3072. STM SBUF+FTEI
  3073. LDD QT SET CURRENT *IQFT* TRACK AND SECTOR
  3074. STD T6
  3075. LDD QS
  3076. STD T7
  3077. RJM WEI WRITE EOI SECTOR
  3078. ENDMS
  3079. LDD T5 SET EOI IN TRT
  3080. STD CM+1
  3081. LDD QT
  3082. LPC 3777
  3083. STD CM+2
  3084. LDD QS
  3085. STD CM+3
  3086. MONITOR DTKM
  3087. LDN SPFS SET PRESERVED FILE STATUS ON *IQFT*
  3088. STD CM+3
  3089. LDD QF
  3090. STD CM+2
  3091. LDD T5
  3092. STD CM+1
  3093. MONITOR STBM
  3094. LDN SIQS SET *IQFT* INDICATOR IN MST
  3095. STD CM+3
  3096. LDD QF
  3097. STD CM+2
  3098. LDD T5
  3099. STD CM+1
  3100. MONITOR STBM
  3101. SMSTF LCKP SET CHECKPOINT REQUEST
  3102. LJM TQF3 RETURN
  3103. VFR SPACE 4,10
  3104. ** VFR - VERIFY FILE FOR RECOVERY DEADSTART.
  3105. *
  3106. * ENTRY SYSTEM SECTOR IN *BFMS*.
  3107. *
  3108. * EXIT (RDAM) NONZERO IF ERROR IN TRT CHAIN.
  3109. *
  3110. * CALLS PFE, VTC.
  3111. *
  3112. * MACROS ENDMS.
  3113.  
  3114.  
  3115. VFR SUBR ENTRY/EXIT
  3116. ENDMS
  3117. LDD CN
  3118. NJN VFR1 IF NOT QUEUED FILE
  3119. LDM FLSS
  3120. SHN 21-13
  3121. MJN VFRX IF LENGTH ERROR STATUS ALREADY SET
  3122. VFR1 RJM VTC VERIFY TRACK CHAIN
  3123. ZJN VFRX IF NO TRT CHAIN ERROR
  3124. RJM PFE ISSUE FILE ERROR MESSAGE
  3125. AOM RDAM FORCE SETTING OF ERROR IDLE STATUS
  3126. UJN VFRX RETURN
  3127. VTC SPACE 4,10
  3128. ** VTC - VERIFY TRACK CHAIN.
  3129. *
  3130. * ENTRY (T5) = EST ORDINAL.
  3131. * (T6) = FIRST TRACK OF PRESERVED FILE.
  3132. *
  3133. * EXIT (A) = 0 IF TRACK CHAIN GOOD / VALIDATION DISABLED.
  3134. *
  3135. * USES CM - CM+4.
  3136.  
  3137.  
  3138. VTC SUBR ENTRY/EXIT
  3139. VTCA LDN 0
  3140. ZJN VTCX IF MASS STORAGE VALIDATION DISABLED
  3141. LDD T5
  3142. STD CM+1
  3143. LDD T6 SET UP MONITOR CALL
  3144. STD CM+2
  3145. LDN VTCS REQUEST TRACK CHAIN VALIDATION
  3146. STD CM+3
  3147. MONITOR VMSM
  3148. LDD CM+1
  3149. UJN VTCX RETURN
  3150. WQF SPACE 4,15
  3151. ** WQF - WRITE QUEUED FILE SECTOR.
  3152. *
  3153. * WQF WRITES THE SECTOR OF QUEUED FILE ENTRIES.
  3154. *
  3155. * ENTRY (QT) = INACTIVE QUEUES FILE TRACK.
  3156. * (QS) = INACTIVE QUEUES FILE SECTOR.
  3157. * (QI) = INACTIVE QUEUED FILE INDEX.
  3158. *
  3159. * USES T3, T6, T7, QS, CM - CM+4, CSSA.
  3160. *
  3161. * CALLS DFM, WDS.
  3162. *
  3163. * MACROS ENDMS, MONITOR, SETMS.
  3164.  
  3165.  
  3166. WQF SUBR ENTRY/EXIT
  3167. LDD QT SET *IQFT* TRACK
  3168. STD T6
  3169. LDD QS SET *IQFT* SECTOR
  3170. STD T7
  3171. ADN 1 SET SECTOR LINKAGE
  3172. STM SBUF
  3173. STD QS SET NEXT *IQFT* SECTOR
  3174. LMM SLM
  3175. NJN WQF1 IF NOT LAST SECTOR
  3176. ENDMS
  3177. * LDN 0
  3178. STD CM+3 RESET SECTOR
  3179. STD CM+4
  3180. STD QS
  3181. LDD T5
  3182. STD CM+1
  3183. LDD T6
  3184. STD CM+2
  3185. MONITOR RTCM REQUEST TRACK
  3186. LDD CM+4
  3187. STM SBUF DISK LINKAGE
  3188. ZJN WQF4 IF TRACK NOT ASSIGNED
  3189. STD QT
  3190. WQF1 SETMS POSITION
  3191. LDD QI SET WORD COUNT IN LINKAGE
  3192. STM SBUF+1
  3193. ZJN WQF2 IF EMPTY SECTOR
  3194. LDD RA
  3195. SHN 6
  3196. ADD CR FWA OF IQFT BUFFER
  3197. CRM SBUF+2,QI READ PRU BACK
  3198. WQF2 LDC SBUF+WLSF
  3199. RJM WDS WRITE SECTOR
  3200. LDN 0
  3201. STD QI RESET QUEUE INDEX
  3202. WQF3 LJM WQFX RETURN
  3203.  
  3204. * NO SPACE AVAILABLE LEAVE PRU FOR EOI SECTOR.
  3205.  
  3206. WQF4 STM CQFA DISABLE QUEUE FILE PROCESSING
  3207. LDD T7 RESET SECTOR
  3208. STD QS
  3209. LDC IQFB *EQXXX, TRACK LIMIT ON IQFT.*
  3210. RJM DFM
  3211. UJN WQF3 RETURN
  3212. IDM SPACE 4,20
  3213. ** IDM - ISSUE DAYFILE MESSAGES FOR FILES PROCESSED.
  3214. *
  3215. * ENTRY (PMPC) = PRESERVED FILE ERROR COUNT.
  3216. * (PMEC) = FILE ERROR COUNT.
  3217. * (PMFC) = FILE RECOVERY COUNT.
  3218. * (PMRC) = QUEUED FILE RECOVERY COUNT.
  3219. * (PMQC) = QUEUED FILE ERROR COUNT.
  3220. * (PQIC) = QUEUED FILES IGNORED COUNT.
  3221. * (FN - FN+4) = EST ENTRY.
  3222. * (T5) = EQUIPMENT.
  3223. *
  3224. * EXIT APPROPRIATE MESSAGES ISSUED TO DAYFILE.
  3225. *
  3226. * USES T1, T7, CM - CM+4.
  3227. *
  3228. * CALLS ACS, DFM, IRM.
  3229.  
  3230.  
  3231. IDM3 RJM IRM ISSUE RECOVERY MESSAGES
  3232.  
  3233. IDM SUBR ENTRY/EXIT
  3234. LDC IDMA-1 SET BIASED MESSAGE ADDRESS
  3235. STD T7
  3236.  
  3237. * ISSUE FILES PROCESSED.
  3238.  
  3239. IDM1 AOD T7 ADVANCE ADDRESS
  3240. LMC IDMB
  3241. ZJN IDM3 IF END OF MESSAGES
  3242. LDI T7
  3243. ZJN IDM1 IF NO COUNT
  3244. LDN ZERL CLEAR COUNT
  3245. CRD CM
  3246.  
  3247. * SET COUNT TO COUNT*1000.
  3248.  
  3249. IDM2 LDC 1000D
  3250. RAD CM+4
  3251. SHN -14
  3252. RAD CM+3
  3253. SOI T7 DECREMENT COUNT
  3254. NJN IDM2 IF MORE TO CONVERT
  3255. LDC IDMD
  3256. STD T1
  3257. LDD MA CONVERT COUNT
  3258. CWD CM
  3259. MONITOR RDCM
  3260. STI T1
  3261. LDD MA
  3262. CRD CM
  3263. LDD CM+1
  3264. STM IDMC+3
  3265. LDD CM+2
  3266. STM IDMC+4
  3267. LDM IDMB-IDMA,T7 ADD DESCRIPTION TO MESSAGE
  3268. RJM ACS
  3269. LDC IDMC ISSUE MESSAGE
  3270. RJM DFM
  3271. LJM IDM1 LOOP FOR NEXT MESSAGE
  3272.  
  3273.  
  3274. IDMA BSS 0
  3275. PMFC CON 0 FILE RECOVERY COUNT
  3276. PMPC CON 0 PRESERVED FILE ERROR COUNT
  3277. PMEC CON 0 PERMANENT FILE ERROR COUNT
  3278. PMRC CON 0 QUEUED FILE RECOVERY COUNT
  3279. PMQC CON 0 QUEUED FILE ERROR COUNT
  3280. PQIC CON 0 QUEUED FILES IGNORED COUNT
  3281.  
  3282. IDMB CON =C* DIRECT ACCESS FILES RECOVERED.*
  3283. CON =C* PRESERVED FILE ERRORS.*
  3284. CON =C* DIRECT ACCESS FILE ERRORS.*
  3285. CON =C* QUEUED FILES RECOVERED.*
  3286. CON =C* QUEUED FILE ERRORS.*
  3287. CON =C* QUEUED FILES IGNORED.*
  3288.  
  3289. IDMC DATA H*EQXXX NNNN*
  3290. IDMD BSS 21
  3291. IRM SPACE 4,10
  3292. ** IRM - ISSUE RECOVERY MESSAGES.
  3293. *
  3294. * ENTRY (FN - FN+4) = EST ENTRY.
  3295. *
  3296. * EXIT MESSAGES ISSUED TO ACCOUNTING AND SYSTEM DAYFILES.
  3297. * EVENT SET FOR AUXILIARY DEVICE.
  3298. *
  3299. * USES T1, T3, T4, T6, T7, CM - CM+4, CN - CN+4.
  3300. *
  3301. * CALLS ACS, C2D, DFM.
  3302.  
  3303.  
  3304. IRM SUBR ENTRY/EXIT
  3305. LDD FN+4 GET FAMILY/PACKNAME
  3306. SHN 3
  3307. ADN PFGL
  3308. CRD CM
  3309. ADN PUGL-PFGL READ USER NAME
  3310. CRD CN
  3311. LDC 2REQ
  3312. STM IRMB
  3313. LDC IRMB+3 SET ADDRESS OF ASSEMBLY BUFFER
  3314. STD T1
  3315. LDC 2L RESET BUFFER
  3316. STI T1
  3317. LDD CM+4 SAVE SECURITY ACCESS LEVELS
  3318. SHN -6
  3319. STD T4
  3320. LDN 0 SET *END OF LINE* IN (CM+4)
  3321. STD CM+4
  3322. LDD CM+3 EXTRACT DEVICE NUMBER
  3323. LPN 77
  3324. STD T7
  3325. LMD CM+3 CLEAR DEVICE NUMBER
  3326. STD CM+3
  3327. ADD CM+2 BUILD PACKNAME HASH
  3328. ADD CM+1
  3329. ADD CM
  3330. STD CN+4 SAVE PACKNAME HASH
  3331. LDD CN+3 SET END OF USER NAME
  3332. SCN 77
  3333. STD CN+3
  3334. LDN CM ADD FAMILY/PACKNAME TO MESSAGE
  3335. RJM ACS
  3336. LDD T7
  3337. ZJN IRM1 IF AUXILIARY DEVICE
  3338. RJM C2D CONVERT DEVICE NUMBER
  3339. STD CM+3
  3340. LDC =C*, * ADD SEPARATOR
  3341. RJM ACS
  3342. LDN CM+3 ADD DEVICE NUMBER TO MESSAGE
  3343. RJM ACS
  3344. LDC 2RPM&2RDR SET ACCOUNT FILE MESSAGE PREFIX
  3345. IRM1 LMC 2RPM
  3346. STM IRMA+1
  3347. LDD T1 SAVE CURRENT END OF ASSEMBLY
  3348. STD T3
  3349. LDI T1
  3350. STD T6
  3351. LDC IRMD ADD * RECOVERED.* TO MESSAGE
  3352. RJM ACS
  3353. LDC IRMB ISSUE SYSTEM DAYFILE MESSAGE
  3354. RJM DFM
  3355. LDD T3 SET START OF NEW ASSEMBLY
  3356. STD T1
  3357. LDD T6
  3358. STI T1
  3359. LDC 2R, REPLACE *EQ* WITH *, *
  3360. STM IRMB
  3361. LDC =C*, * INSERT SEPARATOR
  3362. RJM ACS
  3363. LDD T7
  3364. NJN IRM2 IF PERMANENT FILE DEVICE
  3365. LDN CN ADD USER NAME TO MESSAGE
  3366. RJM ACS
  3367. LDC =C*, * INSERT SEPARATOR
  3368. RJM ACS
  3369. IRM2 LDD T4 GET LOWER SECURITY ACCESS LEVEL
  3370. SHN -3
  3371. SHN 2 CALCULATE INDEX INTO ACCESS TABLE
  3372. ADC TALV INSERT LOWER ACCESS LEVEL
  3373. RJM ACS
  3374. LDC =C*, * INSERT SEPARATOR
  3375. RJM ACS
  3376. LDD T4 GET UPPER ACCESS LEVEL
  3377. LPN 7
  3378. SHN 2 CALCULATE INDEX INTO ACCESS TABLE
  3379. ADC TALV INSERT UPPER ACCESS LEVEL
  3380. RJM ACS
  3381. LDC IRME ADD *.* TO END OF MESSAGE
  3382. RJM ACS
  3383. LDC IRMA+ACFN ISSUE ACCOUNT FILE MESSAGE
  3384. RJM DFM
  3385. LDK SSTL
  3386. CRD CM
  3387. LDD CM+1
  3388. SHN 21-5
  3389. PJN IRM3 IF DISK VALIDATION IS ENABLED
  3390. LDD T7
  3391. NJN IRM3 IF NOT AUXILIARY DEVICE
  3392. STD CM+1 SET EVENT
  3393. LDN VSNE/10000
  3394. STD CM+3
  3395. LDD CN+4 READ PACKNAME HASH
  3396. STD CM+4
  3397. MONITOR EATM
  3398. IRM3 LJM IRMX RETURN
  3399.  
  3400.  
  3401. IRMA DATA 4HADDR
  3402. IRMB DATA H*EQXXX, *
  3403. IRMC BSS 22
  3404.  
  3405. IRMD DATA 10H RECOVERED
  3406. IRME DATA C*.*
  3407. LSN SPACE 4,15
  3408. ** LSN - LIST PACK SERIAL NUMBERS.
  3409. *
  3410. * ENTRY (EQ) = EST ORDINAL.
  3411. * (FN - FN+4) = EST ENTRY FOR EQUIPMENT.
  3412. *
  3413. * EXIT PACK SERIAL NUMBER IDENTIFICATION MESSAGES ISSUED TO
  3414. * THE ERROR LOG FOR ALL UNITS OF THE EQUIPMENT.
  3415. *
  3416. * USES CM+1, T1, T2, CN - CN+4, FS+1 - FS+3.
  3417. *
  3418. * CALLS DFM, SDR, *0PI*.
  3419. *
  3420. * MACROS EXECUTE.
  3421.  
  3422.  
  3423. LSN4 LDN TLSNL-1 CHECK DEVICE TYPE FOR NON-*LDAM* DEVICE
  3424. STD T1
  3425. LSN5 LDD FN+3
  3426. LMM TLSN,T1
  3427. ZJN LSNX IF DEVICE TYPE MATCHES
  3428. SOD T1
  3429. PJN LSN5 IF MORE DEVICE TYPES TO CHECK
  3430. LSN6 LDN LDIF
  3431. RJM /RDA/SDR SET BUFFERED DEVICE REQUEST
  3432.  
  3433. LSN SUBR ENTRY/EXIT
  3434. LDD FN+4
  3435. SHN 3
  3436. ADN DDLL GET LOGICAL UNIT COUNT
  3437. CRD CN
  3438. LDD CN EXTRACT UNIT COUNT
  3439. LPN 7
  3440. STD CN
  3441. STD T2
  3442. LDD FN
  3443. SHN 21-7
  3444. PJN LSN4 IF NOT *LDAM* DEVICE
  3445. LDD FN+1
  3446. SHN 21-5
  3447. MJN LSN6 IF CONCURRENT CHANNEL
  3448. LDD T5
  3449. STM /RDA/SBUF
  3450. EXECUTE 0PI,/RDA/SBUF+1
  3451. STD FS+3 SAVE MAIN PROCESSOR ADDRESS
  3452. LDN 0 SET TO FIRST LOGICAL UNIT
  3453. STD FS+1
  3454. LSN1 LDD FS+1 GET MESSAGE FOR A LOGICAL UNIT
  3455. RJM 0,FS+3
  3456. ZJN LSN2 IF MASS STORAGE ERROR
  3457. STD FS+2 SAVE MESSAGE TABLE ADDRESS
  3458. SHN -14 SET BML MESSAGE LENGTH
  3459. STD CM+1
  3460. LDC BMLN
  3461. ADM 1,FS+2 ADD BML MESSAGE ADDRESS
  3462. RJM DFM
  3463. LDI FS+2 GET ERROR LOG MESSAGE ADDRESS
  3464. LMC ERLN SEND MESSAGE TO ERROR LOG
  3465. RJM DFM
  3466. LSN2 AOD FS+1 ADVANCE LOGICAL UNIT
  3467. SOD CN DECREMENT LOGICAL UNIT COUNT
  3468. PJN LSN1 IF MORE LOGICAL UNITS
  3469. LJM LSNX EXIT
  3470.  
  3471.  
  3472. TLSN BSS 0 NON-*LDAM* DEVICES WITH NO PSN-S TO LIST
  3473. CON 2RDE EXTENDED MEMORY
  3474. CON 2RDP EXTENDED MEMORY/STORNET
  3475. CON 2RDV 819
  3476. CON 2RDW 819
  3477.  
  3478. TLSNL EQU *-TLSN LENGTH OF TABLE
  3479. PFE SPACE 4,15
  3480. ** PFE - PERMANENT FILE ERROR.
  3481. *
  3482. * ENTRY (CN) = FILE TYPE.
  3483. * (BFMS) LOADED WITH SYSTEM SECTOR.
  3484. *
  3485. * EXIT ERROR MESSAGE ISSUED TO ERROR LOG AND SYSTEM DAYFILE.
  3486. * APPROPIATE ERROR COUNT INCREMENTED.
  3487. *
  3488. * USES T1 - T3, CM - CM+4.
  3489. *
  3490. * CALLS ACS, C2D, DFM.
  3491. *
  3492. * MACROS ENDMS.
  3493.  
  3494.  
  3495. PFE SUBR ENTRY/EXIT
  3496. ENDMS
  3497. LDD CN
  3498. NJN PFE1 IF NOT QUEUE FILE
  3499. AOM PMQC ADVANCE QUEUED FILE ERROR COUNT
  3500. LDC 2RQF
  3501. UJN PFE1.1 SET MESSAGE PREFIX
  3502.  
  3503. PFE1 LMN LIFT
  3504. NJN PFE1.2 IF NOT A LIBRARY FILE
  3505. LDC 2RLI
  3506. PFE1.1 STM PFEA SET MESSAGE PREFIX
  3507.  
  3508. * BLANK USER INDEX FOR QUEUED FILE OR LIBRARY FILE.
  3509.  
  3510. LDC 2R BLANK USER INDEX
  3511. STM PFEB
  3512. STM PFEB+1
  3513. STM PFEB+2
  3514. LDD MA
  3515. CWM FNSS,ON
  3516. UJN PFE2 MOVE FILE NAME TO MESSAGE
  3517.  
  3518. * PROCESS PERMANENT FILE ERROR.
  3519.  
  3520. PFE1.2 AOM PMEC ADVANCE ERROR COUNT
  3521. LDM CTSS+FCUI FIRST 2 DIGITS
  3522. RJM C2D
  3523. STM PFEB
  3524. LDM CTSS+FCUI+1 SECOND 2 DIGITS
  3525. SHN -6
  3526. RJM C2D
  3527. STM PFEB+1
  3528. LDM CTSS+FCUI+1 LAST 2 DIGITS
  3529. RJM C2D
  3530. STM PFEB+2
  3531. LDC 2RPF SET FILE TYPE
  3532. STM PFEA
  3533. LDD MA MOVE FILE NAME TO MESSAGE
  3534. CWM CTSS+FCFN,ON
  3535. PFE2 SBN 1
  3536. CRM PFEC,ON
  3537. LDM PFEC+3 CLEAR 8TH CHARACTER
  3538. SCN 77
  3539. STM PFEC+3
  3540. LDC IDMC+3 SET MESSAGE ADDRESSES
  3541. STD T1
  3542. LDC PFED+5
  3543. STD T3
  3544. LDN T7 SET SECTOR ADDRESS
  3545. STD T2
  3546. PFE3 LDI T2 CONVERT DISK ADDRESS OF ERROR
  3547. RJM C2D
  3548. STI T3 STORE IN MESSAGE
  3549. SOD T3
  3550. LDI T2 CONVERT UPPER HALF OF SECTOR/TRACK
  3551. SHN -6
  3552. RJM C2D
  3553. STI T3 STORE IN MESSAGE
  3554. LCN 2 DECREMENT MESSAGE ADDRESS
  3555. RAD T3
  3556. SOD T2 DECREMENT PARAMETER ADDRESS
  3557. LMN T6-1
  3558. NJN PFE3 IF TRACK NOT CONVERTED
  3559. STM PFEC+4 SET END OF MESSAGE I
  3560. STI T1
  3561. LDC RDAD+2 ASSEMBLE FIRST PART OF MESSAGE II
  3562. RJM ACS
  3563. AOD T3 ASSEMBLE END OF MESSAGE II
  3564. RJM ACS
  3565. LDC PFEE+ERLN ISSUE TO ERROR LOG
  3566. RJM DFM
  3567. LDC IDMC+ERLN
  3568. RJM DFM
  3569. LDC PFEE+NMSN ISSUE TO SYSTEM
  3570. RJM DFM
  3571. LJM PFEX RETURN
  3572.  
  3573. PFEE DATA H*EQXXX *
  3574. PFEA DATA H*PF LENGTH ERROR *
  3575. PFEB DATA H*UINDEX *
  3576. PFEC DATA H*FILENAME *
  3577. PFED DATA C* TTTTT SSSSS LINKAGE ERROR.*
  3578. CTU SPACE 4,10
  3579. ** CTU - CLEAR TOTAL USER COUNTS.
  3580. *
  3581. * ENTRY (CN) = FILE TYPE.
  3582. * (FS+1) = FIRST TRACK OF FILE.
  3583. * (CN+1) = SYSTEM SECTOR REWRITE FLAG.
  3584. *
  3585. * USES T1.
  3586. *
  3587. * CALLS WSR.
  3588.  
  3589.  
  3590. CTU2 AOM PMFC ADVANCE DAF RECOVERY COUNT
  3591.  
  3592. CTU SUBR ENTRY/EXIT
  3593. LDD CN+1
  3594. ZJN CTU2 IF NO SYSTEM SECTOR REWRITE
  3595. LDD CN
  3596. LMN LIFT
  3597. ZJN CTU2 IF LIBRARY FILE
  3598. LDC 5*MMPF+5
  3599. STD T1
  3600. CTU1 LDN 0 CLEAR USER COUNT FIELDS
  3601. STM UCSS-1,T1
  3602. SOD T1
  3603. NJN CTU1
  3604. STM CASS CLEAR CURRENT ACCESS MODE
  3605. STM FISS CLEAR FAST ATTACH FLAGS
  3606. LDD FS+1 RESET FIRST TRACK
  3607. RJM WSR WRITE SYSTEM SECTOR WITH REWRITE
  3608. UJN CTU2 ADVANCE DAF RECOVERY COUNT
  3609. GDE SPACE 4,15
  3610. ** GDE - GET DAT ENTRY.
  3611. *
  3612. * ENTRY (FN - FN+4) = EST ENTRY FOR DEVICE.
  3613. * (T3) = 0 IF DEVICE NOT BEING INITIALIZED.
  3614. * (T7) = BYTE 0 OF MDGL WORD.
  3615. * (CN - CN+4) = TDGL WORD OF MST.
  3616. *
  3617. * EXIT (DATB) = SECOND WORD OF DAT ENTRY.
  3618. *
  3619. * USES T1, T2, CM - CM+4.
  3620. *
  3621. * CALLS CPS, CUS, IRM, WDE.
  3622. *
  3623. * MACROS MMTE, MONITOR, UJMF.
  3624.  
  3625.  
  3626. GDE3 LDD CN+2 SET *DIT* OFFSET
  3627. SBN 10-7
  3628. SHN -3
  3629. ADD CN+2
  3630. STD T2
  3631. LDN 0
  3632. STD T1
  3633. GDE4 AOD T1
  3634. LMN MISD
  3635. ZJN GDEX IF ALL ENTRIES CHECKED
  3636. LDD T1
  3637. ADC 0 READ *DIT* ENTRY
  3638. GDEC EQU *-1
  3639. ADD T2
  3640. CRD CM
  3641. LDD CM+4
  3642. ZJN GDE4 IF ENTRY NOT USED
  3643. LMC *
  3644. GDED EQU *-1
  3645. ZJN GDE4 IF THIS MACHINE
  3646. LJM GDE1 ISSUE RECOVERY MESSAGES
  3647.  
  3648. GDE SUBR ENTRY/EXIT
  3649. LDD FN
  3650. SHN 21-4
  3651. MJN GDE3 IF INDEPENDENT SHARED DEVICE
  3652. UJMF GDEX
  3653. LDN 1-1 WORD COUNT FOR *ECSM* REQUEST
  3654. STD CM+1
  3655. LDD T7 SET *DAT* ORDINAL FROM INDEX
  3656. LPC 377
  3657. SHN 1
  3658. ADC 1 ADD DAT TRACK ADDRESS
  3659. GDEA EQU *-1
  3660. STD CM+4
  3661. STM WDEA
  3662. SHN -14
  3663. ADC RECS*1000
  3664. GDEB EQU *-1
  3665. STD CM+3
  3666. STM WDEB
  3667. LDD MA CM ADDRESS = PP MESSAGE BUFFER
  3668. STD CM+2
  3669. MONITOR ECSM
  3670. LDD MA READ *DAT* ENTRY TO PP BUFFER
  3671. CRM DATB,ON
  3672. LDD T3
  3673. NJN GDE2 IF DEVICE BEING INITIALIZED
  3674. LDM DATB+4 CHECK DEVICE STATUS
  3675. LPC -0
  3676. MMTE *-1
  3677. NJN GDE1 IF RECOVERY COMPLETE
  3678. LJM GDEX RETURN
  3679.  
  3680. GDE1 RJM IRM ISSUE RECOVERY MESSAGES
  3681. RJM CPS CHECK PFC SIZE
  3682. RJM CUS
  3683. GDE2 RJM WDE UPDATE DAT ENTRY
  3684. LJM RDAX EXIT OVERLAY
  3685. WDE SPACE 4,10
  3686. ** WDE - WRITE DAT ENTRY TO EXTENDED MEMORY.
  3687. *
  3688. * ENTRY *DATI* INTERLOCK SET.
  3689. * DAT ENTRY IN DATB.
  3690.  
  3691.  
  3692. WDE SUBR ENTRY/EXIT
  3693. UJMF WDEX
  3694. LDM DATB+4 SET MACHINE ACCESS
  3695. LPC -0
  3696. MMTE *-1
  3697. LMC 0
  3698. MMTE *-1
  3699. STM DATB+4
  3700. LDC ** SET DAT ADDRESS
  3701. WDEA EQU *-1
  3702. STD CM+4
  3703. LDC **
  3704. WDEB EQU *-1
  3705. ADD TH
  3706. ERRNZ RECS+1-WECS ADJUST IF *RECS/WECS* VALUES CHANGE
  3707. STD CM+3
  3708. LDD MA SET CM ADDRESS OF ENTRY
  3709. STD CM+2
  3710. CWM DATB,ON
  3711. LDN 1-1 WORD COUNT FOR TRANSFER
  3712. * SHN 6
  3713. STD CM+1
  3714. MONITOR ECSM
  3715. UJN WDEX RETURN
  3716. WSR SPACE 4,15
  3717. ** WSR - WRITE SYSTEM SECTOR WITH REWRITE.
  3718. *
  3719. * ENTRY (A) = FIRST TRACK OF FILE.
  3720. * (T5) = EST ORDINAL.
  3721. * *SETMS IO* PERFORMED.
  3722. *
  3723. * EXIT (T6) = FIRST TRACK OF FILE.
  3724. *
  3725. * USES T6.
  3726. *
  3727. * CALLS WSS.
  3728. *
  3729. * MACROS SETMS.
  3730.  
  3731. WSR SUBR ENTRY/EXIT
  3732. STD T6
  3733. SETMS POSITION
  3734. LDM UERR SAVE ERROR PROCESSING OPTIONS
  3735. STM WSRA+1
  3736. LMD HN SET REWRITE MODE
  3737. ERRNZ EPRW-100 CODE DEPENDS ON VALUE
  3738. STM UERR
  3739. SETMS =,IO,RW
  3740. RJM WSS REWRITE SYSTEM SECTOR
  3741. WSRA LDC 0 RESET ERROR PROCESSING OPTIONS
  3742. STM UERR
  3743. SETMS =,IO
  3744. UJN WSRX RETURN
  3745. SPACE 4,10
  3746. ** COMMON DECKS.
  3747.  
  3748.  
  3749. *CALL COMPACS
  3750. *CALL COMPCLC
  3751. *CALL COMPC2D
  3752. *CALL COMPSDA
  3753. *CALL COMPSDR
  3754. *CALL COMPRSS
  3755. *CALL COMPSEI
  3756. *CALL COMPSES
  3757. *CALL COMPSMI
  3758. *CALL COMPSNT
  3759. *CALL COMPTLB
  3760. *CALL COMPTGB
  3761. VAL$ SET 1
  3762. *CALL COMPVLC
  3763. WEIA EQU SBUF USE *SBUF* FOR EOI BUFFER
  3764. *CALL COMPWEI
  3765. *CALL COMPWSS
  3766. LIST X
  3767. *CALL COMPVEI
  3768. LIST *
  3769.  
  3770.  
  3771. USE LITERALS
  3772.  
  3773. ERRNG SBUF-* CODE OVERFLOWS INTO BUFFER
  3774. TITLE PRESET.
  3775. PRS SPACE 4,10
  3776. ** PRS - PRESET.
  3777.  
  3778.  
  3779. PRS2 STD T2 SET INSTRUCTION ADDRESS
  3780. LDN PSNI REPLACE INSTRUCTION WITH *PSN*
  3781. STI T2
  3782. AOD T1 ADVANCE LIST ADDRESS
  3783. PRS3 LDI T1
  3784. NJN PRS2 LOOP TO END OF LIST
  3785. PRSX LJM RDEX EXIT OVERLAY
  3786.  
  3787. PRS BSS 0 ENTRY
  3788. LDN SSTL READ SYSTEM STATUS
  3789. CRD CM
  3790. LDD CM ENABLE/DISABLE TRACK CHAIN VALIDATION
  3791. LPN 4
  3792. LMN 4
  3793. RAM VTCA
  3794. LDD RS
  3795. NJN PRS0 IF RECOVERY DEADSTART
  3796. LDN PSNI SET LEVEL-0 RECOVERY
  3797. STM RDAA
  3798. PRS0 LDC MMFL READ MMF STATUS WORD
  3799. CRD CM
  3800. LDD CM SET MACHINE ID
  3801. STM GDED
  3802. LDD CM+1
  3803. LPC 777
  3804. ZJN PRSX IF NOT MMF SYSTEM
  3805. SFA EST READ EST ENTRY FOR LINK DEVICE
  3806. ADK EQDE
  3807. CRD CN
  3808. LDD CN+4 SET EXTENDED MEMORY MST POINTER
  3809. STM LDMP
  3810. SHN 3 READ DEVICE ALLOCATION WORD
  3811. ADN ALGL
  3812. CRD CN
  3813. LDD CN+4 SET DAT TRACK
  3814. STD T6
  3815. LDN 0
  3816. STD T7
  3817. LDC T"QUAL" SET LIST ADDRESS
  3818. STD T1
  3819. LDI T1 SET INSTRUCTION ADDRESS
  3820. PRS1 STD T0
  3821. LDD CM+3 SET MACHINE MASK
  3822. LMI T0
  3823. STI T0
  3824. AOD T1 ADVANCE LIST ADDRESS
  3825. LDI T1
  3826. NJN PRS1 LOOP TO END OF TABLE
  3827. RJM CEA
  3828. LDD CM+4 SET ADDRESS IN CODE
  3829. RAM GDEA
  3830. LDD CM+3
  3831. RAM GDEB
  3832. LDC LRDA ENABLE MMF RECOVERY
  3833. STD T1
  3834. LJM PRS3
  3835. SPACE 4,10
  3836. ** COMMON DECKS USED BY PRESET.
  3837.  
  3838.  
  3839. *CALL COMPCEA
  3840.  
  3841. * LIST OF *4DA* INSTRUCTIONS MODIFIED FOR MMF RECOVERY.
  3842.  
  3843. LRDA BSS 0
  3844. LRDA HERE
  3845. ERRZR LRDA-* TABLE EMPTY - REMOVE PRESET CODE
  3846. CON 0 TERMINATE LIST
  3847.  
  3848. * LIST OF INSTRUCTIONS TO BE PRESET WITH MACHINE MASK.
  3849.  
  3850. T"QUAL" BSS 0
  3851. T"QUAL" HERE
  3852. ERRZR T"QUAL"-* TABLE EMPTY - REMOVE PRESET CODE
  3853. CON 0 TERMINATE LIST
  3854.  
  3855. QUAL
  3856. SPACE 4,10
  3857. OVERFLOW O4DA,EPFW CHECK FOR OVERFLOW
  3858. TTL MSM/4DB - DEVICE RECOVERY ROUTINES.
  3859. TITLE
  3860. IDENT 4DB,RDBX
  3861. *COMMENT MSM - DEVICE RECOVERY ROUTINES.
  3862. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  3863. SPACE 4
  3864. *** *4DB* CONTAINS ROUTINES FOR READING LABELS
  3865. * AND COMMON SUBROUTINES REQUIRED FOR TRT RECOVERY.
  3866. SPACE 4,10
  3867. *** OPERATOR MESSAGES.
  3868. *
  3869. * *EQXXX, DEVICE ACCESS ERROR.* = DEADSTART MESSAGE
  3870. * INDICATING THAT THE DEVICE ACCESS LEVEL LIMITS IN THE
  3871. * DEVICE LABEL OF A NON-REMOVABLE DEVICE ARE NOT WITHIN
  3872. * THE EQUIPMENT ACCESS LEVEL LIMITS FROM THE DEVICE EST
  3873. * ORDINAL FOR EQUIPMENT XXX.
  3874. *
  3875. * *EQXXX, SECURED DEVICE.* = DEVICE ACCESS LEVEL LIMITS
  3876. * IN THE DEVICE LABEL ON AN UNSECURED SYSTEM ARE NOT
  3877. * WITHIN THE EQUIPMENT ACCESS LEVEL LIMITS FROM THE
  3878. * EST FOR EST ORDINAL XXX.
  3879. SPACE 4,10
  3880. *** ERRLOG MESSAGES.
  3881. *
  3882. * *EQXXX, SECURED DEVICE.* = DEVICE ACCESS LEVEL LIMITS
  3883. * IN THE DEVICE LABEL ON AN UNSECURED SYSTEM ARE NOT
  3884. * WITHIN THE EQUIPMENT ACCESS LEVEL LIMITS FROM THE
  3885. * EST FOR EST ORDINAL XXX.
  3886. *
  3887. * EQXXX, SECURED DEVICE RECOVERED.* = DEVICE ACCESS LEVEL
  3888. * LIMITS IN THE DEVICE LABEL ON AN UNSECURED SYSTEM WERE
  3889. * NOT WITHIN THE EQUIPMENT ACCESS LEVEL LIMITS FROM THE
  3890. * EST FOR EST ORDINAL XXX, BUT THE OPERATOR ENTERED
  3891. * *GO,CMS.* TO RECOVER THE DEVICE.
  3892. SPACE 4,10
  3893. ** MACRO DEFINITIONS.
  3894. SPACE 4,10
  3895. ** TBLM = GENERATE TABLE OF ALTERNATE LABEL SECTORS.
  3896. *
  3897. * TBLM EQ
  3898. * EQ = MASS STORAGE EQUIPMENT MNEMONIC.
  3899.  
  3900.  
  3901. PURGMAC TBLM
  3902.  
  3903. TBLM MACRO EQ
  3904. CON 2R_EQ,LC_EQ
  3905. ENDM
  3906. SPACE 4
  3907. ** INTERNAL TABLES AND BUFFERS.
  3908.  
  3909.  
  3910. .1 MAX /CMS/PRS,/RMS/PRS BUFFER FOR *DAT* ENTRY
  3911. DATB EQU .1
  3912.  
  3913. ORDB EQU DATB+12-4 *4DB* OVERLAY ORIGIN
  3914. ORDK EQU ORDB *4DK* OVERLAY ORIGIN
  3915. SPACE 4
  3916. ORG ORDB
  3917.  
  3918. RDB SUBR ENTRY/EXIT
  3919. LJM PRS
  3920.  
  3921. MMFP CON 0 MMF PRESENT FLAG
  3922. SDIF CON 0 SHARED DEVICE INTERLOCK FLAG
  3923. MRL TITLE MAIN RECOVERY LOOP.
  3924. ** MRL - MAIN RECOVERY LOOP.
  3925. *
  3926. * ENTRY (A) = PROCESSOR ADDRESS.
  3927. *
  3928. * EXIT TO SELECTED PROCESSOR.
  3929. * (EQ) = (T5) = EST ORDINAL.
  3930. * (FN - FN+4) = EST ENTRY.
  3931. *
  3932. * USES T5, EQ, FN - FN+4.
  3933. *
  3934. * CALLS LRA, /RMS/SEM.
  3935. *
  3936. * MACROS SFA.
  3937.  
  3938.  
  3939. MRL1 LDC 0 EQUIPMENT FOR SPECIAL PROCESSING
  3940. MRLC EQU *-1
  3941. ZJN MRL2 IF NO SPECIAL EQUIPMENT CHECK
  3942. LMD EQ
  3943. MRLD ZJN MRL3 IF NOT TO PROCESS THIS EQUIPMENT
  3944. * NJN MRL3 IF ONLY PROCESSING THIS EQUIPMENT
  3945. MRL2 RJM LRA LOAD REFERENCE ADDRESS
  3946. ADD EQ
  3947. CRD RD
  3948. LDD RE
  3949. SHN 0-13
  3950. ZJN MRL3 IF NOT MASS STORAGE OR BEING RECOVERED
  3951. MRLB RJM /RMS/SEM SET EQUIPMENT MESSAGE
  3952. * UJN *+2 (*CMS* CALL)
  3953. SFA EST,EQ READ EST ENTRY
  3954. ADK EQDE
  3955. CRD FN
  3956. LDD RE CHECK EST ENTRY
  3957. RJM *
  3958. MRLA EQU *-1
  3959. MJN MRL3 IF REWRITE NOT REQUIRED
  3960. RJM LRA LOAD REFERENCE ADDRESS
  3961. ADD EQ REWRITE RECOVERY TABLES
  3962. CWD RD
  3963. MRL3 AOD EQ ADVANCE EQUIPMENT INDEX
  3964. MRL4 STD T5
  3965. LMD LO
  3966. NJN MRL1 IF NOT END OF MASS STORAGE DEVICES
  3967.  
  3968. MRL SUBR ENTRY/EXIT
  3969. STM MRLA SET PROCESSOR ADDRESS
  3970. LDN NOPE INITIALIZE EST ORDINAL FOR SEARCH
  3971. STD EQ
  3972. UJN MRL4 ENTER LOOP
  3973. TITLE COMMON DECKS.
  3974. ** COMMON DECKS.
  3975.  
  3976.  
  3977. CEA$ EQU 0 ASSEMBLE *CEI* IN PRESET
  3978. *CALL COMPCEA
  3979. QUAL CLC
  3980. *CALL COMPCLC
  3981. QUAL
  3982. CDC EQU /CLC/CDC
  3983. CLC EQU /CLC/CLC
  3984. RLA$ EQU 1 DEFINE ENTRY CONDITIONS FOR *COMPRLA*
  3985. *CALL COMPRLA
  3986. *CALL COMPSES
  3987. *CALL COMPSMI
  3988. *CALL COMPTLB
  3989. TITLE COMMON SUBROUTINES.
  3990. ADE SPACE 4,15
  3991. ** ADE - ACCESS DAT ENTRY.
  3992. *
  3993. * ENTRY (A) = *ECSM* FUNCTION CODE.
  3994. * (QS) = DAT INDEX.
  3995. * (ADEA) = DAT TRACK.
  3996. *
  3997. * EXIT (T6) = DAT TRACK.
  3998. *
  3999. * USES T6, T7, CM - CM+4.
  4000. *
  4001. * CALLS CEA.
  4002. *
  4003. * MACROS MONITOR.
  4004.  
  4005.  
  4006. ADE SUBR ENTRY/EXIT
  4007. SHN 11 SAVE FUNCTION CODE
  4008. STM ADEB
  4009. LDC ** SET DAT TRACK
  4010. ADEA EQU *-1
  4011. STD T6
  4012. LDN 0
  4013. STD T7
  4014. RJM CEA CONVERT EXTENDED MEMORY ADDRESS
  4015. LDD QS
  4016. RAD CM+4
  4017. SHN -14
  4018. LMC ** SET SUBFUNCTION
  4019. * LMC RECS*1000 (READ SUBFUNCTION)
  4020. * LMC WECS*1000 (WRITE SUBFUNCTION)
  4021. ADEB EQU *-1
  4022. RAD CM+3
  4023. LDD HN SET WORD COUNT (2 WORDS)
  4024. STD CM+1
  4025. LDD MA CM ADDRESS = PP MESSAGE BUFFER
  4026. STD CM+2
  4027. MONITOR ECSM
  4028. LJM ADEX RETURN
  4029. ATC SPACE 4,10
  4030. ** ATC - ADJUST TRACK COUNT.
  4031. *
  4032. * ENTRY (FN - FN+4) = EST ENTRY.
  4033. * (T5) = EQUIPMENT.
  4034. *
  4035. * EXIT REMAINING TRACK AND SECTOR COUNTS SET.
  4036. *
  4037. * USES T0 - T3, CM - CM+4, CN - CN+4.
  4038. *
  4039. * CALLS PTA, STA.
  4040.  
  4041.  
  4042. ATC SUBR ENTRY/EXIT
  4043. LDD RE CHECK SHARED DEVICE STATUS
  4044. LPC 1002
  4045. LMC 1002
  4046. ZJN ATCX IF PREVIOUSLY DEFINED AS SHARED
  4047. RJM PTA PRESET FWA OF TRT
  4048. LDD FN+4 READ TDGL WORD OF MST
  4049. SHN 3
  4050. ADK TDGL
  4051. CRD CN
  4052. LDD CN+2 SET LENGTH OF TRT
  4053. STD T2
  4054. SHN 2
  4055. STD CN+4
  4056. RJM STA SET FWA OF TRT
  4057. ADD T2
  4058. UJN ATC4 READ TRT
  4059.  
  4060. * CLEAR TRACK INTERLOCKS.
  4061.  
  4062. ATC1 LDD CM+4
  4063. LPC 7417
  4064. STD CM+4
  4065. LPN 17 SET RESERVATION BITS
  4066. ZJN ATC3 IF NONE
  4067. ATC2 SHN 21-0
  4068. PJN ATC2 IF BIT NOT RESERVED
  4069. STD T0
  4070. SOD CN+4
  4071. LDD T0
  4072. NJN ATC2 IF MORE RESERVATIONS
  4073. ATC3 RJM STA SET FWA OF TRT
  4074. ADD T2
  4075. CWD CM
  4076. ATC4 SBN 1
  4077. CRD CM
  4078. SOD T2
  4079. PJN ATC1 IF NOT END OF TRT
  4080. LDC 4000 SET NOS MST FLAG
  4081. STD CN+3
  4082. LDD FN+4 STORE *TDGL*
  4083. SHN 3
  4084. ADK TDGL
  4085. CWD CN
  4086. LJM ATCX RETURN
  4087. CDA SPACE 4,10
  4088. ** CDA - CHECK DEVICE AVAILABILITY.
  4089. *
  4090. * ENTRY (EQ) = EST ORDINAL.
  4091. * (FN - FN+4) = EST ENTRY.
  4092. *
  4093. * EXIT (A) = 0, IF AVAILABLE FOR RECOVERY.
  4094. * .NE. 0, IF UNLOADED.
  4095. * .LT. 0, IF NOT AVAILABLE FOR RECOVERY.
  4096. *
  4097. * USES FS - FS+4.
  4098.  
  4099.  
  4100. CDA1 LCN 0
  4101.  
  4102. CDA SUBR ENTRY/EXIT
  4103. LDD RE
  4104. SHN 21-6
  4105. PJN CDA1 IF DEVICE AVAILABLE
  4106. SHN 6-21
  4107. LPN 1
  4108. NJN CDAX IF LABEL NOT READ
  4109. LDD FN+4 READ *STLL*
  4110. SHN 3
  4111. ADN STLL
  4112. CRD FS
  4113. SBN STLL-PFGL READ DEVICE DESCRIPTION
  4114. CRM DLPB,TW
  4115. LDD FS+4
  4116. LPN MLDIU
  4117. NJN CDA1 IF EQUIPMENT IN USE
  4118. LDD FS
  4119. LPN MLUNL
  4120. UJN CDAX RETURN
  4121. CDI SPACE 4,15
  4122. ** CDI - CLEAR ISD INTERLOCKS.
  4123. *
  4124. * ENTRY (T5) = EST ORDINAL.
  4125. * (FN - FN+4) = EST ENTRY.
  4126. *
  4127. * EXIT INTERLOCKS CLEARED IN LABEL.
  4128. *
  4129. * USES T0, T1, T6, T7, CM - CM+4.
  4130. *
  4131. * CALLS CDC, CLT, RDS, SMI, WDS.
  4132. *
  4133. * MACROS ENDMS, SETMS.
  4134.  
  4135.  
  4136. CDI3 ENDMS
  4137.  
  4138. CDI SUBR ENTRY/EXIT
  4139. LDD FN
  4140. SHN 21-4
  4141. PJN CDIX IF NOT INDEPENDENT SHARED DEVICE
  4142. RJM CLT
  4143. ZJN CDIX IF NO LABEL TRACK
  4144. LDN 0
  4145. STD T7
  4146. SETMS IO,(DE,DF)
  4147. LDC BFMS
  4148. RJM RDS
  4149. MJN CDIX IF READ ERROR
  4150. RJM SMI
  4151. STD T1 SET MACHINE INDEX
  4152. SHN 1
  4153. LMM N4SS+5*SDGL+4
  4154. SCN 1
  4155. STD T0 CHECK MST INTERLOCK
  4156. LPN 76
  4157. NJN CDI1 IF NOT INTERLOCKED BY THIS MACHINE
  4158. LDD T0
  4159. STM N4SS+5*SDGL+4
  4160. CDI1 LDD T1 CALCULATE ADDRESS OF DIT ENTRY
  4161. SHN 2
  4162. ADC DISS-5+4
  4163. RAD T1
  4164. SBN 4
  4165. STM CDIB
  4166. LDI T1 CHECK MACHINE ID
  4167. LMC 0
  4168. CDIA EQU *-1
  4169. NJN CDI2 IF DIT ENTRY NOT ASSIGNED HERE
  4170. LDN ZERL
  4171. CRM *,ON
  4172. CDIB EQU *-1
  4173. RJM CDC COMPUTE LABEL CHECKSUM
  4174. STM CKSS
  4175. LDC BFMS+WLSF
  4176. RJM WDS
  4177. CDI2 LJM CDI3 RETURN
  4178. CLR SPACE 4
  4179. ** CLR - CLEAR RESIDENT TRT.
  4180. *
  4181. * ENTRY (FN - FN+4) = EST ENTRY.
  4182. *
  4183. * EXIT (A) = MST ADDRESS OF TDGL WORD.
  4184. * CMR AREA FOR TRT CLEARED.
  4185. * FLAWS RETAINED FOR NON-REMOVABLE DEVICE.
  4186. * MRT FOR SHARED DEVICE CLEARED.
  4187. *
  4188. * USES T0 - T3, CM - CM+7, CN - CN+4.
  4189. *
  4190. * CALLS PTA, STA.
  4191.  
  4192.  
  4193. CLR3 RJM STA SET FWA OF TRT
  4194. ADD T1
  4195. CRD CM
  4196. LDD CM+4
  4197. ZJN CLR7 IF NO TRACKS RESERVED
  4198. LDN CM
  4199. STD T3
  4200. LDN ZERL CLEAR ASSEMBLY
  4201. CRD CN
  4202. CLR4 LDI T3 CHECK TRACK BYTE
  4203. LMC 3777
  4204. NJN CLR5 IF TRACK NOT FLAWED
  4205. AOD T0 ADVANCE FLAWED TRACK COUNT
  4206. LDI T3 SET FLAW IN ASSEMBLY
  4207. STM CN-CM,T3
  4208. LDM CLRB-CM,T3 SET TRACK RESERVATION
  4209. RAD CN+4
  4210. CLR5 AOD T3 ADVANCE BYTE INDEX
  4211. LMN CM+4
  4212. NJN CLR4 LOOP TO END OF TRT WORD
  4213. CLR6 RJM STA SET FWA OF TRT
  4214. ADD T1
  4215. CWD CN
  4216. CLR7 AOD T1 ADVANCE WORD INDEX
  4217. LMD T2
  4218. CLR8 NJN CLR3 LOOP TO END OF TRT
  4219. * NJN CLR6 REMOVABLE DEVICE
  4220. STD CM+4 CLEAR UNUSED BYTE
  4221. LDD CM+6 SET TRACK COUNTS
  4222. STD CM+3
  4223. SBD T0
  4224. STD CM+7
  4225. LDC 4000 SET NOS MST FLAG
  4226. STD CM+6
  4227. LDD FN+4 UPDATE MST
  4228. SHN 3
  4229. ADK TDGL
  4230. CWD CM+3
  4231.  
  4232. CLR SUBR ENTRY/EXIT
  4233. RJM PTA PRESET FWA OF TRT
  4234. LDD FN+4 READ *TDGL*
  4235. SHN 3
  4236. ADK TDGL
  4237. CRD CM+3
  4238. LDD CM+3 SAVE TRACK COUNT FOR DEVICE
  4239. STD CM+6
  4240. LDN 0 SET INDEX
  4241. STD T1
  4242. LDD CM+5 SET LENGTH OF TRT
  4243. STD T2
  4244. STD CM
  4245. ADN 7 SET END OF MRT
  4246. SHN -3
  4247. ADD CM
  4248. STD T3
  4249. LDN 0
  4250. STD T0
  4251. LDN ZERL
  4252. CRD CN
  4253. LDD FN
  4254. SHN 21-11
  4255. PJN CLR2 IF NOT SHARED DEVICE
  4256. SHN 21-4-21+11
  4257. PJN CLR1 IF NOT AN ISHARED DEVICE
  4258. LDN MISD ADD IN *DIT* LENGTH
  4259. RAD T3
  4260. CLR1 RJM STA SET FWA OF TRT
  4261. ADD CM SET FWA OF MRT
  4262. CWD CN CLEAR MRT WORD
  4263. AOD CM
  4264. LMD T3
  4265. NJN CLR1 LOOP TO END OF MRT
  4266. CLR2 LDD FN EXTRACT REMOVABLE STATUS
  4267. SHN -10
  4268. LPN 1
  4269. STD T3
  4270. LDM CLRA,T3 SET LOOP CONDITION
  4271. STM CLR8
  4272. LJM CLR8 CLEAR TRT
  4273.  
  4274. CLRA BSS 0
  4275. LOC CLR8
  4276. NJN CLR3
  4277. LOC CLR8
  4278. NJN CLR6
  4279.  
  4280. LOC *O
  4281.  
  4282.  
  4283. CLRB CON 10 TRACK RESERVATION BITS
  4284. CON 4
  4285. CON 2
  4286. CON 1
  4287. CLT SPACE 4,10
  4288. ** CLT - CHECK LABEL TRACK.
  4289. *
  4290. * ENTRY (T5) = EST ORDINAL.
  4291. * (FN - FN+4) = EST ENTRY.
  4292. *
  4293. * EXIT (A) = (T6) = LABEL TRACK.
  4294. * (CM+7) = BYTE 4 OF *ALGL* WORD.
  4295. *
  4296. * USES CM - CM+7.
  4297. *
  4298. * CALLS LRA.
  4299.  
  4300.  
  4301. CLT SUBR ENTRY/EXIT
  4302. LDD FN+4
  4303. SHN 3
  4304. ADN ALGL CHECK LABEL TRACK IN MST
  4305. CRD CM+3
  4306. LDD CM+4
  4307. NJN CLT1 IF LABEL TRACK FOUND
  4308. RJM LRA LOAD REFERENCE ADDRESS
  4309. ADD AL
  4310. ADN ALGL CHECK MST IMAGE FROM LABEL TRACK
  4311. CRD CM
  4312. LDD CM+1 SET LABEL TRACK
  4313. CLT1 STD T6
  4314. UJN CLTX RETURN
  4315. CMT SPACE 4
  4316. ** CMT - CLEAR MST.
  4317. *
  4318. * ENTRY (FN - FN+4) = EST ENTRY.
  4319. * (FS - FS+4) = STLL WORD.
  4320. * (EC) = ERROR CODE.
  4321. * (EQ) = PRIMARY EST ORDINAL.
  4322. *
  4323. * EXIT (T6) = GLOBAL UNLOAD STATUS.
  4324. * EST - MST RESTORED TO ORIGINAL STATUS.
  4325. * DEVICE SET UNAVAILABLE.
  4326. *
  4327. * USES CN - CN+4, CM - CM+4, FS - FS+4, FN.
  4328. *
  4329. * CALLS CLR, CLT.
  4330. *
  4331. * MACROS CMSTF, SFA.
  4332.  
  4333.  
  4334. CMT SUBR ENTRY/EXIT
  4335. LDN ZERL
  4336. CRD CN
  4337. LDD FN
  4338. LPC 7667
  4339. LMD HN SET DEVICE UNAVAILABLE
  4340. STD FN
  4341. SFA EST,T5 UPDATE EST
  4342. ADK EQDE
  4343. CWD FN
  4344. RJM CLT
  4345. NJN CMT1 IF LABEL TRACK KNOWN
  4346. LDD CM+7
  4347. CMT1 STD CN+4
  4348. LDN ZERL
  4349. CRD CM
  4350. LDD FN+4 CLEAR DEVICE ALLOCATION WORD
  4351. SHN 3
  4352. ADN ALGL
  4353. CWD CN
  4354. ADN DULL-ALGL CLEAR DAYFILE POINTERS
  4355. CWD CM
  4356. SBN DULL-MDGL READ DRIVER WORD
  4357. CRD CN
  4358. SBN MDGL-SDGL
  4359. CRD CM
  4360. SBN SDGL-ACGL GET DEVICE ACTIVITY WORD
  4361. CRD CM+3
  4362. LDD CM+7 RETAIN GLOBAL UNLOAD FLAG
  4363. LPN MGUNL
  4364. STD CM+7
  4365. STD T6
  4366. LDN ZERL CLEAR TRT UPDATE STATUS
  4367. CRD CM+2
  4368.  
  4369. * SET DEVICE STATUS.
  4370.  
  4371. LDD FS RETAIN INTIALIZE AND EQUIPMENT STATUS
  4372. SCN MLCKP
  4373. STD FS
  4374. LDN MLDIU+MLMTI SET DEVICE IN USE
  4375. STD FS+4
  4376. LDD CN CLEAR AUXILIARY STATUS
  4377. LPC 5777
  4378. STD CN
  4379. LDD T5
  4380. LMD EQ
  4381. NJN CMT2 IF NOT PRIMARY EQUIPMENT
  4382. LDD FS+1 SET ERROR CODE
  4383. SCN 77
  4384. LMD EC
  4385. STD FS+1
  4386. LDD FN
  4387. SHN 21-11
  4388. MJN CMT3 IF SHARED DEVICE
  4389. LDD CN CLEAR *DAT* INDEX
  4390. LPC 7400
  4391. STD CN
  4392. UJN CMT3 STORE MST PARAMETERS
  4393.  
  4394. CMT2 LDD FN+4 CLEAR DEVICE AND USER DESCRIPTION
  4395. SHN 3
  4396. ADK PFGL
  4397. CWD CM+2
  4398. ADK PUGL-PFGL
  4399. CWD CM+2
  4400. CMT3 LDD FN+4 STORE MST PARAMETERS
  4401. SHN 3
  4402. ADN MDGL RESET DRIVER CHARACTERISTICS
  4403. CWD CN
  4404. ADN STLL-MDGL STORE *STLL*
  4405. CWD FS
  4406. SBN STLL-SDGL
  4407. CWD CM
  4408. SBN SDGL-ACGL STORE DEVICE ACTIVITY WORD
  4409. CWD CM+3
  4410. ADN ISGL-ACGL CLEAR INSTALLATION AREA
  4411. CWD CM+2
  4412. ADN I2GL-ISGL
  4413. CWD CM+2
  4414. ADN CTLL-I2GL CLEAR ERROR COUNTS
  4415. CWD CM+2
  4416. RJM CLR CLEAR TRT
  4417. RJM LRA LOAD REFERENCE ADDRESS
  4418. ADD T5
  4419. CRD RD
  4420. CMSTF LDIU CLEAR DEVICE IN USE
  4421. * LDN 0 INHIBIT FURTHER PROCESSING OF DEVICE
  4422. STD RE
  4423. RJM LRA LOAD REFERENCE ADDRESS
  4424. ADD T5
  4425. CWD RD RESTORE RECOVERY TABLE VALUES
  4426. LJM CMTX
  4427. IES SPACE 4
  4428. ** IES - INITIALIZE EQUIPMENT STATUS.
  4429. *
  4430. * ENTRY (T5) = EQUIPMENT.
  4431. * (EC) = ERROR CODE FOR PRIMARY EQUIPMENT.
  4432. * (EQ) = PRIMARY EST ORDINAL.
  4433. *
  4434. * EXIT ALL EQUIPMENT IN CHAIN RESTORED TO ORIGINAL CONFIGUR-
  4435. * ATION AND SET AS UNAVAILABLE.
  4436. * (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
  4437. * BE REWRITTEN TO CM RETURN TO *MRL*.
  4438. *
  4439. * USES T4, T5, T7, UC, CN - CN+4, FN - FN+4, FS - FS+4.
  4440. *
  4441. * CALLS CDI, CMT, SSL.
  4442. *
  4443. * MACROS SFA, SMSTF.
  4444.  
  4445.  
  4446. IES SUBR ENTRY/EXIT
  4447. SMSTF LPTU PROHIBIT TRT UPDATE BY *1RU*
  4448. SFA EST,T5 READ EST ENTRY
  4449. ADK EQDE
  4450. CRD FN
  4451. LDD FN+4
  4452. SHN 3
  4453. ADN DDLL READ DEVICE DESCRIPTION
  4454. CRD CN
  4455. LDD CN SET TOTAL UNIT COUNT
  4456. LPN 7
  4457. STD UC
  4458. LMD CN SET UNIT COUNT = ORIGINAL UNIT COUNT
  4459. STD CN
  4460. SHN -3
  4461. LPN 7
  4462. RAD CN
  4463. LPN 7 CHECK UNIT COUNTS
  4464. LMD UC
  4465. ZJN IES1 IF NO CHANGE IN UNIT COUNT
  4466.  
  4467. * RESTORE EQUIPMENT TO ORIGINAL STATUS.
  4468.  
  4469. LDD FN+4 RESET ORIGINAL UNIT COUNT
  4470. SHN 3
  4471. ADN DDLL
  4472. CWD CN
  4473. RJM SSL SET SECTOR LIMITS
  4474. IES1 RJM CDI CLEAR ISD INTERLOCKS
  4475. LDD FN+4 GET *DDLL* WORD FROM MST
  4476. SHN 3
  4477. ADN DDLL
  4478. CRD CN
  4479. SBN DDLL-STLL
  4480. CRD FS
  4481. LDD FS+4 SAVE CHAINED EST ORDINAL
  4482. SHN -3
  4483. STD T7
  4484. LDD CN SET ORIGINAL UNIT COUNT
  4485. SHN -3
  4486. LPN 7
  4487. STD T4
  4488. IES2 RJM CMT CLEAR MST PARAMETERS
  4489. LDD T7
  4490. NJN IES4 IF NOT END OF CHAIN
  4491. LCN 0 DISABLE *MRL* REWRITE OF RECOVERY TABLE
  4492. IES3 LJM IESX RETURN
  4493.  
  4494. * CHECK NEXT EQUIPMENT IN CHAIN.
  4495.  
  4496. IES4 STD T5
  4497. LDD UC
  4498. SBD T4
  4499. SBN 1
  4500. MJN IES3 IF NO MORE UNITS IN CHAIN
  4501. STD UC
  4502. SFA EST,T5 READ NEXT EST ENTRY
  4503. ADK EQDE
  4504. CRD FN
  4505. SMSTF LUNL SET LOCAL UNLOAD
  4506. LDD T6
  4507. ZJN IES5 IF LAST EQUIPMENT NOT GLOBALLY UNLOADED
  4508. SMSTF GUNL SET GLOBAL UNLOAD
  4509. IES5 LJM IES1 CHECK NEXT EQUIPMENT
  4510. SSL SPACE 4
  4511. ** SSL - SET SECTOR LIMITS.
  4512. *
  4513. * ENTRY (FN - FN+4) = EST ENTRY.
  4514. *
  4515. * EXIT SECTOR LIMITS SET IN MST WORD (MDGL).
  4516. *
  4517. * USES T2, T3, CN - CN+4, CM - CM+4.
  4518.  
  4519.  
  4520. SSL2 LDD FN+4 STORE DRIVER WORD
  4521. SHN 3
  4522. ADN MDGL
  4523. CWD CN
  4524.  
  4525. SSL SUBR ENTRY/EXIT
  4526. LDD FN+4 READ DRIVER WORD FROM MST
  4527. SHN 3
  4528. ADN MDGL
  4529. CRD CN
  4530. ADN DDLL-MDGL
  4531. CRD CM
  4532. LDD CM
  4533. LPN 7
  4534. STD T2
  4535. LDD CN+1 SET SINGLE UNIT SECTOR LIMIT
  4536. LPC 3777
  4537. STD T3
  4538. STD CN+4
  4539.  
  4540. * SET SECTOR LIMITS FOR MULTI UNIT DEVICE.
  4541.  
  4542. SSL1 SOD T2 DECREMENT UNIT COUNT
  4543. MJN SSL2 IF NO MORE UNITS
  4544. LDD T3
  4545. RAD CN+4
  4546. UJN SSL1
  4547. SPACE 4,10
  4548. MBUF EQU * MST BUFFER
  4549.  
  4550. OVLA EQU MBUF+5*MSTL+5 OVERLAY LOAD ADDRESS
  4551.  
  4552. ORDC EQU OVLA LOAD ADDRESS FOR *4DC*
  4553. ORDD EQU OVLA LOAD ADDRESS FOR *4DD*
  4554. ORDF EQU OVLA LOAD ADDRESS FOR *4DF*
  4555. SPACE 4,10
  4556. * THE FOLLOWING CODE IS OVERLAID AFTER READING THE DEVICE
  4557. * LABELS.
  4558. TITLE LABEL PROCESSING ROUTINES.
  4559. CAM SPACE 4,15
  4560. ** CAM - CHANGE ACCESS MODE.
  4561. *
  4562. * ENTRY (A) = BIAS FOR ALGORITHM INDEX.
  4563. * (AM) = 0 IF CHANGING TO HALF TRACK MODE.
  4564. * = *AIHT* IF CHANGING TO FULL TRACK MODE.
  4565. * (EQ) = EST ORDINAL.
  4566. * (CM+2) = CHANNEL FOR ACCESS PATH CHANGE.
  4567. * (CN - CN+4) = DILL WORD OF MST.
  4568. * (FN - FN+4) = EST ENTRY.
  4569. *
  4570. * USES T0, T2, CM - CM+4.
  4571. *
  4572. * CALLS SSL.
  4573. *
  4574. * MACROS MONITOR.
  4575.  
  4576.  
  4577. CAM SUBR ENTRY/EXIT
  4578. RAD CN+4 ADJUST ALGORITHM INDEX
  4579. LPN 77
  4580. STD T2 EXTRACT ALGORITHM INDEX
  4581. LDD CM+2
  4582. ZJN CAM2 IF NO ACCESS CHANGE
  4583. LDD AM
  4584. ZJN CAM1 IF SWITCHING TO HALF TRACK MODE
  4585. LDN EAPS&DAPS
  4586. CAM1 LMN DAPS SET *SCSM* SUBFUNCTION
  4587. STD CM+3
  4588. LDD EQ SET EST ORDINAL
  4589. STD CM+1
  4590. MONITOR SCSM ENABLE / DISABLE HALF TRACK ACCESS
  4591. CAM2 LDM TEQM-1,T2
  4592. STD CM+3 SET NEW MNEMONIC
  4593. STD FN+3
  4594. LDN SMNS SET MNEMONIC SUBFUNCTION
  4595. STD CM+2
  4596. LDD EQ CHANGE EQUIPMENT MNEMONIC
  4597. STD CM+1
  4598. MONITOR SEQM
  4599. LDD FN+4 READ MDGL WORD OF MST
  4600. SHN 3
  4601. ADN MDGL
  4602. CRD CM
  4603. LDM TSLM-1,T2 SET SINGLE UNIT SECTOR LIMIT
  4604. STD CM+1
  4605. LDD FN+4 UPDATE MST
  4606. SHN 3
  4607. ADN MDGL
  4608. CWD CM
  4609. ADN DILL-MDGL
  4610. CWD CN
  4611. RJM SSL SET SECTOR LIMITS
  4612. CAM5 LJM CAMX RETURN
  4613.  
  4614.  
  4615. TEQM BSS 0 TABLE OF EQUIPMENT MNEMONICS
  4616. CON 2RDI HALF TRACK SINGLE DENSITY
  4617. CON 2RDJ HALF TRACK DOUBLE DENSITY
  4618. CON 2RDM HALF TRACK DOUBLE DENSITY (885)
  4619. CON 2RDK FULL TRACK SINGLE DENSITY
  4620. CON 2RDL FULL TRACK DOUBLE DENSITY
  4621. CON 2RDQ FULL TRACK DOUBLE DENSITY (885)
  4622.  
  4623.  
  4624. TSLM BSS 0 TABLE OF SECTOR LIMITS
  4625. CON SLDI+4000 HALF TRACK SINGLE DENSITY
  4626. CON SLDJ+4000 HALF TRACK DOUBLE DENSITY
  4627. CON SLDM+4000 HALF TRACK DOUBLE DENSITY (885)
  4628. CON SLDK FULL TRACK SINGLE DENSITY
  4629. CON SLDL FULL TRACK DOUBLE DENSITY
  4630. CON SLDQ FULL TRACK DOUBLE DENSITY (885)
  4631. CCS SPACE 4,10
  4632. ** CCS - CHECK CHANNEL STATUS.
  4633. *
  4634. * ENTRY (A) = REQUESTED STATUS.
  4635. * (FN - FN+4) = EST ENTRY.
  4636. *
  4637. * EXIT (A) = (CM+2).
  4638. * = 0 IF REQUESTED STATUS NOT PRESENT.
  4639. * = CHANNEL DESCRIPTOR IF STATUS FOUND.
  4640. *
  4641. * USES T2.
  4642.  
  4643.  
  4644. CCS2 LDI CM+3 SET CHANNEL DESCRIPTOR
  4645. CCS3 STD CM+2
  4646.  
  4647. CCS SUBR ENTRY/EXIT
  4648. STD T2
  4649. LDN FN+1 INITIALIZE FOR SCAN
  4650. STD CM+3
  4651. CCS1 LDI CM+3 CHECK CHANNEL
  4652. SHN 0-10
  4653. SCN 6 REMOVE STATE FIELD
  4654. LMD T2
  4655. ZJN CCS2 IF REQUESTED STATUS PRESENT
  4656. AOD CM+3
  4657. LMN FN+3
  4658. NJN CCS1 IF ANOTHER CHANNEL TO CHECK
  4659. * LDN 0
  4660. UJN CCS3 RETURN
  4661. CLE SPACE 4,10
  4662. ** CLE - CHECK LABEL ERROR.
  4663. *
  4664. * ENTRY (A) .LT. 0 IF MASS STORAGE ERROR.
  4665. * = 1 IF ERROR IN *DIT*.
  4666. *
  4667. * EXIT (A) = ERROR CODE FOR MST.
  4668. * .LT. 0 IF FULL TRACK RETRY IN ORDER.
  4669. *
  4670. * CALLS CME.
  4671.  
  4672.  
  4673. CLE1 SBN 1
  4674. ZJN CLE2 IF ERROR IN *DIT*
  4675. LCN 0
  4676. CLE2 LMN STCE RETURN *CONFIGURATION ERROR*
  4677.  
  4678. CLE SUBR ENTRY/EXIT
  4679. PJN CLE1 IF NOT MASS STORAGE ERROR
  4680. RJM CME
  4681. UJN CLEX RETURN
  4682. CME SPACE 4,15
  4683. ** CME - CHECK MASS STORAGE ERROR.
  4684. *
  4685. * ENTRY (T3) = (RDCT).
  4686. * (SN) = LABEL SECTOR NUMBER.
  4687. * (FN - FN+4) = EST ENTRY.
  4688. *
  4689. * EXIT (A) = 0 IF RETRY IN ORDER.
  4690. * = ERROR CODE FOR MST.
  4691. * .LT. 0, IF PARITY ERROR ENCOUNTERED.
  4692. * TO *CUD2* IF DRIVER DETECTED *DOWN* CONDITION.
  4693. * TO *RDL1* IF NON-REMOVABLE DEVICE NOT READY.
  4694. *
  4695. * USES CM - CM+4.
  4696. *
  4697. * CALLS SDU.
  4698. *
  4699. * MACROS SMSTF.
  4700.  
  4701.  
  4702. CME5 LDD FN CHECK EQUIPMENT STATUS
  4703. CMEB EQU *-1
  4704. * UJN CME8 (*CMS* CALL)
  4705. SHN 21-10
  4706. PJP RDL1 IF NON-REMOVABLE DEVICE
  4707. LDD SN
  4708. NJN CME7 IF NOT FIRST UNIT OF EQUIPMENT
  4709. STD RE
  4710. CME7 RJM SDU SET DEVICE UNLOADED
  4711. CMEA EQU CME7
  4712. * UJN CME8 (*CMS* CALL)
  4713. CME8 LDN STNR RETURN *NOT READY*
  4714.  
  4715. CME SUBR ENTRY/EXIT
  4716. LDD T3
  4717. ZJN CMEX IF FLAWED TRACK
  4718. LPN 77
  4719. LMN NRDE
  4720. ZJN CME5 IF NOT READY
  4721. LMN LNRE&NRDE
  4722. ZJP CUD2 IF DEVICE DOWN
  4723. LMN PARE&LNRE
  4724. NJN CME2 IF NOT A PARITY ERROR
  4725. LCN PARE
  4726. UJN CMEX EXIT WITH ERROR STATUS
  4727.  
  4728. CME2 LDN STDE
  4729. UJN CMEX RETURN *DEVICE ERROR*
  4730. CUC SPACE 4,10
  4731. ** CUC - COMPARE UPDATE COUNTS.
  4732. *
  4733. * ENTRY (T5) = EST ORDINAL.
  4734. * (T7) = SECTOR NUMBER OF LABEL READ.
  4735. * (FN - FN+4) = *EQDE* WORD OF EST ENTRY.
  4736. * (BFMS) = LABEL SECTOR.
  4737. * (RUCA) = UPDATE COUNT FROM LAST TRT SECTOR.
  4738. *
  4739. * EXIT (A) = 0 IF COUNTS MATCH.
  4740. * (RG) = 0 IF OPERATOR ENTERED *GO*.
  4741. *
  4742. * CALLS CLC, GAS, SOM, WOC.
  4743.  
  4744.  
  4745. * COMPARE UPDATE COUNT FROM MST WITH THAT AT END OF TRT.
  4746.  
  4747. CUC3 LDM N4SS+5*SDGL+2 COMPARE UPDATE COUNTS
  4748. LMM RUCA+2
  4749. NJN CUC2 IF NO MATCH
  4750. LDM N4SS+5*SDGL+3
  4751. LMM RUCA+3
  4752. NJN CUC2 IF NON-MATCHING COUNTS
  4753. LDM N4SS+5*SDGL+4
  4754. LMM RUCA+4
  4755. SCN 77
  4756. NJN CUC2 IF NON-MATCHING COUNTS
  4757. RJM CLC
  4758. LMM CKSS
  4759. NJN CUC2 IF INCORRECT LABEL CHECKSUM
  4760.  
  4761. CUC SUBR ENTRY/EXIT
  4762. LDD FN
  4763. SHN 21-6
  4764. PJN CUC1 IF DEVICE AVAILABLE
  4765. LDM LLSS
  4766. SBN 2
  4767. PJN CUC3 IF NEW LABEL
  4768. CUC1 LDN 0
  4769. UJN CUCX RETURN
  4770.  
  4771. CUC2 LDD T7
  4772. NJN CUCX IF ALTERNATE LABEL
  4773. LDC CUCA SET EST ORDINAL IN MESSAGE
  4774. RJM SOM
  4775. * LDC CUCA WAIT ON OPERATOR INPUT
  4776. RJM WOC
  4777. NJN CUCX IF OPERATOR ENTERED *PAUSE*
  4778. STD RG
  4779. RJM GAS GET ALTERNATE LABEL SECTOR
  4780. STD T7
  4781. LJM RLS2 READ ALTERNATE LABEL
  4782.  
  4783.  
  4784. CUCA DATA C*EQXXX, TABLES INCONSISTENT.*
  4785. CUD SPACE 4,15
  4786. ** CUD - CHECK UNAVAILABLE DEVICE.
  4787. *
  4788. * ENTRY (T5) = EST ORDINAL.
  4789. * (FN - FN+4) = EST ENTRY.
  4790. * (FS - FS+4) = *STLL* WORD OF MST.
  4791. *
  4792. * EXIT TO *RDLX* IF UNLOAD REQUESTED.
  4793. * IF DEVICE OFF.
  4794. * IF DEADSTART INITIALIZE.
  4795. *
  4796. * CALLS WMT.
  4797.  
  4798.  
  4799. CUD4 LDD FS CHECK DEVICE STATUS
  4800. LPN MLUNL
  4801. ZJN CUDX IF NO UNLOAD REQUEST
  4802. LDD FN
  4803. SHN 21-3
  4804. MJN CUDX IF DEVICE ACTIVE
  4805. SHN 4+21-6
  4806. MJN CUD3 IF DEVICE UNAVAILABLE
  4807.  
  4808. CUD SUBR ENTRY/EXIT
  4809. LDD FS
  4810. SHN 21-LIAL+LIAL/12D*12D
  4811. MJN CUD2 IF DEADSTART INITIALIZE
  4812. LDD FN
  4813. LPN 2
  4814. ZJN CUD4 IF DEVICE ON
  4815. CUD2 LDN 0
  4816. STD RE INHIBIT FURTHER PROCESSING OF DEVICE
  4817. CUD3 LDC 1S12
  4818. RJM WMT SET LABEL NOT READ INDICATOR
  4819. LDN 0
  4820. LJM RDLX EXIT
  4821. GAS SPACE 4,10
  4822. ** GAS - GET ALTERNATE LABEL SECTOR.
  4823. *
  4824. * ENTRY (FN - FN+4) = *EQDE* WORD OF EST ENTRY.
  4825. *
  4826. * EXIT (A) = ALTERNATE LABEL SECTOR.
  4827. *
  4828. * USES T1.
  4829.  
  4830.  
  4831. GAS1 LDN 2 ADVANCE TABLE ADDRESS
  4832. RAD T1
  4833. GAS2 LDI T1
  4834. ZJN GASX IF END OF TABLE
  4835. LMD FN+3
  4836. NJN GAS1 IF NOT MATCHING DEVICE MNEMONIC
  4837. LDM 1,T1
  4838.  
  4839. GAS SUBR ENTRY/EXIT
  4840. LDC TALS
  4841. STD T1
  4842. UJN GAS2 ENTER SEARCH LOOP
  4843.  
  4844.  
  4845. TALS BSS 0
  4846. LIST G
  4847. TBL "MSEQ"
  4848. LIST *
  4849. PURGMAC TBLM
  4850. CON 0 END OF TABLE
  4851. PUE SPACE 4,10
  4852. ** PUE - PROCESS UNSECURED SYSTEM SECURITY ERROR.
  4853. *
  4854. * ENTRY (T5) = EST ORDINAL.
  4855. *
  4856. * EXIT (A) = 0 IF OPERATOR ENTERED *GO*.
  4857. * .NE. 0 IF OPERATOR ENTERED *PAUSE*.
  4858. *
  4859. * CALLS DFM, SOM, WOC.
  4860.  
  4861.  
  4862. PUE SUBR ENTRY/EXIT
  4863. LDC 2RE.
  4864. STM PUEB
  4865. LDN 0
  4866. STM PUEB+1
  4867. LDC PUEA SET EST ORDINAL IN MESSAGE
  4868. RJM SOM
  4869. LDC PUEA+ERLN ISSUE MESSAGE TO ERRLOG
  4870. RJM DFM
  4871. LDD T8 WAIT ON OPERATOR INPUT
  4872. RJM WOC
  4873. NJN PUE2 IF OPERATOR ENTERED *PAUSE*
  4874. LCN 1R.-1R
  4875. RAM PUEB
  4876. LDC 2RRE
  4877. STM PUEB+1
  4878. LDC PUEA+ERLN ISSUE MESSAGE TO ERRLOG
  4879. RJM DFM
  4880. * LDN 0
  4881. PUE2 UJP PUEX RETURN
  4882.  
  4883.  
  4884. PUEA DATA 20HEQXXX, SECURED DEVIC
  4885. PUEB DATA C*E RECOVERED.*
  4886. RUC SPACE 4,15
  4887. ** RUC - RETRIEVE UPDATE COUNT FROM TRT.
  4888. *
  4889. * ENTRY (T5) = EST ORDINAL.
  4890. * (T6) = LABEL TRACK.
  4891. * (T7) = LABEL SECTOR.
  4892. * (SN) = FIRST UNIT OF EQUIPMENT INDICATOR.
  4893. * (FN - FN+4) = *EQDE* WORD OF EST ENTRY.
  4894. *
  4895. * EXIT (QS) = (T7) ON ENTRY IF TRT UPDATE COUNT READ.
  4896. *
  4897. * USES CM - CM+4.
  4898. *
  4899. * CALLS RLP.
  4900.  
  4901.  
  4902. RUC SUBR ENTRY/EXIT
  4903. LDD FN
  4904. SHN 21-6
  4905. PJN RUCX IF DEVICE AVAILABLE
  4906. LDD SN
  4907. NJN RUCX IF NOT FIRST UNIT OF EQUIPMENT
  4908. LDD FN+4
  4909. SHN 3
  4910. ADK TDGL FETCH TRT LENGTH FROM MST
  4911. CRD CM
  4912. LDD T7 SAVE LABEL SECTOR
  4913. STD QS
  4914. LDD CM+2 CALCULATE LAST SECTOR OF TRT
  4915. SHN -6
  4916. ADN 1 ADVANCE OVER LABEL SECTOR
  4917. RAD T7
  4918. RJM RLP READ END OF TRT SECTOR
  4919. LDD MA
  4920. CWM BFMS+2+5*77,ON
  4921. SBN 1 SAVE MST/TRT UPDATE COUNTER
  4922. CRM RUCA,ON
  4923. LDD QS RESTORE LABEL SECTOR
  4924. STD T7
  4925. UJP RUCX RETURN
  4926.  
  4927.  
  4928. RUCA BSSZ 5 MST/TRT UPDATE COUNT
  4929. SDU SPACE 4,10
  4930. ** SDU - SET DEVICE UNLOADED.
  4931. *
  4932. * ENTRY (T5) = EST ORDINAL.
  4933. * (FN - FN+4) = *EQDE* WORD OF EST ENTRY.
  4934. *
  4935. * MACROS CMSTF, SMSTF.
  4936.  
  4937.  
  4938. SDU SUBR ENTRY/EXIT
  4939. LDD FN
  4940. SHN 21-10
  4941. PJN SDUX IF NON-REMOVABLE DEVICE
  4942. SMSTF LUNL
  4943. SMSTF LDUL SET DEVICE UNLOADED
  4944. LDD FN
  4945. LPN 20
  4946. ZJN SDUX IF NOT INDEPENDENT SHARED DEVICE
  4947. SMSTF LPTU
  4948. CMSTF GPRS CLEAR PRESET STATUS
  4949. * LDN 0
  4950. UJN SDUX RETURN
  4951. SFT SPACE 4,15
  4952. ** SFT - SET FULL TRACK MODE.
  4953. *
  4954. * ENTRY (AM) = 0 IF UNAVAILABLE *LDAM* DEVICE.
  4955. * (T4 - T7) = MASS STORAGE PARAMETERS.
  4956. * (FN - FN+4) = EST ENTRY.
  4957. *
  4958. * EXIT TO *RDL3* IF MODE CHANGED TO FULL TRACK.
  4959. * (AM) .NE. 0 TO DISABLE REENTRY TO SUBROUTINE.
  4960. *
  4961. * USES RE, CN - CN+4.
  4962. *
  4963. * CALLS CAM, CCS.
  4964.  
  4965.  
  4966. SFT SUBR ENTRY/EXIT
  4967. LDD AM
  4968. ADD SN
  4969. NJN SFTX IF CHANGE ALREADY MADE
  4970. LDD FN+4
  4971. SHN 3
  4972. ADN DILL FETCH ALGORITHM INDEX WORD FROM MST
  4973. CRD CN
  4974. SFTA LDN 0
  4975. * LDN 10 (2X PP STATUS)
  4976. * LDN 4 (4X PP STATUS)
  4977. ZJN SFT1 IF 1X PP SPEED
  4978.  
  4979. * CHECK CONTROLLER CONFIGURATION.
  4980.  
  4981. LDN 10 LOOK FOR FULL TRACK ACCESS
  4982. RJM CCS
  4983. NJN SFT2 IF FULL TRACK PATH PRESENT
  4984. SFT1 STD CM+2
  4985. LDN 40 FLAG INVALID FULL TRACK ACCESS SET
  4986. RAD RE
  4987. UJN SFT3 CHANGE ACCESS MODE
  4988.  
  4989. SFT2 LDN 11 CHECK FOR HALF TRACK ACCESS
  4990. RJM CCS
  4991. SFT3 LDN AIHT DISABLE REENTRY TO *SFT*
  4992. STD AM
  4993. RJM CAM CHANGE ACCESS MODE
  4994. LDN 0
  4995. STD T7
  4996. LJM RDL3 SEARCH FOR LABEL IN FULL TRACK MODE
  4997. SHT SPACE 4,10
  4998. ** SHT - SET HALF TRACK MODE.
  4999. *
  5000. * ENTRY (FN - FN+4) = EST ENTRY.
  5001. *
  5002. * EXIT (AM) = 0 IF UNAVAILABLE *LDAM* DEVICE.
  5003. *
  5004. * USES CM - CM+4, CN - CN+4.
  5005. *
  5006. * CALLS CAM, CCS.
  5007.  
  5008.  
  5009. SHT1 AOD AM SET FULL TRACK STATUS
  5010.  
  5011. SHT SUBR ENTRY/EXIT
  5012. LDD FN+4 GET MST PARAMETERS
  5013. SHN 3
  5014. ADN MDGL
  5015. CRD CM
  5016. ADN DILL-MDGL
  5017. CRD CN
  5018. LDD CM+3 SET ACCESS MODE FLAG
  5019. LMN LA6DI
  5020. LPN 77
  5021. STD AM
  5022. LDD FN ADD AVAILABLE STATUS
  5023. LPC 100
  5024. LMD HN
  5025. RAD AM
  5026. NJN SHTX IF AVAILABLE OR NOT *6DI* DRIVER
  5027. LDD CM+1
  5028. SHN 21-13
  5029. MJN SHTX IF DEVICE IN HALF TRACK MODE
  5030. LDD CN+4
  5031. LPN 77 CHECK ALGORITHM INDEX
  5032. SBN 2*AIHT+1
  5033. PJN SHT1 IF FULL TRACK ONLY DEVICE
  5034. LDN 1 CHECK INACTIVE HALF TRACK PATH
  5035. RJM CCS
  5036. LCN AIHT CHANGE ACCESS MODE
  5037. RJM CAM
  5038. UJN SHTX RETURN
  5039. SOM SPACE 4,10
  5040. ** SOM - SET EST ORDINAL IN MESSAGE.
  5041. *
  5042. * ENTRY (A) = MESSAGE ADDRESS.
  5043. * (T5) = EST ORDINAL.
  5044. *
  5045. * EXIT (A) = (T8) = MESSAGE ADDRESS.
  5046. *
  5047. * CALLS C2D.
  5048.  
  5049.  
  5050. SOM1 LDD T8 RETURN WITH (A) = MESSAGE ADDRESS
  5051.  
  5052. SOM SUBR ENTRY/EXIT
  5053. STD T8
  5054. LDI T8 CHECK MESSAGE FORMAT
  5055. LMC 2REQ
  5056. NJN SOM1 IF NOT *EQXXX* MESSAGE
  5057. LDD T5
  5058. SHN -3 CONVERT UPPER TWO DIGITS
  5059. RJM C2D
  5060. STM 1,T8 STORE IN MESSAGE
  5061. LDD T5
  5062. LPN 7 EXTRACT LOW ORDER DIGIT
  5063. SHN 6
  5064. ADC 2R0, COMPLETE ORDINAL CONVERSION
  5065. STM 2,T8
  5066. UJN SOM1 RETURN
  5067. RDL SPACE 4,15
  5068. ** RDL - READ DEVICE LABEL.
  5069. *
  5070. * ENTRY (EQ) = (T5) = EST ORDINAL.
  5071. * (RS) = RECOVERY STATUS.
  5072. * (FN - FN+4) = EST ENTRY.
  5073. * (AL) = CM ADDRESSES FOR MSTS OF EACH UNIT.
  5074. *
  5075. * EXIT LABEL READ AND MST PLACED IN CM.
  5076. *
  5077. * USES T6, T7, CA, RE, SL, UC, CM - CM+4, CN - CN+4,
  5078. * FS - FS+4.
  5079. *
  5080. * CALLS CLE, CUD, PTA, RLM, RLS, SFT, SHT, SLT, SSL, WMT.
  5081.  
  5082.  
  5083. RDL16 AOD RC ADVANCE REDEFINITION REQUESTED COUNT
  5084. RDL17 LDN 0 INHIBIT FURTHER PROCESSING OF DEVICE
  5085. STD RE
  5086.  
  5087. RDL SUBR ENTRY/EXIT
  5088. RDLA RJM SSL SET SECTOR LIMITS
  5089. * UJN *+2 IF CM RECOVERY OR *CMS* CALL
  5090. LDD RE
  5091. SHN 21-4
  5092. MJN RDLX IF DEADSTART INITIALIZE SPECIFIED
  5093. RJM PTA PRESET FWA OF TRT
  5094. RDL1 LDD FN+4
  5095. SHN 3
  5096. ADN STLL
  5097. CRD FS
  5098. ADN DDLL-STLL
  5099. CRD CN
  5100. SBN DDLL-ACGL
  5101. CRD CM
  5102. LDD CM+4 CHECK REDEFINITION REQUESTED
  5103. SHN 21-13
  5104. MJN RDL16 IF REDEFINITION REQUESTED
  5105. LDD CN SET CURRENT UNIT COUNT
  5106. LPN 7
  5107. STD UC
  5108. LDD CN
  5109. SHN -11
  5110. NJN RDL17 IF NO UNITS OR REDEFINITION IN PROGRESS
  5111. STD T7 SET LABEL SECTOR
  5112. LDD CN
  5113. SHN -3
  5114. LPN 7
  5115. SBD UC
  5116. PJN RDL2 IF CURRENT .LE. ORIGINAL UNIT COUNT
  5117. RAD UC
  5118. RDL2 LDD AL SET ADDRESS FOR LABEL MST
  5119. STD CA
  5120. RJM CUD CHECK UNAVAILABLE DEVICE
  5121. RJM SHT SET HALF TRACK MODE
  5122.  
  5123. * READ LABEL FOR UNITS ON THIS EQUIPMENT.
  5124.  
  5125. RDL3 LDD FN+4 FETCH LABEL TRACK FROM MST
  5126. SHN 3
  5127. ADN ALGL
  5128. CRD CM
  5129. ADN MDGL-ALGL
  5130. CRD CN
  5131. LDD CN+1 SET SINGLE UNIT SECTOR LIMIT
  5132. LPC 3777
  5133. STD SL
  5134. LDD CM+1 SET LABEL TRACK
  5135. STD T6
  5136. ZJN RDL8 IF LABEL TRACK UNKNOWN
  5137. ADN 1
  5138. STM SLTA
  5139. RDL7 RJM RLS READ LABEL SECTOR
  5140. ZJN RDL14 IF VALID LABEL
  5141. RJM CLE CHECK LABEL ERROR
  5142. MJN RDL9 IF POSSIBLE WRONG MODE
  5143. NJN RDL14 IF ERROR STATUS FOR MST
  5144.  
  5145. * ERROR IN LABEL READ - TRY ANOTHER TRACK.
  5146.  
  5147. AOD T6 ADVANCE TO NEXT TRACK
  5148. RDL8 RJM SLT
  5149. NJN RDL7 IF NOT AT BAD TRACK LIMIT
  5150. RDL9 RJM SFT
  5151. LDD RE CHECK INCORRECT MODE CHANGE
  5152. LPN 40
  5153. ZJN RDL10 IF MODE CHANGE LEGAL OR NONE
  5154. RJM SHT RESTORE HALF TRACK ACCESS
  5155. RDL10 LDN STLE SET LABEL ERROR STATUS
  5156.  
  5157. * ENTER MST FROM LABEL INTO CM TABLE FOR FURTHER PROCESSING.
  5158.  
  5159. RDL14 RJM WMT COPY MST TO CM TABLE
  5160. LDD SN
  5161. NJN RDL15 IF NOT FIRST UNIT OF EQUIPMENT
  5162. RDLC RJM RLM GET LOCAL MST DATA
  5163. * UJN RDL15 (LEVEL 3 D/S OR *CMS* W/O D/S SEQUENCING)
  5164. RDL15 LDD SL ADVANCE TO LABEL ON NEXT UNIT
  5165. ADD SN
  5166. STD T7
  5167. SOD UC
  5168. PJP RDL7 IF MORE UNITS TO CHECK
  5169. LDN 0
  5170. LJM RDLX RETURN
  5171. RLM SPACE 4
  5172. ** RLM - READ LOCAL MST BLOCK.
  5173. *
  5174. * ENTRY (T6) = LABEL TRACK.
  5175. * (T7) = 0.
  5176. * (FN - FN+4) = EST ENTRY.
  5177. * (FS - FS+4) = MST STATUS WORD (STLL).
  5178. * BFMS LOADED WITH LABEL MST.
  5179. *
  5180. * EREXIT TO */RMS/HNG* IF ERROR READING SECTOR OF LOCAL AREAS.
  5181. *
  5182. * USES P1, CN - CN+4.
  5183. *
  5184. * CALLS GAS, LRA, RLA, SES.
  5185.  
  5186.  
  5187. RLM6 LDM BFMS
  5188. ZJN RLM7 IF SECTOR NOT REFORMATTED
  5189. LDN STDE&STLE
  5190. RLM7 LMN STLE SET ERROR STATUS IN MST
  5191. RJM SES
  5192. AOD RE FLAG BAD LABEL
  5193.  
  5194. RLM SUBR ENTRY/EXIT
  5195. LDD RE
  5196. SHN 21-6
  5197. PJN RLMX IF EQUIPMENT AVAILABLE
  5198. SHN 6-0
  5199. MJN RLMX IF LABEL NOT READ
  5200. LDM N4SS+5*ACGL+4
  5201. LPC MGLAP
  5202. ZJN RLMX IF NO SECTOR OF LOCAL AREAS
  5203. LDM N4SS+5*DULL+2 SAVE MACHINE INDEX
  5204. STD P1
  5205. RJM RLA READ LOCAL AREA SECTOR
  5206. PJN RLM3 IF NO ERROR
  5207. ADN 1
  5208. NJN RLM1 IF SECTOR REFORMATTED
  5209. LDD FN
  5210. SHN 21-10
  5211. MJN RLM2 IF REMOVABLE DEVICE
  5212. RLM1 LDC RLMC *LOCAL AREA SECTOR ERROR.*
  5213. LJM /RMS/HNG DISPLAY MESSAGE AND HANG
  5214. RLMA EQU *-1
  5215. * LJM RLM6 (*CMS* CALL)
  5216.  
  5217. RLM2 LDN 0
  5218. RLM3 STD T2 SET ADDRESS OF *SLA* DAYFILE DATA
  5219. LDN ZERL
  5220. CRD CN
  5221. CRD CM
  5222. LDD T2
  5223. ZJN RLM4 IF NO ENTRY OR REMOVABLE DEVICE
  5224. LDM 4,T3 EXTRACT ACTIVE USER COUNT
  5225. STD FS+3
  5226. LDM 1,T3 MOVE SYSTEM TABLE TRACK
  5227. STD CM+3
  5228. LDM 3,T3 MOVE FAMILY COUNT
  5229. STD CM+4
  5230. LDD T3 SET ADDRESS OF ENTRY
  5231. SBN CN-5
  5232. RLM4 ADN CN
  5233. STM RLMB
  5234. LDD FS+1 CLEAR ERROR STATUS
  5235. SCN 77
  5236. STD FS+1
  5237. LDD P1
  5238. STD CM+2
  5239. RJM GAS SET ALTERNATE LABEL SECTOR
  5240. STD CM
  5241. RJM LRA LOAD REFERENCE ADDRESS
  5242. ADD AL
  5243. ADN DALL
  5244. CWM *,ON
  5245. RLMB EQU *-1
  5246. ADN DULL-DALL-1
  5247. CWD CM
  5248. ADN STLL-DULL
  5249. CWD FS
  5250. LJM RLMX RETURN
  5251.  
  5252.  
  5253. RLMC DATA C*LOCAL AREA SECTOR ERROR.*
  5254. RLS SPACE 4
  5255. ** RLS - READ LABEL SECTOR.
  5256. *
  5257. * ENTRY (T6) = TRACK.
  5258. * (T7) = SECTOR.
  5259. * (FN - FN+4) = EST ENTRY.
  5260. * (FS - FS+4) = *STLL* WORD OF MST.
  5261. *
  5262. * EXIT (A) = 0 IF VALID LABEL.
  5263. * (A) .LT. 0 IF MS ERROR.
  5264. * (A) .GT. 0 IF INCORRECT LABEL.
  5265. * (A) = 1 IF ERROR IN *DIT*.
  5266. * (T3) = ERROR CODE IF (A) .LT. 0.
  5267. * (SN) = LABEL SECTOR NUMBER.
  5268. * TO *CUD2* IF DEVICE INACCESSIBLE.
  5269. *
  5270. * USES EC, P1, P2, RG, T1, T2, T3, CM - CM+4, CN - CN+4.
  5271. *
  5272. * CALLS CDA, CDC, CMI, RDS, SDT, SDU, SOM, WDS.
  5273. *
  5274. * MACROS DELAY, ENDMS, MONITOR, SETMS.
  5275.  
  5276.  
  5277. RLP2 LDD T7 CHECK SECTOR NUMBER
  5278. LMK LSLT
  5279. NJN RLP3 IF NOT PRIMARY LABEL SECTOR
  5280. LDM N4SS+5*SDGL+4
  5281. LPN 77
  5282. SHN -1 EXTRACT SOFTWARE RESERVE
  5283. STD P2
  5284. RLP3 LDM FNSS CHECK FILE NAME FIELD
  5285. LMC 3777
  5286.  
  5287. RLP SUBR ENTRY/EXIT
  5288. LDC BFMS
  5289. RJM RDS READ LABEL SECTOR
  5290. STD T3
  5291. PJN RLP2 IF NO MASS STORAGE ERROR
  5292. RLP1 ENDMS
  5293. LDC 1S17 SET ERROR FLAG
  5294. LMD T3
  5295. * UJN RLSX EXIT
  5296.  
  5297. RLS SUBR ENTRY/EXIT
  5298. LDD T7
  5299. STD SN SAVE LABEL SECTOR NUMBER
  5300.  
  5301. * READ SECTOR.
  5302.  
  5303. RLS1 SETMS IO,(DF,ND,NR,RR)
  5304. LDM MSD RETURN STATUS TO CALLER
  5305. SHN 21-6
  5306. MJP CUD2 IF DEVICE INACCESSIBLE
  5307. LDN 1
  5308. STD RG
  5309. RLS2 RJM RUC RETRIEVE UPDATE COUNT
  5310. RJM RLP READ LABEL
  5311. ZJN RLP1 IF FLAWED TRACK
  5312.  
  5313. * CHECK CONTENTS OF LABEL.
  5314.  
  5315. LDM BFMS CHECK CONTROL BYTES
  5316. LMC 3777
  5317. NJN RLS5 IF INCORRECT SYSTEM SECTOR LINKAGE
  5318. LDM BFMS+1
  5319. LMN 77
  5320. ZJN RLS7 IF PROPER WORD COUNT
  5321. RLS5 ENDMS
  5322. LDN 2 INDICATE INCORRECT LABEL
  5323. UJP RLSX RETURN
  5324.  
  5325. RLS7 LDM FTSS CHECK LABEL TRACK
  5326. LMD T6
  5327. NJN RLS5 IF INCORRECT TRACK
  5328. LDD FN+3
  5329. LMC 2RDE
  5330. ZJN RLS10 IF ECS
  5331. LMN 1RP&1RE
  5332. ZJN RLS10 IF DDP
  5333. LDM E4SS
  5334. LMD FN+3
  5335. NJN RLS5 IF NO MATCH ON DEVICE MNEMONIC
  5336. LDD SN
  5337. NJN RLS10 IF NOT FIRST UNIT OF EQUIPMENT
  5338. RJM CUC
  5339. NJN RLS5 IF MST AND TRT OUT OF SYNC
  5340. LDD FN
  5341. SHN 21-4
  5342. PJN RLS10 IF NOT INDEPENDENT SHARED DEVICE
  5343. RLSA SHN 5+21-6
  5344. PJN RLS10 IF EQUIPMENT AVAILABLE
  5345. SHN 6-3
  5346. PJN RLS11 IF NOT PREVIOUSLY RECOVERED
  5347. SHN 4+21-10
  5348. MJN RLS11 IF REMOVABLE DEVICE
  5349. RLS10 ENDMS
  5350. * LDN 0 INDICATE VALID LABEL
  5351. LJM RLSX RETURN
  5352.  
  5353. * PROCESS *DIT* ON INDEPENDENT SHARED DEVICE.
  5354.  
  5355. RLS11 BSS 0
  5356. QUAL ISD
  5357.  
  5358. LDD RS CHECK RECOVERY STATUS
  5359. LPN FLMK
  5360. LMN FLCM
  5361. STD P1
  5362. ZJN RLS12 IF FILES RECOVERED FROM CM
  5363. RJM CDA
  5364. NJN RLS10 IF RECOVERY INHIBITED
  5365. RLS12 LDD RE
  5366. LPN 40
  5367. NJN RLS10 IF INCORRECT ACCESS MODE
  5368. LDK EPDE
  5369. RAM UERR REREAD LABEL WITH *ENDMS* DISABLED
  5370. RJM RLP
  5371. LDD FN+4 FETCH MST PARAMETERS
  5372. SHN 3
  5373. ADN ACGL
  5374. CRD CM
  5375. ADN DULL-ACGL
  5376. CRD CN
  5377. LDD CM+4
  5378. LPC MGPRS
  5379. ZJN RLS14 IF *PRESET* OPTION NOT SET
  5380. LMD CM+4
  5381. STD CM+4
  5382. LDD FN+4 INDICATE PRESET NOTED
  5383. SHN 3
  5384. ADN ACGL
  5385. CWD CM
  5386. LDC 5*MISD CLEAR DIT
  5387. STD T1
  5388. RLS13 LDN 0
  5389. STM DISS-1,T1
  5390. SOD T1
  5391. NJN RLS13 IF MORE WORDS TO CLEAR
  5392. STM N4SS+5*STLL
  5393. STD P2 CLEAR POSSIBLE SOFTWARE RESERVE
  5394. RLS14 RJM SDT
  5395. MJN RLS16 IF ANY DIT ENTRY INTERLOCKED
  5396. RLSB ZJN RLS18 IF THIS MACHINE NOT IN DIT
  5397. * NJN RLS17 (RECOVERY DEADSTART)
  5398. LDN RLSF-RLSE
  5399. RLS15 ADC RLSE
  5400. LJM RLS22 DISPLAY ERROR MESSAGE
  5401.  
  5402. RLS16 ENDMS RELEASE CHANNEL
  5403. LDC DSCP*CPAS+MS2W
  5404. RLSC EQU *-1
  5405. * LDC CP+MS2W (*CMS* CALL)
  5406. CWM RLSG,TR
  5407. DELAY
  5408. LJM RLS1 LOOP
  5409.  
  5410. RLS17 STD T1 SET DIT ORDINAL
  5411. RLS18 LDD T1
  5412. ZJN RLS15 IF DIT FULL
  5413. STD T3
  5414. SHN 2 SET INDEX OF DIT ENTRY
  5415. RAD T3
  5416. RJM CMI
  5417. NJN RLS16 IF MST INTERLOCKED / INITIALIZE PENDING
  5418. * LDN 0
  5419. STD T7 ENSURE PRIMARY LABEL SECTOR
  5420. LDD P1
  5421. NJP RLS20 IF FILES NOT RECOVERED FROM CM
  5422.  
  5423. * CLEAR LOCAL DEVICE INTERLOCKS AND PF ACTIVITY.
  5424.  
  5425. LDM DISS-5,T3 GET LOCAL PF ACTIVITY COUNT
  5426. LPN 77
  5427. STD T0
  5428. LCN 77
  5429. LMM N4SS+TDGL*5+1
  5430. STM RLSH
  5431. LPN 77
  5432. SBD T0
  5433. PJN RLS19.1 IF LOCAL PF ACTIVITY .LE. GLOBAL ACTIVITY
  5434. RLS19 MONITOR HNGM HANG PP
  5435. UJN RLS19 HANG PP
  5436.  
  5437. RLS19.1 LDM DISS-5,T3
  5438. LPC 0
  5439. RLSH EQU *-1 (COMPLEMENT OF GLOBAL INTERLOCKS)
  5440. SHN -6
  5441. NJN RLS19 IF LOCAL INTERLOCK SET WITHOUT GLOBAL
  5442. LDM N4SS+TDGL*5+1 CLEAR LOCAL INTERLOCKS AND PF ACTIVITY
  5443. SBM DISS-5,T3
  5444. STM N4SS+TDGL*5+1
  5445. LDN 0
  5446. STM N4SS+DULL*5+1
  5447. STD CN+1
  5448. STM DISS-5,T3
  5449. LDD P2
  5450. LMD T1
  5451. NJN RLS21 IF MST NOT INTERLOCKED BY THIS MACHINE
  5452. LDN 10
  5453. RAD RE
  5454.  
  5455. * SET MACHINE ACTIVE ON DEVICE.
  5456.  
  5457. RLS20 LDD FS+2 SET MACHINE ID IN DIT ENTRY
  5458. STM DISS-5+4,T3
  5459. AOM DISS-5+3,T3 SET DIT ENTRY INTERLOCK
  5460. LDM N4SS+5*SDGL+4
  5461. SHN -1
  5462. SCN 37
  5463. LMD T1 SET SOFTWARE RESERVE
  5464. SHN 1
  5465. STM N4SS+5*SDGL+4
  5466. SOD T1 SET MACHINE INDEX IN LOCAL AREA
  5467. STM N4SS+5*DULL+2
  5468. STD CN+2
  5469. AOM SDIF ADVANCE INTERLOCK COUNT
  5470. RLS21 LDD EC
  5471. ADD RS
  5472. ZJN RLS25 IF INITIAL RECOVERY
  5473. LDD FN
  5474. SHN 13-10
  5475. LMM N4SS+5*MDGL CHECK MATCHING REMOVABLE STATUS
  5476. SHN 21-13
  5477. PJN RLS24 IF MODES MATCH
  5478. LDC RLSI *REMOVABLE DEVICE CONFLICT*
  5479. RLS22 STD T3 SAVE MESSAGE ADDRESS
  5480. RJM SOM
  5481. ENDMS
  5482. LDD FN CHECK DEVICE TYPE
  5483. SHN 21-10
  5484. MJN RLS23 IF REMOVABLE DEVICE
  5485. LDD T3
  5486. RLSD LJM /RMS/HNG DISPLAY THE ERROR MESSAGE
  5487. * UJN *+2 (*CMS* CALL)
  5488.  
  5489. RLS23 LDD T3 ISSUE MESSAGE
  5490. RJM DFM
  5491. RJM SDU SET DEVICE UNLOADED
  5492. LDN 1
  5493. LJM RLSX RETURN
  5494.  
  5495. RLS24 LDN 2 SET DEVICE ACCESSED
  5496. RAD RE
  5497. RLS25 LDD FN+4 STORE DEVICE USAGE INFORMATION
  5498. SHN 3
  5499. ADN DULL
  5500. CWD CN
  5501. RJM CDC COMPUTE LABEL CHECKSUM
  5502. STM CKSS
  5503. LDC BFMS+WLSF
  5504. RJM WDS
  5505. LDD QS RESTORE ACTUAL LABEL SECTOR
  5506. STD T7
  5507. LJM RLS10 RETURN
  5508.  
  5509.  
  5510. RLSE DATA C*NO SPACE IN DIT.*
  5511. RLSF DATA C*EQXXX, ID NN NOW IN DIT.*
  5512. RLSG DATA C*WAITING FOR INTERLOCK.*
  5513. RLSI DATA C*REMOVABLE DEVICE CONFLICT.*
  5514. CMI SPACE 4,10
  5515. ** CMI - CHECK MST INTERLOCKS.
  5516. *
  5517. * ENTRY (T1) = MACHINE INDEX.
  5518. * (P2) = SOFTWARE RESERVE FROM *SDGL*.
  5519. * (RG) = OPERATOR OVERRIDE STATUS.
  5520. * (BFMS) = LABEL SECTOR.
  5521. *
  5522. * EXIT (A) = 0 IF NO INTERLOCKS PROHIBITING RECOVERY.
  5523. *
  5524. * USES T2.
  5525.  
  5526.  
  5527. CMI SUBR ENTRY/EXIT
  5528. LDD RG
  5529. ZJN CMIX IF OPERATOR OVERRIDE
  5530. LDD P2
  5531. NJN CMI1 IF DEVICE INTERLOCK SET
  5532. LDM N4SS+5*STLL
  5533. LPC MLIAL+MLIHD+MLIFD+MLIPF
  5534. ZJN CMIX IF NO FULL / PF INITIALIZE PENDING
  5535. LDM N4SS+5*DULL+2
  5536. LPN 17
  5537. ADN 1 CHECK OWNER OF INITIALIZE REQUEST
  5538. CMI1 STD T2
  5539. LMD T1
  5540. ZJN CMIX IF DEVICE OPEN FOR RECOVERY
  5541. LDD T2
  5542. SHN 2 CONVERT DIT INDEX TO BYTE INDEX
  5543. RAD T2
  5544. LDM DISS-5+4,T2 SET MACHINE ID IN MESSAGE
  5545. STM CMIA+11
  5546. LDC CMIA SET EST ORDINAL IN MESSAGE
  5547. RJM SOM
  5548. * LDC CMIA WAIT ON OPERATOR COMMAND
  5549. RJM WOC
  5550. UJP CMIX RETURN
  5551.  
  5552.  
  5553. CMIA DATA C*EQXXX, BUSY ON ID NN.*
  5554. SDT SPACE 4,15
  5555. ** SDT - SEARCH DEVICE INFORMATION TABLE.
  5556. *
  5557. * ENTRY (FS - FS+4) = *STLL* WORD OF MST.
  5558. * (BFMS) = LABEL SECTOR.
  5559. *
  5560. * EXIT (A) = 0 IF THIS MACHINE NOT IDENTIFIED IN DIT.
  5561. * = MACHINE INDEX FOR THIS DEVICE.
  5562. * .LT. 0 IF ANY DIT ENTRY INTERLOCKED.
  5563. * (EC) = COUNT OF MACHINES ACCESSING DEVICE.
  5564. * (T1) = INDEX OF NEXT FREE DIT SLOT.
  5565. *
  5566. * USES T2, T3.
  5567.  
  5568.  
  5569. SDT2 LDD T2 SET MACHINE INDEX
  5570. STD T0
  5571. SDT3 LDD T2 SET INDEX OF EMPTY SLOT
  5572. STD T1
  5573. SDT4 SOD T2
  5574. NJN SDT1 IF MORE DIT ENTRIES TO CHECK
  5575. LDD T0
  5576.  
  5577. SDT SUBR ENTRY/EXIT
  5578. LDN 0
  5579. STD EC
  5580. STD T0
  5581. STD T1
  5582. LDC DISS+5*MISD+4 PRESET SEARCH ADDRESS
  5583. STD T3
  5584. LDN MISD INITIALIZE DIT INDEX
  5585. STD T2
  5586. SDT1 LCN 5 DECREMENT ADDRESS
  5587. RAD T3
  5588. LDI T3
  5589. ZJN SDT3 IF EMPTY SLOT
  5590. LMD FS+2
  5591. ZJN SDT2 IF SLOT ASSIGNED TO THIS MACHINE
  5592. AOD EC
  5593. LDM -1,T3
  5594. LPN 1
  5595. ZJN SDT4 IF ENTRY NOT INTERLOCKED
  5596. LCN 1
  5597. UJN SDTX RETURN
  5598. SPACE 4,10
  5599. QUAL *
  5600. SLT SPACE 4,10
  5601. ** SLT - SEARCH FOR LABEL TRACK.
  5602. *
  5603. * ENTRY (A) = 0 IF STARTING SCAN FOR LABEL TRACK.
  5604. *
  5605. * EXIT (A) = 0 IF END OF LABEL TRACK SCAN.
  5606. * (T6) = NEXT LABEL TRACK CANDIDATE.
  5607. *
  5608. * USES T1, T2, CM - CM+4.
  5609. *
  5610. * CALLS STA.
  5611.  
  5612.  
  5613. SLT1 LDD T6 SET TRT WORD INDEX
  5614. SLT2 SHN 21-1
  5615. LMD TH REMOVE TRACK BIT
  5616. STD T1
  5617. SHN 1-21 SET BYTE INDEX
  5618. STD T2
  5619. RJM STA SET FWA OF TRT
  5620. ADD T1
  5621. CRD CM
  5622. LDM CM,T2 CHECK TRACK
  5623. LMC 3777
  5624. NJN SLTX IF NOT FLAWED
  5625. AOD T6 ADVANCE TRACK
  5626. SLT3 LMC LTKL
  5627. SLTA EQU *-1
  5628. NJN SLT1 IF NOT AT LABEL TRACK LIMIT
  5629.  
  5630. SLT SUBR ENTRY/EXIT
  5631. NJN SLT3 IF NOT FIRST TRACK
  5632. LDC LTKL SET LIMIT FOR VALID LABEL TRACK
  5633. STM SLTA
  5634. SBN LTKL-FLTK SET FIRST TRACK
  5635. STD T6
  5636. UJN SLT2
  5637. VAL SPACE 4,20
  5638. ** VAL - VERIFY ACCESS LEVEL LIMITS.
  5639. *
  5640. * ENTRY (T5) = EST ORDINAL.
  5641. *
  5642. * EXIT (A) = 0 IF ACCESS LEVELS WITHIN LIMITS, OR OPERATOR
  5643. * ENTERED *GO,CMS*.
  5644. * (EC) = *STSV* WHEN ACCESS LEVELS NOT WITHIN LIMITS ON
  5645. * *RMS* CALL PROCESSING REMOVABLE DEVICE, *CMS*
  5646. * CALL PROCESSING SECURED SYSTEM, OR *CMS* CALL
  5647. * PROCESSING UNSECURED SYSTEM IN WHICH OPERATOR
  5648. * ENTERED *PAUSE*.
  5649. * TO *HNG* ON *RMS* CALL PROCESSING NON-REMOVABLE
  5650. * DEVICE WHEN ACCESS LEVELS NOT WITHIN LIMITS.
  5651. *
  5652. * USES CM, EC, CN - CN+4.
  5653. *
  5654. * CALLS PUE, SOM.
  5655. *
  5656. * MACROS SFA.
  5657.  
  5658.  
  5659. VAL7 LDN 0 CLEAR ERROR RETURN STATUS
  5660.  
  5661. VAL SUBR ENTRY/EXIT
  5662. SFA EST,T5 GET ACCESS LEVELS FROM EST
  5663. ADK EQAE
  5664. CRD CN
  5665. LDM N4SS+5*PFGL+4 GET ACCESS LEVELS CONTAINED IN MST
  5666. SHN -6
  5667. STD CM
  5668. LDD CN+3 COMPARE LOWER LEVELS
  5669. LPN 70
  5670. STD CN
  5671. LDD CM
  5672. SCN 7
  5673. SBD CN
  5674. MJN VAL2 IF LOWER LEVEL NOT WITHIN LIMITS
  5675. LDD CM COMPARE UPPER LEVELS
  5676. LPN 7
  5677. STD CM
  5678. LDD CN+3
  5679. LPN 7
  5680. SBD CM
  5681. VAL1 PJN VAL7 IF ACCESS LEVELS WITHIN LIMITS
  5682. VAL2 LDD RE PROCESS *RMS* ERROR
  5683. * UJN VAL5 (PROCESS *CMS* ERROR)
  5684. SHN 21-10
  5685. PJN VAL6 IF NON-RECOVERABLE DEVICE
  5686. VAL3 LDN STSV SET ERROR STATUS
  5687. STD EC
  5688. VAL4 UJN VALX RETURN
  5689.  
  5690. VAL5 LDD FN PROCESS *CMS* ERROR
  5691. SHN 21-6
  5692. PJN VAL1 IF DEVICE ALREADY AVAILABLE
  5693. VALB RJM PUE PROCESS UNSECURED ERROR
  5694. * UJN VAL3 (SECURED SYSTEM)
  5695. NJN VAL3 IF OPERATOR ENTERED *PAUSE*
  5696. UJN VAL4 RETURN
  5697.  
  5698. VAL6 LDC VALA SET EST ORDINAL IN MESSAGE
  5699. RJM SOM
  5700. LJM /RMS/HNG HANG PP
  5701.  
  5702.  
  5703. VALA DATA C*EQXXX, DEVICE ACCESS ERROR.*
  5704. WMT SPACE 4,20
  5705. ** WMT - ENTER MST TO CM TABLE.
  5706. *
  5707. * ENTRY (A) = STATUS OF LABEL READ ATTEMPT.
  5708. * (CA) = ADDRESS FOR MST.
  5709. * (T5) = EST ORDINAL.
  5710. * (FN - FN+4) = EST ENTRY.
  5711. * (FS - FS+4) = STLL WORD FROM MST.
  5712. * (T7) = SECTOR READ.
  5713. * (T6) = LABEL TRACK READ.
  5714. * (SN) = LABEL SECTOR NUMBER.
  5715. *
  5716. * EXIT (CA) = ADDRESS FOR MST OF NEXT UNIT.
  5717. * TO */RMS/HNG* IF LINK DEVICE SIZE ERROR.
  5718. *
  5719. * USES T1, CA, EC, CM - CM+4, FS - FS+4.
  5720. *
  5721. * CALLS GAS, LRA, SES, VAL.
  5722.  
  5723.  
  5724. WMT SUBR ENTRY/EXIT
  5725. STD EC SAVE STATUS
  5726. ZJN WMT3 IF NO ERROR
  5727.  
  5728. * ERROR ENCOUNTERED ON LABEL READ.
  5729.  
  5730. WMTA LMN STNR
  5731. * PSN (CMS CALL)
  5732. NJN WMT1 IF NOT *NOT READY*
  5733. STD EC CLEAR ERROR CODE (RMS ONLY)
  5734. WMT1 LDC MSTL*5
  5735. STD T1
  5736. WMT2 LDN 0 CLEAR MST AREA
  5737. STM N4SS-1,T1
  5738. SOD T1
  5739. NJN WMT2
  5740. AOD RE SET NO LABEL PRESENT
  5741. LDD FN+4
  5742. SHN 3
  5743. ADN PFGL RETAIN PF DESCRIPTION
  5744. CRM N4SS+5*PFGL,TW
  5745. LDD EC SET ERROR STATUS IN MST IMAGE
  5746. STM N4SS+5*STLL+1
  5747. NJN WMT2.1 IF ERROR STATUS PRESENT
  5748. LDD FS+1
  5749. LPN 77 PRESERVE EXISTING ERROR STATUS
  5750. STD EC
  5751. WMT2.1 LJM WMT4 CONTINUE
  5752.  
  5753. * LABEL READ SUCCESSFUL.
  5754.  
  5755. WMT3 RJM VAL VERIFY ACCESS LEVELS
  5756. NJN WMT1 IF LEVELS NOT WITHIN LIMITS
  5757. LDD T6 SET LABEL TRACK
  5758. STM N4SS+5*ALGL+1
  5759. LDD T7 SET SECTOR READ
  5760. STM N4SS+5*DILL
  5761. LDM N4SS+5*ACGL+4 CLEAR PF UTILITY INTERLOCK
  5762. LPC MGLAP
  5763. STM N4SS+5*ACGL+4
  5764. LDM N4SS+STLL*5+1 CLEAR ERROR STATUS
  5765. SCN 77
  5766. STM N4SS+STLL*5+1
  5767. RJM GAS SET ALTERNATE LABEL SECTOR
  5768. STM N4SS+5*DULL
  5769. WMTC UJN WMT4 WRITE LABEL DATA TO CM
  5770. * PSN (IF LINK DEVICE RECOVERY)
  5771.  
  5772. * VERIFY TRT LENGTH FOR LINK DEVICE.
  5773.  
  5774. LDD FN+4 GET TRT LENGTH DEFINED AT DEADSTART
  5775. SHN 3
  5776. ADK TDGL
  5777. CRD CM
  5778. LDD CM+2
  5779. LMM N4SS+TDGL*5+2 TRT LENGTH RECOVERED FROM DEVICE
  5780. ZJN WMT4 IF CORRECT TRT LENGTH
  5781. LDC WMTD *LINK DEVICE SIZE ERROR.*
  5782. LJM /RMS/HNG HANG PP
  5783.  
  5784. * ENTER LABEL DATA INTO CM TABLE.
  5785.  
  5786. WMT4 LDN MSTL SET MST LENGTH
  5787. STD T1
  5788. RJM LRA LOAD REFERENCE ADDRESS
  5789. ADD CA
  5790. CWM N4SS,T1
  5791. LDN MSTL ADVANCE TABLE ADDRESS
  5792. RAD CA
  5793.  
  5794. * ENTER APPROPRIATE STATUS TO MST.
  5795.  
  5796. LDD SN
  5797. NJN WMT6 IF NOT FIRST UNIT OF EQUIPMENT
  5798. LDD FN
  5799. SHN 21-6
  5800. PJN WMT5 IF DEVICE AVAILABLE
  5801. LDD FN+4 STORE PF DESCRIPTION
  5802. SHN 3
  5803. ADN PFGL
  5804. CWM N4SS+5*PFGL,TW
  5805. ERRNZ PUGL-PFGL-1 ADJUST IF *PFGL* POSITION CHANGES
  5806. WMTB UJN WMT5 CHECK PREVIOUS ERROR STATUS
  5807. * PSN (RECOVERING MMF LINK DEVICE)
  5808. SBN PFGL+2-ALGL STORE LINK DEVICE ALLOCATION WORD
  5809. CWM N4SS+5*ALGL,ON
  5810. LDM N4SS+5*ALGL+4 SET DAT TRACK
  5811. STM ADEA
  5812. WMT5 LDD FS+1
  5813. LPN 77 CHECK CURRENT ERROR STATUS
  5814. SBN MNEC
  5815. PJN WMT6 IF STATUS NOT TO BE CLEARED
  5816. LDD EC
  5817. RJM SES SET/CLEAR ERROR STATUS
  5818. WMT6 LJM WMTX RETURN
  5819.  
  5820.  
  5821. WMTD DATA C*LINK DEVICE SIZE ERROR.*
  5822. WOC SPACE 4,10
  5823. ** WOC - WAIT ON OPERATOR COMMAND.
  5824. *
  5825. * ENTRY (A) = ADDRESS OF PROMPT MESSAGE.
  5826. *
  5827. * EXIT (A) = 0 IF OPERATOR ENTERED *GO*.
  5828. * = 1 IF OPERATOR ENTERED *PAUSE*.
  5829. *
  5830. * USES T8, CM - CM+4.
  5831. *
  5832. * MACROS PAUSE.
  5833.  
  5834.  
  5835. WOC SUBR ENTRY/EXIT
  5836. STM WOCC
  5837. WOCA LDC **+SNSW ADDRESS OF *SNSW* IN CP (*RMS* - SYSTEM CP)
  5838. CRD CM GET SENSE SWITCH WORD
  5839. STD T8
  5840. LDN 3 SET PAUSE FLAGS
  5841. STD CM+3
  5842. LDD T8 STORE PAUSE FLAGS
  5843. CWD CM
  5844. ADN MS2W-SNSW STORE CONTROL POINT MESSAGE
  5845. CWM *,TR
  5846. WOCC EQU *-1
  5847. WOC1 LCN 0 PAUSE FOR OPERATOR ACTION
  5848. SBN 1
  5849. NJN *-1 IF DELAY NOT COMPLETE
  5850. PAUSE NE
  5851. LDD T8 READ SENSE SWITCH WORD
  5852. CRD CM
  5853. LDD CM+3 CHECK FOR OPERATOR INPUT
  5854. LPN 2
  5855. NJN WOC1 IF OPERATOR HAS NOT RESPONDED
  5856. LMD CM+3
  5857. UJP WOCX RETURN
  5858.  
  5859.  
  5860. ERRNG BFMS-* OVERFLOW INTO BUFFER
  5861. TITLE PRESET.
  5862. PRS SPACE 4,10
  5863. ** PRS - PRESET.
  5864.  
  5865.  
  5866. PRS BSS 0 ENTRY
  5867. LDD RS CHECK RECOVERY STATUS
  5868. LPN FLMK
  5869. LMN FLCM
  5870. NJN PRS1 IF NOT LEVEL 3 RECOVERY
  5871. ISTORE RDLC,(UJN RDL15) BYPASS *RLM* CALL
  5872. PRS1 LDM DLYA CHECK PP SPEED
  5873. LPN 14
  5874. RAM SFTA
  5875. LDC MMFL READ MMF STATUS WORD
  5876. CRD CM
  5877. LDD CM SAVE MACHINE ID
  5878. STM CDIA
  5879. STM /ISD/RLSF+5
  5880. LDD CM+4
  5881. ZJP PRS4 IF STAND ALONE SYSTEM
  5882. LDK STDI+T1 ACTIVATE *EMF* SUBROUTINE
  5883. STM EMFA
  5884. LDM LDMP READ LINK DEVICE ALLOCATION WORD
  5885. SHN 3
  5886. ADN ALGL
  5887. CRD CM
  5888. LDD CM+4 SET DAT TRACK
  5889. STM ADEA
  5890. RJM CEI INITIALIZE *CEA* SUBROUTINE
  5891. PRS4 LDD RS
  5892. ZJN PRS5 IF NOT RECOVERY DEADSTART
  5893. LCN 1RW-1RT
  5894. RAM /ISD/RLSF+7 MODIFY ERROR MESSAGE
  5895. ISTORE /ISD/RLSB,(NJN /ISD/RLS17) MODIFY DIT CHECK
  5896. PRS5 LDD IR
  5897. LMC 2RCM
  5898. ZJN PRS6 IF *CMS* CALL
  5899. ISTORE RLSA,(UJN RLS11) SET RECOVERY LEVEL CHECK
  5900. LDN NCPL
  5901. CRD CM
  5902. AOD CM+1 GET SYSTEM CPA ADDRESS
  5903. SHN 7
  5904. LJM PRS8 SET *SNSW* ADDRESS
  5905.  
  5906. PRS6 LDC UJNI+2 DISABLE CALLS TO DEADSTART ROUTINES
  5907. STM MRLB
  5908. STM RDLA
  5909. STM /ISD/RLSD
  5910. ISTORE VAL2,(UJN VAL5)
  5911. ISTORE CMEA,(UJN CME8)
  5912. ISTORE CMEB,(UJN CME8)
  5913. LDC RLM6 SET ERROR RETURN FROM *RLM*
  5914. STM RLMA
  5915. LDN PSNI
  5916. STM WMTA
  5917. LDD CP
  5918. ADN MS2W
  5919. STM /ISD/RLSC
  5920. LDM /CMS/DPPB
  5921. SHN -6
  5922. LMN UJNI/100
  5923. NJN PRS7 IF DEADSTART SEQUENCING
  5924. ISTORE RDLC,(UJN RDL15) BYPASS *RLM* CALL
  5925. PRS7 LDD CP GET CPA ADDRESS
  5926. PRS8 ADN SNSW SET *SNSW* ADDRESS
  5927. STM WOCA+1
  5928. LDN SSML DETERMINE IF SECURED SYSTEM
  5929. CRD CM
  5930. LDD CM
  5931. LPN 77
  5932. ZJN PRS9 IF UNSECURED SYSTEM
  5933. ISTORE VALB,(UJN VAL3) DISABLE CALL TO *PUE*
  5934. PRS9 LJM RDBX EXIT
  5935. EMF SPACE 4,10
  5936. ** EMF - ENABLE MMF RECOVERY.
  5937. *
  5938. * ENTRY (A) = ADDRESS OF INSTRUCTION LIST.
  5939. *
  5940. * EXIT (A) = 0.
  5941. *
  5942. * USES T1, T2.
  5943.  
  5944.  
  5945. EMF1 STD T2 SET INSTRUCTION ADDRESS
  5946. LDN PSNI REPLACE INSTRUCTION WITH *PSN*
  5947. STI T2
  5948. AOD T1 ADVANCE LIST ADDRESS
  5949. EMF2 LDI T1
  5950. NJN EMF1 LOOP TO END OF LIST
  5951. EMF3 LDN 0
  5952.  
  5953. EMF SUBR ENTRY/EXIT
  5954. EMFA UJN EMF3 EXIT (STAND-ALONE SYSTEM)
  5955. * STD T1 SET LIST ADDRESS (MULTI-MAINFRAME SYSTEM)
  5956. STM MMFP SET MMF PRESENT
  5957. UJN EMF2 ENTER LOOP
  5958. SPACE 4,10
  5959.  
  5960. CEI HERE
  5961. SPACE 4,10
  5962. * LIST OF *CMS* INSTRUCTIONS MODIFIED FOR MMF SYSTEM.
  5963.  
  5964. QUAL CMS
  5965. LCMS BSS 0
  5966. LCMS HERE
  5967. ERRZR LCMS-* TABLE EMPTY - REMOVE PRESET CODE
  5968. CON 0 TERMINATE LIST
  5969.  
  5970. * LIST OF *RMS* INSTRUCTIONS MODIFIED FOR MMF RECOVERY.
  5971.  
  5972. QUAL RMS
  5973. LRMS BSS 0
  5974. LRMS HERE
  5975. ERRZR LRMS-* TABLE EMPTY - REMOVE PRESET CODE
  5976. CON 0 TERMINATE LIST
  5977.  
  5978. QUAL
  5979. SPACE 4,10
  5980. OVERFLOW ORDB,EPFW CHECK FOR OVERFLOW
  5981. TTL MSM/4DC - VALIDATE PF SYSTEM.
  5982. TITLE
  5983. IDENT 4DC,/RDC/RDCX
  5984. *COMMENT MSM - VALIDATE PF SYSTEM.
  5985. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  5986. SPACE 4
  5987. *** *VPF* VALIDATES THAT THE PERMANENT FILE SYSTEM
  5988. * CONTAINS NO DUPLICATE PACKNAMES, DEVICE NUMBERS OR USER
  5989. * MASKS WITHIN A FAMILY. THE MST TABLES FOR ALL ACTIVE
  5990. * DEVICES ARE VERIFIED TO BE UNIQUE.
  5991. SPACE 4
  5992. *** DAYFILE MESSAGES.
  5993. *
  5994. * *EQXXX EQYYY CONFLICTING DN.* = TWO EST ORDINALS HAVE THE
  5995. * SAME FAMILY NAME AND DEVICE NUMBER, AND ONE DEVICE IS A
  5996. * SYSTEM DEVICE. ACTION - REMOVE ONE OF THE DEVICES.
  5997. *
  5998. * *EQXXX EQYYY CONFLICTING PN.* = TWO AUXILIARY DEVICES HAVE
  5999. * THE SAME PACKNAME. ACTION - REMOVE ONE OF THE DEVICES.
  6000. *
  6001. * *EQXXX EQYYY CONFLICTING UM.* = TWO EST ORDINALS IN THE SAME
  6002. * FAMILY HAVE ONE OR MORE DUPLICATED BITS IN THE *DM* MASK, AND
  6003. * ONE DEVICE IS A SYSTEM DEVICE. ACTION - REMOVE ONE OF THE
  6004. * DEVICES.
  6005. SPACE 4
  6006. ** ENTRY CONDITIONS.
  6007. *
  6008. * (RS) = RECOVERY STATUS.
  6009. TITLE MAIN ROUTINE.
  6010. SPACE 4,10
  6011. QUAL RDC
  6012. ORG ORDC
  6013.  
  6014. RDC SUBR ENTRY/EXIT
  6015. LDD IR
  6016. LMC 2RRM
  6017. ZJN RDC3 IF *RMS* CALL
  6018.  
  6019. * VERIFY RUNNING SYSTEM.
  6020.  
  6021. RDC1 RJM VPF VERIFY PF SYSTEM
  6022. ZJN RDCX IF NO ERRORS
  6023. LDD EF
  6024. NJN RDC1 IF EITHER DEVICE SET UNAVAILABLE
  6025. LDD P1
  6026. STD T5
  6027. LDD EC SET ERROR STATUS ON FIRST DEVICE
  6028. RJM SES
  6029. LDD P2
  6030. STD T5
  6031. LDD EC SET ERROR STATUS FOR SECOND DEVICE
  6032. RJM SES
  6033. RDC2 UJP RDCX RETURN
  6034.  
  6035. * VERIFY DEADSTART SYSTEM.
  6036.  
  6037. RDC3 LDD RS
  6038. NJN RDC4 IF RECOVERY DEADSTART
  6039. RJM SDF SET DEFAULT FAMILY NAME
  6040. LDN 0
  6041. RJM GFO ENTER DEFAULT FAMILY IN FOT
  6042. RDC4 LDD RC
  6043. ZJN RDC6 IF NO EQUIPMENT RECOVERED
  6044. RDC5 RJM VPF VERIFY PF SYSTEM FOR CONFLICTS
  6045. ZJN RDC6 IF NO CONFLICTS
  6046. MJN RDC5 IF ERROR ON NON-SYSTEM DEVICE
  6047. LJM /RMS/HNG DISPLAY ERROR AND HANG
  6048.  
  6049. * RESET DEFAULT FAMILY EQUIPMENT TO FAMILY MASTER EQUIPMENT.
  6050.  
  6051. RDC6 RJM SDF SET DEFAULT FAMILY NAME
  6052. RJM SFE SET FAMILY EQUIPMENT
  6053. NJN RDC2 IF MASTER EQUIPMENT NOT FOUND
  6054. LDD T2
  6055. STD CN+3
  6056. LDC PFNL SET FAMILY EST ORDINAL IN *PFNL*
  6057. CWD CN
  6058. UJN RDC2 RETURN
  6059. TITLE PRIMARY SUBROUTINES.
  6060. SDF SPACE 4,10
  6061. ** SDF - SET DEFAULT FAMILY NAME.
  6062. *
  6063. * EXIT (CN - CN+4) = *PFNL* WORD.
  6064. * (FN - FN+4) = *PFGL* WORD FROM DEFAULT FAMILY MST.
  6065. *
  6066. * USES CN - CN+4, FN - FN+4.
  6067. *
  6068. * MACROS SFA.
  6069.  
  6070.  
  6071. SDF SUBR ENTRY/EXIT
  6072. LDC PFNL
  6073. CRD CN
  6074. SFA EST,CN+3 READ FAMILY EST ENTRY
  6075. ADK EQDE
  6076. CRD FN
  6077. LDD FN+4 READ FAMILY NAME
  6078. SHN 3
  6079. ADN PFGL
  6080. CRD FN
  6081. UJN SDFX RETURN
  6082. VPF SPACE 4,10
  6083. ** VPF - VERIFY PF SYSTEM FOR CONFLICTS IN -
  6084. * DEVICE NUMBERS.
  6085. * DEVICE MASKS.
  6086. * PACKNAMES.
  6087. *
  6088. * USES EF, EQ, T2, T5, T7, CM - CM+4, FN - FN+7, FS - FS+4.
  6089. *
  6090. * CALLS CFN, CFR, ERR, GNE, LRA.
  6091. *
  6092. * MACROS SFA.
  6093.  
  6094.  
  6095. VPF SUBR ENTRY/EXIT
  6096. LDN 0 CLEAR FAMILY COUNT
  6097. STD EF
  6098. LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  6099. STD EQ
  6100. VPF1 AOD EQ READ EST ENTRY
  6101. STD T5
  6102. LMD LO
  6103. ZJN VPFX IF END OF EST
  6104. RJM LRA LOAD REFERENCE ADDRESS
  6105. ADD EQ
  6106. CRD RD
  6107. SFA EST,EQ GET EST ENTRY
  6108. ADK EQDE
  6109. CRD FN
  6110. LDD RE
  6111. ZJN VPF1 IF DEVICE NOT BEING RECOVERED
  6112. LPC 300
  6113. LMD HN
  6114. ZJN VPF1 IF UNAVAILABLE DEVICE
  6115. LDD FN+4
  6116. SHN 3
  6117. ADN PFGL READ FAMILY/PACK NAME
  6118. CRD FN
  6119. ADN STLL-PFGL GET DEVICE STATUS
  6120. CRD T7
  6121. SBN STLL-PUGL READ DEVICE MASK
  6122. CRD CM
  6123. ADN MDGL-PUGL CHECK AUXILIARY STATUS
  6124. CRD FS
  6125. LDD T7 CHECK DEVICE STATUS
  6126. LPC MLIAL+MLIHD+MLIFD+MLUNL
  6127. NJN VPF1 IF UNLOAD/INITIALIZE PENDING
  6128. LDD FS
  6129. SHN -12
  6130. LPN 1
  6131. STD T2
  6132. VPF2 RJM GNE GET NEXT ENTRY
  6133. ZJN VPF7 IF NOT FOUND
  6134. RJM CFN COMPARE DEVICE NAMES
  6135. NJN VPF2 IF NOT SAME FAMILY
  6136. LDD T2
  6137. LMN 1
  6138. ZJN VPF3 IF AUXILIARY DEVICE
  6139. LDD T7
  6140. LMN 1
  6141. ZJN VPF3 IF NEW DEVICE IS AN AUXILIARY DEVICE
  6142.  
  6143. * CHECK DEVICE NUMBERS.
  6144.  
  6145. LDD FS+3
  6146. LMD FN+3
  6147. ZJN VPF4 IF SAME DEVICE NUMBERS
  6148.  
  6149. * CHECK USER MASKS.
  6150.  
  6151. LDD CN+4
  6152. STM VPFA
  6153. LDD CM+4
  6154. LPC *
  6155. VPFA EQU *-1
  6156. LPC 377
  6157. ZJN VPF2 IF NOT DUPLICATE MASKS
  6158. LDN STUM-STPN SET USER MASK ERROR
  6159. VPF3 ADN STPN-STDN SET PACKNAME ERROR
  6160. VPF4 ADN STDN SET DEVICE NUMBER ERROR
  6161. LJM ERR
  6162.  
  6163. VPF7 LDD T2
  6164. NJN VPF8 IF AUXILIARY DEVICE
  6165. RJM CFR CHECK FAMILY DEVICE RECOVERED
  6166. VPF8 LJM VPF1 LOOP FOR NEXT EQUIPMENT
  6167. TITLE SUBROUTINES.
  6168. CFN SPACE 4
  6169. ** CFN - COMPARE FAMILY/PACK NAMES.
  6170. *
  6171. * ENTRY (FN - FN+4) = FAMILY/PACK NAME1.
  6172. * (FS - FS+4) = FAMILY/PACK NAME2.
  6173. *
  6174. * EXIT (A) = 0 IF NAMES EQUAL.
  6175.  
  6176.  
  6177. CFN SUBR ENTRY/EXIT
  6178. LDD FN
  6179. LMD FS
  6180. NJN CFNX IF NOT EQUAL
  6181. LDD FN+1
  6182. LMD FS+1
  6183. NJN CFNX IF NOT EQUAL
  6184. LDD FN+2
  6185. LMD FS+2
  6186. NJN CFNX IF NOT EQUAL
  6187. LDD FN+3
  6188. LMD FS+3
  6189. SCN 77
  6190. UJN CFNX EXIT
  6191. CFR SPACE 4,10
  6192. ** CFR - CHECK FAMILY DEVICE RECOVERED.
  6193. *
  6194. * ENTRY (EQ) = EST ORDINAL.
  6195. *
  6196. * ERROR TO *ERR* IF FOT FULL.
  6197. * TO *RDCX* IF ERROR FLAG SET.
  6198.  
  6199.  
  6200. CFR SUBR ENTRY/EXIT
  6201. LDD RS
  6202. NJN CFRX IF RECOVERY DEADSTART
  6203. LDD RE
  6204. SHN 21-7
  6205. PJN CFRX IF DEVICE NOT RECOVERED
  6206. LDN 0 SEARCH FOR/CREATE FOT ENTRY
  6207. RJM GFO
  6208. SCN 1
  6209. ZJN CFRX IF ENTRY FOUND/CREATED
  6210. LPC 400000
  6211. LMN STFF
  6212. PJN ERR IF FOT FULL
  6213. LJM RDCX EXIT
  6214. ERR SPACE 4
  6215. ** ERR - PROCESS ERROR CONDITIONS.
  6216. *
  6217. * ENTRY (A) = ERROR STATUS.
  6218. * (EQ) = EST ORDINAL OF FIRST DEVICE.
  6219. * (T5) = EST ORDINAL OF SECOND DEVICE.
  6220. *
  6221. * USES FN - FN+4, P1, P2, T1, T5, EC, EQ.
  6222. *
  6223. * CALLS C2D, IES, LRA.
  6224. *
  6225. * MACROS SFA.
  6226.  
  6227.  
  6228. ERR STD EC SAVE ERROR CODE
  6229. LDD T5 SAVE EST ORDINAL OF SECOND DEVICE
  6230. STD P2
  6231. LDD EQ SAVE EST ORDINAL OF FIRST DEVICE
  6232. STD P1
  6233. STD T5 PROCESS FIRST EST ORDINAL
  6234. RJM LRA LOAD REFERENCE ADDRESS
  6235. ADD EQ
  6236. CRD RD
  6237. SFA EST,T5
  6238. ADK EQDE
  6239. CRD FN
  6240. LDD RE
  6241. SHN -6
  6242. LPN 62
  6243. LMN 62
  6244. ZJN ERR3 IF RECOVERED SYSTEM DEVICE
  6245. SCN 20
  6246. NJN ERR1 IF EQUIPMENT NOT RECOVERED
  6247. AOD EF FLAG *IES* CALL
  6248. RJM IES INITIALIZE EQUIPMENT STATUS
  6249. ERR1 LDD P2 PROCESS SECOND EQUIPMENT
  6250. STD EQ
  6251. STD T5
  6252. RJM LRA LOAD REFERENCE ADDRESS
  6253. ADD EQ
  6254. CRD RD
  6255. SFA EST,T5 READ EST ENTRY
  6256. ADK EQDE
  6257. CRD FN
  6258. LDD RE
  6259. SHN -6
  6260. LPN 62
  6261. LMN 62
  6262. ZJN ERR3 IF RECOVERED SYSTEM DEVICE
  6263. SCN 20
  6264. NJN ERR2 IF EQUIPMENT NOT RECOVERED
  6265. AOD EF FLAG *IES* CALL
  6266. RJM IES INITIALIZE EQUIPMENT STATUS
  6267. ERR2 LCN 0 SET NON SYSTEM DEVICE ERROR
  6268. LJM VPFX
  6269.  
  6270. * PROCESS ERROR ON SYSTEM DEVICE.
  6271.  
  6272. ERR3 SFA EST,P1
  6273. ADK EQDE
  6274. CRD FN
  6275. LDD FN+3 SET DEVICE TYPE
  6276. STM ERRA
  6277. LDD P1 CONVERT UPPER TWO DIGITS OF FIRST DEVICE
  6278. SHN -3
  6279. RJM C2D
  6280. STM ERRA+1
  6281. LDD P1 CONVERT LOWER DIGIT OF FIRST DEVICE
  6282. LPN 7
  6283. SHN 6
  6284. ADC 2R0
  6285. STM ERRA+2
  6286. SFA EST,P2
  6287. ADK EQDE
  6288. CRD FN
  6289. LDD FN+3 SET DEVICE TYPE
  6290. STM ERRA+3
  6291. LDD P2 CONVERT UPPER TWO DIGITS OF SECOND DEVICE
  6292. SHN -3
  6293. RJM C2D
  6294. STM ERRA+4
  6295. LDD P2 CONVERT LOWER DIGIT OF SECOND DEVICE
  6296. LPN 7
  6297. SHN 6
  6298. ADC 2R0
  6299. STM ERRA+5
  6300. LDD EC SET PROPER ERROR
  6301. SBN STFF
  6302. ZJN ERR4 IF FOT FULL
  6303. ADN STFF-STDN
  6304. STD T1
  6305. LDM ERRC,T1
  6306. STM ERRB
  6307. LCN ERRD-ERRA
  6308. ERR4 ADC ERRD
  6309. LJM VPFX
  6310.  
  6311.  
  6312. ERRA DATA H*EQXXX EQYYY CONFLICTING *
  6313. ERRB DATA C*ET. *
  6314. ERRC VFD 12/0LDN
  6315. VFD 12/0LPN
  6316. VFD 12/0LUM
  6317. ERRD DATA C*FOT FULL.*
  6318. GNE SPACE 4
  6319. ** GNE - GET NEXT ENTRY.
  6320. *
  6321. * ENTRY (T5) = ADDRESS OF LAST ENTRY CHECKED.
  6322. *
  6323. * EXIT (FS - FS+4) = PF DESCRIPTION WORD.
  6324. * (CN+4) = DEVICE MASK.
  6325. * (A) = 0 IF ENTRY NOT FOUND.
  6326. * (T7) = 1, IF AUXILIARY DEVICE.
  6327. *
  6328. * USES T1, T5, T7, CM - CM+3, FS - FS+4.
  6329. *
  6330. * CALLS LRA.
  6331.  
  6332.  
  6333. GNE SUBR ENTRY/EXIT
  6334. GNE1 AOD T5
  6335. LMD LO
  6336. ZJN GNEX IF END OF MASS STORAGE DEVICES
  6337. RJM LRA LOAD REFERENCE ADDRESS
  6338. ADD T5
  6339. CRD T7
  6340. SFA EST,T5 READ NEXT EST ENTRY
  6341. ADK EQDE
  6342. CRD FS READ NEXT ENTRY
  6343. * LDD RE CHECK DEVICE CHARACTERISTICS
  6344. LDD CM+2
  6345. SHN 21-13
  6346. PJN GNE1 IF NOT MASS STORAGE
  6347. SHN 21-6-21+13
  6348. PJN GNE2 IF AVAILABLE
  6349. SHN 21-7-21+6+22
  6350. PJN GNE1 IF DEVICE NOT BEING RECOVERED
  6351. GNE2 LDD FS+4 READ MST
  6352. STD T1 SAVE MST ADDRESS
  6353. SHN 3
  6354. ADN MDGL
  6355. CRD FS
  6356. ADN STLL-MDGL GET DEVICE STATUS
  6357. CRD T7
  6358. LDD T7 CHECK INITIALIZE REQUESTED
  6359. LPC MLIAL+MLIHD+MLIFD
  6360. NJN GNE1 IF FULL INITIALIZE PENDING
  6361. LDD FS
  6362. SHN -12
  6363. LPN 1
  6364. STD T7
  6365. LDD T1 GET FAMILY NAME
  6366. SHN 3
  6367. ADN PFGL
  6368. CRD FS
  6369. ADN PUGL-PFGL READ DEVICE MASK
  6370. CRD CN
  6371. LJM GNEX RETURN
  6372. SPACE 4,10
  6373. ** COMMON DECKS.
  6374.  
  6375.  
  6376. *CALL COMPSFE
  6377. GFO$ EQU 0 DEFINE FOT ACCESS ROUTINE
  6378. *CALL COMPUFT
  6379. SPACE 4,10
  6380. OVERFLOW ORDC,EPFW CHECK FOR OVERFLOW
  6381. TTL MSM/4DD - DEVICE VERIFICATION ROUTINES.
  6382. TITLE
  6383. IDENT 4DD,/RDD/RDDX
  6384. *COMMENT MSM - DEVICE VERIFICATION ROUTINES.
  6385. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  6386.  
  6387.  
  6388. *** *4DD* CONTAINS LABEL VERIFICATION ROUTINES.
  6389.  
  6390.  
  6391. QUAL RDD
  6392. ORG ORDD
  6393.  
  6394. RDD SUBR ENTRY/EXIT
  6395. LJM POV PROCESS OVERLAY PRESET
  6396. TITLE MMF ROUTINES.
  6397. ABD SPACE 4,15
  6398. ** ABD - ALLOCATE BAT FOR DEVICE.
  6399. *
  6400. * ENTRY (FN - FN+4) = EST ENTRY.
  6401. * (BAEI+4) = NEXT AVAILABLE BAT TRACK.
  6402. *
  6403. * EXIT (A) = 0 IF BAT ALLOCATED, OR IF BAT NOT REQUIRED.
  6404. * (A) = MESSAGE ADDRESS, IF NO BAT TRACK AVAILABLE.
  6405. *
  6406. * USES T6, T7, CM - CM+4, CN - CN+4.
  6407. *
  6408. * CALLS CEA, SNT.
  6409. *
  6410. * MACROS MONITOR.
  6411.  
  6412.  
  6413. ABD1 LDC ABDA EXIT WITH (A) = MESSAGE ADDRESS
  6414.  
  6415.  
  6416. ABD SUBR ENTRY/EXIT
  6417. LDD FN
  6418. LPN 40
  6419. ZJN ABDX IF NOT SHARED BUFFERED DEVICE
  6420. LDM BAEI+4 NEXT AVAILABLE BAT TRACK
  6421. ZJN ABD1 IF NO TRACK AVAILABLE
  6422. STD T6
  6423. RJM SNT SET NEXT TRACK
  6424. STM BAEI+4
  6425.  
  6426. * SET EXTENDED MEMORY ADDRESS OF BAT INTO DAT.
  6427.  
  6428. LDN 0
  6429. STD T7
  6430. RJM CEA GET ADDRESS OF BAT TRACK
  6431. LDD CM+3 SET EXTENDED MEMORY ADDRESS OF BAT
  6432. STM DATB+5
  6433. LDD CM+4
  6434. STM DATB+6
  6435.  
  6436. * CLEAR BAT.
  6437.  
  6438. LDN ZERL
  6439. CRD CM
  6440. LDD T6 SET TRACK TO CLEAR
  6441. STD CM+4
  6442. LDN BATL/100 SET NUMBER OF SECTORS TO CLEAR
  6443. STD CM+3
  6444. LDN CEMS CLEAR EXTENDED MEMORY TRACK
  6445. STD CM+1
  6446. MONITOR MTEM
  6447. UJP ABDX RETURN
  6448.  
  6449.  
  6450. ABDA DATA C* END OF BAT TRACK CHAIN.*
  6451. CDE SPACE 4,15
  6452. ** CDE - CHECK DAT ENTRY.
  6453. *
  6454. * ENTRY (DI) = DAT INDEX FROM MST.
  6455. * (QS) = INDEX INTO DEVICE ACCESS TABLE.
  6456. * (T2) = ADDRESS OF DATB+11.
  6457. * (FN - FN+4) = EST ENTRY.
  6458. * (DATB) = DAT ENTRY.
  6459. *
  6460. * EXIT (A) = 0 IF NO DAT CONFLICTS.
  6461. * (A) = ADDRESS OF ERROR MESSAGE, IF DAT CONFLICT.
  6462. * (T6) = 0, IF DAT ENTRY FOR NON-SHARED DEVICE.
  6463. * (T6) = EXTENDED MEMORY TRACK, IF SHARED DEVICE ENTRY.
  6464. *
  6465. * USES T6.
  6466.  
  6467.  
  6468. CDE2 LDI T2 CHECK MACHINE ACCESS BYTE
  6469. SHN 21-13
  6470. MJN CDE3 IF RECOVERY IN PROGRESS
  6471. LDD DI CHECK DAT INDEX
  6472. LMD QS
  6473. ZJN CDEX IF VALID INDEX
  6474. LMD QS
  6475. ZJN CDEX IF NO DAT INDEX IN MST
  6476. CDE3 LDC CSDC+3
  6477.  
  6478. CDE SUBR ENTRY/EXIT
  6479. LDM DATB+4 SET ECS POINTER FOR SHARED DEVICE
  6480. STD T6
  6481. SHN 11-13
  6482. LMD FN MAP TRACK BIT WITH SHARE FLAG
  6483. SHN 21-11
  6484. PJN CDE2 IF COMPARE
  6485. LDD T6
  6486. ZJN CDE1 IF DAT ENTRY FOR NON-SHARED DEVICE
  6487. LDN CSDC-CSDB
  6488. CDE1 ADC CSDB SET ADDRESS OF ERROR MESSAGE
  6489. UJN CDEX RETURN
  6490. CSD SPACE 4,20
  6491. ** CSD - CHECK SHARED DEVICE STATUS.
  6492. *
  6493. * ENTRY (EQ) = DEVICE EST ORDINAL.
  6494. * (RS) = RECOVERY STATUS.
  6495. * (CN - CN+4) = PF DESCRIPTOR WORD (PFGL).
  6496. * (FN - FN+4) = EST ENTRY.
  6497. *
  6498. * EXIT (A) = 0 IF NO DAT CONFLICT.
  6499. * (A) = ADDRESS OF ERROR MESSAGE, IF DAT CONFLICT.
  6500. * (T2) = 0 IF DEVICE NOT DESCRIBED IN DAT.
  6501. *
  6502. * USES QS, RE, T7, CM - CM+4.
  6503. *
  6504. * CALLS SDT, CDE, CEA.
  6505. *
  6506. * MACROS MONITOR.
  6507.  
  6508.  
  6509. CSD6 LDD MA MOVE ENTRY TO DAT BUFFER
  6510. CWD CN
  6511. CRM DATB,ON
  6512. LDD DI CHECK DAT INDEX
  6513. ZJN CSD7 IF NO DAT ENTRY FOR DEVICE
  6514. STD QS
  6515. UJN CSD8 DAT SLOT ASSIGNED
  6516.  
  6517. CSD7 LDD FN
  6518. SHN 2-11
  6519. LPN 4 MAP SHARE FLAG AS ECS TRACK REQUIRED
  6520. RAD RE
  6521. CSD8 LDN 0 CLEAR MACHINE ACCESS BYTE
  6522. CSD9 STM DATB+11
  6523.  
  6524. CSD SUBR ENTRY/EXIT
  6525. RJM SDT SEARCH DEVICE ACCESS TABLE
  6526. STD T2
  6527. ZJN CSD6 IF NO ENTRY FOR NAMED DEVICE
  6528. RJM CDE CHECK DAT ENTRY
  6529. NJN CSDX IF DAT CONFLICT/ERROR
  6530. STD T7
  6531. LDD T6
  6532. NJN CSD1 IF SHARED DEVICE
  6533. LDI T2
  6534. LPC -0
  6535. MMTE *-1
  6536. ZJN CSDX IF ACCESS BY THIS MACHINE ONLY
  6537. LDC CSDB
  6538. UJN CSDX RETURN
  6539.  
  6540. CSD1 LDI T2 CHECK MACHINES ACCESSING DEVICE
  6541. ZJN CSD9 IF NO MACHINE ACCESS
  6542. LPC -0
  6543. MMTE *-1
  6544. ADD RS
  6545. ZJN CSD9 IF ACCESS BY THIS MACHINE ONLY
  6546. SBD RS
  6547. LMI T2
  6548. ZJN CSD2 IF NOT ACCESSED BY THIS MACHINE
  6549. LDN 10
  6550. CSD2 ADN 2 FLAG TRT RECOVERY FROM EXTENDED MEMORY
  6551. RAD RE
  6552. RJM CEA CONVERT EXTENDED MEMORY ADDRESS
  6553. LDD AL SET CM TABLE ADDRESS
  6554. ADK TDGL
  6555. STD CM+2
  6556. LDC GLGL*100-100+40 SET WORD COUNT
  6557. STD CM+1
  6558. LDC RECS*1000 SUBFUNCTION = READ ECS
  6559. RAD CM+3
  6560. MONITOR ECSM ISSUE MONITOR REQUEST
  6561. LDD RA READ DRIVER WORD FROM GLOBAL MST
  6562. SHN 6
  6563. ADD AL
  6564. ADN MDGL
  6565. CRD CM
  6566. LDD DI
  6567. ZJN CSD3 IF DNAP BY THIS MACHINE
  6568. LMD QS
  6569. NJN CSD4 IF DAT CONFLICT
  6570. CSD3 LDD FN
  6571. SCN 77
  6572. SHN 14-10
  6573. LMD QS
  6574. SHN -1 COMPARE REMOVABLE STATUS + DAT INDEX
  6575. LMD CM
  6576. LPC 4377
  6577. ZJN CSD5 IF NO CONFLICT
  6578. CSD4 LDC CSDD
  6579. CSD5 LJM CSDX RETURN
  6580.  
  6581. CSDB DATA 4HNON-
  6582. CSDC DATA C*SHARED DEVICE ACTIVE IN DAT.*
  6583.  
  6584. CSDD DATA C*REMOVABLE DEVICE CONFLICT.*
  6585. EBP SPACE 4,10
  6586. ** EBP - ENABLE BST/BAT PROCESSING FOR SHARED BUFFERED DEVICE.
  6587. *
  6588. * ENTRY (EQ) = EST ORDINAL.
  6589. * (FN - FN+4) = EST ENTRY.
  6590. *
  6591. * USES T5, T6, T7, CM - CM+4.
  6592. *
  6593. * MACROS MONITOR.
  6594.  
  6595.  
  6596. EBP SUBR ENTRY/EXIT
  6597. LDD FN
  6598. SHN 21-11
  6599. PJN EBPX IF NOT SHARED DEVICE
  6600. SHN 21-5-21+11
  6601. PJN EBPX IF NOT BUFFERED DEVICE
  6602.  
  6603. * FLUSH WRITE BUFFERS / DROP ALL BUFFERS.
  6604.  
  6605. EBP1 LDN ZERL CLEAR ASSEMBLY AREA
  6606. CRD CM
  6607. LDD EQ SET EST ORDINAL
  6608. STD CM+3
  6609. LDC BMFW*100 FLUSH ALL WRITE BUFFERS
  6610. STD CM+4
  6611. MONITOR BFMM
  6612. LDN ZERL CLEAR ASSEMBLY AREA
  6613. CRD CM
  6614. LDD EQ SET EST ORDINAL
  6615. STD CM+3
  6616. LDC BMDD*100 DROP ALL BUFFERS ON DEVICE
  6617. STD CM+4
  6618. MONITOR BFMM
  6619. LDD CM+4
  6620. ZJN EBP2 IF COMPLETE
  6621. DELAY 20B DELAY TWO MILLISECONDS
  6622. PAUSE
  6623. UJP EBP1 REISSUE REQUEST
  6624.  
  6625. * CLEAR ACCESS PERMISSIONS IN *BAT*.
  6626.  
  6627. EBP2 LDN ZERL
  6628. * UJN EBP3 (*CMS* CALL)
  6629. EBPA EQU *-1
  6630. CRD CM
  6631. EBPB LDN CBWS CLEAR READ/WRITE PERMISSIONS IN *BAT*
  6632. * LDN CBRS (LVL3 - CLEAR READ PERMISSIONS IN *BAT*)
  6633. STD CM+1
  6634. EBPC LDN ** SET MACHINE INDEX
  6635. STD CM+2
  6636. LDD EQ
  6637. STD CM+4
  6638. MONITOR MTEM
  6639.  
  6640. * ENABLE BST/BAT PROCESSING.
  6641.  
  6642. EBP3 LDD MA WRITE REQUEST
  6643. CWM EBPD,ON
  6644. LDD FN+4
  6645. SHN 3
  6646. STD CM+4 SET MST ADDRESS
  6647. SHN -14
  6648. STD CM+3
  6649. LDN 1 SET WORD COUNT
  6650. STD CM+1
  6651. MONITOR UTEM
  6652. UJP EBPX RETURN
  6653.  
  6654.  
  6655. EBPD VFD 6/BDLL,6/1,6/27,42/0
  6656. LDT SPACE 4,15
  6657. ** LDT - LOAD DEVICE ACCESS TABLE.
  6658. *
  6659. * ENTRY (EL) = EXTENDED MEMORY LABEL TRACK.
  6660. *
  6661. * EXIT (QI) = CURRENT DAT INDEX.
  6662. * (QT) = LAST MST/TRT TRACK ASSIGNED.
  6663. * DEVICE ACCESS TABLE LOADED TO CM.
  6664. *
  6665. * USES CA+1, CM - CM+4, CN - CN+4, T2 - T7.
  6666. *
  6667. * CALLS CEA.
  6668. *
  6669. * MACROS MONITOR.
  6670.  
  6671.  
  6672. LDT1 LDD HN ADVANCE EXTENDED MEMORY ADDRESS
  6673. RAD CN+4
  6674. SHN -14
  6675. RAD CN+3
  6676. LDD HN ADVANCE CM ADDRESS
  6677. RAD CN+2
  6678. SHN -14
  6679. RAD CN+1
  6680. LDT2 LDD MA MOVE REQUEST
  6681. CWD CN
  6682. CRD CM
  6683. MONITOR ECSM ISSUE REQUEST
  6684. SOD T5 DECREMENT BLOCK COUNT
  6685. PJN LDT1 IF NOT END OF DAT
  6686.  
  6687. LDT SUBR ENTRY/EXIT
  6688.  
  6689. * RETRIEVE BAT POINTER WORD *BAET*, IF REQUIRED.
  6690.  
  6691. LDM ECLT SET LABEL TRACK
  6692. STD T6
  6693. LDN ETLT SET ENVIRONMENT TABLE SECTOR
  6694. STD T7
  6695. LDTA RJM CEA GET ADDRESS OF ENVIRONMENT TABLE SECTOR
  6696. * UJN LDT0 (NO SHARED BUFFERED DEVICES CONFIGURED)
  6697. LDN BAET ADJUST ADDRESS TO BAT POINTER
  6698. RAD CM+4
  6699. SHN -14
  6700. LMC RECS*1000 SET SUBFUNCTION
  6701. RAD CM+3
  6702. LDD MA SET CM ADDRESS
  6703. STD CM+2
  6704. LDN 0
  6705. STD CM+1
  6706. MONITOR ECSM ISSUE REQUEST
  6707. LDD MA READ *BAET*
  6708. CRM BAEI,ON
  6709.  
  6710. * RETRIEVE DAT POINTER WORD *DAET*.
  6711.  
  6712. LDT0 RJM CEA GET ADDRESS OF ENVIRONMENT TABLE SECTOR
  6713. LDN DAET ADJUST ADDRESS TO DAT POINTER
  6714. RAD CM+4
  6715. SHN -14
  6716. LMC RECS*1000 SET SUBFUNCTION
  6717. RAD CM+3
  6718. LDD MA SET CM ADDRESS
  6719. STD CM+2
  6720. LDN 0
  6721. STD CM+1
  6722. MONITOR ECSM ISSUE REQUEST
  6723. * LDN 0
  6724. STD T7
  6725. LDD MA READ *DAET*
  6726. CRD CM
  6727. LDD CM SET CURRENT DAT TRACK
  6728. STD QT
  6729. LDM LDMP GET DEVICE ALLOCATION WORD FROM MST
  6730. SHN 3
  6731. ADN ALGL DAT TRACK TO (T6)
  6732. CRD T6-4
  6733. LDD CM+4 SET DAT INDEX
  6734. STD QI
  6735. SHN -6 SET BLOCK COUNT
  6736. STD T5
  6737. RJM CEA
  6738. LDD CM+4 MOVE ADDRESS TO REQUEST IMAGE
  6739. STD CN+4
  6740. LDD CM+3
  6741. LMC RECS*1000
  6742. STD CN+3
  6743. LDD CA+1 SET CM ADDRESS
  6744. STD CN+2
  6745. ADD TH
  6746. STD CA+1 ADVANCE ADDRESS FOR TRT RECOVERY
  6747. LDC 77S6+40 SET WORD COUNT FOR TRANSFER
  6748. STD CN+1
  6749. LJM LDT2 ENTER LOOP
  6750. RDE SPACE 4,15
  6751. ** RDE - READ DAT ENTRY.
  6752. *
  6753. * ENTRY (EQ) = EST ORDINAL.
  6754. * (FN - FN+4) = EST ENTRY FOR DEVICE.
  6755. *
  6756. * EXIT (QS) = DAT INDEX.
  6757. * (T6) = DAT TRACK.
  6758. * (DATB) = DAT ENTRY.
  6759. *
  6760. * USES QS, RE, TS, CM - CM+4.
  6761. *
  6762. * CALLS ADE.
  6763.  
  6764.  
  6765. RDE SUBR ENTRY/EXIT
  6766. LDD FN+4 READ DRIVER WORD
  6767. SHN 3
  6768. ADN MDGL DAT INDEX TO (CM)
  6769. CRD CM
  6770. LDD CM SET DAT ORDINAL FROM INDEX
  6771. LPC 377
  6772. SHN 1
  6773. STD QS
  6774. LDN RECS SET READ SUBFUNCTION
  6775. RJM ADE ACCESS *DAT* ENTRY
  6776. LDD MA READ DAT ENTRY TO PP BUFFER
  6777. CRM DATB,TW
  6778. LDM DATB+4 SET MST/TRT TRACK IN TABLE
  6779. STD TS
  6780. SHN 1-13 ADD DAP STATUS IF SHARED DEVICE
  6781. LPN 2
  6782. RAD RE
  6783. LJM RDEX RETURN
  6784. SDT SPACE 4,15
  6785. ** SDT - SEARCH DEVICE ACCESS TABLE.
  6786. *
  6787. * ENTRY (FN - FN+4) = EST ENTRY.
  6788. * (CA+1) = CM ADDRESS (+1000) OF DAT.
  6789. * (CN - CN+3) = DEVICE DESCRIPTION.
  6790. * (QI) = CURRENT DAT INDEX.
  6791. *
  6792. * EXIT (A) = 0 IF ENTRY NOT FOUND.
  6793. * (A) = ADDRESS OF DATB+11 IF ENTRY FOUND.
  6794. * (QS) = INDEX INTO DEVICE ACCESS TABLE.
  6795. * (DI) = DAT INDEX.
  6796. *
  6797. * USES T1, T2, DI, QS, CM - CM+4, CN+4.
  6798.  
  6799.  
  6800. SDT1 LDM DATB+4
  6801. NJN SDT2 IF SHARED DEVICE SLOT
  6802. LDD T2 SAVE INDEX OF HOLE
  6803. STD QS
  6804. SDT2 LDD DI
  6805. ZJN SDT3 IF DNAP BY THIS MACHINE
  6806. LMD T2
  6807. NJN SDT3 IF NOT AT DAT SLOT FOR DEVICE
  6808. LDM DATB+4 SET MST POINTER
  6809. STD CN+4
  6810. SDT3 LDN 2 ADVANCE INDEX
  6811. RAD T2
  6812. LMD QI
  6813. ZJN SDTX IF END OF DAT ENTRIES
  6814. SDT4 LDD RA READ NEXT ENTRY
  6815. SBN 10
  6816. SHN 6
  6817. ADD CA+1
  6818. ADD T2
  6819. CRM DATB,TW
  6820. LDM DATB
  6821. ZJN SDT1 IF POSSIBLE HOLE
  6822. LDN CN
  6823. STD T1
  6824.  
  6825. * COMPARE ENTRY FOR MATCHING FAMILY/PACK NAME + DEVICE NUMBER.
  6826.  
  6827. SDT5 LDM DATB-CN,T1
  6828. LMI T1
  6829. NJN SDT2 IF NO MATCH
  6830. AOD T1
  6831. LMN CN+4
  6832. NJN SDT5 IF NOT 4 BYTES
  6833. LDD T2 SET INDEX TO MATCHING ENTRY
  6834. STD QS
  6835. LDC DATB+11
  6836.  
  6837. SDT SUBR ENTRY/EXIT
  6838. LDD FN+4 READ MST FOR DAT INDEX
  6839. SHN 3
  6840. ADN MDGL
  6841. CRD CM
  6842. LDD CM
  6843. LPC 377 EXPAND DAT INDEX
  6844. SHN 1
  6845. STD DI
  6846. LDN 0 CLEAR SEARCH INDEX
  6847. STD T2
  6848. STD CN+4
  6849. STD QS
  6850. LJM SDT4 ENTER LOOP
  6851. SNT SPACE 4,10
  6852. ** SNT - SET NEXT TRACK IN EXTENDED MEMORY TRACK CHAIN.
  6853. *
  6854. * ENTRY (A) = CURRENT TRACK.
  6855. * (LDMP) = EXTENDED MEMORY MST POINTER.
  6856. *
  6857. * EXIT (A) = NEXT TRACK.
  6858. *
  6859. * USES T0, T1, CM - CM+4.
  6860.  
  6861.  
  6862. SNT SUBR ENTRY/EXIT
  6863. SHN 21-1 REMOVE TRACK BIT
  6864. LMD TH
  6865. STD T0 SET WORD INDEX
  6866. SHN 1-21
  6867. STD T1 SET BYTE INDEX
  6868. LDM LDMP GET FWA OF TRT
  6869. SHN 3
  6870. ADN TRLL
  6871. CRD CM
  6872. LDD CM+3 READ TRT WORD
  6873. LPN 77
  6874. SHN 14
  6875. LMD CM+4
  6876. ADD T0
  6877. CRD CM
  6878. LDM CM,T1 EXTRACT NEXT TRACK
  6879. UJN SNTX RETURN
  6880. UDT SPACE 4,15
  6881. ** UDT - UPDATE DEVICE ACCESS TABLE.
  6882. *
  6883. * ENTRY (RS) = RECOVERY STATUS.
  6884. * (EQ) = EST ORDINAL.
  6885. * (FN - FN+4) = EST ENTRY.
  6886. * DAT ENTRY IN (DATB).
  6887. *
  6888. * EXIT (A) = 0 IF MST/TRT TRACK AVAILABLE.
  6889. * (A) = MESSAGE ADDRESS, IF ERROR.
  6890. *
  6891. * USES QI, QS, QT, TS, T6, T7, CM+3 - CM+7, CN - CN+4.
  6892. *
  6893. * CALLS ABD, CEA, EBP, SNT, WDE.
  6894.  
  6895.  
  6896. UDT5 LDC UDTA EXIT WITH (A) = MESSAGE ADDRESS
  6897.  
  6898. UDT SUBR ENTRY/EXIT
  6899. LDD RS
  6900. ZJN UDT1 IF LEVEL 0 DS/ON LINE RECOVERY
  6901. LDM DATB+11 SET MACHINE ACCESS
  6902. LPC -0
  6903. MMTE *-1
  6904. LMC 0
  6905. MMTE *-1
  6906. STM DATB+11
  6907. UDT1 LDD RE
  6908. LPN 2
  6909. NJN UDT3 IF DEVICE ACCESSED PREVIOUSLY
  6910. LDD QS
  6911. NJN UDT2 IF EMPTY SLOT IN *DAT*
  6912. LDD QI SET INDEX OF ENTRY
  6913. STD QS
  6914. ADN 2 ADVANCE INDEX
  6915. STD QI
  6916. UDT2 LDD RE CHECK MST/TRT TRACK REQUIRED
  6917. LPN 4
  6918. ZJN UDT3 IF NOT REQUIRED
  6919. LDD QT ASSIGN MST/TRT TRACK
  6920. RJM SNT ADVANCE CURRENT TRACK
  6921. ZJN UDT5 IF END OF TRACK CHAIN
  6922. STM DATB+4 SET TRACK IN *DAT* ENTRY
  6923. STD QT
  6924. RJM ABD ALLOCATE BAT FOR DEVICE, IF REQUIRED
  6925. NJP UDTX IF BAT TRACK NOT AVAILABLE
  6926. UDT3 RJM WDE WRITE DAT ENTRY TO ECS
  6927. LDC 4000 FLAG RECOVERY IN PROGRESS
  6928. RAM DATB+11
  6929. LDD RA UPDATE CM COPY OF DAT
  6930. SBN 10
  6931. SHN 6
  6932. ADD CA+1
  6933. ADD QS
  6934. CWM DATB,TW
  6935.  
  6936. * UPDATE MST.
  6937.  
  6938. LDD FN+4 READ DRIVER WORD
  6939. SHN 3
  6940. ADN MDGL
  6941. CRD CN
  6942. LDN ZERL
  6943. CRD CM+3
  6944. LDM DATB+4
  6945. STD TS
  6946. STD T6
  6947. LDD RE
  6948. LPN 2
  6949. ZJN UDT4 IF DEVICE NOT ACCESSED PREVIOUSLY
  6950. LDN 0
  6951. STD T7
  6952. RJM CEA CONVERT EXTENDED MEMORY ADDRESS
  6953. UDT4 LDD CN SET *DAT* INDEX IN DRIVER WORD
  6954. LPC 6000
  6955. SHN 1
  6956. LMD QS
  6957. SHN -1
  6958. STD CN
  6959. LDD FN+4 STORE MST INFORMATION
  6960. SHN 3
  6961. ADN MDGL
  6962. CWD CN
  6963. SBN MDGL-SDGL
  6964. CWD CM+3
  6965. ADN NVGL-SDGL READ *NVGL*
  6966. CRD CN
  6967. LDM DATB+5 SET BAT EM ADDRESS
  6968. STD CN+1
  6969. LDM DATB+6
  6970. STD CN+2
  6971. LDD FN+4 REWRITE *NVGL*
  6972. SHN 3
  6973. ADN NVGL
  6974. CWD CN
  6975. RJM EBP ENABLE BST/BAT PROCESSING IF REQUIRED
  6976. LDN 0
  6977. LJM UDTX RETURN
  6978.  
  6979. UDTA DATA C* END OF DAT TRACK CHAIN.*
  6980. WDE SPACE 4,15
  6981. ** WDE - WRITE DAT ENTRY TO EXTENDED MEMORY.
  6982. *
  6983. * ENTRY (QS) = DAT INDEX.
  6984. * DAT ENTRY IN (DATB).
  6985. *
  6986. * EXIT (A) = 0.
  6987. * (T6) = DAT TRACK.
  6988. *
  6989. * USES T6, T7, CM - CM+4.
  6990. *
  6991. * CALLS ADE.
  6992.  
  6993.  
  6994. WDE SUBR ENTRY/EXIT
  6995. LDD MA MOVE DAT ENTRY TO MESSAGE BUFFER
  6996. CWM DATB,TW
  6997. LDN WECS SET WRITE SUBFUNCTION
  6998. RJM ADE ACCESS *DAT* ENTRY
  6999. UJN WDEX RETURN
  7000. SPACE 4,10
  7001. ORDH EQU *+5 LOAD ADDRESS FOR *4DH*
  7002. TITLE VERIFY LABEL PARAMETERS.
  7003. CCE SPACE 4,15
  7004. ** CCE - CHECK CHAINED EQUIPMENT.
  7005. *
  7006. * ENTRY (T5) = EST ORDINAL.
  7007. * (FN - FN+4) = EST ENTRY.
  7008. *
  7009. * EXIT (A) .LT. 0 IF FIRST EQUIPMENT IN CHAIN FOUND.
  7010. * (EC) = *STCE* IF FIRST EQUIPMENT NOT FOUND.
  7011. *
  7012. * USES T3, T6, CM - CM+6, CN - CN+4.
  7013. *
  7014. * CALLS CEP, CLP, LRA.
  7015. *
  7016. * MACROS SFA.
  7017.  
  7018.  
  7019. CCE1 RJM LRA LOAD REFERENCE ADDRESS
  7020. ADD T6
  7021. CRD RD
  7022. LDD RE CHECK EQUIPMENT STATUS
  7023. SHN 21-10
  7024. PJN CCE2 IF NOT REMOVABLE DEVICE
  7025. LDD T6
  7026. LMD EQ
  7027. ZJN CCE2 IF INITIAL EQUIPMENT
  7028. SFA EST,T6 READ EST ENTRY
  7029. ADK EQDE
  7030. CRD CM
  7031. RJM CEP COMPARE EQUIPMENT PARAMETERS
  7032. NJN CCE2 IF NO MATCH
  7033. RJM LRA LOAD REFERENCE ADDRESS
  7034. ADD AL
  7035. ADN PFGL
  7036. CRD CM+2
  7037. ADN PUGL-PFGL GET USER NAME
  7038. CRD CN
  7039. RJM CLP CHECK LABEL PARAMETERS
  7040. ZJN CCE3 IF CORRECT UNIT FOUND
  7041. CCE2 AOD T6 READ EST ENTRY
  7042. LMD LO
  7043. NJN CCE1 IF NOT END OF MASS STORAGE EST
  7044. LDN STCE SET CONFIGURATION ERROR
  7045. CCE3 STD EC
  7046. SBN 1
  7047.  
  7048. CCE SUBR ENTRY/EXIT
  7049. LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  7050. STD T6 SET START OF EST SCAN
  7051. LDD FN+3
  7052. STM CEFA
  7053. UJN CCE2 ENTER LOOP
  7054. CEP SPACE 4,10
  7055. ** CEP - COMPARE EQUIPMENT PARAMETERS.
  7056. *
  7057. * ENTRY (FN - FN+4) = EST ENTRY OF PRIMARY EQUIPMENT.
  7058. * (CM - CM+4) = EST ENTRY OF DEVICE BEING CHECKED.
  7059. *
  7060. * EXIT (A) = 0 IF MATCHING EQUIPMENTS.
  7061.  
  7062.  
  7063. CEP1 LDD CM+2 TEST FOR SECONDARY CHANNEL
  7064. CEP2 LMD FN+2
  7065. LPC 4677 CHECK CHANNEL ACTIVE, MODE AND PORT
  7066.  
  7067. CEP SUBR ENTRY/EXIT
  7068. LDC **
  7069. CEFA EQU *-1 (DEVICE MNEMONIC)
  7070. LMD CM+3
  7071. NJN CEPX IF NOT SAME TYPE
  7072. LDD FN+1
  7073. LMD CM+1 TEST CHANNELS
  7074. LPC 4677
  7075. ZJN CEP1 IF MATCH ON PRIMARY CHANNEL
  7076. LDD FN+1
  7077. LMD CM+2 REORDER CHANNEL TEST
  7078. LPC 4677
  7079. NJN CEPX IF NO CHANNEL MATCH
  7080. LDD CM+1
  7081. UJN CEP2 TEST FOR SECONDARY CHANNEL
  7082. CLP SPACE 4,15
  7083. ** CLP - CHECK LABEL PARAMETERS.
  7084. *
  7085. * ENTRY (UC) = N/M OF DESIRED UNIT.
  7086. * (CM+2 - CM+6) = FAMILY/PACK NAME.
  7087. * (CN - CN+4) = USER NAME.
  7088. * (DLPB) = UNIT LABEL PARAMETERS.
  7089. *
  7090. * EXIT (A) = 0 IF VALID LABEL.
  7091. * (A) = *STIL* IF REQUESTED UNIT NOT FOUND.
  7092. *
  7093. * USES T1.
  7094.  
  7095.  
  7096. CLP SUBR ENTRY/EXIT
  7097. LDN 0
  7098. STD T1
  7099. CLP1 LDM DLPB,T1 VERIFY FAMILY/PACK NAME
  7100. LMM CM+2,T1
  7101. NJN CLP3 IF NO MATCH
  7102. AOD T1 INCREMENT INDEX
  7103. LMN 4
  7104. NJN CLP1 LOOP FOR FOUR BYTES
  7105. LDD UC CHECK NUMBER OF UNITS
  7106. LMD CM+6
  7107. LPN 77
  7108. NJN CLP3 IF INCORRECT UNIT COUNT
  7109. CLP2 LDM DLPB+1,T1 VERIFY OWNER
  7110. LMM CN-4,T1
  7111. NJN CLP3 IF NO MATCH
  7112. AOD T1 ADVANCE INDEX
  7113. LMN 7
  7114. NJN CLP2 LOOP FOR THREE BYTES
  7115. LDM DLPB+10 CHECK SEVENTH CHARACTER
  7116. LMD CN+3
  7117. SCN 77
  7118. ZJN CLPX IF VALID LABEL
  7119. CLP3 LDN STIL SET ERROR STATUS
  7120. UJN CLPX RETURN
  7121. VDP SPACE 4,15
  7122. ** VDP - VERIFY DEVICE PARAMETERS.
  7123. *
  7124. * ENTRY (CA) = CM ADDRESS OF MST.
  7125. * (FN - FN+4) = EST ENTRY.
  7126. *
  7127. * EXIT (A) = 0 IF MST PARAMETERS MATCH LABEL.
  7128. * = *STLE* IF ERROR IN FAMILY NAME.
  7129. *
  7130. * USES CM+2 - CM+6, CN - CN+4.
  7131. *
  7132. * CALLS CLP, LRA, VFN.
  7133.  
  7134.  
  7135. VDP2 LDN STLE SET LABEL ERROR STATUS
  7136.  
  7137. VDP SUBR ENTRY/EXIT
  7138. LDD FN+4 GET FAMILY NAME FROM MST
  7139. SHN 3
  7140. ADN PFGL
  7141. CRD CM+2
  7142. RJM VFN
  7143. NJN VDP1 IF VALID NAME
  7144. LDD CM+5 CHECK FOR NULL FAMILY
  7145. SCN 77
  7146. ADD CM+4
  7147. ADD CM+3
  7148. ADD CM+2
  7149. NJN VDP2 IF NOT NULL FAMILY
  7150. VDP1 RJM LRA LOAD REFERENCE ADDRESS
  7151. ADD CA
  7152. ADN PFGL
  7153. CRD CM+2
  7154. ADN PUGL-PFGL READ USER NAME
  7155. CRD CN
  7156. RJM CLP CHECK LABEL PARAMETERS
  7157. UJN VDPX RETURN
  7158. VLP SPACE 4,15
  7159. ** VLP - VERIFY LABEL PARAMETERS.
  7160. *
  7161. * ENTRY (DLPB) LOADED WITH LABEL PARAMETERS.
  7162. * (T5) = EST ORDINAL.
  7163. * (EQ) = PRIMARY EST ORDINAL.
  7164. * (FN - FN+4) = EST ENTRY.
  7165. * (FS - FS+4) = STLL WORD OF EQUIPMENT.
  7166. *
  7167. * EXIT (A) = (EC) = 0 IF VALID LABEL.
  7168. * .LT. 0 IF EQUIPMENT NOT FIRST IN CHAIN.
  7169. * (EC) = *STIL* IF ANY UNIT HAS INCORRECT LABEL.
  7170. * (EC) = *STCE* IF ANY UNIT CAUSES CONFIGURATION ERROR.
  7171. * (EC) = *STNR* IF ANY UNIT NOT READY.
  7172. * (EC) = *STLE* IF ANY UNIT HAS INCORRECT LABEL.
  7173. * (FN - FN+4) = EST ENTRY OF PRIMARY EQUIPMENT.
  7174. * (FS - FS+4) = STLL WORD OF PRIMARY EQUIPMENT.
  7175. * (T5) = PRIMARY EST ORDINAL.
  7176. *
  7177. * USES T0 - T7, EC, UC, CA, CA+1, FN - FN+4, FS - FS+4.
  7178. *
  7179. * CALLS CCE, LRA, VDP.
  7180. *
  7181. * MACROS SFA, SMSTF.
  7182.  
  7183.  
  7184. VLP12 RJM CCE CHECK CHAINED EQUIPMENT
  7185. MJN VLPX IF FIRST EQUIPMENT FOUND
  7186. VLP13 LDD EQ RESTORE PRIMARY EQUIPMENT PARAMETERS
  7187. STD T5
  7188. RJM LRA LOAD REFERENCE ADDRESS
  7189. ADD T5
  7190. CRD RD
  7191. SFA EST,T5
  7192. ADK EQDE
  7193. CRD FN
  7194. LDD FN+4 RESTORE STATUS WORD
  7195. SHN 3
  7196. ADN STLL
  7197. CRD FS
  7198. LDD EC EXIT WITH (A) = ERROR CODE
  7199.  
  7200. VLP SUBR ENTRY/EXIT
  7201. RJM LRA LOAD REFERENCE ADDRESS
  7202. ADD EQ
  7203. CWD RD REWRITE RECOVERY TABLE
  7204. LDN 0 CLEAR CURRENT UNIT COUNT
  7205. STD T7
  7206. STD EC
  7207. LDM DLPB+4 SET TOTAL UNIT COUNT
  7208. LPN 77
  7209. STD T3
  7210. LPN 7
  7211. STD T2
  7212. STD UC SET CURRENT UNIT POSITION
  7213. LMD T3
  7214. ZJN VLP1 IF FIRST EQUIPMENT IN CHAIN
  7215. LJM VLP12 CHECK CHAINED EQUIPMENT
  7216.  
  7217. * SET PARAMETERS FOR THIS EQUIPMENT.
  7218.  
  7219. VLP1 LDD AL SET ADDRESS OF CURRENT UNITS MST
  7220. STD CA
  7221. LDN 0 CLEAR CURRENT UNIT COUNT FOR THIS EQUIP.
  7222. STD T6
  7223. LDD FN+4
  7224. SHN 3
  7225. ADN DDLL
  7226. CRD CM
  7227. LDD CM SET UNIT COUNT FOR THIS EQUIPMENT
  7228. SHN -3
  7229. LPN 7
  7230. STD T3
  7231. VLP2 RJM LRA LOAD REFERENCE ADDRESS
  7232. ADD CA
  7233. ADN STLL READ STATUS WORD
  7234. CRD CM
  7235.  
  7236. * VERIFY ALL UNITS FOR THIS EQUIPMENT.
  7237.  
  7238. LDD CM+1
  7239. LPN 77
  7240. ZJN VLP5 IF NO ERROR THIS UNIT
  7241. STD EC SET ERROR CODE
  7242. LDD T7
  7243. ZJN VLP4 IF FIRST UNIT OF EQUIPMENT
  7244. LDN STCE *CONFIGURATION ERROR*
  7245. VLP3 STD EC
  7246. VLP4 LJM VLP13
  7247.  
  7248. VLP5 RJM VDP VERIFY DEVICE PARAMETERS
  7249. NJN VLP3 IF LABEL CONFLICT
  7250.  
  7251. * LABEL FOR THIS UNIT VALID - PROCEED TO NEXT UNIT.
  7252.  
  7253. LDD EQ
  7254. LMD T5
  7255. ZJN VLP6 IF FIRST EQUIPMENT IN CHAIN
  7256. SMSTF LDIU SET DEVICE IN USE
  7257. * LDN 0 INHIBIT FURTHER PROCESSING OF DEVICE
  7258. STD RE
  7259. RJM LRA LOAD REFERENCE ADDRESS
  7260. ADD T5
  7261. CWD RD
  7262. VLP6 LDD T7
  7263. LMD T2
  7264. ZJN VLP7 IF NO MORE UNITS
  7265. AOD T7 SET N/M FOR NEXT UNIT
  7266. SHN 3
  7267. ADD T2
  7268. STD UC
  7269. LDD T6
  7270. LMD T3
  7271. ZJN VLP10 IF NO MORE UNITS THIS EQUIPMENT
  7272. AOD T6 ADVANCE UNIT NUMBER
  7273. LDN MSTL ADVANCE TABLE ADDRESS
  7274. RAD CA
  7275. LJM VLP2
  7276.  
  7277. * ALL UNITS CHECKED.
  7278.  
  7279. VLP7 LDD FN
  7280. SHN 0-10
  7281. LPN 1
  7282. LMN 1
  7283. ZJN VLP9 IF DEVICE REMOVABLE
  7284. LDD FN+4 GET UNIT COUNT FROM MST
  7285. SHN 3
  7286. ADN DDLL
  7287. CRD CN
  7288. LDD CN
  7289. LPN 7
  7290. LMD T7
  7291. ZJN VLP9 IF CORRECT NUMBER OF UNITS
  7292. VLP8 LDN STCE SET CONFIGURATION ERROR
  7293. VLP9 STD EC
  7294. LJM VLP13
  7295.  
  7296. * PROCEED TO NEXT EQUIPMENT IN CHAIN.
  7297.  
  7298. VLP10 LDD FS+4
  7299. SHN -3
  7300. NJN VLP11 IF EQUIPMENT LINKED
  7301. RJM CCE CHECK CHAINED EQUIPMENT
  7302. PJN VLP8 IF NO EQUIPMENT TO CHAIN
  7303. LDD T6 SET EQUIPMENT LINK
  7304. SHN 3
  7305. RAD FS+4
  7306.  
  7307. * REREAD EST ENTRY, SINCE (FN+4) WAS DESTROYED BY *CCE*.
  7308.  
  7309. SFA EST,T5 REREAD EST ENTRY
  7310. ADK EQDE
  7311. CRD FN
  7312. LDD FN+4 UPDATE MST
  7313. SHN 3
  7314. ADN STLL
  7315. CWD FS
  7316. LDD T6 SET NEXT EQUIPMENT
  7317. VLP11 STD T5
  7318. RJM LRA LOAD REFERENCE ADDRESS
  7319. ADD T5
  7320. CRD RD
  7321. SFA EST,T5 READ EST ENTRY
  7322. ADK EQDE
  7323. CRD FN
  7324. LDD FN+4 READ MST STATUS WORD
  7325. SHN 3
  7326. ADN STLL
  7327. CRD FS
  7328. LJM VLP1 LOOP FOR NEXT EQUIPMENT IN CHAIN
  7329. SPACE 4,10
  7330. ** COMMON DECKS.
  7331.  
  7332.  
  7333. QUAL VFN
  7334. FN EQU CM+2
  7335. *CALL COMPVFN
  7336. QUAL *
  7337. VFN EQU /VFN/VFN
  7338. SPACE 4,10
  7339. ORDG EQU *+5 LOAD ADDRESS FOR *4DG*
  7340. ORDJ EQU *+5 LOAD ADDRESS FOR *4DJ*
  7341. TITLE *CMS* DEVICE VERIFICATION - COMMON ROUTINES.
  7342. CUS SPACE 4,15
  7343. ** CUS - CHECK UNLOAD STATUS.
  7344. *
  7345. * ENTRY (A) = 0 IF CHECKING DEVICE ACTIVITY.
  7346. * = MID IF PROCESSING UNLOAD.
  7347. *
  7348. * EXIT (A) .LT. 0 IF DEVICE INACCESSIBLE.
  7349. * = (DATB) = 0 IF DEVICE INACTIVE.
  7350. * .GT. 0 IF DEVICE ACTIVE.
  7351. *
  7352. * USES T3, T7.
  7353. *
  7354. * CALLS RIL.
  7355. *
  7356. * MACROS ENDMS.
  7357.  
  7358.  
  7359. CUS SUBR ENTRY/EXIT
  7360. STD T3
  7361. RJM RIL
  7362. MJN CUSX IF DEVICE NOT ACCESSIBLE
  7363. ENDMS
  7364. * LDN 0
  7365. * STD T7
  7366. CUS1 LDN 5 ADVANCE DIT INDEX
  7367. RAD T7
  7368. LMC 5*MISD+5
  7369. ZJN CUS2 IF END OF DIT
  7370. LDM DISS-5+4,T7
  7371. ZJN CUS1 IF DIT SLOT EMPTY
  7372. LMD T3
  7373. ZJN CUS1 IF ASSIGNED TO THIS MACHINE
  7374. CUS2 STM DATB
  7375. UJN CUSX RETURN
  7376. RIL SPACE 4,15
  7377. ** RIL - READ INDEPENDENT SHARED DEVICE LABEL.
  7378. *
  7379. * ENTRY (A) .LT. 0, IF WAIT ON NOT READY DESIRED.
  7380. * (T5) = EST ORDINAL.
  7381. * (FN - FN+4) = EST ENTRY.
  7382. *
  7383. * EXIT (A) = READ STATUS.
  7384. * (T7) = 0 IF LABEL READ.
  7385. * (BFMS) = LABEL SECTOR.
  7386. *
  7387. * CALLS CLT, RDS.
  7388. *
  7389. * MACROS ENDMS, SETMS.
  7390.  
  7391.  
  7392. RIL2 SETMS IO,(DE,DF,NR)
  7393. RJM CLT
  7394. NJN RIL3 IF LABEL TRACK KNOWN
  7395. LDD CM+7
  7396. ZJN RIL1 IF NO PREVIOUS LABEL TRACK
  7397. STD T6
  7398. RIL3 LDN 0 SET LABEL SECTOR
  7399. STD T7
  7400. LDC BFMS READ LABEL SECTOR
  7401. RJM RDS
  7402. MJN RIL1 IF READ ERROR
  7403.  
  7404. RIL SUBR ENTRY/EXIT
  7405. PJN RIL2 IF RETURN ON NOT READY
  7406. SETMS IO,(DE,DF)
  7407. RJM CLT
  7408. NJN RIL3 IF LABEL TRACK FOUND
  7409. RIL1 ENDMS
  7410. LCN 1
  7411. UJN RILX RETURN
  7412. SPACE 4,10
  7413. ORDE EQU *+5 LOAD ADDRESS FOR *4DE*
  7414. TITLE *CMS* ACTIVE/INACTIVE DEVICE ROUTINES.
  7415. CAD SPACE 4,15
  7416. ** CAD - CHECK ACTIVE DEVICES.
  7417. *
  7418. * ENTRY (EQ) = (T5) = EST ORDINAL.
  7419. * (FN - FN+4) = EST ENTRY.
  7420. *
  7421. * EXIT (CMSD) ADVANCED IF ERROR SET ON DEVICE.
  7422. * (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
  7423. * BE REWRITTEN TO CM UPON RETURN TO *MRL*.
  7424. *
  7425. * USES IR+2, CM - CM+4, CN - CN+4, FS - FS+4.
  7426. *
  7427. * CALLS SES, UMS, VLP, *5ME*.
  7428. *
  7429. * MACROS EXECUTE, MONITOR.
  7430.  
  7431.  
  7432. CAD8 AOM /CMS/CMSD ADVANCE DEVICE IN ERROR COUNT
  7433.  
  7434. CAD SUBR ENTRY/EXIT
  7435. SHN 21-6
  7436. MJN CADX IF DEVICE UNAVAILABLE
  7437. RJM UMS UPDATE MST
  7438. NJN CADX IF DEVICE INTERLOCKED
  7439. LDD FN+4 READ MST WORDS
  7440. SHN 3
  7441. ADN DULL
  7442. CRD CM
  7443. ADN STLL-DULL
  7444. CRD FS
  7445. SBN STLL-PFGL READ PF DESCRIPTION
  7446. CRM DLPB,TW
  7447. LDD FS+1
  7448. LPN 77
  7449. NJN CAD8 IF ERROR STATUS PRESENT
  7450. CAD1 LDD CN+4 CHECK ERROR IDLE FLAG
  7451. LPN MGDEI
  7452. ZJN CAD2 IF NOT SET
  7453. LDN STEI SET ERROR STATUS IN MST
  7454. RJM SES
  7455. CAD2 LDD FN
  7456. SHN 21-10
  7457. PJN CAD3 IF NOT REMOVABLE DEVICE
  7458. LDD CM+4 CHECK ACTIVITY
  7459. LPC 3777
  7460. ADD FS+3
  7461. NJN CAD3 IF ACTIVE FILES
  7462. LDD FS
  7463. SHN 21-2
  7464. MJN CAD3 IF CHECKPOINT PENDING
  7465. SHN 3+21-3
  7466. MJN CAD4 IF LOCAL UNLOAD SET
  7467. CAD3 RJM VLP VERIFY LABEL PARAMETERS
  7468. MJN CAD4 IF NOT FIRST EQUIPMENT IN CHAIN
  7469. NJN CAD5 IF VERIFICATION ERRORS
  7470. LDM SDIF
  7471. NJN CAD6 IF INTERLOCKS ON ISD
  7472. LDN SSTL CHECK SYSTEM STATUS
  7473. CRD CM
  7474. LDD CM
  7475. LPN 14
  7476. CAD4 NJN CAD6 IF MS VALIDATION DISABLED / NOT PRESENT
  7477. LDD EQ
  7478. STD CM+1
  7479. LDN VEIS REQUEST MS VALIDATION
  7480. STD CM+3
  7481. MONITOR VMSM
  7482. LDD CM+1
  7483. ZJN CAD6 IF NO ERRORS
  7484. STD IR+2
  7485. EXECUTE 5ME PROCESS ERRLOG MESSAGES
  7486. LDN STVE SET ERROR STATUS IN MST
  7487. CAD5 RJM SES
  7488. * LDN 0 INHIBIT FURTHER PROCESSING OF DEVICE
  7489. STD RE
  7490. AOM /CMS/CMSD ADVANCE DEVICE IN ERROR COUNT
  7491. CAD6 LJM CADX RETURN
  7492. CID SPACE 4,15
  7493. ** CID - CHECK INACTIVE DEVICES.
  7494. *
  7495. * ENTRY (EQ) = (T5) = EST ORDINAL.
  7496. * (FN - FN+4) = EST ENTRY.
  7497. *
  7498. * EXIT INACTIVE EQUIPMENTS WITH UNLOAD REQUESTED
  7499. * RESTORED TO ORIGINAL AND UNAVAILABLE STATE.
  7500. * TO *GDT2* IF RECOVERY INTERLOCK UNAVAILABLE.
  7501. * (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
  7502. * BE REWRITTEN TO CM UPON RETURN TO *MRL*.
  7503. *
  7504. * USES CM - CM+4, FN - FN+4, FS - FS+4.
  7505. *
  7506. * CALLS CDB, CDD, CDS, CUS, IAM, IES, IFR, ILK, RDE, RGM, UIS,
  7507. * WDE.
  7508. *
  7509. * MACROS MMTE, SFA, SMSTF.
  7510.  
  7511.  
  7512. CID9 RJM UIS SET UNLOAD STATUS IN DIT ENTRY
  7513. LDD FN
  7514. LPC -100
  7515. LMD HN SET DEVICE UNAVAILABLE
  7516. STD FN
  7517. SFA EST,EQ
  7518. ADK EQDE
  7519. CWD FN
  7520. SMSTF LDUL
  7521.  
  7522. CID SUBR ENTRY/EXIT
  7523. RJM CDS CHECK DEVICE STATUS
  7524. NJN CIDX IF DEVICE ACTIVITY
  7525. RJM ILK ENSURE PFM-S NOT ACTIVE ON DEVICE
  7526. RJM CDS RECHECK DEVICE
  7527. NJN CIDX IF NEW DEVICE ACTIVITY
  7528. LDD FN
  7529. SHN 21-10
  7530. PJN CID9 IF NON-REMOVABLE DEVICE
  7531. RJM RGM READ GLOBAL MST WORDS
  7532. NJN CIDX IF INTERLOCK SET
  7533. LDD CN+4 CHECK GLOBAL UNLOAD
  7534. LPN MGUNL
  7535. NJN CIDX IF GLOBAL UNLOAD SET
  7536. STM DATB
  7537. RJM CBF CHECK FOR BUFFERS TO FLUSH
  7538. NJN CIDX IF UNABLE TO FLUSH ALL BUFFERS
  7539. UJMF CID5
  7540. LDN DATI GET DAT INTERLOCK
  7541. RJM IFR
  7542. ZJN CID2 IF FLAG REGISTER INTERLOCKED
  7543. LJM /CMS/GDT1 RECALL *CMS*
  7544.  
  7545. CID2 RJM RDE READ DAT ENTRY
  7546. LDD QS
  7547. ZJN CID4 IF NO DAT ENTRY
  7548. LDM DATB+11 CLEAR ACCESS BY THIS MACHINE
  7549. LPC -0
  7550. MMTE *-1
  7551. STM DATB+11
  7552. NJN CID3 IF ALL ACCESSES NOT CLEARED
  7553. STM DATB CLEAR DAT ENTRY
  7554. CID3 RJM WDE STORE DAT ENTRY
  7555. CID4 LCN DATI DROP FLAG REGISTER INTERLOCK
  7556. RJM IFR
  7557. CID5 LDD FN
  7558. LPN 20
  7559. ZJN CID6 IF NOT ISD
  7560. STM DATB
  7561. LDD FS+2 CHECK UNLOAD STATUS
  7562. RJM CUS
  7563. CID6 LDM DATB
  7564. NJN CID7 IF DEVICE NOT UNLOADED IN ALL MACHINES
  7565. LDN MGUNL SET GLOBAL UNLOAD
  7566. RAD CN+4
  7567. LDD FN+4 STORE DEVICE ACTIVITY WORD
  7568. SHN 3
  7569. ADN ACGL
  7570. CWD CN
  7571. CID7 RJM /CMS/IAM ISSUE ACCOUNTING MESSAGE
  7572. RJM IES INITIALIZE EQUIPMENT STATUS
  7573. SMSTF LDUL SET DEVICE UNLOADED
  7574. LDM DATB
  7575. NJN CID8 IF DEVICE NOT UNLOADED ON ALL MACHINES
  7576. RJM CDD CLEAR DEVICE DESCRIPTION
  7577. CID8 LCN 0 DISABLE *MRL* REWRITE OF RECOVERY TABLES
  7578. LJM CIDX RETURN
  7579. TITLE *CMS* ACTIVE/INACTIVE DEVICE SUBROUTINES.
  7580. CBF SPACE 4,15
  7581. ** CBF - CHECK FOR BUFFERS TO FLUSH.
  7582. *
  7583. * ENTRY (T5) = EST ORDINAL.
  7584. * (FN - FN+4) = EST ENTRY.
  7585. *
  7586. * EXIT (A) .NE. 0, IF UNFLUSHED BUFFERS ARE STILL PRESENT.
  7587. * IF BUFFERED DEVICE, I/O BUFFERS FLUSHED AND RELEASED.
  7588. * IF SHARED BUFFERED DEVICE, *BAT* AND *BST* PERMISSIONS
  7589. * ARE RELEASED AND *BST* PROCESSING IS DISABLED.
  7590. *
  7591. * USES T6, CM - CM+4.
  7592. *
  7593. * MACROS DELAY, PAUSE, MONITOR.
  7594.  
  7595.  
  7596. CBF SUBR ENTRY/EXIT
  7597. LDD FN CHECK IF BUFFERED DEVICE
  7598. LPN 40
  7599. ZJN CBFX IF NOT A BUFFERED DEVICE
  7600. LDD TH SET MAXIMUM RETRY COUNT
  7601. STD T6
  7602.  
  7603. * FLUSH AND RELEASE BUFFERS - RELEASE *BAT*/*BST* PERMISSIONS.
  7604.  
  7605. CBF1 LDN ZERL CLEAR ASSEMBLY AREA
  7606. CRD CM
  7607. LDD FN
  7608. SHN 21-11
  7609. MJN CBF2 IF SHARED BUFFERED DEVICE
  7610. LDD T5 SET EST ORDINAL
  7611. STD CM+3
  7612. LDC BMFW*100 FLUSH ALL WRITE BUFFERS
  7613. STD CM+4
  7614. MONITOR BFMM
  7615. LDN ZERL CLEAR ASSEMBLY AREA
  7616. CRD CM
  7617. LDD T5 SET EST ORDINAL
  7618. STD CM+3
  7619. LDC BMDD*100 DROP ALL BUFFERS ON DEVICE
  7620. STD CM+4
  7621. MONITOR BFMM
  7622. UJN CBF3 CHECK STATUS
  7623.  
  7624. CBF2 LDD T5 SET EST ORDINAL
  7625. STD CM+4
  7626. LDN RBPS RELEASE *BAT*/*BST* ACCESS PERMISSIONS
  7627. STD CM+1
  7628. MONITOR MTEM
  7629. CBF3 LDD CM+4 CHECK STATUS
  7630. ZJN CBF4 IF SUCCESSFUL
  7631. DELAY 200B DELAY 16 MILLISECONDS
  7632. PAUSE
  7633. SOD T6
  7634. NJP CBF1 IF RETRY COUNT NOT EXHAUSTED
  7635. LDN 1 RETURN ERROR RESPONSE
  7636. LJM CBFX EXIT
  7637.  
  7638. * DISABLE *BST* PROCESSING.
  7639.  
  7640. CBF4 LDD FN
  7641. SHN 21-11
  7642. PJN CBF5 IF NOT SHARED BUFFERED DEVICE
  7643. LDD MA WRITE REQUEST
  7644. CWM CBFB,ON
  7645. LDD FN+4
  7646. SHN 3
  7647. STD CM+4 SET MST ADDRESS
  7648. SHN -14
  7649. STD CM+3
  7650. LDN 1 SET WORD COUNT
  7651. STD CM+1
  7652. MONITOR UTEM
  7653. CBF5 LDN 0 RETURN SUCCESSFUL RESPONSE
  7654. UJP CBFX RETURN
  7655.  
  7656.  
  7657. CBFB VFD 6/BDLL,6/1,6/27,42/1
  7658. CDD SPACE 4,10
  7659. ** CDD - CLEAR DEVICE DESCRIPTION.
  7660. *
  7661. * ENTRY (EQ) = EST ORDINAL.
  7662. *
  7663. * EXIT DEVICE DESCRIPTION CLEARED.
  7664. * EXTENDED MEMORY COPY OF MST/TRT CLEARED.
  7665. *
  7666. * USES CM - CM+7, CN - CN+4, FN - FN+4.
  7667. *
  7668. * MACROS MONITOR, SFA, UJMF.
  7669.  
  7670.  
  7671. CDD SUBR ENTRY/EXIT
  7672. SFA EST,EQ READ EST ENTRY
  7673. ADK EQDE
  7674. CRD FN
  7675. LDN ZERL
  7676. CRD CN
  7677. LDD FN+4
  7678. SHN 3
  7679. ADN SDGL
  7680. CRD CM+3
  7681. ADN PUGL-SDGL CLEAR USER DESCRIPTION
  7682. CWD CN
  7683. SBN PUGL-PFGL CLEAR DEVICE DESCRIPTION
  7684. CWD CN
  7685. UJMF CDDX
  7686. SBN PFGL
  7687. STD CM+2
  7688. SHN -14
  7689. LMC GLGL*100-100 SET WORD COUNT FOR ECS TRANSFER
  7690. STD CM+1
  7691. LDD CM+3
  7692. ADD CM+4
  7693. ZJN CDDX IF NOT SHARED DEVICE
  7694. CDDA LDN 1 MACHINE INDEX*2 + 1
  7695. RAD CM+7
  7696. LDD FN+4 STORE DEVICE INTERLOCK STATUS
  7697. SHN 3
  7698. ADN SDGL
  7699. CWD CM+3
  7700. LDC WECS*1000 UPDATE GLOBAL MST IN ECS
  7701. RAD CM+3
  7702. MONITOR ECSM
  7703. LDD EQ SET EST ORDINAL
  7704. STD CM+1
  7705. LDN CDIS INSERT MONITOR SUBFUNCTION
  7706. STD CM+3
  7707. MONITOR STBM CLEAR TRT IN ECS
  7708. LJM CDDX RETURN
  7709. CDS SPACE 4,10
  7710. ** CDS - CHECK DEVICE STATUS.
  7711. *
  7712. * ENTRY (FN - FN+4) = EST ENTRY.
  7713. *
  7714. * EXIT (A) = 0 IF NO ACTIVITY AND UNLOAD SET.
  7715. * (FS - FS+4) = *STLL* WORD OF MST.
  7716. *
  7717. * USES CM - CM+4.
  7718.  
  7719.  
  7720. CDS SUBR
  7721. LDD FN+4
  7722. SHN 3
  7723. ADN DULL
  7724. CRD CM
  7725. ADN STLL-DULL
  7726. CRD FS
  7727. LDD FS
  7728. LPN MLUNL+MLCKP+MLDUL
  7729. LMN MLUNL
  7730. NJN CDSX IF CHECKPOINT SET / NO LOCAL UNLOAD
  7731. LDD CM+4 CHECK ACTIVITY
  7732. LPC 3777
  7733. ADD FS+3
  7734. NJN CDSX IF ACTIVE FILES ON DEVICE
  7735. LDK INWL PROHIBIT UNLOAD IF *MREC* ACTIVE
  7736. CRD CM
  7737. LDD CM+3
  7738. SHN -6
  7739. NJN CDSX IF *MREC* ACTIVE
  7740. LDD FS+4
  7741. LPN MLUAI
  7742. UJN CDSX RETURN
  7743. ILK SPACE 4,10
  7744. ** ILK - INTERLOCK *PFM* FROM ACCESSING DEVICE DURING UNLOAD.
  7745. *
  7746. * ENTRY (EQ) = EQUIPMENT TO UNLOAD.
  7747. * (FN - FN+4) = EST OF EQUIPMENT TO UNLOAD.
  7748. *
  7749. * EXIT TO *RCL* IF UNABLE TO INTERLOCK.
  7750. *
  7751. * USES T5, T7, CM - CM+4, FN - FN+4.
  7752. *
  7753. * CALLS CUT, SUT.
  7754. *
  7755. * MACROS SFA.
  7756.  
  7757.  
  7758. ILK6 LDD EQ RESET DIRECT CELLS
  7759. STD T5
  7760. SFA EST
  7761. ADK EQDE
  7762. CRD FN
  7763. LDN 0 CLEAR EST ORDINAL OF PROCESSED ENTRY
  7764. STM ILKA
  7765.  
  7766. ILK SUBR ENTRY/EXIT
  7767. LDD FN+4 READ PF DESCRIPTION
  7768. SHN 3
  7769. ADN PFGL
  7770. CRD FN
  7771. ADN PUGL-PFGL
  7772. CRD CM
  7773. LDD CM+3 SET DEVICE MASK
  7774. LPN 17
  7775. SHN 14
  7776. LMD CM+4
  7777. SHN -10
  7778. STM ILKB
  7779. LDC ** SET EQUIPMENT FROM PREVIOUS CALL
  7780. ILKA EQU *-1
  7781. NJN ILK1 IF PREVIOUS EQUIPMENT
  7782. LDD LO
  7783. SBN 1
  7784. ILK1 STD T5
  7785. AOD T5
  7786.  
  7787. * SEARCH FOR MASTER DEVICES TO INTERLOCK AGAINST *PFM*.
  7788.  
  7789. ILK2 SOD T5
  7790. ZJN ILK6 IF END OF EQUIPMENTS
  7791. SFA EST
  7792. ADK EQDE
  7793. CRD CM
  7794. LDD CM CHECK DEVICE CHARACTERISTICS
  7795. SHN 21-13
  7796. PJN ILK2 IF NOT MASS STORAGE
  7797. SHN 13-6
  7798. MJN ILK2 IF DEVICE UNAVAILABLE
  7799. LDD T5
  7800. SBD EQ
  7801. ZJN ILK4 IF EQUIPMENT TO UNLOAD
  7802. LDD CM+4
  7803. SHN 3
  7804. ADN PUGL
  7805. CRD CM
  7806. SBN PUGL-PFGL
  7807. CRD T7
  7808. LDD CM+4
  7809. LPC **
  7810. ILKB EQU *-1
  7811. ZJN ILK2 IF NOT A MASTER FOR DEVICE TO UNLOAD
  7812. LDD FN CHECK FOR PROPER FAMILY
  7813. LMD T7
  7814. ILK3 NJN ILK2 IF NO MATCH ON FAMILY
  7815. LDD FN+1
  7816. LMD T7+1
  7817. NJN ILK2 IF NO MATCH ON FAMILY
  7818. LDD FN+2
  7819. LMD T7+2
  7820. NJN ILK2 IF NO MATCH ON FAMILY
  7821. LDD FN+3
  7822. LMD T7+3
  7823. SCN 77
  7824. NJN ILK3 IF NO MATCH ON FAMILY
  7825. ILK4 RJM SUT SET UTILITY INTERLOCK FOR DEVICE
  7826. NJN ILK5 IF INTERLOCK NOT SET
  7827.  
  7828. * INTERLOCK MAY BE IMMEDIATELY CLEARED SINCE IT IS ONLY
  7829. * SET TO INSURE *PFM* HAS NOTICED THE UNLOAD REQUEST FOR THE
  7830. * DEVICE.
  7831.  
  7832. RJM CUT
  7833. LJM ILK2 PROCESS NEXT EQUIPMENT
  7834.  
  7835. ILK5 LDD T5 SAVE EQUIPMENT FOR NEXT INTERLOCK TRY
  7836. STM /CMS/RCLA+2
  7837. LDN PIRR SET WAITING FOR PF INTERLOCK CONDITION
  7838. LJM /CMS/RCL RECALL
  7839. RGM SPACE 4,15
  7840. ** RGM - READ GLOBAL MST WORDS.
  7841. *
  7842. * ENTRY (T5) = EST ORDINAL.
  7843. * (FN - FN+4) = EST ENTRY.
  7844. *
  7845. * EXIT (A) = DEVICE INTERLOCK STATUS.
  7846. * (CN - CN+4) = ACGL WORD OF MST.
  7847. * (CM - CM+4) = SDGL WORD OF MST.
  7848. *
  7849. * USES CM - CM+7, CN - CN+4.
  7850. *
  7851. * CALLS RIL.
  7852. *
  7853. * MACROS ENDMS, MONITOR, UJMF.
  7854.  
  7855.  
  7856. RGM0 LDN 0 READ INDEPENDENT SHARED DEVICE LABEL
  7857. RJM RIL
  7858. MJN RGM1 IF DEVICE NOT READY
  7859. ENDMS
  7860. LDM N4SS+SDGL*5+4 CHECK FOR SOFTWARE RESERVE/INTERLOCK
  7861. LPN 77
  7862. NJN RGMX IF SOFTWARE RESERVE OR INTERLOCK
  7863. LDD MA
  7864. CWM N4SS,TR
  7865. LDD MA
  7866. UJN RGM4 READ MST WORDS
  7867.  
  7868. RGM1 LDD T6
  7869. ZJN RGM3 IF NO LABEL TRACK FOUND
  7870. UJN RGMX RETURN
  7871.  
  7872. RGM2 LDD FN
  7873. SHN 21-4
  7874. MJN RGM0 IF ISHARED DEVICE
  7875. RGM3 LDD FN+4 READ DEVICE ACTIVITY WORD
  7876. SHN 3
  7877. RGM4 ADN ACGL
  7878. CRD CN
  7879. ADN SDGL-ACGL READ DEVICE INTERLOCK WORD
  7880. CRD CM
  7881. LDD CM+4 EXTRACT INTERLOCK STATUS
  7882. LPN 1
  7883.  
  7884. RGM SUBR ENTRY/EXIT
  7885. UJMF RGM2 NON MMF SYSTEM
  7886. LDD FN+4 READ DEVICE INTERLOCK WORD
  7887. SHN 3
  7888. ADN SDGL
  7889. CRD CM+3
  7890. LDD CM+3 CHECK EXTENDED MEMORY POINTER
  7891. ADD CM+4
  7892. ZJN RGM3 IF NOT SHARED DEVICE
  7893. LDD MA SET CM ADDRESS FOR TRANSFER
  7894. STD CM+2
  7895. LDC RECS*1000 SELECT READ SUBFUNCTION
  7896. RAD CM+3
  7897. LDC SDGL*100 SET WORD COUNT
  7898. STD CM+1
  7899. MONITOR ECSM GET MST WORDS FROM ECS
  7900. LDD MA
  7901. UJN RGM4 READ MST WORDS
  7902. UIS SPACE 4,10
  7903. ** UIS - UPDATE INDEPENDENT SHARED DEVICE TABLES.
  7904. *
  7905. * ENTRY (T5) = EST ORDINAL.
  7906. * (FN - FN+4) = *EQDE* WORD OF EST ENTRY.
  7907. *
  7908. * USES T1.
  7909. *
  7910. * CALLS CDC, RIL, SMI, WDS.
  7911. *
  7912. * MACROS ENDMS.
  7913.  
  7914.  
  7915. UIS SUBR
  7916. LDD FN
  7917. SHN 21-4
  7918. PJN UISX IF NOT INDEPENDENT SHARED DEVICE
  7919. RJM RIL READ LABEL
  7920. MJN UISX IF LABEL NOT READ
  7921. RJM SMI
  7922. STD T1 SET DIT INDEX
  7923. SHN 2
  7924. RAD T1
  7925. LDM DISS-5+3,T1
  7926. SCN 2
  7927. LMN 2 SET UNLOAD STATUS
  7928. STM DISS-5+3,T1
  7929. RJM CDC COMPUTE LABEL CHECKSUM
  7930. STM CKSS
  7931. LDC BFMS+WLSF REWRITE LABEL
  7932. RJM WDS
  7933. ENDMS
  7934. UJN UISX RETURN
  7935. UMS SPACE 4,15
  7936. ** UMS - UPDATE MASS STORAGE TABLES.
  7937. *
  7938. * ENTRY (T5) = EST ORDINAL.
  7939. * (FN - FN+4) = EST ENTRY.
  7940. *
  7941. * EXIT (A) = 0 IF UPDATE COMPLETE / UNNECESSARY.
  7942. *
  7943. * USES CM - CM+4.
  7944. *
  7945. * CALLS RGM.
  7946. *
  7947. * MACROS MONITOR, UJMF.
  7948.  
  7949.  
  7950. UMS SUBR ENTRY/EXIT
  7951. RJM RGM READ GLOBAL MST WORDS
  7952. NJN UMSX IF DEVICE INTERLOCKED
  7953. LDD FN
  7954. LPC 1S9
  7955. ZJN UMSX IF NOT SHARED EQUIPMENT
  7956. LDD T5 REQUEST MST/TRT UPDATE
  7957. STD CM+1
  7958. LDN UTRS
  7959. STD CM+3
  7960. MONITOR STBM ISSUE REQUEST
  7961. * LDN 0
  7962. UJN UMSX RETURN
  7963. SPACE 4,10
  7964. ** COMMON DECKS.
  7965.  
  7966.  
  7967. *CALL COMPCUT
  7968. *CALL COMPSUT
  7969. SPACE 4,10
  7970. QUAL CMS
  7971. CAD EQU /RDD/CAD
  7972. CID EQU /RDD/CID
  7973. QUAL *
  7974. USE LITERALS
  7975.  
  7976.  
  7977. ERRNG BFMS-* OVERLAY OVERFLOW INTO BUFFER
  7978. POV SPACE 4,10
  7979. ** POV - MODIFY INSTRUCTIONS AS REQUIRED FOR CM/MMF RECOVERY.
  7980.  
  7981.  
  7982. POV LDD IR+2 SET PREVIOUS EQUIPMENT OF INTERLOCK
  7983. STM ILKA
  7984. LDM MMFP
  7985. ZJP POV5 IF DO NOT PRESET FOR MMF
  7986. LDC MMFL
  7987. CRD CM
  7988. LDD CM+4 SET MACHINE INDEX
  7989. RAM EBPC
  7990. LPN 77
  7991. SHN 1
  7992. RAM CDDA
  7993. LDD CM+1
  7994. SHN 21-11
  7995. MJN POV0 IF SHARED BUFFERED DEVICES ARE CONFIGURED
  7996. ISTORE LDTA,(UJN LDT0) DISABLE *BAET* READ
  7997. POV0 LDC L"QUAL" SET LIST ADDRESS
  7998. STD T1
  7999. UJN POV2 MODIFY INSTRUCTIONS
  8000.  
  8001. POV1 STD T0
  8002. LDN PSNI REPLACE INSTRUCTION WITH *PSN*
  8003. STI T0
  8004. AOD T1 ADVANCE LIST ADDRESS
  8005. POV2 LDI T1
  8006. NJN POV1 LOOP TO END OF TABLE
  8007. LDC T"QUAL" SET LIST ADDRESS
  8008. STD T1
  8009. UJN POV4 ENTER LOOP
  8010.  
  8011. POV3 STD T0
  8012. LDD CM+3 ADD MACHINE MASK TO INSTRUCTION
  8013. LMI T0
  8014. STI T0
  8015. AOD T1
  8016. POV4 LDI T1
  8017. NJN POV3 IF MORE INSTRUCTIONS
  8018. POV5 LDD IR
  8019. LMC 2RCM
  8020. ZJN POV6 IF *CMS* CALL
  8021. LDD RS CHECK RECOVERY STATUS
  8022. LPN FLMK
  8023. LMN FLCM
  8024. NJN POV7 IF NOT LEVEL 3 RECOVERY
  8025. ISTORE EBPB,(LDN CBRS) CLEAR ONLY READ PERMISSIONS IN *BAT*
  8026. UJN POV7
  8027.  
  8028. POV6 ISTORE EBPA,(UJN EBP3)
  8029. POV7 LJM RDDX RETURN
  8030.  
  8031. * LIST OF INSTRUCTIONS TO BE PRESET.
  8032.  
  8033. L"QUAL" BSS 0
  8034. L"QUAL" HERE
  8035. ERRZR L"QUAL"-* TABLE EMPTY - REMOVE PRESET CODE
  8036. CON 0 TERMINATE TABLE
  8037.  
  8038. T"QUAL" BSS 0
  8039. T"QUAL" HERE
  8040. ERRZR T"QUAL"-* TABLE EMPTY - REMOVE PRESET CODE
  8041. CON 0 TERMINATE LIST
  8042.  
  8043. QUAL
  8044.  
  8045. CSD EQU /RDD/CSD
  8046. CSDB EQU /RDD/CSDB
  8047. CSDC EQU /RDD/CSDC
  8048. CUS EQU /RDD/CUS
  8049. EBP EQU /RDD/EBP
  8050. LDT EQU /RDD/LDT
  8051. RDE EQU /RDD/RDE
  8052. UDT EQU /RDD/UDT
  8053. VFN EQU /RDD/VFN
  8054. VLP EQU /RDD/VLP
  8055. WDE EQU /RDD/WDE
  8056.  
  8057. ORDE EQU /RDD/ORDE
  8058. ORDG EQU /RDD/ORDG
  8059. ORDH EQU /RDD/ORDH
  8060. ORDJ EQU /RDD/ORDJ
  8061. SPACE 4,10
  8062. OVERFLOW ORDD,EPFW CHECK FOR OVERFLOW
  8063. TTL MSM/4DE - *CMS* UNAVAILABLE DEVICE ROUTINES.
  8064. TITLE
  8065. IDENT 4DE,/RDE/RDEX
  8066. *COMMENT MSM - *CMS* UNAVAILABLE DEVICE ROUTINES.
  8067. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1994.
  8068.  
  8069.  
  8070. *** *4DE* CONTAINS CODE FOR *CMS* UNAVAILABLE DEVICE PROCESSING.
  8071.  
  8072.  
  8073. QUAL RDE
  8074. ORG ORDE
  8075.  
  8076. RDE SUBR ENTRY/EXIT
  8077. UJN RDEX RETURN
  8078. TITLE CHECK UNAVAILABLE DEVICE.
  8079. CUD SPACE 4,15
  8080. ** CUD - CHECK UNAVAILABLE DEVICES.
  8081. *
  8082. * ENTRY (EQ) = (T5) = EST ORDINAL.
  8083. * (FN - FN+4) = EST ENTRY.
  8084. *
  8085. * EXIT (RC) = NUMBER OF EQUIPMENTS TO RECOVER.
  8086. * (RE) SET WITH EQUIPMENTS TO RECOVER.
  8087. * (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
  8088. * BE REWRITTEN TO CM UPON RETURN TO *MRL*.
  8089. *
  8090. * USES FN, RC, CM+1 - CM+7, FS - FS+4.
  8091. *
  8092. * CALLS CDA, CDI, CGU, SES, VLP.
  8093. *
  8094. * MACROS MONITOR, SFA.
  8095.  
  8096.  
  8097. CUD6 RJM CGU CHECK GLOBAL UNLOAD
  8098.  
  8099. CUD SUBR ENTRY/EXIT
  8100. RJM CDA
  8101. MJN CUDX IF RECOVERY INHIBITED
  8102. NJN CUD6 IF DEVICE UNLOADED
  8103. LDD FN
  8104. SHN 21-10
  8105. MJN CUD1 IF REMOVABLE DEVICE
  8106. SHN 11+21-11
  8107. PJN CUD1 IF NON-SHARED DEVICE
  8108. LDD FN+4 GET EXTENDED MEMORY ADDRESS OF MST/TRT
  8109. SHN 3
  8110. ADN SDGL
  8111. CRD CM+3
  8112. ADN ALGL-SDGL SET CM ADDRESS FOR MST UPDATE
  8113. STD CM+2
  8114. SHN -14
  8115. LMC GLGL*100-ALGL*100
  8116. STD CM+1
  8117. LDD CM+3
  8118. ADD CM+4
  8119. ZJN CUD1 IF DEVICE NOT PREVIOUSLY RECOVERED
  8120. LDD CM+7
  8121. ADD CM+6
  8122. ADD CM+5
  8123. NJN CUD4 IF DEVICE ACCESSED PREVIOUSLY
  8124. CUD1 RJM VLP VERIFY LABEL PARAMETERS
  8125. MJN CUD2 IF NOT FIRST EQUIPMENT IN CHAIN
  8126. NJN CUD3 IF VERIFY ERRORS
  8127. LDC 200 SET EQUIPMENT RECOVERY
  8128. RAD RE
  8129. AOD RC ADVANCE RECOVERY COUNT
  8130. CUD2 LJM CUDX RETURN
  8131.  
  8132. CUD3 RJM SES SET ERROR STATUS
  8133. RJM CDI CLEAR ISD INTERLOCKS
  8134. LCN 0
  8135. UJN CUD2 RETURN
  8136.  
  8137. CUD4 LDD FN
  8138. SHN 21-4
  8139. MJN CUD5 IF INDEPENDENT SHARED DEVICE
  8140. LDN ALGL
  8141. RAD CM+4
  8142. LDC RECS*1000 SET MONITOR SUBFUNCTION
  8143. RAD CM+3
  8144. MONITOR ECSM UPDATE GLOBAL MST FROM ECS
  8145. CUD5 LDN 0 CLEAR UNAVAILABLE STATUS
  8146. SBD HN
  8147. RAD FN
  8148. SFA EST,EQ REWRITE EST ENTRY
  8149. ADK EQDE
  8150. CWD FN
  8151. UJN CUD2 RETURN
  8152. TITLE SUBROUTINES.
  8153. CGU SPACE 4,10
  8154. ** CGU - CHECK GLOBAL UNLOAD.
  8155. *
  8156. * ENTRY (FN - FN+4) = EST ENTRY.
  8157. *
  8158. * EXIT (CN - CN+4) = *ACGL* WORD OF MST.
  8159. *
  8160. * USES CM - CM+7.
  8161. *
  8162. * CALLS CIU.
  8163. *
  8164. * MACROS MONITOR.
  8165.  
  8166.  
  8167. CGU1 RJM CIU CHECK ISD GLOBALLY UNLOADED
  8168.  
  8169. CGU SUBR ENTRY/EXIT
  8170. LDD FN+4
  8171. SHN 3
  8172. ADN MDGL READ DRIVER WORD FOR DAT INDEX
  8173. CRD CM
  8174. SBN MDGL-SDGL GET EXTENDED MEMORY POINTER
  8175. CRD CM+3
  8176. SBN SDGL-ACGL
  8177. CRD CN
  8178. LDD FN
  8179. LPN 20
  8180. NJN CGU1 IF ISD
  8181. LDD CM
  8182. LPC 377
  8183. ZJN CGUX IF LINK TO DAT SLOT CLEARED
  8184. LDD CM+3
  8185. ADD CM+4
  8186. ZJN CGUX IF NON-SHARED DEVICE
  8187. LDN ACGL
  8188. RAD CM+4
  8189. SHN -14
  8190. LMC RECS*1000 UPDATE ACTIVITY WORD FROM ECS
  8191. RAD CM+3
  8192. LDN PFGL-ACGL SET WORD COUNT FOR ECS TRANSFER
  8193. SHN 6
  8194. STD CM+1
  8195. LDD MA READ MST DATA TO MESSAGE BUFFER
  8196. STD CM+2
  8197. MONITOR ECSM
  8198. LDD MA
  8199. CRD CM+3
  8200. LDD CM+3 SAVE DEVICE UP/DOWN STATUS
  8201. STD CN
  8202. LDD CM+7 SET GLOBAL UNLOAD STATUS
  8203. LPN MGUNL
  8204. STD CN+4
  8205. LDD MA
  8206. ADN PFGL-ACGL
  8207. CRD CM
  8208. LDD FN+4
  8209. SHN 3
  8210. ADN ACGL STORE UNLOAD STATUS IN CMR
  8211. CWD CN
  8212. ADN PFGL-ACGL STORE DEVICE DESCRIPTION
  8213. CWD CM
  8214. LJM CGUX RETURN
  8215. CIU SPACE 4,15
  8216. ** CIU - CHECK INDEPENDENT SHARED DEVICE UNLOADED.
  8217. *
  8218. * ENTRY (FN - FN+4) = EST ENTRY.
  8219. * (CN - CN+4) = *ACGL* WORD OF MST.
  8220. *
  8221. * USES CM - CM+6.
  8222. *
  8223. * CALLS CUS, VFN.
  8224.  
  8225.  
  8226. CIU SUBR ENTRY/EXIT
  8227. LDD FN
  8228. SHN 21-10
  8229. PJN CIUX IF NOT REMOVABLE
  8230. LDD FN+1
  8231. SHN 0-11 CHECK CHANNEL STATUS
  8232. LMN 4
  8233. ZJN CIU1 IF PRIMARY CHANNEL ALIVE AND WELL
  8234. LDD FN+2
  8235. SHN 0-11 TEST SECONDARY CHANNEL
  8236. LMN 4
  8237. NJN CIUX IF CHANNEL UNAVAILABLE
  8238. *CIU1 LDN 0
  8239. CIU1 RJM CUS
  8240. MJN CIU4 IF DEVICE INACCESSIBLE
  8241. ZJN CIU2 IF NO ONE ACCESSING DEVICE
  8242. LDN MGUNL
  8243. CIU2 LMN MGUNL SET/CLEAR GLOBAL UNLOAD
  8244. STD CN+4
  8245. NJN CIU4 IF SETTING UNLOAD
  8246. CIU3 LDD MA
  8247. CWM N4SS+5*PFGL,ON
  8248. SBN 1 VERIFY FAMILY/PACK NAME
  8249. CRD CM+2
  8250. RJM VFN
  8251. NJN CIU5 IF VALID NAME IN LABEL
  8252. CIU4 LDN ZERL
  8253. CRD CM+2
  8254. CIU5 LDD FN+4 STORE/CLEAR DEVICE NAME
  8255. SHN 3
  8256. ADN PFGL
  8257. CWD CM+2
  8258. SBN PFGL-ACGL STORE GLOBAL UNLOAD STATUS
  8259. CWD CN
  8260. LJM CIUX RETURN
  8261. SPACE 4,10
  8262. USE LITERALS
  8263. SPACE 4,10
  8264. ERRNG BFMS-* OVERLAY OVERFLOW INTO BUFFER
  8265. SPACE 4,10
  8266. QUAL CMS
  8267. CUD EQU /RDE/CUD
  8268. QUAL
  8269. SPACE 4,10
  8270. OVERFLOW ORDE,EPFW CHECK FOR OVERFLOW
  8271. TTL MSM/4DF - UPDATE MMF TABLES IN EXTENDED MEMORY.
  8272. TITLE
  8273. IDENT 4DF,EDTX
  8274. *COMMENT MSM - UPDATE MMF TABLES IN EXTENDED MEMORY.
  8275. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  8276. SPACE 4
  8277. *** *4DF* UPDATES THE DAT POINTER WORD IN ECS
  8278. * AND CONTAINS ROUTINES FOR PROCESSING OF MACHINE
  8279. * RECOVERY TABLES (MRTS).
  8280. SPACE 4
  8281. *** ENTRY CONDITIONS.
  8282. *
  8283. * DEVICE ACCESS TABLE IMAGE IN CM.
  8284. * DATI INTERLOCK SET.
  8285. TITLE UPDATE DAT POINTER WORD.
  8286. EDT SPACE 4,10
  8287. ** EDT - EDIT DAT POINTER WORD.
  8288. *
  8289. * CALLS CEA.
  8290.  
  8291.  
  8292. ORG ORDF
  8293.  
  8294. EDT SUBR ENTRY/EXIT
  8295. LDK MMFL
  8296. CRD CM
  8297. LDD RS CHECK RECOVERY LEVEL
  8298. LPN FLMK
  8299. LMN FLCM
  8300. ZJN EDTX IF CM RECOVERY
  8301. LDD CM+4
  8302. ZJN EDTX IF NOT MMF ENVIRONMENT
  8303. LDM ECLT SET LABEL TRACK FOR ECS
  8304. STD T6
  8305. LDN ETLT SET ENVIRONMENT TABLE SECTOR
  8306. STD T7
  8307.  
  8308. * UPDATE *BAET* IN ENVIRONMENT TABLE SECTOR, IF REQUIRED.
  8309.  
  8310. LDD CM+1
  8311. SHN 21-11
  8312. PJN EDT1 IF NO SHARED BUFFERED DEVICES CONFIGURED
  8313. RJM CEA GET ADDRESS OF ENVIRONMENT TABLE SECTOR
  8314. LDN BAET ADJUST ADDRESS TO BAT POINTER
  8315. RAD CM+4
  8316. SHN -14
  8317. LMC WECS*1000 SUBFUNCTION = WRITE XM
  8318. RAD CM+3
  8319. LDN 0
  8320. STD CM+1 SET WORD COUNT - 1 FOR TRANSFER
  8321. LDD MA SET BUFFER ADDRESS IN MONITOR REQUEST
  8322. STD CM+2
  8323. CWM BAEI,ON STORE *BAET* IMAGE IN CM BUFFER
  8324. MONITOR ECSM
  8325.  
  8326. * UPDATE *DAET* IN ENVIRONMENT TABLE SECTOR.
  8327.  
  8328. EDT1 LDN ZERL CLEAR *DAET* ASSEMBLY
  8329. CRD CN
  8330. CRD CM
  8331. * LDN 0
  8332. * STD CM+1 SET WORD COUNT - 1 FOR TRANSFER
  8333. RJM CEA GET ADDRESS OF ENVIRONMENT TABLE SECTOR
  8334. LDN DAET ADJUST ADDRESS TO DAT POINTER
  8335. RAD CM+4
  8336. SHN -14
  8337. LMC WECS*1000 SUBFUNCTION = WRITE XM
  8338. RAD CM+3
  8339. LDD QT SET CURRENT DAT TRACK
  8340. STD CN
  8341. LDD QI SET DAT INDEX
  8342. STD CN+4
  8343. LDD MA STORE *DAET* IMAGE IN CM BUFFER
  8344. CWD CN
  8345. STD CM+2 SET BUFFER ADDRESS IN MONITOR REQUEST
  8346. MONITOR ECSM
  8347. LJM EDTX RETURN
  8348. UER SPACE 4
  8349. ** UER - UPDATE EXTENDED MEMORY RESIDENT.
  8350. *
  8351. * ENTRY (EQ) = EST ORDINAL.
  8352. * (FN - FN+4) = EST ENTRY.
  8353. * EXIT (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
  8354. * BE REWRITTEN TO CM UPON RETURN TO *MRL*.
  8355. *
  8356. * CALLS ERT, SMT, SRT, CRT.
  8357.  
  8358.  
  8359. UER1 SHN 21-3+22-21+1
  8360. PJN UER2 IF DNAP BY THIS MACHINE
  8361. LDN STBM CLEAN UP TRACK INTERLOCKS
  8362. RJM ERT
  8363. LDD RS
  8364. NJN UER2 IF RECOVERY SELECTED
  8365. LDD FN
  8366. SHN 21-10
  8367. MJN UER2 IF REMOVABLE DEVICE
  8368. LDN DTKM CLEAN UP LOCAL FILE SPACE
  8369. RJM ERT
  8370. UER2 LDD EQ RESET EST ORDINAL
  8371. STD T5
  8372. CMSTF LUNL FORCE EXTENDED MEMORY UPDATE OF LOCAL MST
  8373.  
  8374. UER SUBR ENTRY/EXIT
  8375. SHN 21-11
  8376. PJN UERX IF NOT SHARED DEVICE
  8377. SHN 11-6
  8378. MJN UERX IF DEVICE UNAVAILABLE
  8379. SHN 6-1
  8380. MJN UER1 IF DEVICE ACCESSED PREVIOUSLY (DAP)
  8381. RJM SMT STORE MST/TRT IN ECS
  8382. RJM CRT CLEAR MRTS IN ECS
  8383. UJN UER2
  8384. UIS SPACE 4,10
  8385. ** UIS - UPDATE ISD MRT TABLES.
  8386. *
  8387. * ENTRY (A) = MS FLAG (RE) SHIFTED TO SIGN POSITION.
  8388. * (EQ) = EST ORDINAL.
  8389. * (FN - FN+4) = EST ENTRY.
  8390. * (RS) = RECOVERY STATUS.
  8391. *
  8392. * EXIT (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
  8393. * BE REWRITTEN TO CM UPON RETURN TO *MRL*.
  8394. *
  8395. * CALLS ERT.
  8396.  
  8397.  
  8398. UIS SUBR ENTRY/EXIT
  8399. SHN 21-6
  8400. MJN UISX IF DEVICE NOT AVAILABLE
  8401. LDD RS
  8402. ZJN UISX IF LEVEL ZERO DEADSTART
  8403. LDD FN
  8404. SHN 21-4
  8405. PJN UISX IF NOT AN ISD DEVICE
  8406. LDN STBM CLEAN UP TRACK INTERLOCKS
  8407. RJM ERT
  8408. UJN UISX RETURN
  8409. CRT TITLE CLEAR MACHINE RECOVERY TABLES.
  8410. ** CRT - CLEAR MRTS.
  8411. *
  8412. * CALLS STA, WDS.
  8413. *
  8414. * MACROS ENDMS, SETMS.
  8415.  
  8416.  
  8417. CRT SUBR ENTRY/EXIT
  8418. LDC MMFL READ MMF STATUS WORD
  8419. CRD CM
  8420. LDD CM+1 SET LINK DEVICE EST ORDINAL
  8421. LPC 777
  8422. STD T5
  8423. SETMS IO,DF
  8424. LDD FN+4 GET TRT LENGTH FROM MST
  8425. SHN 3
  8426. ADK TDGL
  8427. CRD CN
  8428. LDD TS SET MST/TRT TRACK
  8429. STD T6
  8430. LDN MRST-1 INITIALIZE MRT SECTOR
  8431. STD T7
  8432. LDD CN+2 SET MRT LENGTH
  8433. ADN 7
  8434. SHN -3
  8435. STD CN+1 SAVE MRT LENGTH
  8436. STM BFMS+1
  8437. STD T1 SET BUFFER LENGTH
  8438. SHN 2
  8439. RAD T1
  8440. CRT1 LDN 0 CLEAR BUFFER
  8441. STM BFMS+1,T1
  8442. SOD T1
  8443. NJN CRT1
  8444. LDN MXMF SET LOOP COUNT
  8445. STD CN
  8446.  
  8447. * CLEAR MRT SECTORS FOR *MXMF* MAINFRAMES.
  8448.  
  8449. CRT2 AOD T7 ADVANCE MRT SECTOR
  8450. ADN 1 SET NEXT SECTOR IN LINKAGE
  8451. STM BFMS
  8452. LDC BFMS CLEAR MRT
  8453. RJM WDS
  8454. SOD CN
  8455. NJN CRT2 IF MORE MRT-S TO CLEAR
  8456. ENDMS RELEASE CHANNEL
  8457. RJM STA SET FWA OF TRT
  8458. ADD CN+2 SET FWA OF MRT
  8459. CWM BFMS+2,CN+1
  8460. LJM CRTX RETURN
  8461. ERT TITLE EDIT MACHINE RECOVERY TABLE.
  8462. ** ERT - EDIT MRT.
  8463. *
  8464. * ENTRY (A) = *STBM* TO CLEAN UP TRACK INTERLOCKS.
  8465. * = *DTKM* TO CLEAN UP LOCAL FILE SPACE.
  8466. * (EQ) = EST ORDINAL.
  8467. * (FN - FN+4) = EST ENTRY.
  8468. *
  8469. * EXIT ALL LOCAL TRACK CHAINS DROPPED.
  8470. *
  8471. * USES T0 - T7, CM - CM+4.
  8472. *
  8473. * CALLS PTA, RDS, STA.
  8474. *
  8475. * MACROS MONITOR.
  8476.  
  8477.  
  8478. ERT2 SHN 21-0 CHECK NEXT BIT
  8479. STI T1
  8480. PJN ERT3 IF NO RESERVATION
  8481. LDD T2 SET TRT WORD INDEX
  8482. SHN 21-1
  8483. STD T0
  8484. SHN 1-21 FORM *SHN* WITH BYTE INDEX
  8485. ADC SHNI+21-7
  8486. STM ERTA
  8487. RJM STA SET FWA OF TRT
  8488. ADD T0
  8489. CRD CM
  8490. LDD CM+4 CHECK WRITE INTERLOCK
  8491. ERTA SHN **
  8492. ERTB PJN ERT3 IF TRACK NOT INTERLOCKED
  8493. * MJN ERT3 IF NOT LOCAL FILE
  8494. LDD MA LOAD MONITOR REQUEST
  8495. CRD CM
  8496. LDD T2 SET TRACK IN REQUEST
  8497. RAD CM+2
  8498. ERTC MONITOR STBM
  8499. * MONITOR DTKM
  8500. ERT3 AOD T2 ADVANCE TRACK NUMBER
  8501. ERT4 LDI T1
  8502. NJN ERT2 IF NOT END OF RESERVATIONS IN MRT BYTE
  8503. LDN 4*3 ALIGN TRACK NUMBER FOR NEXT MRT BYTE
  8504. RAD T6
  8505. STD T2
  8506. SOD T1 MOVE TO NEXT BYTE IN MRT WORD
  8507. LMD T5
  8508. NJN ERT4 IF NOT END OF DATA IN WORD
  8509. LCN 4 ALIGN TRACK FOR NEXT MRT WORD
  8510. RAD T6
  8511. STD T2
  8512. ERT5 LDN 3+5 ADVANCE TO NEXT MRT WORD
  8513. RAD T1
  8514. SBN 3 SET END OF DATA CHECK
  8515. STD T5
  8516. LMD T7
  8517. NJN ERT4 IF NOT END OF TRT EDIT
  8518.  
  8519. ERT SUBR ENTRY/EXIT
  8520. LMC LDNI SET MONITOR FUNCTION
  8521. STM ERTC
  8522. LPN 77
  8523. LMN STBM
  8524. ZJN ERT1 IF CLEARING TRACK INTERLOCKS
  8525. LDD HN MJNI - PJNI
  8526. ERT1 ADC PJNI+ERT3-ERTB
  8527. STM ERTB
  8528. RJM PTA PRESET FWA OF TRT
  8529. LDD FN+4 GET TRT LENGTH
  8530. SHN 3
  8531. ADK TDGL
  8532. CRD T3
  8533. LDC BFMS+1
  8534. STD T7
  8535. SBN 3 INITIALIZE MRT ADDRESS
  8536. STD T1
  8537. LDD T3+2 SET END OF MRT
  8538. STD T0 SAVE TRT LENGTH
  8539. ADN 7
  8540. SHN -3
  8541. STD T5
  8542. SHN 2
  8543. ADD T5
  8544. ADN 5-3
  8545. RAD T7
  8546. RJM STA SET FWA OF TRT
  8547. ADD T0
  8548. CRM BFMS+2,T5 READ MRT
  8549. LDN ZERL CLEAR TRACK POINTERS
  8550. CRD T6-4
  8551. LDD EQ SET UP BASIC MONITOR REQUEST
  8552. STD CM+1
  8553. LDC 4000
  8554. STD CM+2
  8555. LDN CTIS
  8556. STD CM+3
  8557. LDD MA STORE REQUEST IMAGE IN MESSAGE BUFFER
  8558. CWD CM
  8559. LJM ERT5 ENTER LOOP
  8560. SMT TITLE STORE MST/TRT IN EXTENDED MEMORY.
  8561. ** SMT - STORE MST + TRT IN EXTENDED MEMORY.
  8562. *
  8563. * ENTRY (EQ) = EST ORDINAL.
  8564. * (FN - FN+4) = EST ENTRY.
  8565. *
  8566. * USES P1, T1, CM+3 - CM+7, CN - CN+4, T5 - T7.
  8567. *
  8568. * CALLS CEA, PTA, STA, WDS.
  8569. *
  8570. * MACROS ENDMS, SETMS.
  8571.  
  8572.  
  8573.  
  8574. SMT SUBR ENTRY/EXIT
  8575. RJM PTA PRESET FWA OF TRT
  8576. LDC 500-5*GLGL
  8577. STD T7
  8578. SMT1 LDN 0 CLEAR BUFFER
  8579. STM BFMS+1+5*GLGL,T7
  8580. SOD T7
  8581. NJN SMT1
  8582. STD P1
  8583. LDC MMFL READ MMF STATUS WORD
  8584. CRD CN
  8585. LDD CN+1 SET LINK DEVICE EST ORDINAL
  8586. LPC 777
  8587. STD T5
  8588. SETMS IO,DF
  8589.  
  8590. * SET UNLOAD STATUS IN EACH LOCAL MST BLOCK.
  8591.  
  8592. SMT2 LDN MLUNL+MLDUL
  8593. STM BFMS+2+5*STLL,P1
  8594. LDN 5*LLLL ADVANCE INDEX
  8595. RAD P1
  8596. LMC MXMF*5*LLLL
  8597. NJN SMT2 LOOP FOR *MXMF* MSTS
  8598. LDD TS SET MST/TRT TRACK
  8599. STD T6
  8600. LDD HN SET FULL SECTOR WORD COUNT
  8601. STM BFMS+1
  8602. LDN ZERL
  8603. CRD CM+3
  8604. RJM CEA
  8605. LDN GLGL SET LENGTH OF GLOBAL MST
  8606. STD T1
  8607. LDN 1 SET INITIAL TRT ACCESS COUNT
  8608. STD CM+6
  8609. LDD FN+4
  8610. SHN 3
  8611. ADN SDGL
  8612. CWD CM+3
  8613. SBN SDGL-TDGL
  8614. CRD CN
  8615. CRM BFMS+2,T1
  8616. LCN 100-1 INITIALIZE TRT INDEX
  8617. STD CN+4
  8618. LDN 0
  8619. UJN SMT5 ENTER LOOP WITH (A) = 0
  8620.  
  8621. SMT3 SBD HN DECREMENT BLOCK COUNT
  8622. PJN SMT4 IF ANOTHER FULL SECTOR
  8623. ADD HN
  8624. STM BFMS+1 SET SHORT SECTOR
  8625. LDN 0
  8626. SMT4 STD CN+2
  8627. LDD HN ADVANCE TRT ADDRESS
  8628. RAD CN+4
  8629. RJM STA SET FWA OF TRT
  8630. ADD CN+4
  8631. CRM BFMS+2,HN
  8632. AOD T7 ADVANCE SECTOR
  8633. SMT5 ADN 1
  8634. STM BFMS
  8635. LDC BFMS WRITE NEXT SECTOR
  8636. RJM WDS
  8637. LDD CN+2
  8638. NJN SMT3 LOOP TO END OF TRT
  8639. ENDMS
  8640. LJM SMTX EXIT
  8641. SPACE 4,10
  8642. ERRNG BFMS-* OVERFLOW INTO BUFFER
  8643. SPACE 4,10
  8644. OVERFLOW ORDF,EPFW CHECK FOR OVERFLOW
  8645. TTL MSM/4DG - DEVICE RECOVERY ROUTINES.
  8646. TITLE
  8647. IDENT 4DG,/RDG/RDGX
  8648. *COMMENT MSM - DEVICE RECOVERY ROUTINES.
  8649. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  8650. SPACE 4
  8651. *** *4DG* CONTAINS ADDITIONAL DEVICE RECOVERY ROUTINES.
  8652. SPACE 4
  8653. QUAL RDG
  8654. ORG ORDG
  8655.  
  8656. RDG SUBR ENTRY/EXIT
  8657. RJM PRS PRESET OVERLAY
  8658. UJN RDGX RETURN
  8659. TITLE COPY MST/TRT TO DISK.
  8660. CTD SPACE 4,15
  8661. ** CTD - COPY TABLES TO DISK.
  8662. *
  8663. * ENTRY (FN - FN+4) = EST ENTRY.
  8664. *
  8665. * EXIT (A) .GE. 0.
  8666. *
  8667. * USES P1, T3, T6, T7, CM - CM+4, CN - CN+4.
  8668. *
  8669. * CALLS CLC, PTA, RDS, STA, WDS.
  8670. *
  8671. * MACROS CMSTF, ENDMS, MONITOR, SETMS.
  8672.  
  8673.  
  8674. CTD5 LDD RE CHECK ACCESS STATUS
  8675. LPC 1002
  8676. LMC 1002
  8677. CTD6 NJN CTDX IF NOT SHARED DEVICE ACCESSED PREVIOUSLY
  8678. LDD T5
  8679. STD CM+1
  8680. LDN UITS GET CURRENT COPY OF TRT / UPDATE MRT
  8681. STD CM+3
  8682. MONITOR STBM
  8683.  
  8684. CTD SUBR ENTRY/EXIT
  8685. RJM PTA PRESET FWA OF TRT
  8686. CMSTF LPTU ENABLE TRT UPDATE BY *1RU*
  8687. * LDN 0
  8688. STD T7
  8689. LDD FN
  8690. SHN 21-4
  8691. PJN CTD5 IF NOT INDEPENDENT SHARED DEVICE
  8692. LDD FN+4
  8693. SHN 3
  8694. ADN ALGL FETCH ALLOCATION WORD FROM MST
  8695. CRD CM
  8696. LDD CM+1 SET LABEL TRACK
  8697. STD T6
  8698. SETMS IO,(DE,DF)
  8699. LDC BFMS REREAD LABEL SECTOR
  8700. RJM RDS
  8701. LDD RE
  8702. SHN 21-1
  8703. MJN CTD1 IF ACCESSED PREVIOUSLY BY OTHER MF
  8704. LDM N4SS+5*SDGL+4
  8705. LPN 77 SAVE DIT INDEX
  8706. STD P1
  8707. LDN MSTL SET CHECKPOINTED MST LENGTH
  8708. STD T3
  8709. LDD FN+4 SET MST ADDRESS
  8710. SHN 3
  8711. ADK TDGL GET TRT LENGTH
  8712. CRD CN
  8713. SBK TDGL UPDATE MST IN LABEL SECTOR
  8714. CRM N4SS,T3
  8715. LDD P1 SET SOFTWARE RESERVE IN LABEL
  8716. LMD HN
  8717. STM N4SS+5*SDGL+4
  8718. LDD CN+2 SET MRT LENGTH
  8719. ADN 7
  8720. SHN -3 CALCULATE DIT OFFSET
  8721. RAD CN+2
  8722. UJN CTD2 GENERATE CHECKSUM
  8723.  
  8724. CTD1 LDN 0 CLEAR MACHINE ID TO FORCE TRT UPDATE IN CM
  8725. STM N4SS+5*STLL+2
  8726. LDM N4SS+5*SDGL+4 CLEAR MST INTERLOCK
  8727. SCN 77
  8728. STM N4SS+5*SDGL+4
  8729. CTD2 RJM CLC COMPUTE LABEL CHECKSUM
  8730. STM CKSS
  8731. LDC BFMS+WLSF
  8732. RJM WDS
  8733. ENDMS RELEASE HARDWARE RESERVE
  8734. LDD RE
  8735. LPN 2
  8736. NJN CTD3 IF DEVICE ACCESSED PREVIOUSLY
  8737. AOM N4SS+5*SDGL+4
  8738. LDD FN+4 SET MST ADDRESS
  8739. SHN 3
  8740. ADN SDGL STORE DEVICE INTERLOCK IN CM
  8741. CWM N4SS+5*SDGL,ON
  8742. RJM STA STORE DIT IN CM
  8743. ADD CN+2
  8744. ERRNZ MISD-MSTL CODE DEPENDS ON VALUE
  8745. CWM DISS,T3
  8746. LDD T5
  8747. STD CM+1 SET EST ORDINAL
  8748. LDN CDIS
  8749. STD CM+3 UPDATE TABLES ON DISK
  8750. MONITOR STBM
  8751. * LDN 0 SET IMMEDIATE RETURN
  8752. CTD3 LMN 2
  8753. LJM CTD6 RETURN
  8754. RMR SPACE 4,15
  8755. ** RMR - READ MRT.
  8756. *
  8757. * ENTRY (T5) = (EQ) = EST ORDINAL.
  8758. * (FN - FN+4) = EST ENTRY.
  8759. *
  8760. * USES T5 - T7, CM - CM+4, CN - CN+4.
  8761. *
  8762. * CALLS PTA, RDS, STA.
  8763. *
  8764. * MACROS ENDMS, SETMS.
  8765.  
  8766.  
  8767. RMR SUBR ENTRY/EXIT
  8768. LDD FN
  8769. SHN 21-11
  8770. PJN RMRX IF DEVICE NOT SHARED
  8771. SHN 21-4-21+11
  8772. PJN RMR1 IF NOT ISD
  8773. LDD RS
  8774. LPN FLMK
  8775. LMN FLTB
  8776. NJN RMRX IF FILES NOT RECOVERED FROM MS TABLES
  8777. LDD RA
  8778. SHN 6
  8779. ADD AL FETCH LABEL SECTOR
  8780. ADN DILL
  8781. CRD T7
  8782. LDD FN+4 GET LABEL TRACK
  8783. SHN 3
  8784. ADN ALGL
  8785. CRD CM
  8786. ADN DULL-ALGL GET MACHINE INDEX
  8787. CRD CN
  8788. LDD CM+1 SET LABEL TRACK
  8789. STD T6
  8790. LDD CN+2 SET MRT SECTOR
  8791. LPN 17
  8792. ADN MRTL
  8793. RAD T7
  8794. UJN RMR2 READ MRT
  8795.  
  8796. RMR1 LDK MMFL GET LINK DEVICE EST ORDINAL
  8797. CRD CN
  8798. LDD CN+1
  8799. LPC 777
  8800. STD T5
  8801. LDD TS SET MST/TRT TRACK FOR DEVICE
  8802. STD T6
  8803. LDD CN+4 SET MRT SECTOR FOR THIS MACHINE
  8804. ADN MRST-1
  8805. STD T7
  8806. RMR2 SETMS IO,DF
  8807. LDC BFMS
  8808. RJM RDS
  8809. ENDMS
  8810. LDD EQ RESTORE (T5)
  8811. STD T5
  8812.  
  8813. * COPY MRT TO CM AT THE END OF THE TRT.
  8814.  
  8815. RJM PTA PRESET TRT ADDRESS
  8816. LDD FN+4 GET TRT LENGTH
  8817. SHN 3
  8818. ADK TDGL
  8819. CRD CM
  8820. LDD CM+2 SET MRT LENGTH
  8821. STD T0 SAVE TRT LENGTH
  8822. ADN 7
  8823. SHN -3
  8824. STD CM+2
  8825. RJM STA SET TRT FWA
  8826. ADD T0
  8827. CWM BFMS+2,CM+2 COPY MRT TO CM
  8828. LJM RMRX RETURN
  8829. TITLE COPY TRT.
  8830. CTT SPACE 4,10
  8831. ** CTT - COPY TRT.
  8832. *
  8833. * ENTRY (CA) = CM ADDRESS OF TRT.
  8834. * (FN - FN+4) = EST ENTRY.
  8835. *
  8836. * EXIT (A) = 0.
  8837. *
  8838. * USES T6, CM - CM+4, CN - CN+4.
  8839. *
  8840. * CALLS PTA, STA.
  8841.  
  8842.  
  8843.  
  8844. CTT SUBR ENTRY/EXIT
  8845. RJM PTA
  8846. LDN 0 SET TRT WORD INDEX
  8847. STD T6
  8848. LDD FN+4 READ *TDGL*
  8849. SHN 3
  8850. ADK TDGL
  8851. CRD CN
  8852. CTT1 LDD RA READ BUFFER WORD
  8853. SHN 6
  8854. ADD CA
  8855. ADD T6
  8856. CRD CM
  8857. RJM STA SET FWA OF TRT
  8858. ADD T6
  8859. CWD CM
  8860. AOD T6 ADVANCE WORD
  8861. LMD CN+2
  8862. NJN CTT1 LOOP TO END OF TRT
  8863. * LDN 0
  8864. UJN CTTX RETURN
  8865. EMT TITLE ENTER MST PARAMETERS FROM LABEL.
  8866. ** EMT - ENTER MST PARAMETERS FROM LABEL.
  8867. *
  8868. * ENTRY (FN - FN+4) = EST ENTRY.
  8869. * (FS - FS+4) = STLL WORD.
  8870. * (T5) = EST ORDINAL.
  8871. * (RS) = RECOVERY STATUS.
  8872. * (MBUF) = LABEL MST.
  8873. *
  8874. * EXIT MST UPDATED TO REFLECT DEVICE LOADED.
  8875. * EST UPDATED TO REFLECT DEVICE LOADED.
  8876. * DEVICE SET AVAILABLE.
  8877. *
  8878. * USES T1, T2, CM - CM+4, CN - CN+4.
  8879. *
  8880. * MACROS MONITOR, SFA.
  8881.  
  8882.  
  8883. EMT SUBR ENTRY/EXIT
  8884. LDD FN
  8885. LPC 7667
  8886. EMTB EQU *-1
  8887. * LPC 7767 (*CMS* CALL)
  8888. STD FN
  8889. LDD FN+4 FETCH MST DRIVER WORD
  8890. SHN 3
  8891. ADN MDGL
  8892. CRD CM
  8893. LDD CM RETAIN *R* STATUS AND DAT INDEX
  8894. LPC 4377
  8895. STD CM
  8896. LDN 0
  8897. STD T2
  8898. STM MBUF+5*NVGL+4 CLEAR UNITS RESERVED TO *NVE*
  8899. LDD RS
  8900. NJN EMT1 IF RECOVERY SELECTED
  8901. STM MBUF+5*STLL+3 CLEAR ACTIVE USER COUNT
  8902. STM MBUF+5*DULL+1 CLEAR PF INTERLOCK AND COUNT
  8903. STM MBUF+5*DULL+3 CLEAR SYSTEM TABLE TRACK
  8904. STM MBUF+5*DULL+4 CLEAR ACTIVE USER COUNT
  8905. EMT1 LDD RE CLEAR UNAVAILABLE STATUS
  8906. LPC 7677
  8907. STD RE
  8908. LPN 2
  8909. NJN EMT3 IF DEVICE ACCESSED PREVIOUSLY
  8910. LDD RS
  8911. NJN EMT2 IF RECOVERY DEADSTART
  8912. LDM MBUF+5*ACGL+3 SAVE *IQFT* TRACK
  8913. STD T2
  8914. LDN 0 CLEAR *IQFT* POINTER
  8915. STM MBUF+5*ACGL+3
  8916. LDM MBUF+5*ACGL+0 CLEAR *DAS* PARITY DEVICE ACCESS FLAGS
  8917. SCN 17
  8918. STM MBUF+5*ACGL+0
  8919. LDD FN+3 CHECK DEVICE TYPE
  8920. LMC 2RDE
  8921. ZJN EMT2 IF *DE* DEVICE
  8922. LMN 2RDP&2RDE
  8923. ZJN EMT2 IF *DP* DEVICE
  8924. LDN 0 CLEAR *DAS* PARITY DEVICE FIELDS
  8925. STM MBUF+5*ACGL+1
  8926. EMT2 LDD FN+4 STORE DEVICE ACTIVITY WORD
  8927. SHN 3
  8928. ADN ACGL
  8929. CWM MBUF+5*ACGL,ON
  8930. EMT3 LDM MBUF+5*STLL+3 RETAIN ACTIVE USER COUNT
  8931. STD FS+3
  8932. LDM MBUF+5*MDGL SET *X* AND 16-WORD PFC STATUS FROM LABEL
  8933. LPC 3000
  8934. RAD CM
  8935. LDD FN SET MACHINE INDEX FOR DEVICE
  8936. SHN 21-4
  8937. MJN EMT4 IF ISD
  8938. EMTA LDN 0 (MACHINE INDEX - 1)
  8939. STM MBUF+5*DULL+2
  8940. EMT4 LDD FN+4 STORE ALLOCATION AND DEVICE DESCRIPTION
  8941. SHN 3
  8942. ADN ALGL
  8943. ERRNZ PFGL-ALGL-1 ADJUST IF *PFGL* POSITION CHANGES
  8944. ERRNZ PUGL-ALGL-2 ADJUST IF *PUGL* POSITION CHANGES
  8945. CWM MBUF+5*ALGL,TR
  8946. ADK MDGL-ALGL-3 STORE DRIVER WORD
  8947. CWD CM
  8948. LDD FN+4 PRESERVE BAT ADDRESS
  8949. SHN 3
  8950. ADN NVGL
  8951. CRD CM
  8952. LDD CM+1
  8953. STM MBUF+5*NVGL+1
  8954. LDD CM+2
  8955. STM MBUF+5*NVGL+2
  8956. LDD FN+4 STORE BAT PARAMETERS
  8957. SHN 3
  8958. ADN NVGL
  8959. ERRNZ NVGL+1-ISGL CODE DEPENDS ON VALUE
  8960. ERRNZ ISGL+1-I2GL CODE DEPENDS ON VALUE
  8961. CWM MBUF+5*NVGL,TR
  8962. ADN DULL-NVGL-3 STORE DEVICE USAGE INFORMATION
  8963. CWM MBUF+5*DULL,ON
  8964. CWD FS STORE DEVICE STATUS
  8965. SFA EST,T5 SET EQUIPMENT AVAILABLE IN EST
  8966. ADK EQDE
  8967. CWD FN
  8968. LDD T2
  8969. ZJN EMT5 IF NO *IQFT*
  8970. STD CM+2
  8971. LDD T5 RELEASE *IQFT* TRACK CHAIN
  8972. STD CM+1
  8973. MONITOR DTKM
  8974. EMT5 LJM EMTX RETURN
  8975. ETT TITLE EDIT TRT.
  8976. ** ETT - EDIT TRACK TABLE.
  8977. *
  8978. * ENTRY (CA) = ADDRESS OF CM BUFFER CONTAINING TRT.
  8979. * (FN - FN+4) = EST ENTRY.
  8980. * (MBUF) = LABEL MST.
  8981. *
  8982. * EXIT (A) = 0 IF COPY SUCCESSFUL.
  8983. * (A) .LT. 0 IF ERROR IN EDITING.
  8984. * ALL NON-PRESERVED FILE CHAINS RELEASED.
  8985. *
  8986. * USES T1, T2, T6, T7, P1, CM - CM+4.
  8987. *
  8988. * CALLS PTA, RTC, STF.
  8989.  
  8990.  
  8991. ETT SUBR ENTRY/EXIT
  8992. LDD FN+4 GET TRT LENGTH
  8993. SHN 3
  8994. ADK TDGL
  8995. CRD CM
  8996. LDD CM+2 SET TRT LENGTH
  8997. STD P1
  8998. RJM PTA PRESET FWA OF TRT
  8999. LDN 0 CLEAR WORD AND BYTE INDEX
  9000. STD T6
  9001. STD T7
  9002. STM MBUF+5*ACGL+2 CLEAR PRESERVED FILE COUNT
  9003. ETT1 LDD RA READ BUFFER WORD
  9004. SHN 6
  9005. ADD CA
  9006. ADD T6
  9007. CRD CM
  9008. LDD CM+4 SET PRESERVED FILE IDENTIFIERS
  9009. LPC 7400
  9010. STM ETTB SET BIT MASK
  9011. LDM CM,T7 CHECK FOR RESERVED TRACK
  9012. LMC 3777
  9013. NJN ETT2 IF NOT FLAWED TRACK
  9014. RJM STF SET TRACK FLAW
  9015. UJN ETT3 ADVANCE BYTE INDEX
  9016.  
  9017. ETT2 LDM ETTC,T7 CHECK PRESERVED FILE BIT
  9018. LPC *
  9019. ETTB EQU *-1
  9020. ZJN ETT3 IF NOT PRESERVED FILE
  9021. RJM RTC RESERVE TRACK CHAIN
  9022. AOM MBUF+5*ACGL+2 ADVANCE PRESERVED FILE COUNT
  9023. ETT3 AOD T7 ADVANCE BYTE INDEX
  9024. LMN 4
  9025. NJN ETT4 IF NOT END OF TRT WORD
  9026. STD T7
  9027. AOD T6 ADVANCE WORD INDEX
  9028. LMD P1
  9029. ZJN ETT5 IF END OF BUFFER
  9030. ETT4 LJM ETT1 LOOP
  9031.  
  9032. ETT5 LDM MBUF+5*NVGL
  9033. ZJN ETT7 IF NO MEDIA ERRORS RECORDED
  9034. SHN 21-1
  9035. LMD TH EXTRACT TRT WORD INDEX
  9036. STD T6
  9037. SHN 1-21 FORM BYTE INDEX FROM TRACK NUMBER
  9038. STD T7
  9039. RJM STF SET TRACK FLAW
  9040. NJN ETT6 IF TRACK RESERVED
  9041. STM MBUF+5*NVGL
  9042. ETT6 LDN 0
  9043. ETT7 LJM ETTX RETURN
  9044.  
  9045.  
  9046. * TRACK RESERVATION BITS.
  9047.  
  9048. ETTC BSS 0
  9049. CON 4010
  9050. CON 2004
  9051. CON 1002
  9052. CON 0401
  9053. RTC TITLE RESERVE TRACK CHAIN.
  9054. ** RTC - RESERVE TRACK CHAIN.
  9055. *
  9056. * ENTRY (CA) = BUFFER ADDRESS.
  9057. * (P1) = TRT LENGTH.
  9058. * (FN - FN+4) = EST ENTRY.
  9059. * (T6) = WORD INDEX.
  9060. * (T7) = BYTE INDEX.
  9061. *
  9062. * EXIT (A) = *STLK* IF LINKAGE ERROR.
  9063. * TO *ETTX* IF LINKAGE ERROR.
  9064. *
  9065. * USES T1, T2, CM - CM+4, CN - CN+4.
  9066. *
  9067. * CALLS STA.
  9068.  
  9069.  
  9070. RTC SUBR ENTRY/EXIT
  9071. LDD T6 SET WORD INDEX
  9072. STD T1
  9073. LDD T7 SET BYTE INDEX
  9074. STD T2
  9075. RTC1 LDD T1 CHECK WORD INDEX
  9076. SBD P1
  9077. PJN RTC2 IF OUT OF TRT
  9078. RJM STA SET FWA OF TRT
  9079. ADD T1
  9080. CRD CN
  9081. LDM CN,T2 CHECK TRACK LINK
  9082. ZJN RTC3 IF CLEAR
  9083. RTC2 LDN STLK
  9084. LJM ETTX EXIT
  9085.  
  9086. RTC3 LDM CM,T2 SET NEXT LINK
  9087. STM CN,T2
  9088. LDM ETTC,T2 SET PROPAGATION MASK
  9089. STM RTCB
  9090. LMC -0 SET RESERVATION MASK
  9091. STM RTCA
  9092. LDD CN+4 SAVE PREVIOUS BITS
  9093. LPC *
  9094. RTCA EQU *-1
  9095. STD CN+4
  9096. LDD CM+4
  9097. LPC *
  9098. RTCB EQU *-1
  9099. RAD CN+4
  9100. RJM STA SET FWA OF TRT
  9101. ADD T1
  9102. CWD CN
  9103. LDM CN,T2 CHECK NEXT LINK
  9104. SHN 6
  9105. MJN RTC4 IF NOT END OF TRACK CHAIN
  9106. LJM RTCX RETURN
  9107.  
  9108. RTC4 SHN 12 SET WORD INDEX
  9109. LMD TH
  9110. STD T1
  9111. SHN -20 SET BYTE INDEX
  9112. STD T2
  9113. LDD RA READ BUFFER WORD
  9114. SHN 6
  9115. ADD CA
  9116. ADD T1
  9117. CRD CM
  9118. LJM RTC1 LOOP TO END OF CHAIN
  9119. RTT TITLE READ TRT.
  9120. ** RTT - RECOVER TRACK RESERVATION TABLE.
  9121. *
  9122. * ENTRY (T5) = EST ORDINAL.
  9123. * (CA+1) = CM BUFFER ADDRESS FOR TRT.
  9124. * (FN - FN+4) = EST ENTRY.
  9125. *
  9126. * EXIT (A) = 0 IF SUCCESSFUL RECOVERY.
  9127. * = *STTL* IF TRT LENGTH ERROR.
  9128. * = *STLK* IF TRT LINKAGE ERROR.
  9129. * (CA) = FWA OF TRT IN CM.
  9130. * (MBUF) = LABEL MST.
  9131. *
  9132. * USES P1, T1, T3, T6, T7, CN - CN+4.
  9133. *
  9134. * CALLS ATC, CTD, CTT, EMT, ETT, RMR, RDS.
  9135. *
  9136. * MACROS ENDMS, MONITOR, SETMS.
  9137.  
  9138.  
  9139. RTT4 NJN RTTX IF LENGTH ERROR
  9140. RJM ETT EDIT TRACK TABLE
  9141. RTTA EQU *-1
  9142. * RJM CTT (RECOVERY DEADSTART)
  9143. NJN RTTX IF LINKAGE ERROR
  9144. RTT5 RJM EMT ENTER MST PARAMETERS
  9145. RJM ATC ADJUST TRACK COUNT
  9146. RTTB UJN *+2 SKIP MRT UPDATE
  9147. CON RMR
  9148. * RJM RMR (RECOVERY DEADSTART)
  9149. RJM CTD COPY SHARED TABLES
  9150. LDN 0
  9151.  
  9152. RTT SUBR ENTRY/EXIT
  9153. LDN MSTL
  9154. STD T1
  9155. LDD RA READ LABEL INTO MST BUFFER
  9156. SHN 6
  9157. ADD AL
  9158. CRM MBUF,T1
  9159. LDD RE CHECK ESM RESIDENT TRT
  9160. LPC 1002
  9161. LMC 1002
  9162. ZJN RTT5 IF DEVICE ACCESSED PREVIOUSLY
  9163. SETMS IO,DF
  9164. LDD CA+1 SET FWA FOR TRT IN CM
  9165. STD CA
  9166. LDM MBUF+5*ALGL+1 SET LABEL TRACK
  9167. STD T6
  9168. LDM MBUF+5*DILL SET SECTOR NUMBER
  9169. ADN FSMS
  9170. STD T7
  9171. LDD FN+4 SET LENGTH OF TRT
  9172. SHN 3
  9173. ADK TDGL
  9174. CRD CN
  9175. LDD CN+2
  9176. STD P1
  9177. RTT1 LDC BFMS READ SECTOR
  9178. RJM RDS
  9179. MJN RTT2 IF MS ERROR
  9180. LDM BFMS
  9181. ZJN RTT2 IF EOF/EOI
  9182. STD T7
  9183. LDM BFMS+1
  9184. ZJN RTT2 IF END OF TRT
  9185. STD T1
  9186. LDD P1
  9187. SBD T1
  9188. MJN RTT2 IF WORD COUNT > TRT SIZE
  9189. STD P1
  9190. LDD RA WRITE SECTOR TO CM
  9191. SHN 6
  9192. ADD CA
  9193. CWM BFMS+2,T1
  9194. LDD T1
  9195. RAD CA
  9196. LDD T1
  9197. SHN -6
  9198. NJN RTT1 IF NOT EOR
  9199. RTT2 ENDMS RELEASE CHANNEL
  9200. LDD CA+1
  9201. STD CA SET FWA OF TRT IN CM
  9202. LDD P1
  9203. ZJN RTT3 IF CORRECT TRT LENGTH
  9204. LDN STTL
  9205. RTT3 LJM RTT4 COMPLETE RECOVERY
  9206. STF TITLE SET TRACK FLAW.
  9207. ** STF - SET TRACK FLAW IN TRT.
  9208. *
  9209. * ENTRY (T6) = TRT WORD INDEX.
  9210. * (T7) = BYTE INDEX.
  9211. * (P1) = TRT LENGTH.
  9212. *
  9213. * EXIT (A) = 0 IF INVALID TRACK.
  9214. *
  9215. * USES CM - CM+4.
  9216. *
  9217. * CALLS STA.
  9218.  
  9219.  
  9220. STF1 LDN 0 INDICATE INVALID TRACK
  9221.  
  9222. STF SUBR ENTRY/EXIT
  9223. LDD T6
  9224. SBD P1
  9225. PJN STF1 IF TRACK OUT OF TRT
  9226. RJM STA
  9227. ADD T6 READ TRT WORD
  9228. CRD CM
  9229. LDM ETTC,T7 SET TRACK RESERVATION MASK
  9230. LPN 17
  9231. STD T0
  9232. LMD CM+4 CHECK TRACK ASSIGNMENT
  9233. SBD T0
  9234. LMD CM+4
  9235. NJN STFX IF RESERVED
  9236. LDD T0
  9237. RAD CM+4 SET TRACK RESERVED
  9238. LDC 3777
  9239. STM CM,T7 SET TRACK FLAWED
  9240. RJM STA
  9241. ADD T6 STORE TRT WORD
  9242. CWD CM
  9243. UJN STFX RETURN
  9244. TITLE SET EQUIPMENT CONFIGURATION.
  9245. AUL SPACE 4,15
  9246. ** AUL - ASSEMBLE UNIT LIST.
  9247. *
  9248. * ENTRY (UC) = REQUIRED UNIT COUNT.
  9249. * (FN - FN+4) = EST ENTRY.
  9250. * (CN - CN+4) = UNIT DESCRIPTOR WORD (DDLL).
  9251. *
  9252. * EXIT (A) = 0 IF REQUIRED UNIT COUNT SATISFIED.
  9253. * (CN - CN+4) = NEW UNIT LIST.
  9254. * (FS - FS+4) = DEVICE STATUS WORD (STLL).
  9255. *
  9256. * USES T0 - T3, CM - CM+4, FS - FS+4.
  9257.  
  9258.  
  9259. AUL2 AOD T1 ADVANCE UNITS TRANSFERED COUNT
  9260. SHN 21-0
  9261. MJN AUL3 IF NOT CROSSING BYTE BOUNDARY
  9262. SOD T2 DECREMENT SOURCE ADDRESS
  9263. AUL3 AOD CN ADVANCE TOTAL UNIT COUNT
  9264. LPN 7
  9265. SHN -1
  9266. STD T0
  9267. LDN CN+4 FORM DESTINATION BYTE ADDRESS
  9268. SBD T0
  9269. STD T3
  9270. LDI T2 EXTRACT NEXT UNIT
  9271. SHN 14
  9272. STI T2
  9273. SHN -14
  9274. AULA PJN AUL4 IF PACKING UNIT LOW
  9275. * MJN AUL4 FALL THRU IF PACKING UNIT HIGH
  9276. SHN 6
  9277. LMI T3 ASSEMBLE UNIT DESCRIPTOR WORD
  9278. SCN 77
  9279. LMI T3
  9280. AUL4 STI T3
  9281. LDD UC
  9282. LMD CN
  9283. LPN 7
  9284. ZJN AULX IF REQUIRED UNIT COUNT SATISFIED
  9285. LDM AULA TOGGLE UNIT PACKING TRANSFER
  9286. LMD HN
  9287. STM AULA
  9288. SOD CM
  9289. PJN AUL2 IF MORE UNITS THIS EQUIPMENT
  9290.  
  9291. AUL SUBR ENTRY/EXIT
  9292. LDD FN+4
  9293. SHN 3
  9294. ADN STLL
  9295. CRD FS
  9296. ADN DDLL-STLL GET UNIT DESCRIPTOR WORD
  9297. CRD CM
  9298. LDD CM
  9299. LPN 7
  9300. STD CM
  9301. LDD CN CHECK CURRENT UNIT COUNT
  9302. LPN 1
  9303. ZJN AUL1 IF NEXT UNIT PACKS LOW
  9304. LDD HN PJNI .NOT. MJNI
  9305. AUL1 LMC MJNI+AUL4-AULA
  9306. STM AULA SET INITIAL PACKING TRANSFER
  9307. LDN 0 CLEAR UNITS UNPACKED
  9308. STD T1
  9309. LDN CM+4 SET INITIAL SOURCE ADDRESS
  9310. STD T2
  9311. LJM AUL3 ENTER LOOP
  9312. SEC SPACE 4,15
  9313. ** SEC - SET EQUIPMENT CONFIGURATION.
  9314. *
  9315. * ENTRY (T5) = EST ORDINAL.
  9316. * (EQ) = EST ORDINAL.
  9317. * (FN - FN+4) = EST ENTRY.
  9318. *
  9319. * EXIT EST/MST SET TO ACCOMMODATE NEW CONFIGURATION.
  9320. * ALL EXCEPT FIRST EQUIPMENT IN CHAIN SET IN USE.
  9321. * (FS - FS+4) = STLL WORD FOR EQUIPMENT.
  9322. * (FN - FN+4) = EST ENTRY.
  9323. *
  9324. * USES EC, UC, CM - CM+7, CN - CN+4.
  9325. *
  9326. * CALLS AUL, SES, SSL.
  9327. *
  9328. * MACROS SFA, SMSTF.
  9329.  
  9330.  
  9331. SEC5 RJM SSL SET SECTOR LIMITS
  9332.  
  9333. SEC SUBR ENTRY/EXIT
  9334. LDN 0 CLEAR MST ERROR STATUS
  9335. STD EC
  9336. RJM SES
  9337. LDD FN+4 READ CONFIGURATION PARAMETERS
  9338. SHN 3
  9339. ADN MDGL
  9340. CRD CM+3
  9341. SBN MDGL-PFGL
  9342. CRD CM
  9343. ADN STLL-PFGL
  9344. CRD FS
  9345. ADN DDLL-STLL
  9346. CRD CN
  9347. LDD CN SAVE CURRENT UNIT COUNT
  9348. LPN 7
  9349. STD T0
  9350. LDD FN CHECK EQUIPMENT STATUS
  9351. SHN 21-10
  9352. PJN SEC5 IF NOT REMOVABLE DEVICE
  9353. LDD CM+5
  9354. LMC 2RDI
  9355. ZJN SEC1 IF *6DI* DRIVER
  9356. LMN 2RDJ&2RDI
  9357. ZJN SEC1 IF *6DJ* DRIVER
  9358. LDD CM+4 SET REQUIRED = CURRENT UNIT COUNT
  9359. LPN 7
  9360. STD CM+4
  9361. LDD CN
  9362. SCN 7
  9363. LMD CM+4
  9364. STD CN
  9365. SEC1 LDD CM+4 SET REQUIRED UNIT COUNT
  9366. LPN 7
  9367. STD UC
  9368. SBD T0
  9369. ZJN SEC4 IF REQUIRED = CURRENT UNIT COUNT
  9370. MJN SEC3 IF REQUIRED COUNT .LT. CURRENT
  9371. SEC2 LDD FS+4 SET NEXT EQUIPMENT IN CHAIN
  9372. SHN -3
  9373. STD T5
  9374. SFA EST READ NEXT EQUIPMENT EST
  9375. ADK EQDE
  9376. CRD FN
  9377. SMSTF LDIU SET DEVICE IN USE
  9378. RJM AUL ASSEMBLE UNIT LIST
  9379. NJN SEC2 IF REQUIRED UNITS NOT ASSEMBLED
  9380. SEC3 RAD CN
  9381. LDD EQ RESTORE FIRST EQUIPMENT PARAMETERS
  9382. STD T5
  9383. SFA EST
  9384. ADK EQDE
  9385. CRD FN
  9386. SEC4 LDD FN+4
  9387. SHN 3
  9388. ADN STLL
  9389. CRD FS
  9390. ADN DDLL-STLL UPDATE UNIT DESCRIPTOR WORD
  9391. CWD CN
  9392. LJM SEC5 COMPLETE PROCESSING AND EXIT
  9393. SPACE 4
  9394. ERRNG BFMS-* OVERFLOW INTO BUFFER
  9395. TITLE PRESET.
  9396. PRS SPACE 4,10
  9397. ** PRS - PRESET OVERLAY.
  9398.  
  9399.  
  9400. PRS SUBR ENTRY/EXIT
  9401.  
  9402. * PRESET FOR MMF PROCESSING.
  9403.  
  9404. LDM MMFP
  9405. ZJN PRS1 IF DO NOT PRESET FOR MMF
  9406. LDC MMFL GET MMF STATUS
  9407. CRD CM
  9408. SOD CM+4
  9409. RAM EMTA
  9410.  
  9411. * PRESET FOR RECOVERY PROCESSING.
  9412.  
  9413. PRS1 LDD RS
  9414. ZJN PRSX IF NOT RECOVERY DEADSTART
  9415. LDC CTT
  9416. STM RTTA ENABLE RECOVERY PROCESSING
  9417. LDC RJMI
  9418. STM RTTB
  9419. UJP PRSX EXIT
  9420. SPACE 4,10
  9421. QUAL
  9422.  
  9423. CTD EQU /RDG/CTD
  9424. RMR EQU /RDG/RMR
  9425. RTT EQU /RDG/RTT
  9426. SEC EQU /RDG/SEC
  9427. SPACE 4,10
  9428. OVERFLOW ORDG,EPFW CHECK FOR OVERFLOW
  9429. TTL MSM/4DH - DEVICE INITIALIZATION ROUTINES.
  9430. TITLE
  9431. QUAL RDH
  9432. IDENT 4DH,/RDH/RDHX
  9433. *COMMENT MSM - DEVICE INITIALIZATION ROUTINES.
  9434. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  9435. RDH SPACE 4,10
  9436. *** *4DH* CONTAINS ROUTINES UTILIZED BY *RMS*
  9437. * IN INITIALIZING MASS STORAGE EQUIPMENTS.
  9438. RDH SPACE 4,10
  9439. ** ROUTINES CALLED.
  9440. *
  9441. * 0PI - PRESET DRIVER TO READ/WRITE DEADSTART SECTOR.
  9442. * 0TI - SET TRACK FLAWS IN TRT.
  9443. SPACE 4,10
  9444. **** DIRECT LOCATION ASSIGNMENTS.
  9445.  
  9446.  
  9447. PB EQU RG - RI+1 FORMAT PARAMETER BLOCK (3 LOCATIONS)
  9448. CS EQU ET CHANNEL STATUS
  9449. FR EQU P1 FORMAT REQUIRED FLAG
  9450. LC EQU P2 LAST CYLINDER + 1
  9451.  
  9452. ****
  9453. SPACE 4,10
  9454. ** ASSEMBLY CONSTANTS.
  9455.  
  9456.  
  9457. DC EQU 11 DISK CHANNEL
  9458.  
  9459. FCGS EQU 12 GENERAL STATUS FUNCTION CODE
  9460. FCFP EQU 16 FORMAT PACK FUNCTION CODE
  9461.  
  9462. FPBL EQU 22 FORMAT PACK PARAMETER BLOCK LENGTH
  9463. RDH SPACE 4,10
  9464. ORG ORDH
  9465.  
  9466. RDH SUBR ENTRY/EXIT
  9467. LJM POV PRESET OVERLAY
  9468. TITLE MAIN INITIALIZATION ROUTINE.
  9469. IMS SPACE 4,15
  9470. ** IMS - INITIALIZE MASS STORAGE.
  9471. *
  9472. * ENTRY (EQ) = EST ORDINAL.
  9473. * (FN - FN+4) = EST ENTRY.
  9474. *
  9475. * EXIT (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
  9476. * BE REWRITTEN TO CM UPON RETURN TO *MRL*.
  9477. *
  9478. * ERROR TO *HNG* IF SHARED DEVICE CONFLICT.
  9479. *
  9480. * USES CM+3 - CM+7, CN - CN+4, FS - FS+4.
  9481. *
  9482. * CALLS CSD, /RMS/CSE, IDS, UDT.
  9483. *
  9484. * MACROS UJMF.
  9485.  
  9486.  
  9487. IMS5 RJM IDS INITIALIZE DEVICE STATUS
  9488. NJN IMSX IF DEVICE NOT READY
  9489. UJMF IMSX NON MMF TRANSFER
  9490. RJM UDT UPDATE DAT
  9491. NJN IMS1 IF EXTENDED MEMORY TRACK UNAVAILABLE
  9492.  
  9493. IMS SUBR ENTRY/EXIT
  9494. SHN 21-4
  9495. PJN IMSX IF INITIALIZE NOT SELECTED
  9496. LDD FN+4 GET FAMILY NAME/DEVICE NUMBER
  9497. SHN 3
  9498. ADN PFGL
  9499. CRD CN
  9500. ADN MDGL-PFGL GET SECTOR LIMITS
  9501. CRD CM+3
  9502. ADN STLL-MDGL FETCH DEVICE STATUS
  9503. CRD FS
  9504. RJM /RMS/CSE CHECK SYSTEM EQUIPMENT
  9505. UJMF IMS5 NON MMF TRANSFER
  9506. RJM CSD CHECK SHARED DEVICE STATUS
  9507. IMS1 NJN IMS4 IF DAT CONFLICT
  9508. LDD T2
  9509. IMS2 ZJN IMS5 IF DEVICE NOT DESCRIBED IN DAT
  9510. LDI T2
  9511. LPC -0
  9512. IMSA EQU *-1
  9513. STI T2
  9514. ZJN IMS5 IF DEVICE NOT ACTIVE IN DAT
  9515. LDM DATB+4
  9516. ZJN IMS3 IF NON-SHARED DEVICE
  9517. LDN CSDC-CSDB
  9518. IMS3 ADC CSDB
  9519. IMS4 LJM /RMS/HNG DISPLAY ERROR AND HANG PP
  9520. TITLE SUBROUTINES.
  9521. CFR SPACE 4,20
  9522. ** CFR - CHECK FOR FORMAT REQUEST.
  9523. *
  9524. * ENTRY (A) = 0 IF DEADSTART SECTOR READ BY *RCS*.
  9525. * (AM) = ALGORITHM INDEX.
  9526. * (CS) = CHANNEL STATUS.
  9527. * (FR) = FORMAT REQUIRED FLAG.
  9528. * (LC) = FIRST CYLINDER OF *CTI* SPACE.
  9529. * (T5) = EST ORDINAL.
  9530. * (T6) = TRACK CONTAINING DEADSTART SECTOR.
  9531. * (T7) = DEADSTART SECTOR.
  9532. * (FN - FN+4) = EST ENTRY.
  9533. * (FS - FS+4) = *STLL* WORD OF MST.
  9534. *
  9535. * USES T3.
  9536. *
  9537. * CALLS *4DI*.
  9538. *
  9539. * MACROS EXECUTE.
  9540.  
  9541.  
  9542. CFR SUBR ENTRY/EXIT
  9543. STD T3
  9544. LDD FR
  9545. NJN CFR1 IF FORMAT REQUIRED
  9546. LDD FS
  9547. SHN 21-LFPR+LFPR/12D*12D
  9548. PJN CFRX IF DEVICE NOT BEING FORMATTED
  9549. CFR1 LDD AM
  9550. LMN AIDC
  9551. NJN CFRX IF NOT 895 DEVICE
  9552. LDD CS
  9553. ZJN CFRX IF ALL CONCURRENT CHANNELS
  9554. EXECUTE 4DI FORMAT 895 DEVICE
  9555. UJN CFRX RETURN
  9556. CTF SPACE 4,10
  9557. ** CTF - CHECK TRACK FLAWED IN TRT.
  9558. *
  9559. * ENTRY (A) = TRACK NUMBER.
  9560. *
  9561. * EXIT (A) = 0 IF TRACK FLAWED.
  9562. *
  9563. * USES T0, T1, CM - CM+4.
  9564. *
  9565. * CALLS STA.
  9566.  
  9567.  
  9568. CTF SUBR ENTRY/EXIT
  9569. LPC 3777 UNPACK TRACK
  9570. SHN 21-1 SET TRT WORD INDEX
  9571. STD T0
  9572. SHN 1-21 SET BYTE INDEX
  9573. STD T1
  9574. RJM STA SET FWA OF TRT
  9575. ADD T0
  9576. CRD CM
  9577. LDM CM,T1 CHECK TRACK
  9578. LMC 3777
  9579. UJN CTFX RETURN
  9580. FBT SPACE 4,10
  9581. ** FBT - FLAW BLOCK OF TRACKS IN TRT.
  9582. *
  9583. * ENTRY (T3) = FIRST TRACK NUMBER.
  9584. * (CN) = LAST TRACK NUMBER + 1.
  9585. * (T5) = EST ORDINAL.
  9586. *
  9587. * EXIT ALL TRACKS FLAWED IN SPECIFIED BLOCK.
  9588. *
  9589. * USES T3, CM - CM+4.
  9590. *
  9591. * CALLS CTF.
  9592. *
  9593. * MACROS MONITOR.
  9594.  
  9595.  
  9596. FBT SUBR ENTRY/EXIT
  9597. FBT1 LDD T3 CHECK TRACK FLAWED
  9598. RJM CTF
  9599. ZJN FBT2 IF TRACK ALREADY FLAWED
  9600. LDD T5
  9601. STD CM+1
  9602. LDD T3
  9603. STD CM+2
  9604. LDN STFS FLAW TRACK IN TRT
  9605. STD CM+3
  9606. MONITOR STBM
  9607. FBT2 AOD T3 ADVANCE TRACK NUMBER
  9608. LMD CN
  9609. NJN FBT1 IF NOT END OF TRACKS TO FLAW
  9610. UJN FBTX RETURN
  9611. IDS SPACE 4,15
  9612. ** IDS - INITIALIZE DEVICE.
  9613. *
  9614. * ENTRY (EQ) = (T5) = EST ORDINAL.
  9615. * (FN - FN+4) = EST ENTRY.
  9616. * (FS - FS+4) = STLL WORD.
  9617. *
  9618. * EXIT (A) = 0 IF DEVICE SET TO INITIALIZE.
  9619. * LABEL TRACK ASSIGNED.
  9620. *
  9621. * USES CS, T1, T3, T6, CM - CM+4, CN - CN+4.
  9622. *
  9623. * CALLS CFR, CTF, IFM, PTA, PTF, RCS, SNC.
  9624. *
  9625. * MACROS ENDMS, MONITOR, SETMS, SFA, SMSTF.
  9626.  
  9627.  
  9628. IDS7 LDN 0 INHIBIT FURTHER PROCESSING OF DEVICE
  9629. STD RE
  9630. LDN 1 INDICATE DEVICE NOT INITIALIZED
  9631.  
  9632. IDS SUBR ENTRY/EXIT
  9633. LDD FN
  9634. LPN 2
  9635. NJN IDS7 IF DEVICE OFF OR DOWN
  9636. SMSTF LPTU PROHIBIT TRT UPDATE BY *1RU*
  9637. RJM PTA PRESET FWA OF TRT
  9638. LDD FN CHECK EQUIPMENT TYPE
  9639. LPC 200
  9640. STM PFTA SET LDAM FLAG FOR *PFT* ROUTINE
  9641. ZJN IDS1 IF NOT *LDAM* DEVICE
  9642. RJM SNC SELECT NIO CHANNEL
  9643. STD CS
  9644. RJM IFM INTERPRET FLAW MAP
  9645. RJM RCS RESERVE *CTI* SPACE
  9646. RJM CFR CHECK FOR FORMAT REQUEST
  9647. IDS1 LDN ZERL REQUEST LABEL TRACK
  9648. CRD CM
  9649. LDD T5
  9650. STD CM+1
  9651. MONITOR RTCM
  9652. * LDN 0 SET SECTOR
  9653. STD T7
  9654. LDD CM+4 SET LABEL TRACK
  9655. STD T6
  9656. ZJP IDS2 IF NO TRACK ASSIGNED
  9657. STD CM+2
  9658. LDN SPFS SET PRESERVED FILE STATUS
  9659. STD CM+3
  9660. MONITOR STBM
  9661. LDD FN+4 READ *ALGL*
  9662. SHN 3
  9663. ADK TDGL
  9664. CRD CM
  9665. ADN ALGL-TDGL
  9666. CRD CN
  9667. LDD CM SET TRACK COUNT
  9668. STD T3
  9669. LDD T6 SET LABEL TRACK
  9670. STD CN+1
  9671. LDD FN+4 STORE *ALGL*
  9672. SHN 3
  9673. ADN ALGL
  9674. CWD CN
  9675. LDD FN SET DEVICE AS AVAILABLE
  9676. LPC 7667
  9677. LMN 10 SET DEVICE ACTIVE
  9678. STD FN
  9679. LDD RE
  9680. LPC 7677
  9681. STD RE
  9682. SFA EST,T5 WRITE EST ENTRY
  9683. ADK EQDE
  9684. CWD FN
  9685. LDC 501 BUFFER INDEX
  9686. STD T1
  9687. LDC LTKL-1
  9688. SBD T6
  9689. PJN IDS3 IF LABEL TRACK WITHIN RANGE
  9690. IDS2 LDC IDSA
  9691. LJM /RMS/HNG ISSUE ERROR MESSAGE AND HANG
  9692.  
  9693. * PREWRITE ALL POTENTIAL LABEL TRACKS THAT ARE FLAWED.
  9694.  
  9695. IDS3 LDN 0 CLEAR SECTOR BUFFER
  9696. STM BFMS,T1
  9697. SOD T1
  9698. PJN IDS3 IF MORE TO CLEAR
  9699. SHN -7
  9700. STM FNSS SET FLAW INDICATOR
  9701. SETMS IO,(SM,AR,DF)
  9702. RJM PFT PREWRITE LABEL TRACK
  9703. LDC FLTK
  9704. STD T6
  9705. IDS4 LDD T6 CHECK TRACK FLAWED
  9706. RJM CTF
  9707. NJN IDS5 IF NOT FLAWED
  9708. STD T7
  9709. RJM PFT PREWRITE FLAWED TRACK
  9710. IDS5 SOD T3
  9711. ZJN IDS6 IF END OF TRACKS ON DEVICE
  9712. AOD T6
  9713. LMC LTKL
  9714. NJN IDS4 IF NOT ALL POSSIBLE LABEL TRACKS
  9715. IDS6 ENDMS
  9716. * LDN 0
  9717. LJM IDSX RETURN
  9718.  
  9719.  
  9720. IDSA DATA C*LABEL TRACK CONFLICT.*
  9721. IFM SPACE 4,15
  9722. ** IFM - INTERPRET FLAW MAP.
  9723. *
  9724. * ENTRY (EQ) = (T5) = EST ORDINAL.
  9725. * (FS - FS+4) = MST STATUS WORD (STLL).
  9726. * (FN - FN+4) = EST ENTRY FOR EQUIPMENT.
  9727. * (CS) = CHANNEL STATUS.
  9728. *
  9729. * EXIT (T5) = EQUIPMENT.
  9730. * (AM) = ALGORITHM INDEX.
  9731. * FLAWS SET IN TRT FOR *LDAM* TYPE EQUIPMENT.
  9732. *
  9733. * EREXIT (A) .NE. 0 IF REMOVABLE *LDAM* DEVICE NOT READY.
  9734. * TO *IDSX* IF REMOVABLE *LDAM* DEVICE NOT READY.
  9735. *
  9736. * USES T3, CM - CM+4, FS - FS+1.
  9737. *
  9738. * CALLS EXR, SDR, *0TI*, *0TJ*.
  9739. *
  9740. * MACROS EXECUTE.
  9741.  
  9742.  
  9743. IFM2 LDD FN+3 GET UNIT COUNT
  9744. SHN 3
  9745. ADN DDLL
  9746. CRD CM
  9747. LDD CM SET UNIT COUNT
  9748. LPN 7
  9749. STD T2
  9750. LDN PRFM REQUEST FLAW MAP PROCESSING
  9751. RJM SDR SET BUFFERED DEVICE REQUEST
  9752.  
  9753. IFM SUBR ENTRY/EXIT
  9754. LDD CS
  9755. ZJN IFM2 IF ALL CONCURRENT CHANNELS
  9756. LDD T5 SET EQUIPMENT PARAMETER
  9757. STM MIPA
  9758. IFM1 LDD FN+4
  9759. SHN 3
  9760. ADN DILL READ ALGORITHM INDEX FROM LIST
  9761. CRD CM
  9762. LDD CM+4 LOAD ALGORITHM INDEX
  9763. LPN 77
  9764. STD AM
  9765. EXECUTE 0TI,MILA EXECUTE FLAW PROCESSOR
  9766. ZJN IFMX IF NO FLAWING ERRORS
  9767. LDM RDCT
  9768. LPN 77
  9769. LMN NRDE
  9770. NJN IFMX IF DEVICE READY
  9771. LDD FN
  9772. SHN 21-10
  9773. PJN IFM1 IF NON-REMOVABLE DEVICE
  9774. LDN ZERL
  9775. CRD CM
  9776. LDN 0 CLEAR INITIALIZATION REQUEST
  9777. STD RE
  9778. STD FS
  9779. LMN STNR SET NOT READY STATUS
  9780. STD FS+1
  9781. LDD FN+4
  9782. SHN 3
  9783. ADN PFGL CLEAR DEVICE DESCRIPTION
  9784. CWD CM
  9785. ADN PUGL-PFGL
  9786. CWD CM
  9787. ADN STLL-PUGL STORE MST STATUS WORD
  9788. CWD FS
  9789. LJM IDSX EXIT
  9790. PFT SPACE 4,15
  9791. ** PFT - PREWRITE FLAWED TRACK.
  9792. *
  9793. * ENTRY (T4 - T7) = MASS STORAGE PARAMETERS.
  9794. * (PFTA) .NE. 0 IF *LDAM* DEVICE.
  9795. * DRIVER PRESET.
  9796. *
  9797. * CALLS WDS.
  9798.  
  9799.  
  9800. PFT SUBR ENTRY/EXIT
  9801. PFT2 LDC BFMS+WCSF WRITE SECTOR
  9802. RJM WDS
  9803. LDC 0
  9804. PFTA EQU *-1
  9805. ZJN PFTX IF NOT *LDAM* DEVICE
  9806. AOD T7
  9807. LMM SLM
  9808. NJN PFT2 IF NOT END OF TRACK
  9809. UJN PFTX RETURN
  9810. RCS SPACE 4,15
  9811. ** RCS - RESERVE *CTI* SPACE.
  9812. *
  9813. * ENTRY (EQ) = EST ORDINAL.
  9814. * (AM) = ALGORITHM INDEX.
  9815. * (FN+4) = MST POINTER.
  9816. * (CS) = CHANNELS STATUS.
  9817. *
  9818. * EXIT (A) = 0 IF DEADSTART SECTOR READ WITHOUT ERROR.
  9819. * (FR) = 0 IF FORMAT UNREQUIRED (*CIP* SPACE INTACT).
  9820. * (LC) = FIRST CYLINDER OF *CTI* SPACE.
  9821. * (T5) = EST ORDINAL.
  9822. * (T6) = TRACK CONTAINING DEADSTART SECTOR.
  9823. * (T7) = DEADSTART SECTOR.
  9824. * *CTI* SPACE FLAWED IN TRT.
  9825. *
  9826. * USES T3, T9, CM - CM+4, CN - CN+4.
  9827. *
  9828. * CALLS FBT, RDS, WDS, *0PI*.
  9829. *
  9830. * MACROS ENDMS, EXECUTE, SMSTF.
  9831.  
  9832.  
  9833. RCS8 LDC ** CHECK DEADSTART SECTOR
  9834. RCSA EQU *-1
  9835. NJN RCSX IF NO VALID DEADSTART SECTOR
  9836. LDD FR FORMAT REQUIRED STATUS
  9837.  
  9838. RCS SUBR ENTRY/EXIT
  9839. LDN 0
  9840. STD FR CLEAR FORMAT REQUIRED
  9841. STD LC
  9842. LDD CS
  9843. ZJN RCSX IF ALL CONCURRENT CHANNELS
  9844. LDD EQ SET PARAMETER WORD
  9845. LMC 4000
  9846. STM MIPA
  9847. EXECUTE 0PI,MILA READ DEADSTART SECTOR
  9848. STM RCSA
  9849. NJN RCS1.1 IF NOT A VALID DEADSTART SECTOR
  9850. ENDMS
  9851. LDM BFMS+CFBP EXTRACT FORMAT REQUIRED FLAG
  9852. LPN 40
  9853. STD FR
  9854. LMM BFMS+CFBP CLEAR FORMAT REQUIRED FLAG
  9855. STM BFMS+CFBP
  9856. LDM BFMS+MSLP
  9857. NJN RCS1 IF *MSL* INSTALLED
  9858. LDM BFMS+CDAP
  9859. NJN RCS1 IF COMMON DISK AREA INSTALLED
  9860. LDM BFMS+CTIP
  9861. RCS1 STD LC
  9862. NJN RCS1.2 IF *CTI* INSTALLED
  9863. RCS1.1 LDD AM
  9864. LMN AIDR
  9865. NJP RCS8 IF NOT CDSS II
  9866. LDC 840D FIRST CYLINDER OF AREA TO BE FLAWED
  9867. RCS1.2 SHN 1
  9868. STD T3
  9869. LDD FN+4 GET DEVICE LENGTH FROM MST
  9870. SHN 3
  9871. ADK TDGL
  9872. CRD CN
  9873. LDD AM
  9874. LMN AIDA
  9875. NJN RCS2 IF NOT 33502
  9876. LDD T3
  9877. SHN -1
  9878. ADC NTDA/2 COMPLETE CYLINDER TO TRACK CONVERSION
  9879. STD T3
  9880. UJN RCS4 FLAW TRACKS
  9881.  
  9882. RCS2 LMN AIDI&AIDA
  9883. ZJN RCS3 IF 7X54/844-21
  9884. LMN AIDK&AIDI
  9885. ZJN RCS3 IF 7154/844-21
  9886. LMN AIDX&AIDK
  9887. ZJN RCS3 IF FSC 3330-1
  9888. LMN AIDR&AIDX
  9889. NJN RCS4 IF NOT CDSS II
  9890. LDD T3 INITIALIZE TRACK CALCULATION
  9891. STD T9
  9892. LDN 0
  9893. STD T3
  9894. LDC 1062 SET FLAW LIMIT FOR CDSS II
  9895. STD CN
  9896. RCS2.1 LCN 3 FOR THIS PURPOSE, TRACK = CYLINDER*2/3
  9897. RAD T9
  9898. MJN RCS5 IF CONVERSION COMPLETE
  9899. AOD T3 INCREMENT TRACK NUMBER
  9900. UJN RCS2.1 CONTINUE DIVISION
  9901.  
  9902. RCS3 LDD T3
  9903. RAD T3 COMPLETE CYLINDER CONVERSION
  9904. RCS4 LDD T3
  9905. SBD CN
  9906. PJN RCS7 IF *CTI* BEYOND LOGICAL END OF DEVICE
  9907. RCS5 RJM FBT FLAW BLOCK OF TRACKS
  9908. LDD LC
  9909. ZJP RCS8 IF *CTI* NOT PRESENT (CDSS II ONLY)
  9910. RCS7 SMSTF GCTI SET *CTI* PRESENT FLAG
  9911. LDN ZERL CLEAR DEADSTART FILE INDICATOR
  9912. CRM BFMS+OSBP,ON
  9913. LDC BFMS+WLSF REWRITE DEADSTART SECTOR
  9914. RJM WDS
  9915. ENDMS RELEASE CHANNEL
  9916. * LDN 0
  9917. LJM RCSX RETURN
  9918. SNC SPACE 4,10
  9919. ** SNC - SELECT AVAILABLE NIO CHANNEL.
  9920. *
  9921. * ENTRY (FN - FN+4) = EST ENTRY.
  9922. *
  9923. * EXIT (A) = 0, IF NO NIO CHANNEL AVAILABLE
  9924. * = NON-CONCURRENT CHANNEL BYTE.
  9925.  
  9926.  
  9927. SNC2 AOD T0 ADVANCE ADDRESS
  9928. LMN FN+3
  9929. NJN SNC1 IF POSSIBLE SECOND CHANNEL
  9930.  
  9931. SNC SUBR ENTRY/EXIT
  9932. LDN FN+1
  9933. STD T0 INITIALIZE CHANNEL BYTE ADDRESS
  9934. SNC1 LDI T0
  9935. LPC 7040 CHECK CHANNEL STATUS
  9936. LMC 4000
  9937. NJN SNC2 IF NOT AN AVAILABLE CHANNEL
  9938. LDI T0
  9939. UJN SNCX RETURN
  9940. SPACE 4,10
  9941. ** COMMON DECKS.
  9942.  
  9943.  
  9944. *CALL COMPSDR
  9945. SPACE 4,10
  9946. ORDI EQU *+5 LOAD ADDRESS FOR *4DI*
  9947.  
  9948. MIPA EQU * *0TI* PARAMETER ADDRESS
  9949. MILA EQU MIPA+1 *0TI* LOAD ADDRESS
  9950. SPACE 4,10
  9951. ERRNG BFMS-MILA-ZPXL OVERFLOW INTO BUFFER
  9952. ERRNG BFMS-MILA-ZTXL OVERFLOW INTO BUFFER
  9953. POV SPACE 4,10
  9954. ** POV - PRESET OVERLAY.
  9955.  
  9956.  
  9957. POV LDM MMFP
  9958. ZJN POV3 IF DO NOT PRESET FOR MMF
  9959. LDC MMFL
  9960. CRD CM
  9961. LDD CM+3 SET MACHINE MASK
  9962. LMM IMSA
  9963. STM IMSA
  9964. LDC L"QUAL" SET LIST ADDRESS
  9965. STD T1
  9966. UJN POV2 ENTER LOOP
  9967.  
  9968. POV1 STD T0
  9969. LDN PSNI REPLACE INSTRUCTION WITH *PSN*
  9970. STI T0
  9971. AOD T1 ADVANCE ADDRESS
  9972. POV2 LDI T1
  9973. NJN POV1 IF MORE TO PRESET
  9974. POV3 LJM RDHX RETURN
  9975.  
  9976. * LIST OF INSTRUCTIONS TO BE PRESET.
  9977.  
  9978. L"QUAL" BSS 0
  9979. L"QUAL" HERE
  9980. ERRZR L"QUAL"-* TABLE EMPTY - REMOVE PRESET CODE
  9981. CON 0 TERMINATE LIST
  9982.  
  9983. QUAL
  9984.  
  9985. IMS EQU /RDH/IMS
  9986. ORDI EQU /RDH/ORDI
  9987. SPACE 4,10
  9988. OVERFLOW ORDH,EPFW CHECK FOR OVERFLOW
  9989. TTL MSM/4DI - PROCESS FORMAT REQUEST.
  9990. TITLE
  9991. QUAL RDI
  9992. IDENT 4DI,/RDI/PFRX
  9993. *COMMENT MSM - PROCESS FORMAT REQUEST.
  9994. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1994.
  9995. RDI SPACE 4,10
  9996. *** *4DI* CONTAINS ROUTINES UTILIZED BY *RMS* IN
  9997. * FORMATTING 895 DEVICES.
  9998. SPACE 4,10
  9999. *CALL COMPCHM
  10000. SPACE 4,10
  10001. **** DIRECT LOCATION ASSIGNMENTS.
  10002.  
  10003.  
  10004. PB EQU RG - RI+1 FORMAT PARAMETER BLOCK (3 LOCATIONS)
  10005. CS EQU ET CHANNEL STATUS
  10006. FR EQU P1 FORMAT REQUIRED FLAG
  10007. LC EQU P2 LAST CYLINDER + 1
  10008.  
  10009. ****
  10010. SPACE 4,10
  10011. ** ASSEMBLY CONSTANTS.
  10012.  
  10013.  
  10014. DC EQU 11 DISK CHANNEL
  10015.  
  10016. FCGS EQU 12 GENERAL STATUS FUNCTION CODE
  10017. FCFP EQU 16 FORMAT PACK FUNCTION CODE
  10018.  
  10019. FPBL EQU 22 FORMAT PACK PARAMETER BLOCK LENGTH
  10020. RDH SPACE 4,10
  10021. ORG ORDH
  10022. TITLE PROCESS FORMAT REQUEST.
  10023. PFR SPACE 4,20
  10024. ** PFR - PROCESS FORMAT REQUEST.
  10025. *
  10026. * ENTRY (T3) = 0 IF DEADSTART SECTOR READ BY *RCS*.
  10027. * (AM) = ALGORITHM INDEX.
  10028. * (CS) = CHANNEL STATUS.
  10029. * (FR) = FORMAT REQUIRED FLAG.
  10030. * (LC) = FIRST CYLINDER OF *CTI* SPACE.
  10031. * (T5) = EST ORDINAL.
  10032. * (T6) = TRACK CONTAINING DEADSTART SECTOR.
  10033. * (T7) = DEADSTART SECTOR.
  10034. * (FN - FN+4) = EST ENTRY.
  10035. * (FS - FS+4) = *STLL* WORD OF MST.
  10036. *
  10037. * USES T1, T2, T3, T4, CM - CM+4, CN - CN+4.
  10038. *
  10039. * CALLS F8D.
  10040. *
  10041. * MACROS CMSTF, ENDMS, RCHAN.
  10042.  
  10043.  
  10044. PFR SUBR ENTRY/EXIT
  10045. LDN 0
  10046. STD CM+2
  10047. LDD CS
  10048. LPN 77 CLEAR IMMEDIATE RETURN AND RESERVE CHANNEL
  10049. RCHAN
  10050. LDD CM+1 SAVE CHANNEL FOR *ENDMS*
  10051. STD T4
  10052. AOM CHRV
  10053. LDC CTDC SET ADDRESS OF INSTRUCTION LIST
  10054. STD T1
  10055. UJN PFR3 MODIFY CHANNEL INSTRUCTIONS
  10056.  
  10057. PFR2 STD T2 SET INSTRUCTION ADDRESS
  10058. LDI T2
  10059. SCN 37
  10060. LMD T4 MODIFY INSTRUCTION
  10061. STI T2
  10062. AOD T1 ADVANCE LIST ADDRESS
  10063. PFR3 LDI T1
  10064. NJN PFR2 IF NOT END OF LIST
  10065. LDD FN+4
  10066. SHN 3
  10067. ADN DDLL FETCH UNIT LIST FROM MST
  10068. CRD CN
  10069. LDC DSCP*200+MS1W STORE FORMATTING MESSAGE
  10070. CWM PFRA,ON
  10071.  
  10072. * GENERATE PARAMETER BLOCK TO FORMAT DEVICE.
  10073.  
  10074. PFR4 LDN 0 SET FIRST CYLINDER
  10075. STD PB
  10076. LDD TH SET LARGE RECORD SIZE
  10077. STD PB+2
  10078. LDD CN+4 EXTRACT NEXT UNIT
  10079. SHN 14
  10080. STD CN+4
  10081. ERRPL 4000-3*SLDC CODE DEPENDS ON VALUE
  10082. SHN -14
  10083. LMC 1S10+3S6 APPEND MODE / OPERATION DECODE
  10084. STD PB+1
  10085. RJM F8D FORMAT DEVICE
  10086. LDD T3
  10087. ZJN PFR7 IF DEADSTART SECTOR READ WITHOUT ERROR
  10088. LDC 885D
  10089. STD PB SET CYLINDER FOR DEADSTART SECTOR
  10090. ADN 1
  10091. STD LC
  10092. LDC 502 SECTOR BUFFER INDEX
  10093. STD PB+2
  10094. PFR5 LDN 0 CLEAR SECTOR BUFFER
  10095. STM BFMS-1,PB+2
  10096. SOD PB+2
  10097. NJN PFR5 IF BUFFER NOT CLEARED
  10098. * LDN 0
  10099. * STD PB+2
  10100. RJM F8D FORMAT DEADSTART CYLINDER
  10101. LDC -1S10
  10102. RAD PB+1
  10103. PFR6 SOD PB FORMAT PROTECTED AREA
  10104. RJM F8D
  10105. AOD PB+2 ADVANCE TRACK NUMBER
  10106. LMN 2
  10107. NJN PFR6 IF MORE TRACKS TO FORMAT
  10108. LDC BFMS+WLSF
  10109. RJM WDS CLEAR DEADSTART SECTOR
  10110. PFR7 LDD CN
  10111. LPN 7
  10112. SBN 1 DECREMENT UNIT COUNT
  10113. STD CN
  10114. PJP PFR4 IF MULTI-UNIT DEVICE
  10115. ENDMS
  10116. LDC DSCP*200+MS1W RESTORE RECOVERY MESSAGE
  10117. CWM PFRB,ON
  10118. CMSTF LFPR CLEAR FORMAT REQUEST
  10119. LJM PFRX RETURN
  10120.  
  10121.  
  10122. PFRA DATA 10HFORMATTING
  10123. PFRB DATA 10HRECOVERING
  10124. TITLE SUBROUTINES.
  10125. F8D SPACE 4,10
  10126. ** F8D - FORMAT 895 DEVICE.
  10127. *
  10128. * ENTRY (LC) = LAST CYLINDER + 1 TO FORMAT.
  10129. * (PB - PB+2) = FORMAT PARAMETER BLOCK.
  10130. *
  10131. * USES PB, CM - CM+4.
  10132. *
  10133. * CALLS C2D, /RMS/SEM, WNB.
  10134.  
  10135.  
  10136. F8D2 LDC DSCP*200+MS1W+2 UPDATE CYLINDER NUMBER IN MESSAGE
  10137. CWD CM
  10138. FNC FCFP,DC ISSUE FORMAT FUNCTION
  10139. ACN DC
  10140. LDN FPBL OUTPUT PARAMETER BLOCK
  10141. OAM PB,DC
  10142. FJM *,DC WAIT TRANSMISSION COMPLETE
  10143. DCN DC
  10144. AOD PB ADVANCE CYLINDER NUMBER
  10145. F8D3 RJM C2D
  10146. STD CM+3
  10147. LDD PB CONVERT VALUE FOR MESSAGE
  10148. SHN -6
  10149. RJM C2D
  10150. STD CM+2
  10151. RJM WNB WAIT NOT BUSY
  10152. LDD PB
  10153. LMD LC
  10154. NJN F8D2 IF MORE CYLINDERS TO FORMAT
  10155.  
  10156. F8D SUBR ENTRY/EXIT
  10157. LDD PB+1
  10158. RJM C2D CONVERT UNIT NUMBER
  10159. STM F8DA
  10160. RJM /RMS/SEM SET EQUIPMENT MESSAGE
  10161. LDN 1RU
  10162. STD CM+4 INSERT UNIT DESIGNATOR
  10163. LDC DSCP*200+MS1W+1
  10164. CWD CM
  10165. ADN 1
  10166. CWM F8DA,TW CHANGE MESSAGE
  10167. SBN 2
  10168. CRD CM
  10169. LDD LC
  10170. NJN F8D1 IF *CTI* COMPONENT FOUND
  10171. LDC NTDC/2
  10172. ERRNZ TTDC CODE DEPENDS ON VALUE
  10173. STD LC
  10174. F8D1 LDD PB
  10175. LJM F8D3 FORMAT DEVICE
  10176.  
  10177.  
  10178. F8DA DATA C*XX C0000.*
  10179. WNB SPACE 4,10
  10180. ** WNB - WAIT NOT BUSY.
  10181. *
  10182. * ERROR TO */RMS/HNG* IF CONTROLLER HUNG BUSY.
  10183. *
  10184. * USES T1, T2.
  10185. *
  10186. * CALLS C2D.
  10187.  
  10188.  
  10189. WNB SUBR ENTRY/EXIT
  10190. LDC 400D
  10191. STD T2 SET 400 MILLISECOND DELAY
  10192. WNB1 DELAY 10
  10193. FNC FCGS,DC REQUEST GENERAL STATUS
  10194. ACN DC
  10195. IAN DC INPUT STATUS
  10196. DCN DC
  10197. STD T1 SAVE GENERAL STATUS
  10198. LPN 2
  10199. ZJN WNBX IF NOT BUSY
  10200. SOD T2
  10201. NJN WNB1 IF NOT TIMEOUT
  10202. LDD T1
  10203. SHN -6
  10204. RJM C2D CONVERT GENERAL STATUS
  10205. STM WNBA+11
  10206. LDD T1
  10207. RJM C2D
  10208. STM WNBA+12 STORE IN MESSAGE
  10209. LDC WNBA
  10210. LJM /RMS/HNG DISPLAY MESSAGE AND HANG PP
  10211.  
  10212.  
  10213. WNBA DATA C* HUNG BUSY - GS = XXXX.*
  10214. SPACE 4,10
  10215. ** CHANNEL TABLE.
  10216.  
  10217.  
  10218. CHTB DC
  10219. SPACE 4,10
  10220. ERRNG BFMS-* OVERFLOW INTO BUFFER
  10221. SPACE 4,10
  10222. QUAL
  10223. SPACE 4,10
  10224. OVERFLOW ORDI,EPFW CHECK FOR OVERFLOW
  10225. TTL MSM/4DJ - DAYFILE RECOVERY ROUTINES.
  10226. TITLE
  10227. IDENT 4DJ,/RMS/RDJX
  10228. *COMMENT MSM - DAYFILE RECOVERY ROUTINES.
  10229. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  10230. SPACE 4,10
  10231. *** *4DJ* CONTAINS ROUTINES UTILIZED BY *RMS* IN
  10232. * RECOVERING DAYFILES.
  10233. SPACE 4,10
  10234. QUAL RMS
  10235. ORG ORDJ
  10236.  
  10237. RDJ SUBR ENTRY/EXIT
  10238. UJN RDJX RETURN
  10239. CDC SPACE 4,25
  10240. ** CDC - CHASE DAYFILE CHAIN.
  10241. *
  10242. * CDC CHASES THE DAYFILE CHAIN ON DISK TO RECOVER THE
  10243. * DAYFILE RIGHT UP TO THE EOI. THE CHAINING IS DONE OFF OF THE
  10244. * DISK RATHER THAN THE TRTS TO RECOVER THE EXACT DAYFILE AS IT
  10245. * EXISTS ON DISK. THIS PERMITS DAYFILE RECOVERY TO BE
  10246. * INDEPENDENT OF TRT UPDATES AND SYSTEM DEVICE CHECKPOINTS.
  10247. * THE DAYFILE WILL BE TRUNCATED TO THE LAST SECTOR OF THE
  10248. * CURRENT TRACK IF DISK EOI EXTENDS BEYOND THE CURRENT
  10249. * TRACK IN THE TRT.
  10250. *
  10251. * ENTRY (T5) = EST ORDINAL.
  10252. * (FN - FN+4) = EST ENTRY.
  10253. * (FS - FS+4) = DEVICE STATUS WORD (STLL).
  10254. * (MBUF) = LABEL MST.
  10255. *
  10256. * EXIT TRT ALTERED IF TRT AND DISK DO NOT MATCH AND VALID
  10257. * EOI FOUND.
  10258. * (A) MUST EQUAL 0 TO ENSURE *MRL* UPDATE OF CM
  10259. * RECOVERY INFORMATION UPON RETURN FROM */RMS/RCD*.
  10260. *
  10261. * USES EE, FA, P1, T6, T7, CM+1 - CM+3.
  10262. *
  10263. * CALLS CDR, CFL, RSS, ULA, VEI, WDS.
  10264. *
  10265. * MACROS ENDMS, MONITOR, SETMS.
  10266.  
  10267.  
  10268. CDC5 ENDMS
  10269. SETMS IO,(DF,RW)
  10270. RJM ULA UPDATE SECTOR OF LOCAL AREAS
  10271.  
  10272. CDC SUBR ENTRY/EXIT
  10273. LDM MBUF+5*ACGL+4
  10274. LPC MGLAP
  10275. ZJN CDCX IF NO SECTOR OF LOCAL AREAS
  10276. SETMS READSTR,(DF,RW)
  10277. LDN EXDF SET NUMBER OF EXCESS DAYFILES
  10278. STD P1
  10279. CDC1 SOD P1
  10280. MJN CDC5 IF END OF DAYFILES
  10281. LDM MBUF+5*DALL,P1
  10282. ZJN CDC1 IF NO TRACK ASSIGNED
  10283. STD T6
  10284. RJM CDR CHECK DAYFILE RECOVERY SELECTION
  10285. NJN CDC1 IF FILE INITIALIZED
  10286.  
  10287. * VERIFY DAYFILE RECOVERY.
  10288.  
  10289. RJM CFL CHECK FILE LENGTH
  10290. ZJN CDC1 IF EMPTY DAYFILE
  10291. RJM VEI VERIFY EOI SECTOR
  10292. CDC2 ZJN CDC1 IF EOI ON DISK MATCHES TRT EOI
  10293. ENDMS
  10294. LDD T6
  10295. LPC 3777 SET NEW EOI SECTOR
  10296. STD CM+2
  10297. LDD T7 SECTOR
  10298. STD CM+3
  10299. LDD T5 EQUIPMENT
  10300. STD CM+1
  10301. MONITOR DTKM UPDATE EOI SECTOR
  10302. * LDN 0
  10303. UJP CDC1 LOOP FOR NEXT DAYFILE
  10304. CDR SPACE 4,10
  10305. ** CDR - CHECK DAYFILE RECOVERY.
  10306. *
  10307. * ENTRY (T6) = DAYFILE TRACK.
  10308. * (P1) = DAYFILE INDEX.
  10309. * (FS - FS+4) = STLL WORD OF THE MST.
  10310. *
  10311. * EXIT (A) = 0 IF DAYFILE NOT INITIALIZED.
  10312. * SPACE RELEASED IF FILE INITIALIZED.
  10313. *
  10314. * USES FS, FS+1, CM+1 - CM+3.
  10315. *
  10316. * CALLS TLB.
  10317. *
  10318. * MACROS CMSTF, ENDMS, MONITOR.
  10319.  
  10320.  
  10321. CDR SUBR ENTRY/EXIT
  10322.  
  10323. * CHECK FOR INITIALIZE REQUEST.
  10324.  
  10325. LDM CDRB,P1
  10326. STM CDRA
  10327. LDD FS+1 CHECK INITIALIZE REQUEST
  10328. LPC *
  10329. CDRA EQU *-1
  10330. ZJN CDRX IF INITIALIZE NOT REQUESTED
  10331.  
  10332. * INITIALIZE DAYFILE.
  10333.  
  10334. LMD FS+1 CLEAR INITIALIZE REQUEST
  10335. STD FS+1
  10336. SHN 6
  10337. LMD FS
  10338. SCN MLIRP+MLPTU+MLCKP+MRASD
  10339. NJN CDR1 IF MORE INITIALIZE FLAGS
  10340. CMSTF LIRP CLEAR INITIALIZE PENDING
  10341. CDR1 ENDMS
  10342. * LDN 0
  10343. STD CM+3
  10344. LDD T6 SET FIRST TRACK
  10345. STD CM+2
  10346. LDD EQ
  10347. STD CM+1
  10348. MONITOR DTKM RELEASE DAYFILE SPACE
  10349. STM MBUF+5*DALL,P1 CLEAR DAYFILE POINTER
  10350. AOM ULAA SET LOCAL AREA SECTOR UPDATE
  10351. LCN 0 CLEAR INITIALIZE REQUEST IN THE MST
  10352. LMM CDRC,P1
  10353. RJM TLB
  10354. LJM CDRX RETURN
  10355.  
  10356. * INITIALIZE REQUEST MASKS FOR EXCESS DAYFILES.
  10357.  
  10358. CDRB CON MLIDF DAYFILE
  10359. CON MLIAF ACCOUNT FILE
  10360. CON MLIEF ERROR LOG
  10361. CON MLIMF MAINTENANCE LOG
  10362.  
  10363. * INITIALIZE REQUEST BIT MAPPING.
  10364.  
  10365. CDRC CON LIDF DAYFILE
  10366. CON LIAF ACCOUNT FILE
  10367. CON LIEF ERROR LOG
  10368. CON LIMF MAINTENANCE LOG
  10369. CDT SPACE 4,10
  10370. ** CDT - CHECK LAST UPDATE DATE AND TIME.
  10371. *
  10372. * ENTRY (P1) = DAYFILE INDEX.
  10373. * (WEIA) = DAYFILE EOI SECTOR.
  10374. * (TPDT) = TIME AND DATE FOR LATEST RECOVERED DAYFILE.
  10375. *
  10376. * EXIT RECOVERY POINTERS UPDATED IF THIS IS A LATER DAYFILE.
  10377. * (TPDT) UPDATED TO LATEST DATE.
  10378. *
  10379. * USES P2, CM - CM+4.
  10380.  
  10381.  
  10382. CDT SUBR ENTRY/EXIT
  10383. LDD FN
  10384. SHN 21-10
  10385. MJN CDTX IF REMOVABLE DEVICE
  10386. LDD P1
  10387. SHN 1
  10388. ADD P1
  10389. STD P2
  10390. LDD MA COPY LAST UPDATE DATE AND TIME OF NEW FILE
  10391. CWM BFMS+DTEI,ON
  10392. SBN 1
  10393. CRD CM
  10394. LDM TPDT,P2 CHECK YEAR AND MONTH
  10395. SBD CM+2
  10396. MJN CDT1 IF LATER YEAR OR MONTH
  10397. NJN CDTX IF NOT LATER YEAR OR MONTH
  10398. LDM TPDT+1,P2 CHECK DAY AND HOUR
  10399. SBD CM+3
  10400. MJN CDT1 IF A LATER DAY OR HOUR
  10401. NJN CDTX IF NOT A LATER DAY OR HOUR
  10402. LDM TPDT+2,P2
  10403. SBD CM+4
  10404. MJN CDT1 IF A LATER MINUTE
  10405. NJN CDTX IF NOT A LATER MINUTE
  10406.  
  10407. * SET THIS DAYFILE AS THE NEW ONE TO RECOVER.
  10408.  
  10409. CDT1 LDD T5 SET LATEST DAYFILES EQUIPMENT
  10410. STM RMSF,P1
  10411. LDD CM+2 SET LATEST DAYFILES DATE
  10412. STM TPDT,P2
  10413. LDD CM+3
  10414. STM TPDT+1,P2
  10415. LDD CM+4
  10416. STM TPDT+2,P2
  10417. LJM CDTX RETURN
  10418.  
  10419. TPDT BSS 3 LATEST DATE/TIME SYSTEM DAYFILE
  10420. BSS 3 LATEST DATE/TIME ACCOUNT DAYFILE
  10421. BSS 3 LATEST DATE/TIME ERRLOG DAYFILE
  10422. BSS 3 LATEST DATE/TIME MAINTENANCE LOG
  10423. CFL SPACE 4,10
  10424. ** CFL - CHECK FILE LENGTH.
  10425. *
  10426. * ENTRY (T6) = DAYFILE TRACK FROM SECTOR OF LOCAL AREAS.
  10427. * (P1) = DAYFILE INDEX.
  10428. *
  10429. * EXIT (A) = 0 IF DAYFILE EMPTY.
  10430. * (ET) = DAYFILE EOI TRACK.
  10431. * (ES) = DAYFILE EOI SECTOR.
  10432. *
  10433. * CALLS SEI.
  10434.  
  10435.  
  10436. CFL1 LDD T6 SAVE EOI TRACK
  10437. STD ET
  10438. LDD T7 SAVE EOI SECTOR
  10439. STD ES
  10440. LDM MBUF+5*DALL,P1 RESTORE FIRST TRACK
  10441. STD T6
  10442.  
  10443. CFL SUBR ENTRY/EXIT
  10444. RJM SEI SEARCH FOR EOI
  10445. LDD T3
  10446. ADD T2
  10447. NJN CFL1 IF NOT EMPTY FILE
  10448. AOM ULAA
  10449. LDN 0 CLEAR DAYFILE POINTER
  10450. STM MBUF+5*DALL,P1
  10451. UJN CFLX RETURN
  10452. TDF SPACE 4,15
  10453. ** TDF - TRUNCATE DAYFILE.
  10454. *
  10455. * ENTRY (P1) = DAYFILE INDEX.
  10456. * (T6) = DAYFILE EOI TRACK.
  10457. * (T7) = SECTOR AT WHICH EOI TO BE WRITTEN.
  10458. *
  10459. * EXIT (EE) .NE. 0 TO INDICATE EOI WRITTEN.
  10460. *
  10461. * CALLS WDS.
  10462.  
  10463.  
  10464. TDF SUBR ENTRY/EXIT
  10465. LDN 0 SET EOI LINKAGE
  10466. STM BFMS
  10467. STM BFMS+1
  10468. LDN ZERL CLEAR DATE AND TIME
  10469. CRM BFMS+DTEI,ON
  10470. LDM MBUF+5*DALL,P1 SET FIRST TRACK
  10471. STM BFMS+FTEI
  10472. LDC BFMS+WLSF WRITE EOI SECTOR
  10473. RJM WDS
  10474. LDM RMSF,P1 CHECK FOR FILES RECOVERED
  10475. SHN 6
  10476. PJN TDFX IF A FILE HAS BEEN RECOVERED
  10477. LDD T5 SET THIS FILE AS RECOVERED
  10478. STM RMSF,P1
  10479. UJN TDFX RETURN
  10480. ULA SPACE 4,15
  10481. ** ULA - UPDATE SECTOR OF LOCAL AREAS.
  10482. *
  10483. * ENTRY (T5) = EST ORDINAL.
  10484. *
  10485. * ERROR TO *HNG* IF ERROR READING SECTOR OF LOCAL AREAS.
  10486. *
  10487. * USES T6.
  10488. *
  10489. * CALLS CTI, RLA, STI, WDS.
  10490. *
  10491. * MACROS ENDMS, SETMS.
  10492.  
  10493.  
  10494. ULA SUBR ENTRY/EXIT
  10495. LDC 0
  10496. ULAA EQU *-1
  10497. ZJN ULAX IF NO UPDATE REQUIRED
  10498. SETMS POSITION
  10499. * LDN 0 CLEAR UPDATE FLAG
  10500. STM ULAA
  10501. LDM MBUF+5*ALGL+1 SET LABEL TRACK
  10502. STD T6
  10503. RJM STI INTERLOCK LABEL TRACK
  10504. RJM RLA READ LOCAL AREA SECTOR
  10505. PJN ULA2 IF NO ERROR
  10506. ULA1 LDD T6 CLEAR LABEL TRACK INTERLOCK
  10507. RJM CTI
  10508. LDC ULAC *LOCAL AREA SECTOR ERROR.*
  10509. LJM HNG DISPLAY MESSAGE AND HANG
  10510.  
  10511. ULA2 STM ULAB
  10512. ZJN ULA1 IF LOCAL AREA ENTRY NOT FOUND
  10513. LDD MA TRANSFER DF STATUS TO LOCAL AREA ENTRY
  10514. CWM MBUF+5*DALL,ON
  10515. SBN 1
  10516. CRM *,ON
  10517. ULAB EQU *-1
  10518. LDC BFMS+WLSF REWRITE SECTOR OF LOCAL AREAS
  10519. RJM WDS
  10520. ENDMS
  10521. LDD T6 CLEAR LABEL TRACK INTERLOCK
  10522. RJM CTI
  10523. LJM ULAX RETURN
  10524.  
  10525.  
  10526. ULAC DATA C*LOCAL AREA SECTOR ERROR.*
  10527. VEI SPACE 4,15
  10528. ** VEI - VERIFY END OF INFORMATION SECTOR.
  10529. *
  10530. * ENTRY (ET) = TRT EOI TRACK.
  10531. * (ES) = TRT EOI SECTOR.
  10532. * (P1) = DAYFILE INDEX.
  10533. *
  10534. * EXIT (A) = 0 IF EOI ON DISK MATCHES TRT EOI.
  10535. * (T7) = DISK EOI SECTOR.
  10536. *
  10537. * USES T6, T7.
  10538. *
  10539. * CALLS CDT, RDS, TDF.
  10540. *
  10541. * MACROS SETMS.
  10542.  
  10543.  
  10544. VEI4 RJM TDF TRUNCATE DAYFILE
  10545. VEI5 LDD T7 COMPARE EOI ON DISK WITH TRT EOI
  10546. LMD ES
  10547.  
  10548. VEI SUBR ENTRY/EXIT
  10549. LDD ET SET EOI TRACK
  10550. STD T6
  10551. LDD ES SET EOI SECTOR
  10552. STD T7
  10553. SETMS POSITION
  10554. VEI1 LDC BFMS SEARCH FOR EOI ON DISK
  10555. RJM RDS
  10556. MJN VEI4 IF READ ERROR
  10557. LDM BFMS
  10558. ADM BFMS+1
  10559. ZJN VEI2 IF EOI FOUND
  10560. AOD T7 ADVANCE SECTOR NUMBER
  10561. LDM BFMS CHECK LINKAGE
  10562. SHN 6
  10563. PJN VEI1 IF NOT CROSSING TRACK BOUNDARY
  10564. SOD T7 SET EOI SECTOR AT END OF TRACK
  10565. RJM TDF TRUNCATE DAYFILE
  10566. VEI2 RJM CDT CHECK DATE AND TIME
  10567. UJP VEI5 SET EXIT CONDITIONS AND RETURN
  10568. SPACE 4,10
  10569. ** COMMON DECKS.
  10570.  
  10571.  
  10572. *CALL COMPCTI
  10573. *CALL COMPSEI
  10574. *CALL COMPSTI
  10575. SPACE 4,10
  10576. ERRNG BFMS-* CODE OVERFLOWS INTO BUFFER
  10577. SPACE 4,10
  10578. OVERFLOW ORDJ,EPFW CHECK FOR OVERFLOW
  10579. TTL MSM/4DK - UEM RECOVERY ROUTINES.
  10580. TITLE
  10581. IDENT 4DK,/RMS/RUJX
  10582. *COMMENT MSM - UEM RECOVERY ROUTINES.
  10583. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  10584. RUE SPACE 4,10
  10585. *** *4DK* RESTORES UEM FROM THE CHECKPOINT FILE.
  10586. RUE SPACE 4,10
  10587. QUAL RMS
  10588. ORG ORDK
  10589. SPACE 4,10
  10590. RUJ SUBR ENTRY
  10591. LDK MEFL
  10592. CRD CM
  10593. LDD CM+2 SET TRACK SHIFT COUNTS
  10594. SHN -5
  10595. LPN 3
  10596. STD T1
  10597. RAM CUAB
  10598. LDD T1
  10599. RAM CUAA
  10600. RJM RUE RESTORE UEM
  10601. LDN 0
  10602. STD CM
  10603. LDC CPAS+MS2W CLEAR MESSAGE
  10604. CWD CM
  10605. LJM RMS1 RECOVER UEM
  10606. CUA SPACE 4,10
  10607. ** CUA - CALCULATE UEM ADDRESS.
  10608. *
  10609. * ENTRY (T8) = TRACK.
  10610. * (FS - FS+1) = UEM BASE ADDRESS.
  10611. *
  10612. * EXIT (A) = BITS 5 - 0 OF ABSOLUTE UEM ADDRESS.
  10613. * (FS+2 - FS+3) = BITS 27 - 6 OF ABSOLUTE UEM ADDRESS
  10614. * (TO BE USED IN *R* REGISTER).
  10615. * (FS+4) = BITS 5 - 0 OF ABSOLUTE UEM ADDRESS
  10616. * (TO BE USED IN *A* REGISTER).
  10617. *
  10618. * USES FS+2 - FS+4.
  10619.  
  10620.  
  10621. CUA SUBR ENTRY/EXIT
  10622. LDD T8 CALCULATE TRACK * 2020
  10623. SHN 6 * 100
  10624. ADD T8 * 101
  10625. STD FS+3
  10626. CUAA SHN -10
  10627. * SHN -10+EMSC
  10628. STD FS+2 * 2020 HIGH BITS
  10629. LDD FS+3
  10630. CUAB SHN 4
  10631. * SHN 4+EMSC
  10632. LPC 7777
  10633. ADD FS+1 ADD UEM BASE ADDRESS
  10634. STD FS+4 LOW LOW BITS FOR *A* REGISTER
  10635. SHN -14
  10636. ADD FS
  10637. RAD FS+2 HIGH BYTE ABSOLUTE UEM ADDRESS
  10638. SHN 6 SHIFT RESULT FOR *R* REGISTER
  10639. STD FS+3
  10640. SHN 6
  10641. STD FS+2
  10642. LDD FS+4
  10643. SHN 14
  10644. RAD FS+3
  10645. SHN -14
  10646. STD FS+4 SET LOW 6 BITS FOR *A* REGISTER
  10647. UJN CUAX RETURN
  10648. GCD SPACE 4,15
  10649. ** GCD - GET CHECKPOINT DEVICE.
  10650. *
  10651. * ENTRY (CD) = CURRENT EST ORDINAL.
  10652. * (LO) = LAST MASS STORAGE ORDINAL + 1.
  10653. *
  10654. * EXIT (A) = 0 IF END OF MASS STORAGE DEVICES.
  10655. * (T5) = (CD) = CHECKPOINT DEVICE ORDINAL.
  10656. * (T6) = TRACK POINTER TO UEM PORTION OF CHECKPOINT
  10657. * FILE.
  10658. * (FN - FN+4) = EST ENTRY.
  10659. *
  10660. * USES CD, RI, RI+1, T5, T6, FN - FN+4.
  10661. *
  10662. * CALLS CRA, GSP.
  10663. *
  10664. * MACROS SETMS, SFA.
  10665.  
  10666.  
  10667. GCD SUBR ENTRY/EXIT
  10668. GCD1 AOD CD ADVANCE EST ORDINAL
  10669. STD T5
  10670. LMD LO
  10671. ZJN GCDX IF END OF DEVICES
  10672. SFA EST,T5 READ EST ENTRY
  10673. ADK EQDE
  10674. CRD FN
  10675. LDD FN
  10676. SHN 21-13
  10677. PJN GCD1 IF NOT MASS STORAGE DEVICE
  10678. SHN 13-2
  10679. PJN GCD1 IF NOT CHECKPOINT DEVICE
  10680. LDD FN+4
  10681. SHN 3
  10682. ADN DULL
  10683. CRD CM
  10684. LDD CM+3 CHECKPOINT FILE POINTER
  10685. STD P1
  10686. SHN 21-13
  10687. PJN GCD1 IF NOT A VALID FILE
  10688. RJM GSP GET SECTOR POINTER
  10689. ZJN GCD1 IF ERROR
  10690. STD RI+1 SET RANDOM ADDRESS
  10691. LDN 0
  10692. STD RI
  10693. LDD P1 SET CHECKPOINT FILE TRACK
  10694. STD T6
  10695. RJM CRA CONVERT RANDOM ADDRESS
  10696. MJN GCD1 IF ADDRESS NOT ON TRT CHAIN
  10697. SETMS READSTR
  10698. LDN 1 INDICATE CHECKPOINT DEVICE FOUND
  10699. LJM GCDX RETURN
  10700. GSP SPACE 4,15
  10701. ** GSP - GET UEM SECTOR POINTER.
  10702. *
  10703. * THIS ROUTINE RETURNS THE UEM SECTOR OFFSET.
  10704. *
  10705. * ENTRY (FN - FN+4) = DEVICE EST ENTRY.
  10706. * (T5) = DEVICE EST ORDINAL.
  10707. *
  10708. * EXIT (A) = 0, IF ERROR.
  10709. * = SECTOR OFFSET IF NO ERROR.
  10710. *
  10711. * USES CM - CM+4.
  10712.  
  10713.  
  10714. GSP SUBR ENTRY/EXIT
  10715. LDD RA
  10716. SHN 6
  10717. ADD T5
  10718. CRD CM
  10719. SBD T5
  10720. ADD AL-RD+CM
  10721. ADN DALL
  10722. CRD CM
  10723. LDD CM+4
  10724. UJN GSPX RETURN
  10725. RUE SPACE 4,15
  10726. ** RUE - RECOVER UEM.
  10727. *
  10728. * USES T8, T9, FS+4, CM - CM+4.
  10729. *
  10730. * CALLS CUA, C2D, GCD, RNS.
  10731. *
  10732. * MACROS ENDMS.
  10733.  
  10734.  
  10735. RUE5 ENDMS
  10736. LDC RUEA *CHECKPOINT DEVICE NOT FOUND.*
  10737. LJM /RMS/HNG ISSUE ERROR MESSAGE AND HANG
  10738.  
  10739. RUE6 ENDMS
  10740. LDK NJNI-ZJNI SET TO PROCESS ONLY UEM
  10741. STM RMSH
  10742.  
  10743. RUE SUBR ENTRY/EXIT
  10744. LDK NOPE-1 SET EST ORDINAL
  10745. STD CD
  10746. LDK UEML PRESET UEM BASE ADDRESS
  10747. CRD CM
  10748. LDD CM
  10749. SHN 21-2
  10750. STD FS
  10751. SHN -6
  10752. SCN 7
  10753. STD FS+1
  10754. MSR CON PSNI *RNS* ERROR RETURN
  10755. RUE1 RJM GCD GET CHECKPOINT DEVICE
  10756. ZJN RUE5 IF END OF CHECKPOINT DEVICES
  10757. RUE2 LDC BFMS READ LINKAGE SECTOR
  10758. RJM /4DK/RNS
  10759. ADI T3
  10760. ZJN RUE6 IF EOI REACHED
  10761. LDM BFMS+2 SET TRACK NUMBER
  10762. STD T8
  10763. LDM BFMS+3 SET SECTOR COUNT
  10764. STD T9
  10765. LDD T8
  10766. SHN -6
  10767. RJM C2D CONVERT UPPER 2 DIGITS OF TRACK TO DISPLAY
  10768. STM RUEB+12
  10769. LDD T8
  10770. RJM C2D CONVERT LOWER 2 DIGITS OF TRACK TO DISPLAY
  10771. STM RUEB+13
  10772. LDC CPAS+MS2W ISSUE *RESTORING UEM TRACK XXXX* MESSAGE
  10773. CWM RUEB,TR
  10774. RJM CUA CALCULATE UEM ADDRESS
  10775. LDM BFMS+1
  10776. ZJN RUE3 IF LINKAGE WORDS NOT IN THIS SECTOR
  10777. STD T3
  10778. RAD FS+4 ADVANCE UEM ADDRESS FOR LATER
  10779. SBD T3
  10780. ADC 400000
  10781. LRD FS+2
  10782. CWM BFMS+4,T3 WRITE LINKAGE WORDS TO UEM
  10783. RUE3 LDC BFMS
  10784. RJM /4DK/RNS
  10785. LDD FS+4
  10786. ADC 400000
  10787. LRD FS+2 WRITE SECTOR TO UEM
  10788. CWM BFMS+2,HN
  10789. AOD FS+3 ADVANCE UEM ADDRESS
  10790. SHN -14
  10791. RAD FS+2
  10792. SOD T9 DECREMENT SECTOR COUNT
  10793. NJN RUE3 IF NOT FINISHED WITH TRACK
  10794. LJM RUE2 IF FINISHED WITH TRACK
  10795.  
  10796.  
  10797. RUEA DATA C*CHECKPOINT DEVICE NOT FOUND.*
  10798. RUEB DATA C*RESTORING UEM TRACK XXXX.*
  10799. SPACE 4,15
  10800. ** COMMON DECKS.
  10801.  
  10802. *CALL COMPCRA
  10803.  
  10804. QUAL 4DK
  10805.  
  10806. MSR EQU /RMS/MSR
  10807. MSR$ SET 1 SELECT ERROR PROCESSING IN *COMPRNS*
  10808. *CALL COMPRNS
  10809.  
  10810. QUAL *
  10811. SPACE 4,10
  10812. ERRNG BFMS-* DATA BUFFER OVERLAYS CODE
  10813. SPACE 4,10
  10814. OVERFLOW ORDK,EPFW CHECK FOR OVERFLOW
  10815. SPACE 4
  10816. TTL MSM - MASS STORAGE MANAGER.
  10817. END