Table of Contents

0AU

Table Of Contents

  • [00002] 0AU - UPDATE PROJECT PROFILE FILE.
  • [00009] UPDATE PROJECT PROFILE FILE.
  • [00115] MAIN PROGRAM.
  • [00117] UPF - MAIN PROGRAM.
  • [00205] SUBROUTINES.
  • [00207] ARF - ATTACH/RETURN FAST ATTACH FILE.
  • [00237] BUF - MASS STORAGE BUFFER
  • [00241] OVERLAID SUBROUTINES.
  • [00243] IDM - ISSUE DAYFILE MESSAGE.
  • [00263] IOM - ISSUE OVERFLOW MESSAGES.
  • [00340] PRESET.
  • [00342] PRS - PRESET.

Source Code

0AU.txt
  1. IDENT 0AU,UPFX
  2. TITLE 0AU - UPDATE PROJECT PROFILE FILE.
  3. PERIPH J
  4. BASE MIXED
  5. SST
  6. *COMMENT 0AU - UPDATE PROJECT PROFILE FILE.
  7. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  8. SPACE 4,10
  9. *** 0AU - UPDATE PROJECT PROFILE FILE.
  10. * S. L. KSANDER. 76/04/20.
  11. SPACE 4,10
  12. *** 0AU IS A LOCATION-FREE ROUTINE WHICH DOES THE FOLLOWING
  13. *
  14. * 1. UPDATES THE APPROPRIATE LEVEL-3 BLOCK PROJECT ENTRY OF
  15. * THE PROJECT PROFILE FILE.
  16. * 2. CLEARS CONTROL POINT AREA ACCUMULATOR OVERFLOW FLAGS
  17. * AND ISSUES THE APPROPRIATE ACCOUNT DAYFILE MESSAGE.
  18. *
  19. * 0AU IS CALLED WHENEVER OVERFLOW OF AN ACCUMULATOR IS
  20. * DETECTED OR AT END OF ACCOUNT BLOCK.
  21. SPACE 4,15
  22. *** ENTRY CONDITIONS.
  23. *
  24. * ((LA)-5) = AABB
  25. * AA = OVERFLOW FLAG BITS FROM *SRUW*.
  26. * BB = FUNCTION CODE.
  27. * 0 = END OF ACCOUNT BLOCK CALL.
  28. * 1 = ACCUMULATOR OVERFLOW CALL.
  29. * ((LA)-4) = PP ADDRESS OF TWO CM WORD JSN/SRU BLOCK.
  30. * WORD 1 = 24/JSN,24/,6/SC,6/
  31. * WORD 2 = 18/,42/SRU ACCUMULATOR.
  32. * JSN = JOB SEQUENCE NUMBER.
  33. * SC = SERVICE CLASS.
  34. * ((LA)-3) = FNT ORDINAL OF PROFILE FILE.
  35. * ((LA)-2) = TRACK OF LEVEL 3 BLOCK ON PROFILE FILE.
  36. * = 0, IF NO PROFILE FILE PRESENT.
  37. * ((LA)-1) = SECTOR OF LEVEL 3 BLOCK ON PROFILE FILE.
  38. SPACE 4,20
  39. *** EXIT CONDITIONS.
  40. *
  41. * (A) = 0, IF SUCCESSFUL CALL. ONE OF THE FOLLOWING OCCURRED
  42. * 1. END OF ACCOUNT BLOCK CALL - PROFILE FILE UPDATE
  43. * PERFORMED IF PROFILE FILE PRESENT.
  44. * 2. OVERFLOW CALL - NO OVERFLOW DETECTED, OR OVERFLOW
  45. * FLAG CLEARED (IN ADDITION, IF SRU ACCUMULATOR,
  46. * PROFILE FILE UPDATE PERFORMED AS IN 1.).
  47. * ((LA)-1) = CONTROL POINT AREA ACCUMULATOR OVERFLOW
  48. * FLAGS BEFORE CLEARING.
  49. * THE FOLLOWING INDICATE PROFILE FILE NOT UPDATED-
  50. * (A) = 1, IF SYSTEM ERROR. ONE OF THE FOLLOWING HAS OCCURED
  51. * 1. *ORET* ERROR FLAG SET IN CP.
  52. * 2. READ ERROR ON LEVEL-3 BLOCK.
  53. * 3. VALIDATION ERROR IN LEVEL-3 BLOCK.
  54. * 4. WRITE ERROR ON LEVEL-3 BLOCK.
  55. * = 2, IF PROFILE FILE INTERLOCKED BY *PROFILE*.
  56. * (ANY OVERFLOW FLAGS REMAIN SET).
  57. *
  58. * (A) .LT. 0 IF PROFILE FILE DEVICE INACCESSIBLE.
  59. * (T5) = EST ORDINAL OF PROFILE FILE DEVICE.
  60. SPACE 4,15
  61. *** ACCOUNT DAYFILE MESSAGES.
  62. *
  63. * THE FOLLOWING ERROR MESSAGES ARE ISSUED WHEN
  64. * THE CORRESPONDING ACCUMULATOR HAS OVERFLOWED.
  65. * (XXXXXX.XXX IS THE ACCUMULATOR,S OVERFLOW VALUE)
  66. *
  67. * *UCAD, XXXXXX.XXXKUNS.* = ADDER ACCUMULATOR.
  68. *
  69. * *UCPF, XXXXXX.XXXKUNS.* = PERMANENT FILE ACCUMULATOR.
  70. *
  71. * *UCMT, XXXXXX.XXXKUNS.* = MAGNETIC TAPE ACCUMULATOR.
  72. *
  73. * *UCMS, XXXXXX.XXXKUNS.* = MASS STORAGE ACCUMULATOR.
  74. *
  75. * *UCOD, XXXXXX.XXXKUNS.* = OPTICAL DISK ACCUMULATOR.
  76. *
  77. * *ACSO, XXXXXX.XXXUNTS.* = SRU ACCUMULATOR.
  78. *
  79. * *UCMP, XXXXXX.XXXKUNS.* = MAP ACCUMULATOR.
  80. *
  81. * *UCAC, XXXXXX.XXXUNTS.* = AUC ACCUMULATOR.
  82. SPACE 4,10
  83. *** OPERATOR MESSAGES.
  84. *
  85. * NONE.
  86. SPACE 4,5
  87. *** ROUTINES USED.
  88. *
  89. * CALLS DFM, RDS, WDS.
  90. SPACE 4,10
  91. *CALL COMPMAC
  92. *CALL COMSCPS
  93. *CALL COMSMSP
  94. *CALL COMSPFM
  95. *CALL COMSPRO
  96. *CALL COMSZOL
  97. *CALL COMPREL
  98. SPACE 4,10
  99. **** DIRECT CELL ASSIGNMENTS.
  100.  
  101. FA EQU 16 PROFILE FILE FNT ORDINAL
  102. BA EQU 17 BUFFER ADDRESS
  103.  
  104. ****
  105. SPACE 4,10
  106. **** ASSEMBLE CONSTANTS.
  107.  
  108. EAFC EQU 0 END OF ACCOUNT BLOCK FUNCTION
  109. AOFC EQU 1 ACCUMULATOR OVERFLOW FUNCTION
  110.  
  111. MEPO EQU 3 MASS STORAGE ERROR PROCESSING OPTION
  112. PFDL EQU 4000D DELAY CYCLES WAITING FOR PROFILE FILE
  113.  
  114. ****
  115. TITLE MAIN PROGRAM.
  116. UPF SPACE 4,10
  117. ** UPF - MAIN PROGRAM.
  118.  
  119. ORG 5
  120.  
  121. UPF SUBR ENTRY/EXIT
  122. RJM PRS PRESET
  123.  
  124. * CHECK FOR ACCUMULATOR OVERFLOW.
  125.  
  126. LDN RLCO CLEAR OVERFLOW FLAGS
  127. STD CM+1
  128. MONITOR RLMM
  129. RJM IOM ISSUE OVERFLOW MESSAGES
  130.  
  131. * READ LEVEL-3 BLOCK.
  132.  
  133. UPF2 LDD T6 CHECK PROFILE FILE PRESENT
  134. ZJN UPFX IF PROFILE FILE NOT PRESENT
  135. LDN 2 PRESET LEVEL-3 BLOCK PROJECT ENTRY INDEX
  136. STD T3
  137. LDM -5 CHECK SECTOR POSITION
  138. SHN 21-12
  139. PJN UPF3 IF FIRST ENTRY
  140. LDC 5*PMWE SET SECOND ENTRY OFFSET
  141. RAD T3
  142. UPF3 LDD BA SET BUFFER ADDRESS
  143. RAD T3
  144. RAM UPFF
  145. STM UPFG
  146. RAM UPFH
  147. LDD BA READ SECTOR
  148. RJM. RDS
  149. PJN UPF7 IF NO READ ERROR
  150.  
  151. * COMPLETION PROCESSING.
  152.  
  153. UPF4 ENDMS
  154. LDN RFAS RETURN PROFILE FILE
  155. RJM ARF
  156. UPF6 LDN 1 SET SYSTEM ERROR STATUS
  157. UPFC EQU *-1
  158. * LDN 0 (NORMAL COMPLETION)
  159. LJM UPFX
  160.  
  161. * UPDATE MASTER USER AND INSTALLATION SRU ACCUMULATORS.
  162.  
  163. UPF7 LDN ZERL CLEAR SRU ACCUMULATOR VALUE
  164. CRD CM
  165. LDN 40 INCREMENT ACCUMULATOR FOR OVERFLOW
  166. STD CM+1
  167. UPFD LDN 0 CHECK FUNCTION CODE
  168. * LDN (FC)&AOFC
  169. ZJN UPF8 IF OVERFLOW FUNCTION CODE
  170. LDD MA SET CURRENT SRU ACCUMULATOR
  171. CWM. *,TR
  172. UPFE EQU *-1
  173. SBN 2
  174. CRD CM
  175. UPF8 LDD MA SET MASTER/INSTALLATION ACCUMULATOR
  176. CWM. 5*PMSW,TR
  177. UPFF EQU *-1
  178. CWD CM SET INCREMENT VALUE
  179. SBN 2
  180. CWD CM
  181. LDN 2 SET OPERATION COUNT
  182. STD CM+4
  183. LDN ABIF
  184. STD CM+1
  185. MONITOR ACTM
  186. LDD MA SET INCREMENTED VALUES
  187. CRM. 5*PMSW,TR
  188. UPFG EQU *-1
  189. LDN PDTL SET LAST UPDATE DATE AND TIME
  190. CRM. 5*PUDW-5*PMSW,ON
  191. UPFH EQU *-1
  192.  
  193. * RE-WRITE LEVEL-3 BLOCK.
  194.  
  195. LDD BA WRITE SECTOR
  196. LMK WLSF SET WRITE LAST SECTOR
  197. RJM. WDS
  198. MJN UPF9 IF WRITE ERROR
  199. SOM UPFC SET NORMAL COMPLETION
  200. UPF9 LJM UPF4 RETURN FILE AND SET STATUS
  201.  
  202.  
  203. ERRNZ PISW-PMSW-2 SETUP ERROR FOR *ACTM* FUNCTION
  204. ERRNZ PUDW-PMSW-1
  205. TITLE SUBROUTINES.
  206. ARF SPACE 4,10
  207. ** ARF - ATTACH/RETURN FAST ATTACH FILE.
  208. *
  209. * ENTRY (A) = SUBFUNCTION CODE FOR ATTACH/RETURN.
  210. * (FA) = PROFILE FILE FNT ORDINAL.
  211. * (T5) = PROFILE FILE EST ORDINAL.
  212. *
  213. * EXIT (A) = FUNCTION RESPONSE CODE.
  214. * (CM+4) = BYTE 4 OF RESPONSE IF REJECT.
  215. *
  216. * USES CM - CM+4.
  217. *
  218. * MACROS MONITOR.
  219.  
  220.  
  221. ARF SUBR ENTRY/EXIT
  222. STD CM+3
  223. LDC 4000+PTUP SET NON-ROLLABLE UPDATE MODE
  224. STD CM+2
  225. ARFA LDN 0
  226. ZJN ARF1 IF NOT GLOBAL FAST ATTACH FILE
  227. LDD T5 SET GLOBAL FAST ATTACH EST ORDINAL
  228. ARFB ADD TH IMMEDIATE RETURN IF INACCESSIBLE DEVICE
  229. * PSN (AFTER FILE IS ATTACHED)
  230. ARF1 STD CM+1
  231. LDD FA SET FNT ORDINAL
  232. STD CM+4
  233. MONITOR AFAM
  234. LDD CM+1 SET EXIT CONDITION
  235. UJP ARFX RETURN
  236. BUF SPACE 4,10
  237. ** BUF - MASS STORAGE BUFFER
  238.  
  239.  
  240. BUF EQU *
  241. TITLE OVERLAID SUBROUTINES.
  242. IDM SPACE 4,10
  243. ** IDM - ISSUE DAYFILE MESSAGE.
  244. *
  245. * ENTRY MESSAGE PRESET IN BUFFER.
  246. *
  247. * CALLS DFM.
  248.  
  249.  
  250. IDM SUBR ENTRY/EXIT
  251. LDC AJNN+IDMA ISSUE ACCOUNT FILE MESSAGE
  252. ADD LA
  253. RJM. DFM
  254. LDC CDON+IDMA+5 ISSUE USER DAYFILE MESSAGE
  255. ADD LA
  256. RJM. DFM
  257. UJN IDMX
  258.  
  259.  
  260. IDMA VFD 24/4HJSNN,24/4H ,12/**
  261. DATA C*UCXX, 1048.576KUNS.*
  262. IOM SPACE 4,15
  263. ** IOM - ISSUE OVERFLOW MESSAGES.
  264. *
  265. * ENTRY (CM+4) = CONTROL POINT AREA OVERFLOW FLAGS (RIGHT
  266. * JUSTIFIED) BEFORE CLEARED.
  267. *
  268. * EXIT ((LA)-1) = CONTROL POINT AREA OVERFLOW FLAGS
  269. * (RIGHT JUSTIFIED) BEFORE CLEARED.
  270. * APPROPRIATE OVERFLOW MESSAGES ISSUED.
  271. *
  272. * CALLS IDM.
  273.  
  274.  
  275. IOM2 LDM -1 CHECK OPTICAL DISK OVERFLOW
  276. SHN 21-10
  277. PJN IOM2.1 IF NO OVERFLOW
  278. LDC 2ROD
  279. STM IDMA+6
  280. RJM IDM
  281. IOM2.1 LDM -1 CHECK AUC OVERFLOW
  282. SHN 21-7
  283. PJN IOM4 IF NO OVERFLOW
  284. LDN 11 MOVE DAYFILE MESSAGE
  285. STD T1
  286. LDD LA
  287. RAM IOMF
  288. IOM3 LDM. IOMH,T1
  289. IOMF EQU *-1
  290. STM. IDMA+5-IDMA,T1
  291. IOMG EQU *-1
  292. SOD T1
  293. PJN IOM3 IF MESSAGE MOVE NOT COMPLETE
  294. RJM IDM ISSUE DAYFILE MESSAGE
  295. IOM4 LDD T3 CHECK SRU ACCUMULATOR OVERFLOW
  296. SHN 21-5
  297. PJN IOMX IF NO OVERFLOW
  298. LDN 11 MOVE DAYFILE MESSAGE
  299. STD T1
  300. LDD LA
  301. RAM IOMA
  302. IOM5 LDM. IOMC,T1
  303. IOMA EQU *-1
  304. STM. IDMA+5-IDMA,T1
  305. IOMB EQU *-1
  306. SOD T1
  307. PJN IOM5 IF MESSAGE MOVE NOT COMPLETE
  308. RJM IDM ISSUE DAYFILE MESSAGE
  309.  
  310. IOM SUBR ENTRY/EXIT
  311. LDD CM+4 SET OVERFLOW FLAGS
  312. STM -1
  313. STD T3
  314. LDN 7-2 SET INITIAL SHIFT COUNT
  315. STD T4
  316. IOM1 SOD T4 DECREMENT SHIFT COUNT
  317. MJP IOM2 IF ALL SHIFTS COMPLETE
  318. LDD T3 CHECK OVERFLOW FLAG
  319. RAD T3
  320. SHN 21-7
  321. PJN IOM1 IF OVERFLOW FLAG NOT SET
  322. LDM. IOMD-IDMA-5,T4 SET MESSAGE PREFIX
  323. IOME EQU *-1
  324. STM IDMA+6
  325. RJM IDM
  326. UJN IOM1 PROCESS REMAINING OVERFLOW FLAGS
  327.  
  328.  
  329.  
  330. IOMC DATA L*ACSO, 219902.325UNTS*
  331.  
  332. IOMH DATA L*UCAC, 536872.911UNTS.*
  333.  
  334. IOMD BSS 0 MESSAGE PREFIX TABLE
  335. CON 2RAD
  336. CON 2RPF
  337. CON 2RMT
  338. CON 2RMS
  339. CON 2RMP
  340. TITLE PRESET.
  341. PRS SPACE 4,25
  342. ** PRS - PRESET.
  343. *
  344. * ENTRY ((LA)-5 - (LA)-1) = INITIAL CALLING SEQUENCE.
  345. *
  346. * EXIT (T5) = PROFILE FILE DEVICE EST ORDINAL.
  347. * (T6) = LEVEL-3 BLOCK TRACK.
  348. * (T7) = LEVEL-3 BLOCK SECTOR.
  349. * (FA) = FNT ORDINAL OF PROFILE FILE.
  350. * (BA) = SECTOR BUFFER ADDRESS.
  351. * (UPFA) = (UPFD) = *LDN (FC)&AOFC*
  352. * (UPFE) = PARAMETER BLOCK ADDRESS.
  353. * (UPFB) = SET IF PROFILE FILE PRESENT.
  354. * (IOMB) = (IOMG) = RELOCATED ADDRESS OF *IDMA+5*.
  355. * (IDMA - IDMA+1) = JOB SEQUENCE NUMBER.
  356. * (SFAA) = BASE FNT ADDRESS / 10.
  357. * (ARFB) = *PSN* IF *PROFILE* ATTACHED OR NOT NEEDED.
  358. * PROFILE FILE ATTACHED IF PRESENT.
  359. * DRIVER SET IF NEEDED.
  360. * TO *UPFX* IF *ORET* ERROR FLAG SET OR FILE BUSY.
  361. *
  362. * USES BA, FA, T1, T2, CM - CM+4, T5 - T5+4.
  363. *
  364. * CALLS ARF.
  365. *
  366. * MACROS PAUSE, SETMS, SFA.
  367.  
  368.  
  369. PRS SUBR ENTRY/EXIT
  370. LDN 1 SET JSN FOR DAYFILE MESSAGE
  371. STD T1
  372. LDD LA
  373. RAM PRSB
  374. RAM IOMB
  375. STM IOMG
  376. RAM IOME
  377. LDM -4 SET JSN/SRU PARAMETER ADDRESS
  378. STM UPFE
  379. STM PRSA
  380. ADN 4
  381. STD T2
  382. PRS1 LDM. *,T1 MOVE JSN TO DAYFILE MESSAGE
  383. PRSA EQU *-1
  384. STM. IDMA,T1
  385. PRSB EQU *-1
  386. SOD T1
  387. PJN PRS1
  388. LDI T2 SET SERVICE CLASS
  389. SHN -6
  390. STM IDMA+4
  391.  
  392. * SET PROFILE FILE POINTERS FROM PARAMETER PASS.
  393.  
  394. LDC BUF SET BUFFER ADDRESS
  395. ADD LA
  396. STD BA
  397. LDM -3 SET PROFILE FILE FNT ORDINAL
  398. STD FA
  399. SFA FNT READ FNT ENTRY
  400. CRD CM
  401. ADN FSTG SET PROFILE FILE DEVICE EST ORDINAL
  402. CRD T5
  403. LDD CM+3 SET GLOBAL FILE STATUS
  404. LPN 77
  405. RAM ARFA
  406. LDM -1 SET LEVEL-3 BLOCK SECTOR
  407. STD T7
  408. LDM -5 EXTRACT FUNCTION CODE
  409. LPN 77
  410. LMN AOFC
  411. STD T1
  412. RAM UPFD
  413. LDD CP FETCH CONTROL POINT AREA OVERFLOW FLAGS
  414. ADN SRUW
  415. CRD CM
  416. LDD CM+1 CHECK SRU ACCUMULATOR OVERFLOW
  417. LPN 40
  418. ADD T1
  419. ZJN PRS2 IF NO NEED TO ACCESS PROFILE FILE
  420. LDM -2
  421. PRS2 STD T6
  422. NJN PRS4 IF PROFILE FILE PRESENT
  423. PRS3 STM ARFB
  424. LJM PRSX RETURN
  425.  
  426. PRS4 SETMS IO,RW
  427. LDM. MSD
  428. SHN 21-6
  429. MJN PRS6 IF PROFILE FILE DEVICE INACCESSIBLE
  430.  
  431. * ATTACH PROFILE FILE FOR UPDATE.
  432.  
  433. PRS5 LDN AFAS ATTACH PROFILE FILE
  434. RJM ARF
  435. ZJN PRS3 IF ATTACH COMPLETED
  436. SHN 21-11
  437. MJN PRS6 IF DEVICE INACCESSIBLE
  438. LDD CM+4
  439. LPN 2 CHECK REJECT
  440. LMN 2
  441. NJN PRS6 IF ATTACHED IN MODIFY MODE BY *PROFILE*
  442.  
  443. * WAIT FOR OTHER *0AU* TO RELEASE PROFILE FILE.
  444.  
  445. LDC PFDL/2
  446. SBN 1
  447. NJN *-1
  448. PAUSE
  449. LDD CM+1 CHECK ERROR FLAG
  450. LMN ORET
  451. NJN PRS5 IF NOT OPERATOR OVERRIDE
  452. LDN 1
  453. PRS6 LJM UPFX EXIT
  454. SPACE 4,10
  455. ** COMMON DECKS.
  456.  
  457.  
  458. FNT$ EQU 1 ASSEMBLE SYSTEM FNT ACCESS
  459. *CALL COMPGFP
  460. SPACE 4,10
  461. OVERFLOW 5,ZAUL
  462.  
  463. ERRNG ZAUL-BUF-503 BUFFER OVERFLOWS CALLING PROGRAM
  464. END