Table of Contents

CPD

Table Of Contents

  • [00007] CPD - COLLECT PERFORMANCE DATA.
  • [00009] COLLECT PERFORMANCE DATA.
  • [00098] DIRECT CELL DEFINITIONS.
  • [00126] MACRO DEFINITIONS.
  • [00129] ADO - ADD ONE.
  • [00170] ADA - ADD ACCUMULATOR.
  • [00219] RDM - READ MEMORY.
  • [00249] MPAR - MULTIPLE PRECISION ARRAY.
  • [00283] STA - STORE ACCUMULATOR.
  • [00302] COMMON DECKS.
  • [00341] MAIN PROGRAM.
  • [00343] MAIN PROGRAM.
  • [00489] LOOP OPERATION ROUTINES.
  • [00491] CBC - CHECK BUFFERED I/O CHANNEL USAGE.
  • [00533] CBP - CHECK BUFFERED I/O PARAMETERS.
  • [00560] CDA - CHECK DEVICE ACTIVITY.
  • [00612] CHU - CHECK CHANNEL USAGE.
  • [00681] CPU - CPU USAGE.
  • [00805] RESIDENT SUBROUTINES.
  • [00807] ADA - ADD VALUE TO BUFFER.
  • [00825] CCA - COMPUTE CPA/PCPA ADDRESS.
  • [00844] CDS - CHECK DROP STATUS.
  • [00876] RDM - READ MEMORY TO BUFFER.
  • [00914] PRESET.
  • [00928] PRS - PRESET.
  • [01521] ERR - PROCESS PRESET ERROR.
  • [01551] RDB - READ DATA INTO BUFFER.
  • [01607] RWB - READ WORDS TO BUFFER.
  • [01652] HEADER RECORD BUFFER ALLOCATION.
  • [01676] PLO - PRESET *CPD* OVERLAID LOOP OPERATIONS.
  • [01681] LOOP OPERATION ROUTINES.
  • [01683] ACA - ACCUMULATE CP AND PCP ACTIVITY.
  • [01780] ACP - ACCUMULATE CONCURRENT PP ACTIVITY.
  • [01808] AEA - ACCUMULATE EST ACTIVITY.
  • [01874] AIA - ACCUMULATE IAF ACTIVITY.
  • [01911] CMR - CHECK STORAGE MOVE REQUEST.
  • [01951] PPU - PP USAGE.
  • [01990] SAA - SET EXCHANGE PACKAGE CPU ACCUMULATOR ADDRESS.
  • [02016] SNO - SNAPSHOT LOOP OPERATIONS
  • [02074] UEA - UPDATE EJT ENTRY.
  • [02153] UQA - UPDATE QFT ACTIVITY.
  • [02237] PFW - PRESET CPD FILE WRITE OPERATIONS.
  • [02249] FILE WRITE ROUTINES.
  • [02251] CIS - CLEAR INTERLOCK STATUS.
  • [02269] DPB - DUMP BUFFER TO FILE.
  • [02361] DPP - DROP PP.
  • [02389] FWO - FILE WRITE OPERATIONS.
  • [02416] RNT - REQUEST TRACKS.
  • [02494] SIS - SET INTERLOCK STATUS.
  • [02522] WES - WRITE EOI SECTOR.
  • [02564] ZFB - ZERO FILL BUFFER.

Source Code

CPD.txt
  1. IDENT CPD,CPD COLLECT PERFORMANCE DATA
  2. PERIPH
  3. BASE MIXED
  4. SST SSCP
  5. *COMMENT CPD - COLLECT PERFORMANCE DATA.
  6. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  7. TITLE CPD - COLLECT PERFORMANCE DATA.
  8. CPD SPACE 4,10
  9. *** CPD - COLLECT PERFORMANCE DATA.
  10. *
  11. * S. L. KSANDER. 78/12/13.
  12. * R. M. DESSEL. 81/07/27.
  13. * J. L. LARSON. 83/04/11.
  14. SPACE 4,10
  15. *** CPD GENERATES A FILE FROM WHICH SYSTEM USAGE CAN BE
  16. * DETERMINED. COUNTS OF VARIOUS FORMS OF ACTIVITY ARE
  17. * MAINTAINED AND PERIODICALLY WRITTEN TO THIS FILE.
  18. SPACE 4,10
  19. *** CALL.
  20. *
  21. *
  22. *T 18/ *CPD*,6/ CP,12/ SO,6/,18/ FET ADDR
  23. *
  24. *T FET 42/ FILE NAME,18/
  25. *T FET+1 42/ ,18/ FIRST
  26. *T FET+2 42/ ,18/ IN
  27. *T FET+3 42/ ,18/ OUT
  28. *T FET+4 12/ FO,30/,18/ LIMIT
  29. *T FET+5 12/ ,12/ FW,12/ SL,12/ ML,12/ FL
  30. *T, FET+8 42/ PF NAME,12/,6/ MODE
  31. *
  32. *
  33. * SO - ORDINAL OF RESERVED SYSTEM FNT ENTRY.
  34. * FO - RELATIVE SAMPLE FILE ADDRESS IN NFL.
  35. * FW - FILE WRITE TIME IN SECONDS.
  36. * SL - SLOW LOOP TIME IN MILLISECONDS.
  37. * ML - MEDIUM LOOP TIME IN MILLISECONDS.
  38. * FL - FAST LOOP TIME IN MILLISECONDS.
  39. *
  40. * IF A LOOP TIME IS SET TO ZERO, NO SAMPLES FOR THAT
  41. * LOOP WILL BE TAKEN.
  42. SPACE 4,10
  43. *** *CPD* TERMINATION.
  44. *
  45. * TO TERMINATE *CPD*, THE *CPD* DROP FLAG MUST BE SET.
  46. * REFER TO *SFM* DOCUMENTATION FOR FURTHER INFORMATION
  47. * CONCERNING THIS.
  48. SPACE 4,10
  49. *** DATA FILE FORMAT.
  50. *
  51. * RECORD 1 = HEADER DATA.
  52. * THIS RECORD CONTAINS STATIC INFORMATION REGARDING
  53. * THE SYSTEM CONFIGURATION AVAILABLE. THIS RECORD
  54. * CONTAINS A FIXED DATA BLOCK, A MASS STORAGE BLOCK,
  55. * A JOB CONTROL DATA BLOCK, AND AN EST DATA BLOCK.
  56. * THE SPECIFIC FORMAT OF THIS RECORD IS DESCRIBED
  57. * IN *COMSCPD*.
  58. *
  59. * RECORD 2 - N = DATA RECORDS.
  60. * THESE RECORDS CONTAIN THE ACCUMULATED DATA FOR
  61. * EACH FILE WRITE INTERVAL. EACH RECORD CONTAINS
  62. * A FIXED BASE BLOCK AND A MASS STORAGE DATA BLOCK.
  63. * THE SPECIFIC FORMAT OF THIS RECORD IS DESCRIBED
  64. * IN *COMSCPD*.
  65. SPACE 4,10
  66. *** DAYFILE MESSAGES.
  67. *
  68. *
  69. * * CPD - FILE NOT FOUND.*
  70. * THE SPECIFIED DATA FILE WAS NOT FOUND.
  71. *
  72. * * CPD - ALREADY ACTIVE.*
  73. * *CPD* IS ALREADY RUNNING IN THE SYSTEM.
  74. *
  75. * * CPD - FILE STATUS ERROR.*
  76. * ONE OF THE FOLLOWING CONDITIONS EXISTED REGARDING
  77. * THE SPECIFIED DATA FILE.
  78. * 1. UNABLE TO FIND FAST ATTACH FILE CALLED SAMPLE ON
  79. * CALLERS FAMILY.
  80. * 2. UNABLE TO ATTACH FAST ATTACH FILE IN REQUESTED
  81. * MODE.
  82. *
  83. * * CPD - USER ACCESS NOT VALID.*
  84. * CALLING PROGRAM DOES NOT HAVE SYSTEM ORIGIN
  85. * PRIVILEGES.
  86. *
  87. * * CPD - OVERLAY NOT IN RPL.*
  88. * *CPD* OVERLAY *3CR* OR *3CS* WAS NOT IN THE RPL.
  89. *
  90. * * CPD - PARAMETER ERROR.*
  91. * THE SPECIFIED PARAMETER ADDRESS IS INCORRECT.
  92. *
  93. * * CPD - INITIATED.*
  94. * *CPD* MAIN LOOP INITIATED.
  95. *
  96. * * CPD - TERMINATED.*
  97. * *CPD* MAIN LOOP TERMINATED.
  98. TITLE DIRECT CELL DEFINITIONS.
  99. * DIRECT LOCATION ASSIGNMENTS.
  100.  
  101.  
  102. T8 EQU 16 TEMPORARY STORAGE (USED BY MACROS)
  103. T9 EQU 17 TEMPORARY STORAGE (USED BY MACROS)
  104. FS EQU 20 - 24 FST ENTRY
  105. VB EQU 25 FWA VARIABLE DATA BUFFER
  106. LE EQU 26 LAST ORDINAL + 1 OF DEFINED EST ENTRIES
  107. ME EQU 27 NUMBER OF MASS STORAGE ENTRIES
  108. NP EQU 30 NUMBER OF PPUS
  109. NC EQU 31 NUMBER OF CONTROL POINTS
  110. SC EQU 32 CURRENT TIME IN SECONDS
  111. MS EQU 33 CURRENT TIME IN MILLISECONDS
  112. LI EQU 34 OPERATION LOOP INDEX
  113. LO EQU 35 LOOP OPERATION ADDRESS
  114. BA EQU 36 BUFFER POINTER
  115. PC EQU 37 PPU COMMUNICATION AREA ADDRESS
  116. CN EQU 40 - 44 WORKING STORAGE
  117. TA EQU 40 IAF RA/100B (FOR ROUTINE *AIA* ONLY)
  118. WC EQU 45 BUFFER WORD COUNT
  119. NM EQU 46 NUMBER OF MCT ENTRIES - 1
  120. EC EQU 47 PROCESSOR CONNECT CODE
  121. FO EQU 57 FNT ORDINAL FOR *SAMPLE* FILE
  122. AB EQU 60 - 64 WORKING STORAGE
  123. RC EQU 65 RECORD COUNT IN BUFFER
  124. RX EQU 66 MAXIMUM RECORDS IN BUFFER
  125. RN EQU HN P REGISTER MAINTENANCE REGISTER NUMBER
  126. TITLE MACRO DEFINITIONS.
  127. * MACRO DEFINITIONS.
  128. ADO SPACE 4,15
  129. ** ADO - ADD ONE.
  130. *
  131. * ADO M,D
  132. *
  133. * ENTRY *M* = BUFFER OFFSET TO BE INCREMENTED.
  134. * *D* = INDEX OFFSET.
  135. * (BA) = BUFFER BASE ADDRESS OF CURRENT RECORD.
  136. *
  137. * USES T8.
  138. *
  139. * REQUIRES BUFFER OFFSET TO BE DEFINED VIA *MPAR* MACRO
  140. * IN ORDER TO SET FIELD PRECISION.
  141.  
  142.  
  143. PURGMAC ADO
  144.  
  145. ADO MACRO M,D
  146. MACREF ADO
  147. .1 SET P.M-1
  148. .2 IFC NE,$D$$
  149. LDD D
  150. IFNE .1,0,1
  151. SHN .1
  152. ADD BA
  153. STD T8
  154. AOM M+.1,T8
  155. DUP .1
  156. .1 SET .1-1
  157. SHN -14
  158. RAM M+.1,T8
  159. ENDD
  160. .2 ELSE
  161. AOM M+.1,BA
  162. DUP .1
  163. .1 SET .1-1
  164. SHN -14
  165. RAM M+.1,BA
  166. ENDD
  167. .2 ENDIF
  168. ENDM
  169. ADA SPACE 4,20
  170. ** ADA - ADD ACCUMULATOR.
  171. *
  172. * ADA M,D
  173. *
  174. * ENTRY *M* = BUFFER OFFSET TO BE INCREMENTED.
  175. * *D* = INDEX OFFSET.
  176. * (BA) = BUFFER BASE ADDRESS OF CURRENT RECORD.
  177. *
  178. * USES T8, T9.
  179. *
  180. * CALLS ADA.
  181. *
  182. * REQUIRES BUFFER OFFSET TO BE DEFINED VIA *MPAR* MACRO
  183. * IN ORDER TO SET FIELD PRECISION.
  184. *
  185. * WARNING - IF THE *D* PARAMETER IS PRESENT, ONLY
  186. * THE LOWER 12 BITS OF *A* ARE USED, AND THE
  187. * ELEMENT PRECISION MUST NOT BE GREATER THAN TWO.
  188.  
  189.  
  190. PURGMAC ADA
  191.  
  192. ADA MACRO M,D
  193. MACREF ADA
  194. .1 SET P.M-1
  195. .2 IFC NE,$D$$
  196. STD T8
  197. LDD D
  198. ERRPL .1-2 PRECISION ERROR
  199. .3 IFNE .1,0
  200. SHN 1
  201. ADK M
  202. RJM ADA
  203. .3 ELSE
  204. ADD BA
  205. STD T9
  206. LDD T8
  207. RAM M,T9
  208. .3 ENDIF
  209. .2 ELSE
  210. RAM M+.1,BA
  211. DUP .1
  212. .1 SET .1-1
  213. SHN -14
  214. RAM M+.1,BA
  215. ENDD
  216. .2 ENDIF
  217. ENDM
  218. RDM SPACE 4,15
  219. ** RDM - READ MEMORY.
  220. *
  221. * RDM M
  222. *
  223. * ENTRY (A) = CM ADDRESS TO READ.
  224. * *M* = BUFFER OFFSET TO READ INTO.
  225. * (BA) = BUFFER BASE ADDRESS OF CURRENT RECORD.
  226. *
  227. * EXIT (A) = INITIAL CM ADDRESS + CM WORDS READ.
  228. *
  229. * USES T8, T9.
  230. *
  231. * CALLS RDM.
  232. *
  233. * REQUIRES BUFFER OFFSET TO BE DEFINED VIA *MPAR* MACRO
  234. * TO SET FIELD PRECISION.
  235.  
  236.  
  237. PURGMAC RDM
  238.  
  239. RDM MACRO M
  240. MACREF RDM
  241. STD T9
  242. SHN -14
  243. STD T8
  244. LDC P.M/5*10000+M
  245. ERRNZ P.M/5*5-P.M LENGTH ERROR
  246. RJM RDM READ MEMORY
  247. ENDM
  248. MPAR SPACE 4,15
  249. ** MPAR - MULTIPLE PRECISION ARRAY.
  250. *
  251. * NAME MPAR L,P
  252. *
  253. * ENTRY *NAME* = ARRAY NAME.
  254. * *L* = ARRAY LENGTH IN ELEMENTS.
  255. * *P* = ELEMENT PRECISION IN PPU WORDS.
  256. *
  257. * EXIT *P.NAME* = PRECISION OF ELEMENTS.
  258. * *L.NAME* = ARRAY LENGTH.
  259. *
  260. * WARNING - IF ARRAY LENGTH IS NOT EQUAL TO ONE, THE ELEMENT
  261. * PRECISION MUST NOT BE GREATER THAN TWO.
  262.  
  263.  
  264. PURGMAC MPAR
  265.  
  266. MACRO MPAR,NAME,LEN,PREC
  267. MACREF MPAR
  268. .1 IFC NE,$NAME$$
  269. .2 IFC EQ,$PREC$$
  270. ERR PRECISION NOT SPECIFIED
  271. .2 ELSE
  272. P.NAME EQU PREC
  273. .2 ENDIF
  274. .3 IFNE LEN,1
  275. ERRNG 2-P.NAME OFFSET CALCULATION ERROR
  276. .3 ENDIF
  277. L.NAME EQU LEN
  278. NAME BSS L.NAME*P.NAME
  279. BL SET BL+L.NAME*P.NAME
  280. .1 ENDIF
  281. ENDM
  282. STA SPACE 4,10
  283. ** STA - STORE ACCUMULATOR.
  284. *
  285. * STA M
  286. *
  287. * ENTRY *M* = DATA OFFSET IN BUFFER.
  288. * (BA) = BUFFER BASE ADDRESS OF CURRENT RECORD.
  289.  
  290.  
  291. PURGMAC STA
  292.  
  293. STA MACRO M
  294. .1 SET P.M-1
  295. ERRPL .1-2 PRECISION ERROR
  296. .2 IFNE .1,0
  297. STM M+1,BA
  298. SHN -14
  299. .2 ENDIF
  300. STM M,BA
  301. ENDM
  302. TITLE COMMON DECKS.
  303. * COMMON DECKS.
  304.  
  305.  
  306. *CALL COMPMAC
  307. *CALL COMPMRM
  308. *CALL COMSCPS
  309. *CALL COMSEJT
  310. QUAL EVENT
  311. *CALL COMSEVT
  312. QUAL *
  313. *CALL COMSHIO
  314. *CALL COMSIOU
  315. *CALL COMSJIO
  316. *CALL COMSMSP
  317. *CALL COMSMTR
  318. *CALL COMSPFM
  319. *CALL COMSPIM
  320. QUAL IAF
  321. *CALL COMSREM
  322. QUAL *
  323. *CALL COMSSCD
  324. QUAL SCR
  325. *CALL COMSSCR
  326. QUAL *
  327. *CALL COMSSSD
  328. *CALL COMSSSJ
  329. *CALL COMSWEI
  330. LIST F,X
  331. *CALL COMSCPD
  332. LIST *
  333. SPACE 4,10
  334. **** ASSEMBLY CONSTANTS.
  335.  
  336.  
  337. SSJ$ EQU 1 ASSEMBLE *SSJ=* PROCESSING IN *COMPCUA*
  338. SBUFL MAX 48D,CTALL*5 SCRATCH BUFFER LENGTH
  339.  
  340. ****
  341. TITLE MAIN PROGRAM.
  342. CPD SPACE 4,10
  343. ** CPD - MAIN PROGRAM.
  344.  
  345.  
  346. ORG PPFW
  347.  
  348. CPD LJM /PRS/PRS PRESET
  349.  
  350. FITS EQU CPD FILE INTERLOCK STATUS
  351.  
  352. CPD1 LDN 1 INDICATE NOT TRACK LIMIT
  353. RJM CDS CHECK DROP STATUS
  354. * LDN 0
  355. STD LI SET LOOP INDEX
  356. LDC RTCL SET REAL TIME
  357. CRD CM
  358. LDD CM+1 SET SECONDS
  359. STD SC
  360. LDD CM+4 SET MILLISECONDS
  361. STD MS
  362.  
  363. * CHECK LOOP OPERATIONS TIMES.
  364.  
  365. CPD2 LDD MS SET ELAPSED TIME
  366. SBM CPDA,LI
  367. PJN CPD3 IF NO UNDERFLOW
  368. ADC 10000
  369. CPD3 STD T1
  370. SBM CPDC,LI
  371. MJN CPD4 IF NOT GTREATER THAN MAXIMUM CYCLE TIME
  372. RAM CPDC,LI UPDATE MAXIMUM CYCLE TIME
  373. CPD4 LDM CPDB,LI
  374. ZJN CPD7 IF NO OPERATION TO BE PERFORMED
  375. SBD T1 CHECK OPERATION INTERVAL
  376. SBN 1
  377. PJN CPD7 IF TIME NOT EXPIRED
  378. LDD MS SET NEW BASE TIME
  379. STM CPDA,LI
  380. LDM TLOT,LI SET OPERATION TABLE ADDRESS
  381. STD LO
  382. LDI LO INCREMENT SAMPLE COUNT
  383. ADD BA
  384. STD T1
  385. AOM 1,T1
  386. SHN -14
  387. RAI T1
  388. AOD LO ADVANCE TO PROCESS OPERATIONS
  389. CPD5 LDI LO
  390. STD T1
  391. ZJN CPD6 IF ROUTINE NOT TO BE PERFORMED
  392. RJM 0,T1 PERFORM OPERATION ROUTINE
  393. CPD6 AOD LO ADVANCE TO PROCESS NEXT OPERATION
  394. LMM TLOTL,LI
  395. NJN CPD5 IF MORE OPERATIONS TO PROCESS
  396. CPD7 AOD LI INCREMENT LOOP INDEX
  397. LMN MSLC
  398. NJP CPD2 IF ALL MILLISECOND LOOPS NOT PROCESSED
  399. LDM CPDB,LI
  400. ZJN CPD9 IF NO SNAPSHOT OPERATION TO BE PERFORMED
  401. LDD SC SET ELAPSED TIME
  402. SBM CPDA,LI
  403. PJN CPD8 IF NO UNDERFLOW
  404. ADC 10000
  405. CPD8 SBM CPDB,LI CHECK SNAPSHOT LOOP INTERVAL TIME
  406. MJN CPD9 IF TIME NOT EXPIRED
  407. LDD SC SET NEW BASE TIME
  408. STM CPDA,LI
  409. RJM /3CR/SNO PERFORM SNAPSHOT OPERATION
  410. AOD RC ADVANCE RECORD COUNT
  411. SBD RX
  412. ZJN CPD10 IF END OF BUFFER
  413. LDD WC ADVANCE BUFFER ADDRESS FOR NEXT RECORD
  414. SHN 2
  415. ADD WC
  416. RAD BA
  417. CPD9 LJM CPD1 LOOP
  418.  
  419. CPD10 EXECUTE 3CS WRITE FILE
  420. CPD11 RJM /3CS/ZFB ZERO FILL BUFFER
  421. EXECUTE 3CR LOAD OVERLAID LOOP OPERATION ROUTINES
  422. LDC RTCL SET INITIAL OPERATION TIMES
  423. CRD CM
  424. LDD CM+4
  425. STM CPDA FAST LOOP
  426. STM CPDA+1 MEDIUM LOOP
  427. STM CPDA+2 SLOW LOOP
  428. LDD CM+1
  429. STM CPDA+3 SNAPSHOT LOOP
  430. UJN CPD9 LOOP
  431.  
  432.  
  433. CPDA BSS 0 LOOP OPERATION BASE TIMES
  434. CON 0 FAST LOOP
  435. CON 0 MEDIUM LOOP
  436. CON 0 SLOW LOOP
  437. MSLC EQU *-CPDA MILLISECOND LOOP COUNT
  438. CON 0 SNAPSHOT LOOP
  439. SCLC EQU *-CPDA-MSLC SECOND LOOP COUNT
  440.  
  441. CPDB BSS 0 LOOP OPERATION INTERVAL TIMES
  442. CON 0 FAST LOOP
  443. CON 0 MEDIUM LOOP
  444. CON 0 SLOW LOOP
  445. CON 0 SNAPSHOT LOOP
  446.  
  447. CPDC BSS 0 MAXIMUM CYCLE TIMES
  448. CON 0 FAST LOOP
  449. CON 0 MEDIUM LOOP
  450. CON 0 SLOW LOOP
  451.  
  452. TLOT BSS 0 TABLE OF LOOP OPERATION TABLE ADDRESSES
  453. CON TFLO FAST LOOP OPERATIONS
  454. CON TMLO MEDIUM LOOP OPERATIONS
  455. CON TSLO SLOW LOOP OPERATIONS
  456.  
  457. TLOTL BSS 0 TABLE OF LOOP OPERATION TABLES LWA + 1
  458. CON TFLOL FAST LOOP OPERATIONS
  459. CON TMLOL MEDIUM LOOP OPERATIONS
  460. CON TSLOL SLOW LOOP OPERATIONS
  461.  
  462. TFLO BSS 0 TABLE OF FAST LOOP OPERATIONS
  463. CON CNIL INCREMENT FAST LOOP SAMPLE COUNT
  464. CON CDA CHECK DEVICE ACTIVITY
  465. DCBP CON 0 DISABLE BUFFERED I/O
  466. * CON CBP (CHECK BUFFERED I/O PARAMETERS)
  467. DCBC CON 0 DISABLE BUFFERED I/O
  468. * CON CBC (CHECK BUFFERED I/O CHANNEL USAGE)
  469. CON CHU CHECK CHANNEL USAGE
  470. CON /3CR/CMR CHECK MOVE REQUEST
  471. CON CPU CHECK CPU USAGE
  472. CON /3CR/PPU COUNT PP USAGE
  473. TFLOL EQU * TABLE OF FAST LOOP OPERATIONS LWA + 1
  474.  
  475. TMLO BSS 0 TABLE OF MEDIUM LOOP OPERATIONS
  476. CON CTML INCREMENT MEDIUM LOOP SAMPLE COUNT
  477. CON /3CR/ACA ACCUMULATE CONTROL POINT ACTIVITY
  478. CON /3CR/CMR CHECK MOVE REQUEST
  479. CON /3CR/UEA UPDATE EJT ACTIVITY
  480. TMLOL EQU * TABLE OF MEDIUM LOOP OPERATIONS LWA + 1
  481.  
  482. TSLO BSS 0 TABLE OF SLOW LOOP OPERATIONS
  483. CON CTOL INCREMENT SLOW LOOP SAMPLE COUNT
  484. CON /3CR/ACP ACCUMULATE CONCURRENT PP ACTIVITY
  485. CON /3CR/AEA ACCUMULATE EST ACTIVITY
  486. CON /3CR/AIA ACCUMULATE IAF ACTIVITY
  487. CON /3CR/UQA UPDATE QFT ACTIVITY
  488. TSLOL EQU * TABLE OF SLOW LOOP OPERATIONS LWA + 1
  489. TITLE LOOP OPERATION ROUTINES.
  490. CBC SPACE 4,10
  491. ** CBC - CHECK BUFFERED I/O CHANNEL USAGE.
  492. *
  493. * ENTRY (CBCA) = CHANNEL TABLE ADDRESS.
  494. * (CBCB) = NUMBER OF CHANNEL TABLE ENTRIES.
  495. *
  496. * EXIT BUFFERED I/O CHANNEL USAGE UPDATED.
  497. *
  498. * USES T1, T2, T3, AB - AB+4, CM - CM+4.
  499. *
  500. * MACROS ADO.
  501.  
  502.  
  503. CBC SUBR ENTRY/EXIT
  504. LDN 0
  505. STD T3
  506. LDC 0
  507. CBCA EQU *-2 (CHANNEL TABLE ADDRESS)
  508. STD T2 SET CHANNEL TABLE ADDRESS
  509. SHN -14
  510. STD T1
  511. CBC1 SHN 14
  512. ADD T2
  513. ADK CREQ
  514. CRD CM READ CHANNEL TABLE WORD *CREQ*
  515. ADN CCNT-CREQ READ CHANNEL NUMBER
  516. CRD AB
  517. LDD CM
  518. ZJN CBC2 IF NOT BUSY
  519. LDD AB+1 SET CHANNEL NUMBER
  520. LPN 77
  521. STD CM
  522. ADO BICA,CM COUNT CHANNEL ACTIVITY
  523. CBC2 AOD T3 ADVANCE CHANNEL TABLE INDEX
  524. SBN 0
  525. CBCB EQU *-1 (NUMBER OF CHANNEL TABLE ENTRIES)
  526. PJN CBCX IF END OF CHANNELS
  527. LDN CCTL
  528. RAD T2 ADVANCE TABLE ADDRESS
  529. SHN -14
  530. RAD T1
  531. UJN CBC1 CHECK NEXT CHANNEL
  532. CBP SPACE 4,10
  533. ** CBP - CHECK BUFFERED I/O PARAMETERS.
  534. *
  535. * ENTRY (CBPA) = FWA BUFFERED I/O TABLES.
  536. *
  537. * EXIT BUFFERED I/O PARAMETERS UPDATED.
  538. *
  539. * USES T2, CM - CM+4.
  540. *
  541. * MACROS ADA.
  542.  
  543.  
  544. CBP SUBR ENTRY/EXIT
  545. LDN WRTP-EMTP+1 INITIALIZE CONTROL WORD INDEX
  546. STD T2
  547. CBP1 SOD T2
  548. MJN CBPX IF END OF CONTROL WORDS
  549. CBPA ADC EMTP (FWA CONTROL WORDS + *EMPT*)
  550. CRD CM
  551. LDD CM+1 ADD COUNT OF BUFFERS IN LIST
  552. ADA BILA,T2
  553. UJN CBP1 LOOP
  554.  
  555.  
  556. ERRNZ DWTP-EMTP-1 OFFSET ERROR IN *MPAR* TABLE
  557. ERRNZ DRDP-DWTP-1 OFFSET ERROR IN *MPAR* TABLE
  558. ERRNZ WRTP-DRDP-1 OFFSET ERROR IN *MPAR* TABLE
  559. CDA SPACE 4,10
  560. ** CDA - CHECK DEVICE ACTIVITY.
  561. *
  562. * ENTRY (BA) = BUFFER BASE ADDRESS OF CURRENT RECORD.
  563. * (ME) = NUMBER OF MS ENTRIES.
  564. * (CDAA) = PP SPEED MASK.
  565. * (CDAB) = FWA MST-S.
  566. *
  567. * EXIT DEVICE ACTIVITY USAGE UPDATED.
  568. *
  569. * USES T1, T2, VB, CM - CM+4.
  570.  
  571.  
  572. CDA SUBR ENTRY/EXIT
  573. LDM CDAC COMPUTE RANDOM DELAY
  574. ADC 273D
  575. LPC 0
  576. * LPC 777 (1XPP)
  577. * LPC 1777 (2XPP)
  578. * LPC 3777 (4XPP)
  579. CDAA EQU *-1
  580. STM CDAC
  581. CDA1 SBN 1 NOW COUNT OUT THE DELAY
  582. NJN CDA1 IF NOT END OF DELAY
  583. LDD ME NUMBER OF MS ENTRIES
  584. STD T1
  585. LDD BA SET MASS STORAGE REQUEST ENTRY FWA
  586. ADK DFBL+NMSA
  587. STD VB
  588. LDC ** FWA MST-S
  589. CDAB EQU *-1
  590. STD T2
  591. CDA2 SOD T1
  592. MJN CDAX IF END OF MS ENTRIES
  593. LDD T2
  594. SHN 3
  595. ADN DALL
  596. CRD CM
  597. LDD CM UPDATE ACTIVITY USAGE
  598. LPN 77
  599. RAM 1,VB
  600. SHN -14
  601. RAI VB
  602. ERRNZ P.NMSA-2 CODE DEPENDS ON SIZE
  603. LDN DMBL ADVANCE TO NEXT MS REQUEST ENTRY
  604. RAD VB
  605. LDN MSTXL/10
  606. RAD T2
  607. UJN CDA2 PROCESS NEXT DEVICE
  608.  
  609.  
  610. CDAC CON 0 DELAY
  611. CHU SPACE 4,20
  612. ** CHU - CHECK CHANNEL USAGE.
  613. *
  614. * ACTIVITY ON CHANNELS ASSIGNED TO BUFFERED I/O DRIVERS
  615. * IS IGNORED HERE AND PROCESSED SEPARATELY IN ROUTINE *CBC*.
  616. * FOR CONCURRENT CHANNELS, ONLY CHANNEL REQUESTED/RESERVED IS
  617. * RECORDED, SINCE DETERMINING CHANNEL ACTIVITY IS IMPRACTICAL.
  618. *
  619. * ENTRY (NP) = NUMBER OF PP-S.
  620. * (PC) = FWA OF PP COMMUNICATIONS AREA.
  621. * (CHUA) = NUMBER OF CHANNELS ON MAINFRAME.
  622. * (CHUB) = FWA CHANNEL TABLE.
  623. *
  624. * EXIT CHANNEL USAGE UPDATED.
  625. *
  626. * USES T1, CM - CM+4.
  627. *
  628. * MACROS ADO.
  629.  
  630.  
  631. CHU SUBR ENTRY/EXIT
  632. LDN CTALL CHANNEL STATUS TABLE LENGTH
  633. STD T1
  634. CHUA LDC ** (FWA OF CHANNEL TABLE)
  635. CRM SBUF,T1
  636. LCN 0 INITIALIZE CHANNEL NUMBER
  637. STD T1
  638. CHU1 AOD T1
  639. CHUB LMN 40+** (MAXIMUM CONCURRENT CHANNEL + 1)
  640. ZJN CHUX IF ALL CHANNELS PROCESSED
  641. LDD T1
  642. CHUC SBN ** (MAXIMUM NON-CONCURRENT CHANNEL + 1)
  643. PJN CHU2 IF CONCURRENT CHANNEL
  644.  
  645. * CHECK FOR BUFFERED I/O USAGE.
  646.  
  647. LDM SBUF,T1 GET ASSIGNED PP NUMBER
  648. LPN 37
  649. SHN 3 GET PP INPUT REGISTER
  650. ADD PC
  651. CRD CM
  652. LDD CM+1
  653. SCN 77
  654. SHN 6
  655. LMD CM
  656. LMC 3RP1H
  657. ZJN CHU1 IF *1HP*
  658. LMC 3RM1X&3RP1H
  659. ZJN CHU1 IF *1XM*
  660.  
  661. * SAMPLE CHANNEL DATA.
  662.  
  663. LDC IJMI GENERATE CHANNEL INSTRUCTION
  664. ADD T1
  665. STM CHUD
  666. CHUD IJM CHU2,** IF CHANNEL INACTIVE
  667. ADO ACCH,T1 INCREMENT CHANNEL ACTIVE COUNT
  668.  
  669. * THE FOLLOWING CODE IS PERFORMED FOR ALL CHANNELS.
  670.  
  671. CHU2 LDM SBUF,T1 SET CHANNEL STATUS
  672. SHN 21-13
  673. PJN CHU3 IF NOT REQUESTED
  674. ADO RQCH,T1 INCREMENT CHANNEL REQUESTED COUNT
  675. CHU3 LDM SBUF,T1 SET CHANNEL STATUS
  676. LPN 37
  677. ZJN CHU4 IF NOT RESERVED
  678. ADO RSCH,T1 INCREMENT CHANNEL RESERVED COUNT
  679. CHU4 LJM CHU1 LOOP
  680. CPU SPACE 4,15
  681. ** CPU - CPU USAGE.
  682. *
  683. * ENTRY (NC) = NUMBER OF THE SYSTEM CONTROL POINT.
  684. * (CPUA) = MODIFIED IF NO SCR ON MAINFRAME.
  685. * (TCPS) = CPU STATUSES.
  686. * (RN) = P REGISTER MAINTENANCE REGISTER NUMBER.
  687. *
  688. * EXIT CPU ACTIVITY UPDATED.
  689. *
  690. * USES EC, AB - AB+4, CM - CM+4, CN - CN+4, T1 - T3.
  691. *
  692. * MACROS ADO, READMR.
  693.  
  694.  
  695. CPU7 LDN /SCR/FCRD+20 READ STATUS/CONTROL REGISTER
  696. OAN CHSC
  697. IAN CHSC
  698. STD T1
  699. SHN -3 CHECK MONITOR MODE
  700. LPN 3
  701. ZJN CPU8 IF NOT MONITOR MODE
  702. SBN 1 SET CPU OFFSET
  703. STD T2
  704. ADO MNMD,T2 INCREMENT MONITOR MODE COUNT
  705. CPU8 LDD T1 CHECK EXTENDED MEMORY TRANSFER
  706. LPN 4
  707. ZJN CPUX IF NO EXTENDED MEMORY TRANSFER ACTIVE
  708. ADO ECST INCREMENT EXTENDED MEMORY TRANS
  709.  
  710. CPU SUBR ENTRY/EXIT
  711. LDN 0 INITIALIZE CPU COUNT
  712. STD T2
  713. UJN CPU2 CHECK CPU 0 STATUS
  714.  
  715. CPU1 AOD T2
  716. LMN TCPSL
  717. CPUA ZJN CPU7 IF ALL CPUS PROCESSED
  718. * ZJN CPUX (NO SCR ON MAINFRAME)
  719. LDN CTCUL
  720. CPU2 STD T1 SET CPU USAGE INDEX
  721. LDM TCPS,T2
  722. NJN CPU1 IF CPU OFF
  723. CPUB LJM CPU2.3 DETERMINE NOS CPU USAGE
  724. * UJN CPU2.1 (180 TYPE CPU)
  725.  
  726. * DETERMINE CODE SEGMENT FOR 180 TYPE CPU.
  727.  
  728. CPU2.1 LDM PCCC,T2 SET PROCESSOR CONNECT CODE
  729. STD EC
  730. READMR PREG READ P REGISTER
  731. LDM PREG+2 GET PROCESSOR CODE SEGMENT
  732. LPN 17
  733. SHN 10
  734. ADM PREG+3
  735. SBN CSNS
  736. ZJN CPU2.3 IF NOS SEGMENT
  737. SBN CSEI-CSNS
  738. ZJN CPU2.2 IF EI SEGMENT
  739. SBN CSVU-CSEI DETERMINE NOS/VE SYSTEM OR USER SEGMENT
  740. SHN 0-21
  741. LMN 1
  742. ADN 1
  743. CPU2.2 ADN CI18 SET 180 USAGE CATEGORY
  744. STD T1
  745. LJM CPU6 INCREMENT CPU COUNT
  746.  
  747. * DETERMINE NOS CPU USAGE.
  748.  
  749. CPU2.3 LDD T2 GET CPU CPA ADDRESS
  750. ADC CPAL
  751. CRD CM
  752. LDD CM+2
  753. ADN TFSW
  754. CRD CN
  755. SBN TFSW-JCIW
  756. CRD AB
  757. LDD CM+2
  758. SHN -7
  759. LMD NC
  760. NJN CPU2.4 IF CPU NOT ACTIVE AT SYSTEM CONTROL POINT
  761. LDD CM+1 GET EXCHANGE PACKAGE TYPE
  762. SHN -6
  763. SBN IDXT
  764. PJN CPU6 IF IDLE PACKAGE
  765. ADN IDXT+1
  766. RAD T1 SET INDEX FOR EXCHANGE PACKAGE
  767. UJN CPU6 INCREMENT CPU USAGE COUNT
  768.  
  769. CPU2.4 LDN CISU INCREMENT CPU USAGE INDEX TO SUBSYSTEM
  770. RAD T1
  771. LDD AB+2
  772. LMN IRSI
  773. ZJN CPU3 IF ROLLOUT INHIBITED
  774. LMN IRSI
  775. ADC -LSSI
  776. MJN CPU4 IF NOT SUBSYSTEM
  777. CPU3 STD T3 INCREMENT SUBSYSTEM CPU USAGE
  778. ADO SSCU,T3
  779. UJN CPU6 INCREMENT USAGE COUNT
  780.  
  781. CPU4 AOD T1 INCREMENT CPU USAGE INDEX
  782. SFA EJT,CN
  783. ADN SCLE-JSNE SET JOB ORIGIN TYPE
  784. CRD CN
  785. LDD CN
  786. LPN 17
  787. LMK SYOT
  788. ZJN CPU6 IF SYSTEM ORIGIN
  789. AOD T1 INCREMENT CPU USAGE INDEX
  790. CPU6 ADO CTCU,T1 INCREMENT CPU USAGE COUNT
  791. LJM CPU1 PROCESS NEXT CPU
  792.  
  793.  
  794. MRER EQU CPUX ERROR PROCESSOR ADDRESS FOR *COMPMRM*
  795.  
  796. PCCC BSS 1 PROCESSOR A CONNECT CODE
  797. BSS 1 PROCESSOR B CONNECT CODE
  798.  
  799. TCPS BSS 0 TABLE OF CPU STATUS (0=ON, 1=OFF)
  800. CON 0 CPU 0 ON/OFF FLAG
  801. CON 0 CPU 1 OF/OFF FLAG
  802. TCPSL EQU *-TCPS TABLE LENGTH
  803.  
  804. PREG BSS 10 P REGISTER FROM MAINTENANCE UNIT
  805. TITLE RESIDENT SUBROUTINES.
  806. ADA SPACE 4,10
  807. ** ADA - ADD VALUE TO BUFFER.
  808. *
  809. * ENTRY (A) = OFFSET INTO BUFFER FOR DOUBLE PRECISION WORD.
  810. * (BA) = BUFFER BASE ADDRESS.
  811. * (T8) = VALUE TO ADD TO DOUBLE PRECISION WORD.
  812. *
  813. * USES T9.
  814.  
  815.  
  816. ADA SUBR ENTRY/EXIT
  817. ADD BA
  818. STD T9
  819. LDD T8 ADD VALUE TO BUFFER
  820. RAM 1,T9
  821. SHN -14
  822. RAI T9
  823. UJN ADAX RETURN
  824. CCA SPACE 4,10
  825. ** CCA - COMPUTE CPA/PCPA ADDRESS.
  826. *
  827. * ENTRY (A) = CP/PCP NUMBER.
  828. * (NC) = NUMBER OF CONTROL POINTS.
  829. *
  830. * EXIT (A) = CPA/PCPA ADDRESS.
  831.  
  832.  
  833. CCA1 ADD NC
  834. SHN 7
  835.  
  836. CCA SUBR ENTRY/EXIT
  837. SBD NC
  838. MJN CCA1 IF CONTROL POINT
  839. ZJN CCA1 IF SYSTEM CONTROL POINT
  840. SHN 7
  841. CCAA ADC ** (PCP AREAS BASE ADDRESS)
  842. UJN CCAX RETURN
  843. CDS SPACE 4,10
  844. ** CDS - CHECK DROP STATUS.
  845. *
  846. * ENTRY (A) = 0 IF TRACK LIMIT.
  847. * (RC) = NUMBER OF RECORDS IN BUFFER.
  848. *
  849. * EXIT (A) = 0.
  850. * TO */3CS/DPP* IF PP TO BE DROPPED.
  851. *
  852. * USES CN, CM - CM+4.
  853. *
  854. * CALLS /3CR/SNO.
  855. *
  856. * MACROS EXECUTE.
  857.  
  858.  
  859. CDS SUBR ENTRY/EXIT
  860. STD CN
  861. LDC INWL CHECK *CPD* DROP FLAG
  862. CRD CM
  863. LDD CM+4
  864. LPN 4
  865. ZJN CDSX IF NO DROP OUT
  866. LDD CN
  867. ZJN CDS2 IF TRACK LIMIT
  868. RJM /3CR/SNO PERFORM SNAPSHOT OPERATION
  869. AOD RC ADVANCE RECORD COUNT
  870. EXECUTE 3CS LOAD FILE WRITE ROUTINES
  871. CDS1 LJM /3CS/DPP DROP PP
  872.  
  873. CDS2 RJM /3CS/CIS CLEAR INTERLOCK STATUS
  874. UJN CDS1 DROP PP
  875. RDM SPACE 4,10
  876. ** RDM - READ MEMORY TO BUFFER.
  877. *
  878. * ENTRY (A) = 6/ WORD COUNT, 12/ BUFFER OFFSET.
  879. * (T8 - T9) = CM ADDRESS TO READ FROM.
  880. *
  881. * EXIT (A) = CM LWA+1 OF DATA READ.
  882. *
  883. * USES LA.
  884.  
  885.  
  886. RDM SUBR ENTRY/EXIT
  887. ADD BA CALCULATE BUFFER ADDRESS
  888. STM RDMA
  889. SHN -14
  890. STD LA SAVE WORD COUNT
  891. LDD T8
  892. SHN 14
  893. ADD T9
  894. CRM **,LA
  895. RDMA EQU *-1
  896. UJN RDMX RETURN
  897. SPACE 4,10
  898. * COMMON DECKS.
  899.  
  900.  
  901. EJT$ EQU 1 INITIALIZE EJT PROCESSING
  902. IFP$ EQU 1 ASSEMBLE REMOTE INITIALIZATION CODE
  903. QFT$ EQU 1 INITIALIZE QFT PROCESSING
  904. *CALL COMPGFP
  905. *CALL COMPMRA
  906. SPACE 4,10
  907. USE LITS FLUSH LITERALS
  908. USE *
  909. SPACE 4,10
  910. * CPD OVERLAY LOAD ADDRESS.
  911.  
  912.  
  913. COVL EQU *+5 CPD OVERLAY LOAD ADDRESS
  914. TITLE PRESET.
  915. QUAL PRS
  916.  
  917.  
  918. * OVERLAID PRESET COMMON DECKS AND PRESET CODE.
  919.  
  920.  
  921. *CALL COMPCUA
  922.  
  923.  
  924. QUAL
  925. IFP HERE
  926. QUAL *
  927. PRS SPACE 4,30
  928. ** PRS - PRESET.
  929. *
  930. * ENTRY (IR+3 - IR+4) = FET ADDRESS.
  931. *
  932. * EXIT (FO) = 0.
  933. * (FITS) = 0 IF FILE INTERLOCK NOT REQUIRED.
  934. * (FS - FS+4) = DATA FILE FST.
  935. * (LE) = LAST ORDINAL + 1 OF DEFINED EST ENTRIES.
  936. * (LO) .NE. 0.
  937. * (ME) = NUMBER OF MASS STORAGE ENTRIES.
  938. * (NC) = NUMBER OF CONTROL POINTS.
  939. * (NP) = NUMBER OF PPUS.
  940. * (PC) = PPU COMMUNICATION AREA ADDRESS.
  941. * (NM) = NUMBER OF MCT ENTRIES - 1.
  942. * (RX) = MAXIMUM RECORD COUNT IN BUFFER.
  943. * (WC) = DATA RECORD WORD COUNT.
  944. * MAIN CODE/TABLES MODIFIED AS NEEDED.
  945. * TO *CPD11* TO ENTER MAIN LOOP.
  946. *
  947. * ERROR TO *ERR* IF ERROR ENCOUNTERED.
  948. *
  949. * USES BA, FO, LI, LO, MD, MS, NC, NP, PC, SC, RC, RX, WC,
  950. * AB - AB+4, CM - CM+4, CN - CN+4, FS - FS+4, IR - IR+4,
  951. * T1 - T6.
  952. *
  953. * CALLS CPT, CRS, CUA, DFM, FAT, IFP, RCS, RDB, RJC, SAF,
  954. * SEI, SFB, *3CS*, /3CS/CIS, /3CS/DPB, /3CS/RNT,
  955. * /3CS/SIS, /3CS/WES.
  956. *
  957. * MACROS CFI, EXECUTE, MONITOR, SETMS, SFA, STA.
  958.  
  959.  
  960. PRS BSS 0 ENTRY
  961. LDK PCPP SET FWA OF PCPA-S
  962. CRD CM
  963. LDD CM+3
  964. SHN 14
  965. LMD CM+4
  966. SBK 200B
  967. STM CCAA+1
  968. SHN -14
  969. LMC ADCI
  970. STM CCAA
  971. RJM IFP
  972. LDN 0 CLEAR FNT ORDINAL POINTER
  973. STD FO
  974. RJM CUA CHECK USER ACCESS
  975. ZJN PRS2 IF ACCESS ALLOWED
  976. LDC ERRA&ERRF * CPD - USER ACCESS NOT VALID.*
  977. PRS1 LMC ERRF * CPD - OVERLAY NOT IN RPL.*
  978. LJM ERR ISSUE ERROR MESSAGE
  979.  
  980. PRS2 LDC 3R3CR CHECK *3CR* IN RPL
  981. * LDC 3R3CS (CHECK *3CS* IN RPL)
  982. PRSA EQU *-1
  983. STD CM+3
  984. SHN -14
  985. STD CM+2
  986. MONITOR SPLM SEARCH LIBRARY DIRECTORY
  987. LDD CM+1
  988. SCN 77
  989. ZJN PRS1 IF OVERLAY NOT IN RPL
  990. AOM PRSA
  991. LPN 77
  992. SBN 1RS+1
  993. MJN PRS2 IF MORE OVERLAYS TO CHECK
  994. LDN 1 CLEAR *CPD* DROP FLAG
  995. STD CM+1
  996. STD CM+2
  997. LDD MA
  998. CWM PRSC,ON
  999. MONITOR UADM
  1000.  
  1001. * CHECK PARAMETER BLOCK ADDRESS.
  1002.  
  1003. LDD IR+3 CHECK PARAMETER ADDRESS
  1004. LPN 37
  1005. STD IR+3
  1006. SHN 14
  1007. LMD IR+4
  1008. SBN 2
  1009. MJN PRS3 IF ADDRESS .LT. 2
  1010. ADN 2+FETL-1
  1011. SHN -6
  1012. SBD FL
  1013. MJN PRS4 IF PARAMETER BLOCK WITHIN FL
  1014. PRS3 LDC ERRB * CPD - PARAMETER ERROR.*
  1015. LJM ERR ISSUE ERROR MESSAGE
  1016.  
  1017. * GET LOOP PARAMETERS.
  1018.  
  1019. PRS4 LDD IR+3 SET ARGUMENTS
  1020. SHN 6
  1021. ADD RA
  1022. SHN 6
  1023. ADD IR+4
  1024. ADN 4 GET SAMPLE FILE OFFSET IN NFL
  1025. CRD AB-1
  1026. ERRNZ FO+1-AB CODE DEPENDS ON VALUE
  1027. ADN 5-4
  1028. CRD CM
  1029. ADN 3
  1030. CRD CN SET MODE
  1031. LDD CN+4
  1032. LMN PTAP
  1033. ZJN PRS5 IF APPEND MODE REQUEST
  1034. LMN PTMD&PTAP
  1035. ZJN PRS5 IF MODIFY MODE
  1036. LMN PTWR&PTMD
  1037. NJN PRS3 IF NOT WRITE MODE
  1038. STM FITS CLEAR INTERLOCK NEEDED
  1039. PRS5 LDC HBUF SET HEADER BUFFER ADDRESS
  1040. STD BA
  1041. .1 MICRO 1,2, "VERS" SET CPD VERSION
  1042. .2 MICRO 3,2, "VERS"
  1043. LDC 2R".1"
  1044. STM CPDV,BA
  1045. LDC 2R".2"
  1046. STM CPDV+1,BA
  1047. LDD CM+4
  1048. STA DLIL SET FAST LOOP TIME
  1049. STM CPDB+0
  1050. LDD CM+3
  1051. STA DLML SET MEDIUM LOOP TIME
  1052. STM CPDB+1
  1053. LDD CM+2
  1054. STA DLOL SET SLOW LOOP TIME
  1055. STM CPDB+2
  1056. LDD CM+1
  1057. STA DLFW SET SAMPLING/FILE WRITE LOOP TIME
  1058. STM CPDB+3
  1059. LDD FO
  1060. NJN PRS7 IF FILE FOUND
  1061. LDC ERRD * CPD - FILE NOT FOUND.*
  1062. UJN PRS8 ISSUE ERROR MESSAGE
  1063.  
  1064. PRS7 NFA FO,R READ FST INFORMATION
  1065. ADN FSTL
  1066. CRD T5 SET DIRECT CELLS
  1067. CRD FS
  1068. LDD IR+2
  1069. NJN PRS9 IF FNT SLOT RESERVED
  1070. LDC ERRE * CPD - FILE STATUS ERROR.*
  1071. PRS8 LJM ERR ISSUE ERROR MESSAGE
  1072.  
  1073. PRS9 RJM SEI SEARCH FOR EOI
  1074. LDD T6
  1075. STD FS+2 SET CURRENT TRACK
  1076. LDD T7
  1077. STD FS+3
  1078.  
  1079. * DETERMINE NUMBER OF CONTROL POINTS, NUMBER OF PPUS,
  1080. * AND FWA OF CHANNEL TABLE.
  1081.  
  1082. PRS10 LDN PPCP SET PPU COMMUNICATION AREA ADDRESS
  1083. CRD CM
  1084. LDD CM+4
  1085. STD PC
  1086. LDD CM+2 SET CURRENT USER EM SHIFT COUNT
  1087. ERRNZ MEFL-PPCP
  1088. SHN -11
  1089. STA UESC
  1090. LDC CHTP SET FWA OF CHANNEL TABLE
  1091. CRD CM
  1092. LDD CM+2
  1093. RAM CHUA
  1094. LDD CM+3
  1095. STM CHUA+1
  1096. LDN PPUL READ PP AND CHANNEL COUNT
  1097. CRD CM
  1098. ERRNZ PPUL-CPPL CODE ASSUMES NPP/CPP DATA IN SAME WORD
  1099. ADK MCTP-CPPL GET NUMBER OF MCT ENTRIES
  1100. CRD AB
  1101. LDD CM+3 SET NUMBER OF PHYSICALLY PRESENT CPP-S
  1102. LPN 77
  1103. STD T0
  1104. STA NCPP
  1105. LDD T0 SET MAXIMUM CHANNEL FOR REQUEST/RESERVE
  1106. RAM CHUB
  1107. LDD CM+1 SET NUMBER OF CONTROL POINTS
  1108. STA NCPT
  1109. ADN 1
  1110. STD NC
  1111. SOD AB+2 SET NUMBER OF MCT ENTRIES - 1
  1112. STD NM
  1113. SBD NC SET NUMBER OF PCP-S
  1114. STA NPCP
  1115. LDD CM SET CHANNEL COUNT
  1116. ADN 1
  1117. RAM CHUC
  1118. LDD CM+2 SET PP COUNT
  1119. STD NP
  1120. STD T1 CHECK INACTIVE PPS
  1121. STD T2
  1122. PRS11 SOD T2
  1123. MJN PRS12 IF NO MORE PPS TO CHECK
  1124. SHN 3
  1125. ADD PC
  1126. CRD AB
  1127. LDD AB
  1128. LMC 2R**
  1129. NJN PRS11 IF NOT INACTIVE PP
  1130. SOD T1 DECREMENT ACTIVE PP COUNT
  1131. UJN PRS11 LOOP FOR NEXT PP
  1132.  
  1133. PRS12 LDD T1 SET ACTIVE PP COUNT
  1134. STA NNPP
  1135.  
  1136. * SET CPU INFORMATION, MEMORY SIZES IN HEADER RECORD.
  1137.  
  1138. LDC MABL READ MAINFRAME ATTRIBUTES
  1139. CRD CM
  1140. ADN EABL-MABL
  1141. CRD CN
  1142. LDD CM+4 ADJUST RANDOM DELAY FOR PP SPEED
  1143. LPN 7
  1144. STD T1
  1145. SBN PRSDL
  1146. PJN PRS13 IF INCORRECT VALUE
  1147. LDM PRSD,T1
  1148. STM CDAA
  1149. PRS13 LDD CM+1 GET CPU 0 ON/OFF STATUS
  1150. LPN 1
  1151. STM TCPS BIT 0 SET IF CPU 0 OFF
  1152. LDD CM+1 GET CPU 1 ON/OFF STATUS
  1153. SHN -1
  1154. LPN 1
  1155. STM TCPS+1 BIT 0 SET IF CPU 1 OFF
  1156. LMN 1
  1157. ADN 1 SET NUMBER OF CPUS
  1158. STA NCPU
  1159. LDD CM+1 CHECK MAINFRAME TYPE
  1160. STD T1
  1161. SHN -6
  1162. LPN 31
  1163. ZJN PRS14 IF CYBER 170 AND NOT CYBER 176
  1164. LDN CPUX-CPU7 DISABLE SCR PROCESSING
  1165. RAM CPUA
  1166. LDD CM+1
  1167. SHN 21-13
  1168. MJN PRS14 IF NOT CYBER 180
  1169. LDC UJNI+CPU2.1 SET MAINTENANCE REGISTER PROCESSING
  1170. STM CPUB
  1171. LDD CN+3 SET PROCESSOR A CONNECT CODE
  1172. STM PCCC
  1173. LDD CN+4 SET PROCESSOR B CONNECT CODE
  1174. STM PCCC+1
  1175. PRS14 LDD CM+2 SET MACHINE MEMORY SIZE/100B
  1176. LPN 77
  1177. SHN 14
  1178. ADD CM+3
  1179. STA MEMS
  1180. LDN CMRL SET CMR SIZE/100
  1181. CRD CM
  1182. LDD CM+4
  1183. STA CMRS
  1184. LDN ECRL SET USER EXTENDED MEMORY SIZE
  1185. CRD CM
  1186. LDD CM+1
  1187. STA UECS
  1188. LDC EPBP READ NUMBER OF EXTENDED MEMORY/PP BUFFERS
  1189. CRD CM
  1190. LDD CM+3
  1191. SHN -6
  1192. STA ECPB STORE IN HEADER
  1193. LDC BIOL CHECK FOR BUFFERED I/O CHANNELS
  1194. CRD CM
  1195. LDD CM+2 SET BUFFERED I/O CONTROL TABLE ADDRESS
  1196. RAM CBPA+1
  1197. SHN -14
  1198. ADD CM+1
  1199. RAM CBPA
  1200. LDD CM+1
  1201. SHN 14
  1202. LMD CM+2
  1203. ZJN PRS15 IF NO BUFFERED I/O
  1204. ADN CCTP READ CHANNEL TABLE POINTER WORD
  1205. CRD CM
  1206. ADN CBTP-CCTP READ CONTROL BUFFER POINTER WORD
  1207. CRD AB
  1208. LDD CM
  1209. RAM CBCB SET NUMBER OF CHANNEL TABLES
  1210. LDD CM+4 PRESET CHANNEL TABLE ADDRESS
  1211. STM CBCA+1
  1212. LDD CM+3
  1213. RAM CBCA
  1214. LDC CBC ENABLE BUFFERED I/O PROCESSING
  1215. STM DCBC
  1216. LDC CBP
  1217. STM DCBP
  1218. LDD AB SET BUFFER COUNT IN HEADER
  1219. PRS15 STA TIOB
  1220.  
  1221. * SET IAF/TELEX INFORMATION IN HEADER RECORD.
  1222.  
  1223. LDN TTEQ FETCH *TT* EST ENTRY
  1224. SFA EST
  1225. ADK EQDE
  1226. CRD CM
  1227. LDD CM+4
  1228. LPC 777
  1229. STA TRMS
  1230.  
  1231. * SET MASS STORAGE AND TAPE INFORMATION IN HEADER RECORD.
  1232.  
  1233. LDN ESTP SET EST POINTER
  1234. CRD T1
  1235. LDN NOPE INITIALIZE EST ORDINAL FOR SEARCH
  1236. STD T1
  1237. LDN 0 INITIALIZE TAPE EQUIPMENT COUNTER
  1238. STD T2
  1239. STD T5
  1240. STD ME INITIALIZE MS ENTRY COUNTER
  1241. PRS16 SFA EST,T1 READ EST ENTRY
  1242. ADK EQDE
  1243. CRD CM
  1244. LDD CM+3 SET EQUIPMENT STATUS
  1245. LMC 2RMT
  1246. ZJN PRS17 IF *MT*
  1247. LMC 2RNT&2RMT
  1248. ZJN PRS17 IF *NT*
  1249. LMC 2RCT&2RNT
  1250. ZJN PRS17 IF *CT*
  1251. LMC 2RAT&2RCT
  1252. NJN PRS18 IF NOT *AT*
  1253. PRS17 AOD T2 INCREMENT TAPE EQUIPMENT COUNTER
  1254. PRS18 LDD CM
  1255. SHN 21-13
  1256. PJN PRS19 IF NOT MASS STORAGE
  1257. AOD ME COUNT MS ENTRY
  1258. LDD T5
  1259. NJN PRS19 IF MST FWA ALREADY SET
  1260. LDD CM+4 SAVE MST FWA
  1261. STD T5
  1262. PRS19 AOD T1 ADVANCE EST ORDINAL
  1263. LMD T3
  1264. NJN PRS16 IF NOT END OF EST
  1265. STD LO INDICATE PRESET PROCESSING
  1266. LDD T2
  1267. STA MTXS
  1268. LDD T3 SET LAST ORDINAL + 1 OF EST
  1269. STD LE
  1270. STA ESTL
  1271. LDD ME SET NUMBER OF MASS STORAGE EST ENTRIES
  1272. STD T1
  1273. STA MXMS
  1274. LDD T5 SET FWA MST-S
  1275. STM CDAB
  1276. LDK HBUF+HFBL+MSUN SET MS DATA BUFFER ADDRESS
  1277. STD VB
  1278. LDK DFBL SET DATA RECORD LENGTH
  1279. STD RX
  1280. PRS20 LDD T5 GET MS DATA FROM MST
  1281. SHN 3
  1282. ADK TDGL
  1283. CRD CM
  1284. ADK DDLL-TDGL
  1285. CRD AB
  1286. LDD AB+4 SET UNIT NUMBER
  1287. LPN 77
  1288. STI VB
  1289. LDD CM SET MS TRACK CAPACITY
  1290. STM TRKC-MSUN,VB
  1291. LDN HMBL ADVANCE TO NEXT MS DATA BLOCK
  1292. RAD VB
  1293. LDN MSTXL/10 ADVANCE TO NEXT MST
  1294. RAD T5
  1295. LDN DMBL CALCULATE DATA BLOCK LENGTH
  1296. RAD RX
  1297. SOD T1
  1298. NJN PRS20 IF MORE MST-S TO SCAN
  1299. LDN DSSL SET LIBDECK NUMBER
  1300. CRD CM
  1301. LDD CM+4
  1302. STA LIBD
  1303. LDC MMFL SET MACHINE ID
  1304. CRD CM
  1305. LDD CM
  1306. STA MCID
  1307. LDC MSAP SET MASS STORAGE ALLOCATION AREA
  1308. CRD CM
  1309. LDN P.MSAA/5
  1310. ERRNZ P.MSAA/5*5-P.MSAA CODE DEPENDS ON SIZE
  1311. STD T1
  1312. LDD CM
  1313. LPN 77
  1314. SHN 14
  1315. ADD CM+1
  1316. CRM HBUF+MSAA,T1 READ DEVICE SELECTION INFORMATION
  1317. LDN IPRL SET SECONDARY ROLLOUT THRESHOLD
  1318. CRD CM
  1319. LDD CM+1
  1320. STA SROT
  1321.  
  1322. * SET FNT, EJT, QFT, FOT, AND SERVICE CLASS FIXED BLOCK
  1323. * INFORMATION IN HEADER RECORD.
  1324.  
  1325.  
  1326. LDN FNTP READ FNT POINTER
  1327. CRD CM
  1328. LDD CM+2 SET NUMBER OF FNT ENTRIES
  1329. STA MFNT
  1330. LDN EJTP READ EJT POINTER
  1331. CRD CM
  1332. LDD CM+2 STORE NUMBER OF EJT ENTRIES
  1333. STA MEJT
  1334. LDN QFTP READ QFT POINTER
  1335. CRD CM
  1336. LDD CM+2 STORE NUMBER OF QFT ENTRIES
  1337. STA MQFT
  1338. LDC FOTP READ FOT POINTER
  1339. CRD CM
  1340. LDD CM+2 SET NUMBER OF FOT ENTRIES
  1341. STA MFOT
  1342. LDN ESTE SET LENGTH OF EST ENTRY
  1343. STA ESTS
  1344. LDN FNTE SET SIZE OF FNT ENTRY
  1345. STA FNTS
  1346. LDN EJTE SET LENGTH OF AN EJT ENTRY
  1347. STA EJTS
  1348. LDN QFTE SET LENGTH OF A QFT ENTRY
  1349. STA QFTS
  1350. LDN MXSC SET MAXIMUM NUMBER OF SERVICE CLASSES
  1351. STA MXNS
  1352. LDN MXJS SET MAXIMUM NUMBER OF JOB STATUSES
  1353. STA MNJS
  1354. LDN MXCS SET MAXIMUM NUMBER OF CONNECTION STATUSES
  1355. STA MNCS
  1356.  
  1357. * SET SYSTEM DELAY PARAMETERS IN HEADER RECORD.
  1358.  
  1359. LDN MSCL SET RECALL AND SWITCH DELAYS
  1360. CRD CM
  1361. LDD CM+1 SET CPU RECALL DELAY
  1362. STA CPUD
  1363. LDD CM+2 SET PP AUTO RECALL DELAY
  1364. STA PPRD
  1365. LDD CM+4 SET MEMORY PAD SIZE
  1366. STA MPSZ
  1367. LDN JSCL SET JOB SCHEDULER CONTROL WORDS
  1368. CRD CM
  1369. LDD CM+1 SET INPUT FILE SCHEDULING INTERVAL
  1370. STA ISCI
  1371. LDD CM+2 SET SCHEDULER CYCLE INTERVAL
  1372. STA SCIN
  1373.  
  1374. * SET SYSTEM CONSTANTS IN HEADER RECORD.
  1375.  
  1376. PRS22 LDN CTCUL SET SYSTEM CONSTANTS
  1377. STA CON1
  1378. LDN 5*CTALL
  1379. STA CON2
  1380. LDN MXOT
  1381. STA CON3
  1382. LDN MXFT
  1383. STA CON7
  1384. LDN MXRS
  1385. STA CON8
  1386. LDN 10
  1387. STD T1
  1388. LDN TIML READ SYSTEM TIME/DATE/VERSION
  1389. CRM HBUF+TIME,T1
  1390. ERRNZ DTEL-TIML-1 CODE DEPENDS ON LOCATION
  1391. ERRNZ SYTL-DTEL-1 CODE DEPENDS ON LOCATION
  1392. ERRNZ SVNL-SYTL-4 CODE DEPENDS ON LOCATION
  1393. ERRNZ DATE-TIME-5 CODE DEPENDS ON LOCATION
  1394. ERRNZ SYSV-DATE-5 CODE DEPENDS ON LOCATION
  1395. ERRNZ P.SYSV-6*5 CODE DEPENDS ON SIZE
  1396.  
  1397. * CALCULATE SIZE OF HEADER RECORD.
  1398.  
  1399. LDN 0
  1400. STD AB+4
  1401. STD MS
  1402. LDD VB CALCULATE LENGTH OF DATA IN BUFFER
  1403. ADC -HBUF
  1404. STD SC
  1405. PRS23 AOD MS CALCULATE WORDS OF DATA IN BUFFER
  1406. LCN 5
  1407. RAD SC
  1408. SBN 5
  1409. PJN PRS23 IF MORE WORDS IN BUFFER
  1410. LDN P.ESTB/5 CALCULATE WORDS IN EST BLOCK
  1411. ERRNZ P.ESTB/5*5-P.ESTB BLOCK LENGTH ERROR
  1412. STD T1
  1413. PRS24 LDD LE CALCULATE NUMBER OF EST WORDS
  1414. RAD AB+4
  1415. SOD T1
  1416. NJN PRS24 IF MORE WORDS IN EST ENTRY
  1417. LDK P.JCBA/5 NUMBER OF JOB CONTROL BLOCK WORDS
  1418. ERRNZ P.JCBA/5*5-P.JCBA BLOCK LENGTH ERROR
  1419. STD LI
  1420. ADD AB+4
  1421. ADD MS
  1422. STD WC SET HEADER RECORD WORD COUNT
  1423. LDN 1 SET RECORD COUNT
  1424. STD RC
  1425. LDD SC
  1426. ZJN PRS25 IF NO LEFT OVER BYTES
  1427. AOD WC ADJUST FOR PARTIAL WORD
  1428. PRS25 NFA FO,R
  1429. CRD CN RETRIEVE SAMPLE FILE NAME
  1430. LDD FO
  1431. STD CM+4
  1432. LDN DLFS CLEAR LOCAL FNT ENTRY
  1433. STD CM+1
  1434. MONITOR PLFM
  1435. SFA FNT,IR+2 ENTER DATA IN SYSTEM FNT
  1436. CWD CN
  1437. ADN FSTG
  1438. CWD FS
  1439.  
  1440. * SET JOB CONTROL BLOCK AND EST INFORMATION IN HEADER
  1441. * RECORD AND PROCESS HEADER SECTOR WRITES AS NEEDED.
  1442.  
  1443. P3CS EQU * *3CR* LWA+1 LIMIT
  1444.  
  1445. EXECUTE 3CS LOAD WRITE ROUTINES
  1446. RJM /3CS/SIS SET FILE INTERLOCK
  1447. SETMS IO,(NS),HBUF-4
  1448. RJM /3CS/RNT REQUEST TRACKS FOR HEADER RECORD
  1449. LDN 1
  1450. RJM RJC GET FWA JOB CONTROL BLOCKS
  1451. RJM RDB READ DATA INTO HEADER BUFFER
  1452. LDD AB+4 SET EST BLOCK LENGTH
  1453. STD LI
  1454. LDN 0
  1455. SFA EST GET FWA EST
  1456. RJM RDB READ EST DATA INTO HEADER BUFFER
  1457. LDD WC DUMP REMAINING WORDS TO FILE
  1458. RJM /3CS/DPB
  1459. LDC HBUF+FSEI FORCE *WES* TO USE HEADER BUFFER
  1460. STM /3CS/WESA
  1461. LDC HBUF
  1462. STM /3CS/WESB
  1463. RJM /3CS/WES WRITE EOI SECTOR
  1464. RJM /3CS/CIS CLEAR FILE INTERLOCK
  1465.  
  1466. * MOVE PPU TO SYSTEM CONTROL POINT.
  1467.  
  1468. RJM CRS CHECK RECALL STATUS
  1469. ZJN PRS26 IF AUTO RECALL NOT SET
  1470. LDN ZERL CLEAR (SYSTEM REQUEST)
  1471. CRD CM
  1472. LDD RA
  1473. SHN 6
  1474. ADN 1
  1475. CWD CM
  1476. MONITOR RCPM RESTART CPU
  1477. PRS26 LDD NC
  1478. STD CM+1
  1479. MONITOR CCAM CHANGE TO SYSTEM CONTROL POINT
  1480. LDD IA RESET INPUT REGISTER
  1481. CRD IR
  1482. LDC PRSB * CPD - INITIATED.*
  1483. RJM DFM
  1484. LDN 0 ENTER INITIATION EVENT
  1485. STD CM+1
  1486. LDC /EVENT/CPIE
  1487. STD CM+4
  1488. SHN -14
  1489. STD CM+3
  1490. MONITOR EATM
  1491. * LDN 0
  1492. STD WC
  1493. PRS27 AOD WC SET DATA RECORD ROUNDED WORD COUNT
  1494. LCN 5
  1495. RAD RX
  1496. SBN 1
  1497. PJN PRS27 IF MORE BYTES IN RECORD
  1498. LDN 0 CALCULATE MAXIMUM DATA RECORDS IN BUFFER
  1499. STD RX
  1500. LDK BUFFLW
  1501. SBD WC
  1502. PRS28 STD T1
  1503. AOD RX INCREMENT RECORD COUNT
  1504. LDD T1
  1505. SBD WC
  1506. PJN PRS28 IF MORE ROOM IN BUFFER
  1507. LJM CPD11 ENTER CPD MAIN LOOP
  1508.  
  1509.  
  1510. PRSB DATA C* CPD - INITIATED.*
  1511. PRSC CON LDOS DECREMENT LOW CORE FIELD BY ONE
  1512. CON INWL WORD ADDRESS
  1513. CON 2*100+1 BIT ADDRESS/FIELD WIDTH
  1514. CON 0,0
  1515. PRSD BSS 0 TABLE OF FAST LOOP DELAY RANGES
  1516. CON 777 1X PP SPEED
  1517. CON 1777 2X PP SPEED
  1518. CON 3777 4X PP SPEED
  1519. PRSDL EQU *-PRSD
  1520. ERR SPACE 4,10
  1521. ** ERR - PROCESS PRESET ERROR.
  1522. *
  1523. * ENTRY (A) = ERROR MESSAGE ADDRESS.
  1524. *
  1525. * EXIT TO *PPR*.
  1526. *
  1527. * CALLS DFM.
  1528. *
  1529. * MACROS MONITOR.
  1530.  
  1531.  
  1532. ERR BSS 0 ENTRY
  1533. RJM DFM ISSUE ERROR MESSAGE
  1534. LDD IR+2
  1535. ZJN ERR1 IF NO RESERVED SLOT IN SYSTEM FNT
  1536. STD CM+1
  1537. LDN PFNT RELEASE RESERVED ENTRY
  1538. STD CM+2
  1539. MONITOR MTRM
  1540. ERR1 MONITOR ABTM
  1541. LJM PPR RETURN TO PP RESIDENT
  1542.  
  1543.  
  1544. ERRA DATA C* CPD - USER ACCESS NOT VALID.*
  1545. ERRB DATA C* CPD - PARAMETER ERROR.*
  1546. ERRC DATA C* CPD - ALREADY ACTIVE.*
  1547. ERRD DATA C* CPD - FILE NOT FOUND.*
  1548. ERRE DATA C* CPD - FILE STATUS ERROR.*
  1549. ERRF DATA C* CPD - OVERLAY NOT IN RPL.*
  1550. RDB SPACE 4,20
  1551. ** RDB - READ DATA INTO BUFFER.
  1552. *
  1553. * ENTRY (A) = CM ADDRESS TO READ DATA FROM.
  1554. * (BA) = HEADER BUFFER BASE ADDRESS.
  1555. * (LI) = WORD COUNT TO READ FROM CM.
  1556. * (MS) = NUMBER OF DATA WORDS IN BUFFER.
  1557. * (SC) = NUMBER OF EXCESS DATA BYTES IN BUFFER.
  1558. * (VB) = FWA TO READ DATA TO IN PP.
  1559. * (WC) = REMAINING WORD COUNT OF HEADER RECORD.
  1560. *
  1561. * EXIT (BA) = HEADER BUFFER BASE ADDRESS.
  1562. * (MS) = UPDATED NUMBER OF DATA WORDS IN BUFFER.
  1563. * (VB) = LWA+1 OF DATA IN BUFFER.
  1564. * (WC) = REMAINING WORD COUNT OF HEADER RECORD.
  1565. *
  1566. * USES LI, T1, AB - AB+2.
  1567. *
  1568. * CALLS RWB, /3CS/DPB.
  1569.  
  1570.  
  1571. RDB3 LDD LI READ WORDS TO BUFFER
  1572. RJM RWB
  1573.  
  1574. RDB SUBR ENTRY/EXIT
  1575. STD AB+1 SAVE CM ADDRESS TO READ FROM
  1576. SHN -14
  1577. STD AB
  1578. RDB1 LDK NWHB CALCULATE WORDS REMAINING IN BUFFER
  1579. SBD MS
  1580. STD AB+2
  1581. SBD LI WORD COUNT TO READ FROM CM
  1582. PJN RDB3 IF SUFFICIENT ROOM IN BUFFER
  1583. LDD AB+2 FILL HEADER BUFFER
  1584. RJM RWB
  1585. LDD LI CALCULATE WORDS LEFT TO READ
  1586. SBD AB+2
  1587. STD LI
  1588. LDC NWHB+10000 DUMP HEADER BUFFER
  1589. RJM /3CS/DPB
  1590. LDK HBUF RESET HEADER BUFFER BASE ADDRESS
  1591. STD BA
  1592. STD VB
  1593. LDD WC DECREMENT WORDS REMAINING IN RECORD
  1594. SBD MS
  1595. STD WC
  1596. LDN 0 INITIALIZE BUFFER WORD COUNT
  1597. STD MS
  1598. LDD SC MOVE EXCESS BYTES TO START OF BUFFER
  1599. STD T1
  1600. RAD VB
  1601. RDB2 SOD T1
  1602. MJN RDB1 IF END OF EXCESS BYTES
  1603. LDM HBUF+HBUFL,T1
  1604. STM HBUF,T1
  1605. UJN RDB2 LOOP FOR NEXT BYTE
  1606. RWB SPACE 4,15
  1607. ** RWB - READ WORDS TO BUFFER.
  1608. *
  1609. * ENTRY (A) = NUMBER OF WORDS TO READ.
  1610. * (AB - AB+1) = CM ADDRESS OF DATA.
  1611. * (MS) = NUMBER OF DATA WORDS IN BUFFER.
  1612. * (VB) = FWA TO READ DATA TO IN PP.
  1613. *
  1614. * EXIT (AB - AB+1) = LWA+1 DATA IN CM.
  1615. * (MS) = UPDATED NUMBER OF DATA WORDS IN BUFFER.
  1616. * (VB) = LWA+1 DATA IN BUFFER.
  1617. *
  1618. * USES T1.
  1619.  
  1620.  
  1621. RWB SUBR ENTRY/EXIT
  1622. ZJN RWBX IF NO WORDS TO READ
  1623. STD T1
  1624. RAD MS UPDATE NUMBER OF DATA WORDS IN BUFFER
  1625. LDD VB SET PP BUFFER ADDRESS FOR READ
  1626. STM RWBA
  1627. LDD AB GET CM ADDRESS OF DATA
  1628. SHN 14
  1629. ADD AB+1
  1630. CRM **,T1
  1631. RWBA EQU *-1
  1632. STD AB+1 SAVE UPDATED CM ADDRESS
  1633. SHN -14
  1634. STD AB
  1635. LDD T1 ADVANCE PP BUFFER LWA+1
  1636. SHN 2
  1637. ADD T1
  1638. RAD VB
  1639. UJN RWBX RETURN
  1640. SPACE 4,10
  1641. CFNT
  1642. SPACE 4,10
  1643. * COMMON DECKS.
  1644.  
  1645.  
  1646. *CALL COMPCRS
  1647. *CALL COMPRJC
  1648. *CALL COMPSEI
  1649. SPACE 4,10
  1650. USE LITS FLUSH LITERALS
  1651. USE *
  1652. TITLE HEADER RECORD BUFFER ALLOCATION.
  1653. HBUF SPACE 4,10
  1654. ** HEADER RECORD BUFFER ALLOCATION.
  1655.  
  1656.  
  1657. BSS 4 HEADER BYTES FOR SECTOR AND FOR READ-BACK
  1658. HBUF EQU * HEADER RECORD BUFFER
  1659.  
  1660. RHBS EQU EPFW-4-HBUF REMAINING HEADER BUFFER SPACE
  1661. NHSC EQU RHBS/500B NUMBER OF SECTORS IN HEADER BUFFER
  1662. NWHB EQU NHSC*100B NUMBER OF WORDS IN HEADER BUFFER
  1663. HBUFL EQU NHSC*500B LENGTH OF HEADER BUFFER IN BYTES
  1664. HMNL EQU HFBL+MSMX*HMBL MINIMUM HEADER LENGTH
  1665. ERRNG HBUFL-HMNL SECTOR SPACE OVERFLOWED
  1666.  
  1667. QUAL *
  1668. TTL 3CR - CPD OVERLAID LOOP OPERATIONS.
  1669. TITLE
  1670. QUAL 3CR
  1671. IDENT 3CR,PLOX CPD OVERLAID LOOP OPERATIONS
  1672. ORG COVL
  1673. *COMMENT 3CR - CPD OVERLAID LOOP OPERATIONS.
  1674. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  1675. PMR SPACE 4,10
  1676. ** PLO - PRESET *CPD* OVERLAID LOOP OPERATIONS.
  1677.  
  1678.  
  1679. PLO SUBR ENTRY/EXIT
  1680. UJN PLOX RETURN
  1681. TITLE LOOP OPERATION ROUTINES.
  1682. ACA SPACE 4,10
  1683. ** ACA - ACCUMULATE CP AND PCP ACTIVITY.
  1684. *
  1685. * ENTRY (NC) = NUMBER OF CONTROL POINTS.
  1686. * (NM) = NUMBER OF MCT ENTRIES - 1.
  1687. *
  1688. * EXIT CONTROL POINT ACTIVITY UPDATED.
  1689. *
  1690. * USES AB - AB+4, CM - CM+4, CN - CN+4, T1 - T7.
  1691. *
  1692. * CALLS CCA.
  1693. *
  1694. * MACROS ADA, SFA.
  1695.  
  1696.  
  1697. ACA6 LDN ACML+AECL*0 SET AVAILABLE CENTRAL MEMORY
  1698. CRD CM
  1699. LDD CM ACCUMULATE AVAILABLE CM
  1700. SHN 14
  1701. LMD CM+1
  1702. ADA MMAV
  1703. LDD CM+3 ACCUMULATE AVAILABLE USER EM
  1704. ADA ECAV
  1705.  
  1706. ACA SUBR ENTRY/EXIT
  1707. LDD NM SET NUMBER OF MCT ENTRIES - 1
  1708. STD T1
  1709.  
  1710. * SAMPLE CONTROL POINT ACTIVITY.
  1711.  
  1712. ACA1 SOD T1
  1713. ZJN ACA6 IF ALL CONTROL POINTS PROCESSED
  1714. RJM CCA SET CP/PCP ADDRESS
  1715. ADK TFSW CHECK FOR JOB ASSIGNMENT TO CP/PCP
  1716. CRD CM
  1717. LDD CM
  1718. ZJN ACA1 IF JOB NOT ASSIGNED
  1719. SFA EJT
  1720. ADN SCLE-JSNE GET SERVICE CLASS
  1721. CRD CN
  1722. LDD CN
  1723. SHN -6
  1724. STD T2
  1725. LDD T1 SET CP/PCP ADDRESS
  1726. RJM CCA
  1727. ADK STSW GET JOB STATUS WORD
  1728. CRD CN
  1729. ADN FLSW-STSW SET FIELD LENGTH
  1730. CRD T3
  1731. ADN ECSW-FLSW SET EXTENDED MEMORY WORD
  1732. CRD AB
  1733. ADN JCIW-ECSW SET JOB CONTROL WORD
  1734. CRD CM
  1735. SOD T2
  1736. MJN ACA1.1 IF RESERVED SERVICE CLASS
  1737. SBN MXJC-1
  1738. PJN ACA1.1 IF NO JOB CONTROL BLOCK
  1739. LDD NC
  1740. SBD T1
  1741. PJN ACA1.2 IF CONTROL POINT
  1742. LDD T3+4 ACCUMULATE CM FL BY SERVICE CLASS
  1743. ADD T3 ADD NFL SPACE
  1744. ADA MPCP,T2
  1745. LDD AB+4 ACCUMULATE EM FL BY SERVICE CLASS
  1746. ADA ECPC,T2
  1747. ACA1.1 UJN ACA2 CONTINUE
  1748.  
  1749. ACA1.2 LDD T3+4 ACCUMULATE CM FL BY SERVICE CLASS
  1750. ADD T3 ADD NFL SPACE
  1751. ADA MMCP,T2
  1752. LDD AB+4 ACCUMULATE ECS FL BY SERVICE CLASS
  1753. ADA ECCP,T2
  1754. ACA2 LDD CM+2 CHECK SUBSYSTEM ID
  1755. SBN IRSI
  1756. ZJN ACA3 IF ROLLOUT INHIBITED
  1757. ADC -LSSI+IRSI
  1758. MJN ACA4 IF NOT SUBSYSTEM
  1759. ACA3 STD T2
  1760. LDD T3+4 ACCUMULATE MEMORY FOR SUBSYSTEMS
  1761. ADD T3 ADD NFL SPACE
  1762. ADA SMCP,T2
  1763. ACA4 LDD CN CHECK CONTROL POINT STATUS
  1764. SHN -11
  1765. SBN WCPS
  1766. MJN ACA5 IF NOT *W*, *X*, OR *I* STATUS
  1767. ADD BA
  1768. STD T2
  1769. AOM WSCP,T2 INCREMENT CONTROL POINT STATUS COUNT
  1770. ACA5 LJM ACA1 PROCESS NEXT CONTROL POINT
  1771.  
  1772.  
  1773. ERRNZ ACML-AECL PARAMETER CALCULATION ERROR
  1774. ERRNZ XSCP-WSCP-1 OFFSET ERROR
  1775. ERRNZ ARCP-WSCP-2 OFFSET ERROR
  1776. ERRNZ XCPS-WCPS-1 OFFSET ERROR
  1777. ERRNZ ICPS-WCPS-2 OFFSET ERROR
  1778. ERRNZ P.ARCP-1 OFFSET ERROR
  1779. ACP SPACE 4,10
  1780. ** ACP - ACCUMULATE CONCURRENT PP ACTIVITY.
  1781. *
  1782. * EXIT *CTCP* AND *NCPA* FIELDS INCREMENTED IF NECESSARY.
  1783. *
  1784. * USES T0, CM - CM+4.
  1785. *
  1786. * NOTE CODE ASSUMES ACTIVE = PHYSICAL - AVAILABLE.
  1787.  
  1788.  
  1789. ACP SUBR ENTRY/EXIT
  1790. LDN CPPL CHECK CPP CONFIGURATION
  1791. CRD CM
  1792. LDD CM+3
  1793. LPN 77
  1794. ZJN ACPX IF NO CONCURRENT PP-S ON SYSTEM
  1795. STD T0
  1796. LDN PPAL CHECK NUMBER OF AVAILABLE CPP-S
  1797. CRD CM
  1798. LDD CM+3
  1799. LPN 77
  1800. STD CM+3
  1801. NJN ACP1 IF CPP(S) AVAILABLE
  1802. ADO NCPA INCREMENT *NO CPP AVAILABLE* COUNTER
  1803. ACP1 LDD T0
  1804. SBD CM+3
  1805. ADA CTCP INCREMENT *ACTIVE CPP-S* COUNTER
  1806. UJN ACPX RETURN
  1807. AEA SPACE 4,10
  1808. ** AEA - ACCUMULATE EST ACTIVITY.
  1809. *
  1810. * ENTRY (BA) = BUFFER BASE ADDRESS OF CURRENT RECORD.
  1811. * (LE) = LAST ORDINAL + 1 OF DEFINED EST ENTRIES.
  1812. *
  1813. * EXIT EST ACTIVITY UPDATED.
  1814. *
  1815. * USES T1, T2, VB, CM - CM+4, CN - CN+4.
  1816. *
  1817. * MACROS ADO, SFA.
  1818.  
  1819.  
  1820. AEA SUBR ENTRY/EXIT
  1821. LDD BA SET MASS STORAGE TRACK ENTRY FWA
  1822. ADK DFBL+TRES
  1823. STD VB
  1824. LDN NOPE SET FIRST EST ORDINAL
  1825. STD T1
  1826.  
  1827. * SAMPLE EQUIPMENT STATUS.
  1828.  
  1829. AEA1 SFA EST,T1 READ MST ENTRY
  1830. ADK EQDE
  1831. CRD CM
  1832. ADK EQAE-EQDE
  1833. CRD CN
  1834. LDD CM CHECK MASS STORAGE
  1835. SHN 21-13
  1836. PJN AEA3 IF NOT MASS STORAGE
  1837. LDD CM+4
  1838. SHN 3
  1839. ADK TDGL
  1840. CRD CM
  1841. LDD CM+4 ACCUMULATE AVAILABLE TRACKS
  1842. RAM 1,VB
  1843. SHN -14
  1844. RAI VB
  1845. ERRNZ P.TRES-2 CODE DEPENDS ON SIZE
  1846. LDN DMBL
  1847. RAD VB ADVANCE TO NEXT MS TRACK ENTRY
  1848. AEA2 AOD T1 INCREMENT EST ORDINAL
  1849. LMD LE CHECK END OF DEFINED EST ENTRIES
  1850. NJN AEA1 IF EST NOT COMPLETE
  1851. UJN AEAX RETURN
  1852.  
  1853. AEA3 LDD CN+4
  1854. ZJN AEA2 IF NOT ASSIGNED
  1855. LDD CM
  1856. LPN 2
  1857. NJN AEA2 IF DEVICE IS DOWN OR OFF
  1858. LDD CM+3 GET DEVICE TYPE
  1859. LMC 2RMT
  1860. ZJN AEA4 IF *MT*
  1861. LMC 2RCT&2RMT
  1862. ZJN AEA3.2 IF *CT*
  1863. LMC 2RNT&2RCT
  1864. ZJN AEA3.1 IF *NT*
  1865. LMC 2RAT&2RNT
  1866. NJN AEA2 IF NOT *AT*
  1867. LDN 1
  1868. AEA3.1 ADN 1
  1869. AEA3.2 ADN 1
  1870. AEA4 STD T2 SET TAPE DEVICE TYPE
  1871. ADO DRES,T2 INCREMENT TAPE DRIVES IN USE
  1872. UJN AEA2 LOOP
  1873. AIA SPACE 4,10
  1874. ** AIA - ACCUMULATE IAF ACTIVITY.
  1875. *
  1876. * EXIT IAF ACTIVITY UPDATED.
  1877. *
  1878. * USES T1, AB - AB+4, CM - CM+4, CN - CN+4.
  1879. *
  1880. * CALLS PIR, RRR, SRR.
  1881. *
  1882. * MACROS ADA.
  1883.  
  1884.  
  1885. AIA SUBR ENTRY/EXIT
  1886. LDC /IAF/VCPT*1S7 CHECK IAF CONTROL POINT
  1887. ADN JCIW
  1888. CRD CM
  1889. LDD CM+2
  1890. LMC IFSI
  1891. NJN AIAX IF IAF NOT PRESENT
  1892. RJM PIR PRESET WITH IAF R-REGISTER
  1893. RJM SRR SET IAF R-REGISTER
  1894. LDD TA SET IAF RA
  1895. SHN 6
  1896. ADN /IAF/VANL SET NUMBER OF ACTIVE USERS
  1897. CRD AB
  1898. ADN /IAF/VPAL-/IAF/VANL SET POT CONTROL WORDS
  1899. CRD CN
  1900. ADN /IAF/VPUL-/IAF/VPAL
  1901. CRD CM
  1902. RJM RRR RESTORE R-REGISTER
  1903. LDD AB+4 ACCUMULATE ACTIVE USER COUNT
  1904. ADA ANTX
  1905. LDD CN+4 ACCUMULATE POTS ALLOCATED
  1906. ADA PATX
  1907. LDD CM+4 ACCUMULATE POTS IN USE
  1908. ADA PUTX
  1909. LJM AIAX RETURN
  1910. CMR SPACE 4,10
  1911. ** CMR - CHECK STORAGE MOVE REQUEST.
  1912. *
  1913. * ENTRY (LI) = OPERATION LOOP INDEX.
  1914. *
  1915. * EXIT STORAGE MOVE REQUEST ACTIVITY UPDATED.
  1916. *
  1917. * USES T1, CM - CM+4.
  1918. *
  1919. * MACROS ADO.
  1920.  
  1921.  
  1922. CMR3 ADO SMRP INCREMENT STORAGE MOVE REQUEST PENDING
  1923.  
  1924. CMR SUBR ENTRY/EXIT
  1925. LDN CMCL CHECK STORAGE MOVE REQUEST
  1926. CRD CM
  1927. LDD CM
  1928. LMC 7777
  1929. ZJN CMR2 IF NO STORAGE MOVE REQUEST PENDING
  1930. LDD LI CHECK OPERATION LOOP INDEX
  1931. ZJN CMR3 IF FAST LOOP OPERATION
  1932. LDN 0 SET INITIAL OFFSET
  1933. STD T1
  1934. CMR1 LDM LSMR,T1 COMPARE MOVE REQUESTS
  1935. LMM CM,T1
  1936. NJN CMR2 IF NOT EQUAL
  1937. AOD T1 INCREMENT OFFSET
  1938. LMN 5
  1939. NJN CMR1 IF COMPARE NOT COMPLETE
  1940. ADO SSMP INCREMENT SAME STORAGE MOVE PENDING
  1941. CMR2 LDD LI CHECK OPERATION LOOP INDEX
  1942. ZJN CMRX IF FAST LOOP OPERATION
  1943. LDD MA SET LAST MOVE REQUEST
  1944. CWD CM
  1945. CRM LSMR,ON
  1946. UJN CMRX RETURN
  1947.  
  1948.  
  1949. LSMR BSSZ 5 LAST STORAGE MOVE REQUEST BUFFER
  1950. PPU SPACE 4,10
  1951. ** PPU - PP USAGE.
  1952. *
  1953. * ENTRY (NP) = NUMBER OF PP-S AVAILABLE.
  1954. *
  1955. * EXIT PP USAGE UPDATED.
  1956. *
  1957. * USES CM - CM+4.
  1958. *
  1959. * MACROS ADA, ADO.
  1960.  
  1961.  
  1962. PPU SUBR ENTRY/EXIT
  1963. LDN PPAL READ AVAILABLE PP-S
  1964. CRD CM
  1965. LDD NP ACCUMULATE PP USAGE
  1966. SBD CM+4
  1967. ADA CTPP
  1968. LDC PQRL READ PP QUEUE POINTER
  1969. CRD CM
  1970. LDD CM+4
  1971. ZJN PPU3 IF NO PP-S QUEUED
  1972. ADO NPAV INCREMENT NO PP AVAILABLE COUNT
  1973. PPU3 LDN JSCL
  1974. CRD CM
  1975. LDD CM
  1976. SHN 21-13
  1977. PJN PPU4 IF JOB SCHEDULER NOT ACTIVE
  1978. ADO NSJA INCREMENT JOB SCHEDULER ACTIVE COUNT
  1979. PPU4 LDC SDAP READ *MTR* DATA
  1980. CRD CM
  1981. LDD CM
  1982. SHN 14
  1983. ADD CM+1
  1984. ADN MTRS
  1985. CRD CM
  1986. LDD CM+4 ACCUMULATE *MTR* CYCLE TIME
  1987. ADA MTCT
  1988. LJM PPUX RETURN
  1989. SAA SPACE 4,10
  1990. ** SAA - SET EXCHANGE PACKAGE CPU ACCUMULATOR ADDRESS.
  1991. *
  1992. * ENTRY (A) = SYSTEM CONTROL POINT EXCHANGE PACKAGE TYPE.
  1993. * (AB+3 - AB+4) = *CPUMTR* SYSTEM CONTROL POINT EXCHANGE
  1994. * PACKAGE TABLE POINTER.
  1995. *
  1996. * EXIT (A) = ADDRESS OF EXCHANGE PACKAGE CPU ACCUMULATOR.
  1997. * (A) = 0 IF EXCHANGE PACKAGE NOT IN USE.
  1998. *
  1999. * USES (CN - CN+4).
  2000.  
  2001.  
  2002. SAA SUBR ENTRY/EXIT
  2003. STD CN SAVE INDEX
  2004. LDD AB+3 SET EXCHANGE PACKAGE TABLE ADDRESS
  2005. SHN 14
  2006. ADD AB+4
  2007. ADD CN SET ENTRY ADDRESS
  2008. CRD CN READ TABLE ENTRY
  2009. LDD CN+3 SET EXCHANGE PACKAGE ADDRESS
  2010. LPN 77
  2011. SHN 14
  2012. ADD CN+4
  2013. ADN CTMW SET ACCUMULATOR ADDRESS
  2014. UJN SAAX RETURN
  2015. SNO SPACE 4,10
  2016. ** SNO - SNAPSHOT LOOP OPERATIONS
  2017. *
  2018. * EXIT SNAPSHOT LOOP VARIABLES UPDATED.
  2019. *
  2020. * USES AB - AB+4, CM - CM+4.
  2021. *
  2022. * CALLS SAA.
  2023. *
  2024. * MACROS RDM.
  2025.  
  2026.  
  2027. SNO SUBR ENTRY/EXIT
  2028. LDN INSL SAMPLE INSTALLATION AREA
  2029. RDM INSA
  2030. LDN PDTL GET PACKED DATE AND TIME
  2031. RDM PDTM
  2032. ADN RTCL-PDTL-P.PDTM/5 SAMPLE REAL TIME CLOCK
  2033. RDM RLTM
  2034. LDC SDAP SAMPLE STATISTICAL DATA AREA
  2035. CRD CM
  2036. LDD CM
  2037. SHN 14
  2038. ADD CM+1
  2039. RDM SDAA
  2040. LDD NC SAMPLE PROGRAM MODE CPUMTR TIME
  2041. SHN 7
  2042. ADN CPTW
  2043. RDM PGTM
  2044. LDC CMTP GET *CPUMTR* FWA
  2045. CRD AB
  2046. LDD AB+3
  2047. SHN 14
  2048. ADD AB+4
  2049. ADN CSXP EXCHANGE PACKAGE TABLE POINTER
  2050. CRD AB
  2051. LDN SMXT SET STORAGE MOVE ACCUMULATOR ADDRESS
  2052. RJM SAA
  2053. RDM SMTM SET STORAGE MOVE TIME
  2054. LDM DCBP
  2055. ZJN SNO1 IF BUFFERED I/O NOT CONFIGURED
  2056. LDN PSXT SET PSEUDO-PP ACCUMULATOR ADDRESS
  2057. RJM SAA
  2058. RDM PSTM SET PSEUDO-PP TIME
  2059. SNO1 LDM TCPS
  2060. ZJN SNO2 IF CPU 0 *ON*
  2061. LDN MIXT SET MAIN IDLE PACKAGE ACCUMULATOR ADDRESS
  2062. UJN SNO3 READ CPU 1 IDLE TIME
  2063.  
  2064. SNO2 LDN MIXT SET MAIN IDLE PACKAGE ACCUMULATOR ADDRESS
  2065. RJM SAA
  2066. RDM I0TM SET CPU 0 IDLE TIME
  2067. LDM TCPS+1
  2068. NJN SNO4 IF CPU 1 *OFF*
  2069. LDN DIXT SET CPU 1 IDLE PACKAGE ACCUMULATOR ADDRESS
  2070. SNO3 RJM SAA
  2071. RDM I1TM SET CPU 1 IDLE TIME
  2072. SNO4 LJM SNOX RETURN
  2073. UEA SPACE 4,10
  2074. ** UEA - UPDATE EJT ENTRY.
  2075. *
  2076. * ENTRY (BA) = BUFFER BASE ADDRESS OF CURRENT RECORD.
  2077. *
  2078. * EXIT EJT ACTIVITY UPDATED.
  2079. *
  2080. * USES CM+2, AB - AB+4, CN - CN+4, T1 - T5.
  2081. *
  2082. * MACROS ADA, ADO, SFA.
  2083.  
  2084.  
  2085. UEA SUBR ENTRY EXIT
  2086. LDN EJTP READ EJT POINTER
  2087. CRD CM
  2088. UJN UEA2 ACCESS EJT
  2089.  
  2090. * SEARCH EJT TO DETERMINE JOB STATUS BY SERVICE CLASS.
  2091.  
  2092. UEA1 SOD CM+2 DECREMENT EJT ORDINAL
  2093. ZJN UEAX IF NO MORE ENTRIES
  2094. UEA2 SFA EJT,CM+2 ACCESS EJT ENTRY
  2095. CRD CN GET JOB STATUS
  2096. ADN SCHE-JSNE GET SCHEDULER FIELD
  2097. CRD AB
  2098. ADN SCLE-SCHE GET SERVICE CLASS
  2099. CRD T1
  2100. LDD CN
  2101. ZJN UEA1 IF FREE ENTRY
  2102. LDD T1
  2103. SHN -6
  2104. SBN 1
  2105. STD T1
  2106. MJN UEA1 IF RESERVED SERVICE CLASS
  2107. SBN MXJC-1
  2108. PJN UEA1 IF NO JOB CONTROL BLOCK
  2109. ADO EJTU INCREMENT ENTRIES IN USE
  2110. LDD CN+4 GET JOB STATUS
  2111. SHN -1
  2112. LPN 37
  2113. STD T2 (T2) = JOB STATUS
  2114. LMN EXJS
  2115. ZJN UEA3 IF JOB EXECUTING
  2116. LMK PCJS&EXJS
  2117. ZJN UEA3 IF JOB AT PCP
  2118.  
  2119. * DETERMINE MEMORY IN ROLLOUT QUEUE.
  2120.  
  2121. LDD T5 INCREMENT FL ASSIGNED TO JOB
  2122. ADA MMRQ,T1
  2123. LDD T4 INCREMENT EXTENDED MEMORY ROLLOUT QUEUE
  2124. ADA ECRQ,T1
  2125.  
  2126. * INCREMENT JOB STATUS ACTIVITY BY SERVICE CLASS.
  2127.  
  2128. UEA3 LDN MXJC-1 CALCULATE JOB STATUS*(MXJC-1)
  2129. STD T3
  2130. LDN 0
  2131. STD T4
  2132. UEA4 LDD T2
  2133. RAD T4
  2134. SOD T3
  2135. NJN UEA4 IF NOT COMPLETE
  2136. LDD T4
  2137. ADD T1 ADD JOB CLASS OFFSET
  2138. ADD BA ADD BUFFER BASE ADDRESS
  2139. STD T2
  2140. AOM JSSC,T2 INCREMENT JOB STATUS BY SERVICE CLASS
  2141. ERRNZ P.JSSC-1 CODE DEPENDS ON SIZE
  2142.  
  2143. * DETERMINE NUMBER OF NON-INTERACTIVE, ON-LINE, OR
  2144. * DETACHED INTERACTIVE JOBS.
  2145.  
  2146. LDD CN+4 GET CONNECTION STATUS
  2147. SHN -7
  2148. LPN 17
  2149. STD T1 (T1) = CONNECTION STATUS
  2150. ADO JBCS,T1 INCREMENT CONNECTION STATUS
  2151. LJM UEA1 PROCESS NEXT EJT ENTRY
  2152. UQA SPACE 4,10
  2153. ** UQA - UPDATE QFT ACTIVITY.
  2154. *
  2155. * ENTRY (BA) = BUFFER BASE ADDRESS OF CURRENT RECORD.
  2156. *
  2157. * EXIT QFT ACTIVITY UPDATED.
  2158. *
  2159. * USES CM+2, CN - CN+4, T1 - T5.
  2160. *
  2161. * MACROS ADO, SFA.
  2162.  
  2163.  
  2164. UQA SUBR ENTRY/EXIT
  2165. LDN QFTP READ QFT POINTER
  2166. CRD CM
  2167. UJN UQA3 ACCESS QFT
  2168.  
  2169. * SEARCH QFT TO DETERMINE QUEUE TYPES.
  2170.  
  2171. UQA1 ADO QACP INCREMENT FILES ASSIGNED TO CP
  2172. UQA2 SOD CM+2 DECREMENT QFT ORDINAL
  2173. ZJN UQAX IF NO MORE ENTRIES
  2174. UQA3 SFA QFT,CM+2 ACCESS QFT ENTRY
  2175. CRD CN
  2176. ADN SCLQ-JSNQ GET SERVICE CLASS
  2177. CRD T1
  2178. LDD CN
  2179. ZJN UQA2 IF FREE ENTRY
  2180. LDD T1
  2181. SHN -6
  2182. STD T1
  2183. ZJN UQA2 IF RESERVED SERVICE CLASS
  2184. SBN MXJC
  2185. PJN UQA2 IF NO JOB CONTROL BLOCK
  2186. ADO QFTU INCREMENT ENTRIES IN USE
  2187. SOD T1
  2188. LDD CN+4
  2189. LPN 2
  2190. NJN UQA1 IF JOB ASSIGNED TO CP
  2191. LDD CN+4
  2192. SHN -11
  2193. LMK INQT
  2194. ZJN UQA6 IF INPUT QUEUE FILE TYPE
  2195. LMN PRQT&INQT
  2196. ZJN UQA5 IF PRINT QUEUE FILE TYPE
  2197. LMN PHQT&PRQT
  2198. ZJN UQA4 IF PUNCH QUEUE FILE TYPE
  2199. LDN QNCP-PFSC
  2200. UQA4 ADN PFSC-LPSC
  2201. UQA5 ADN LPSC-IFSC
  2202. UQA6 ADD BA CALCULATE ADDRESS OF QUEUE ENTRY
  2203. RAD T1
  2204. AOM IFSC,T1 INCREMENT QUEUE COUNT FOR SERVICE CLASS
  2205. LJM UQA2 LOOP
  2206. SPACE 4,10
  2207. ** COMMON DECKS.
  2208.  
  2209.  
  2210. QUAL
  2211. PIR$ EQU 1 SELECT ASSEMBLY OF *PIR* FOR IAF R-REG
  2212. VCPT EQU /IAF/VCPT DEFINE CONTROL POINT FOR *COMPSRR*
  2213. QUAL *
  2214. *CALL COMPSRR
  2215.  
  2216.  
  2217. ERRNZ P.IFSC-1 CODE DEPENDS ON SIZE
  2218. ERRNZ P.LPSC-1 CODE DEPENDS ON SIZE
  2219. ERRNZ P.PFSC-1 CODE DEPENDS ON SIZE
  2220. ERRNZ P.QNCP-1 CODE DEPENDS ON SIZE
  2221. SPACE 4,10
  2222. USE LITS FLUSH LITERALS
  2223. USE *
  2224.  
  2225. QUAL *
  2226.  
  2227. R3CR EQU *+4-COVL ROUND LENGTH OF *3CR*
  2228. L3CR EQU R3CR/5*5 LENGTH OF *3CR*
  2229. TTL 3CS - CPD FILE WRITE OPERATIONS.
  2230. TITLE
  2231. QUAL 3CS
  2232. IDENT 3CS,PFWX CPD FILE WRITE OPERATIONS
  2233. ORG COVL
  2234. *COMMENT 3CS - CPD FILE WRITE OPERATIONS.
  2235. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  2236. PFW SPACE 4,10
  2237. ** PFW - PRESET CPD FILE WRITE OPERATIONS.
  2238. *
  2239. * ENTRY (LO) = 0 IF CALLED FROM PRESET.
  2240. *
  2241. * CALLS FWO.
  2242.  
  2243.  
  2244. PFW SUBR ENTRY/EXIT
  2245. LDD LO
  2246. ZJN PFWX IF OVERLAY LOAD BY PRESET
  2247. RJM FWO PERFORM FILE WRITE OPERATION
  2248. UJN PFWX RETURN
  2249. TITLE FILE WRITE ROUTINES.
  2250. CIS SPACE 4,10
  2251. ** CIS - CLEAR INTERLOCK STATUS.
  2252. *
  2253. * ENTRY (FITS) = 0 IF FILE INTERLOCK NOT REQUIRED.
  2254. * (FS - FS+4) = DATA FILE FST.
  2255. *
  2256. * USES T6.
  2257. *
  2258. * CALLS CTI.
  2259.  
  2260.  
  2261. CIS SUBR ENTRY/EXIT
  2262. LDM FITS CHECK FILE INTERLOCK STATUS
  2263. ZJN CISX IF FILE INTERLOCK NOT REQUIRED
  2264. LDD FS+1
  2265. STD T6
  2266. RJM CTI CLEAR TRACK INTERLOCK
  2267. UJN CISX RETURN
  2268. DPB SPACE 4,20
  2269. ** DPB - DUMP BUFFER TO FILE.
  2270. *
  2271. * ENTRY (A) = 6/EOR FLAG, 12/WORD COUNT.
  2272. * (BA) = BUFFER ADDRESS.
  2273. * (FS - FS+4) = DATA FILE FST.
  2274. * (T5) = EQUIPMENT.
  2275. * (T6) = TRACK.
  2276. * (T7) = SECTOR.
  2277. *
  2278. * EXIT (BA) = LWA+1 WORDS IN BUFFER WRITTEN TO FILE.
  2279. * (T6) = UPDATED CURRENT TRACK.
  2280. * (T7) = UPDATED CURRENT SECTOR.
  2281. *
  2282. * ERROR TO *DPP* IF NEXT TRACK NOT RESERVED AND
  2283. * SYSTEM DEBUG DISABLED.
  2284. *
  2285. * USES BA, CN, T3, T6, T7.
  2286. *
  2287. * CALLS CIS, SNT, WDS, WES.
  2288. *
  2289. * MACROS MONITOR.
  2290.  
  2291.  
  2292. DPB SUBR ENTRY/EXIT
  2293. STD T3 SET WORD COUNT
  2294. SHN 6
  2295. STD CN SAVE EOR FLAG
  2296. DPB1 LDD T3
  2297. NJN DPB2 IF MORE WORDS TO WRITE
  2298. LDD CN
  2299. NJN DPBX IF NO EXTRA EOR TO WRITE
  2300. AOD CN
  2301. DPB2 SOD BA
  2302. LDD HN
  2303. STI BA
  2304. LDD T3
  2305. SBD HN
  2306. PJN DPB3 IF FULL SECTOR
  2307. LDD T3 SET SHORT SECTOR
  2308. STI BA
  2309. LDN 0
  2310. DPB3 STD T3
  2311. SOD BA
  2312. LDD T7
  2313. ADN 1
  2314. STI BA
  2315. LMM SLM
  2316. NJN DPB4 IF NOT AT END OF TRACK
  2317. RJM SNT GET NEXT TRACK
  2318. STI BA
  2319. SHN 6
  2320. PJP DPB6 IF NEXT TRACK NOT ALLOCATED
  2321. DPB4 LDD BA WRITE SECTOR
  2322. LMC WCSF
  2323. RJM WDS
  2324. PJN DPB4.2 IF NO ERROR
  2325. SHN 21-11
  2326. PJN DPB4.1 IF NOT PREVIOUS SECTOR ERROR
  2327. LDM WDSE REWRITE PREVIOUS SECTOR
  2328. * LMC WLSF
  2329. ERRNZ WLSF CODE DEPENDS ON VALUE
  2330. RJM WDS
  2331. PJN DPB4 IF NO ERROR
  2332. DPB4.1 RJM WES ATTEMPT TO WRITE EOI SECTOR
  2333. RJM CIS CLEAR FILE INTERLOCK
  2334. LJM DPP DROP PP
  2335.  
  2336. DPB4.2 LDI BA SET NEXT SECTOR
  2337. STD T7
  2338. SHN 6
  2339. PJN DPB5 IF NOT NEW TRACK
  2340. SHN -6 SET TRACK
  2341. STD T6
  2342. LDN 0 CLEAR SECTOR
  2343. STD T7
  2344. DPB5 AOD BA GET SECTOR WORD COUNT
  2345. LDI BA ADVANCE BUFFER ADDRESS TO NEXT SECTOR
  2346. SHN 2
  2347. ADI BA
  2348. ADN 1
  2349. RAD BA ADVANCE BUFFER ADDRESS
  2350. LJM DPB1 LOOP TO WRITE NEXT SECTOR
  2351.  
  2352. DPB6 RJM WES WRITE EOI
  2353. RJM CIS CLEAR FILE INTERLOCK
  2354. LDN 0 SET NO ERROR FLAG
  2355. STD CM+2
  2356. LDC * SET ADDRESS WHERE ERROR DETECTED
  2357. STD CM+1
  2358. MONITOR CHGM CONDITIONAL HANG
  2359. * LJM DPP DROP PP
  2360. DPP SPACE 4,10
  2361. ** DPP - DROP PP.
  2362. *
  2363. * ENTRY (FO) = FNT ORDINAL.
  2364. * (MD) = MODE.
  2365. *
  2366. * USES CM - CM+4.
  2367. *
  2368. * CALLS DFM, *0DF*.
  2369. *
  2370. * MACROS MONITOR.
  2371.  
  2372.  
  2373. DPP BSS 0 ENTRY
  2374. LDC DPPA
  2375. RJM DFM ISSUE TERMINATION MESSAGE
  2376. * LDN 0
  2377. STD CM+1
  2378. LDN /EVENT/CPTE ISSUE TERMINATION EVENT
  2379. STD CM+4
  2380. SHN -14
  2381. STD CM+3
  2382. MONITOR EATM
  2383. MONITOR DPPM DROP PPU
  2384. LJM PPR RETURN TO PP RESIDENT
  2385.  
  2386.  
  2387. DPPA DATA C* CPD - TERMINATED.*
  2388. FWO SPACE 4,10
  2389. ** FWO - FILE WRITE OPERATIONS.
  2390. *
  2391. * ENTRY (FS - FS+4) = DATA FILE FST.
  2392. * (RC) = RECORD COUNT IN BUFFER.
  2393. * (WC) = WORD COUNT OF RECORD.
  2394. *
  2395. * USES BA, RC.
  2396. *
  2397. * CALLS CIS, DPB, RNT, SIS, WES.
  2398. *
  2399. * MACROS SETMS.
  2400.  
  2401.  
  2402. FWO SUBR ENTRY/EXIT
  2403. RJM SIS SET INTERLOCK STATUS
  2404. SETMS IO,(NS),BUFF-4
  2405. RJM RNT REQUEST TRACKS
  2406. LDK BUFF SET BUFFER BASE ADDRESS
  2407. STD BA
  2408. FWO1 LDD WC WRITE ENTIRE RECORD
  2409. RJM DPB DUMP BUFFER TO FILE
  2410. SOD RC
  2411. NJN FWO1 IF MORE RECORDS TO WRITE
  2412. RJM WES WRITE EOI SECTOR
  2413. RJM CIS CLEAR INTERLOCK STATUS
  2414. UJN FWOX RETURN
  2415. RNT SPACE 4,15
  2416. ** RNT - REQUEST TRACKS.
  2417. *
  2418. * ENTRY (FS - FS+4) = FST ENTRY.
  2419. * (RC) = NUMBER OF RECORDS TO WRITE.
  2420. * (T5) = EQUIPMENT.
  2421. * (T6) = TRACK.
  2422. * (T7) = SECTOR.
  2423. * (WC) = WORD COUNT OF RECORD.
  2424. *
  2425. * USES T2, T3, CM - CM+4.
  2426. *
  2427. * CALLS CDS, SNT.
  2428. *
  2429. * MACROS DELAY, MONITOR.
  2430.  
  2431.  
  2432. RNT SUBR ENTRY/EXIT
  2433. LDN 0
  2434. STD T3
  2435. LDD RC
  2436. STD T2
  2437. RNT1 LDD WC CALCULATE SECTORS TO WRITE
  2438. ADN 77
  2439. SHN -6
  2440. RAD T3
  2441. LDD WC
  2442. LPN 77
  2443. NJN RNT2 IF EOR COUNTED
  2444. AOD T3
  2445. RNT2 SOD T2
  2446. NJN RNT1 IF MORE RECORDS TO WRITE
  2447. AOD T3 ALLOW FOR EOI
  2448. ADD T7 CHECK SECTORS LEFT ON CURRENT TRACK
  2449. RNT3 SBM SLM
  2450. STD T3
  2451. SBN 1
  2452. PJN RNT5 IF NOT ENOUGH SECTORS ON CURRENT TRACK
  2453. RNT4 LDD FS+2 RESET CURRENT TRACK
  2454. STD T6
  2455. UJN RNTX RETURN
  2456.  
  2457. RNT5 RJM SNT SET NEXT TRACK
  2458. SHN 6
  2459. PJN RNT6 IF NEXT TRACK NOT ASSIGNED
  2460. SHN -6
  2461. STD T6
  2462. LDD T3
  2463. UJN RNT3 CHECK SECTORS ON NEXT TRACK
  2464.  
  2465. RNT6 LDD T5 SET EQUIPMENT EST ORDINAL
  2466. STD CM+1
  2467. LDD T6 SET CURRENT TRACK
  2468. STD CM+2
  2469. LDN 0
  2470. STD CM+3
  2471. LDD T3 REQUEST REMAINING SECTORS
  2472. STD CM+4
  2473. MONITOR RTCM REQUEST TRACK TRAIN
  2474. LDD CM+4
  2475. NJN RNT4 IF TRACKS ASSIGNED
  2476. RJM CDS CHECK DROP STATUS
  2477. RNT7 DELAY
  2478. LDD T2
  2479. NJN RNT6 IF EVENT ALREADY ISSUED
  2480. AOD T2 SET FLAG
  2481. LDD CP SET TRACK LIMIT MESSAGE
  2482. ADN MS2W
  2483. CWM RNTA,TR *CPD - TRACK LIMIT.*
  2484. LDN ZERL ISSUE TRACK LIMIT EVENT
  2485. CRD CM
  2486. LDN /EVENT/TKLE
  2487. STD CM+4
  2488. MONITOR EATM
  2489. UJN RNT7 RETRY REQUEST
  2490.  
  2491.  
  2492. RNTA DATA C*CPD - TRACK LIMIT.*
  2493. SIS SPACE 4,15
  2494. ** SIS - SET INTERLOCK STATUS.
  2495. *
  2496. * ENTRY (FITS) = 0 IF FILE INTERLOCK NOT REQUIRED.
  2497. * (FS - FS+4) = DATA FILE FST.
  2498. *
  2499. * EXIT INTERLOCK SET IF REQUIRED.
  2500. * (T5) = EQUIPMENT EST ORDINAL.
  2501. * (T6) = CURRENT TRACK.
  2502. * (T7) = CURRENT SECTOR.
  2503. *
  2504. * CALLS IRA, STI.
  2505.  
  2506.  
  2507. SIS SUBR ENTRY/EXIT
  2508. LDD FS SET EQUIPMENT
  2509. STD T5
  2510. RJM IRA INITIALIZE RANDOM ACCESS PROCESSORS
  2511. LDM FITS CHECK FILE INTERLOCK STATUS
  2512. ZJN SIS1 IF FILE INTERLOCK NOT REQUIRED
  2513. LDD FS+1 SET FIRST TRACK
  2514. STD T6
  2515. RJM STI SET TRACK INTERLOCK
  2516. SIS1 LDD FS+3 SET CURRENT SECTOR
  2517. STD T7
  2518. LDD FS+2 SET CURRENT TRACK
  2519. STD T6
  2520. UJN SISX RETURN
  2521. WES SPACE 4,15
  2522. ** WES - WRITE EOI SECTOR.
  2523. *
  2524. * ENTRY (T5) = EQUIPMENT.
  2525. * (T6) = TRACK.
  2526. * (T7) = SECTOR.
  2527. *
  2528. * EXIT (FS - FS+4) = UPDATED FST ENTRY.
  2529. * ENHANCED EOI SECTOR WRITTEN.
  2530. * ENDMS ISSUED.
  2531. * TRT UPDATED TO REFLECT NEW EOI.
  2532. *
  2533. * CALLS WEI.
  2534. *
  2535. * MACROS ENDMS, MONITOR.
  2536.  
  2537.  
  2538. WES SUBR ENTRY/EXIT
  2539. LDD T6 SET CURRENT TRACK
  2540. STD FS+2
  2541. LDD T7 SET CURRENT SECTOR
  2542. STD FS+3
  2543. LDD MA WRITE DATA FILE POINTERS
  2544. CWD FS
  2545. CRM BUFF+FSEI,ON COPY FST TO EOI BUFFER
  2546. * CRM HBUF+FSEI,ON (PRESET DIRECT CALL)
  2547. WESA EQU *-1
  2548. LDC BUFF WRITE ENHANCED EOI
  2549. * LDC HBUF (PRESET DIRECT CALL)
  2550. WESB EQU *-1
  2551. RJM WEI
  2552. ENDMS
  2553. LDD T5 SET EQUIPMENT
  2554. LMC 4000
  2555. STD CM+1
  2556. LDD T6 SET CURRENT TRACK
  2557. LPC 3777
  2558. STD CM+2
  2559. LDD T7 SET CURRENT SECTOR
  2560. STD CM+3
  2561. MONITOR DTKM
  2562. UJN WESX RETURN
  2563. ZFB SPACE 4,10
  2564. ** ZFB - ZERO FILL BUFFER.
  2565. *
  2566. * ENTRY (WC) = WORD COUNT OF RECORD.
  2567. * (RX) = MAXIMUM NUMBER OF RECORDS IN BUFFER.
  2568. *
  2569. * EXIT (BA) = BUFFER BASE ADDRESS.
  2570. * (RC) = 0.
  2571. *
  2572. * USES T1, T2, BA.
  2573.  
  2574.  
  2575. ZFB SUBR ENTRY/EXIT
  2576. LDN 0 CLEAR RECORD COUNT
  2577. STD RC
  2578. LDC BUFF SET BUFFER BASE ADDRESS
  2579. STD BA
  2580. STD T1
  2581. LDD RX GET MAXIMUM RECORD COUNT
  2582. STD T2
  2583. ZFB1 LDD WC
  2584. SHN 2
  2585. ADD WC
  2586. RAD T1
  2587. SOD T2
  2588. NJN ZFB1 IF MORE RECORDS TO COUNT
  2589. ZFB2 SOD T1
  2590. SBD BA
  2591. MJN ZFBX IF BUFFER CLEARED
  2592. LDN 0
  2593. STI T1
  2594. UJN ZFB2 LOOP
  2595. SPACE 4,10
  2596. * COMMON DECKS.
  2597.  
  2598.  
  2599. QUAL$ EQU 0 DO NOT QUALIFY COMMON DECKS
  2600. *CALL COMPCTI
  2601. IRA$ EQU 1 SET PRESET PRESENT
  2602. *CALL COMPSNT
  2603. *CALL COMPIRA
  2604. *CALL COMPSTI
  2605. WEI$ EQU 0 SET EOI BUFFER SUPPLIED BY CALLER
  2606. *CALL COMPWEI
  2607. SPACE 4,10
  2608. USE LITS FLUSH LITERALS
  2609. USE *
  2610.  
  2611. QUAL *
  2612.  
  2613. R3CS EQU *+4-COVL ROUND LENGTH OF *3CS*
  2614. L3CS EQU R3CS/5*5 LENGTH OF *3CS*
  2615.  
  2616. ERRNG /PRS/P3CS-COVL-L3CS CHECK OVERFLOW INTO PRESET CODE
  2617.  
  2618. MLOV MAX L3CR,L3CS MAXIMUM LENGTH OF OVERLAYS
  2619. SBUF EQU EPFW-SBUFL SCRATCH BUFFER
  2620. BUFF EQU COVL+MLOV+4 DATA BUFFER FWA
  2621. BUFFL EQU SBUF-BUFF MAXIMUM BUFFER LENGTH IN BYTES
  2622. BUFFLW EQU BUFFL/5 MAXIMUM BUFFER LENGTH IN WORDS
  2623. ERRNG BUFFLW*5-DFBL-MSMX*DMBL INSUFFICIENT BUFFER SPACE
  2624. TTL CPD - COLLECT PERFORMANCE DATA.
  2625. SPACE 4,10
  2626. END