User Tools

Site Tools


cdc:nos2.source:opl871:install

INSTALL

Table Of Contents

  • [00008] INSTALL - INSTALL DEADSTART FILE.
  • [00085] DATA STORAGE.
  • [00105] MAIN PROGRAM.
  • [00107] MAIN PROGRAM.
  • [00126] SUBROUTINES.
  • [00128] CDF - COPY DEADSTART FILE.
  • [00319] PRESET.
  • [00321] PRS - PRESET PROGRAM.

Source Code

INSTALL.txt
  1. IDENT INSTALL,FETS
  2. ABS
  3. SST
  4. ENTRY INSTALL
  5. ENTRY RFL=
  6. ENTRY SSJ=
  7. SYSCOM B1 DEFINE (B1) = 1
  8. TITLE INSTALL - INSTALL DEADSTART FILE.
  9. *COMMENT INSTALL - INSTALL DEADSTART FILE.
  10. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  11. SPACE 4,10
  12. ***** INSTALL - INSTALL DEADSTART FILE.
  13. *
  14. * P. D. HAAS. 78/02/28.
  15. * D. R. HILGREN. 78/08/18.
  16. SPACE 4,10
  17. *** *INSTALL* COPIES A FILE TO A MASS STORAGE DEVICE AND
  18. * UPDATES THE DEADSTART SECTOR SO THAT THE RESULTING FILE CAN BE
  19. * DEADSTARTED. THE DEVICE SPECIFIED MUST BE A SINGLE UNIT
  20. * *LDAM* TYPE DEVICE WHICH IS *ON*, AVAILABLE, AND HAS HAD *CTI*
  21. * INSTALLED ON IT.
  22. SPACE 4,10
  23. *** CONTROL CARD CALL.
  24. *
  25. * INSTALL,LFN,EQXXX.
  26. *
  27. * LFN = MASS STORAGE FILE (ASSIGNED TO THE CONTROL POINT)
  28. * WHICH IS TO BE INSTALLED AS A SYSTEM DEADSTART
  29. * FILE. IF *LFN* IS OMITTED, DEFAULT IS FILE
  30. * *SYSTEM* (WHICH MUST BE ASSIGNED TO THE CONTROL
  31. * POINT). *SDF* IS A RESERVED FILE NAME AND CANNOT
  32. * BE USED AS *LFN*.
  33. *
  34. * XXX = EST ORDINAL ON WHICH *LFN* IS TO BE WRITTEN.
  35. *
  36. * CALLING JOB MUST BE SYSTEM ORIGIN OR MUST BE VALIDATED
  37. * FOR SYSTEM ORIGIN PRIVILEGES. IF THE DEADSTART FILE
  38. * TO BE INSTALLED IS ON TAPE, IT MUST FIRST BE COPIED TO
  39. * MASS STORAGE.
  40. SPACE 4,10
  41. *** DAYFILE MESSAGES.
  42. *
  43. * * DEADSTART FILE FORMAT ERROR.* - AN ERROR WAS DETECTED IN
  44. * THE DIRECTORY OF THE DEADSTART FILE.
  45. *
  46. * * INSTALL - ARGUMENT ERROR.* - AN ERROR WAS DETECTED IN THE
  47. * PARAMETERS ASSOCIATED WITH THE *INSTALL* CONTROL STATEMENT.
  48. *
  49. * * SDF INSTALLATION COMPLETE.* - SYSTEM DEADSTART FILE
  50. * INSTALLATION IS COMPLETED.
  51. SPACE 4,10
  52. ** COMMON DECKS.
  53.  
  54.  
  55. *CALL COMCMAC
  56. *CALL COMCCMD
  57. *CALL COMSPRD
  58. *CALL COMSSSD
  59. *CALL COMSSSJ
  60. SPACE 4,10
  61. **** ASSEMBLY CONSTANTS.
  62.  
  63.  
  64. CBUFL EQU 22000B BUFFER LENGTH
  65.  
  66. * CODE REQUIRES CBUFL DIVISIBLE BY 3
  67.  
  68. ERRNZ CBUFL/3*3-CBUFL
  69. ****
  70. ****
  71. FETS SPACE 4,10
  72. ** FETS.
  73.  
  74.  
  75. ORG 104B
  76. FETS BSS 0
  77.  
  78.  
  79. I BSS 0 INSTALL FILE
  80. SYSTEM RFILEB TBUF,TBUFL,FET=7
  81.  
  82.  
  83. O BSS 0 *SDF* FILE
  84. SDF RFILEB CBUF,CBUFL,FET=6,EPR
  85. TITLE DATA STORAGE.
  86. ** DATA STORAGE.
  87.  
  88.  
  89. EORF CON 1 CURRENT BLOCK EOR FLAG
  90. SPACE 4,10
  91. * SPECIAL ENTRY POINTS.
  92.  
  93.  
  94. SSJ= BSS 0
  95. VFD 12/0,24/-0,12/SYCS,12/IRSI
  96. BSSZ SSJ=+SSJL-*
  97. SPACE 4,10
  98. * *1IS* FUNCTION REQUESTS.
  99.  
  100.  
  101. VIFF VFD 18/0L1IS,6/0,12/1,12/0,12/I
  102. IDFF VFD 18/0L1IS,6/0,12/2,12/O,12/I
  103. CFIF VFD 18/0L1IS,6/0,12/3,12/O,12/I
  104. PMEF VFD 18/0L1IS,6/0,12/4,12/O,12/0
  105. TITLE MAIN PROGRAM.
  106. INSTALL SPACE 4,10
  107. ** INSTALL - MAIN PROGRAM.
  108.  
  109.  
  110. INSTALL BSS 0
  111. SB1 1 PRESET PROGRAM
  112. RJ PRS
  113. RJ CDF COPY DEADSTART FILE
  114. INS1 R= X7,2
  115. SX1 CFIF COMPLETE *SDF* INSTALLATION
  116. R= A7,ARGR
  117. SYSTEM SPC,,X1 CALL *1IS*
  118. SA1 CFIF
  119. ZR X1,INS2 IF *1IS* ASSIGNED
  120. RECALL
  121. EQ INS1 RETRY *SYSTEM REQUEST
  122.  
  123. INS2 RECALL ARGR WAIT *1IS* COMPLETE
  124. MESSAGE (=C* SDF INSTALLATION COMPLETE.*)
  125. ENDRUN
  126. TITLE SUBROUTINES.
  127. CDF SPACE 4,10
  128. ** CDF - COPY DEADSTART FILE.
  129. *
  130. * ENTRY (B2) = 2.
  131. *
  132. * USES A - ALL.
  133. * B - 3, 4, 5, 6, 7.
  134. * X - ALL.
  135. *
  136. * CALLS *1IS*.
  137. *
  138. * MACROS ABORT, MESSAGE, READCW, RECALL, SYSTEM, WRITECW.
  139. *
  140. * NOTE WHEN CHECKING FOR FET COMPLETE AND DATA IN THE BUFFER,
  141. * THE FET STATUS MUST BE PICKED UP BEFORE THE BUFFER
  142. * POINTER.
  143.  
  144.  
  145. CDF SUBR ENTRY/EXIT
  146. SB5 CBUF+CBUFL SET LIMIT ADDRESS
  147. SA2 I+3
  148. BX0 X0-X0 INDICATE NO BLOCKS AVAILABLE OR COMPLETE
  149. SA0 X2 INITIALIZE INPUT PSEUDO OUT POINTER
  150. EQ CDF13 INITIATE CONTROL WORD READ
  151.  
  152. * CHECK FOR INPUT BLOCK AVAILABLE.
  153.  
  154. CDF1 SA5 I CHECK INPUT FILE STATUS
  155. SA3 I+2 CHECK INPUT IN = PSEUDO OUT POINTER
  156. BX0 X0-X0 INDICATE NO BLOCKS AVAILABLE OR COMPLETE
  157. SX1 A0
  158. IX1 X3-X1
  159. LX5 59-0
  160. NZ X1,CDF3 IF INPUT BLOCK AVAILABLE
  161. PL X5,CDF8 IF BUFFER BUSY
  162. LX5 59-11-59+0
  163. NG X5,CDF15 IF PARITY ERROR STATUS IN FET
  164. LX5 59-3-59+11
  165. PL X5,CDF8 IF NOT EOF
  166.  
  167. * PROCESS EOF.
  168.  
  169. RECALL O WAIT OUTPUT FILE NOT BUSY
  170. SA3 O+2 CHECK DATA IN BUFFER
  171. SA4 A3+B1
  172. IX7 X3-X4
  173. ZR X7,CDF2 IF BUFFER EMPTY
  174. WRITECW X2,R FLUSH BUFFER
  175. CDF2 SA3 CDFB
  176. SA1 X2+B1
  177. SA4 A3+B1
  178. BX6 X3 SET EOF CONTROL WORDS IN BUFFER
  179. LX7 X4
  180. SA6 X1
  181. SA7 X1+B1
  182. SX6 A6 OUT = FIRST
  183. SX7 X1+B2 IN = FIRST+2
  184. SA6 A1+B2
  185. SA7 A1+B1
  186. WRITECW X2,R WRITE EOF
  187. EQ CDFX RETURN
  188.  
  189. * PROCESS INPUT BLOCK.
  190.  
  191. CDF3 SX0 B1 INDICATE INPUT BLOCK TRANSFERRED
  192. SA4 A0 CRACK CONTROL WORD HEADER
  193. SX2 5
  194. SX7 X4+4
  195. IX7 X7/X2 CALCULATE WORD COUNT
  196. AX4 36
  197. SB6 X7
  198. SA2 EORF CHECK FOR PREVIOUS EOR
  199. SB7 X4 PRU SIZE
  200. ZR X2,CDF6 IF PREVIOUS BLOCK NOT EOR
  201. SB4 A0+B1
  202. NE B4,B5,CDF4 IF NO WRAP AROUND
  203. SB4 CBUF SET FIRST
  204. CDF4 ZR B6,CDF6 IF ZERO LENGTH RECORD
  205. MX6 12
  206. SA1 B4 GET RECORD NAME
  207. BX6 X6*X1
  208. LX6 12
  209. SX6 X6-7700B
  210. NZ X6,CDF5 IF NOT 77 TABLE
  211. SB3 B4+B1
  212. SA1 B4+B1
  213. NE B3,B5,CDF5 IF NO WRAP AROUND
  214. SA1 CBUF
  215. CDF5 MX7 42
  216. BX7 X7*X1
  217. SA7 CDFA+1 ENTER NAME IN MESSAGE
  218. MESSAGE A7-B1,1 DISPLAY RECORD NAME
  219. CDF6 SB4 A0+B6 ADVANCE POINTER
  220. SX7 B6-B7 NO EOR IF FULL BLOCK
  221. SB4 B4+B2 SKIP CONTROL WORDS
  222. SB3 B4-B5
  223. LT B4,B5,CDF7 IF NO WRAP AROUND
  224. SB4 B3+CBUF
  225. CDF7 SX6 B4
  226. SA7 EORF SAVE EOR FLAG
  227. SA1 A0 GET CONTROL WORD HEADER
  228. NG X1,CDF15 IF ERROR OCCURRED ON THIS BLOCK
  229.  
  230. * TRANSFER BLOCK TO OUTPUT.
  231.  
  232. SA6 O+2 ADVANCE OUTPUT IN POINTER
  233. SB0 0
  234. SA0 B4+ ADVANCE INPUT PSEUDO OUT POINTER
  235.  
  236. * CHECK FOR REINITIATE CONTROL WORD WRITE.
  237.  
  238. CDF8 SA2 O CHECK OUTPUT FILE STATUS
  239. LX2 59-0
  240. SA1 A2+B2
  241. PL X2,CDF10 IF BUFFER BUSY
  242. SA2 A1+1 CHECK BUFFER THRESHOLD
  243. SX3 CBUFL/3
  244. IX1 X1-X2 (IN-OUT)
  245. IX2 X1-X3 (IN-OUT) - 1/3(BUFFER SIZE)
  246. ZR X1,CDF10 IF BUFFER EMPTY
  247. PL X1,CDF9 IF IN .GT. OUT
  248. LX3 1
  249. SB0 0
  250. IX2 X3+X1 2/3(BUFFER SIZE) - (OUT-IN)
  251. CDF9 NG X2,CDF10 IF BUFFER THRESHOLD NOT REACHED
  252. WRITECW O REINITIATE CONTROL WORD WRITE
  253.  
  254. * CHECK FOR OUTPUT BLOCK WRITTEN.
  255.  
  256. CDF10 SA1 O+3 CHECK OUTPUT OUT = INPUT OUT
  257. SA2 I+3
  258. IX3 X1-X2
  259. ZR X3,CDF11 IF BLOCK NOT WRITTEN
  260. BX6 X1
  261. SX0 1 INDICATE OUTPUT BLOCK COMPLETE
  262. SA6 I+3 UPDATE INPUT OUT = OUTPUT OUT
  263.  
  264. * CHECK FOR REINITIATE CONTROL WORD READ.
  265.  
  266. CDF11 SA4 I CHECK INPUT FILE STATUS
  267. LX4 59-0
  268. SA1 A4+B2
  269. PL X4,CDF14 IF BUFFER BUSY
  270. LX4 59-3-59+0
  271. SA2 A1+B1
  272. NG X4,CDF14 IF EOF/EOI ENCOUNTERED
  273. SX3 CBUFL/3 CHECK BUFFER THRESHOLD
  274. IX1 X1-X2 (IN-OUT)
  275. IX2 X3+X1 1/3(BUFFER SIZE) + (IN-OUT)
  276. ZR X1,CDF13 IF BUFFER EMPTY
  277. NG X1,CDF12 IF OUT .GT. IN
  278. LX3 1
  279. IX2 X1-X3 (IN-OUT) - 2/3(BUFFER SIZE)
  280. CDF12 PL X2,CDF14 IF BUFFER THRESHOLD NOT REACHED
  281.  
  282. CDF13 READCW I,17B INITIATE CONTROL WORD READ TO EOF
  283.  
  284. * CHECK FOR RECALL.
  285.  
  286. CDF14 NZ X0,CDF1 IF INPUT AND/OR OUTPUT BLOCKS TRANSFERRED
  287. RECALL WAIT FOR DATA TRANSFER
  288. EQ CDF1 CHECK FOR INPUT BLOCKS
  289.  
  290. * PROCESS PARITY ERROR.
  291.  
  292. CDF15 SX1 PMEF PROCESS MASS STORAGE ERROR
  293. SYSTEM SPC,,X1 CALL *1IS*
  294. SA1 PMEF
  295. ZR X1,CDF16 IF *SYSTEM* REQUEST PERFORMED
  296. RECALL
  297. EQ CDF15 RETRY *SYSTEM* REQUEST
  298.  
  299. CDF16 ABORT
  300.  
  301. CDFA DATA 10H COPYING
  302. CON 0,0
  303.  
  304. CDFB VFD 24/100B,36/0 EOF CONTROL WORDS
  305. VFD 12/17B,48/0
  306. SPACE 4,10
  307. ** COMMON DECKS.
  308.  
  309.  
  310. *CALL COMCCIO
  311. *CALL COMCSYS
  312. SPACE 4,10
  313. ** BUFFERS.
  314.  
  315.  
  316. USE BUFFERS
  317. CBUF BSS 0
  318. RFL= EQU CBUF+CBUFL+4
  319. TITLE PRESET.
  320. PRS SPACE 4,10
  321. ** PRS - PRESET PROGRAM.
  322. *
  323. * ENTRY (B1) = 1.
  324. *
  325. * EXIT (B2) = 2.
  326. *
  327. * USES A - 1, 2, 3, 4, 5, 6, 7.
  328. * B - 2, 3, 7.
  329. * X - ALL.
  330. *
  331. * CALLS DXB, *1IS*.
  332. *
  333. * MACROS ABORT, GETSPS, MESSAGE, READ, RECALL, REWIND, SKIPB,
  334. * SYSTEM.
  335.  
  336.  
  337. PRS SUBR ENTRY/EXIT
  338. GETSPS CHECK USER ACCESS
  339. SA1 ACTR GET ARGUMENT COUNT
  340. SA2 I
  341. SB7 X1
  342. ZR B7,PRS2 IF NO ARGUMENTS
  343. SB7 B7-B1
  344. NE B7,B1,PRS6 IF ILLEGAL ARGUMENT COUNT
  345.  
  346. * PROCESS INPUT FILE NAME.
  347.  
  348. R= A5,ARGR INPUT FILE NAME
  349. MX0 42
  350. SX4 3RSDF
  351. BX7 X0*X5
  352. LX4 42
  353. ZR X7,PRS1 IF NULL NAME (DEFAULT TO *SYSTEM*)
  354. BX4 X7-X4
  355. SX3 X2
  356. ZR X4,PRS6 IF FILE NAME CONFLICT
  357. BX7 X7+X3
  358. SA7 A2
  359.  
  360. * PROCESS EST ORDINAL.
  361.  
  362. PRS1 SA5 A5+B1 GET NEXT ARGUMENT
  363. LX5 12
  364. SX2 X5
  365. BX5 X5-X2
  366. SX2 X2-2REQ
  367. SB7 0
  368. NZ X2,PRS6 IF ILLEGAL PARAMETER
  369. RJ DXB CONVERT EST ORDINAL
  370. NZ X4,PRS6 IF CONVERSION ERROR
  371. SA6 O+5 SET EST ORDINAL IN *SDF* FET
  372. PRS2 R= X7,2
  373. SX1 VIFF VALIDATE INSTALL FILE
  374. R= A7,ARGR
  375. SYSTEM SPC,,X1 CALL *1IS*
  376. SA1 VIFF
  377. ZR X1,PRS2.1 IF *SYSTEM* REQUEST PERFORMED
  378. RECALL
  379. EQ PRS2 RETRY *SYSTEM* REQUEST
  380.  
  381. PRS2.1 SB2 B1+B1
  382. RECALL ARGR WAIT *1IS* COMPLETE
  383. EREXIT CDF15 SET ERROR EXIT PROCESSOR ADDRESS
  384. SX7 B2
  385. SX3 B1
  386. LX7 29-1 POSITION RANDOM REWRITE FLAG
  387. BX6 X3+X7
  388. SA6 O+6 SET RANDOM REWRITE REQUEST
  389.  
  390. * READ DIRECTORY RECORD ON INSTALL FILE.
  391.  
  392. SKIPB I,2,R BACKSPACE ACROSS EOF AND DIRECTORY
  393. SA1 I+6
  394. BX6 X1
  395. AX6 30
  396. PRS3 SX7 TBUF SET IN = FIRST
  397. SA6 I+6 SET RANDOM ADDRESS FOR READ
  398. SA7 X2+B2
  399. SA6 A6+B1
  400. READ X2,R
  401. SA4 X2+B2 IN POINTER
  402. SA3 A4+B1
  403. SA1 X3 CHECK FIRST WORD OF RECORD
  404. LX1 18
  405. SX6 X1-770000B
  406. LX1 6
  407. SB3 X1+B1
  408. NZ X6,PRS7 IF NOT 7700 (PRFX) TABLE
  409. SX7 X1-16B
  410. NZ X7,PRS7 IF TABLE WORD COUNT INCORRECT
  411. SA5 X3+B3 CHECK RECORD TYPE
  412. LX5 18
  413. SX7 X5-700000B
  414. SA1 X2
  415. SA3 X3+B1
  416. NZ X7,PRS7 IF NOT OPLD RECORD
  417. LX1 59-4 CHECK BUFFER STATUS
  418. MX0 42+12
  419. PL X1,PRS7 IF NOT EOR (BUFFER TOO SMALL)
  420. SX6 10B
  421. LX0 12
  422. BX6 X3+X6 DIRECTORY NAME + RECORD TYPE OPLD
  423. SA5 A5-B1
  424. SA6 X4 STORE SEARCH PARAMETER AT (IN)
  425.  
  426. * SEARCH DIRECTORY FOR FIRST OPLD ENTRY.
  427.  
  428. PRS4 BX7 X0*X3
  429. SA5 A5+2 GET DIRECTORY ENTRY
  430. BX3 X5-X6
  431. NZ X7,PRS4 IF NOT DIRECTORY OPLD ENTRY
  432. SX3 A5-B2
  433. BX6 X4-X3
  434. ZR X6,PRS7 IF NO OPLD ENTRY FOR DIRECTORY
  435. SA1 I+7 RANDOM ADDRESS FOR CURRENT DIRECTORY
  436. SA5 A5-1
  437. IX7 X5-X1
  438. BX6 X5 RANDOM ADDRESS OF FIRST DIRECTORY
  439. NZ X7,PRS3 IF NOT FIRST DIRECTORY ON FILE
  440. SA2 PRSA
  441. SA3 A4+B1 SET UP *OSB* SEARCH
  442. BX6 X2
  443. SA1 A1-B1
  444. SB3 X3+B3
  445. AX1 30
  446. SX7 B2
  447. SA6 X4 STORE SEARCH PARAMETER AT (IN)
  448. SX2 B1
  449. IX1 X1+X7 RANDOM ADDRESS OF EOI
  450. SA5 B3-B1
  451. LX2 47 POSITION RANDOM ACCESS BIT
  452. BX3 X6
  453.  
  454. * SEARCH DIRECTORY FOR *OSB* ENTRY.
  455.  
  456. PRS5 BX7 X0*X3
  457. SA5 A5+2
  458. BX3 X5-X6
  459. NZ X7,PRS5 IF NO MATCH
  460. SX3 A5-2
  461. BX6 X4-X3
  462. SA5 A5-B1
  463. ZR X6,PRS7 IF *OSB* NOT FOUND
  464. LX5 36
  465. BX6 X5+X1
  466. SA6 I+5 SAVE RELATIVE SECTOR ADDRESS OF *OSB*
  467. MX0 42
  468. BX0 -X2*X0 CLEAR RANDOM ACCESS BIT IN MASK
  469. SA1 A4-B1
  470. AX2 47-44 POSITION ERROR PROCESSING FLAG
  471. BX1 X0*X1
  472. SX7 CBUF RESET BUFFER POINTERS
  473. BX1 X1+X2
  474. BX6 X1+X7
  475. SA6 A1
  476. SA7 A1+B1
  477. SA7 A7+B1
  478. PRS5.1 R= X6,2
  479. SX1 IDFF INITIALIZE *SDF*
  480. R= A6,ARGR
  481. SYSTEM SPC,,X1 CALL *1IS*
  482. SA1 IDFF
  483. ZR X1,PRS5.2 IF *SYSTEM* REQUEST PERFORMED
  484. RECALL
  485. EQ PRS5.1 RETRY *SYSTEM* REQUEST
  486.  
  487. PRS5.2 REWIND I REWIND INSTALL FILE
  488. RECALL ARGR WAIT *1IS* COMPLETE
  489. EQ PRSX RETURN
  490.  
  491. PRS6 MESSAGE PRSB,0 * INSTALL - ARGUMENT ERROR.*
  492. ABORT
  493.  
  494. PRS7 MESSAGE PRSC,0 * DEADSTART FILE FORMAT ERROR.*
  495. ABORT
  496.  
  497. PRSA VFD 42/0LOSB,6/0,12/1
  498.  
  499. PRSB DATA C* INSTALL - ARGUMENT ERROR.*
  500. PRSC DATA C* DEADSTART FILE FORMAT ERROR.*
  501. SPACE 4,10
  502. ** COMMON DECKS.
  503.  
  504.  
  505. *CALL COMCCPM
  506. *CALL COMCDXB
  507. SPACE 4,10
  508. TBUF BSS 0
  509. TBUFL EQU CBUF+CBUFL-TBUF
  510. SPACE 4,10
  511. END
cdc/nos2.source/opl871/install.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator