Table of Contents

1CK

Table Of Contents

  • [00007] 1CK - SYSTEM CHECKPOINT.
  • [00009] SYSTEM CHECKPOINT.
  • [00151] MTBL - GENERATE TABLE OF PARALLEL MST ADDRESSES.
  • [00177] SUBSYST - GENERATE SUBSYSTEM TABLE.
  • [00226] MAIN PROGRAM.
  • [00228] CKP - MAIN PROGRAM.
  • [00324] SUBROUTINES.
  • [00326] ABT - ABORT THE OPERATION.
  • [00340] CBP - CLEAR *BAT* PERMISSIONS UNCONDITIONALLY.
  • [00364] CDB - CHECK IF DEVICE IS BUFFERED.
  • [00381] CIL - CLEAR INTERLOCKS.
  • [00413] DDB - DROP DISK BUFFERS.
  • [00436] FIB - FLUSH I/O BUFFERS.
  • [00491] FWB - FLUSH WRITE BUFFERS.
  • [00513] RBP - RELEASE *BAT* AND *BST* PERMISSIONS.
  • [00536] SDP - SET DEVICE PARAMETERS.
  • [00566] SMD - SELECT MASS STORAGE DEVICE.
  • [00645] WLS - WRITE LABEL SECTORS.
  • [00685] WMS - WRITE MASS STORAGE.
  • [00699] WNS - WRITE NEXT SECTOR.
  • [00739] WSE - WRITE ERROR PROCESSOR.
  • [00779] WTB - WRITE TABLE.
  • [00828] WTT - WRITE TRT.
  • [00923] PRESET.
  • [00925] PRS - PRESET PROGRAM.
  • [01001] TFCN - FUNCTION PROCESSOR TABLE.
  • [01056] MAIN ROUTINES.
  • [01247] SUBROUTINES.
  • [01251] ERR - PROCESS ERRORS.
  • [01285] ACF - ALLOCATE CHECKPOINT FILE.
  • [01330] CAD - CHECK ACTIVE DAYFILES.
  • [01371] CBD - CHECK BUFFERED DISKS.
  • [01393] CUA - CALCULATE UEM ADDRESS.
  • [01435] FDB - FLUSH DAYFILE BUFFERS.
  • [01465] FTB - FILL TRACK BUFFER.
  • [01499] GLS - GET LOCAL AREA SECTOR.
  • [01544] GSC - GET SECTOR COUNT.
  • [01599] SCD - SET CHECKPOINT BITS.
  • [01657] TUT - TRANSFER UEM TRACK TO DISK.
  • [01706] UCP - CHECKPOINT UEM.
  • [01778] WLA - WRITE LOCAL AREAS.
  • [01907] WST - WRITE SYSTEM TABLES.
  • [02123] ASW - ABORT SUBSYSTEMS WHERE JOB SCHEDULING IS REQUIRED FOR
  • [02222] CCA - COMPUTE CPA/PCPA ADDRESS.
  • [02241] CCP - CHANGE CONTROL POINT ASSIGNMENT.
  • [02272] CCS - COMPUTE CHECKPOINT FILE SIZE.
  • [02348] CET - COMPUTE ELAPSED TIME.
  • [02367] CSC - CHANGE TO SYSTEM CONTROL POINT.
  • [02384] CSS - CHECK FOR SPECIAL SUBSYSTEM.
  • [02411] DEL - DELAY.
  • [02418] DRJ - DISPOSE OF REMAINING JOBS.
  • [02450] FJO - FIND JOB.
  • [02507] ROJ - ROLLOUT NON-SUBSYSTEM JOBS.
  • [02542] WFJ - WAIT FOR JOBS TO ROLLOUT OR TERMINATE.
  • [02606] PRESET.
  • [02608] PRS - PRESET.
  • [02728] MAIN ROUTINES.
  • [02849] SUBROUTINES.
  • [02851] IDI - INITIALIZE DEVICE INFORMATION SECTOR.

Source Code

1CK.txt
  1. IDENT 1CK,CKP
  2. PERIPH
  3. BASE MIXED
  4. SST
  5. *COMMENT 1CK - SYSTEM CHECKPOINT.
  6. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  7. TITLE 1CK - SYSTEM CHECKPOINT.
  8. SPACE 4,10
  9. *** 1CK - SYSTEM CHECKPOINT.
  10. *
  11. * G. R. MANSFIELD. 70/12/10.
  12. * J. L. WARDELL. 72/08/20.
  13. * P. D. HAAS. 74/09/16.
  14. * R. E. TATE. 75/04/12.
  15. * S. L. BETH. 75/05/15.
  16. SPACE 4,10
  17. *** *1CK* IS CALLED TO CHECKPOINT MASS STORAGE DEVICES.
  18. *
  19. *
  20. * FUNCTION 0 DEADSTART CHECKPOINT.
  21. * ALLOCATES SPACE FOR SYSTEM TABLES
  22. * AND COPIES THEM TO DISK, CHECKPOINTS
  23. * TRT ON SYSTEM DEVICES AND LOCAL AREAS
  24. * ON DEVICES WITH ACTIVE DAYFILES.
  25. *
  26. * FUNCTION 1 SYSTEM CHECKPOINT.
  27. * IDLES THE SYSTEM AND CHECKPOINTS SYSTEM
  28. * TABLES AND TRTS ON ALL SYSTEM DEVICES.
  29. *
  30. * FUNCTION 2 CHECKPOINT DEVICE.
  31. * CHECKPOINT TRT TO ALL DEVICES WITH
  32. * CHECKPOINT REQUESTS SET.
  33. *
  34. * FUNCTION 3 ALTERNATE LIBRARY CHECKPOINT.
  35. * SAME AS FUNCTION 1 BUT THE SYSTEM
  36. * IS NOT IDLED.
  37. *
  38. * FUNCTION 4 CHECKPOINT LOCAL AREA.
  39. * THE LOCAL AREA ON THE SPECIFIED
  40. * DEVICE IS COPIED TO THE LOCAL AREA
  41. * SECTOR. THE TRT IS ALSO CHECKPOINTED.
  42. *
  43. * FUNCTION 5 CHECKPOINT INITIALIZED DEVICE.
  44. * SAME AS FUNCTION 2 EXCEPT THAT ONLY
  45. * THE DEVICE SPECIFIED IN CALL FROM
  46. * *IMS* IS PROCESSED.
  47. *
  48. * FUNCTION 6 RECOVERY ABORT CHECKPOINT.
  49. * PROCESSES OUTSTANDING CHECKPOINT REQUESTS
  50. * VIA FUNCTION 2 WHEN IT IS IMPOSSIBLE TO
  51. * COMPLETE A CM (LEVEL 3) RECOVERY.
  52. *
  53. * FUNCTION 7 RECOVERY ABORT CHECKPOINT.
  54. * SAME AS FUNCTION 6 EXCEPT BUFFERED DEVICES
  55. * ARE NOT CHECKPOINTED.
  56. *
  57. * FUNCTION 10 IDLE SYSTEM CHECKPOINT.
  58. * SAME AS FUNCTION 1 EXCEPT *1MB* WILL BE
  59. * CALLED INTO THIS PP AT COMPLETION.
  60. *
  61. * FUNCTION 11 FATAL IOU ERROR CHECKPOINT.
  62. * SAME AS FUNCTION 2 EXCEPT *1MB* WILL BE
  63. * CALLED INTO THIS PP AT COMPLETION.
  64. *
  65. * FUNCTION 12 REWRITE LABEL TRACK.
  66. * SAME AS FUNCTION 2 EXCEPT THAT ONLY THE
  67. * DEVICE SPECIFIED IN THE CALL FROM *1MV* IS
  68. * PROCESSED.
  69. * *1MV* CALLS *1CK* VIA AN *EXECUTE* MACRO
  70. * TO INITIATE THIS FUNCTION. IT WILL BE
  71. * CALLED BACK INTO THIS PP AT COMPLETION.
  72. *
  73. * FUNCTION 13 LONG POWER WARNING CHECKPOINT.
  74. * SAME AS FUNCTION 1 EXCEPT THAT ONLY 834
  75. * AND 836 DEVICES WILL BE CHECKPOINTED, AND
  76. * *1MB* WILL BE CALLED INTO THIS PP AT THE
  77. * COMPLETION OF THE CHECKPOINT.
  78. SPACE 4,10
  79. *** ENTRY CONDITIONS.
  80. *
  81. *
  82. * (IR+2) = FUNCTION CODE.
  83. * (IR+3) = EST ORDINAL (FUNCTIONS 4, 5 AND 12.)
  84. * = *1MB* FUNCTION CODE (FUNCTIONS 10, 11 AND 13).
  85. * (IR+4) = NUMBER OF DAYFILE POINTER TO UPDATE (FUNCTION 4).
  86. * = PREVIOUS ACCESS STATUS (MMF) (FUNCTION 5).
  87. SPACE 4,10
  88. *** DAYFILE MESSAGES.
  89. *
  90. * *ALL EQ-S CHECKPOINTED.* (CONSOLE LINE 1)
  91. * *RECOVERY ABORTED.* (CONSOLE LINE 2)
  92. * ALL DEVICES WERE SUCCESSFULLY CHECKPOINTED
  93. * AND RECOVERY WAS ABORTED.
  94. *
  95. * * CHECKPOINT ABORTED.* = ERROR FLAG WAS SET.
  96. *
  97. * *CHECKPOINT COMPLETE.* = NORMAL COMPLETION.
  98. *
  99. * *EQXXX, CHECKPOINT ABORTED.* = UNRECOVERED ERROR WRITING
  100. * SYSTEM SECTOR ON EST ORDINAL XXX.
  101. *
  102. * *EQXXX, LOCAL AREA OVERFLOW.* = LOCAL AREA SECTOR WAS FULL
  103. * (40B MACHINE ID-S ALREADY PRESENT).
  104. *
  105. * *EQXXX, LOCAL AREA SECTOR ERROR.* = UNRECOVERED READ ERROR ON
  106. * SECTOR OF LOCAL AREAS.
  107. *
  108. * *EQXXX, TRACK LIMIT.* = NO TRACKS WERE AVAILABLE ON EST
  109. * ORDINAL XXX.
  110. *
  111. * *NON-BUFFERED EQ-S CHECKPOINTED.* (CONSOLE LINE 1)
  112. * *RECOVERY ABORTED.* (CONSOLE LINE 2)
  113. * NON-BUFFERED DEVICES WERE SUCCESSFULLY
  114. * CHECKPOINTED AND RECOVERY WAS ABORTED.
  115. *
  116. * * SYSTEM CHECKPOINT ABORT.* = MESSAGE ISSUED TO SUBSYSTEMS
  117. * WHICH ARE ABORTED DURING A SYSTEM CHECKPOINT.
  118. SPACE 4,10
  119. *** OPERATOR MESSAGES.
  120. *
  121. * NONE.
  122. SPACE 4,10
  123. ** ROUTINES USED.
  124. *
  125. *
  126. * 0TD - TERMINATE DAYFILES.
  127. * 5ME - FORMAT ERROR MESSAGES.
  128. SPACE 4,10
  129. *CALL COMPMAC
  130. *CALL COMSCPS
  131. *CALL COMSDFS
  132. *CALL COMSDSL
  133. *CALL COMSDST
  134. *CALL COMSEVT
  135. *CALL COMSHIO
  136. *CALL COMSLSD
  137. *CALL COMSMMF
  138. *CALL COMSMSC
  139. *CALL COMSMSP
  140. *CALL COMSMST
  141. *CALL COMSPIM
  142. QUAL SCD
  143. *CALL COMSSCD
  144. QUAL *
  145. *CALL COMSSSD
  146. *CALL COMSWEI
  147. *CALL COMSZOL
  148. SPACE 4,10
  149. ** MACRO DEFINITIONS.
  150. MTBL SPACE 4,10
  151. ** MTBL - GENERATE TABLE OF PARALLEL MST ADDRESSES.
  152. *
  153. * N = TABLE NAME.
  154. * A = NOS MST ADDRESS.
  155. * B = K21 MST ADDRESS.
  156. * C = REPEAT COUNT.
  157.  
  158.  
  159. NOREF .I,.X,.Y
  160.  
  161. MACRO MTBL,N,A,B,C
  162. IFC NE,*N**,1
  163. N BSS 0
  164. )3 IFC NE,*C**
  165. .I SET C
  166. )3 ELSE 1
  167. .I SET 1
  168. .X SET NMSS+5*A
  169. .Y SET MTSS+5*/K21/B
  170. )D DUP .I
  171. CON .X,.Y
  172. .X SET .X+1
  173. .Y SET .Y+1
  174. )D ENDD
  175. ENDM
  176. SUBSYST SPACE 4,10
  177. ** SUBSYST - GENERATE SUBSYSTEM TABLE.
  178. *
  179. * SUBSYST NAME,ID,PR,PP,AUTO,DEF,DCP,CP,PROC,ABT
  180. *
  181. * ENTRY *ABT* = *NA*, IF SUBSYSTEM NOT TO BE ABORTED
  182. * BY CHECKPOINT.
  183. *
  184. * TABLE OF SUBSYSTEM ID-S OF SUBSYSTEMS NOT TO BE ABORTED.
  185. *
  186. *T 12/ SSID
  187.  
  188.  
  189. PURGMAC SUBSYST
  190.  
  191. SUBSYST MACRO NM,ID,PT,PP,AU,DF,DC,CP,PR,AB
  192. .A IFC EQ,$AB$NA$
  193. .SUB RMT
  194. CON ID
  195. .SUB RMT
  196. .A ENDIF
  197. SUBSYST ENDM
  198. SPACE 4,10
  199. **** DIRECT LOCATION ASSIGNMENTS.
  200.  
  201.  
  202. T8 EQU 16 TEMPORARY STORAGE
  203. T9 EQU 17
  204. RI EQU T8 - T9 RANDOM INDEX
  205. CN EQU 20 - 24 CM WORD BUFFER (5 LOCATIONS)
  206. NC EQU 25 NUMBER OF CONTROL POINTS
  207. NT EQU 26 NEXT TRACK POINTER
  208. EI EQU 27 EQUIPMENT INDEX
  209. ES EQU 30 - 34 EST ENTRY (5 LOCATIONS)
  210. DT EQU ES+3 DEVICE TYPE
  211. MS EQU ES+4 MST ADDRESS / 10B
  212. LT EQU 35 LABEL TRACK
  213. DI EQU 36 DAYFILE INDEX
  214. UI EQU 37 UTILITY ACTIVE INTERLOCK FLAG
  215. FS EQU 40 - 44 CM WORD BUFFER (5 LOCATIONS)
  216. LS EQU 45 LAST SECTOR FLAG
  217. PA EQU 46 PROCESSOR ADDRESS
  218. TS EQU 47 LABEL TRACK INTERLOCK STATUS
  219. FA EQU 57 FST ADDRESS
  220. LO EQU 60 LAST MASS STORAGE ORDINAL + 1
  221. ST EQU 62 SYSTEM TABLE TRACK
  222. CA EQU 63 - 67 CENTRAL ADDRESS (2 LOCATIONS)
  223. EC EQU CA+2 MANAGED TABLE ENTRY COUNT
  224. LM EQU CA+3 - CA+4 LIMIT ADDRESS (2 LOCATIONS)
  225. ****
  226. TITLE MAIN PROGRAM.
  227. CKP SPACE 4,10
  228. ** CKP - MAIN PROGRAM.
  229.  
  230.  
  231. ORG PPFW
  232. CKP LJM PRS PRESET PROGRAM
  233.  
  234.  
  235. DPP LJM PRS5 PRESET *1MV* SPECIAL CALL
  236. ERRNZ CKP+2-DPP FUNCTION 12 DEPENDS ON VALUE
  237. DPPA EQU *-1 (EXIT PROCESSING ADDRESS)
  238.  
  239. DPP1 MONITOR DPPM DROP PP
  240. LJM PPR EXIT TO PP RESIDENT
  241. DSC SPACE 4
  242. *** FUNCTION 0.
  243. * DEAD START CHECK POINT.
  244.  
  245.  
  246. DSC EXECUTE 3CK
  247. SYC SPACE 4,10
  248. *** FUNCTIONS 1, 3, 10, 13.
  249. * SYSTEM CHECK POINT.
  250. * ALTERNATE LIBRARY CHECKPOINT.
  251. * IDLE SYSTEM CHECKPOINT.
  252. * LONG POWER WARNING CHECKPOINT.
  253.  
  254.  
  255. SYC EQU DSC
  256. PFC SPACE 4
  257. *** FUNCTION 2.
  258. * CHECK POINT PERMANENT FILE DEVICES.
  259.  
  260.  
  261. PFC2 LDD T5 SET EST ORDINAL
  262. STD CM+1
  263. STD IR+3
  264. LDN VEIS VALIDATE EQUIPMENT
  265. STD CM+3
  266. MONITOR VMSM
  267. LDD CM+1
  268. NJN PFC1 IF VALIDATION ERRORS
  269. PFC3 RJM CDB CHECK FOR DISK BUFFERED
  270. ZJN PFC4 IF DEVICE IS NOT TO BE CHECKPOINTED
  271. AOM UERR SET *RETURN ON NOT READY* FLAG
  272. ERRNZ EPNR-1 CODE DEPENDS ON VALUE
  273. RJM WTT WRITE MASS STORAGE TABLES
  274. PFC4 RJM FIB FLUSH I/O BUFFERS
  275. RJM CIL CLEAR INTERLOCKS
  276.  
  277. PFC RJM SMD SELECT MASS STORAGE DEVICE
  278. NJN PFC2 IF NOT END OF MS ENTRIES
  279. * NJN PFC3 (MASS STORAGE VALIDATION DISABLED)
  280. PFCA EQU *-1
  281. LJM DPP DROP PP
  282. PFCB EQU *-1
  283. * LJM /3CK/RAC1 (RECOVERY ABORT CHECKPOINT)
  284.  
  285. PFC1 STD IR+2 STORE ERROR CODES
  286. LDN STVE SET ERROR STATUS IN MST
  287. RJM SES
  288. EXECUTE 5ME PROCESS ERRLOG MESSAGES
  289. UJN PFC4 CLEAR INTERLOCKS
  290. SPACE 4
  291. *** FUNCTION 4.
  292. * UPDATE LOCAL AREA SECTOR.
  293. *
  294. * (IR+3) = EQUIPMENT.
  295.  
  296.  
  297. ULA EQU DSC
  298. SPACE 4
  299. *** FUNCTION 5.
  300. * CHECKPOINT INITIALIZED DEVICE.
  301. *
  302. * ENTRY (IR+3) = EST ORDINAL.
  303.  
  304.  
  305. IDC EXECUTE 3CL
  306. RAC SPACE 4,10
  307. *** FUNCTION 6 AND 7.
  308. * RECOVERY ABORT CHECKPOINT.
  309.  
  310.  
  311. RAC EQU IDC
  312. FIC SPACE 4,10
  313. *** FUNCTION 11.
  314. * FATAL IOU ERROR CHECKPOINT.
  315.  
  316.  
  317. FIC EQU DSC
  318. RLT SPACE 4,10
  319. *** FUNCTION 12.
  320. * REWRITE LABEL TRACK.
  321.  
  322.  
  323. RLT EQU IDC
  324. TITLE SUBROUTINES.
  325. ABT SPACE 4,10
  326. ** ABT - ABORT THE OPERATION.
  327. *
  328. * ENTRY (T5) = EST ORDINAL.
  329.  
  330.  
  331. ABT LDC ABTB
  332. RJM DFM
  333. RJM CIL CLEAR INTERLOCKS
  334. SMSTF LCKP RESET CHECKPOINT REQUEST
  335. LJM DPP
  336.  
  337. ABTA DATA H*EQXXX,*
  338. ABTB DATA C* CHECKPOINT ABORTED.*
  339. CBP SPACE 4,15
  340. ** CBP - CLEAR *BAT* PERMISSIONS UNCONDITIONALLY.
  341. *
  342. * ENTRY (T5) = EST ORDINAL.
  343. * (ES - ES+4) = EST ENTRY.
  344. *
  345. * EXIT *BAT* PERMISSIONS FOR THIS MAINFRAME CLEARED.
  346. *
  347. * USES CM - CM+4.
  348. *
  349. * MACROS MONITOR.
  350.  
  351.  
  352. CBP SUBR ENTRY/EXIT
  353. LDN ZERL
  354. CRD CM
  355. CBPA LDN ** SET MACHINE INDEX
  356. STD CM+2
  357. LDD T5 SET EST ORDINAL
  358. STD CM+4
  359. LDN CBWS CLEAR *BAT* PERMISSIONS UNCONDITIONALLY
  360. STD CM+1
  361. MONITOR MTEM
  362. UJN CBPX RETURN
  363. CDB SPACE 4,10
  364. ** CDB - CHECK IF DEVICE IS BUFFERED.
  365. *
  366. * ENTRY (ES - ES+4) = EST ENTRY.
  367. *
  368. * EXIT (A) = 0, IF DEVICE IS NOT TO BE CHECKPOINTED.
  369.  
  370.  
  371. CDB1 LDN 1 INDICATE DEVICE MAY BE CHECKPOINTED
  372.  
  373. CDB SUBR ENTRY/EXIT
  374. LDD ES CHECK IF BUFFERED DEVICE
  375. LPN 40
  376. ZJN CDB1 IF NOT A BUFFERED DEVICE
  377. LDD IR+2
  378. LMN 7 ZERO IF BUFFERED DEVICES NOT TO BE FLUSHED
  379. UJN CDBX RETURN
  380. CIL SPACE 4,15
  381. ** CIL - CLEAR INTERLOCKS.
  382. *
  383. * ENTRY (T5) = EST ORDINAL.
  384. * (LT) = LABEL TRACK.
  385. * (TS) = LABEL TRACK INTERLOCK STATUS.
  386. * = 4000, IF CHECKPOINT ABORT PROCESSING.
  387. * (UI) = UTILITY ACTIVE INTERLOCK STATUS.
  388. *
  389. * EXIT (A) = (TS) = (UI) = 0 (INTERLOCKS CLEARED).
  390. * (TS) = 4000, IF CHECKPOINT ABORT PROCESSING.
  391. *
  392. * CALLS CTI.
  393.  
  394.  
  395. CIL2 LDN 0
  396.  
  397. CIL SUBR ENTRY/EXIT
  398. LDD UI
  399. ZJN CIL1 IF UTILITY ACTIVE INTERLOCK NOT SET
  400. CMSTF LUAI CLEAR UTILITY ACTIVE INTERLOCK
  401. * LDN 0 CLEAR INTERLOCK STATUS
  402. STD UI
  403. CIL1 LDD TS
  404. ZJN CILX IF LABEL TRACK NOT INTERLOCKED
  405. SHN 21-13
  406. MJN CIL2 IF CHECKPOINT ABORT PROCESSING
  407. LDD LT CLEAR TRACK INTERLOCK
  408. RJM CTI
  409. * LDN 0 CLEAR INTERLOCK STATUS
  410. STD TS
  411. UJN CILX RETURN
  412. DDB SPACE 4,15
  413. ** DDB - DROP DISK BUFFERS.
  414. *
  415. * ENTRY (T5) = EST ORDINAL.
  416. * (ES - ES+4) = EST ENTRY.
  417. *
  418. * EXIT (A) = 0, IF ALL DISK BUFFERS RELEASED.
  419. *
  420. * USES CM - CM+4.
  421. *
  422. * MACROS MONITOR.
  423.  
  424.  
  425. DDB SUBR ENTRY/EXIT
  426. LDN ZERL CLEAR ASSEMBLY AREA
  427. CRD CM
  428. LDD T5 SET EST ORDINAL
  429. STD CM+3
  430. LDC BMDD*100 DROP ALL BUFFERS ON DEVICE
  431. STD CM+4
  432. MONITOR BFMM
  433. LDD CM+4 GET *BFMM* STATUS
  434. UJN DDBX RETURN
  435. FIB SPACE 4,15
  436. ** FIB - FLUSH I/O BUFFERS.
  437. *
  438. * ENTRY (T5) = EST ORDINAL.
  439. * (ES - ES+4) = EST ENTRY.
  440. *
  441. * EXIT ONE OR MORE OF THE FOLLOWING WILL BE PERFORMED,
  442. * BASED ON THE *1CK* FUNCTION.
  443. * - DISK BUFFERS FLUSHED.
  444. * - DISK BUFFERS RELEASED.
  445. * - *BAT*/*BST* PERMISSIONS RELEASED.
  446. * - *BAT* PERMISSIONS UNCONDITIONALLY CLEARED.
  447. *
  448. * USES T1, T2, CM - CM+4.
  449. *
  450. * MACROS DELAY, MONITOR, PAUSE.
  451.  
  452.  
  453. FIB SUBR ENTRY/EXIT
  454. LDD TH SET MAXIMUM RETRY COUNT
  455. STD T1
  456. LDD ES CHECK IF BUFFERED DEVICE
  457. LPN 40
  458. ZJN FIBX IF NOT A BUFFERED DEVICE
  459. LJM ** PROCESS DEVICE BASED ON *1CK* FUNCTION
  460. FIBA EQU *-1 (PROCESSING ADDRESS)
  461.  
  462. * FUNCTIONS 0, 2, 3, 5, 10 AND 11.
  463.  
  464. FIB1 RJM FWB FLUSH WRITE BUFFERS
  465. UJN FIBX RETURN
  466.  
  467. * FUNCTIONS 1 AND 6.
  468.  
  469. FIB2 LDD ES
  470. SHN 21-11
  471. MJN FIB3 IF SHARED BUFFERED DEVICE
  472. RJM FWB FLUSH WRITE BUFFERS
  473. RJM DDB DROP DISK BUFFERS
  474. UJN FIB4 CHECK STATUS
  475.  
  476. FIB3 RJM RBP RELEASE *BAT*/*BST* PERMISSIONS
  477. FIB4 ZJN FIB5 IF SUCCESSFUL
  478. DELAY 200B DELAY 16 MILLISECONDS
  479. SOD T1
  480. NJN FIB2 IF RETRY COUNT NOT EXHAUSTED
  481. FIB5 UJP FIBX RETURN
  482.  
  483. * FUNCTION 7.
  484.  
  485. FIB6 LDD ES
  486. SHN 21-11
  487. PJN FIB7 IF NOT SHARED BUFFERED DEVICE
  488. RJM CBP CLEAR *BAT* PERMISSIONS UNCONDITIONALLY
  489. FIB7 LJM FIBX RETURN
  490. FWB SPACE 4,15
  491. ** FWB - FLUSH WRITE BUFFERS.
  492. *
  493. * ENTRY (T5) = EST ORDINAL.
  494. * (ES - ES+4) = EST ENTRY.
  495. *
  496. * EXIT WRITE BUFFERS FLUSHED.
  497. *
  498. * USES CM - CM+4.
  499. *
  500. * MACROS MONITOR.
  501.  
  502.  
  503. FWB SUBR ENTRY/EXIT
  504. LDN ZERL CLEAR ASSEMBLY AREA
  505. CRD CM
  506. LDD T5 SET EST ORDINAL
  507. STD CM+3
  508. LDC BMFW*100 FLUSH ALL WRITE BUFFERS
  509. STD CM+4
  510. MONITOR BFMM
  511. UJN FWBX RETURN
  512. RBP SPACE 4,15
  513. ** RBP - RELEASE *BAT* AND *BST* PERMISSIONS.
  514. *
  515. * ENTRY (T5) = EST ORDINAL.
  516. * (ES - ES+4) = EST ENTRY.
  517. *
  518. * EXIT (A) = 0, IF ALL PERMISSIONS RELEASED.
  519. *
  520. * USES CM - CM+4.
  521. *
  522. * MACROS MONITOR.
  523.  
  524.  
  525. RBP SUBR ENTRY/EXIT
  526. LDN ZERL
  527. CRD CM
  528. LDD T5 SET EST ORDINAL
  529. STD CM+4
  530. LDN RBPS RELEASE *BAT*/*BST* ACCESS PERMISSIONS
  531. STD CM+1
  532. MONITOR MTEM
  533. LDD CM+4 GET *MTEM* STATUS
  534. UJN RBPX RETURN
  535. SDP SPACE 4,15
  536. ** SDP - SET DEVICE PARAMETERS.
  537. *
  538. * ENTRY (IR+3) = EST ORDINAL.
  539. *
  540. * EXIT (A) = 0 IF DEVICE IS ACCESSIBLE.
  541. * (LT) = (T6) = LABEL TRACK.
  542. * (ES - ES+4) = EST ENTRY.
  543. * DRIVER LOADED/PRESET.
  544. *
  545. * USES CM - CM+4.
  546. *
  547. * MACROS SETMS, SFA.
  548.  
  549.  
  550. SDP SUBR ENTRY/EXIT
  551. LDD IR+3 SET EST ORDINAL
  552. STD T5
  553. SFA EST READ EST ENTRY
  554. ADK EQDE
  555. CRD ES
  556. LDD ES+4 GET DEVICE ALLOCATION WORD FROM MST
  557. SHN 3
  558. ADN ALGL
  559. CRD CM
  560. LDD CM+1 SET LABEL TRACK
  561. STD LT
  562. STD T6
  563. SETMS IO,(ND,NS,RW),WBUF
  564. UJN SDPX RETURN
  565. SMD SPACE 4,20
  566. ** SMD - SELECT MASS STORAGE DEVICE.
  567. *
  568. * ENTRY (EI) = LAST EQUIPMENT PROCESSED.
  569. *
  570. * EXIT (A) = 0 IF END OF MASS STORAGE DEVICES.
  571. * (T5) = (EI) = EST ORDINAL.
  572. * (T6) = (LT) = LABEL TRACK
  573. * (UI) = UTILITY ACTIVE INTERLOCK STATUS.
  574. * (ES - ES+4) = EST ENTRY.
  575. * (FS - FS+4) = *STLL* WORD OF MST.
  576. * DRIVER PRESET.
  577. *
  578. * USES EI, LT, UI, T5, T6, CM - CM+4, CN - CN+4, ES - ES+4,
  579. * FS - FS+4.
  580. *
  581. * CALLS SES.
  582. *
  583. * MACROS SETMS, SFA, SMSTF.
  584.  
  585.  
  586. SMD SUBR ENTRY/EXIT
  587. SMD1 AOD EI ADVANCE EST INDEX
  588. STD T5
  589. LMD LO
  590. ZJN SMDX IF END OF MASS STORAGE EST
  591. SFA EST,T5 READ EST ENTRY
  592. ADK EQDE
  593. CRD ES
  594. LDD ES CHECK EQUIPMENT
  595. SHN 21-13
  596. PJN SMD1 IF NOT MASS STORAGE
  597. SHN 13-21
  598. LPC 103
  599. SBN 3
  600. PJN SMD1 IF DEVICE UNAVAILABLE OR DOWN
  601. LDD IR+2 CHECK FUNCTION CODE
  602. LMN 13
  603. NJN SMD2 IF NOT A LONG POWER WARNING CHECKPOINT
  604. LDD ES+3
  605. LMC 2RDD
  606. ZJN SMD2 IF 834 (DD) DEVICE
  607. LMN 2RDG&2RDD
  608. SMD1.1 NJN SMD1 IF NOT 836 (DG) DEVICE
  609. SMD2 LDD ES+4
  610. SHN 3
  611. ADN ACGL
  612. CRD CM
  613. ADN ALGL-ACGL
  614. CRD CN
  615. ADN STLL-ALGL
  616. CRD FS
  617. SMDA LDD FS LOOK AT CHECKPOINT REQUESTED
  618. * UJN SMD4 (CHECKPOINT REQUESTED FLAG IMMATERIAL)
  619. LPN MLIRP+MLCKP
  620. LMN MLCKP
  621. SMD3 NJN SMD1.1 IF INITIALIZE / NO CHECKPOINT PENDING
  622. SMD4 LDD CM+4
  623. LPC MGDEI+MGRDR
  624. NJN SMD3 IF ERROR IDLE OR REDEFINITION REQUESTED
  625. LDD FS+1
  626. LPN 77
  627. ZJN SMD5 IF NO ERROR FLAG
  628. LDD ES
  629. LPN 2
  630. NJN SMD3 IF DEVICE OFF OR DOWN
  631. * LDN 0 CLEAR ERROR STATUS IN *STLL*
  632. RJM SES
  633. SMDB EQU *
  634. SMD5 SMSTF LUAI SET UTILITY ACTIVE INTERLOCK
  635. * UJN SMD6 (UTILITY INTERLOCK NOT REQUIRED)
  636. LDD CM+1
  637. NJN SMD3 IF LOCAL UTILITY ACTIVE
  638. AOD UI
  639. SMD6 SETMS IO,(ND,NR,NS,RW),WBUF
  640. LDD CN+1
  641. STD LT SET LABEL TRACK
  642. STD T6
  643. LJM SMDX RETURN
  644. WLS SPACE 4,15
  645. ** WLS - WRITE LABEL SECTORS.
  646. *
  647. * ENTRY LABEL SECTOR CONTENTS IN (BFMS)
  648. * (ES - ES+4) = EST ENTRY
  649. * (T6) = LABEL TRACK
  650. *
  651. * EXIT LABEL SECTOR WRITTEN TO ALL UNITS OF DEVICE.
  652. *
  653. *
  654. * USES T7, CA - CA+1, CM - CM+4.
  655. *
  656. * CALLS WMS.
  657.  
  658.  
  659. WLS SUBR ENTRY EXIT
  660. LDD ES+4 READ MDGL FROM MST
  661. SHN 3
  662. ADN MDGL
  663. CRD CM
  664. LDD CM+1 SET UNIT SECTOR LIMIT
  665. LPC 3777
  666. STD CA+1
  667. SBM SLM
  668. ZJN WLSX IF SINGLE UNIT DEVICE
  669. LDC 3777 SET SYSTEM SECTOR CONTROL BYTE
  670. STM BFMS
  671. LDN 77 SET WORD COUNT
  672. STM BFMS+1
  673. LDN 0
  674. STD T7
  675. WLS1 LDD CA+1
  676. RAD T7 SET SECTOR
  677. SBM SLM
  678. PJN WLSX IF END OF UNITS
  679. LDN 10 ADVANCE RELATIVE UNIT
  680. RAM N4SS+5*PFGL+4
  681. LDC BFMS+WLSF WRITE LABEL SECTOR
  682. RJM WMS
  683. UJN WLS1 LOOP FOR NEXT UNIT
  684. WMS SPACE 4,10
  685. ** WMS - WRITE MASS STORAGE.
  686. *
  687. * ENTRY (A) = BUFFER ADDRESS.
  688. *
  689. * EXIT TO *WSE* IF WRITE ERRORS.
  690. *
  691. * CALLS WDS.
  692.  
  693.  
  694. WMS SUBR ENTRY/EXIT
  695. RJM WDS WRITE MASS STORAGE
  696. PJN WMSX IF NO ERRORS
  697. LJM WSE PROCESS WRITE ERROR
  698. WNS SPACE 4,15
  699. ** WNS - WRITE NEXT SECTOR.
  700. *
  701. * ENTRY SECTOR DATA STORED IN (BUF+2 - BUF+N)
  702. * (T4 - T7) = MASS STORAGE PARAMETERS.
  703. * (NT) = TRACK BUFFER POINTER.
  704. *
  705. * EXIT (T6, T7) UPDATED.
  706. * TO *WSE* IF NEXT TRACK UNAVAILABLE.
  707. *
  708. * USES T1, T6, T7, NT, CM - CM+4.
  709. *
  710. * CALLS FTB, WMS.
  711. *
  712. * MACROS MONITOR.
  713.  
  714.  
  715. WNS3 LDC BUF+WCSF WRITE SECTOR
  716. RJM WMS
  717. AOD T7 ADVANCE SECTOR
  718. LMM SLM
  719. NJN WNSX IF NOT END OF TRACK
  720. STD T7
  721. LDM BUF SET NEXT TRACK
  722. STD T6
  723.  
  724. WNS SUBR ENTRY/EXIT
  725. LDD T7 SET NEXT SECTOR
  726. ADN 1
  727. WNS1 STM BUF
  728. LMM SLM
  729. NJN WNS3 IF NOT END OF TRACK
  730. WNS2 AOD NT INCREMENT TRACK BUFFER POINTER
  731. LDI NT
  732. LMC 7777
  733. ZJN WSE IF END OF TRACK CHAIN
  734. LDI NT
  735. NJN WNS1 IF TRACK AVAILABLE
  736. RJM /3CK/FTB FILL TRACK BUFFER
  737. UJN WNS2 CONTINUE
  738. WSE SPACE 4,15
  739. ** WSE - WRITE ERROR PROCESSOR.
  740. *
  741. * ENTRY (T4) = CHANNEL.
  742. * (NC) = SYSTEM CONTROL POINT NUMBER.
  743. * (T5) = EST ORDINAL.
  744. * (WSEA) = ADDRESS OF POST ERROR PROCESSOR.
  745. * WRITE ERROR PROCESSING ENABLED.
  746. *
  747. * CALLS CIL, C2D, DFM, SES.
  748. *
  749. * MACROS ENDMS.
  750.  
  751.  
  752. WSE BSS 0 ENTRY
  753. ENDMS
  754. RJM CIL CLEAR INTERLOCKS
  755. LDD T5 CONVERT UPPER TWO DIGITS OF EST ORDINAL
  756. SHN -3
  757. RJM C2D
  758. STM ABTA+1
  759. LDD T5 CONVERT LOWER DIGIT OF EST ORDINAL
  760. LPN 7
  761. SHN 6
  762. ADC 2R0,
  763. STM ABTA+2
  764. LDD NC DISPLAY MESSAGE AT SYSTEM CP
  765. SHN 7
  766. ADN MS2W
  767. CWM ABTA,TR
  768. LDN STCA SET ERROR STATUS IN MST
  769. RJM SES
  770. LDC ABTA+ERLN *EQXXX, CHECKPOINT ABORTED.*
  771. RJM DFM
  772. LDN ZERL INITIATE *CMS*
  773. CRD CM
  774. ADN RDSL-ZERL
  775. CWD CM
  776. LJM DPP EXIT TO POST ERROR PROCESSING
  777. WSEA EQU *-1 (POST PROCESSOR ADDRESS)
  778. WTB SPACE 4,15
  779. ** WTB - WRITE TABLE.
  780. *
  781. * ENTRY (A) = 1/TRT FLAG, 17/WORD COUNT.
  782. * (CA - CA+1) = TABLE ADDRESS.
  783. * (T4 - T7) = MASS STORAGE PARAMETERS.
  784. *
  785. * EXIT (T6 - T7) UPDATED.
  786. *
  787. * USES LS, LM - LM+1.
  788. *
  789. * CALLS WNS.
  790.  
  791.  
  792. WTB SUBR ENTRY/EXIT
  793. STD LM+1 SET WORD COUNT
  794. SHN -6 SET SECTOR COUNT
  795. STD LM
  796. LPC 4000 GET TRT FLAG
  797. RAD LM
  798. SHN -14
  799. STD LS
  800. LDD HN SET FULL WORD COUNT
  801. STM BUF+1
  802. LDD LM CHECK SECTOR COUNT
  803. WTB1 MJN WTBX RETURN IF LAST SECTOR WRITTEN
  804. NJN WTB2 IF NOT LAST SECTOR
  805. LDD LM+1 SET SHORT COUNT
  806. LPN 77
  807. STM BUF+1
  808. AOD LS SET LAST SECTOR FLAG
  809. WTB2 LDD CA READ DATA BLOCK
  810. SHN 14
  811. ADD CA+1
  812. CRM BUF+2,HN
  813. LDD LS CHECK FOR LAST SECTOR OF TRT
  814. SHN -1
  815. ZJN WTB3 IF NOT LAST SECTOR OF TRT
  816. LDD MA
  817. CWM N4SS+5*SDGL,ON
  818. SBN 1 MOVE *SDGL* COUNTER TO LAST WORD OF SECTOR
  819. CRM BUF+2+5*77,ON
  820. WTB3 RJM WNS WRITE NEXT SECTOR
  821. LDD HN ADVANCE CENTRAL ADDRESS
  822. RAD CA+1
  823. SHN -14
  824. RAD CA
  825. SOD LM DECREMENT SECTOR COUNT
  826. UJP WTB1 LOOP
  827. WTT SPACE 4,10
  828. ** WTT - WRITE TRT.
  829. *
  830. * ENTRY (LT) = LABEL TRACK.
  831. * (ES - ES+4) = EST ENTRY.
  832. *
  833. * USES T1, T6, T7, CA - CA+1, CM - CM+4.
  834. *
  835. * CALLS STI, RLS, WEI, WSE, WTB.
  836. *
  837. * MACROS CMSTF, MONITOR.
  838.  
  839.  
  840. WTT7 CMSTF LCKP CLEAR CHECKPOINT REQUEST
  841.  
  842. WTT SUBR ENTRY/EXIT
  843. LDD LT
  844. STD T6
  845. LDD TS
  846. NJN WTT2 IF LABEL TRACK INTERLOCKED
  847. RJM STI SET TRACK INTERLOCK
  848. ZJN WTT1 IF ERROR FLAG NOT SET
  849. LJM ABT ABORT OPERATION
  850.  
  851. WTT1 AOD TS SET LABEL TRACK INTERLOCK STATUS
  852. WTT2 LDK LSLT SET LABEL SECTOR
  853. STD T7
  854. ADK 0-LSLT
  855. WTT3 RAD T7
  856. RJM RLS RECREATE LABEL SECTOR
  857. LDD ES
  858. SHN 21-4
  859. PJN WTT4 IF NOT ISHARED
  860. LDM N4SS+STLL*5
  861. LPN MLPTU
  862. ZJN WTT7 IF *LPTU* FLAG NOT SET
  863. WTT4 LDC 400 SET SYSTEM LEVEL
  864. RAM N4SS+5*MDGL
  865. LDC BFMS+WCSF WRITE LABEL SECTOR
  866. RJM WMS
  867. AOD T7 WRITE TRT
  868. LDM N4SS+5*TDGL+2
  869. LMC 400000 SET TRT FLAG
  870. RJM WTB
  871. RJM WEI WRITE EOI
  872. LDM N4SS+5*DULL GET FIRST SECTOR OF SECOND COPY
  873. SBD T7
  874. PJN WTT3 IF SECOND COPY HAS NOT BEEN WRITTEN
  875. ENDMS
  876. LDM N4SS+STLL*5
  877. LPN MLPTU
  878. ZJN WTT5 IF *LPTU* FLAG NOT SET
  879. LDD IR+2
  880. LMN 5
  881. NJN WTT5 IF NOT INITIALIZE CHECKPOINT
  882. CMSTF LPTU CLEAR FLAG
  883. WTT5 LDM N4SS+5*MDGL
  884. SHN 21-12
  885. MJN WTT6 IF AUXILIARY DEVICE
  886. LDM N4SS+5*PUGL+4 GET DEVICE MASK
  887. LPC 377
  888. NJN WTT6 IF MASTER DEVICE
  889. LDD T5 SET EQUIPMENT
  890. STD CM+1
  891. LDD T6 SET EOI STATUS
  892. LPC 3777
  893. STD CM+2
  894. LDD T7
  895. STD CM+3
  896. MONITOR DTKM
  897. WTT6 LJM WTT7 CLEAR CHECKPOINT REQUEST
  898. SPACE 4
  899. ** COMMON DECKS.
  900.  
  901.  
  902. RLS$ EQU 1 ASSEMBLE *RLS*
  903. *CALL COMPCLC
  904. *CALL COMPCTI
  905. *CALL COMPC2D
  906. *CALL COMPSES
  907. *CALL COMPSTI
  908. *CALL COMPTGB
  909. *CALL COMPTLB
  910. QUAL WMS
  911. QUAL$ EQU 1
  912. WDS EQU WMS
  913. *CALL COMPWEI
  914. WCS$ EQU 1 CONSECUTIVE SECTORS AFTER SYSTEM SECTOR
  915. *CALL COMPWSS
  916. QUAL *
  917. WEI EQU /WMS/WEI
  918. WSS EQU /WMS/WSS
  919. LITERAL SPACE 4
  920. USE LITERALS
  921.  
  922. OVLA EQU *+5 OVERLAY LOAD ADDRESS
  923. TITLE PRESET.
  924. PRS SPACE 4,10
  925. ** PRS - PRESET PROGRAM.
  926.  
  927.  
  928. PRS5 LDD IA PRESET *1MV* CALL
  929. CRD CM
  930. LDN 12 REWRITE LABEL TRACK FUNCTION
  931. STD IR+2 SET THE FUNCTION CODE
  932. LDD CM+2
  933. STD IR+3 SET EST ORDINAL
  934.  
  935. PRS LDC DPP1 RESTORE *DPP* JUMP
  936. STM DPPA
  937. LDN ESTP SET LAST MASS STORAGE ORDINAL
  938. CRD LO-3
  939. LDN 0 CLEAR FST ADDRESS
  940. STD FA
  941. STD TS CLEAR LABEL TRACK INTERLOCK STATUS
  942. STD UI
  943. LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  944. STD EI
  945. LDK MMFL
  946. CRD CM
  947. LDD CM+4 SET MACHINE INDEX
  948. LPN 77
  949. RAM CBPA
  950. LDN SSTL CHECK SYSTEM STATUS
  951. CRD CM
  952. LDD CM
  953. LPN 14
  954. ZJN PRS1 IF MS VALIDATION ENABLED
  955. LDC *
  956. ORG *-1
  957. LOC PFCA
  958. NJN PFC3 IF NOT END OF MS ENTRIES
  959. LOC *O
  960. STM PFCA
  961. PRS1 LDN NCPL SET NUMBER OF CONTROL POINTS
  962. CRD CM
  963. AOD CM+1
  964. STD NC
  965. SHN 7
  966. LMD CP
  967. ZJN PRS2 IF SYSTEM CP
  968. LDD IR+2
  969. SBN 2
  970. MJN PRS4 IF FUNCTION 0 OR 1
  971. SBN 10-2
  972. ZJN PRS4 IF FUNCTION 10
  973. LDD CP
  974. ADN JCIW
  975. CRD CM
  976. LDD CM+2
  977. ZJN PRS4 IF NOT SUBSYSTEM / SSJ JOB
  978. PRS2 LDD IR+2
  979. SHN 2
  980. STD T1
  981. SBN TFCNL
  982. PJN PRS4 IF INVALID FUNCTION
  983. LDM TFCN+1,T1 SET PROCESSOR ADDRESS
  984. STD PA
  985. LDM TFCN+2,T1 SET ERROR RETURN
  986. STM WSEA
  987. LDM TFCN+3,T1 SET *FIB* PROCESSING ADDRESS
  988. STM FIBA
  989. LDM TFCN,T1
  990. STM PRSA
  991. LJM PRS4 EXIT TO PROCESSOR
  992. PRSA EQU *-1
  993.  
  994. PRS4 LDN 0 SET NO ERROR FLAG
  995. STD CM+2
  996. LDC * ADDRESS WHERE ERROR DETECTED
  997. STD CM+1
  998. MONITOR CHGM CONDITIONALLY HANG PP
  999. LJM DPP DROP PP
  1000. TFCN SPACE 4,10
  1001. ** TFCN - FUNCTION PROCESSOR TABLE.
  1002. *
  1003. * ENTRY = 4 WORDS.
  1004. *
  1005. *T 12/ PP,12/ PA,12/ PE,12/ FA
  1006. * PP PREPROCESSOR ADDRESS
  1007. * PA PROCESSOR ADDRESS
  1008. * PE POST ERROR PROCESSING ADDRESS
  1009. * FA SUBROUTINE *FIB* PROCESSING ADDRESS.
  1010.  
  1011.  
  1012. TFCN BSS 0
  1013. LOC 0
  1014.  
  1015. CON DSC,/3CK/DSC,/3CK/DSC1,FIB1
  1016. CON SYC,/3CK/SCK,/3CK/SCK2,FIB2
  1017. CON PFC,PFC,PFC,FIB1
  1018. CON SYC,/3CK/SCK2,/3CK/SCK2,FIB1
  1019. CON ULA,/3CK/ULA,DPP,FIBX
  1020. CON IDC,/3CL/IDC,/3CL/IDC1,FIB1
  1021. CON RAC,/3CL/RAC,PFC,FIB2
  1022. CON RAC,/3CL/RAC,PFC,FIB6
  1023. CON SYC,/3CK/SCK,/3CK/SCK2,FIB1
  1024. CON FIC,/3CK/FIC,PFC,FIB1
  1025. CON RLT,/3CL/RLT,/3CL/RLT1,FIBX
  1026. CON SYC,/3CK/SCK,/3CK/SCK2,FIBX
  1027. TFCNL BSS 0
  1028. LOC *O
  1029. SPACE 4,10
  1030. * CHECK FOR OVERFLOW.
  1031.  
  1032.  
  1033. OVERFLOW PPFW,EPFW
  1034. TTL 1CK/3CK - CHECKPOINT FUNCTION PROCESSORS.
  1035. TITLE
  1036. QUAL 3CK
  1037. IDENT 3CK,OVLA
  1038. *COMMENT 1CK - CHECKPOINT FUNCTION PROCESSORS.
  1039. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1995.
  1040. SPACE 4,10
  1041. *** 3CK - CHECKPOINT FUNCTION PROCESSORS.
  1042. SPACE 4,10
  1043. ORG OVLA
  1044. SPACE 4,10
  1045. * COMMON DECKS.
  1046.  
  1047.  
  1048. SUB$ EQU 1 ASSEMBLE *SUBSYST* MACRO
  1049. QUAL$ EQU 1 AVOID COMMON DECK QUALIFICATION
  1050. *CALL COMSSSD
  1051. SPACE 4,10
  1052.  
  1053. ENT SUBR ENTRY
  1054. RJM PRS PRESET
  1055. LJM 0,PA PROCESS SELECTED FUNCTION
  1056. TITLE MAIN ROUTINES.
  1057. DSC SPACE 4,10
  1058. ** FUNCTION 0.
  1059. * DEAD START CHECKPOINT.
  1060.  
  1061.  
  1062. DSC BSS 0 ENTRY
  1063. RJM CCS COMPUTE CHECKPOINT FILE SIZE
  1064. DSC1 RJM SMD SELECT MASS STORAGE DEVICE
  1065. ZJN DSC5 IF NO DEVICES REMAIN
  1066. LDD ES
  1067. SHN 21-2
  1068. PJN DSC2 IF NOT CHECKPOINT DEVICE
  1069. RJM ACF ALLOCATE CHECKPOINT FILE
  1070. RJM WST WRITE SYSTEM TABLES
  1071. UJN DSC4 CHECKPOINT DEVICE
  1072.  
  1073. DSC2 RJM CAD CHECK ACTIVE DAYFILES
  1074. ZJN DSC3 IF NO ACTIVE DAYFILES ON DEVICE
  1075. RJM WLA WRITE LOCAL AREA
  1076. UJN DSC4 CHECKPOINT DEVICE
  1077.  
  1078. DSC3 LDD FS
  1079. LPN MLCKP
  1080. ZJN DSC1 IF CHECKPOINT NOT REQUESTED
  1081. ERRNZ EPNR-1 CODE DEPENDS ON VALUE
  1082. AOM UERR SET *RETURN ON NOT READY* FLAG
  1083. DSC4 RJM WTT WRITE TRT
  1084. RJM FIB FLUSH I/O BUFFERS
  1085. RJM CIL CLEAR INTERLOCKS
  1086. UJN DSC1 SELECT NEXT DEVICE
  1087.  
  1088. DSC5 LDN JSCL READ SCHEDULER CONTROL
  1089. CRD CM
  1090. LDD CM CLEAR SCHEDULER ACTIVE
  1091. LPC 3777
  1092. STD CM
  1093. LDN JSCL STORE SCHEDULER CONTROL
  1094. CWD CM
  1095. LDD MA
  1096. CWM DSCA,ON
  1097. LDN 0 CLEAR DROP PP OPTION
  1098. STD CM+1
  1099. MONITOR RPPM CALL *1PP*
  1100. LJM DPP DROP PP
  1101.  
  1102.  
  1103. DSCA VFD 18/3L1PP,42/0
  1104. SCK SPACE 4,10
  1105. ** FUNCTIONS 1, 3, 10 AND 13.
  1106. * SYSTEM CHECK POINT.
  1107. * ALTERNATE LIBRARY CHECKPOINT.
  1108. * IDLE SYSTEM CHECKPOINT.
  1109. * LONG POWER WARNING CHECKPOINT.
  1110.  
  1111.  
  1112. SCK BSS 0 ENTRY
  1113. LDN 4
  1114. STD T1
  1115. LDD NC WRITE MESSAGE AT SYSTEM CONTROL POINT
  1116. SHN 7
  1117. ADN MS1W
  1118. CWM SCKC,T1
  1119. LDN 0 SET CHECKPOINT IN PROGRESS
  1120. RJM SCD
  1121. RJM CBD CHECK BUFFERED DISKS
  1122. RJM ASW ABORT SUBSYSTEMS REQUIRING JOB FLOW
  1123. LDN 1
  1124. STD CM+1 SET NUMBER OF OPTIONS
  1125. STD CM+2 DO NOT DROP PPU
  1126. LDD MA
  1127. CWM SCKA,ON
  1128. MONITOR UADM DISABLE JOB SCHEDULING
  1129. SCK1 PAUSE NE
  1130. LDN JSCL CHECK SCHEDULER ACTIVE
  1131. CRD CM
  1132. LDD CM
  1133. SHN 21-13
  1134. MJN SCK1 IF SCHEDULER ACTIVE
  1135. LDN 1 SET *CPD* DROP FLAG
  1136. STD CM+1
  1137. STD CM+2
  1138. LDD MA
  1139. CWM SCKB,ON
  1140. MONITOR UADM
  1141. * LDN 0
  1142. RJM ROJ ROLLOUT NON-SUBSYSTEM JOBS
  1143. * LDN 0
  1144. RJM DRJ DISPOSE OF REMAINING JOBS
  1145. RJM WFJ WAIT FOR JOBS TO ROLL OR TERMINATE
  1146. RJM FDB FLUSH DAYFILE BUFFERS
  1147.  
  1148. * CHECKPOINT MASS STORAGE DEVICES.
  1149.  
  1150. SCK2 RJM SMD SELECT NEXT DEVICE
  1151. ZJN SCK3 IF END OF MASS STORAGE DEVICES
  1152. RJM WTT WRITE TRT
  1153. RJM FIB FLUSH I/O BUFFERS
  1154. RJM CIL CLEAR INTERLOCK
  1155. UJN SCK2 CHECKPOINT NEXT DEVICE
  1156.  
  1157. SCK3 LDN NOPE-1
  1158. STD EI
  1159. LDC SCK4 SET I/O ERROR EXIT
  1160. STM WSEA
  1161. SCK4 RJM SMD SELECT NEXT DEVICE
  1162. ZJN SCK6 IF END OF MASS STORAGE DEVICES
  1163.  
  1164. * WRITE CHECKPOINT FILE ON EACH CHECKPOINT DEVICE.
  1165.  
  1166. LDD ES
  1167. SHN 21-2
  1168. PJN SCK4 IF NOT CHECKPOINT DEVICE
  1169. RJM ACF CLEAR *VALID CHECKPOINT FILE* FLAG IN MST
  1170.  
  1171. * WRITE CHECKPOINT FILE. ROUTINE *WST* SETS
  1172. * *VALID CHECKPOINT FILE* FLAG IN MST TO PERMIT
  1173. * LEVEL 3 RECOVERY FROM THAT DEVICE.
  1174.  
  1175. RJM WST WRITE SYSTEM TABLES
  1176. RJM CBD ENSURE BUFFERS FLUSHED
  1177. RJM CIL CLEAR INTERLOCKS
  1178. UJN SCK4 PROCESS NEXT CHECKPOINT DEVICE
  1179.  
  1180. SCK6 LDD IR+2
  1181. LMN 3
  1182. SCK7 ZJN SCK9 IF ALTERNATE LIBRARY CHECKPOINT
  1183. LDN SSTL
  1184. CRD CM
  1185. LDD CM CHECK SYSTEM STATUS WORD
  1186. LPN 1
  1187. NJN SCK9 IF SPINDOWN DISABLED
  1188. LDN 20 SPIN DOWN ISMD DEVICES
  1189. RJM SUD
  1190. SCK9 LDC SCKD *CHECKPOINT COMPLETE.*
  1191. RJM DFM
  1192. LDN 1 SET CHECKPOINT COMPLETE
  1193. RJM SCD
  1194. LDD NC
  1195. SHN 7
  1196. ADN MS1W
  1197. CWM SCKD,TR *CHECKPOINT COMPLETE.*
  1198. LJM DPP
  1199.  
  1200. SCK8 LDD IA RELOAD *1MB*
  1201. CWM SCKE,ON
  1202. LJM PPR EXIT TO PP RESIDENT
  1203.  
  1204.  
  1205. SCKA CON LIOS INCREMENT BY ONE
  1206. CON INWL WORD ADDRESS
  1207. CON 13D*100+1 BIT POSITION AND FIELD WIDTH
  1208. CON 0
  1209. CON 0
  1210.  
  1211. SCKB CON LIOS
  1212. CON INWL
  1213. CON 2*100+1
  1214. CON 0
  1215. CON 0
  1216.  
  1217. SCKC DATA C*PROCESSING SYSTEM CHECKPOINT.*
  1218. SCKD DATA C*CHECKPOINT COMPLETE.*
  1219. SCKE VFD 18/3L1MP,6/0,12/0,24/0
  1220. SPACE 4
  1221. ** FUNCTION 4.
  1222. * UPDATE LOCAL AREA SECTOR.
  1223. *
  1224. * ENTRY (IR+3) = EQUIPMENT.
  1225. * (IR+4) = NUMBER OF DAYFILE POINTER TO UPDATE.
  1226.  
  1227.  
  1228. ULA RJM SDP SET DEVICE PARAMETERS
  1229. NJN ULA1 IF DEVICE INACCESSIBLE
  1230. LDD IR+4
  1231. LPN 7
  1232. RAM WLAB
  1233. RJM WLA WRITE LOCAL AREA
  1234. RJM WTT WRITE TRT
  1235. RJM CIL CLEAR INTERLOCKS
  1236. ULA1 LJM DPP EXIT
  1237. FIC SPACE 4,10
  1238. ** FUNCTION 11.
  1239. * FATAL IOU ERROR CHECKPOINT.
  1240.  
  1241.  
  1242. FIC LDC SCK8 SET RETURN FROM *PFC*
  1243. STM PFCB
  1244. LDC LDDI+FS ENABLE CHECKPOINT FLAG REQUIRED
  1245. STM SMDA
  1246. LJM PFC PROCESS OUTSTANDING CHECKPOINT REQUESTS
  1247. TITLE SUBROUTINES.
  1248. LDM MSD
  1249. LPC 100
  1250. ERR SPACE 4,15
  1251. ** ERR - PROCESS ERRORS.
  1252. *
  1253. * ENTRY (A) = ADDRESS OF MESSAGE.
  1254. * ((A)) = *EQXXX, DETAILS.*.
  1255. * (ES - ES+4) = EST ENTRY.
  1256. *
  1257. * EXIT TO *DPP*.
  1258. *
  1259. * USES T7.
  1260. *
  1261. * CALLS DFM, CIL.
  1262.  
  1263.  
  1264. ERR STD T7 SAVE MESSAGE ADDRESS
  1265. LDD T5 CONVERT UPPER TWO DIGITS OF EST ORDINAL
  1266. SHN -3
  1267. RJM C2D
  1268. STM 1,T7
  1269. LDD T5 CONVERT LOWER DIGIT OF EST ORDINAL
  1270. LPN 7
  1271. SHN 6
  1272. ADC 2R0,
  1273. STM 2,T7
  1274. LDD ES+3 SET EQUIPMENT TYPE
  1275. LPC 3777
  1276. STI T7
  1277. LDD T7 ISSUE MESSAGE
  1278. RJM DFM
  1279. LDD T7 ISSUE MESSAGE TO ERRLOG
  1280. LMC ERLN
  1281. RJM DFM
  1282. RJM CIL CLEAR INTERLOCKS
  1283. LJM DPP
  1284. ACF SPACE 4,15
  1285. ** ACF - ALLOCATE CHECKPOINT FILE.
  1286. *
  1287. * ENTRY (T5) = EST ORDINAL.
  1288. * (ES - ES+4) = *EQDE* WORD OF EST ENTRY.
  1289. *
  1290. * EXIT (ST) = CHECKPOINT FILE POINTER.
  1291. * TO *WSE* IF TRACK LIMIT REACHED.
  1292. *
  1293. * USES ST, CM - CM+4, CN - CN+4.
  1294. *
  1295. * MACROS MONITOR.
  1296.  
  1297.  
  1298. ACF SUBR ENTRY/EXIT
  1299. LDD ES+4
  1300. SHN 3
  1301. ADN DULL
  1302. CRD CN
  1303. LDD CN+3
  1304. NJN ACF1 IF CHECKPOINT FILE ALREADY ASSIGNED
  1305. STD CM+2
  1306. LDC ** SET SECTOR COUNT
  1307. ACFA EQU *-1
  1308. STD CM+4
  1309. SHN -14
  1310. STD CM+3
  1311. LDD T5 SET EST ORDINAL
  1312. STD CM+1
  1313. MONITOR RTCM
  1314. LDD CM+4
  1315. NJN ACF1 IF TRACK ASSIGNED
  1316. LJM WSE PROCESS CHECKPOINT ABORT
  1317.  
  1318. * CLEAR *VALID CHECKPOINT FILE* FLAG IN MST.
  1319.  
  1320. ACF1 STD ST
  1321. LPC 3777
  1322. STD CM+2
  1323. LDD T5 SET EST ORDINAL
  1324. STD CM+1
  1325. LDK USTS SET SUBFUNCTION
  1326. STD CM+3
  1327. MONITOR SMDM
  1328. LJM ACFX RETURN
  1329. CAD SPACE 4,10
  1330. ** CAD - CHECK ACTIVE DAYFILES.
  1331. *
  1332. * ENTRY (T5) = EST ORDINAL.
  1333. *
  1334. * EXIT (A) = (T3) = NUMBER OF ACTIVE DAYFILES ON DEVICE.
  1335. * (CADA) = FIRST TRACKS OF DAYFILES.
  1336. *
  1337. * USES CM - CM+4, CN - CN+4.
  1338.  
  1339.  
  1340. CAD1 LDN 3 ADVANCE ADDRESS TO NEXT DAYFILE
  1341. RAD CN+1
  1342. SHN -14
  1343. CAD2 RAD CN
  1344. SHN 14
  1345. LMD CN+1
  1346. ADN 2 READ DAYFILE STATUS WORD
  1347. CRD CM
  1348. LDD T5 CHECK EQUIPMENT
  1349. LMD CM
  1350. NJN CAD3 IF DAYFILE NOT ON CURRENT DEVICE
  1351. LDD CM+1 SET FIRST TRACK OF DAYFILE
  1352. STM CADA,CN+3
  1353. AOD T3 ADVANCE COUNT OF ACTIVE DAYFILES FOUND
  1354. CAD3 AOD CN+3
  1355. LMN EXDF
  1356. NJN CAD1 IF NOT END OF EXCESS DAYFILES
  1357. LDD T3
  1358.  
  1359. CAD SUBR ENTRY/EXIT
  1360. LDN DFPP READ DAYFILE POINTER WORD
  1361. CRD CN
  1362. LDN ZERL CLEAR DAYFILE LIST
  1363. CRM CADA,ON
  1364. LDN 0 CLEAR ACTIVE DAYFILE COUNT
  1365. STD T3
  1366. STD CN+3
  1367. UJN CAD2 CHECK SYSTEM DAYFILE
  1368.  
  1369. CADA BSS 5 ACTIVE DAYFILE LIST
  1370. CBD SPACE 4,10
  1371. ** CBD - CHECK BUFFERED DISKS.
  1372. *
  1373. * EXIT BUFFERED DISKS FLUSHED IF PRESENT.
  1374. *
  1375. * USES CM - CM+4.
  1376. *
  1377. * MACROS MONITOR.
  1378.  
  1379.  
  1380. CBD SUBR ENTRY/EXIT
  1381. LDK BIOL
  1382. CRD CM
  1383. LDD CM+1
  1384. ADD CM+2
  1385. ZJN CBDX IF NO BUFFERED I/O
  1386. LDN ZERL
  1387. CRD CM
  1388. LDC BMFW*100 FLUSH ALL WRITE BUFFERS
  1389. STD CM+4
  1390. MONITOR BFMM
  1391. UJN CBDX RETURN
  1392. CUA SPACE 4,15
  1393. ** CUA - CALCULATE UEM ADDRESS.
  1394. *
  1395. * ENTRY (T8) = TRACK.
  1396. * (CA, CA+1) = UEM BASE ADDRESS.
  1397. *
  1398. * EXIT (A) = BITS 5 - 0 OF ABSOLUTE UEM ADDRESS.
  1399. * (CA+2 - CA+3) = BITS 27 - 6 OF ABSOLUTE UEM ADDRESS
  1400. * (TO BE USED IN *R* REGISTER).
  1401. * (CA+4) = BITS 5 - 0 OF ABSOLUTE UEM ADDRESS
  1402. * (TO BE USED IN *A* REGISTER).
  1403. *
  1404. * USES CA+2 - CA+4.
  1405.  
  1406.  
  1407. CUA SUBR ENTRY/EXIT
  1408. LDD T8 CALCULATE TRACK * 2020
  1409. SHN 6 * 100
  1410. ADD T8 * 101
  1411. STD CA+3
  1412. CUAA SHN -10
  1413. * SHN -10+EMSC -10 + EXTENDED MEMORY SHIFT COUNT
  1414. STD CA+2 * 2020 HIGH BITS
  1415. LDD CA+3
  1416. CUAB SHN 4 (A) = * 2020 LOW BITS
  1417. * SHN 4+EMSC 4 + EXTENDED MEMORY SHIFT COUNT
  1418. LPC 7777
  1419. ADD CA+1 ADD UEM BASE ADDRESS
  1420. STD CA+4 LOW LOW BITS FOR *A* REGISTER
  1421. SHN -14
  1422. ADD CA
  1423. RAD CA+2 HIGH BYTE ABSOLUTE UEM ADDRESS
  1424. SHN 6 SHIFT RESULT FOR *R* REGISTER
  1425. STD CA+3
  1426. SHN 6
  1427. STD CA+2
  1428. LDD CA+4
  1429. SHN 14
  1430. RAD CA+3
  1431. SHN -14
  1432. STD CA+4 SET LOW 6 BITS FOR *A* REGISTER
  1433. UJN CUAX RETURN
  1434. FDB SPACE 4,15
  1435. ** FDB - FLUSH DAYFILE BUFFERS.
  1436. *
  1437. * EXIT SYSTEM DAYFILE BUFFERS FLUSHED TO DISK.
  1438. *
  1439. * USES CM+1, DI.
  1440. *
  1441. * CALLS DFM, *0TD*.
  1442. *
  1443. * MACROS EXECUTE.
  1444.  
  1445.  
  1446. FDB1 EXECUTE 0TD,OVL0 TERMINATE DAYFILE
  1447. AOD DI ADVANCE DAYFILE INDEX
  1448. FDB2 STM OVL0-1 SET POINTER ADDRESS FOR *0TD*
  1449. LMN EXDF+1
  1450. NJN FDB1 IF NOT END OF SYSTEM DAYFILES
  1451.  
  1452. FDB SUBR ENTRY/EXIT
  1453. LDN FDBAL SET MESSAGE LENGTH
  1454. STD CM+1
  1455. LDC BMLN+FDBA ISSUE CHECKPOINT MESSAGE TO THE *BML*
  1456. RJM DFM
  1457. LDN 1 INITIALIZE DAYFILE INDEX
  1458. STD DI
  1459. UJN FDB2 FLUSH MASTER DAYFILE BUFFER
  1460.  
  1461. FDBA CON DM0406,DS0112 *BML* SYSTEM CHECKPOINT MESSAGE
  1462. BSSZ FDBA+6-* ZERO FILL MESSAGE
  1463. FDBAL EQU *-FDBA LENGTH OF MESSAGE
  1464. FTB SPACE 4,10
  1465. ** FTB - FILL TRACK BUFFER.
  1466. *
  1467. * ENTRY (T6) = LAST TRACK USED.
  1468. *
  1469. * EXIT (NT) = *TBUF*.
  1470. *
  1471. * USES NT, T0, T1, CM - CM+4.
  1472.  
  1473.  
  1474. FTB SUBR ENTRY/EXIT
  1475. LDC TBUF SET TRACK BUFFER POINTER
  1476. STD NT
  1477. STD T0
  1478. LDD T6
  1479. SHN 6
  1480. FTB1 SHN -6 STORE TRACK IN BUFFER
  1481. STI T0
  1482. SHN -2 READ TRT WORD TO GET NEXT TRACK
  1483. ADC TRTS
  1484. FTBA EQU *-2
  1485. CRD CM
  1486. LDI T0 SET BYTE INDEX
  1487. LPN 3
  1488. STD T1
  1489. AOD T0 ADVANCE BUFFER POINTER
  1490. LMC TBUF+TBUFL-1
  1491. ZJN FTB2 IF TRACK BUFFER FULL
  1492. LDM CM,T1
  1493. SHN 6
  1494. MJN FTB1 IF NOT EOI
  1495. LCN 0 INHIBIT REFILLING BUFFER
  1496. FTB2 STI T0 MARK END OF BUFFER
  1497. UJN FTBX RETURN
  1498. GLS SPACE 4,15
  1499. ** GLS - GET LOCAL AREA SECTOR.
  1500. *
  1501. * ENTRY (T5) = EQUIPMENT.
  1502. * (ES - ES+4) = EST ENTRY.
  1503. *
  1504. * EXIT (A) = READ ERROR INDICATION.
  1505. * (BFMS) = LOCAL AREA SECTOR.
  1506. *
  1507. * USES CM - CM+4.
  1508. *
  1509. * CALLS RDS.
  1510. *
  1511. * MACROS SETMS, SMSTF.
  1512.  
  1513.  
  1514. GLS2 SETMS IO,(ND,NS) READ SECTOR OF LOCAL AREAS
  1515. LDC BFMS
  1516. RJM RDS
  1517. MJN GLSX IF READ ERROR
  1518. LDM BFMS
  1519. NJN GLSX IF FORMATTED SECTOR OF LOCAL AREAS
  1520. ENDMS
  1521. SMSTF GDEI SET ERROR IDLE
  1522. LCN 0
  1523.  
  1524. GLS SUBR ENTRY/EXIT
  1525. LDD ES+4 CHECK IF SECTOR EXISTS
  1526. SHN 3
  1527. ADN ACGL
  1528. CRD CM
  1529. LDD CM+4
  1530. LPC MGLAP
  1531. NJN GLS2 IF SECTOR EXISTS
  1532. LDC 501
  1533. STD CM
  1534. GLS1 LDN 0 CLEAR SECTOR BUFFER
  1535. STM BFMS,CM
  1536. SOD CM
  1537. NJN GLS1 IF NOT START OF BUFFER
  1538. LDN LMLT SET SYSTEM LEVEL IN LINKAGE
  1539. STM BFMS
  1540. SMSTF GLAP FLAG SECTOR OF LOCAL AREAS PRESENT
  1541. * LDN 0
  1542. UJN GLSX
  1543. GSC SPACE 4,10
  1544. ** GSC - GET SECTOR COUNT.
  1545. *
  1546. * ENTRY (T8) = UEM TRACK POINTER.
  1547. * (FS+1) = LAST TRACK + 1 OF USER EXTENDED MEMORY.
  1548. * (FS+2) = UEM SECTOR LIMIT.
  1549. * (FS+3) = TRT LENGTH.
  1550. *
  1551. * EXIT (A) = NUMBER OF SECTORS IN USE IN TRACK.
  1552. *
  1553. * USES T2, T8, CM - CM+4.
  1554.  
  1555.  
  1556. GSC SUBR ENTRY/EXIT
  1557. GSC1 AOD T8
  1558. LMD FS
  1559. NJN GSC2 IF NOT FIRST TRACK OF USER EXTENDED MEMORY
  1560. LDD FS+1
  1561. STD T8 SKIP TO END OF USER EXTENDED MEMORY
  1562. GSC2 LDD T8
  1563. SHN -2 COMPUTE TRT WORD OFFSET
  1564. STD T2
  1565. LMD FS+3
  1566. ZJN GSCX IF END OF TRT
  1567. LDC TRTS READ TRT WORD
  1568. GSCA EQU *-2
  1569. ADD T2
  1570. CRD CM
  1571. LDD T8 COMPUTE BYTE NUMBER
  1572. LPN 3
  1573. STD T2
  1574. ADC SHNI+16 SET TRACK RESERVATION CHECK
  1575. STM GSCB
  1576. LDD CM+4
  1577. SHN **
  1578. GSCB EQU *-1
  1579. GSC3 PJN GSC1 IF TRACK NOT RESERVED
  1580. LDM CM,T2
  1581.  
  1582. * TEST FOR LABEL TRACK WHICH CONTAINS A 0 AT DEADSTART TIME.
  1583. * NOTE: EOI TRACKS WILL ALSO BE PICKED UP - A 1 IN *SLM*
  1584. * CHANCE FOR EACH FILE, WHERE *SLM* IS THE UEM SECTOR LIMIT.
  1585.  
  1586. ZJN GSC5 IF LABEL TRACK
  1587. LMC 3777
  1588. ZJN GSC3 IF TRACK FLAWED
  1589. LMC 3777
  1590. SHN 21-13
  1591. MJN GSC5 IF ENTIRE TRACK IN USE
  1592. SHN 14
  1593. ADN 1
  1594. GSC4 LJM GSCX RETURN
  1595.  
  1596. GSC5 LDD FS+2
  1597. UJN GSC4 RETURN SECTOR COUNT FOR FULL TRACK
  1598. SCD SPACE 4,10
  1599. ** SCD - SET CHECKPOINT BITS.
  1600. *
  1601. * ENTRY (A) = OPERATION TO PERFORM.
  1602. * = 0, SET CHECKPOINT IN PROGRESS.
  1603. * = 1, SET CHECKPOINT COMPLETED.
  1604. *
  1605. * USES T1, CM - CM+4, CN - CN+4.
  1606. *
  1607. * MACROS MONITOR.
  1608.  
  1609.  
  1610. SCD4 LDD CM SET CHECKPOINT IN PROGRESS
  1611. SCN 4
  1612. LMN 4
  1613. SCD5 STD CM STORE CHECKPOINT FLAGS
  1614. LDD CN+3
  1615. SHN 14
  1616. ADD CN+4
  1617. ADN D7ST
  1618. CWD CM WRITE UPDATED STATUS WORD
  1619.  
  1620. SCD SUBR ENTRY/EXIT
  1621. STD T1 SAVE OPERATION
  1622. ZJN SCD1 IF SET CHECKPOINT IN PROGRESS
  1623. LDN LDOS SET DECREMENT BY ONE
  1624. STM SCDA
  1625. SCD1 LDN 1 SET NUMBER OF OPTIONS
  1626. STD CM+1
  1627. STD CM+2 DO NOT DROP PPU
  1628. LDD MA
  1629. CWM SCDA,ON
  1630. MONITOR UADM SET GLOBAL CHECKPOINT IN PROGRESS FLAG
  1631. LDK EIBP
  1632. CRD CN
  1633. LDD CN+3
  1634. SHN 14
  1635. ADD CN+4
  1636. SCD2 ZJN SCDX IF NO *EICB*
  1637. ADN D7ST
  1638. CRD CM
  1639. LDD T1
  1640. NJN SCD3 IF SET CHECKPOINT COMPLETE
  1641. LJM SCD4 SET CHECKPOINT IN PROGRESS
  1642.  
  1643. SCD3 LDD CM
  1644. LPN 4
  1645. ZJN SCD2 IF CHECKPOINT IN PROGRESS FLAG NOT SET
  1646. LDD CM
  1647. SCN 10
  1648. LMN 10
  1649. LJM SCD5 SET CHECKPOINT COMPLETE
  1650.  
  1651. SCDA CON LIOS INCREMENT BY ONE
  1652. CON INWL WORD ADDRESS
  1653. CON 4*100+1 BIT POSITION AND FIELD WIDTH
  1654. CON 0
  1655. CON 0
  1656. TUT SPACE 4,10
  1657. ** TUT - TRANSFER UEM TRACK TO DISK.
  1658. *
  1659. * ENTRY (A) = NUMBER OF SECTORS TO TRANSFER.
  1660. * (T8) = UEM TRACK NUMBER.
  1661. * (FS+2) = UEM SECTOR LIMIT.
  1662. *
  1663. * USES CA+2, CA+3, T9.
  1664. *
  1665. * CALLS CUA, WNS.
  1666. *
  1667. * NOTES IF THE UEM TRACK SIZE IS 100B OR 200B SECTORS, THE 1ST
  1668. * SECTOR WILL CONTAIN ONLY THE TRACK DESCRIPTION, AND
  1669. * ALL LINKAGE WORDS WILL FOLLOW IN THE NEXT 1 OR 2
  1670. * SECTORS, PROCESSED AS IF DATA SECTORS.
  1671.  
  1672.  
  1673. TUT SUBR ENTRY/EXIT
  1674. STD T9 SET SECTOR COUNT
  1675. LDD FS+2 ADD LINKAGE WORDS TO SECTOR COUNT
  1676. SHN -6
  1677. RAD T9
  1678. STM BUF+3
  1679. LDD T8 SET TRACK NUMBER
  1680. STM BUF+2
  1681. RJM CUA CALCULATE FWA OF UEM TRACK
  1682. LDD FS+2
  1683. LPN 77
  1684. STM BUF+1 SET SINGLE SECTOR LINKAGE WORD COUNT
  1685. ZJN TUT1 IF TOO MANY WORDS FOR ONE SECTOR
  1686. RAD CA+4 ADVANCE UEM ADDRESS FOR PARTIAL SECTOR
  1687. SBD FS+2
  1688. ADC 400000 SET 2**17
  1689. LRD CA+2
  1690. CRM BUF+4,FS+2 READ LINKAGE WORDS
  1691. TUT1 RJM WNS WRITE 1ST (OR ONLY) LINKAGE SECTOR
  1692. LDD HN SET WORD COUNT FOR REMAINING SECTORS
  1693. STM BUF+1
  1694. TUT2 LDD CA+4
  1695. ADC 400000
  1696. LRD CA+2 READ DATA SECTOR
  1697. CRM BUF+2,HN
  1698. RJM WNS WRITE NEXT SECTOR
  1699. AOD CA+3 ADVANCE UEM ADDRESS
  1700. SHN -14
  1701. RAD CA+2
  1702. SOD T9 DECREMENT SECTOR COUNT
  1703. NJN TUT2 IF NOT FINISHED WITH TRACK
  1704. UJP TUTX RETURN
  1705. UCP SPACE 4,10
  1706. ** UCP - CHECKPOINT UEM.
  1707. *
  1708. * ENTRY (T4 - T7) = DISK PARAMETERS FOR CURRENT CHECKPOINT
  1709. * DEVICE.
  1710. *
  1711. * USES T8, T9, CA, CA+1, CM - CM+7, CN - CN+4, FS - FS+3.
  1712. *
  1713. * CALLS GSC, TUT, WEI, WLA.
  1714. *
  1715. * MACROS ENDMS, SFA.
  1716.  
  1717.  
  1718. UCP4 RJM TUT TRANSFER UEM TRACK TO DISK
  1719. UCP5 RJM GSC GET SECTOR COUNT OF NEXT TRACK
  1720. NJN UCP4 IF NOT END OF UEM
  1721.  
  1722. UCP SUBR ENTRY/EXIT
  1723. LDK UEML SET UEM BASE ADDRESS
  1724. CRD CM
  1725. LDD CM
  1726. SHN 21-2
  1727. STD CA
  1728. SHN -6
  1729. SCN 7
  1730. STD CA+1
  1731. LDC 0 SET UEM MST ADDRESS
  1732. UCPA EQU *-1
  1733. SHN 3
  1734. ADK MDGL
  1735. CRD CM+3
  1736. SBN MDGL-ACGL
  1737. CRD CM
  1738. ADK TDGL-ACGL
  1739. CRD CM+2
  1740. ADK TRLL-TDGL
  1741. CRD CN
  1742. LDD CM+3+4 SET SECTOR LIMIT
  1743. STD FS+2
  1744. LDD CM+2+2 SET TRT LENGTH
  1745. STD FS+3
  1746. LDD CN+3 SET TRT FWA
  1747. LPN 77
  1748. LMC LDCI
  1749. STM GSCA
  1750. LDD CN+4
  1751. STM GSCA+1
  1752. LCN 0
  1753. STD T8 INITIALIZE UEM FIRST TRACK
  1754. STD FS PRESET USER AREA FIRST TRACK
  1755. LDD CM+1 SET FIRST TRACK OF USER AREA
  1756. ZJN UCP3 IF NO USER AREA
  1757. LPC 3777 SET FIRST TRACK OF USER AREA
  1758. STD FS+1
  1759. ADN 1 CAUSE USER AREA FIRST TRACK TO BE WRITTEN
  1760. STD FS
  1761. LDK ECRL
  1762. CRD CN
  1763. LDD CN+1
  1764. UCPB SHN 5
  1765. * SHN 5-EMSC+UESC
  1766. STD CN+1
  1767. SHN -14
  1768. STD CN
  1769. UCP2 AOD FS+1 ADVANCE TRACK POINTER
  1770. LDC -101
  1771. RAD CN+1
  1772. PJN UCP2 IF NOT UNDERFLOW
  1773. AOD CN+1
  1774. SOD CN
  1775. PJN UCP2 IF NOT END OF CONVERSION
  1776. UCP3 LJM UCP5 TRANSFER UEM DATA TO DISK
  1777. WLA SPACE 4,15
  1778. ** WLA - WRITE LOCAL AREAS.
  1779. *
  1780. * ENTRY (T4) = CHANNEL.
  1781. * (T5) = EQUIPMENT.
  1782. * (ES - ES+4) = EST ENTRY.
  1783. * (LT) = LABEL TRACK.
  1784. *
  1785. * EXIT (A) = 0.
  1786. * (TS) = LABEL TRACK INTERLOCKED STATUS.
  1787. *
  1788. * USES T1, T2, T6, T7, CM - CM+7.
  1789. *
  1790. * CALLS ABT, CAD, ERR, GLS, STI, UMS.
  1791. *
  1792. * MACROS ENDMS, SETMS.
  1793.  
  1794.  
  1795. WLA11 LJM ABT ABORT OPERATION
  1796.  
  1797. WLA SUBR ENTRY/EXIT
  1798. LDD LT
  1799. STD T6
  1800. LDD TS
  1801. NJN WLA1 IF LABEL TRACK INTERLOCKED
  1802. RJM STI SET TRACK INTERLOCK
  1803. NJN WLA11 IF ERROR FLAG SET
  1804. AOD TS SET LABEL TRACK INTERLOCK STATUS
  1805. WLA1 LDN LMLT SET LOCAL AREA SECTOR
  1806. STD T7
  1807. RJM GLS GET LOCAL AREA SECTOR
  1808. PJN WLA4 IF NO ERROR
  1809. WLA2 ENDMS
  1810. LDC WLAE *EQXXX, LOCAL AREA SECTOR ERROR.*
  1811. WLAA EQU *-1
  1812. * LDC WLAF (*EQXXX, LOCAL AREA OVERFLOW.*)
  1813. LJM ERR ISSUE THE ERROR MESSAGE
  1814.  
  1815. * MAKE A NEW ENTRY IN THE SECTOR.
  1816.  
  1817. WLA3 LDN 2 BUMP SECTOR WORD COUNT
  1818. RAM BFMS+1
  1819. SBD HN
  1820. MJN WLA6 IF ROOM FOR A NEW ENTRY
  1821. LDC WLAF *EQXXX, LOCAL AREA OVERFLOW.*
  1822. STM WLAA
  1823. UJN WLA2 PROCESS ERROR
  1824.  
  1825. * SEARCH FOR MATCH ON MACHINE ID.
  1826.  
  1827. WLA4 LCN 2*5-1 INITIALIZE SEARCH INDEX
  1828. STD T2
  1829. LCN 2-1
  1830. STD T1
  1831. LDC MMFL GET MACHINE ID
  1832. CRD CM
  1833. WLA5 LDN 2*5 BUMP SEARCH INDEX
  1834. RAD T2
  1835. LDN 2
  1836. RAD T1
  1837. LDD T1
  1838. SBM BFMS+1 SUBTRACT SECTOR WORD COUNT
  1839. PJN WLA3 IF END OF SECTOR DATA
  1840. LDM BFMS+2,T2 COMPARE ID CODE
  1841. LMD CM
  1842. NJN WLA5 IF NO MATCH
  1843.  
  1844. * UPDATE LOCAL AREA DATA.
  1845.  
  1846. LDM BFMS+2+2,T2
  1847. NJN WLA6 IF POST LEVEL 509 ENTRY
  1848. STM BFMS+2+10,T2
  1849. WLA6 LDD T2
  1850. ADC BFMS+2+5
  1851. STM WLAC
  1852. STM WLAD
  1853. LDD CM SET MACHINE ID
  1854. STM BFMS+2,T2
  1855. LDN LMLT SET SYSTEM LEVEL IN ENTRY
  1856. STM BFMS+2+2,T2
  1857. LDD ES+4 READ DULL WORD
  1858. SHN 3
  1859. ADN DULL
  1860. CRD CM+3
  1861. ADN STLL-DULL
  1862. CRD CM
  1863. LDD CM+3 SET USER COUNT
  1864. STM BFMS+2+4,T2
  1865. LDD CM+6 SET SYSTEM TABLE TRACK
  1866. LPC 3777
  1867. * UJN *+2 (FUNCTIONS 0 AND 1)
  1868. WLAG EQU *-2
  1869. STM BFMS+2+1,T2
  1870. LDD CM+7 SET FAMILY COUNT
  1871. STM BFMS+2+3,T2
  1872. LDC 0 UEM SECTOR OFFSET
  1873. WLAH EQU *-1
  1874. STM BFMS+2+11,T2
  1875. RJM CAD CHECK ACTIVE DAYFILES
  1876. WLAB LDN 0
  1877. ZJN WLA7 IF NO DAYFILE POINTER UPDATE
  1878. SBN 1
  1879. STD T1
  1880. LDN 0 CLEAR DAYFILE POINTER
  1881. STM *,T1
  1882. WLAC EQU *-1
  1883. WLA7 STD T2
  1884. LDD T3
  1885. ZJN WLA10 IF NO ACTIVE DAYFILES ON DEVICE
  1886.  
  1887. * MOVE ACTIVE DAYFILE TRACKS TO SECTOR OF LOCAL AREAS.
  1888.  
  1889. WLA8 LDM CADA,T2
  1890. ZJN WLA9 IF DAYFILE NOT PRESENT
  1891. STM *,T2
  1892. WLAD EQU *-1
  1893. WLA9 AOD T2 ADVANCE DAYFILE INDEX
  1894. LMN EXDF
  1895. NJN WLA8 IF NOT END OF EXCESS DAYFILES
  1896. WLA10 SETMS IO,(ND,NS,RW),WBUF
  1897. LDC BFMS+WLSF REWRITE SECTOR
  1898. RJM WMS
  1899. ENDMS
  1900. * LDN 0
  1901. STM WLAH
  1902. LJM WLAX RETURN
  1903.  
  1904. WLAE DATA C*EQXXX, LOCAL AREA SECTOR ERROR.*
  1905. WLAF DATA C*EQXXX, LOCAL AREA OVERFLOW.*
  1906. WST SPACE 4,20
  1907. ** WST - WRITE SYSTEM TABLES.
  1908. *
  1909. * ENTRY (T5) = EST ORDINAL.
  1910. * (ES - ES+4) = EST ENTRY.
  1911. * (ST) = CHECKPOINT FILE FIRST TRACK.
  1912. * (LT) = LABEL TRACK.
  1913. * (FS - FS+4) = STLL WORD.
  1914. *
  1915. * USES T6, CA - CA+4, CM - CM+4, CN - CN+4.
  1916. *
  1917. * CALLS FTB, WSS, WTB.
  1918. *
  1919. * MACROS CFI, ENDMS, MONITOR, SETMS.
  1920.  
  1921.  
  1922. WST SUBR ENTRY/EXIT
  1923. LDD ST
  1924. STD T6
  1925. LDD ES+4 GET TRT ADDRESS
  1926. SHN 3
  1927. ADK TRLL
  1928. CRD CM
  1929. LDD CM+3 SET TRT ADDRESS FOR *FDB*
  1930. LPN 77
  1931. SHN 14
  1932. LMD CM+4
  1933. SBD TH COMPENSATE FOR UPPER BIT OF TRACK
  1934. STM FTBA+1
  1935. STM SRAA+1
  1936. SHN -14
  1937. LMC ADCI
  1938. STM FTBA
  1939. STM SRAA
  1940. RJM FTB FILL TRACK BUFFER
  1941. SETMS IO,(ND,NS),WBUF
  1942. LDD MA ENTER NAME
  1943. CWM WSTB,ON
  1944. SBN 1
  1945. CRM FNSS,ON
  1946. RJM WSS WRITE SYSTEM SECTOR
  1947. LDN 0 WRITE POINTER AREA
  1948. STD CA
  1949. STD CA+1
  1950. LDC BQRL
  1951. RJM WTB
  1952.  
  1953. * WRITE EQUIPMENT STATUS TABLE.
  1954.  
  1955. LDN ESTP SET EST ADDRESS
  1956. CRD CA
  1957. CFI EST,EC,EC SET EST LENGTH
  1958. RJM WTB WRITE TABLE
  1959.  
  1960. * WRITE CHANNEL INTERLOCK TABLES.
  1961.  
  1962. LDC CHTP SET CHANNEL TABLE ADDRESS
  1963. CRD CM
  1964. LDD CM+2
  1965. STD CA
  1966. LDD CM+3
  1967. STD CA+1
  1968. LDN CTALL*2 TABLE LENGTH
  1969. RJM WTB WRITE TABLE
  1970.  
  1971. * WRITE EVENT TABLE.
  1972.  
  1973. LDK EVTP FETCH EVENT TABLE POINTER
  1974. CRD CM
  1975. LDD CM SET TABLE ADDRESS
  1976. STD CA
  1977. LDD CM+1
  1978. STD CA+1
  1979. LDN EVTLL WRITE EVENT TABLE
  1980. RJM WTB
  1981.  
  1982. * WRITE SUBSYSTEM CONTROL TABLES.
  1983.  
  1984. LDC SSCP FETCH SUBSYSTEM CONTROL TABLE POINTER
  1985. CRD CM
  1986. LDD CM+2 SET ADDRESS OF TABLES
  1987. STD CA
  1988. LDD CM+3
  1989. STD CA+1
  1990. LDN SSCTL*2 WRITE SSCT AND SSAT
  1991. RJM WTB
  1992.  
  1993. * WRITE SERVICE CLASS AND JOB CONTROL TABLES.
  1994.  
  1995. LDK JBCP FETCH CONTROL TABLE POINTER
  1996. CRD CA
  1997. LDK JCBE*/SCD/MXJC WRITE CONTROL TABLES
  1998. RJM WTB
  1999.  
  2000. * WRITE SABB TABLE.
  2001.  
  2002. LDK SABL
  2003. CRD CA
  2004. LDD CA+2
  2005. RJM WTB
  2006.  
  2007. * WRITE STATISTICAL DATA AREA.
  2008.  
  2009. LDC SDAP SET STATISTICAL AREA ADDRESS
  2010. CRD CA
  2011. LDN SDAL WRITE STATISTICAL DATA AREA
  2012. RJM WTB
  2013.  
  2014. * WRITE MANAGED TABLES.
  2015.  
  2016. LDN QFTP FETCH QFT POINTER
  2017. CRD CA
  2018. CFI QFT,EC,EC SET QFT LENGTH
  2019. STD CN+1
  2020. SHN -14
  2021. STD CN
  2022. LDC CLTP READ CLT POINTER
  2023. CRD CM
  2024. CFI CLT,CM+2 APPEND COMMON LIBRARIES TABLE LENGTH
  2025. RAD CN+1
  2026. SHN -14
  2027. RAD CN
  2028. LDC LIDP FETCH LID TABLE POINTER
  2029. CRD CM
  2030. LDD CM+2 APPEND LID TABLE LENGTH
  2031. RAD CN+1
  2032. SHN -14
  2033. RAD CN
  2034. LDN EJTP FETCH EJT POINTER
  2035. CRD CA
  2036. CFI EJT,EC,EC APPEND EJT LENGTH
  2037. RAD CN+1
  2038. SHN -14
  2039. RAD CN
  2040. LDN FNTP FETCH FNT POINTER
  2041. CRD CM
  2042. ADN FOTP-FNTP READ FOT POINTER
  2043. CRD CA
  2044. CFI FNT,CM+2,CM+2 ADD FNT LENGTH
  2045. SHN 6
  2046. ADD CN
  2047. SHN 14
  2048. ADD CN+1
  2049. ADD EC ADD FOT LENGTH
  2050. RJM WTB
  2051.  
  2052. * WRITE LIBRARIES AND DIRECTORIES.
  2053.  
  2054. LDC RPLP FETCH RPL POINTER
  2055. CRD CA
  2056. LDN CMRL READ CMR LENGTH
  2057. CRD CM
  2058. LDD CM+4
  2059. SHN 14
  2060. SBD CA
  2061. SHN 14
  2062. SBD CA+1
  2063. RJM WTB
  2064.  
  2065. * WRITE BUFFERED DEVICE POINTER TABLE.
  2066.  
  2067. LDC BIOL FETCH BUFFERED I/O STATUS
  2068. CRD CM
  2069. LDD CM+1 SET ADDRESS OF TABLES
  2070. STD CA
  2071. SHN 14
  2072. LMD CM+2
  2073. STD CA+1
  2074. ZJN WST1 IF NO BUFFERED I/O
  2075. LDN BDTL
  2076. RJM WTB WRITE TABLE
  2077. WST1 ENDMS
  2078. LDD T5 SET EQUIPMENT
  2079. STD CM+1
  2080. LDD ST SET SYSTEM TABLE TRACK
  2081. STD CM+2
  2082. LDN USTS UPDATE SYSTEM TABLE TRACK
  2083. STD CM+3
  2084. MONITOR SMDM
  2085. WSTA UJN WST2 AVOID UEM CHECKPOINT
  2086. * LDD ST (UEM PRESENT AND FUNCTION 0 OR 1)
  2087. RJM SRA COMPUTE UEM SECTOR OFFSET
  2088. LDD RI+1
  2089. STM WLAH
  2090. RJM UCP WRITE UEM TO CHECKPOINT FILE
  2091. WST2 RJM WEI WRITE EOI
  2092. ENDMS
  2093. RJM WLA WRITE SECTOR OF LOCAL AREAS
  2094. LJM WSTX RETURN
  2095.  
  2096.  
  2097. WSTB VFD 42/0LSYSTAB,6/1,6/SYFT,6/0
  2098. SPACE 4,10
  2099. ** COMMON DECKS.
  2100.  
  2101.  
  2102. IFP$ EQU 1 ASSEMBLE *COMPGFP* INITIALIZATION REMOTELY
  2103. EJT$ EQU 1 ASSEMBLE EJT ACCESS ROUTINE
  2104. *CALL COMPGFP
  2105. *CALL COMPSRA
  2106. *CALL COMPSUD
  2107. SPACE 4
  2108. * BUFFER ASSIGNMENTS.
  2109.  
  2110.  
  2111. USE LITERALS
  2112. QUAL
  2113. BUF BSS 0
  2114. WBUF EQU BUF+502 WRITE ERROR PROCESSING BUFFER
  2115. ERRNG BFMS-WBUF-502 BUFFER OVERFLOW
  2116. TBUF EQU WBUF+502 TRACK BUFFER
  2117. TBUFL EQU BFMS-TBUF TRACK BUFFER LENGTH
  2118. ERRNG TBUFL-20 INADEQUATE TRACK BUFFER
  2119. OVL0 EQU BUF+1 ZERO LEVEL OVERLAY LOAD ADDRESS
  2120. QUAL *
  2121. 3CK TITLE OVERLAYED SUBROUTINES.
  2122. ASW SPACE 4,15
  2123. ** ASW - ABORT SUBSYSTEMS WHERE JOB SCHEDULING IS REQUIRED FOR
  2124. * CLEANUP OF CONNECTED JOBS.
  2125. *
  2126. * ENTRY (NC) = NUMBER OF CONTROL POINTS.
  2127. *
  2128. * EXIT (A) = 0.
  2129. *
  2130. * USES T1, T7, CM - CM+4, ES - ES+4.
  2131. *
  2132. * CALLS CCP, CET, CSC, DEL, DFM, FJO.
  2133. *
  2134. * MACROS MONITOR.
  2135.  
  2136.  
  2137. ASW5 LDN ASWX-ASW5
  2138. RAM ASWD
  2139. LDM ASWF
  2140. STM ASWE
  2141. LDK RTCL GET STARTING TIME
  2142. CRD ES
  2143. UJN ASW1 SCAN CONTROL POINTS
  2144.  
  2145. ASW6 RJM CSC CHANGE TO SYSTEM CP
  2146. RJM DEL DELAY FOR 50 MS
  2147. ASW7 RJM CET COMPUTE ELAPSED TIME
  2148. MJN ASW1 IF NOT TIMEOUT
  2149.  
  2150. ASW SUBR ENTRY/EXIT
  2151. ASW1 LDN 0 INITIALIZE CP NUMBER
  2152. STD T7
  2153. ASW2 RJM FJO FIND JOB
  2154. ZJN ASW5 IF SCAN COMPLETE
  2155. * ZJN ASWX (AFTER FIRST CP SCAN)
  2156. ASWD EQU *-1
  2157. LCN 1
  2158. STD T1
  2159. ASW3 LDN 2
  2160. RAD T1
  2161. LDM ASWB,T1
  2162. ZJN ASW2 IF END OF LIST
  2163. LMD CN+2
  2164. NJN ASW3 IF NOT SELECTED SUBSYSTEM
  2165. RJM CCP CHANGE CONTROL POINT ASSIGNMENT
  2166. ZJN ASW2 IF JOB GONE
  2167. LDM ASWB+1,T1
  2168. * UJN ASW6 (AFTER FIRST CP SCAN)
  2169. ASWE EQU *-2
  2170. ZJN ASW4 IF NO SENSE SWITCHES TO CHANGE
  2171. SCN 77
  2172. STM ASWA SET SWITCH MASK
  2173. LDM ASWB+1,T1
  2174. SHN 6
  2175. STM ASWB+1,T1 ISOLATE SWITCHES TO SET
  2176. LDD T7 SET SENSE SWITCHES
  2177. SHN 7
  2178. ADN SNSW
  2179. CRD CM
  2180. LDD CM+4
  2181. LPC ** PRESERVE SELECTED SWITCHES
  2182. ASWA EQU *-1
  2183. LMM ASWB+1,T1 SET SELECTED SWITHES
  2184. STD CM+4
  2185. LDD T7
  2186. SHN 7
  2187. ADN SNSW
  2188. CWD CM
  2189. ASW4 LDN ODET ABORT SUBSYSTEM
  2190. STD CM+1
  2191. MONITOR CEFM
  2192. LDC ASWC * SYSTEM CHECKPOINT ABORT.*
  2193. RJM DFM
  2194. RJM CSC CHANGE TO SYSTEM CP
  2195. LJM ASW2 FIND NEXT JOB
  2196.  
  2197. ** TABLE OF SENSE SWITCHES TO CLEAR/SET ON SUBSYSTEMS.
  2198. *
  2199. *T ASWB 12/ ID, 6/ MSK, 6/ SET
  2200. *
  2201. * ID = SUBSYSTEM ID.
  2202. * MSK = SENSE SWITCH MASK - SEE NOTE.
  2203. * SET = SENSE SWITCHES TO SET.
  2204. *
  2205. * NOTE - *MSK* MUST INCLUDE SWITCHES WHICH WILL BE SET AS WELL
  2206. * AS SWITCHES TO BE CLEARED. OTHERWISE, *SET* WILL CAUSE
  2207. * SWITCHES TO BE TOGGLED.
  2208.  
  2209. ASWB BSS 0
  2210. VFD 12/IFSI IAF
  2211. VFD 6/56 CLEAR SWITCHES 5 AND 1
  2212. VFD 6/1 SET SWITCH 1
  2213. CON 0 END OF LIST
  2214.  
  2215. ASWC DATA C* SYSTEM CHECKPOINT ABORT.*
  2216.  
  2217. ASWF BSS 0
  2218. LOC ASWE
  2219. UJN ASW6 CONTINUE
  2220. LOC *O
  2221. CCA SPACE 4,10
  2222. ** CCA - COMPUTE CPA/PCPA ADDRESS.
  2223. *
  2224. * ENTRY (A) = CP/PCP NUMBER.
  2225. * (NC) = NUMBER OF CONTROL POINTS.
  2226. *
  2227. * EXIT (A) = CPA/PCPA ADDRESS.
  2228.  
  2229.  
  2230. CCA1 ADD NC
  2231. SHN 7
  2232.  
  2233. CCA SUBR ENTRY/EXIT
  2234. SBD NC
  2235. MJN CCA1 IF CONTROL POINT
  2236. ZJN CCA1 IF SYSTEM CONTROL POINT
  2237. SHN 7
  2238. CCAA ADC ** (PCP AREAS BASE ADDRESS)
  2239. UJN CCAX RETURN
  2240. CCP SPACE 4,10
  2241. ** CCP - CHANGE CONTROL POINT ASSIGNMENT.
  2242. *
  2243. * ENTRY (T7) = CONTROL POINT NUMBER.
  2244. *
  2245. * EXIT (A) = EJT ORDINAL IF CHANGE MADE.
  2246. * = 0 IF JOB GONE.
  2247. *
  2248. * USES CM - CM+4, CN - CN+4.
  2249. *
  2250. * CALLS DEL.
  2251. *
  2252. * MACROS MONITOR.
  2253.  
  2254.  
  2255. CCP2 LDD CN
  2256.  
  2257. CCP SUBR ENTRY/EXIT
  2258. CCP1 LDD T7
  2259. STD CM+1
  2260. MONITOR CCAM
  2261. LDD T7
  2262. SHN 7
  2263. ADK TFSW
  2264. CRD CN
  2265. LDD CN
  2266. ZJN CCPX IF JOB GONE
  2267. LDD CM+1
  2268. ZJN CCP2 IF CHANGE MADE
  2269. RJM DEL DELAY FOR 5O MS
  2270. UJN CCP1 RETRY
  2271. CCS SPACE 4,20
  2272. ** CCS - COMPUTE CHECKPOINT FILE SIZE.
  2273. *
  2274. * COMPUTE CHECKPOINT FILE SIZE BASED ON THE
  2275. * FOLLOWING FORMULA -
  2276. *
  2277. * SECTORS = (CMR + TOTAL UEM - USER UEM
  2278. * + 1/2 (RPL + RCL + PLD))/100B
  2279. *
  2280. * ERROR TO *DPP* IF CHECKPOINT FILE TOO LARGE.
  2281. *
  2282. * USES T8, T9, CM - CM+4, CN - CN+4, ES - ES+4, T0 - T0+4.
  2283. *
  2284. * CALLS DFM.
  2285.  
  2286.  
  2287. CCS SUBR ENTRY/EXIT
  2288. LDK RPLP GET RPL FWA
  2289. CRD CM
  2290. ADK PSTP-RPLP GET LWA+1 OF PLD
  2291. CRD CN
  2292. LDD CN+2 COMPUTE 1/2 * (RPL + RCL + PLD)/100B
  2293. SBD CM
  2294. SHN 14
  2295. ADD CN+3
  2296. SBD CM+1
  2297. SHN -6-1 1/2 * (RPL + RCL + PLD)/100B
  2298. STD T9
  2299. SHN -14
  2300. STD T8
  2301.  
  2302. * ADD (TOTAL UEM - USER UEM)/100B.
  2303.  
  2304. LDM UCPA MST ADDRESS FOR UEM
  2305. ZJN CCS1 IF NO EST ENTRY FOR UEM
  2306. SHN 3 GET TOTAL UEM SIZE
  2307. ADK TDGL
  2308. CRD ES
  2309. LDK ECRL GET USER UEM SIZE
  2310. CRD T0
  2311. AOD ES UEM TRACKS
  2312. SHN 6
  2313. ADD ES TRACKS * 101
  2314. CCSB ADN ** ROUND UP
  2315. * ADN 3 (TRACK SHIFT COUNT = 0)
  2316. * ADN 1 (TRACK SHIFT COUNT = 1)
  2317. * ADN 0 (TRACK SHIFT COUNT .GE. 2)
  2318. CCSC SHN ** TOTAL NUMBER OF SECTORS IN UEM
  2319. * SHN EMSC-2
  2320. CCSD SHN **-3+22 CONVERT TO *USER EM* SIZED BLOCKS
  2321. * SHN -UESC-3+22
  2322. SBD T0+1 SUBTRACT NUMBER OF *USER EM* BLOCKS
  2323. CCSE SHN **+3 CONVERT TO SECTORS
  2324. * SHN UESC+3
  2325. RAD T9
  2326. SHN -14
  2327. RAD T8
  2328.  
  2329. * ADD CMR SIZE/100B.
  2330.  
  2331. CCS1 LDK CMRL
  2332. CRD CM
  2333. LDD CM+4
  2334. RAD T9
  2335. STM ACFA
  2336. SHN -14
  2337. RAD T8
  2338. SCN 77
  2339. ZJN CCS2 IF SECTOR COUNT NOT TOO LARGE
  2340. LDC ABTB * CHECKPOINT ABORTED.*
  2341. RJM DFM
  2342. LJM DPP DROP PP
  2343.  
  2344. CCS2 LDD T8 SET HIGH BYTE OF SECTOR COUNT
  2345. RAM ACFA-1
  2346. LJM CCSX RETURN
  2347. CET SPACE 4,10
  2348. ** CET - COMPUTE ELAPSED TIME.
  2349. *
  2350. * ENTRY (ES - ES+4) = *RTCL*.
  2351. *
  2352. * EXIT (A) .GE. 0 IF TIMEOUT.
  2353. *
  2354. * USES CM - CM+4.
  2355.  
  2356.  
  2357. CET SUBR ENTRY/EXIT
  2358. LDK RTCL
  2359. CRD CM
  2360. LDD CM+1
  2361. SBD ES+1
  2362. PJN CET1 IF NO ROLLOVER
  2363. ADC 10000
  2364. CET1 SBK MXTT
  2365. UJN CETX RETURN
  2366. CSC SPACE 4,10
  2367. ** CSC - CHANGE TO SYSTEM CONTROL POINT.
  2368. *
  2369. * ENTRY (NC) = SYSTEM CONTROL POINT NUMBER.
  2370. *
  2371. * EXIT (A) = 0.
  2372. *
  2373. * USES CM+1.
  2374. *
  2375. * MACROS MONITOR.
  2376.  
  2377.  
  2378. CSC SUBR ENTRY/EXIT
  2379. LDD NC
  2380. STD CM+1
  2381. MONITOR CCAM
  2382. UJN CSCX RETURN
  2383. CSS SPACE 4,10
  2384. ** CSS - CHECK FOR SPECIAL SUBSYSTEM.
  2385. *
  2386. * ENTRY (CN+2) = BYTE 2 OF WORD *JCIW*.
  2387. *
  2388. * EXIT (A) .NE. 0 IF SPECIAL SUBSYSTEM.
  2389. * .EQ. 0 OTHERWISE.
  2390. *
  2391. * USES T1.
  2392.  
  2393.  
  2394. CSS SUBR ENTRY/EXIT
  2395. LCN 1
  2396. STD T1
  2397. CSS1 AOD T1 INCREMENT INDEX
  2398. LDM CSSA,T1
  2399. ZJN CSSX IF END OF SPECIAL SUBSYSTEMS
  2400. LMD CN+2
  2401. NJN CSS1 IF NOT THIS SPECIAL SUBSYSTEM
  2402. LDN 1
  2403. UJN CSSX RETURN WITH SPECIAL SUBSYSTEM
  2404.  
  2405. CSSA BSS 0
  2406. LIST D
  2407. .SUB HERE
  2408. LIST *
  2409. CON 0 END OF TABLE
  2410. DEL SPACE 4,10
  2411. ** DEL - DELAY.
  2412.  
  2413.  
  2414. DEL SUBR ENTRY/EXIT
  2415. DELAY 64D*8D DELAY 64 MILLISECONDS
  2416. UJN DELX RETURN
  2417. DRJ SPACE 4,15
  2418. ** DRJ - DISPOSE OF REMAINING JOBS.
  2419. *
  2420. * THIS ROUTINE ABORTS JOBS STILL AT CONTROL POINT THAT ARE
  2421. * NOT IN THE PROCESS OF ROLLING. ONLY THOSE SUBSYSTEMS THAT
  2422. * MAY BE NEEDED FOR JOB TERMINATION ARE LEFT UNAFFECTED.
  2423. *
  2424. * ENTRY (A) = 0.
  2425. *
  2426. * USES T7, CM - CM+7.
  2427. *
  2428. * CALLS CSS, DFM, FJO.
  2429. *
  2430. * MACROS MONITOR, SFA.
  2431.  
  2432.  
  2433. DRJ SUBR ENTRY/EXIT
  2434. * LDN 0
  2435. STD T7
  2436. DRJ1 RJM FJO FIND JOB
  2437. ZJN DRJX IF NO MORE JOBS
  2438. RJM CSS CHECK FOR SPECIAL SUBSYSTEM
  2439. NJN DRJ1 IF SPECIAL SUBSYSTEM
  2440. LDC 4000+SSET ABORT JOB
  2441. STD CM+1
  2442. LDD CA STORE EJT ORDINAL IN *CEFM* REQUEST
  2443. STD CM+2
  2444. SFA EJT STORE JSN IN *CEFM* REQUEST
  2445. ADK JSNE
  2446. CRD CM+3
  2447. MONITOR CEFM
  2448. UJN DRJ1 CHECK NEXT JOB
  2449. FJO SPACE 4,20
  2450. ** FJO - FIND JOB.
  2451. *
  2452. * THIS ROUTINE LOOKS FOR JOBS ASSIGNED TO CONTROL POINTS OR
  2453. * PSEUDO-CONTROL POINTS. IT WILL RETURN TO THE CALLER ONLY
  2454. * UPON FINDING AN ACTIVE CP/PCP OR REACHING THE END OF ITS
  2455. * SCAN.
  2456. *
  2457. * ENTRY (T7) = STARTING CP/PCP NUMBER - 1.
  2458. *
  2459. * EXIT (A) .NE. 0 IF ACTIVE CP/PCP FOUND.
  2460. * = 0 IF END OF SCAN REACHED AND NO ACTIVE CP/PCP
  2461. * FOUND.
  2462. * (NC) = NUMBER OF CONTROL POINTS.
  2463. * (T7) = CP/PCP NUMBER IF ACTIVE ONE FOUND.
  2464. * (CA - CA+4) = WORD *TFSW* OF CPA/PCPA.
  2465. * (CN - CN+4) = WORD *JCIW* OF CPA/PCPA.
  2466. * (FS - FS+4) = WORD *STSW* OF CPA/PCPA.
  2467. *
  2468. * USES T7, CA - CA+4, CN - CN+4, FS - FS+4.
  2469. *
  2470. * CALLS CCA.
  2471.  
  2472.  
  2473. FJO SUBR ENTRY/EXIT
  2474. FJO1 AOD T7 ADVANCE CP/PCP NUMBER
  2475. LMD NC
  2476. ZJN FJO1 IF SYSTEM CONTROL POINT
  2477. LMD NC
  2478. LMC **
  2479. FJOB EQU *-1 (SCAN LIMIT)
  2480. ZJN FJOX IF END OF SCAN
  2481. FJO2 LDD T7 SET CP/PCP ADDRESS
  2482. RJM CCA
  2483. ADK STSW
  2484. CRD FS
  2485. ADN JCIW-STSW
  2486. CRD CN
  2487. ADN TFSW-JCIW
  2488. CRD CA
  2489. LDD CA
  2490. ZJN FJO1 IF NO JOB
  2491. LDD FS+1
  2492. LMK PEET
  2493. ZJN FJO1 IF CM PARITY ERROR
  2494. LDN 0
  2495. * LDN 1 (WAIT MODE)
  2496. FJOA EQU *-1
  2497. NJN FJOX IF WAIT MODE
  2498. LDD FS+1
  2499. LMN SSET
  2500. ZJN FJO1 IF *SSET* ALREADY SET
  2501. LDD FS+2
  2502. LPN 1
  2503. NJN FJO1 IF ROLLOUT REQUESTED
  2504. LDN 1 INDICATE ACTIVE CP/PCP FOUND
  2505. UJP FJOX RETURN
  2506. ROJ SPACE 4,15
  2507. ** ROJ - ROLLOUT NON-SUBSYSTEM JOBS.
  2508. *
  2509. * ENTRY (A) = 0.
  2510. *
  2511. * EXIT (A) = 0.
  2512. *
  2513. * USES T1, T7, CM+1, CM+2.
  2514. *
  2515. * CALLS DEL, FJO.
  2516. *
  2517. * MACROS MONITOR.
  2518.  
  2519.  
  2520. ROJ SUBR ENTRY/EXIT
  2521. * LDN 0
  2522. STD T7
  2523. ROJ1 RJM FJO FIND JOB
  2524. ZJN ROJX IF END OF SCAN
  2525. LDD CN+2
  2526. SBK LSSI+1
  2527. PJN ROJ1 IF NOT TO BE ROLLED
  2528. LDN 10D SET *ROCM* RETRY COUNT
  2529. STD T1
  2530. ROJ2 LDC ROSR+4000 SELECT JOB SCHEDULER, ALTERNATE CP/PCP
  2531. STD CM+1
  2532. LDD T7 SET CP/PCP NUMBER
  2533. STD CM+2
  2534. MONITOR ROCM
  2535. LDD CM+1
  2536. ZJN ROJ1 IF *ROCM* ACCEPTED
  2537. SOD T1
  2538. MJN ROJ1 IF RETRY LIMIT REACHED
  2539. RJM DEL DELAY 50 MS
  2540. UJN ROJ2 RETRY
  2541. WFJ SPACE 4,20
  2542. ** WFJ - WAIT FOR JOBS TO ROLLOUT OR TERMINATE.
  2543. *
  2544. * THIS ROUTINE ALLOWS ALL JOBS *MXTT*
  2545. * SECONDS TO TERMINATE. ANY JOB STILL AT A
  2546. * CONTROL POINT AND NOT ROLLING AFTER *MXTT*
  2547. * SECONDS HAVE ELAPSED WILL BE ROLLED. THIS
  2548. * ROUTINE WILL NOT BE EXITED UNTIL ALL
  2549. * CONTROL POINTS ARE CLEAR (JOBS WITH
  2550. * *PEET* ERROR FLAG SET MAY BE LEFT AT CONTROL
  2551. * POINT).
  2552. *
  2553. * EXIT (A) = 0.
  2554. *
  2555. * USES T7, CM - CM+4, ES - ES+4.
  2556. *
  2557. * CALLS CET, CSS, DEL, FJO.
  2558. *
  2559. * MACROS DELAY, MONITOR.
  2560.  
  2561.  
  2562. WFJ SUBR ENTRY/EXIT
  2563. LDK RTCL SET TIMEOUT
  2564. CRD ES
  2565. AOM FJOA INDICATE WAIT MODE
  2566. WFJ1 LDN 0
  2567. STD T7
  2568. WFJ2 RJM FJO FIND JOB
  2569. NJN WFJ3 IF JOB FOUND
  2570. UJN WFJX RETURN
  2571. * UJN *+1 (TIMEOUT)
  2572. WFJA EQU *-1
  2573. ERRPL WFJ6-WFJB-40 RANGE ERROR
  2574. LDC UJNI+WFJ6-WFJB
  2575. STM WFJB
  2576. LDN 77-WFJA+WFJX-1
  2577. ERRNG 40-WFJA+WFJX RANGE ERROR
  2578. RAM WFJA
  2579. UJN WFJ1 WAIT FOR CLEAR CONTROL POINTS
  2580.  
  2581. WFJ3 RJM CSS CHECK FOR SELECTED SUBSYSTEM
  2582. * UJN WFJ6 (TIMEOUT/ONLY SELECTED SUBSYSTEMS REMAIN)
  2583. WFJB EQU *-2
  2584. ZJN WFJ4 IF NOT SELECTED SUBSYSTEM
  2585. LDC UJNI+1
  2586. STM WFJA
  2587. UJN WFJ2 CHECK NEXT JOB
  2588.  
  2589. * CALCULATE ELAPSED TIME.
  2590.  
  2591. WFJ4 RJM CET COMPUTE ELAPSED TIME
  2592. MJN WFJ7 IF NOT TIMEOUT YET
  2593. LDC UJNI+1
  2594. STM WFJA
  2595. WFJ6 LDD FS+2
  2596. LPN 1
  2597. ADD FS+1
  2598. NJN WFJ7 IF ROLLOUT REQUESTED OR ERROR FLAG SET
  2599. LDC ROSR+4000 SELECT SCHEDULER ROLLOUT, ALTERNATE CP/PCP
  2600. STD CM+1
  2601. LDD T7 SET CP/PCP NUMBER
  2602. STD CM+2
  2603. MONITOR ROCM
  2604. WFJ7 RJM DEL DELAY 50 MS
  2605. LJM WFJ1 FIND JOB
  2606. TITLE PRESET.
  2607. PRS SPACE 4,10
  2608. ** PRS - PRESET.
  2609. *
  2610. * USES T1, T2, CM - CM+4, ES - ES+4, T3 - T3+4.
  2611. *
  2612. * CALLS IFP.
  2613. *
  2614. * MACROS SFA.
  2615.  
  2616.  
  2617. PRS SUBR ENTRY/EXIT
  2618. RJM IFP INITIALIZE *COMPGFP*
  2619. LDK PCPP SET FWA OF PCPA-S
  2620. CRD CM
  2621. LDD CM+3
  2622. SHN 14
  2623. LMD CM+4
  2624. SBK 200B
  2625. STM CCAA+1
  2626. SHN -14
  2627. RAM CCAA
  2628. LDD CM+2
  2629. ERRNZ MCTP-PCPP CODE DEPENDS ON VALUE
  2630. STM FJOB STORE TOTAL OF CP-S + PCP-S + 2
  2631. ISTORE SMDA,(UJN SMD4) CHECKPOINT REQUESTED FLAG IMMATERIAL
  2632. ISTORE SMDB,(UJN SMD6) SKIP UTILITY INTERLOCK
  2633. LDD NC SET CONTROL POINT NUMBER IN *1MB* CALL
  2634. RAM SCKE+1
  2635. LDD IR+3 SET *1MB* FUNCTION CODE
  2636. STM SCKE+2
  2637. LDK MEFL GET TRACK SHIFT COUNT AND USER EM SHIFT
  2638. CRD CM
  2639. LDD CM+2 TRACK SHIFT COUNT (EMSC)
  2640. SHN -5
  2641. LPN 3
  2642. STD T1
  2643. RAM CUAB
  2644. LDD T1
  2645. RAM CUAA
  2646. LDD T1
  2647. SBN 2 SET ROUND UP
  2648. PJN PRS1 IF NO ROUND UP NEEDED
  2649. STD T0
  2650. SHN 1
  2651. LPN 3 3 IF EMSC=0, 1 IF EMSC=1
  2652. RAM CCSB
  2653. LDD T0
  2654. LPN 77
  2655. PRS1 RAM CCSC
  2656. LDD CM+2 USER SHIFT COUNT (UESC)
  2657. SHN -11
  2658. STD T2
  2659. SBD T1
  2660. RAM UCPB
  2661. LDD T2
  2662. RAM CCSE
  2663. LDN 0
  2664. SBD T2
  2665. RAM CCSD
  2666. LDD IR+2 CHECK FUNCTION CODE
  2667. SBN 2
  2668. MJN PRS3 IF FUNCTION 0 OR 1
  2669. SBN 10-2
  2670. ZJN PRS2 IF FUNCTION 10
  2671. SBN 13-10
  2672. NJP PRSX IF NOT FUNCTION 13
  2673. PRS2 LDC SCK8 SET EXIT PROCESSING ADDRESS
  2674. STM DPPA
  2675. PRS3 LDC UJNI+2 ENABLE SETTING *VALID CHECKPOINT FILE*
  2676. STM WLAG
  2677. LDN ESTP SEARCH FOR UEM EQUIPMENT
  2678. CRD T3
  2679. LDN NOPE-1
  2680. STD T5
  2681. PRS4 AOD T5
  2682. LMD T6
  2683. ZJN PRS5 IF NO UEM EQUIPMENT
  2684. SFA EST,T5
  2685. ADK EQDE
  2686. CRD ES
  2687. LDD ES
  2688. SHN 21-13
  2689. PJN PRS4 IF NOT MASS STORAGE
  2690. LDD ES+4 CHECK MEMORY TYPE
  2691. SHN 3
  2692. ADN DILL
  2693. CRD CM
  2694. LDD CM+3
  2695. SHN -6
  2696. LPN 7
  2697. LMN 4
  2698. NJN PRS4 IF NOT UEM MEMORY TYPE
  2699. LDC LDDI+ST ENABLE UEM CHECKPOINT
  2700. STM WSTA
  2701. LDD ES+4 SET UEM MST ADDRESS
  2702. STM UCPA
  2703. PRS5 LJM PRSX RETURN
  2704. SPACE 4,10
  2705. IFP HERE REMOTE *IFP* ASSEMBLY
  2706. SPACE 4,10
  2707. * OVERFLOW CHECKS.
  2708.  
  2709.  
  2710. ERRNG EPFW-OVL0-ZTDL *0TD* OVERFLOW
  2711. ERRNG EPFW-OVL0-ZSDL *0SD* OVERFLOW
  2712.  
  2713.  
  2714. OVERFLOW OVLA,EPFW
  2715. TTL 1CK/3CL - ADDITIONAL CHECKPOINT FUNCTIONS.
  2716. TITLE
  2717. QUAL 3CL
  2718. IDENT 3CL,OVLA
  2719. *COMMENT 1CK - ADDITIONAL CHECKPOINT FUNCTIONS.
  2720. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1995.
  2721. SPACE 4,10
  2722. *** 3CL - ADDITIONAL CHECKPOINT FUNCTIONS.
  2723. SPACE 4,10
  2724. ORG OVLA
  2725. SPACE 4,10
  2726. ENT SUBR ENTRY
  2727. LJM 0,PA PROCESS SELECTED FUNCTION
  2728. TITLE MAIN ROUTINES.
  2729. IDC SPACE 4,10
  2730. ** FUNCTION 5.
  2731. * INITIALIZED DEVICE CHECKPOINT.
  2732. *
  2733. * ENTRY (IR+3) = EST ORDINAL.
  2734. * (IR+4) = PREVIOUS ACCESS STATUS (MMF).
  2735.  
  2736.  
  2737. IDC BSS 0 ENTRY
  2738. RJM SDP SET DEVICE PARAMETERS
  2739. NJP DPP IF DEVICE IS INACCESSIBLE
  2740. RJM WTT WRITE TRT
  2741. SETMS IO,(ND,NS),WBUF
  2742. RJM WLS WRITE LABEL SECTORS
  2743. RJM IDI INITIALIZE DEVICE INFORMATION SECTOR
  2744. RJM FIB FLUSH I/O BUFFERS
  2745. RJM CIL CLEAR INTERLOCKS
  2746. CMSTF LIPF CLEAR PF INITIALIZATION FLAG
  2747. CMSTF LIAL CLEAR FULL INITIALIZE FLAG
  2748. CMSTF LIHD CLEAR HALF TRACK INITIALIZE FLAG
  2749. CMSTF LIFD CLEAR FULL TRACK INITIALIZE FLAG
  2750. RJM SDA SET DEVICE AVAILABLE
  2751. LDD ES+4 READ FAMILY NAME
  2752. SHN 3
  2753. ADN PFGL
  2754. CRD CA
  2755. ADN MDGL-PFGL GET PF STATUS OF DEVICE
  2756. CRD CM
  2757. LDD CM
  2758. LPC 2000
  2759. NJN IDC1 IF AUXILIARY DEVICE
  2760. RJM GFO ENTER FAMILY NAME IN FOT
  2761. SCN 1
  2762. ZJN IDC1 IF ENTRY FOUND/CREATED
  2763. LDN STFF SET ERROR FLAG = *FOT FULL*
  2764. RJM SES
  2765. IDC1 LDC MMFL READ MMF STATUS WORD
  2766. CRD CN
  2767. SOD CN+2 DECREMENT INITIALIZED DEVICE COUNT
  2768. MJN IDC3 IF NOT MMF SYSTEM
  2769. LMC 4000
  2770. NJN IDC2 IF NOT END OF DEVICE INITIALIZATION
  2771. STD CN+2
  2772. LCN DATI CLEAR FLAG REGISTER INTERLOCK
  2773. RJM IFR
  2774. IDC2 LDC MMFL STORE MMF STATUS WORD
  2775. CWD CN
  2776. LDD IR+4
  2777. ZJN IDC3 IF NO PREVIOUS ACCESS IN DAT
  2778. LDD ES CHECK DEVICE STATUS
  2779. SHN 21-11
  2780. PJN IDC4 IF NON-SHARED DEVICE
  2781. LDD ES+4 READ MST ACTIVITY WORD
  2782. SHN 3
  2783. ADN SDGL
  2784. CRD CM
  2785. LDD CM CHECK ECS POINTER
  2786. ADD CM+1
  2787. IDC3 NJN IDC4 IF MST/TRT ECS RESIDENT
  2788. LDD IR+3
  2789. STD CM+1
  2790. LDN SB0S
  2791. STD CM+2
  2792. LDD HN SET DEVICE UNAVAILABLE
  2793. STD CM+4
  2794. LMC -0
  2795. STD CM+3
  2796. MONITOR SEQM
  2797. IDC4 LJM DPP DROP PP
  2798. RAC SPACE 4,10
  2799. ** FUNCTIONS 6 AND 7.
  2800. * RECOVERY ABORT CHECKPOINT.
  2801.  
  2802.  
  2803. RAC BSS 0 ENTRY
  2804. LDC 4000 FLAG CHECKPOINT ABORT PROCESSING
  2805. STD TS
  2806. LDC RAC1 SET RETURN FROM *PFC*
  2807. STM PFCB
  2808. LJM PFC CHECKPOINT ALL DEVICES
  2809.  
  2810. RAC1 LDN MS2W-MS1W
  2811. STD T1
  2812. LDD IR+2
  2813. LMN 7
  2814. NJN RAC2 IF BUFFERED DEVICES CHECKPOINTED
  2815. LDC =C*NON-BUFFERED EQ-S CHECKPOINTED.*
  2816. STM RACA
  2817. RAC2 LDC DSCP*CPAS+MS1W
  2818. CWM =C*ALL EQ-S CHECKPOINTED.*,T1
  2819. RACA EQU *-1
  2820. CWM RACB,TR *RECOVERY ABORTED.*
  2821. UJN * HANG DEADSTART
  2822.  
  2823. RACB DATA C*RECOVERY ABORTED.*
  2824. RLT SPACE 4,10
  2825. *** FUNCTION 12.
  2826. * REPAIR LABEL TRACK.
  2827. *
  2828. * ENTRY (IR+3) = EST ORDINAL.
  2829.  
  2830.  
  2831. RLT BSS 0 ENTRY
  2832. RJM SDP SET DEVICE PARAMETERS
  2833. SETMS IO,(AD,DF,ND,RW),WBUF
  2834. RJM WTT WRITE TRT
  2835. SETMS IO,(AD,DF,ND),WBUF
  2836. RJM WLS WRITE LABEL SECTORS
  2837. ENDMS
  2838.  
  2839. RLT1 RJM CIL CLEAR INTERLOCKS
  2840. LDD IA SET REPAIR-ATTEMPTED FLAG FOR *1MV*
  2841. CRD IR
  2842. LDD IR+3
  2843. SCN 40
  2844. LMN 40
  2845. STD IR+3
  2846. LDD IA
  2847. CWD IR
  2848. LJM PPR RETURN TO *1MV*
  2849. TITLE SUBROUTINES.
  2850. IDI SPACE 4,10
  2851. ** IDI - INITIALIZE DEVICE INFORMATION SECTOR.
  2852. *
  2853. * ENTRY (T4) = CHANNEL.
  2854. * (T5) = EQUIPMENT.
  2855. * (T6) = LABEL TRACK.
  2856. * LABEL TRACK INTERLOCKED.
  2857. *
  2858. * USES T1, T7.
  2859. *
  2860. * CALLS WMS.
  2861. *
  2862. * MACROS ENDMS, SETMS.
  2863.  
  2864.  
  2865. IDI SUBR ENTRY/EXIT
  2866. LDC 100*5 CLEAR SECTOR
  2867. STD T1
  2868. IDI1 LDN 0
  2869. STM BFMS+2-1,T1
  2870. SOD T1
  2871. NJN IDI1 IF NOT COMPLETE
  2872. LDN DILT SET SECTOR
  2873. STD T7
  2874. ADN 1 SET CONTROL BYTES
  2875. STM BFMS
  2876. LDD HN
  2877. STM BFMS+1
  2878. SETMS IO,(ND,NS,RW)
  2879. LDC BFMS+WLSF WRITE SECTOR
  2880. RJM WMS
  2881. ENDMS
  2882. UJN IDIX RETURN
  2883. SPACE 4,10
  2884. ** COMMON DECKS.
  2885.  
  2886.  
  2887. *CALL COMPIFR
  2888. *CALL COMPSDA
  2889. QUAL UFT
  2890. QUAL$ EQU 0 DONT REQUALIFY COMMON DECK
  2891. GFO$ EQU 0 DEFINE FOT ACCESS ROUTINE
  2892. FN EQU CA CM WORD BUFFER (5 LOCATIONS)
  2893. *CALL COMPUFT
  2894. QUAL *
  2895. GFO EQU /UFT/GFO
  2896. SPACE 4,10
  2897. * OVERFLOW CHECKS.
  2898.  
  2899. ERRNG BUF-* OVERFLOW INTO COMMON BUFFER AREA
  2900.  
  2901. OVERFLOW OVLA,EPFW
  2902. SPACE 4
  2903. TTL 1CK - SYSTEM CHECKPOINT.
  2904. END