User Tools

Site Tools


cdc:nos2.source:opl871:mac2

Table of Contents

MAC2

Table Of Contents

  • [00002] SSIR - SPECIAL SYSTEM INTERFACE ROUTINES.
  • [00068] SPECIAL PFM MACROS.
  • [00119] INIT - INTIALIZE *PFM* FET.
  • [00158] EXIT - COMMON EXIT FOR SPECIAL *PFM* MACROS.
  • [00461] BUDT - BUILD UNIT DEVICE TABLE.
  • [00594] CALLSS - ISSUE A CALLSS REQUEST TO A SUBSYSTEM.
  • [00629] CINTLK - GET/RELEASE CATALOG INTERLOCK.
  • [00696] EESET - SET EVENT TABLE.
  • [00731] GETACT - GET CURRENT JOB ACTIVITY COUNTS.
  • [00778] GETDI - GET DEVICE INHIBIT DATE AND TIME.
  • [00843] GETFAM - SET FAMILY TABLE AND SUBSYSTEM ID.
  • [01028] RDM - READ WORDS *TDGL* TO *DULL* OF MST ENTRY.
  • [01060] SFT - SEARCH FAMILY TABLE FOR A GIVEN FAMILY NAME.
  • [01115] GETMI - GET MACHINE INFORMATION.
  • [01207] GETPFP - GET PERMANENT FILE PARAMETERS.
  • [01239] GETSPS - RETURN SYSTEM ORIGIN PRIVILEGES STATUS.
  • [01273] RDEST - READ EST TO BUFFER.
  • [01318] RDESTC - READ EST INTO BUFFER.
  • [01404] RDPFC - READ PERMANENT FILE CATALOG.
  • [01414] ASSEMBLY CONSTANTS
  • [01425] MAIN LOOP
  • [01552] SUBROUTINES
  • [01554] AVC - ADVANCE CATALOG TRACK.
  • [01668] BMT - BUILD MASS STORAGE TABLE.
  • [01815] CAC - CLEAR PF ACTIVITY COUNT.
  • [01842] RCT - READ CATALOG TRACK.
  • [01912] SAC - SET PF ACTIVITY COUNT.
  • [01945] WORKING STORAGE AND BUFFERS.
  • [02001] ERR - ERROR INTERRUPT HANDLER.
  • [02036] SETPFP - SET PERMANENT FILE PARAMETERS.
  • [02078] SFCALL - PRIVILEGED SYSTEM CALL FROM SUBSYSTEM.

Source Code

MAC2.txt
  1. IDENT SSIR
  2. TITLE SSIR - SPECIAL SYSTEM INTERFACE ROUTINES.
  3. *COMMENT SPECIAL SYSTEM INTERFACE ROUTINES.
  4. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  5. SPACE 4
  6. ***** SSIR - SPECIAL SYSTEM INTERFACE ROUTINES.
  7. *
  8. * R. R. SEKHON 78/12/15.
  9. SPACE 4
  10. ***** *SSIR* IS A COLLECTION OF RELOCATABLE MODULES
  11. * THAT PROVIDE THE INTERFACE BETWEEN *SYMPL* ROUTINES
  12. * AND THE SPECIAL SYSTEM INTERFACE ROUTINES.
  13. *
  14. * THE CALLING ROUTINE SHOULD HAVE SSJ= ENTRY POINT IN
  15. * ORDER TO CALL THESE SPECIAL SYSTEM INTERFACE ROUTINES.
  16. * THE *SYMPL* CALLING SEQUENCE IS SHOWN IN EACH MODULE
  17. * ALONG WITH THE OTHER PERTINENT INFORMATION E.G ENTRY,
  18. * EXIT, *SYMPL* DATA TYPES NEEDED ETC..
  19. SPACE 4
  20. ***** *SSIR* MODULES TRANSLATE PARAMETERS IN *SYMPL*
  21. * CALL TO A FORMAT USABLE BY *COMPASS* CODE.
  22. *
  23. * ENTRY *SYMPL* CALL USES THE ACTUAL PARAMETER LIST, CALL
  24. * BY REFERENCE CALLING SEQUENCE WHERE
  25. * (A1) = FWA OF PARAMETER ADDRESS LIST.
  26. * ((A1)) = FIRST PARAMETER.
  27. * ((A1+1)) = SECOND PARAMETER.
  28. * . .
  29. * . .
  30. * . .
  31. * ((A1+N-1)) = N-TH PARAMETER.
  32. * ((A1+N)) = 0 (ZERO) (NOMINALLY)
  33. * (X1) = FIRST PARAMETER.
  34. *
  35. * NEEDS THESE MODULES NEED COMCMAC, COMCCMD AND THE
  36. * COMMON DECKS DEFINED IN *NOSTEXT*.
  37. *
  38. * NOTE B1 IS SET TO ONE UPON ENTRY TO EACH MODULE.
  39. *
  40. * OTHER *SSIR* IS A COLLECTION OF RELOCATABLE MODULES
  41. * COMBINED INTO ONE *MODIFY* DECK NAMED *SSIR*.
  42.  
  43. SPACE 4,10
  44. ***** DAYFILE MESSAGES.
  45. *
  46. * * RDPFC - ERROR IDLE, DN XX.* - *RDPFC*
  47. * SKIPPED DEVICE X ON ACCOUNT OF ERROR
  48. * IDLE SET ON IT.
  49. *
  50. * * RDPFC - PF UTILITY ACTIVE, DN XX.* - *RDPFC*
  51. * SKIPPED DEVICE X ON ACCOUNT OF PF UTILITY
  52. * ACTIVE ON THE DEVICE.
  53.  
  54. END
  55. IDENT PFMAC
  56. ENTRY ASIGNPF
  57. ENTRY CKPFETC
  58. ENTRY CLEARAF
  59. ENTRY DROPDS
  60. ENTRY DROPIDS
  61. ENTRY SETAF
  62. ENTRY SETASA
  63. ENTRY SETDA
  64. ENTRY UATTACH
  65. ENTRY UGET
  66. ENTRY UREPLAC
  67. SYSCOM B1
  68. TITLE SPECIAL PFM MACROS.
  69. *COMMENT SPECIAL PFM MACROS.
  70. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  71.  
  72. *CALL COMCMAC
  73. *CALL COMCCMD
  74. SPACE 4,40
  75. *** PFMAC - SPECIAL *PFM* MACROS.
  76. *
  77. * ENTRY (AF) = ALTERNATE STORAGE FLAG.
  78. * (AL) = ACCESS LEVEL FOR FILE.
  79. * (ASA) = ALTERNATE STORAGE ADDRESS.
  80. * 18/0,6/AT,36/AA
  81. * AT = ALTERNATE STORAGE TYPE.
  82. * AA = ALTERNATE STORAGE ADDRESS.
  83. * (CDT) = CREATION DATE AND TIME.
  84. * (EMA) = ERROR MESSAGE RETURN ADDRESS.
  85. * (FL) = FILE LENGTH BEING REQUESTED.
  86. * (FM) = FAMILY NAME.
  87. * (LFN) = LOCAL FILE NAME, LEFT JUSTIFIED, ZERO
  88. * FILLED, SEVEN CHARACTERS MAXIMUM.
  89. * (M) = ACCESS MODE.
  90. * = 0, READ/WRITE.
  91. * = 1, READ.
  92. * = 2, APPEND.
  93. * = 3, EXECUTE.
  94. * = 4, NONE.
  95. * = 5, MODIFY.
  96. * = 6, READ AND ALLOW MODIFY.
  97. * = 7, READ AND ALLOW APPEND.
  98. * = 8, UPDATE.
  99. * = 9, READ AND ALLOW UPDATE.
  100. *
  101. * (PFC) = 16 WORD BUFFER FOR THE CATALOG IMAGE.
  102. * (PFID) = PERMANENT FILE CATALOG INDEX.
  103. * 28/0,2/PEO,6/DN,12/TRACK,12/SECTOR
  104. * PEO = PFC ORDINAL.
  105. * DN = DEVICE NUMBER.
  106. * TRACK = TRACK NUMBER WHERE PFC RESIDES.
  107. * SECTOR = SECTOR ORDINAL.
  108. * (PFN) = PERMANENT FILE NAME, SAME CHARACTERISTICS
  109. * AS *LFN*.
  110. * (RP) = RETURN PROCESSING.
  111. * = 1, REAL TIME PROCESSING.
  112. * = 2, STANDARD ERROR PROCESSING ONLY.
  113. * = 3, STANDARD AND REAL TIME PROCESSING.
  114. * = 4, USER PROCESSING.
  115. * = 6, FULL ERROR PROCESSING OPTIONS.
  116. * (STAT) = *PFM* RETURN STATUS.
  117. * (UI) = USER INDEX.
  118. SPACE 4,15
  119. ** INIT - INTIALIZE *PFM* FET.
  120. *
  121. * ENTRY (A1) = FWA OF PARAMETER ADDRESS LIST.
  122. * (X2) = RETURN JUMP TO THE MACRO INTERFACE
  123. * CALLING ROUTINE.
  124. * (B2) = ERROR MESSAGE RETURN ADDRESS.
  125. *
  126. * EXIT (STATW) = ADDRESS OF RETURN STATUS WORD.
  127. * (EXITA) = RETURN JUMP TO THE MACRO INTERFACE
  128. * CALLING ROUTINE.
  129. * IF *PFET* COMPLETION BIT IS SET -
  130. * (PFET) = INITIALIZED *PFM* FET.
  131. * IF *PFET* IS BUSY -
  132. * (X6) .LT. ZERO (IF *PFET* IS BUSY, USER MAY RETRY).
  133. *
  134. * USES X - 2, 3, 6.
  135. * A - 2, 3, 6.
  136. * B - 1.
  137. *
  138. * MACROS SETFET.
  139.  
  140.  
  141. INIT SUBR ENTRY/EXIT
  142. SB1 1
  143. SA3 PFET FWA OF FET
  144. BX6 X2 SAVE RETURN ADDRESS FOR MACRO
  145. SA6 EXITA
  146. SA2 A1+B1 SAVE ADDRESS OF RETURN STATUS WORD
  147. BX6 X2
  148. SA6 STATW
  149. LX3 59-0 CHECK COMPLETION BIT
  150. MX6 -1 SET STATUS FOR (*PFET* BUSY, RETRY LATER)
  151. PL X3,EXIT1 IF *PFET* BUSY
  152. SETFET PFET,(LFN=#A1+B0),(ERP=#A1+2),(ERA=B2),(PFN=INITA)
  153. EQ INITX RETURN
  154.  
  155.  
  156. INITA CON 0 DEFAULT PFN
  157. SPACE 4,10
  158. ** EXIT - COMMON EXIT FOR SPECIAL *PFM* MACROS.
  159. *
  160. * ENTRY (EXITA) = RETURN JUMP TO THE MACRO INTERFACE
  161. * CALLING ROUTINE.
  162. * (STATW) = ADDRESS OF RETURN STATUS WORD.
  163. * AT *EXIT1*, TO RETURN STATUS SPECIFIED IN (X6).
  164. *
  165. * EXIT (STAT) = ERROR STATUS.
  166. * (STAT) .LT. ZERO, IF *PFET* BUSY.
  167. *
  168. * USES A - 1, 2, 6.
  169. * X - 0, 1, 2, 6.
  170. *
  171. * NOTES REFER TO *COMSPFM* FOR ERROR STATUS VALUES.
  172.  
  173.  
  174. EXIT BSS 0 ENTRY/EXIT
  175. SA1 PFET RETURN ERROR STATUS
  176. MX0 -8 MASK ERROR CODE
  177. AX1 10
  178. BX6 -X0*X1
  179. EXIT1 SA2 STATW STORE ERROR CODE IN STATUS RETURN WORD
  180. SA6 X2
  181. EXITA CON 0
  182. * EQU * SET FOR RETURN FROM MACRO CALLS
  183. ASIGNPF SPACE 4,25
  184. *** ASIGNPF - ASSIGN PERMANENT FILE SPACE.
  185. *
  186. * ASIGNPF(LFN,STAT,RP,FL,UI,FM,AL,EMA); (*SYMPL* CALL)
  187. *
  188. * USES A - 2, 3.
  189. * B - 2.
  190. * X - 2, 3.
  191. *
  192. * CALLS INIT, EXIT.
  193. *
  194. * MACROS ASSIGNPF.
  195.  
  196.  
  197. ASIGNPF SUBR ENTRY/EXIT
  198. SA2 ASIGNPF
  199. SA3 A1+7 GET ERROR MESSAGE RETURN ADDRESS
  200. SA3 X3
  201. SB2 X3
  202. RJ INIT INITIALIZE *PFM* FET
  203. ASSIGNPF PFET,#A1+3,SRB,#A1+4,#A1+5,#A1+6
  204. EQ EXIT RETURN
  205. CKPFETC SPACE 4,25
  206. *** CKPFETC - CHECK *PFM* FET COMPLETION.
  207. *
  208. * *SYMPL* CALL -
  209. * CKPFETC(LFN,STAT);
  210. *
  211. * EXIT (STAT) .LT. ZERO IF *PFET* BUSY.
  212. *
  213. * USES X - 2, 3, 6.
  214. * A - 2, 3, 6.
  215. * B - 1.
  216. *
  217. * CALLS EXIT.
  218.  
  219.  
  220. CKPFETC SUBR ENTRY/EXIT
  221. SB1 1
  222. SA2 CKPFETC SET RETURN ADDRESS
  223. BX6 X2
  224. SA6 EXITA
  225. SA2 A1+B1 ADDRESS OF RETURN STATUS WORD
  226. SA3 PFET
  227. BX6 X2
  228. LX3 59-0 CHECK COMPLETION BIT
  229. SA6 STATW SAVE ADDRESS OF RETURN STATUS WORD
  230. MX6 -1 SET STATUS FOR (*PFET* BUSY, RETRY LATER)
  231. PL X3,EXIT1 IF *PFET* BUSY
  232. EQ EXIT RETURN (WITH STATUS)
  233. CLEARAF SPACE 4,35
  234. *** CLEARAF - CLEAR ALTERNATE STORAGE FLAGS.
  235. *
  236. * CLEARAF(LFN,STAT,RP,UI,FM,PFID,ASA,CDT,AF,EMA);
  237. * (*SYMPL* CALL)
  238. *
  239. * USES A - 2, 3.
  240. * B - 2.
  241. * X - 2, 3.
  242. *
  243. * CALLS INIT, EXIT.
  244. *
  245. * MACROS CLEARAF.
  246.  
  247.  
  248. CLEARAF SUBR ENTRY/EXIT
  249. SA2 CLEARAF
  250. SA3 A1+9 GET ERROR MESSAGE RETURN ADDRESS
  251. SA3 X3
  252. SB2 X3
  253. RJ INIT INITIALIZE *PFM* FET
  254. CLEARAF PFET,SRB,#A1+3,#A1+4,#A1+5,#A1+6,#A1+7,#A1+8
  255. EQ EXIT RETURN
  256. DROPDS SPACE 4,30
  257. *** DROPDS - DROP DIRECT ACCESS FILE DISK SPACE.
  258. *
  259. * DROPDS(LFN,STAT,RP,UI,FM,PFID,ASA,CDT,EMA); (*SYMPL* CALL)
  260. *
  261. * USES A - 2, 3.
  262. * B - 2.
  263. * X - 2, 3.
  264. *
  265. * CALLS INIT, EXIT.
  266. *
  267. * MACROS DROPDS.
  268.  
  269.  
  270. DROPDS SUBR ENTRY/EXIT
  271. SA2 DROPDS
  272. SA3 A1+8 GET ERROR MESSAGE RETURN ADDRESS
  273. SA3 X3
  274. SB2 X3
  275. RJ INIT INITIALIZE *PFM* FET
  276. DROPDS PFET,SRB,#A1+3,#A1+4,#A1+5,#A1+6,#A1+7
  277. EQ EXIT RETURN
  278. DROPIDS SPACE 4,20
  279. *** DROPIDS - DROP INDIRECT ACCESS FILE DISK SPACE.
  280. *
  281. * *SYMPL* CALL -
  282. * DROPIDS(LFN,STAT,RP,UI,FM,PFID,ASA,CDT,EMA);
  283. *
  284. * USES X - 2, 3.
  285. * A - 2, 3.
  286. * B - 2.
  287. *
  288. * CALLS INIT.
  289. *
  290. * MACROS DROPIDS.
  291.  
  292.  
  293. DROPIDS SUBR ENTRY/EXIT
  294. SA2 DROPIDS
  295. SA3 A1+8 GET ERROR MESSAGE RETURN ADDRESS
  296. SA3 X3
  297. SB2 X3
  298. RJ INIT INITIALIZE *PFM* FET
  299. DROPIDS PFET,SRB,#A1+3,#A1+4,#A1+5,#A1+6,#A1+7
  300. EQ EXIT RETURN
  301. SETAF SPACE 4,35
  302. *** SETAF - SET ALTERNATE STORAGE FLAGS.
  303. *
  304. * SETAF(LFN,STAT,RP,UI,FM,PFID,ASA,CDT,AF,EMA); (*SYMPL* CALL)
  305. *
  306. * USES A - 2, 3.
  307. * B - 2.
  308. * X - 2, 3.
  309. *
  310. * CALLS INIT, EXIT.
  311. *
  312. * MACROS SETAF.
  313.  
  314.  
  315. SETAF SUBR ENTRY/EXIT
  316. SA2 SETAF
  317. SA3 A1+9 GET ERROR MESSAGE RETURN ADDRESS
  318. SA3 X3
  319. SB2 X3
  320. RJ INIT INITIALIZE *PFM* FET
  321. SETAF PFET,SRB,#A1+3,#A1+4,#A1+5,#A1+6,#A1+7,#A1+8
  322. EQ EXIT RETURN
  323. SETASA SPACE 4,30
  324. *** SETASA - SET ALTERNATE STORAGE ADDRESS IN CATALOG.
  325. *
  326. * SETASA(LFN,STAT,RP,UI,FM,PFID,ASA,CDT,EMA); (*SYMPL* CALL)
  327. *
  328. * USES A - 2, 3.
  329. * B - 2.
  330. * X - 2, 3.
  331. *
  332. * CALLS INIT, EXIT.
  333. *
  334. * MACROS SETASA.
  335.  
  336.  
  337. SETASA SUBR ENTRY/EXIT
  338. SA2 SETASA
  339. SA3 A1+8 GET ERROR MESSAGE RETURN ADDRESS
  340. SA3 X3
  341. SB2 X3
  342. RJ INIT INITIALIZE *PFM* FET
  343. SETASA PFET,SRB,#A1+3,#A1+4,#A1+5,#A1+6,#A1+7
  344. EQ EXIT RETURN
  345.  
  346. SETDA SPACE 4,30
  347. *** SETDA - SET DISK ADDRESS.
  348. *
  349. * SETDA(LFN,STAT,RP,UI,FM,PFID,ASA,CDT,EMA); (*SYMPL* CALL)
  350. *
  351. * USES A - 2, 3.
  352. * B - 2.
  353. * X - 2, 3.
  354. *
  355. * CALLS INIT, EXIT.
  356. *
  357. * MACROS SETDA.
  358.  
  359.  
  360. SETDA SUBR ENTRY/EXIT
  361. SA2 SETDA
  362. SA3 A1+8 GET ERROR MESSAGE RETURN ADDRESS
  363. SA3 X3
  364. SB2 X3
  365. RJ INIT INITIALIZE *PFM* FET
  366. SETDA PFET,SRB,#A1+3,#A1+4,#A1+5,#A1+6,#A1+7
  367. EQ EXIT RETURN
  368. UATTACH SPACE 4,45
  369. *** UATTACH - UTILITY ATTACH.
  370. *
  371. * UATTACH(LFN,STAT,RP,PFN,M,UI,FM,PFID,PFC,CDT,EMA);
  372. * (*SYMPL* CALL)
  373. *
  374. * USES A - 2, 3.
  375. * B - 2.
  376. * X - 2, 3.
  377. *
  378. * CALLS INIT, EXIT.
  379. *
  380. * MACROS UATTACH.
  381.  
  382.  
  383. UATTACH SUBR ENTRY/EXIT
  384. SA2 UATTACH
  385. SA3 A1+10 GET ERROR MESSAGE RETURN ADDRESS
  386. SA3 X3
  387. SB2 X3
  388. RJ INIT INITIALIZE *PFM* FET
  389. SA2 A1+8 GET ADDRESS OF *PFC*
  390. SB2 X2
  391. UATTACH PFET,#A1+3,#A1+4,SRB,#A1+5,#A1+6,#A1+7,B2,#A1+9
  392. EQ EXIT RETURN
  393. UGET SPACE 4,20
  394. *** UGET - UTILITY GET.
  395. *
  396. * *SYMPL* CALL -
  397. * UGET(LFN,STAT,RP,PFN,UI,FM,PFID,PFC,CDT,EMA);
  398. *
  399. * EXIT *UGET* FUNCTION INITIATED.
  400. * (FUNCTION IS PERFORMED WITHOUT AUTORECALL).
  401. *
  402. * USES X - 2, 3.
  403. * A - 2, 3.
  404. * B - 2.
  405. *
  406. * CALLS INIT.
  407. *
  408. * MACROS UGET.
  409.  
  410.  
  411. UGET SUBR ENTRY/EXIT
  412. SA2 UGET
  413. SA3 A1+9 GET ERROR MESSAGE RETURN ADDRESS
  414. SA3 X3
  415. SB2 X3
  416. RJ INIT INITIALIZE *PFM* FET
  417. SA2 A1+7 GET ADDRESS OF *PFC*
  418. SB2 X2
  419. UGET PFET,#A1+3,SRB,#A1+4,#A1+5,#A1+6,B2,#A1+8
  420. EQ UGETX RETURN
  421. UREPLAC SPACE 4,20
  422. *** UREPLAC - UTILITY REPLACE.
  423. *
  424. * *SYMPL* CALL -
  425. * UREPLAC(LFN,STAT,RP,PFN,UI,FM,PFID,ASA,CDT,EMA);
  426. *
  427. * EXIT *UREPLACE* FUNCTION INITIATED.
  428. * (FUNCTION IS PERFORMED WITHOUT AUTORECALL).
  429. *
  430. * USES X - 2, 3.
  431. * A - 2, 3.
  432. * B - 2.
  433. *
  434. * CALLS INIT.
  435. *
  436. * MACROS UREPLAC.
  437.  
  438.  
  439. UREPLAC SUBR ENTRY/EXIT
  440. SA2 UREPLAC
  441. SA3 A1+9 GET ERROR MESSAGE RETURN ADDRESS
  442. SA3 X3
  443. SB2 X3
  444. RJ INIT INITIALIZE *PFM* FET
  445. UREPLAC PFET,#A1+3,SRB,#A1+4,#A1+5,#A1+6,#A1+7,#A1+8
  446. EQ UREPLACX RETURN
  447. FET SPACE 4,10
  448. * *PFM* FET USED/SHARED BY ALL MACRO INTERFACE ROUTINES.
  449.  
  450. PFET FILEB DMMY,DMYL,(FET=16D) DUMMY *PFM* FET
  451. DMYL EQU 0 LENGTH OF DUMMY *CIO* BUFFER
  452. DMMY BSS 0
  453. SRB BSS 4 SPECIAL REQUEST BLOCK
  454. STATW BSS 1 ADDRESS OF *STAT*
  455.  
  456. END
  457. IDENT BUDT
  458. ENTRY BUDT
  459. SYSCOM B1
  460. SST
  461. TITLE BUDT - BUILD UNIT DEVICE TABLE.
  462. *COMMENT BUILD UNIT DEVICE TABLE.
  463. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  464.  
  465. *CALL COMCMAC
  466.  
  467. UDTN EQU 5 NUMBER OF WORDS PER *UDT* ENTRY
  468. BUDT SPACE 4,15
  469. *** BUDT - BUILD UNIT DEVICE TABLE.
  470. *
  471. * THE ENTIRE EST IS READ, VIA *RDESTC*. FOR EACH EST ENTRY
  472. * FOR *MSS* EQUIPMENT A CORRESPONDING ENTRY IS SET
  473. * UP IN THE UNIT DEVICE TABLE. *MSID* REPRESENTS
  474. * THE *MSF* HARDWARE COMPONENT IDENTIFIER.
  475. *
  476. * BUDT(UDT); (*SYMPL* CALL)
  477. *
  478. * EXIT (UDT) = UNIT DEVICE TABLE.
  479. *
  480. * USES A - 1, 2, 3, 4, 5, 6.
  481. * B - 1, 2, 3, 4, 5.
  482. * X - 0, 1, 2, 3, 4, 5, 6.
  483. *
  484. * CALLS RDESTC.
  485. *
  486. * MACROS SYSTEM.
  487. *
  488. * NOTES ARRAY *UDT* MUST BE 65 CM WORDS LONG.
  489.  
  490. BUDT SUBR ENTRY/EXIT
  491. BX6 X1 SAVE ADDRESS OF *UDT*
  492. SB4 B0
  493. SA6 UDTA
  494.  
  495. * READ EST INTO *ESTB*.
  496.  
  497. SB2 ESTB SET EST BUFFER ADDRESS
  498. SB3 ESTN
  499. SB1 1
  500. RJ =XRDESTC READ EST INTO *ESTB*
  501. SX4 UDTN NUMBER OF WORDS PER *UDT* ENTRY
  502. SA1 ESTN SET LAST EST ORDINAL + 1
  503. SB2 X1
  504. SB3 NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  505. SA5 UDTA ADDRESS OF BUFFER TO HOLD *UDT*
  506. SB5 X5
  507.  
  508. * SEARCH EST AND BUILD *UDT*.
  509.  
  510. BDT1 SB3 B3+B1
  511. EQ B2,B3,BUDTX IF END OF EST
  512. SX1 B3 CALCULATE *ESTB* OFFSET
  513. R= X0,ESTE
  514. IX1 X1*X0
  515. SA1 ESTB+X1+EQDE GET NEXT EST ENTRY
  516. MX0 -11 CHECK FOR *MSS* EQUIPMENT
  517. LX0 22-10
  518. BX2 -X0*X1
  519. LX2 10-22
  520. SX3 X2-2RCS
  521. ZR X3,BDT2 IF SELECTOR EST ENTRY
  522. SX3 X2-2RCT
  523. NZ X3,BDT1 IF NOT TRANSPORT EST ENTRY
  524. MX0 -2 GET POSITION OF TRANSPORT IN *CSU*
  525. LX0 7-1
  526. BX6 -X0*X1 SET TRANSPORT POSITION IN *UDT*
  527. SB4 B4+B1 INCREMENT INDEX OF *UDT* ENTRY FOR *CSU*
  528. EQ BDT3 BUILD REMAINING FIELDS IN *UDT* ENTRY
  529.  
  530. BDT2 SB4 B0 INITIALIZE INDEX OF *UDT* ENTRY FOR *CSU*
  531. BX6 X6-X6
  532. MX0 -4 GET *CSU* INDEX
  533. LX0 8-3
  534. BX2 -X0*X1
  535. LX2 3-8
  536. SX2 X2-1 CALCULATE ADDRESS OF *UDT* ENTRY FOR *CSU*
  537. IX3 X2*X4
  538. SX5 X3+B5
  539. BDT3 MX0 5 BUILD *UDT* ENTRY
  540. LX0 40-59
  541. BX2 X0*X1
  542. LX6 26-7
  543. LX2 58-40
  544. BX6 X2+X6 SET CHANNEL NUMBER IN *UDT* ENTRY
  545. MX0 4 GET *MSA* MSID
  546. LX0 35-59
  547. BX2 X0*X1
  548. LX2 53-35
  549. BX6 X2+X6 SET *MSA* MSID IN *UDT* ENTRY
  550. MX0 8 GET UNIT MSID
  551. LX0 31-59
  552. BX2 X0*X1
  553. LX2 49-31
  554. BX6 X2+X6 SET UNIT MSID IN *UDT* ENTRY
  555. MX0 1
  556. LX0 41-59
  557. BX6 X0+X6 MERGE ON/OFF STATUS
  558. LX0 23-41
  559. BX2 X0*X1 CHECK ON/OFF STATUS
  560. ZR X2,BDT4 IF ON
  561. SX0 B0 OFF STATUS
  562. BDT4 LX0 40-23
  563. BX6 X0+X6 SET CLEAN UP BIT
  564. SX2 B3 SET EST ORDINAL
  565. MX0 -9
  566. BX2 -X0*X2
  567. LX2 38-8
  568. BX6 X2+X6
  569. MX0 -3 GET EQUIPMENT (CONTROLLER) NUMBER
  570. LX0 11-2
  571. BX2 -X0*X1
  572. LX2 29-11
  573. BX6 X2+X6 SET EQUIPMENT (CONTROLLER) NUMBER
  574. MX0 -2 GET *MSA* NUMBER ON COUPLER
  575. LX0 4-1
  576. BX2 -X0*X1
  577. LX2 22-4
  578. BX6 X2+X6 SET *MSA* NUMBER IN *UDT* ENTRY
  579. MX0 -3 GET UNIT NUMBER ON *MSA*
  580. BX2 -X0*X1
  581. LX2 20-2
  582. BX6 X2+X6 SET UNIT NUMBER IN *UDT* ENTRY
  583. SA6 X5+B4 SET UP *UDT* ENTRY IN THE BUFFER
  584. EQ BDT1 PROCESS NEXT EST ENTRY
  585.  
  586. ESTB BSS ESMX*ESTE EST BUFFER
  587. ESTN BSS 1 NUMBER OF EST ENTRIES RETURNED
  588. UDTA BSS 1 ADDRESS OF BUFFER TO HOLD *UDT*
  589.  
  590. END
  591. IDENT CALLSS
  592. ENTRY CALLSS
  593. SYSCOM B1
  594. TITLE CALLSS - ISSUE A CALLSS REQUEST TO A SUBSYSTEM.
  595. *COMMENT ISSUES A CALLSS REQUEST TO A SUBSYSTEM.
  596. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  597.  
  598. *CALL COMCMAC
  599. CALLSS SPACE 4,15
  600. *** CALLSS - ISSUES A CALLSS REQUEST TO A SUBSYSTEM.
  601. *
  602. * CALLSS(SS,PADDR,R); (*SYMPL* CALL)
  603. *
  604. * ENTRY (SS) = SUBSYSTEM QUEUE PRIORITY.
  605. * (PADDR) = PARAMETER BLOCK.
  606. * (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
  607. *
  608. * USES A - 1, 3, 4, 5.
  609. * B - 1.
  610. * X - 1, 3, 4, 5.
  611. *
  612. * MACROS CALLSS, RECALL.
  613.  
  614. CALLSS SUBR ENTRY/EXIT
  615. SB1 1
  616. SA3 A1+B1 GET ADDRESS OF *PADDR*
  617. SA4 A3+B1 GET ADDRESS OF *R*
  618. SA1 X1 GET *SS*
  619. SA5 X4 GET *R*
  620. CALLSS X1,X3
  621. ZR X5,CALLSSX IF RECALL NOT REQUESTED
  622. RECALL X3
  623. EQ CALLSSX RETURN
  624.  
  625. END
  626. IDENT CINTLK
  627. ENTRY CINTLK
  628. SYSCOM B1
  629. TITLE CINTLK - GET/RELEASE CATALOG INTERLOCK.
  630. *COMMENT GET/RELEASE CATALOG INTERLOCK.
  631. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  632.  
  633. *CALL COMCMAC
  634. *CALL COMSPFU
  635. CINTLK SPACE 4,20
  636. *** CINTLK - GET/RELEASE CATALOG INTERLOCK.
  637. *
  638. * CINTLK(FUNC,FAM,DM); (*SYMPL* CALL)
  639. *
  640. * ENTRY (FUNC) = 3/AT,3/F.
  641. * AT = ALTERNATE STORAGE TYPE -
  642. * = 0 (ATNO), DEAFAULT (*MSS*).
  643. * = 1 (ATMS), *MSS*.
  644. * = 2 (ATAS), *MSE*.
  645. *
  646. * F = FUNCTION -
  647. * = 0, GET LOCK.
  648. * = 1, RELEASE LOCK.
  649. *
  650. * (FAM) = FAMILY NAME, LEFT JUSTIFIED,
  651. * SEVEN CHARACTERS MAXIMUM.
  652. * (DM) = DEVICE MASK, RIGHT JUSTIFIED (6 BITS).
  653. *
  654. * USES X - 0, 1, 2, 3, 6.
  655. * A - 1, 2, 3, 6.
  656. * B - 1.
  657. *
  658. * MACROS CALLPFU.
  659.  
  660.  
  661. CINTLK SUBR ENTRY/EXIT
  662. SB1 1
  663. SA2 A1+B1 GET ADDRESS OF *FAM*
  664. SA3 A2+B1 GET ADDRESS OF *DM*
  665. SA1 X1 GET *FUNC* (3/AT,3/F)
  666. MX0 -2 BUILD FUNCTION CONTROL WORD
  667. LX0 3
  668. BX6 -X0*X1 GET ALTERNATE STORAGE TYPE
  669. LX6 3
  670. SX6 X6+B1 ADD COMPLETION BIT
  671. LX2 59-17 SET FAMILY ADDRESS
  672. BX6 X6+X2
  673. LX3 41-17 SET DEVICE MASK ADDRESS
  674. BX6 X6+X3
  675. SA6 CTCW STORE CONTROL WORD
  676. LX1 59-0 (FUNCTION TO SIGN BIT)
  677. NG X1,CIN1 IF RELEASE LOCK REQUEST
  678. CALLPFU CTCW,CTGE,R GET LOCK
  679. EQ CINTLKX RETURN
  680.  
  681. CIN1 CALLPFU CTCW,CTRE,R RELEASE LOCK
  682. EQ CINTLKX RETURN
  683.  
  684. * CONTROL WORD FORMAT -
  685. * 18/FAM,18/DM,12/,6/AT,5/,1/C.
  686.  
  687. CTCW VFD 59/0,1/1 *CALLPFU* CONTROL WORD
  688.  
  689. *CALL COMCPFU
  690. *CALL COMSPFU
  691.  
  692. END
  693. IDENT EESET
  694. ENTRY EESET
  695. SYSCOM B1
  696. TITLE EESET - SET EVENT TABLE.
  697. *COMMENT SET EVENT TABLE.
  698. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  699.  
  700. *CALL COMCMAC
  701. EESET SPACE 4,15
  702. *** EESET - SET EVENT TABLE.
  703. *
  704. * EESET(EVENT); (*SYMPL* CALL)
  705. *
  706. * ENTRY (EVENT) = EVENT DESCRIPTOR.
  707. *T EVENT 39/, 9/ EQ, 12/ CONDITION
  708. *
  709. * EQ = EST ORDINAL OF THE EQUIPMENT ON
  710. * WHICH THE SYSTEM IS WAITING FOR THE
  711. * CONDITION TO OCCUR.
  712. * CONDITION = EVENT VARIABLE.
  713. *
  714. * USES A - 1.
  715. * B - 1.
  716. * X - 1.
  717. *
  718. * MACROS EESET.
  719.  
  720.  
  721. EESET SUBR ENTRY/EXIT
  722. SB1 1
  723. SA1 X1 GET *EVENT*
  724. EESET X1
  725. EQ EESETX RETURN
  726.  
  727. END
  728. IDENT GETACT
  729. ENTRY GETACT
  730. SYSCOM B1
  731. TITLE GETACT - GET CURRENT JOB ACTIVITY COUNTS.
  732. *COMMENT GET CURRENT JOB ACTIVITY COUNTS.
  733. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  734.  
  735. *CALL COMCMAC
  736. *CALL COMCCMD
  737. GETACT SPACE 4,30
  738. *** GETACT - GET CURRENT JOB ACTIVITY COUNTS.
  739. *
  740. * GETACT(ADDR); (*SYMPL* CALL)
  741. *
  742. * ENTRY ADDR = ADDRESS FOR RESPONSE.
  743. *
  744. * EXIT (ADDR) = JOB ACTIVITY INFORMATION IN THE
  745. * FOLLOWING FORMAT.
  746. * 12/SHORT,1/L,23/0,12/INS,11/0,1/C
  747. *
  748. * SHORT SHORT TERM ACTIVITY COUNTS, INCREMENTED BY
  749. * ONE FOR EACH OF THE FOLLOWING.
  750. * PPU ACTIVITY.
  751. * PPU IN RECALL.
  752. * TAPE ACTIVITY.
  753. * ROLLOUT REQUESTED.
  754. * SCP WAIT RESPONSE INDICATORS.
  755. * TERMINAL OUTPUT FET ADDRESS PRESENT.
  756. * L LONG TERM ACTIVITY COUNTS. FIELD IS ONE
  757. * IF ANY OF THE FOLLOWING CONDITIONS ARE MET.
  758. * *K* OR *L* DISPLAY INTERFACE ACTIVE.
  759. * *CFO* ENTRY ENABLED.
  760. * SCP LONG TERM CONNECTION ESTABLISHED.
  761. * INS RESERVED FOR INSTALLATIONS.
  762. * C COMPLETE BIT, ALWAYS ONE UPON COMPLETION.
  763. *
  764. * USES B - 1.
  765. *
  766. * MACROS GETACT.
  767.  
  768.  
  769. GETACT SUBR ENTRY/EXIT
  770. SB1 1
  771. GETACT X1
  772. EQ GETACTX RETURN
  773.  
  774. END
  775. IDENT GETDI
  776. ENTRY GETDI
  777. SYSCOM B1
  778. TITLE GETDI - GET DEVICE INHIBIT DATE AND TIME.
  779. *COMMENT GET DEVICE INHIBIT DATE AND TIME.
  780. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  781.  
  782. *CALL COMCMAC
  783. *CALL COMCCMD
  784. *CALL COMSMMF
  785. *CALL COMSSFM
  786. GETDI SPACE 4,15
  787. *** GETDI - GET DEVICE INHIBIT DATE AND TIME.
  788. *
  789. * GETDI(EQ,INDT); (*SYMPL* CALL)
  790. *
  791. * ENTRY (EQ) = EST ORDINAL.
  792. *
  793. * EXIT (INDT) = DEVICE INHIBIT DATE AND TIME.
  794. * (CEQN) = CURRENT EST ORDINAL.
  795. * (CIDT) = CURRENT DEVICE INHIBIT DATE AND TIME.
  796. * (INIT) = 1.
  797. *
  798. * USES A - 1, 2, 3, 5, 6, 7.
  799. * B - 1.
  800. * X - 1, 2, 3, 5, 6, 7.
  801. *
  802. * MACROS GETDI.
  803.  
  804.  
  805. GETDI SUBR ENTRY/EXIT
  806. SB1 1
  807. SA5 A1+B1 SAVE ADDRESS OF *INDT*
  808. SA1 X1
  809. SA2 INIT
  810. ZR X2,GTD1 IF FIRST CALL
  811. SA2 CEQN COMPARE EST ORDINALS
  812. BX3 X2-X1
  813. NZ X3,GTD2 IF DIFFERENT FROM LAST CALL
  814. SA1 CIDT
  815. EQ GTD3 RETURN DEVICE INHIBIT DATE AND TIME
  816.  
  817. GTD1 SX7 B1+
  818. SA7 A2+
  819. GTD2 BX6 X1
  820. SA6 CEQN SAVE EST ORDINAL
  821. GETDI SFET,X1
  822. SA1 BUF+MDIT RETURN DEVICE INHIBIT DATE AND TIME
  823. GTD3 BX6 X1
  824. SA6 CIDT SAVE CURRENT DEVICE INHIBIT DATE AND TIME
  825. SA6 X5
  826. EQ GETDIX RETURN
  827.  
  828. *CALL COMCSFM
  829.  
  830. SFET FILEB BUF,BUFL,(FET=10D) FET FOR *SFM* CALL
  831. BUFL EQU 101B
  832. BUF BSS BUFL
  833. CEQN CON 0 CURRENT EST ORDINAL
  834. CIDT BSS 1 CURRENT DEVICE INHIBIT DATE AND TIME
  835. INIT CON 0 INITIAL CALL INDICATOR
  836.  
  837. END
  838. IDENT GETFAM
  839. ENTRY GETFAM
  840. SST
  841. EXT RDESTC
  842. SYSCOM B1
  843. TITLE GETFAM - SET FAMILY TABLE AND SUBSYSTEM ID.
  844. *COMMENT SET FAMILY TABLE AND SUBSYSTEM ID.
  845. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  846.  
  847. *CALL COMCMAC
  848.  
  849. MSTN EQU DULL-TDGL+1 NUMBER OF MST ENTRY WORDS TO READ
  850. GETFAM SPACE 4,25
  851. *** GETFAM - SET FAMILY TABLE AND SUBSYSTEM ID.
  852. *
  853. * GETFAM(FMT,NUM,LNK,DEF,SS); (*SYMPL* CALL)
  854. *
  855. * ENTRY (SS) = ALTERNATE STORAGE TYPE -
  856. * = 0, DEFAULT (*MSS*).
  857. * = 1, *MSS*.
  858. * = 2, *MSE*.
  859. *
  860. * EXIT (FMT) = FAMILY TABLE.
  861. * 42/FM,18/MSTA
  862. * FM = FAMILY NAME.
  863. * MSTA = ADDRESS OF MST ENTRY.
  864. *
  865. * (NUM) = NUMBER OF ENTRIES IN FAMILY TABLE.
  866. * (LNK) = LINK INFORMATION.
  867. * 12/DT,12/0,36/LNKO
  868. * DT = LINK DEVICE TYPE.
  869. * LNKO = ORDINAL OF ENTRY IN FAMILY TABLE
  870. * CONTAINING FAMILY NAME OF LINK DEVICE.
  871. * (DEF) = ORDINAL OF ENTRY CONTAINING DEFAULT
  872. * FAMILY NAME.
  873. * (SS) = SUBSYSTEM IDENTIFIER.
  874. *
  875. * USES A - 1, 2, 3, 4, 5, 6, 7.
  876. * B - 1, 2, 3, 4, 5, 6, 7.
  877. * X - ALL.
  878. *
  879. * CALLS RDESTC.
  880. *
  881. * MACROS SYSTEM.
  882. *
  883. * NOTES ARRAY *FMT* MUST BE 24 CM WORDS LONG.
  884.  
  885.  
  886. GETFAM SUBR ENTRY/EXIT
  887. SB1 1
  888. SA2 A1+B1 GET ADDRESS OF *NUM*
  889. SA3 A2+B1 GET ADDRESS OF *LNK*
  890. SA4 A3+B1 GET ADDRESS OF *DEF*
  891. BX7 X1 SAVE ADDRESS OF *FMT*
  892. SA7 FMTA
  893. BX7 X2 SAVE ADDRESS OF *NUM*
  894. SA7 NUMA
  895. BX6 X3 SAVE ADDRESS OF *LNK*
  896. BX7 X4 SAVE ADDRESS OF *DEF*
  897. SA6 LNKA
  898. MX6 1
  899. SA7 DEFA
  900. SA5 A4+B1 GET ADDRESS OF *SS*
  901. MX7 -2
  902. SA1 X5 GET ALTERNATE STORAGE TYPE
  903. BX1 -X7*X1
  904. SA1 X1+ASID SUBSYSTEM ID
  905. BX7 X1
  906. SA7 X5 RETURN SUBSYSTEM ID
  907.  
  908. * READ WORD *PFNL* IN *CMR*.
  909.  
  910. SA1 PFNA
  911. SA6 PFNB
  912. SYSTEM RSB,R,A1
  913.  
  914. * READ WORD *MMFL* IN *CMR*.
  915.  
  916. MX7 1
  917. SA1 MMFA
  918. SA7 MMFB
  919. SYSTEM RSB,R,A1
  920.  
  921.  
  922. SB2 ESTB BUFFER TO RECEIVE EST ENTRIES
  923. SB3 ESTN
  924. SB4 -B1 READ MASS STORAGE ENTRIES
  925. RJ =XRDESTC READ EST INTO *ESTB*
  926. MX0 -12
  927. SA1 PFNB GET DEFAULT FAMILY EST ORDINAL
  928. LX1 -12
  929. BX6 -X0*X1
  930. SB2 X6
  931. SA1 MMFB GET EST ORDINAL OF LINK FAMILY
  932. LX1 -36
  933. MX0 -9
  934. SA5 ESTN
  935. BX6 -X0*X1
  936. SB3 X6+
  937. SB6 X5 SET LAST MASS STORAGE ORDINAL + 1
  938. SA5 FMTA GET ADDRESS OF FAMILY TABLE
  939. SX5 X5-1
  940. SB4 NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  941. SB5 B1 INITIALIZE ORDINAL OF FAMILY TABLE
  942.  
  943. * SEARCH EST FOR MASS STORAGE DEVICES.
  944.  
  945. GTF1 SB4 B4+B1
  946. EQ B4,B6,GTF3 IF END OF MASS STORAGE DEVICES
  947. SX1 B4 CALCULATE *ESTB* OFFSET
  948. R= X6,ESTE
  949. IX1 X1*X6
  950. SA1 ESTB+X1+EQDE GET NEXT EST ENTRY
  951. PL X1,GTF1 IF NOT MASS STORAGE DEVICE
  952. BX6 X1
  953. LX6 59-54
  954. NG X6,GTF1 IF DEVICE UNAVAILABLE FOR ACCESS
  955. RJ RDM READ WORDS *TDGL* TO *DULL* OF MST
  956. SA2 MSTB+ACGL-TDGL
  957. LX2 59-4
  958. NG X2,GTF1 IF ERROR IDLE SET ON DEVICE
  959. SA2 MSTB+MDGL-TDGL
  960. LX2 59-58
  961. NG X2,GTF1 IF AUXILIARY DEVICE
  962. SA2 MSTB+DULL-TDGL
  963. LX2 59-11
  964. NG X2,GTF1 IF FAMILY IDLE DOWN FLAG IS SET
  965. SA2 MSTB+PFGL-TDGL
  966. MX0 42
  967. BX1 X0*X2
  968.  
  969. * CHECK FAMILY TABLE FOR A MATCHING FAMILY NAME.
  970.  
  971. RJ SFT
  972. EQ B7,B5,GTF2 IF NO MATCHING FAMILY NAME
  973. EQ GTF1 PROCESS NEXT EST ENTRY
  974.  
  975. GTF2 BX6 X1+X3 SET ENTRY IN FAMILY TABLE
  976. SA6 X5+B5
  977. SB5 B5+B1
  978. EQ GTF1 PROCESS NEXT EST ENTRY
  979.  
  980. * SET ORDINAL OF DEFAULT FAMILY.
  981.  
  982. GTF3 SX1 B2 CALCULATE *ESTB* OFFSET
  983. R= X6,ESTE
  984. IX1 X1*X6
  985. SA1 ESTB+X1+EQDE GET EST ENTRY FOR DEFAULT FAMILY
  986. RJ RDM
  987. SA2 MSTB+PFGL-TDGL
  988. MX0 42
  989. BX1 X0*X2
  990. RJ SFT SEARCH FAMILY TABLE FOR DEFAULT FAMILY
  991. NE B7,B5,GTF4 IF MATCHING FAMILY FOUND
  992. SB7 B0+
  993. GTF4 SX6 B7 SET DEFAULT FAMILY ORDINAL
  994. SA2 DEFA
  995. SA6 X2
  996.  
  997. * SET LINK ORDINAL AND DEVICE TYPE.
  998.  
  999. SB7 B0+
  1000. ZR B3,GTF5 IF NO LINK FAMILY
  1001. SX1 B3 CALCULATE *ESTB* OFFSET
  1002. R= X6,ESTE
  1003. IX1 X1*X6
  1004. SA1 ESTB+X1+EQDE GET EST ENTRY FOR LINK EQUIPMENT
  1005. MX0 -11 GET LINK DEVICE TYPE
  1006. BX6 X1
  1007. LX6 -12
  1008. BX6 -X0*X6
  1009. SB3 X6
  1010. RJ RDM
  1011. SA2 MSTB+PFGL-TDGL
  1012. MX0 42
  1013. BX1 X0*X2
  1014. RJ SFT SEARCH FAMILY TABLE FOR LINKED FAMILY
  1015. NE B7,B5,GTF5 IF MATCHING FAMILY FOUND
  1016. SB7 B0+
  1017. GTF5 SX5 B3 SET LINK ORDINAL AND DEVICE TYPE
  1018. SA2 LNKA
  1019. SX6 B7
  1020. LX5 48
  1021. BX6 X5+X6
  1022. SA6 X2
  1023. SX6 B5-B1 SET NUMBER OF ENTRIES IN FAMILY TABLE
  1024. SA1 NUMA
  1025. SA6 X1
  1026. EQ GETFAMX RETURN
  1027. RDM SPACE 4,15
  1028. ** RDM - READ WORDS *TDGL* TO *DULL* OF MST ENTRY.
  1029. *
  1030. * ENTRY (X1) = EST ENTRY.
  1031. *
  1032. * EXIT (X3) = MST ADDRESS.
  1033. * (MSTA) = MST POINTER PARAMETER.
  1034. * (MSTB) = *MSTN* CONTIGUOUS WORDS STARTING AT *TDGL*
  1035. * OF THE MST ENTRY.
  1036. *
  1037. * USES A - 6, 7.
  1038. * X - 0, 2, 3, 6, 7.
  1039. *
  1040. * MACROS SYSTEM.
  1041.  
  1042.  
  1043. RDM SUBR ENTRY/EXIT
  1044. MX0 -12
  1045. BX3 -X0*X1 GET ADDRESS OF MST ENTRY
  1046. LX3 3
  1047. SX2 X3+TDGL READ WORD *TDGL* OF MST
  1048. LX2 35-17
  1049. MX7 1
  1050. SA7 MSTB
  1051. SX7 MSTN NUMBER OF MST ENTRY WORDS TO READ
  1052. LX7 59-23
  1053. BX6 X7+X2
  1054. SX2 MSTB
  1055. BX6 X2+X6
  1056. SA6 MSTA
  1057. SYSTEM RSB,R,A6
  1058. EQ RDMX RETURN
  1059. SFT SPACE 4,15
  1060. ** SFT - SEARCH FAMILY TABLE FOR A GIVEN FAMILY NAME.
  1061. *
  1062. * ENTRY (X1) = FAMILY NAME (UPPER 42 BITS) TO
  1063. * BE MATCHED.
  1064. * (X5) = FWA - 1 OF FAMILY TABLE.
  1065. * (B5) = ORDINAL OF LAST ENTRY IN FAMILY TABLE + 1.
  1066. *
  1067. * EXIT (B7) = ORDINAL OF MATCHING ENTRY IN FAMILY TABLE.
  1068. * NOTE - (B7) = (B5), IF MATCHING ENTRY IS NOT FOUND.
  1069. *
  1070. * USES A - 2.
  1071. * B - 5, 7.
  1072. * X - 2, 4, 6.
  1073.  
  1074.  
  1075. SFT SUBR ENTRY/EXIT
  1076. MX0 42
  1077. SB7 B0
  1078. SFT1 SB7 B7+B1
  1079. EQ B7,B5,SFTX IF NO MATCHING FAMILY NAME
  1080. SA2 X5+B7 GET NEXT ENTRY IN FAMILY TABLE
  1081. BX4 X0*X2
  1082. BX6 X4-X1
  1083. ZR X6,SFTX IF MATCHING FAMILY FOUND
  1084. EQ SFT1 CHECK NEXT ENTRY
  1085.  
  1086. *CALL COMSSSD
  1087.  
  1088. SPACE 4,15
  1089. MMFA VFD 24/1,18/MMFL,18/MMFB *MMFL* POINTER PARAMETER
  1090. PFNA VFD 24/1,18/PFNL,18/PFNB *PFNL* POINTER PARAMETER
  1091.  
  1092. DEFA BSS 1 ADDRESS OF DEFAULT FAMILY ORDINAL
  1093. ESTB BSS ESMX*ESTE EST BUFFER
  1094. ESTN BSS 1 LAST MASS STORAGE ORDINAL + 1
  1095. FMTA BSS 1 ADDRESS OF FAMILY TABLE
  1096. LNKA BSS 1 ADDRESS OF LINK FAMILY ORDINAL
  1097. MMFB BSS 1 *MMFL* WORD IN *CMR*
  1098. MSTA BSS 1 MST POINTER PARAMETER WORD
  1099. MSTB BSS MSTN MST ENTRY BUFFER
  1100. NUMA BSS 1 ADDRESS OF NUMBER OF FAMILY TABLE ENTRIES
  1101. PFNB BSS 1 *PFNL* WORD IN *CMR*
  1102.  
  1103. * TABLE OF ALTERNATE STORAGE SUBSYSTEM IDENTIFIERS.
  1104.  
  1105. ASID EQU * ALTERNATE STORAGE SUBSYSTEM IDENTIFIERS
  1106. CON MFSI AT=0, DEFAULT (*MSS*)
  1107. CON MFSI AT=1, *MSS*
  1108. CON ASSI AT=2, *MSE*
  1109.  
  1110. END
  1111. IDENT GETMI
  1112. ENTRY GETMI
  1113. SST
  1114. SYSCOM B1
  1115. TITLE GETMI - GET MACHINE INFORMATION.
  1116. *COMMENT GET MACHINE INFORMATION.
  1117. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  1118.  
  1119. *CALL COMCMAC
  1120. *CALL COMSMMF
  1121. GETMI SPACE 4,20
  1122. *** GETMI - GET MACHINE INFORMATION.
  1123. *
  1124. * GETMI(STATUS,EVENT); (*SYMPL* CALL)
  1125. *
  1126. * EXIT (STATUS) = MACHINE INFORMATION.
  1127. * 1/MSX,1/MFI,1/ASX,3/,12/ MID,39/,3/MFID
  1128. * MSX = 0, *MSS* MASTER MODE EXECUTIVE
  1129. * = 1, *MSS* SLAVE MODE EXECUTIVE
  1130. * ASX = 0, *MSE* MASTER MODE EXECUTIVE
  1131. * = 1, *MSE* SLAVE MODE EXECUTIVE
  1132. * MFI = 0, SINGLE MAIN FRAME MODE.
  1133. * = 1, MULTI MAIN FRAME MODE.
  1134. * MID = MACHINE ID
  1135. * MFID = MAINFRAME INDEX
  1136. * (EVENT) = EVENT DESCRIPTORS -
  1137. * 18/,9/,12/ *ASXE*,9/,12/ *MSXE*
  1138. * *ASXE* = *MSE* EVENT
  1139. * *MSXE* = *MSS* EVENT
  1140. *
  1141. * USES A - 1, 2, 6, 7.
  1142. * B - 1.
  1143. * X - 0, 1, 2, 6, 7.
  1144. *
  1145. * MACROS SYSTEM.
  1146.  
  1147.  
  1148. GETMI SUBR ENTRY/EXIT
  1149. SB1 1
  1150. BX6 X1
  1151. SA6 STATW SAVE ADDRESS OF *STATUS*
  1152. SA2 A1+B1 RETURN EVENT DESCRIPTOR
  1153. SA1 GMIA
  1154. BX6 X1
  1155. SA6 X2 STORE EVENT DESCPITORS
  1156. MX7 1
  1157. SA1 SSTA READ WORD *SSTL* IN *CMR*
  1158. SA7 SSTB
  1159. SYSTEM RSB,R,A1
  1160. MX7 1
  1161. SA1 MMFA READ WORD *MMFL* IN *CMR*
  1162. SA7 MMFB
  1163. SYSTEM RSB,R,A1
  1164. SA1 SSTB SET MASTER/SLAVE EXEC MODE
  1165. MX6 -1
  1166. LX6 49
  1167. BX6 -X6*X1 GET *MSE* MASTER/SLAVE BIT
  1168. LX6 57-49
  1169. MX7 1
  1170. LX1 59-55
  1171. BX1 X7*X1 GET *MSS* MASTER/SLAVE BIT
  1172. BX6 X6+X1 (X6= 1/MSX,1/0,1/ASX,57/0)
  1173. SA1 MMFB GET MULTI/SINGLE MF MODE
  1174. MX0 12
  1175. LX0 47-59
  1176. BX2 X0*X1
  1177. NZ X2,GMI1 IF MULTI MAIN FRAME MODE
  1178. BX7 X7-X7
  1179. GMI1 LX7 59 SET MULTI/SINGLE MF MODE
  1180. BX6 X6+X7
  1181. MX0 -3
  1182. ERRNG 7-MXMF CODE DEPENDS ON VALUE OF TAG
  1183. BX7 -X0*X1 SET MF-ID
  1184. BX6 X6+X7
  1185. MX0 12
  1186. BX7 X0*X1
  1187. LX7 53-59
  1188. BX6 X6+X7
  1189. SA2 STATW
  1190. SA6 X2
  1191. EQ GETMIX RETURN
  1192.  
  1193. *CALL COMSEVT
  1194.  
  1195. GMIA VFD 18/0,9/0,12/ASXE,9/0,12/MSXE *MSE*/*MSS* EVENT
  1196. MMFA VFD 24/1,18/MMFL,18/MMFB *SSTL* POINTER PARAMETER
  1197. SSTA VFD 24/1,18/SSTL,18/SSTB *MMFL* POINTER PARAMETER
  1198.  
  1199. MMFB BSS 1 *MMFL* WORD IN *CMR*
  1200. SSTB BSS 1 *SSTL* WORD IN *CMR*
  1201. STATW BSS 1 ADDRESS OF RETURN STATUS WORD
  1202.  
  1203. END
  1204. IDENT GETPFP
  1205. ENTRY GETPFP
  1206. SYSCOM B1
  1207. TITLE GETPFP - GET PERMANENT FILE PARAMETERS.
  1208. *COMMENT GET PERMANENT FILE PARAMETERS.
  1209. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  1210.  
  1211. *CALL COMCMAC
  1212. GETPFP SPACE 4,15
  1213. *** GETPFP - GET PERMANENT FILE PARAMETERS.
  1214. *
  1215. * GETPFP(ADDR); (*SYMPL* CALL)
  1216. *
  1217. * ENTRY ADDR = ADDRESS OF A 3 WORD BLOCK FOR RESPONSE.
  1218. *
  1219. * EXIT (ADDR) = CURRENT CONTROL POINT PARAMETERS RETURNED
  1220. * IN FORMAT-
  1221. * 42/FAMILY NAME,18/0
  1222. * 42/PACKNAME,18/0
  1223. * 42/USER NUMBER,18/USER INDEX
  1224. *
  1225. * USES B - 1.
  1226. *
  1227. * MACROS GETPFP.
  1228.  
  1229.  
  1230. GETPFP SUBR ENTRY/EXIT
  1231. SB1 1
  1232. GETPFP X1
  1233. EQ GETPFPX RETURN
  1234.  
  1235. END
  1236. IDENT GETSPS
  1237. ENTRY GETSPS
  1238. SYSCOM B1
  1239. TITLE GETSPS - RETURN SYSTEM ORIGIN PRIVILEGES STATUS.
  1240. *COMMENT RETURN SYSTEM ORIGIN PRIVILEGES STATUS.
  1241. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  1242.  
  1243.  
  1244. *CALL COMCMAC
  1245. *CALL COMCCMD
  1246. GETSPS SPACE 4,15
  1247. *** GETSPS - RETURN SYSTEM ORIGIN PRIVILEGES STATUS.
  1248. *
  1249. * GETSPS (ADDR); (*SYMPL* CALL)
  1250. *
  1251. * ENTRY ADDR = ADDRESS OF THE RETURN STATUS WORD.
  1252. *
  1253. * EXIT STATUS HAS BEEN RETURNED TO *ADDR*.
  1254. * 48/ ,12/STATUS
  1255. * STATUS .EQ. 0 IF USER HAS SYSTEM ORIGIN PRIVILEGES.
  1256. * .NE. 0 IF USER DOES NOT HAVE SYSTEM ORIGIN
  1257. * PRIVILEGES.
  1258. *
  1259. * USES B - 1.
  1260. *
  1261. * MACROS GETSPS.
  1262.  
  1263.  
  1264. GETSPS SUBR
  1265. SB1 1
  1266. GETSPS X1
  1267. EQ GETSPSX RETURN
  1268.  
  1269. END
  1270. IDENT RDEST
  1271. ENTRY RDEST
  1272. SYSCOM B1
  1273. TITLE RDEST - READ EST TO BUFFER.
  1274. *COMMENT READ EST TO BUFFER.
  1275. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  1276.  
  1277. *CALL COMCMAC
  1278. RDEST SPACE 4,20
  1279. *** RDEST - READ EST TO BUFFER.
  1280. *
  1281. * RDEST(ESTB,ESTN,ESTO); (*SYMPL* CALL)
  1282. *
  1283. * ENTRY (ESTN) = NUMBER OF EST ENTRIES TO BE READ.
  1284. * (ESTO) = ORDINAL OF EST ENTRY TO BE RETURNED
  1285. * = 0, TO TRANSFER ENTIRE EST.
  1286. * = -1, TO TRANSFER MASS STORAGE ENTRIES ONLY.
  1287. *
  1288. * EXIT (ESTB) = EST.
  1289. * (ESTN) = NUMBER OF EST ENTRIES RETURNED.
  1290. * .LE. ZERO, IF REQUESTED ORDINAL(S)
  1291. * OUTSIDE OF EST.
  1292. *
  1293. * USES A - 2, 3, 4.
  1294. * B - 1, 2, 3, 4.
  1295. * X - 2, 3, 4.
  1296. *
  1297. * CALLS RDESTC.
  1298.  
  1299.  
  1300. RDEST SUBR ENTRY/EXIT
  1301. SB1 1
  1302. SA2 A1+B1 GET ADDRESS OF *ESTN*
  1303. SA3 A2+B1 GET ADDRESS OF *ESTO*
  1304. SB2 X1
  1305. SB3 X2
  1306. SA4 X3 GET EST ORDINAL
  1307. SB4 X4
  1308. LE B4,B0,RDE1 IF TRANSFER OF ENTIRE OR MASS STORAGE EST
  1309. SB4 X3+ SET ADDRESS OF EST ORDINAL
  1310. RDE1 RJ =XRDESTC READ EST INTO *ESTB*
  1311. EQ RDESTX RETURN
  1312.  
  1313. END
  1314. IDENT RDESTC
  1315. ENTRY RDESTC
  1316. SST
  1317. SYSCOM B1
  1318. TITLE RDESTC - READ EST INTO BUFFER.
  1319. *COMMENT READ EST INTO BUFFER.
  1320. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  1321.  
  1322. *CALL COMCMAC
  1323. RDESTC SPACE 4,25
  1324. *** RDESTC - READ EST INTO BUFFER.
  1325. * *RDESTC* CAN BE CALLED ONLY FROM A *COMPASS* ROUTINE.
  1326. *
  1327. * ENTRY (B2) = ADDRESS OF EST BUFFER. IF THE ENTIRE EST
  1328. * EST IS TO BE RETURNED, BUFFER MUST BE AT
  1329. * LEAST ESMX*ESTE WORDS IN LENGTH.
  1330. * (B3) = ADDRESS OF LOCATION CONTAINING NUMBER OF EST
  1331. * ENTRIES TO BE RETURNED.
  1332. * (B4) = ADDRESS OF LOCATION CONTAINING EST ORDINAL TO
  1333. * BE RETURNED.
  1334. * = 0, TO RETURN ENTIRE EST.
  1335. * = -1, TO RETURN ONLY MASS STORAGE EST ENTRIES.
  1336. *
  1337. * EXIT BUFFER CONTAINS REQUEST EST ENTRY/ENTRIES.
  1338. * ((B3)) = NUMBER OF EST ENTRIES RETURNED.
  1339. *
  1340. * USES A - 1, 2, 3, 4, 5, 6, 7.
  1341. * X - ALL.
  1342. *
  1343. * MACROS SYSTEM.
  1344. *
  1345. * CALLS RSB=.
  1346.  
  1347.  
  1348. RDESTC SUBR ENTRY/EXIT
  1349. SA1 CMRA READ EST POINTERS
  1350. MX7 1
  1351. SA7 CMRW
  1352. SYSTEM RSB,R,A1
  1353. SA1 CMRW
  1354. MX0 -12 SET *COMCRSB* ENTRY CONDITIONS
  1355. LX1 24
  1356. SX2 X1 SET (X2) = FWA OF EST
  1357. LX1 12
  1358. BX3 -X0*X1 SET LAST EST ORDINAL + 1
  1359. LX1 12
  1360. BX4 -X0*X1 SET LAST MASS STORAGE ORDINAL + 1
  1361. SX5 X4 PRESET NUMBER OF MASS STORAGE ENTRIES
  1362. NZ B4,RDE1 IF SPECIFIC OR MS ENTRIES REQUIRED
  1363. SX5 X3 SET NUMBER OF EST ENTRIES
  1364. EQ RDE3 CONTINUE
  1365.  
  1366. RDE1 PL B4,RDE2 IF SPECIFIC EST ENTRIES REQUIRED
  1367. EQ RDE3 CONTINUE
  1368.  
  1369. RDE2 SA1 B4 READ SPECIFIC EST ENTRIES
  1370. SX4 X1 SAVE EST ORDINAL
  1371. SX6 ESTE
  1372. IX1 X1*X6 OFFSET OF REQUIRED EST ENTRY
  1373. IX2 X2+X1 FWA OF REQUIRED EST ENTRY
  1374. SA5 B3 NUMBER OF EST ENTRIES REQUIRED
  1375. IX4 X4+X5 CHECK FOR RANGE WITHIN EST
  1376. IX4 X3-X4
  1377. PL X4,RDE4 IF EST ENTRIES WITHIN RANGE
  1378. IX5 X4+X5 NUMBER OF EST ENTRIES ACTUALLY READ
  1379. RDE3 BX6 X5 RETURN NUMBER OF EST ENTRIES
  1380. SA6 B3
  1381. ZR X6,RDESTCX IF ORDINAL OUTSIDE OF EST
  1382. NG X6,RDESTCX IF ORDINAL OUTSIDE OF EST
  1383.  
  1384. * READ EST ENTRIES.
  1385.  
  1386. RDE4 SX6 ESTE CALCULATE WORD COUNT
  1387. IX3 X5*X6 SET (X3) = WORD COUNT TO READ
  1388. SX1 B2 SET (X1) = *ESTB*
  1389. SX4 B0 SET (X4) = SUBSYSTEM (= *CMR*)
  1390. SA7 B2
  1391. RJ RSB= READ EST
  1392. EQ RDESTCX RETURN
  1393.  
  1394. CMRA VFD 24/1,18/ESTP,18/CMRW *CMR* POINTER PARAMETER
  1395. CMRW BSS 1 WORD *ESTP* IN *CMR*
  1396.  
  1397. *CALL COMCRSB
  1398.  
  1399. END
  1400. IDENT RDPFC
  1401. ENTRY RDPFC
  1402. SST
  1403. SYSCOM B1
  1404. TITLE RDPFC - READ PERMANENT FILE CATALOG.
  1405. *COMMENT READ PERMANENT FILE CATALOG.
  1406. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  1407.  
  1408. *CALL COMCMAC
  1409. *CALL COMCCMD
  1410. *CALL COMSPFM
  1411. *CALL COMSPFS
  1412. *CALL COMSPFU
  1413. *CALL COMSSSJ
  1414. TITLE ASSEMBLY CONSTANTS
  1415. ** ASSEMBLY CONSTANTS.
  1416. *
  1417.  
  1418. NWPS EQU 100B NUMBER OF WORDS/SECTOR
  1419. NWPC EQU NWPS+2 NUMBER OF WORDS/SECTOR + CONTROL WORDS
  1420. CBUFL EQU NWPC*10+1 CATALOG BUFFER LENGTH
  1421. MSTN EQU MDGL-TDGL+1 NUMBER OF MST WORDS TO READ
  1422. MSTTL EQU ESMX*2+1 MST TABLE LENGTH
  1423. SECL EQU NWPS+1 NUMBER OF WORDS/SECTOR + TRAILING
  1424. CONTROL WORD
  1425. TITLE MAIN LOOP
  1426. SPACE 4,15
  1427. *** *RDPFC* IS A *SYMPL* CALLABLE *COMPASS* ROUTINE
  1428. * THAT READS THE PERMANENT FILE CATALOG.
  1429. *
  1430. * RDPFC(FM,SBM,PFCB,WDCN,FLAG); *SYMPL* CALL.
  1431. *
  1432. * NOTE *RDPFC* DOES A SEQUENTIAL READ OF THE PERMANENT
  1433. * FILE CATALOG ON ALL THE DEVICES IN A GIVEN
  1434. * FAMILY. IF THE SUB FAMILY OPTION IS SELECTED,
  1435. * ONLY THE DEVICES WITH THE SELECTED SUBFAMILY
  1436. * ARE READ. ON EACH CALL TO *RDPFC* A SECTOR
  1437. * OF PFC ENTRIES ALONG WITH THE CONTROL WORD
  1438. * IS RETURNED TO THE CALLING PROCEDURE. *PFU*
  1439. * FUNCTIONS ARE USED TO OPEN THE CATALOG TRACK,
  1440. * TO ADVANCE TO THE NEXT TRACK AND TO READ THE
  1441. * CATALOG TRACK. THE DEVICES WITH ERROR IDLE
  1442. * SET OR PF UTILITY ACTIVE ARE EXCLUDED FROM
  1443. * THE MASS STORAGE TABLE BUILT. THE ERROR STATUS
  1444. * IS RETURNED TO THE CALLING ROUTINE. THE CALLING
  1445. * ROUTINE MAY THEN ABORT OR CALL *RDPFC* AGAIN TO
  1446. * READ THE REMAINING DEVICE IN THE MASS STORAGE TABLE.
  1447. SPACE 4,10
  1448. *** DAYFILE MESSAGES.
  1449. *
  1450. * * RDPFC - ERROR IDLE, DN XX.* - *RDPFC* SKIPPED
  1451. * DEVICE X ON ACCOUNT OF ERROR IDLE ON THE DEVICE.
  1452. *
  1453. * * RDPFC - PF UTILITY ACTIVE, DN XX.* - *RDPFC*
  1454. * SKIPPED DEVICE X ON ACCOUNT OF PF UTILITY
  1455. * ACTIVE ON THE DEVICE.
  1456. RDPFC SPACE 4,20
  1457. *** RDPDC - READ PERMANENT FILE CATALOG.
  1458. *
  1459. * ENTRY (FAM) = FAMILY NAME, LEFT JUSTIFIED,
  1460. * SEVEN CHARACTERS MAXIMUM.
  1461. * (SBM) = SUB FAMILY MASK, IF SUB FAMILY
  1462. * OPTION IS SELECTED.
  1463. * = 0, OTHERWISE.
  1464. * (MORD) = -1, ON FIRST CALL OR IF AN ERROR IDLE OR
  1465. * PF UTILITY ACTIVE WAS ENCOUNTERED ON
  1466. * THE PREVIOUS CALL.
  1467. * = ORDINAL OF CURRENT *MSTT* ENTRY ON
  1468. * SUBSEQUENT CALLS.
  1469. * (DVFL) = 0, READ THE NEXT PERMANENT FILE CATALOG
  1470. * SECTOR.
  1471. * = 1, READ THE DEVICES IN THE FAMILY BESIDES
  1472. * THE ONES WITH ERROR IDLE SET OR PF UTILITY
  1473. * ACTIVE.
  1474. *
  1475. * EXIT (PFCB) = SECTOR OF PFC ENTRIES ALONG WITH
  1476. * THE TRAILING CONTROL WORD.
  1477. * NOTE - BUFFER LENGTH MUST BE 101B.
  1478. * CONTROL WORD FORMAT IS
  1479. * 6/DN,18/,12/EQ,12/TRACK,12/SECTOR
  1480. * (WDCN) = NUMBER OF WORDS OF DATA IN SECTOR.
  1481. * (FLAG) = 0, MORE PFC ENTRIES TO GO.
  1482. * 1, END OF PFC.
  1483. * 2, NO DEVICES IN THE FAMILY.
  1484. * 3, BAD CATALOG SECTOR.
  1485. * 4, ERROR IDLE OR PF UTILITY ACTIVE ON ONE
  1486. * OR MORE DEVICES IN THE FAMILY.
  1487. * (DVFL) = 0, ALL DEVICES ARE OK TO BE READ.
  1488. * 1, ERROR IDLE OR PF UTILITY ACTIVE ON
  1489. * ONE OR MORE DEVICES IN THE FAMILY.
  1490. * (MORD) = -1, ON THE FIRST CALL WHEN AN ERROR IDLE
  1491. * OF PF UTILITY ACTIVE WAS FOUND.
  1492. * = ORDINAL OF CURRENT *MSTT* ENTRY OTHERWISE.
  1493. *
  1494. * USES A - 1, 2, 3, 6, 7.
  1495. * B - 1.
  1496. * X - 1, 2, 3, 6, 7.
  1497. *
  1498. * CALLS AVC, BMT, CAC, RCT.
  1499.  
  1500.  
  1501. RDPFC SUBR ENTRY/EXIT
  1502. SB1 1
  1503. SA2 A1+B1 GET SUB FAMILY MASK
  1504. SA3 X2
  1505. BX6 X3
  1506. SA6 SMSK
  1507. SA3 A2+B1 SAVE ADDRESS OF *PFCB*
  1508. BX6 X3
  1509. SA6 PFC
  1510. SA2 A3+B1 SAVE ADDRESS OF *WDCN*
  1511. BX6 X2
  1512. SA6 WCNA
  1513. SA3 A2+B1 SAVE ADDRESS OF *FLAG*
  1514. BX6 X3
  1515. SA6 FG
  1516. SA2 MORD CHECK FOR FIRST CALL
  1517. PL X2,RDP3 IF NOT FIRST CALL
  1518. SA3 DVFL CHECK ERROR IDLE/PF UTILITY FLAG
  1519. ZR X3,RDP1 IF FIRST CALL
  1520. BX6 X6-X6 CLEAR ERROR FLAG SET IN PREVIOUS CALL
  1521. SA6 DVFL
  1522. EQ RDP2 INITIALIZE FIRST DEVICE
  1523.  
  1524. RDP1 SA1 X1 GET FAMILY NAME
  1525. BX6 X1
  1526. SA6 FM
  1527. RJ BMT BUILD *MSTT* TABLE
  1528. SA3 DVFL CHECK ERROR IDLE/PF UTILITY ACTIVE FLAG
  1529. ZR X3,RDP2 IF ALL DEVICES OK TO BE READ
  1530. SX2 4 FLAG *ERROR IDLE/PF UTILITY ACTIVE*
  1531. EQ RDP4 RETURN DEVICE STATUS
  1532.  
  1533. RDP2 RJ AVC INITIALIZE FIRST DEVICE
  1534. SA2 EOP
  1535. ZR X2,RDP3 IF FIRST DEVICE INITIALIZED
  1536. SX2 2 FLAG *NO DEVICES IN THE FAMILY*
  1537. EQ RDP4 RETURN STATUS
  1538.  
  1539. RDP3 RJ RCT READ CATALOG TRACK
  1540. SA2 EOP
  1541. ZR X2,RDP4 IF MORE PFC ENTRIES TO GO
  1542. RJ CAC CLEAR PF ACTIVITY COUNT
  1543. SA2 EOP
  1544. RDP4 BX7 X2
  1545. SA2 FG
  1546. SA7 X2
  1547. SA2 WCNT RETURN WORD COUNT
  1548. BX6 X2
  1549. SA3 WCNA
  1550. SA6 X3
  1551. EQ RDPFCX RETURN
  1552. TITLE SUBROUTINES
  1553. AVC SPACE 4,25
  1554. ** AVC - ADVANCE CATALOG TRACK.
  1555. *
  1556. * THE CATALOG TRACK IS ADVANCED TO THE NEXT TRACK
  1557. * ON THE DEVICE. IF END OF CATALOG TRACKS IS ENCOU-
  1558. * NTERED ON THE DEVICE, IT SWITCHES TO THE NEXT
  1559. * DEVICE IN THE FAMILY AND OPENS THE FIRST CATALOG
  1560. * TRACK ON THE DEVICE.
  1561. *
  1562. * ENTRY (NCTR) = CURRENT NUMBER OF CATALOG TRACKS.
  1563. * (SMSK) = DEVICE MASK FOR SELECTED SUB FAMILIES.
  1564. * (MORD) = ORDINAL OF CURRENT *MSTT* ENTRY.
  1565. *
  1566. * EXIT (NCTR) = UPDATED NUMBER OF CATALOG TRACKS.
  1567. * (MAEQ) = MASTER DEVICE EST ORDINAL.
  1568. * (MORD) = UPDATED ORDINAL OF CURRENT *MSTT* ENTRY.
  1569. * (EOP) = 0, IF MORE PFC ENTRIES TO GO.
  1570. * = 1, IF END OF PFC IS REACHED.
  1571. * CATALOG TRACK ADVANCED.
  1572. * DEVICE SWITCH MADE IF NECESSARY.
  1573. *
  1574. * USES A - 1, 2, 4, 6, 7.
  1575. * B - 3.
  1576. * X - 0, 1, 2, 4, 5, 6, 7.
  1577. *
  1578. * CALLS CAC, SAC.
  1579. *
  1580. * MACROS CALLPFU, READCW, RETURN.
  1581.  
  1582.  
  1583. AVC SUBR ENTRY/EXIT
  1584. SA1 NCTR
  1585. ZR X1,AVC1 SWITCH TO THE NEXT DEVICE
  1586. CALLPFU CATS,CTAC,R ADVANCE TO NEXT CATALOG TRACK
  1587. EQ AVC7 CONTINUE
  1588.  
  1589. * ADVANCE TO THE NEXT DEVICE.
  1590.  
  1591. AVC1 RJ CAC CLEAR PF ACTIVITY COUNT
  1592. AVC1.1 SA2 MORD INCREMENT *MSTT* ORDINAL
  1593. SX6 X2+B1
  1594. SX7 B1
  1595. SA6 MORD
  1596. SA4 MSTT+X6 GET THE NEXT *MSTT* ENTRY
  1597. NZ X4,AVC2 IF NOT END OF TABLE
  1598. SA7 EOP SET END OF PFC FLAG
  1599. EQ AVCX RETURN
  1600.  
  1601. * CHECK TO SEE IF A SPECIFIED SUB FAMILY RESIDES ON THIS DEVICE.
  1602.  
  1603. AVC2 SA1 SMSK CHECK SUB FAMILY MASK
  1604. MX0 -20 SELECT THE MATCHING DEVICE
  1605. BX5 -X0*X4 GET THE DEVICE MASK
  1606. AX5 12
  1607. ZR X1,AVC4 IF SUBFAMILY OPTION NOT SELECTED
  1608. BX7 X1*X5
  1609. ZR X7,AVC1.1 IF SUB FAMILY NOT ON DEVICE
  1610.  
  1611. * DETERMINE DEVICE PARAMETERS.
  1612.  
  1613. AVC4 MX0 -12 SET NUMBER OF CATALOG TRACKS
  1614. BX6 -X0*X4
  1615. ZR X6,AVC1.1 IF NO CATALOG TRACKS
  1616. SA6 NCTR
  1617. LX4 59-53 SET MASTER DEVICE EST ORDINAL
  1618. MX0 12
  1619. BX6 X0*X4
  1620. LX6 12
  1621. SA6 PDWD SET UP PF DESCRIPTION WORD
  1622. SA6 MAEQ SAVE MASTER DEVICE EST ORDINAL
  1623. LX5 59-7
  1624. RJ SAC SET PF ACTIVITY COUNT
  1625.  
  1626. * DETERMINE STARTING USER INDEX ON THE DEVICE.
  1627.  
  1628. SX1 PDWD SET ADDRESS OF PF DESCRIPTION WORD
  1629. SB3 7 DEVICE MASK BIT COUNT - 1
  1630. AVC5 NG X5,AVC6 IF DEVICE MASK BIT SET
  1631. LX5 1 POSITION NEXT MASK BIT
  1632. SB3 B3-B1
  1633. PL B3,AVC5 IF MORE BITS TO CHECK
  1634. AVC6 SX6 B3 SET STARTING USER INDEX
  1635. SA6 CUI
  1636. SX2 A6 SET ADDRESS OF USER INDEX WORD
  1637. LX1 35-17
  1638. BX6 X1+X2
  1639. SA6 CATS+FTPM
  1640. CALLPFU CATS,CTCT,R GET CATALOG TRACK PARAMETERS
  1641.  
  1642. * SET UP CATALOG *FST* ENTRY.
  1643.  
  1644. SA1 CATS+FTPM GET CATALOG TRACK PARAMETERS
  1645. SA2 FIST SET FILE ID AND STATUS
  1646. MX0 -21
  1647. BX1 -X0*X1 SET *EQ* AND FIRST TRACK
  1648. MX0 -12
  1649. BX6 -X0*X1 SET CURRENT TRACK
  1650. LX1 59-23 POSITION EST ORDINAL AND FIRST TRACK
  1651. BX2 X2+X1 BUILD CATALOG TRACK *FST* ENTRY
  1652. LX6 35-11
  1653. BX7 X2+X6
  1654. LX6 11-35
  1655. SA6 CCTR
  1656. SA7 A1
  1657.  
  1658. * OPEN CATALOG FILE.
  1659.  
  1660. RETURN CATS RETURN EXISTING FILE
  1661. CALLPFU CATS,CTOP,R OPEN CATS FILE
  1662. AVC7 SA1 NCTR UPDATE NUMBER OF CATALOG TRACKS
  1663. SX6 X1-1
  1664. SA6 NCTR
  1665. READCW CATS,17B,R READ CATALOG TRACK
  1666. EQ AVCX RETURN
  1667. BMT SPACE 4,20
  1668. ** BMT - BUILD MASS STORAGE TABLE.
  1669. *
  1670. * ENTRY (FM) = FAMILY NAME.
  1671. *
  1672. * EXIT MASS STORAGE TABLE BUILT.
  1673. * (DVFL) = 0, IF NO ERROR IDLE OR PF UTILITY
  1674. * ACTIVE ON ANY DEVICE.
  1675. * 1, IF ERROR IDLE OR PF UTILITY ACTIVE
  1676. * ON ONE OR MORE DEVICES.
  1677. *
  1678. * USES X - ALL.
  1679. * A - 1, 2, 3, 6, 7.
  1680. * B - 2, 3, 4, 5.
  1681. *
  1682. * CALLS COD, RSB=, SNM.
  1683. *
  1684. * MACROS MESSAGE, SYSTEM.
  1685. *
  1686. * NOTES DEVICES THAT DO NOT BELONG TO THE GIVEN
  1687. * FAMILY, OR ARE UNAVAILABLE OR ARE LOCALLY
  1688. * UNLOADED, ARE IGNORED. A DEVICE IS ALSO
  1689. * IGNORED, IF AN ERROR IDLE IS SET ON THE
  1690. * DEVICE OR IF A PF UTILITY IS ACTIVE ON
  1691. * IT. SEE DOCUMENTATION OF *MSTT* FOR FORMAT.
  1692.  
  1693.  
  1694. * READ EST INTO *ESTB*.
  1695.  
  1696. BMT SUBR ENTRY/EXIT
  1697. SA1 BMTA READ EST POINTERS
  1698. MX7 1
  1699. SA7 ESTB
  1700. SYSTEM RSB,R,A1
  1701. SA2 ESTB SET *COMCRSB* ENTRY CONDITIONS
  1702. MX3 -12
  1703. SX1 A2 (X1) = ADDRESS TO TRANSFER TO
  1704. AX2 12
  1705. BX7 -X3*X2
  1706. SA7 BMTB SAVE LAST MASS STORAGE ORDINAL + 1
  1707. AX2 24 (X2) = ADDRESS TO TRANSFER FROM
  1708. R= X6,ESTE
  1709. IX3 X7*X6 (X3) = WORD COUNT
  1710. SX4 B0 (X4) = SUBSYSTEM (= *CMR*)
  1711. MX6 1
  1712. SA6 X1
  1713. RJ RSB= READ EST
  1714. SB2 NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  1715. SA2 BMTB SET LAST MASS STORAGE ORDINAL + 1
  1716. SB3 X2
  1717. SB4 B0 SET INITIAL MASS STORAGE TABLE INDEX
  1718.  
  1719. * READ NEXT MST ENTRY.
  1720.  
  1721. BMT1 SB2 B2+B1 ADVANCE TO NEXT EST ENTRY
  1722. EQ B2,B3,BMT4 IF END OF EST
  1723. SX1 B2 CALCULATE *ESTB* OFFSET
  1724. R= X6,ESTE
  1725. IX1 X1*X6
  1726. SA1 ESTB+X1+EQDE
  1727. PL X1,BMT1 IF NOT MASS STORAGE EQUIPMENT
  1728. MX2 -12 SET MST ADDRESS
  1729. BX6 -X2*X1
  1730. LX1 59-54
  1731. LX6 17-14
  1732. SX6 X6+TDGL
  1733. LX6 35-17
  1734. NG X1,BMT1 IF DEVICE UNAVAILABLE
  1735. SX2 MSTN NUMBER OF MST WORDS NEEDED
  1736. SX7 MSTB
  1737. LX2 59-23
  1738. BX1 X6+X7
  1739. MX7 1 SET ABSOLUTE MEMORY FLAG
  1740. BX6 X1+X2
  1741. SA7 MSTB
  1742. SA6 MSTA
  1743. SYSTEM RSB,R,A6 READ MST ENTRY
  1744.  
  1745. * CHECK FOR USABLE MST ENTRY.
  1746.  
  1747. SA2 MSTB+PFGL-TDGL CHECK FAMILY NAME
  1748. MX0 42
  1749. SA3 FM
  1750. BX6 X2-X3
  1751. BX2 X0*X6
  1752. NZ X2,BMT1 IF NOT CORRECT FAMILY NAME
  1753. SA2 MSTB+ACGL-TDGL CHECK FOR ERROR IDLE
  1754. LX2 59-4
  1755. SB5 MSGA * RDPFC - ERROR IDLE, DN XX.
  1756. NG X2,BMT2 IF DEVICE ERROR IDLE
  1757. SA3 MSTB CHECK FOR PF UTILITY ACTIVE
  1758. LX3 59-42
  1759. SB5 MSGB * RDPFC - PF UTILITY ACTIVE, DN XX.*
  1760. NG X3,BMT2 IF PF UTILITY ACTIVE ON DEVICE
  1761.  
  1762. * BULID MASS STORAGE TABLE *MSTT* INFORMATION.
  1763.  
  1764. SA1 MSTB+ALGL-TDGL SET NUMBER OF CATALOG TRACKS
  1765. MX3 -12
  1766. AX1 12
  1767. BX6 -X3*X1
  1768. SA1 MSTB+PFGL-TDGL SET DEVICE NUMBER
  1769. MX3 6
  1770. LX1 59-17
  1771. BX7 X3*X1
  1772. BX6 X6+X7
  1773. SX1 B2 SET EST ORDINAL
  1774. LX1 53-11
  1775. BX6 X6+X1
  1776. SA1 MSTB+PUGL-TDGL SET DEVICE MASK
  1777. MX3 -8
  1778. BX7 -X3*X1
  1779. LX7 19-7
  1780. BX6 X6+X7
  1781. SA6 MSTT+B4 SET *MSTT* ENTRY
  1782. SB4 B4+B1 ADVANCE TABLE INDEX
  1783. EQ BMT1 GET NEXT EST ENTRY
  1784.  
  1785. * DISPLAY DAYFILE MESSAGES.
  1786.  
  1787. BMT2 SX5 B2 SAVE CURRENT EST ORDINAL
  1788. SX6 B1 SET ERROR IDLE FLAG
  1789. SA6 DVFL
  1790. SA2 MSTB+PFGL-TDGL GET DEVICE NUMBER
  1791. MX0 -6
  1792. LX2 -12
  1793. BX1 -X0*X2
  1794. RJ COD CONVERT DEVICE NUMBER TO DISPLAY CODE
  1795. MX0 -12
  1796. BX1 -X0*X6
  1797. LX1 59-11
  1798. SB2 1R/
  1799. RJ SNM SET DEVICE NUMBER IN MESSAGE
  1800. MESSAGE B5,3,R
  1801. SB2 X5 RESTORE EST ORDINALS
  1802. SA2 BMTB
  1803. SB3 X2
  1804. EQ BMT1 GET NEXT EST ENTRY
  1805.  
  1806. * TERMINATE MASS STORAGE TABLE.
  1807.  
  1808. BMT4 BX6 X6-X6 TERMINATE BY A WORD OF ZEROES
  1809. SA6 MSTT+B4
  1810. EQ BMTX RETURN
  1811.  
  1812. BMTA VFD 24/1,18/ESTP,18/ESTB EST POINTER PARAMETER
  1813. BMTB BSS 1 LAST MASS STORAGE ORDINAL + 1
  1814. CAC SPACE 4,15
  1815. ** CAC - CLEAR PF ACTIVITY COUNT.
  1816. *
  1817. * ENTRY (ACFL) = 1, IF ACTIVITY COUNT SET.
  1818. * 0, IF ACTIVITY COUNT ALREADY CLEAR.
  1819. * (MAEQ) = MASTER DEVICE EST ORDINAL.
  1820. *
  1821. * EXIT (ACFL) = 0.
  1822. * PFU CALLED TO CLEAR PF ACTIVITY COUNT IF
  1823. * NOT ALREADY CLEAR.
  1824. *
  1825. * USES A - 1, 6.
  1826. * X - 1, 6.
  1827. *
  1828. * MACROS CALLPFU.
  1829.  
  1830.  
  1831. CAC SUBR ENTRY/EXIT
  1832. SA1 ACFL CHECK ACTIVITY COUNT FLAG
  1833. ZR X1,CACX IF ACTIVITY COUNT ALREADY CLEAR
  1834. SA1 MAEQ GET MASTER DEVICE EST ORDINAL
  1835. SX6 ACFL SET ACTIVITY COUNT FLAG ADDRESS
  1836. LX1 59-11
  1837. BX6 X1+X6 MERGE EST ORDINAL
  1838. SA6 ACFT+FTPM
  1839. CALLPFU ACFT,CTDA,R DECREMENT PF ACTIVITY COUNT
  1840. EQ CACX RETURN
  1841. RCT SPACE 4,20
  1842. ** RCT - READ CATALOG TRACK.
  1843. *
  1844. * ENTRY (CATS) = FWA OF FET FOR CATALOG FILE.
  1845. * (EOP) = 0, MIDDLE OF PFC(CATALOG) TRACK.
  1846. * 3, BAD PREVIOUS PFC(CATALOG) SECTOR.
  1847. *
  1848. * EXIT (PFCB) = A SECTOR OF PFC ENTRIES ALONG
  1849. * WITH THE TRAILING CONTROL WORD.
  1850. * (EOP) = 0, MIDDLE OF PFC(CATALOG) TRACK.
  1851. * 1, END OF PFC(CATALOG) TRACK.
  1852. * 3, BAD PFC(CATALOG) SECTOR.
  1853. *
  1854. * USES A - 1, 2, 3, 6, 7.
  1855. * B - 2.
  1856. * X - 0, 1, 2, 3, 6, 7.
  1857. *
  1858. * CALLS AVC.
  1859. *
  1860. * MACROS READO, READW.
  1861.  
  1862.  
  1863. RCT SUBR ENTRY/EXIT
  1864. SA1 EOP
  1865. ZR X1,RCT1 IF IN THE MIDDLE OF TRACK
  1866.  
  1867. * CLEAN UP ERROR FIELDS FOR PREVIOUS BAD SECTOR.
  1868.  
  1869. SA2 CATS
  1870. SX6 36000B CLEAR FET ERROR STATUS
  1871. BX6 -X6*X2
  1872. SA6 A2
  1873. BX6 X6-X6
  1874. SA6 A2+6 CLEAR FET DETAILED ERROR STATUS
  1875. SA6 EOP CLEAR ERROR FLAG
  1876. RCT1 READO CATS READ *CIO* HEADER CONTROL WORD
  1877. NZ X1,RCT3 IF END OF CATALOG TRACK
  1878. PL X6,RCT2 IF ERROR INDICATOR CLEAR
  1879. SX7 3 FLAG *BAD SECTOR*
  1880. SA7 EOP
  1881. RCT2 SX5 5 DETERMINE WORD COUNT
  1882. MX0 -24
  1883. BX6 -X0*X6
  1884. ZR X6,RCT3 IF END OF TRACK
  1885. IX7 X6/X5
  1886. SA7 WCNT
  1887. SX7 X7+1
  1888. SA1 PFC
  1889. READW CATS,X1,X7 READ CATALOG SECTOR+CONTROL WORD
  1890.  
  1891. * SET DEVICE NUMBER IN TRAILING CONTROL WORD.
  1892.  
  1893. SA1 MORD GET *MSTT* ENTRY
  1894. SA2 MSTT+X1
  1895. MX0 6
  1896. BX6 X0*X2
  1897. SA1 PFC
  1898. SA4 WCNT
  1899. SB2 X4
  1900. SA3 X1+B2
  1901. MX0 24
  1902. BX7 -X0*X3
  1903. BX6 X6+X7
  1904. SA6 A3
  1905. EQ RCTX RETURN
  1906.  
  1907. RCT3 RJ AVC ADVANCE TO NEXT TRACK
  1908. SA1 EOP
  1909. ZR X1,RCT1 IF NOT END OF PFC
  1910. EQ RCTX RETURN
  1911. SAC SPACE 4,10
  1912. ** SAC - SET PF ACTIVITY COUNT.
  1913. *
  1914. * ENTRY (ACFL) = 0, IF PF ACTIVITY COUNT NOT SET.
  1915. * 1, IF PF ACTIVITY COUNT ALREADY SET.
  1916. * (MAEQ) = MASTER DEVICE EST ORDINAL.
  1917. *
  1918. * EXIT (ACFL) = 1.
  1919. * PFU CALLED TO SET PF ACTIVITY COUNT IF NOT
  1920. * ALREADY SET.
  1921. *
  1922. * USES A - 1, 6.
  1923. * X - 1, 6.
  1924. *
  1925. * MACROS CALLPFU, REPRIEVE.
  1926.  
  1927.  
  1928. SAC SUBR ENTRY/EXIT
  1929. SA1 ACFL
  1930. NZ X1,SACX IF PF ACTIVITY COUNT ALREADY SET
  1931. SA1 MAEQ GET MASTER DEVICE EST ORDINAL
  1932. SX6 ACFL SET ACTIVITY COUNT FLAG ADDRESS
  1933. LX1 59-11
  1934. BX6 X1+X6 MERGE EST ORDINAL
  1935. SA6 ACFT+FTPM
  1936. REPRIEVE /ERR/RPVB,SET,277B SET REPRIEVE
  1937. CALLPFU ACFT,CTIA,R INCREMENT PF ACTIVITY COUNT
  1938. EQ SACX RETURN
  1939.  
  1940. *CALL COMCCOD
  1941. *CALL COMCPFU
  1942. *CALL COMCRDO
  1943. *CALL COMCRDW
  1944. *CALL COMCRSB
  1945. TITLE WORKING STORAGE AND BUFFERS.
  1946. *CALL COMCSNM
  1947. ** RESERVED LOCATIONS.
  1948. *
  1949. *T PDWD 42/0,6/0,12/ESTO
  1950. * ESTO = EST ORDINAL OF A FAMILY DEVICE.
  1951. * EQ = EST ORDINAL OF A FAMILY DEVICE.
  1952.  
  1953. PDWD BSS 1 PF DESCRIPTION WORD
  1954. ACFL CON 0 PF ACTIVITY FLAG
  1955. CCTR BSS 1 CURRENT CATALOG TRACK
  1956. CUI BSS 1 CURRENT USER INDEX
  1957. DVFL CON 0 ERROR IDLE/PF UTILITY ACTIVE FLAG
  1958. EOP CON 0 END OF PFC FLAG
  1959. ESTA BSS 1 RSB PARAMETER WORD FOR EST
  1960. FG BSS 1 ADDRESS OF RETURN STATUS WORD
  1961. FIST VFD 60/5 FILE STATUS
  1962. FM BSS 1 FAMILY NAME
  1963. MAEQ BSS 1 MASTER DEVICE EST ORDINAL
  1964. MORD DATA -1 CURRENT *MSTT* TABLE ENTRY ORDINAL
  1965. MSTA BSS 1 RSB PARAMETER WORD FOR MST
  1966. NCTR CON 0 NUMBER OF CATALOG TRACKS IN CURRENT DEVICE
  1967. PFC BSS 1 ADDRESS OF BUFFER TO HOLD PFC ENTRIES
  1968. SMSK BSS 1 SUBFAMILY MASK
  1969. WCNT BSS 1 WORD COUNT
  1970. WCNA BSS 1 ADDRESS OF WORD TO RETURN WORD COUNT
  1971.  
  1972. * MSTT - TABLE OF MST INFORMATION.
  1973. *
  1974. * 6/DN,12/EQ,22/,8/DM,12/NCTR
  1975. *
  1976. * DN = DEVICE NUMBER.
  1977. * EQ = EST ORDINAL.
  1978. * DM = DEVICE MASK.
  1979. * NCTR = NUMBER OF CATALOG TRACKS.
  1980.  
  1981. MSTT BSS MSTTL MST INFORMATION TABLE
  1982.  
  1983. * FETS.
  1984.  
  1985. ACFT FILEB 0,0,(FET=10) FET TO CONTROL PF ACTIVITY COUNT
  1986. CATS FILEB CBUF,CBUFL,FET=10D
  1987.  
  1988. * BUFFERS.
  1989.  
  1990. CBUF BSS CBUFL CATALOG BUFFER
  1991. ESTB BSS ESMX*ESTE EST BUFFER
  1992. MSTB BSS MSTN MST BUFFER
  1993.  
  1994. * DISPLAYED MESSAGE CONSTANTS.
  1995.  
  1996. MSGA DATA 40C RDPFC - ERROR IDLE, DN //.
  1997. MSGB DATA 40C RDPFC - PF UTILITY ACTIVE, DN //.
  1998.  
  1999. QUAL ERR
  2000. ERR SPACE 4,10
  2001. ** ERR - ERROR INTERRUPT HANDLER.
  2002. *
  2003. * ENTRY REPRIEVE SET.
  2004. * PF ACTIVITY COUNT FLAG SET OR CLEAR.
  2005. *
  2006. * EXIT PF ACTIVITY COUNT FLAG CLEAR.
  2007. *
  2008. * CALLS CAC.
  2009. *
  2010. * MACROS REPRIEVE.
  2011.  
  2012.  
  2013. ERR BSS 0
  2014. RJ CAC CLEAR PF ACTIVITY COUNT
  2015. ERR1 REPRIEVE RPVB,RESET,0
  2016.  
  2017. QUAL$ SET 0
  2018. *CALL COMCPFU
  2019. *CALL COMCSYS
  2020.  
  2021. RPVA EQU *-1 LWA TO CHECKSUM
  2022.  
  2023. * REPRIEVE PARAMETER BLOCK.
  2024.  
  2025. RPVB BSS 0
  2026. VFD 36/0,12/RPVL,12/0
  2027. VFD 30/RPVA,30/ERR
  2028. BSSZ 23
  2029. RPVL EQU *-RPVB LENGTH OF REPRIEVE PARAMETER BLOCK
  2030. QUAL *
  2031.  
  2032. END
  2033. IDENT SETPFP
  2034. ENTRY SETPFP
  2035. SYSCOM B1
  2036. TITLE SETPFP - SET PERMANENT FILE PARAMETERS.
  2037. *COMMENT SET PERMANENT FILE PARAMETERS.
  2038. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  2039.  
  2040. *CALL COMCMAC
  2041. SETPFP SPACE 4,30
  2042. *** SETPFP - SET PERMANENT FILE PARAMETERS.
  2043. *
  2044. * SETPFP(ADDR); (*SYMPL* CALL)
  2045. *
  2046. * ENTRY (ADDR) = PARAMETER BLOCK WHICH HAS THE
  2047. * FOLLOWING FORMAT -
  2048. * 42/FAMILY NAME,14/,4/FG
  2049. * 42/PACKNAME,18/
  2050. * 42/USER NUMBER,18/USER INDEX
  2051. * FG = FLAG BITS DENOTING WHICH FIELDS TO SET.
  2052. * BIT 3 - FAMILY NAME.
  2053. * BIT 2 - PACKNAME.
  2054. * BIT 1 - USER NUMBER.
  2055. * BIT 0 - USER INDEX.
  2056. *
  2057. * EXIT PARAMETERS SET IN CONTROL POINT AREA IF FLAGGED.
  2058. * STATUS OF SPECIFIED FAMILY RETURNED AS FOLLOWS -
  2059. * 42/FAMILY NAME,6/ST,8/0,4/FG
  2060. * ST = 0, IF FAMILY NAME SET IN CONTROL POINT AREA.
  2061. * = 1, IF SPECIFIED FAMILY WAS NOT FOUND (CURRENT
  2062. * FAMILY REMAINS UNCHANGED).
  2063. *
  2064. * USES B - 1.
  2065. *
  2066. * MACROS SETPFP.
  2067.  
  2068.  
  2069. SETPFP SUBR ENTRY/EXIT
  2070. SB1 1
  2071. SETPFP X1
  2072. EQ SETPFPX RETURN
  2073.  
  2074. END
  2075. IDENT SFCALL
  2076. ENTRY SFCALL
  2077. SYSCOM B1
  2078. TITLE SFCALL - PRIVILEGED SYSTEM CALL FROM SUBSYSTEM.
  2079. *COMMENT PRIVILEGED SYSTEM CALL FROM SUBSYSTEM.
  2080. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  2081.  
  2082. *CALL COMCMAC
  2083. SFCALL SPACE 4,25
  2084. *** SFCALL - PRIVILEGED SYSTEM CALL FROM SUBSYSTEM.
  2085. *
  2086. * SFCALL(ADDR,R); (*SYMPL* CALL)
  2087. *
  2088. * ENTRY (ADDR) = ADDRESS OF TWO WORD PARAMETER BLOCK
  2089. * WITH THE FOLLOWING FORMAT -
  2090. * 6/RC,12/FP,18/UCPA,18/SCPA,6/FC
  2091. * 36/SEQN,12/0,12/FSTA
  2092. * RC = REPLY CODE.
  2093. * FP = NUMBER OF ENTRIES IN THE LIST.
  2094. * UCPA = ADDRESS WITHIN UCP.
  2095. * SCPA = FWA OF CONTIGUOUS PARAMETER LIST.
  2096. * FC = FUNCTION CODE.
  2097. * (R) = IF .NE. 0, RECALL IS REQUESTED.
  2098. *
  2099. * EXIT SFCALL ISSUED AND THE RESPONSE CODE
  2100. * RETURNED IN THE *RC* FIELD OF THE
  2101. * PARAMETER BLOCK.
  2102. *
  2103. * USES A - 2, 4.
  2104. * B - 1.
  2105. * X - 2, 4.
  2106. *
  2107. * MACROS SFCALL.
  2108.  
  2109.  
  2110. SFCALL SUBR ENTRY/EXIT
  2111. SB1 1
  2112. SA2 A1+B1 GET RECALL PARAMETER
  2113. SA2 X2
  2114. SA4 X1 GET ADDRESS OF PARAMETER BLOCK
  2115. ZR X2,SFC1 IF RECALL NOT REQUESTED
  2116. SFCALL X4,R
  2117. EQ SFCALLX RETURN
  2118.  
  2119. SFC1 SFCALL X4
  2120. EQ SFCALLX RETURN
  2121.  
  2122. END
cdc/nos2.source/opl871/mac2.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator