User Tools

Site Tools


cdc:nos2.source:opl871:dfterm

DFTERM

Table Of Contents

  • [00007] DFTERM - DAYFILE TERMINATION PROCESSOR.
  • [00009] DAYFILE TERMINATION PROCESSOR.
  • [00189] PROGRAM CONSTANTS.
  • [00203] RESERVED LOCATIONS AND FETS.
  • [00230] MAIN ROUTINE.
  • [00336] GOP - TERMINATE DAYFILES PROCESSOR.
  • [00450] LSP - LIST PERMANENT DAYFILES PROCESSOR.
  • [00501] OTP - DISPOSE OUTPUT FILE PROCESSOR.
  • [00548] SPR - SET PROCESSOR RETURN JUMP.
  • [00566] ADN - ASSIGN AUTOMATIC DAYFILE NAME.
  • [00671] BOF - BUILD OUTPUT FILE.
  • [00764] CFT - CREATE FAMILY/PACK NAME TABLE.
  • [00837] DTD - DEFINE TERMINATED DAYFILE.
  • [00892] GCF - GET CURRENT FAMILY AND PACK NAMES.
  • [00927] GKD - GENERATE *K* DISPLAY BUFFER.
  • [00996] IPH - INITIALIZE PAGE HEADER AND PAGE CONTROL.
  • [01049] PUN - PERMIT SPECIFIED USER NUMBER WITH WRITE PERMISSION.
  • [01101] TOD - TERMINATE OLD DAYFILES.
  • [01157] VED - VALIDATE EXISTENCE OF DAYFILE ON DEVICE.
  • [01236] BDL - BUILD DAYFILE LINE.
  • [01324] CAN - CHECK CATALOG FOR AVAILABLE NAME.
  • [01388] CDN - CATAGORIZE DAYFILE NAME.
  • [01415] DDD - DETERMINE DEFAULT DEVICE.
  • [01463] EDI - EXTRACT DAYFILE INFORMATION.
  • [01528] ERP - ERROR PROCESSOR FOR *PFM* CALLS.
  • [01567] ERR - PROCESS ERROR EXIT.
  • [01580] FDE - FORMAT DAYFILE ENTRY.
  • [01703] GCD - GET CATALOG DESCRIPTION.
  • [01746] RCE - READ CATALOG ENTRY.
  • [01826] SAD - SEARCH FOR ACTIVE DAYFILE.
  • [01863] SAI - SET AUXILIARY PACK INFORMATION IN FETS.
  • [01911] SFD - SET FAMILY DESCRIPTION.
  • [01984] VVD - VERIFY VALID DEVICE FOR DAYFILE EXISTENCE.
  • [02058] DAYFILE NAME TABLES.
  • [02059] TDNK - TABLE OF DAYFILE NAME KEYS.
  • [02074] TDFT - TABLE OF DAYFILE TYPE NAMES.
  • [02086] ERROR PROCESSING TABLES.
  • [02087] TSEP - TABLE OF *SFM* ERROR PROCESSING.
  • [02100] ERROR PROCESSING MESSAGES.
  • [02111] COMMON DECKS.
  • [02131] BUFFERS.

Source Code

DFTERM.txt
  1. IDENT DFTERM1,OVLA,DFTERM,01,00
  2. ABS
  3. SST
  4. SYSCOM B1
  5. *COMMENT DFTERM - DAYFILE TERMINATION PROCESSOR.
  6. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  7. TITLE DFTERM - DAYFILE TERMINATION PROCESSOR.
  8. SPACE 4
  9. *** DFTERM - DAYFILE TERMINATION PROCESSOR.
  10. * A. J. BEEKMAN. 75/03/07.
  11. * R. J. THIELEN. 75/03/07.
  12. SPACE 4
  13. *** *DFTERM* IS A UTILITY PROGRAM THAT TERMINATES INACTIVE OR
  14. * ACTIVE DAYFILES AND MAKES THEM PERMANENT ON THE DEVICE ON
  15. * WHICH THEY CURRENTLY RESIDE AND/OR PROVIDES A LIST OF ALL
  16. * PERMANENT DAYFILES WITH INFORMATION RELATIVE TO EACH.
  17. SPACE 4
  18. *** *DFTERM* MAY BE CALLED FROM THE CONSOLE BY THE QUEUED FILE
  19. * SUPERVISOR PROGRAM (X.QFSP.) OR BY CONTROL CARD FROM SYSTEM
  20. * ORIGIN. *DFTERM* WILL ALSO BE CALLED BY A CONTROL CARD CALL
  21. * TO *DFLIST*. THE CONTROL CARD FORMATS ARE -
  22. * DFLIST.
  23. * DFTERM(P1=A1,P2=A2,...,PN=AN,PO=N)
  24. * WHERE *PO=N* IS A PARAMETER THAT DISALLOWS *K* DISPLAY INPUT,
  25. * AND P1 - PN ARE ANY OF THE FOLLOWING VALID PARAMETERS -
  26. *
  27. * FT = FILE TYPE TO TERMINATE (DEFAULT IS DAYFILE).
  28. * DAYFILE = SYSTEM DAYFILE.
  29. * ACCOUNT = SYSTEM ACCOUNT FILE.
  30. * ERRLOG = SYSTEM ERROR LOG FILE.
  31. * MAINLOG = SYSTEM MAINTENANCE LOG FILE.
  32. * I = ALTERNATE DIRECTIVE INPUT FILE. THIS IS A CONTROL
  33. * STATEMENT PARAMETER SPECIFYING WHAT FILE SHOULD
  34. * BE READ FOR INPUT DIRECTIVES. THESE DIRECTIVES
  35. * CONSIST OF ANY LEGAL K-DISPLAY INPUT OR COMMANDS.
  36. * THESE DIRECTIVES WILL BE PROCESSED AFTER THE
  37. * CONTROL STATEMENT DIRECTIVES BUT BEFORE ANY
  38. * K-DISPLAY INPUT IS ACCEPTED.
  39. * FM = FAMILY/PACK NAME (DEFAULT IS SYSTEM DAYFILE FAMILY/PACK).
  40. * DN = DEVICE NUMBER (DEFAULT IS SYSTEM DAYFILE DEVICE).
  41. * THE FM AND DN PARAMETERS ARE USED TO DEFINE ON WHICH
  42. * DEVICE THE FILE RESIDES WHEN TERMINATING AN INACTIVE
  43. * DAYFILE OR ON WHICH DEVICE THE NEW DAYFILE WILL RESIDE
  44. * WHEN TERMINATING AN ACTIVE DAYFILE. IF FM OR DN IS
  45. * NOT DEFINED WHEN TERMINATING AN ACTIVE DAYFILE, THE
  46. * NEW DAYFILE WILL RESIDE ON THE SAME FAMILY/PACK AND
  47. * SAME DEVICE AS THE OLD ONE.
  48. * OP = FILE MODE OPTION (DEFAULT IS A).
  49. * A = TERMINATE ACTIVE DAYFILE.
  50. * I = TERMINATE INACTIVE DAYFILE.
  51. * NM = NAME OF PERMANENT FILE (1 - 5 CHARACTERS).
  52. * THE CHARACTERS SPECIFIED BY NM WILL BE ADDED TO ONE
  53. * OF THE PREFIXES DF, AC, OR ER ACCORDING TO THE TYPE
  54. * OF DAYFILE SPECIFIED. IF NM IS NOT SPECIFIED, OR THE
  55. * SPECIFIED NAME IS A DUPLICATE NAME, *DFTERM* WILL
  56. * AUTOMATICALLY ASSIGN A NAME FOR THE FILE. THE
  57. * ASSIGNED NAME WILL CONSIST OF ONE OF THE PREVIOUSLY
  58. * MENTIONED PREFIXES ACCORDING TO DAYFILE TYPE FOLLOWED
  59. * BY A ONE CHARACTER SEQUENCE CHARACTER (A - 9) AND
  60. * A FOUR DIGIT DATE (MONTH AND DAY) OF CREATION.
  61. * *DFTERM* WILL SEARCH THE CATALOG FOR ALL PERMANENT
  62. * DAYFILE NAMES OF THIS TYPE, THEN ASSIGN THE SEQUENCE
  63. * CHARACTER ONE HIGHER THAN THE HIGHEST CHARACTER
  64. * FOUND. IF THE HIGHEST CHARACTER (9) IS NOT AVAILABLE,
  65. * *DFTERM* WILL SEARCH FOR THE LOWEST CHARACTER
  66. * AVAILABLE AND ASSIGN THAT CHARACTER.
  67. * L = FILE NAME TO RECEIVE OUTPUT (DEFAULT IS OUTPUT).
  68. *
  69. * THE *USRN* MICRO CAN BE DEFINED AS ANY SEVEN CHARACTER OR
  70. * LESS USER NUMBER WHICH SHOULD BE PERMITTED IN WRITE MODE TO
  71. * ALL TERMINATED DAYFILES. IF *USRN* IS NULL, NO PERMITS WILL
  72. * BE ISSUED. IF USING A PRIVATE PACK, *USRN* MUST BE SPECIFIED
  73. * AND MUST BE THE SAME USER NUMBER AS THAT OF THE PRIVATE PACK
  74. * IF NEW ACTIVE DAYFILES ARE TO BE STARTED ON THE PACK.
  75. * WITHOUT THIS CONDITION SATISFIED, CURRENT DAYFILES MAY BE
  76. * TERMINATED ON THE PACK, BUT NO NEW DAYFILES ACTIVATED ON
  77. * IT. THE TAG *PDUI* CAN BE SET TO THE USER INDEX ON WHICH
  78. * PERMANENT DAYFILES SHOULD BE DEFINED (MUST BE GREATER THAN
  79. * 377700B). *USRN* AND *PDUI* ARE FOUND IN *COMSIOQ*.
  80. SPACE 4
  81. ** ENTRY CONDITIONS.
  82. *
  83. * DFTERM IS ENTERED VIA RETURN JUMP FROM *QFSP*.
  84. *
  85. * *TARA* = FWA OF THE PARAMETER TABLE.
  86. * *TEQA* = FWA OF THE MASS STORAGE EQUIPMENT TABLE.
  87. * *TSDA* = FWA OF THE SECONDARY DEVICE MASK TABLE.
  88. SPACE 4
  89. *** DAYFILE MESSAGES.
  90. *
  91. * THE FOLLOWING MESSAGES ARE ISSUED BOTH TO THE DAYFILE AND
  92. * THE *K* DISPLAY. SPECIAL CASES FOR ISSUANCE OF THE MESSAGE
  93. * ARE IN PARENTHESES.
  94. *
  95. *
  96. * * AUTOMATIC NAME ASSIGNMENT IMPOSSIBLE.* = *DFTERM* WAS
  97. * UNABLE TO DETERMINE AN AVAILABLE NAME FOR THE TERMINATED
  98. * DAYFILE. ENTER A VALID NAME FOR THE FILE VIA THE *K*
  99. * DISPLAY.
  100. *
  101. * * CANNOT CATLIST FAMILY/PACK - FAMPCK.* = *DFTERM* WAS UNABLE
  102. * TO CATLIST THE FAMILY/PACK. CHECK THAT CATALOGS EXIST ON THE
  103. * FAMILY/PACK AND RETRY OPERATION. (*DFLIST*).
  104. *
  105. * * DAYFILE BUSY.* = DAYFILE TO BE TERMINATED WAS FOUND TO
  106. * BE ATTACHED TO ANOTHER JOB. RETRY OPERATION.
  107. *
  108. * * DAYFILE STATUS INDEFINITE.* = AN ERROR EXIT HAS OCCURED
  109. * CAUSING *DFTERM* TO ABORT WHILE IN THE PROCESS OF
  110. * TERMINATING A DAYFILE. THE STATUS OF THE DAYFILE IS
  111. * QUESTIONABLE. CONTACT AN ANALYST IMMEDIATELY. (DAYFILE
  112. * ONLY).
  113. *
  114. * * DFTERM ABORTED.* = AN ERROR EXIT HAS CAUSED *DFTERM*
  115. * TO ABORT. CHECK THE DAYFILE FOR MORE INFORMATION.
  116. * (DAYFILE ONLY).
  117. *
  118. * * ERROR - TERMINATED DAYFILE ON LOCAL FILE ZZZDAYF.* = AN
  119. * ERROR OCCURRED WHILE DEFINING THE PERMANENT FILE FOR THE
  120. * TERMINATED DAYFILE WHICH REMAINS ON LOCAL FILE *ZZZDAYF*.
  121. * SEE DAYFILE FOR *PFM* ERROR MESSAGE.
  122. *
  123. * * INACTIVE DAYFILE NOT FOUND ON DEVICE.* = NO INACTIVE
  124. * DAYFILE OF THE SPECIFIED TYPE WAS FOUND ON THE SPECIFIED
  125. * DEVICE. ENTER THE CORRECT FAMILY AND DEVICE NUMBER VIA THE
  126. * *K* DISPLAY.
  127. *
  128. * * INACTIVE DAYFILE ON DEVICE.* = INACTIVE DAYFILE ALREADY
  129. * EXISTS ON DEVICE ON WHICH NEW ACTIVE DAYFILE IS TO BE
  130. * CREATED. ENTER ANOTHER DEVICE VIA *K* DISPLAY PARAMETERS.
  131. *
  132. * * INVALID DEVICE SPECIFIED.* = THE DEVICE SPECIFIED BY THE
  133. * CONTROL PARAMETERS IS NOT A VALID DAYFILE DEVICE.
  134. *
  135. * * NO ACTIVE DAYFILE FOUND.* = NO ACTIVE DAYFILE OF SPECIFIED
  136. * TYPE FOUND IN *QFSP* EQUIPMENT TABLE. STOP THIS *DFTERM*
  137. * RUN, START UP ANOTHER *DFTERM*, AND RETRY OPERATION. IF
  138. * ERROR STILL EXISTS, CHECK SYSTEM FOR LOSS OF DAYFILE.
  139. *
  140. * * NO PERMANENT DAYFILES.* = NO PERMANENT DAYFILES EXIST ON
  141. * ANY PERMANENT FILE DEVICE.
  142. *
  143. * * NOT ENOUGH MASS STORAGE.* = NOT ENOUGH MASS STORAGE
  144. * EXISTS ON SPECIFIED DEVICE TO ENABLE CREATION OF NEW
  145. * ACTIVE DAYFILE. ENTER NEW DEVICE VIA *K* DISPLAY.
  146. *
  147. * * PERMANENT DAYFILE DEFINED AS XXXXXXX.* = DAYFILE HAS BEEN
  148. * TERMINATED AND DEFINED UNDER NAME XXXXXXX.
  149. *
  150. * * PRIVATE PACK/PERMIT UN CONFLICT.* = USER NUMBER OF
  151. * PRIVATE PACK IS NOT THE SAME AS THE USER NUMBER SPECIFIED
  152. * FOR PERMITS. NO NEW ACTIVE DAYFILES MAY BE STARTED ON THIS
  153. * PRIVATE PACK IN THIS CASE.
  154. *
  155. * * REMOVABLE DEVICE/NO ACTIVE DAYFILES.* = DEVICE SPECIFIED
  156. * BY *K* DISPLAY PARAMETERS IS A REMOVABLE DEVICE, AND OPTION
  157. * IS TO TERMINATE AN ACTIVE DAYFILE. NO ACTIVE DAYFILES ARE
  158. * ALLOWED TO RESIDE ON REMOVABLE DEVICES. ENTER NEW DEVICE
  159. * VIA *K* DISPLAY PARAMETERS.
  160. *
  161. * * UNCORRECTABLE RMS ERROR.* = ERROR WAS DETECTED READING
  162. * THE EOI. RETRY OPERATION.
  163. *
  164. * * WAITING FOR PF UTILITY.* = PF UTILITY IN OPERATION WHEN
  165. * *PFM* CALLED. *DFTERM* WILL RETRY OPERATION UNTIL
  166. * UTILITY IS COMPLETED. (CONTROL POINT AREA MESSAGE ONLY).
  167. SPACE 4
  168. *** *K* DISPLAY OPERATOR MESSAGES.
  169. *
  170. * *NO OUTPUT FILE EXISTING.* = NO OUTPUT FILE HAS BEEN
  171. * CREATED PREVIOUS TO ENTERING *OUT* COMMAND.
  172. *
  173. * *OUTPUT FILE RELEASED.* = OUTPUT FILE RELEASED TO PRINTER.
  174. *
  175. * *PERMANENT DAYFILE LIST COMPLETE.* = PERMANENT DAYFILE LIST
  176. * WRITTEN TO OUTPUT FOR *DFLIST* OR TO *K* DISPLAY BUFFER
  177. * FOR *DFTERM*.
  178. SPACE 4
  179. * COMMON DECKS.
  180.  
  181. *CALL COMCMAC
  182. *CALL COMCCMD
  183. *CALL COMSPFM
  184. *CALL COMSSFM
  185. LIST X
  186. *CALL COMSIOQ
  187. *CALL COMSQFS
  188. LIST -X
  189. TITLE PROGRAM CONSTANTS.
  190. * CONSTANTS.
  191.  
  192. CBUFL EQU 101B CATALOG BUFFER LENGTH
  193. DBUFL EQU 1 DAYFILE BUFFER LENGTH
  194. KBUFL EQU 300B *K* DISPLAY BUFFER LENGTH
  195. OBUFL EQU 1001B OUTPUT BUFFER LENGTH
  196. PDCBL EQU MSMX+2 PERMANENT DAYFILE CONTROL BUFFER LENGTH
  197. PDLBL EQU 7 PERMANENT DAYFILE LIST LINE BUFFER LENGTH
  198. DSPBL EQU 7 *DSP* PARAMETER BLOCK LENGTH
  199. PPOS EQU TPPA+PPLN PAGE POSITION (LINE NUMBER)
  200. PDFE EQU TPPA+PPPD PRINT DENSITY FORMAT EFFECTOR
  201. KDLC EQU KMLL-6 *K* DISPLAY LINE COUNT
  202. FRDC EQU 20B *DSP* DISPOSITION CODE FLAG
  203. TITLE RESERVED LOCATIONS AND FETS.
  204. * RESERVED LOCATIONS.
  205.  
  206. ORG OVLA
  207.  
  208. DNUM CON 0 DAYFILE NUMBER
  209. PNUM CON 0 PAGE NUMBER
  210. LIST CON 0 RECORD COUNT ON OUTPUT
  211. ANAM CON 0 AUTOMATICALLY ASSIGNED DAYFILE NAME
  212. SNAM CON 0 SPECIFIED DAYFILE NAME
  213. FMPC CON 0 FAMILY/PACK NAME OF TERMINATION DEVICE
  214. APIN CON 0 AUXILIARY PACK INFORMATION
  215. CFAM CON 0 CURRENT USER FAMILY NAME
  216. CPCK CON 0 CURRENT USER PACK NAME
  217. DFSF CON 0 DAYFILE STATUS FLAG
  218. SPACE 4
  219. * FETS.
  220.  
  221. C BSS 0 CATALOG READ FILE
  222. CATALOG FILEB CBUF,CBUFL,EPR,(FET=15)
  223.  
  224. D BSS 0 DAYFILE TERMINATION FILE
  225. ZZZDAYF FILEB DBUF,DBUFL,EPR,(FET=20B)
  226.  
  227. O BSS 0 OUTPUT FILE
  228. OUTPUT FILEB OBUF,OBUFL,(FET=7)
  229. DFTERM TITLE MAIN ROUTINE.
  230. ** DFTERM - MAIN ROUTINE.
  231. *
  232. * ENTRY PARAMETER TABLE FWA - *TARA*.
  233. * MASS STORAGE TABLE FWA - *TEQA*.
  234. * SECONDARY DEVICE MASK TABLE FWA - *TSDA*.
  235. *
  236. * EXIT (X5) = *K* DISPLAY MESSAGE ADDRESS.
  237. * (X2) = *K* DISPLAY BUFFER ADDRESS.
  238.  
  239.  
  240. DFTERM SUBR ENTRY/EXIT
  241. SB1 1
  242. MEMORY CM,,R,BUFFL
  243. SX6 MPER SET *PFM* ERROR RETURN ADDRESS
  244. SA6 D+10
  245. SA1 TARA+ARFC CLEAR FORCE *K* DISPLAY FLAG
  246. MX0 -1
  247. LX0 55-0
  248. BX6 X1*X0
  249. SA6 A1
  250.  
  251. * INITIALIZE FAMILY AND PACK NAMES.
  252.  
  253. SX6 B1 CLEAR FAMILY/PACK NAME
  254. LX6 18
  255. SA6 SFDA+1
  256. BX7 X7-X7 CLEAR USER INDEX
  257. SA7 A6+B1
  258. RJ GCF GET CURRENT FAMILY AND PACK
  259.  
  260. * SET PROCESSOR ADDRESS.
  261.  
  262. SA2 TARA+ARFC SET FUNCTION PROCESSOR ADDRESS
  263. SA3 TFCN+X2
  264. SB7 X3
  265. SX2 X2
  266. ZR X2,DFT2 IF *GO* COMMAND
  267.  
  268. * SET OUTPUT FILE NAME.
  269.  
  270. RECALL O
  271. SA1 O GET CURRENT FILE NAME
  272. SA3 TARA+ARLL
  273. MX0 42
  274. BX4 X1-X3
  275. BX2 X0*X4
  276. BX6 X6-X6 INITIALIZE LIST FLAG
  277. ZR X2,DFT1 IF NO FILE NAME CHANGE
  278. SA6 LIST
  279. DFT1 SX1 3
  280. BX6 X3+X1
  281. SA6 A1
  282.  
  283. * CALL FUNCTION PROCESSOR.
  284.  
  285. DFT2 RETURN D,R
  286. RJ SPR JUMP TO PROCESSOR
  287. SA2 TARA+ARFC CHECK FOR HIDDEN ERROR
  288. SX3 X2+
  289. NZ X3,DFT3 IF NOT *GO* COMMAND
  290. SA1 GOPC
  291. NZ X1,DFT3 IF TERMINATION COMPLETE
  292. MESSAGE X5
  293. SA1 TARA+ARFC SET FORCE *K* DISPLAY FLAG
  294. MX0 1
  295. LX0 55-59
  296. BX6 X0+X1
  297. SA6 A1
  298. SA2 DFSF GET DAYFILE STATUS FLAG
  299. NG X2,DFT3 IF TERMINATED DAYFILE PERMANENT
  300. ZR X2,DFT3 IF DAYFILE NOT TERMINATED
  301. SETFS D,0 INSURE LOCAL FILE IS RETAINED
  302. EQ DFT4 SET RETURN PARAMETERS
  303.  
  304. * SET PARAMETERS FOR RETURN TO *QFSP*.
  305.  
  306. DFT3 RETURN D,R
  307. DFT4 RETURN C,R
  308. PACKNAM CPCK SET USER PACK
  309. ENFAM CFAM SET USER FAMILY
  310. EREXIT 0 CLEAR ERROR EXIT
  311. SX2 B7 SET *K* DISPLAY BUFFER ADDRESS
  312. EQ DFTERMX
  313. SPACE 4
  314. ** FUNCTION TABLE.
  315. *
  316. * INDEX INTO TABLE IS FUNCTION CODE FROM *QFSP*.
  317.  
  318. TFCN BSS 0 FUNCTION PROCESSOR ADDRESS TABLE
  319. LOC 0
  320. CON GOP TERMINATE DAYFILES PROCESSOR (*GO*)
  321. CON 0
  322. CON LSP LIST DAYFILES PROCESSOR (*LIST*)
  323. CON OTP DISPOSE OUTPUT FILE PROCESSOR (*OUT*)
  324. LOC *O
  325. GOP TITLE COMMAND PROCESSOR SUBROUTINES.
  326. *** GO.
  327. * TERMINATE ACTIVE OR INACTIVE DAYFILE AND DEFINE AS
  328. * A DIRECT ACCESS PERMANENT FILE ON THE DEVICE ON
  329. * WHICH IT CURRENTLY RESIDES. IF ACTIVE DAYFILE
  330. * TERMINATION, CREATE NEW ACTIVE DAYFILE ON DEVICE
  331. * SPECIFIED BY *K* DISPLAY PARAMETERS. DEFINE
  332. * TERMINATED DAYFILE AS PRIVATE FILE WITH READ MODE
  333. * PERMISSION. ALSO, PERMIT AN ASSEMBLY-TIME DEFINED
  334. * USER NUMBER IN WRITE MODE.
  335.  
  336. ** GOP - TERMINATE DAYFILES PROCESSOR.
  337. *
  338. * EXIT (X5) = *K* DISPLAY MESSAGE ADDRESS.
  339. * (B7) = 0 (NO *K* DISPLAY BUFFER).
  340. *
  341. * USES A - 1, 2, 3, 4, 5, 6, 7.
  342. * B - 7.
  343. * X - ALL.
  344. *
  345. * CALLS ADN, DTD, PUN, TOD, VED.
  346. *
  347. * MACROS EREXIT, SYSTEM.
  348.  
  349.  
  350. GOP SUBR ENTRY/EXIT
  351. SA3 TARA+ARFT DAYFILE TYPE
  352. SA4 TARA+ARDN GET EST ORDINAL
  353. BX6 X6-X6 CLEAR ACTIVE DAYFILE EQUIPMENT AND FLAG
  354. SA6 GOPB
  355. SA6 A6+B1
  356. MX0 -12
  357. BX4 -X0*X4
  358. SA2 TARA+AROP OPTION
  359. BX3 -X0*X3
  360. BX2 -X0*X2
  361.  
  362. * VALIDATE DAYFILE TERMINATION.
  363.  
  364. RJ VED VALIDATE EXISTENCE OF DAYFILE ON DEVICE
  365. NZ X5,GOPX IF ERROR
  366. LX3 12
  367. LX4 48 SAVE EQUIPMENT AND DAYFILE TYPE
  368. BX7 X4+X3
  369. SA7 GOPA
  370. SA7 D+7
  371. EREXIT ERR1 SET MINOR ERROR EXIT ADDRESS
  372.  
  373. * ASSIGN NAME TO DAYFILE.
  374.  
  375. RJ ADN ASSIGN DAYFILE NAME
  376. NZ X5,GOPX IF ERROR
  377. BX6 X2 INSERT NAME IN FET
  378. SA6 D+CFPN
  379. EREXIT ERR SET MAJOR ERROR EXIT ADDRESS
  380.  
  381. * TERMINATE DAYFILE.
  382.  
  383. RJ TOD TERMINATE OLD DAYFILES
  384. NZ X5,GOPX IF ERROR
  385.  
  386. * FINISH DAYFILE TERMINATION.
  387.  
  388. SA5 TARA+AROP OPTION
  389. MX0 -12
  390. BX5 -X0*X5
  391. SA1 GOPB
  392. ZR X5,GOP1 IF INACTIVE DAYFILE TERMINATION
  393. ZR X1,GOP1 IF NO EQUIPMENT SWITCH
  394. MX0 12 SET ACTIVE DAYFILE EST ORDINAL
  395. SA2 GOPA
  396. BX2 -X0*X2
  397. BX1 X0*X1
  398. BX6 X1+X2
  399. SA6 A2+
  400.  
  401. * CLEAR FIRST TRACK BYTE IN SECTOR OF LOCAL AREAS.
  402.  
  403. GOP1 SA2 A1-B1 SET EQUIPMENT AND DAYFILE TYPE IN FET
  404. BX7 X2
  405. SA7 D+7
  406. SYSTEM SFM,R,D,CDBF*100B
  407. ZR X5,GOP2 IF INACTIVE DAYFILE TERMINATION
  408.  
  409. * PROTECT ACTIVE DAYFILE.
  410.  
  411. SA2 GOPA SET DAYFILE TYPE IN FET
  412. MX0 12
  413. BX7 -X0*X2
  414. SA7 D+7
  415. SYSTEM SFM,R,D,PADF*100B
  416.  
  417. * DEFINE TERMINATED DAYFILE.
  418.  
  419. GOP2 EREXIT ERR1 SET MINOR ERROR EXIT ADDRESS
  420. SX6 B1 SET DAYFILE STATUS FLAG
  421. SA6 DFSF
  422. BX6 X6-X6 CLEAR EST ORDINAL
  423. SA6 D+7
  424. RJ DTD DEFINE TERMINATED DAYFILE
  425. NZ X5,GOPX IF ERROR
  426.  
  427. * PERMIT USER NUMBER.
  428.  
  429. SX6 B0+ CLEAR DAYFILE STATUS FLAG
  430. SA6 DFSF
  431. RJ PUN PERMIT SPECIFIED USER NUMBER
  432. NZ X5,GOPX IF ERROR
  433. SX5 DTDA SET *K* DISPLAY MESSAGE
  434. SB7 B0
  435. SX6 B1 SET COMPLETION FLAG
  436. SA6 GOPC
  437. EQ GOPX
  438.  
  439. GOPA CON 0 EQUIPMENT AND DAYFILE TYPE
  440. GOPB CON 0 ACTIVE DAYFILE EST ORDINAL
  441. GOPC CON 0 TERMINATION COMPLETE FLAG
  442. LSP EJECT
  443. *** LIST.
  444. * PRODUCE LISTING OF PERTINENT INFORMATION FOR ALL
  445. * PERMANENT DAYFILES ON THE SYSTEM. SET OUTPUT FOR
  446. * RELEASE IF *DFLIST* CALL. ADD LIST TO CURRENT OUTPUT
  447. * FILE AND BUILD *K* DISPLAY BUFFER FROM THE LIST IF
  448. * *DFTERM* CALL.
  449.  
  450. ** LSP - LIST PERMANENT DAYFILES PROCESSOR.
  451. *
  452. * ENTRY (LIST) = RECORD COUNT ON OUTPUT FILE.
  453. *
  454. * EXIT (B7) = ADDRESS OF *K* DISPLAY BUFFER IF *DFTERM* CALL.
  455. * = 0 IF *DFLIST* OR IF ERROR.
  456. * (X5) = *K* DISPLAY MESSAGE ADDRESS.
  457. * (LIST) INCREASED IF PERMANENT DAYFILES EXIST.
  458. *
  459. * USES A - 1, 5, 6.
  460. * B - 7.
  461. * X - 1, 5, 6.
  462. *
  463. * CALLS BOF, CFT, GKD, IPH.
  464. *
  465. * MACROS BKSP, EREXIT, READEI, SETFS.
  466.  
  467.  
  468. LSP SUBR ENTRY/EXIT
  469.  
  470. * BUILD OUTPUT.
  471.  
  472. RJ CFT CREATE FAMILY NAME TABLE
  473. RJ IPH INITIALIZE PAGE HEADER AND PAGE CONTROL
  474. EREXIT ERR1 SET MINOR ERROR EXIT ADDRESS
  475. RJ BOF BUILD OUTPUT FILE
  476. NZ X5,LSPX IF ERROR
  477. SA1 TARA+ARFC
  478. PL X1,LSP1 IF NOT DFLIST CALL
  479.  
  480. * SET OUTPUT FOR DFLIST CALL.
  481.  
  482. SETFS O,0
  483. SX5 =C*PERMANENT DAYFILE LIST COMPLETE.*
  484. SB7 B0+ SET NO *K* DISPLAY
  485. EQ LSPX
  486.  
  487. * CREATE *K* DISPLAY BUFFER.
  488.  
  489. LSP1 SA5 LIST INCREASE RECORD COUNT
  490. SX6 X5+B1
  491. SA6 A5
  492. BKSP O SET BEGINNING OF CURRENT RECORD
  493. READEI X2
  494. RJ GKD GENERATE *K* DISPLAY
  495. EQ LSPX
  496. OTP EJECT
  497. *** OUT.
  498. * RELEASE OUTPUT FILE TO PRINTER IF ONE HAS BEEN
  499. * WRITTEN.
  500.  
  501. ** OTP - DISPOSE OUTPUT FILE PROCESSOR.
  502. *
  503. * ENTRY (LIST) .NE. 0 IF OUTPUT FILE WRITTEN.
  504. *
  505. * EXIT (LIST) = 0 (OUTPUT FLAG).
  506. * (X5) = *K* DISPLAY MESSAGE ADDRESS.
  507. * (B7) = 0 (NO *K* DISPLAY BUFFER).
  508. *
  509. * USES A - 2, 6.
  510. * B - 7.
  511. * X - 2, 5, 6.
  512. *
  513. * MACROS ROUTE.
  514.  
  515.  
  516. OTP SUBR ENTRY/EXIT
  517. SA2 LIST CHECK IF OUTPUT EXISTS
  518. ZR X2,OTP1 IF NO OUTPUT FILE
  519. BX6 X6-X6 CLEAR OUTPUT FLAG AND RECORD COUNT
  520. SA6 A2
  521.  
  522. * RELEASE OUTPUT FILE.
  523.  
  524. SX6 B0+ CLEAR *DSP* PARAMETER BLOCK
  525. SB7 DSPBL-1
  526. OTP0 SA6 DSPB+B7
  527. SB7 B7-1
  528. PL B7,OTP0 IF NOT END OF BLOCK
  529. SA2 O GET FILE NAME
  530. MX6 42
  531. BX6 X6*X2
  532. SA6 DSPB *DSP* PARAMETER BLOCK
  533. SA2 OTPA
  534. BX6 X2
  535. SA6 A6+B1
  536. ROUTE DSPB,RECALL
  537. SX5 =C*OUTPUT FILE RELEASED. *
  538. SB7 B0+
  539. EQ OTPX
  540.  
  541. OTP1 SX5 =C*NO OUTPUT FILE EXISTING. *
  542. SB7 B0+
  543. EQ OTPX
  544.  
  545.  
  546. OTPA VFD 24/0,12/2HPR,6/0,18/FRDC
  547. SPR EJECT
  548. ** SPR - SET PROCESSOR RETURN JUMP.
  549. *
  550. * ENTRY (B7) = ADDRESS OF PROCESSOR.
  551. * (SPR) = RETURN JUMP ADDRESS.
  552. *
  553. * EXIT RETURN JUMP ADDRESS SET IN PROCESSOR.
  554. * JUMPS TO COMMAND PROCESSOR.
  555. *
  556. * USES A - 1, 6.
  557. * X - 1, 6.
  558.  
  559.  
  560. SPR SUBR ENTRY/EXIT
  561. SA1 SPRX SET RETURN ADDRESS
  562. BX6 X1
  563. SA6 B7
  564. JP B7+1 JUMP TO SUBROUTINE
  565. ADN TITLE PRIMARY SUBROUTINES.
  566. ** ADN - ASSIGN AUTOMATIC DAYFILE NAME.
  567. *
  568. * ENTRY (FMPC) = FAMILY OR PACK NAME.
  569. *
  570. * EXIT (X2) = SPECIFIED DAYFILE NAME IF NOT A DUPLICATE,
  571. * AUTOMATICALLY ASSIGNED NAME OTHERWISE.
  572. * (X5) = 0 IF NAME ASSIGNED.
  573. * = *K* DISPLAY MESSAGE ADDRESS IF ERROR.
  574. * (B7) = 0 IF ERROR.
  575. *
  576. * USES A - 1, 2, 3, 6, 7.
  577. * B - 7.
  578. * X - 0, 1, 2, 3, 5, 6, 7.
  579. *
  580. * CALLS CAN.
  581.  
  582.  
  583. ADN SUBR ENTRY/EXIT
  584. SX6 B0+ CLEAR SPECIFIED NAME FLAG
  585. SA6 SNAM
  586.  
  587. * FORM SPECIFIED NAME FROM KEYWORD AND SPECIFIED CHARACTERS.
  588.  
  589. SA2 TARA+ARFT GET DAYFILE TYPE CODE
  590. MX0 -12
  591. BX2 -X0*X2
  592. SA3 TDNK+X2 SET DAYFILE NAME KEYWORD
  593. SA1 TARA+ARNM CHECK IF CHARACTERS SPECIFIED
  594. ZR X1,ADN1 IF NONE SPECIFIED
  595. MX0 30 COMBINE NAME KEY AND SPECIFIED CHARACTERS
  596. BX1 X0*X1
  597. LX1 -12
  598. BX6 X3+X1
  599. SA6 SNAM
  600.  
  601. * FORM AUTOMATIC DAYFILE NAME SKELETON.
  602.  
  603. ADN1 DATE ANAM
  604. SA2 ANAM FORM LAST FOUR CHARACTERS OF NAME
  605. LX2 6
  606. MX0 12
  607. LX0 -18
  608. BX1 X0*X2 MONTH
  609. LX2 6
  610. LX0 -12
  611. BX2 X0*X2 DAY
  612. BX6 X1+X2
  613. BX7 X3+X6
  614. SA7 A2
  615.  
  616. * SET INFORMATION IN FET.
  617.  
  618. SA2 FMPC SET FAMILY/PACK AND USER INDEX
  619. MX0 42
  620. SX3 X2 MASK IN AUXILIARY PACK FLAG
  621. BX2 X0*X2
  622. LX3 17
  623. SX1 PDUI
  624. BX2 X2+X3
  625. BX6 X1+X2
  626. SA6 C+14
  627.  
  628. * CHECK FOR AVAILABLE NAME.
  629.  
  630. RJ CAN CHECK CATALOG FOR AVAILABLE NAME
  631. NZ X5,ADNX IF ERROR
  632. SA2 SNAM
  633. ZR X2,ADN2 IF NO SPECIFIED NAME
  634. SX6 X2
  635. BX5 X5-X5
  636. NZ X6,ADN2 IF DUPLICATE FILE NAME
  637. EQ ADNX
  638.  
  639. * FIND NEXT SEQUENCE CHARACTER IF AUTOMATIC ASSIGNMENT.
  640.  
  641. ADN2 SA1 CANB CHECK FOR NEXT SEQUENCE CHARACTER
  642. SX6 1R9
  643. LX1 59-35
  644. NG X1,ADN4 IF MAXIMUM CHARACTER USED
  645. ADN3 LX1 1
  646. NG X1,ADN6 IF LATEST SEQUENCE CHARACTER FOUND
  647. SX6 X6-1 DECREMENT SEQUENCE CHARACTER
  648. SX7 X6-1
  649. NZ X7,ADN3 IF NOT ALL CHARACTERS CHECKED
  650. EQ ADN6
  651.  
  652. * CHECK FOR LOWEST AVAILABLE SEQUENCE CHARACTER.
  653.  
  654. ADN4 SX6 1RA CHECK FOR LOWEST CHARACTER
  655. LX1 59-24-0
  656. ADN5 PL X1,ADN6 IF CHARACTER AVAILABLE
  657. LX1 59
  658. SX6 X6+B1 INCREMENT CHARACTER
  659. SX7 X6-1R9
  660. NZ X7,ADN5 IF NOT AT MAXIMUM CHARACTER
  661. SB7 B0+
  662. SX5 =C* AUTOMATIC NAME ASSIGNMENT IMPOSSIBLE.*
  663. EQ ADNX
  664.  
  665. ADN6 SA1 ANAM ADD SEQUENCE CHARACTER TO SKELETON NAME
  666. LX6 42
  667. BX2 X6+X1
  668. SX5 B0
  669. EQ ADNX
  670. BOF SPACE 4,15
  671. ** BOF - BUILD OUTPUT FILE.
  672. *
  673. * ENTRY (PPOS) = PAGE POSITION (SET TO END OF PAGE).
  674. * (PNUM) = PAGE NUMBER (SET TO 1).
  675. * (DNUM) = DAYFILE NUMBER (SET TO 1).
  676. * (PDFE+1) = SET IF PRINT DENSITY FORMAT EFFECTOR
  677. * NOT YET WRITTEN.
  678. *
  679. * EXIT (X5) = 0 IF DAYFILES EXIST.
  680. * = *K* DISPLAY MESSAGE ADDRESS IF ERROR.
  681. * (B7) = 0 IF ERROR.
  682. *
  683. * USES A - 1, 6, 7.
  684. * B - 7.
  685. * X - 0, 1, 2, 5, 6, 7.
  686. *
  687. * CALLS BDL, CDD.
  688. *
  689. * MACROS MESSAGE, WRITEC, WRITER.
  690.  
  691.  
  692. BOF SUBR ENTRY/EXIT
  693.  
  694. * BUILD LIST LINES.
  695.  
  696. BOF1 SX1 PDCB PERMANENT DAYFILE LIST CONTROL BLOCK
  697. SX2 PDLB AREA TO RECEIVE LIST LINE
  698. RJ BDL BUILD DAYFILE LIST LINE
  699. NZ X5,BOFX IF ERROR
  700. NZ X6,BOF3 IF END OF DAYFILE LIST
  701. SA1 DNUM INCREMENT DAYFILE NUMBER
  702. SX6 X1+B1
  703. SA6 A1
  704. RJ CDD CONVERT TO DISPLAY CODE
  705. LX6 30 PUT IN LIST LINE
  706. MX0 -24
  707. SA1 PDLB
  708. BX1 -X0*X1
  709. BX6 X0*X6
  710. BX7 X1+X6
  711. SA7 A1
  712. SA1 PPOS CHECK PAGE POSITION
  713. SA2 A1+B1
  714. IX2 X1-X2
  715. NG X2,BOF2 IF NOT END OF PAGE
  716.  
  717. * WRITE PAGE HEADER.
  718.  
  719. SA1 PNUM INCREMENT PAGE NUMBER
  720. SX6 X1+B1
  721. SA6 A1
  722. RJ CDD CONVERT TO DISPLAY CODE
  723. MX1 -18 PUT PAGE NUMBER IN PAGE HEADER
  724. BX6 -X1*X6
  725. SA1 =5LPAGE
  726. LX6 12
  727. BX6 X1+X6
  728. SA6 BOFA+6
  729. SA1 PDFE+1 GET PRINT DENSITY FORMAT CONTROL FLAG
  730. BX7 X7-X7
  731. SA7 A1
  732. WRITEW O,A1-B1,X1 CONDITIONALLY WRITE FORMAT EFFECTOR
  733. WRITEC O,BOFA WRITE PAGE HEADING
  734. WRITEC O,BOFB WRITE SECOND HEADING LINE
  735. WRITEC O,(=C* *) WRITE BLANK LINE
  736. SX1 4 SET PAGE HEADING LINE COUNT
  737.  
  738. * WRITE LIST LINE.
  739.  
  740. BOF2 SX6 X1+1 COUNT OUTPUT LINE
  741. SA6 PPOS
  742. WRITEC O,PDLB,PDLBL WRITE DAYFILE LINE
  743. EQ BOF1 GET NEXT LINE
  744.  
  745. * END DAYFILE LIST.
  746.  
  747. BOF3 SA1 DNUM CHECK DAYFILE COUNT
  748. SX1 X1-2
  749. NG X1,BOF4 IF NO DAYFILES LISTED
  750. WRITER O,R
  751. BX5 X5-X5 SET NO MESSAGE
  752. EQ BOFX
  753.  
  754. BOF4 SX5 =C* NO PERMANENT DAYFILES. *
  755. SB7 B0
  756. MESSAGE X5
  757. EQ BOFX
  758.  
  759. BOFA DATA C*1CATALOG OF PERMANENT DAYFILES (000000). 00/00/00 00
  760. ,.00.00 PAGE 000* FIRST DAYFILE PAGE HEADER
  761. BOFB DATA C*0 NUM TYPE FM/PN DN PFNAME DATE TIME L
  762. ,ENGTH*
  763. CFT SPACE 4,7
  764. ** CFT - CREATE FAMILY/PACK NAME TABLE.
  765. *
  766. * EXIT (PDCB) = FIRST WORD OF FAMILY/PACK NAME TABLE.
  767. *
  768. * USES A - 1, 2, 6.
  769. * B - 2, 3, 4, 5, 6.
  770. * X - 0, 1, 2, 6, 7.
  771.  
  772.  
  773. CFT SUBR ENTRY/EXIT
  774. SX6 C SET FET ADDRESS
  775. SA6 PDCB
  776. SB2 PDCB+2 SET ADDRESS FOR FAMILY/PACK NAME TABLE
  777. SB3 B0 SET OUTPUT TABLE EMPTY
  778. SB5 B0 INITIALIZE TO EQUIPMENT ZERO
  779. SX2 PDUI SET SHIFT COUNT FOR MASK TEST
  780. MX6 -3
  781. BX2 -X6*X2
  782. SB6 X2-59
  783.  
  784. * SEARCH EQUIPMENT TABLE FOR MASS STORAGE FAMILIES/PACKS.
  785.  
  786. CFT1 SA1 TEQA+B5 GET AN EQUIPMENT ENTRY
  787. ZR X1,CFT4 IF END OF EQUIPMENT TABLE
  788. SB5 B5+1 ADVANCE EQUIPMENT
  789. SX2 B1
  790. IX2 X1+X2
  791. ZR X2,CFT1 IF NOT MASS STORAGE EQUIPMENT
  792. SA2 TMSA+B5-1 GET DEVICE MASK FOR EQUIPMENT
  793. AX6 X2,B6
  794. PL X6,CFT1 IF USER INDEX NOT ON THIS DEVICE
  795. MX6 42 GET FAMILY/PACK NAME
  796. BX6 X6*X1
  797. LX1 59-2
  798. SB4 B0+ INITIALIZE AT START OF OUTPUT TABLE
  799. PL X1,CFT2 IF NOT AUXILIARY DEVICE
  800. SX1 B1+ SET AUXILIARY PACK FLAG
  801. LX1 17
  802. BX6 X6+X1
  803. SX7 B5-B1 ADD EST ORDINAL
  804. BX6 X6+X7
  805.  
  806. * CHECK IF FAMILY/PACK ALREADY IN TABLE.
  807.  
  808. CFT2 GE B4,B3,CFT3 IF END OF OUTPUT TABLE
  809. SA1 B2+B4 GET A NAME FROM OUTPUT TABLE
  810. BX2 X1-X6
  811. ZR X2,CFT1 IF NAMES MATCH (ALREADY IN TABLE)
  812. SB4 B4+1 ADVANCE OUTPUT TABLE INDEX
  813. EQ CFT2 LOOP TO CHECK NEXT NAME
  814.  
  815. CFT3 SA6 B2+B3 PUT NAME IN OUTPUT TABLE
  816. SB3 B3+B1 COUNT TABLE ENTRY
  817. EQ CFT1 LOOP TO CHECK MORE EQUIPMENT
  818.  
  819. CFT4 SX6 B3+ FAMILY/PACK NAME COUNT
  820. LX6 18
  821. SA6 B2-B1
  822.  
  823. * ADD USER INDEX TO TABLE FOR FAMILY ENTRIES.
  824.  
  825. MX0 -18
  826. SB4 B0
  827. SX2 PDUI PERMANENT DAYFILE USER INDEX
  828. CFT5 GE B4,B3,CFTX IF END OF FAMILY/PACK NAME TABLE
  829. SA1 B2+B4 GET FAMILY/PACK NAME
  830. SB4 B4+B1 ADVANCE INDEX
  831. BX7 -X0*X1
  832. NZ X7,CFT5 IF AUXILIARY PACK
  833. BX6 X1+X2 ADD USER INDEX
  834. SA6 A1
  835. EQ CFT5 PROCESS NEXT FAMILY/PACK
  836. DTD SPACE 4,11
  837. ** DTD - DEFINE TERMINATED DAYFILE.
  838. *
  839. * EXIT (X5) = 0 IF NO ERROR.
  840. * = *K* DISPLAY MESSAGE ADDRESS IF ERROR.
  841. * (B7) = 0 IF ERROR.
  842. *
  843. * USES A - 1, 2, 7.
  844. * B - 7.
  845. * X - 0, 1, 2, 3, 5, 6, 7.
  846. *
  847. * CALLS ERP, SFN.
  848. *
  849. * MACROS DEFINE, MESSAGE.
  850.  
  851.  
  852. DTD SUBR ENTRY/EXIT
  853.  
  854. * DEFINE DAYFILE AS PERMANENT.
  855.  
  856. DTD1 DEFINE D,,,,,,R,,,,,,IE,,,Y
  857. SA2 D CHECK FOR ERROR
  858. MX0 8
  859. LX0 18
  860. BX6 X0*X2
  861. NZ X6,DTD2 IF *PFM* ERROR
  862.  
  863. * SET UP PERMANENT DAYFILE MESSAGE.
  864.  
  865. MX0 42 SET PERMANENT FILE NAME IN MESSAGE
  866. SA2 D+8
  867. BX1 X0*X2
  868. RJ SFN SPACE FILL NAME
  869. SA1 DTDA+3
  870. BX6 X0*X6
  871. BX3 -X0*X1
  872. BX7 X3+X6
  873. SA7 A1
  874. MESSAGE DTDA
  875. BX5 X5-X5 SET NO ERROR
  876. EQ DTDX
  877.  
  878. * PROCESS ERROR.
  879.  
  880. DTD2 BX7 -X0*X2 CLEAR ERROR BITS
  881. SA7 A2
  882. RJ ERP ERROR PROCESSOR
  883. ZR X5,DTD1 IF RETRY OPERATION
  884. MESSAGE X5 ISSUE *PFM* ERROR MESSAGE
  885. SX5 DTDB * ERROR - TERMINATED DAYFILE ON LOCAL...*
  886. SB7 B0+
  887. EQ DTDX
  888.  
  889. DTDA DATA C* PERMANENT DAYFILE DEFINED AS .*
  890. DTDB DATA C* ERROR - TERMINATED DAYFILE ON LOCAL FILE ZZZDAYF.*
  891. GCF SPACE 4,7
  892. ** GCF - GET CURRENT FAMILY AND PACK NAMES.
  893. *
  894. * EXIT (CPCK) = CURRENT PACK NAME.
  895. * (CFAM) = CURRENT FAMILY NAME.
  896. *
  897. * USES X - 0, 1, 2, 6, 7.
  898. * A - 1, 6, 7.
  899. *
  900. * MACROS SYSTEM.
  901.  
  902.  
  903. GCF SUBR ENTRY/EXIT
  904. SX6 PFCW INITIALIZE *RSB* REQUEST BLOCK
  905. SX7 PKNW
  906. SA6 GCFB
  907. SA7 A6+B1
  908. SYSTEM RSB,R,GCFA
  909. SA1 GCFB SET FAMILY EST ORDINAL
  910. LX1 -12
  911. MX2 -9
  912. BX6 -X2*X1
  913. SA1 TEQA+X6 SET FAMILY FROM TABLE
  914. MX0 42
  915. BX6 X0*X1
  916. SA6 CFAM
  917. SA1 GCFB+1 SAVE CURRENT PACK AND TYPE
  918. BX6 X1
  919. SA6 CPCK
  920. EQ GCFX
  921.  
  922.  
  923. GCFA VFD 12/0,12/2,18/0,18/GCFB *RSB* STATUS WORD
  924. GCFB CON PFCW
  925. CON PKNW
  926. GKD SPACE 4,10
  927. ** GKD - GENERATE *K* DISPLAY BUFFER.
  928. *
  929. * ENTRY FORMATTED DAYFILE INFORMATION IN OUTPUT BUFFER.
  930. *
  931. * EXIT (B7) = ADDRESS OF *K* DISPLAY BUFFER.
  932. * (X5) = *K* DISPLAY MESSAGE ADDRESS.
  933. *
  934. * USES A - 3, 4, 5, 6, 7.
  935. * B - 7.
  936. * X - 0, 1, 3, 4, 5, 6, 7.
  937. *
  938. * MACROS MOVE, READC.
  939.  
  940.  
  941. GKD SUBR ENTRY/EXIT
  942.  
  943. * SET HEADER FOR *K* DISPLAY.
  944.  
  945. READC O,KBUF+1 SKIP HEADER ON OUTPUT FILE
  946. MOVE GKDCL,GKDC,KBUF+1
  947. SX6 KBUF+1+GKDCL SET LINE NUMBER
  948. SA6 GKDA
  949. SX7 KDLC SET LINE COUNT FOR *K* DISPLAY
  950. SA7 GKDB
  951.  
  952. * MOVE CODED LINES TO *K* DISPLAY BUFFER.
  953.  
  954. GKD1 READC O,CENB READ ONE LINE
  955. NG X1,GKD2 IF EOF/EOI
  956. SA3 CENB MASK OFF CARRIAGE CONTROL CHARACTERS
  957. MX0 6
  958. BX7 -X0*X3
  959. SA4 =1L
  960. BX6 X4+X7
  961. SA6 A3
  962. SX1 B6-CENB CALCULATE NUMBER OF WORDS
  963. SA3 GKDA RESET LINE NUMBER
  964. IX6 X3+X1
  965. SA6 A3
  966. MOVE X1,CENB,X3
  967. SA3 GKDB DECREMENT LINE COUNT
  968. SX6 X3-1
  969. SA6 A3+
  970. NZ X6,GKD1 IF NOT MAXIMUM NUMBER LINES TRANSFERRED
  971. SA5 GKDA *MORE DAYFILES, ENTER OUT FOR LIST*
  972. MOVE GKDDL,GKDD,X5
  973. SX7 X5+GKDDL UPDATE LINE NUMBER
  974. SA7 A5+
  975.  
  976. * SET END OF BUFFER.
  977.  
  978. GKD2 SA3 GKDA SET ZERO WORD TO END BUFFER
  979. BX6 X6-X6
  980. SA6 X3
  981. SB7 KBUF SET *K* DISPLAY BUFFER ADDRESS
  982. SX5 =C*PERMANENT DAYFILE LIST COMPLETE.*
  983. EQ GKDX
  984.  
  985. GKDA CON KBUF *K* DISPLAY BUFFER LINE ADDRESS
  986. GKDB CON 0 *K* DISPLAY LINE COUNT
  987. GKDC DATA C* *
  988. DATA C* PERMANENT DAYFILE CATALOG*
  989. GKDD DATA C* *
  990. GKDCL EQU *-GKDC
  991. DATA C* MORE PERMANENT DAYFILES. *
  992. DATA C/ ENTER *OUT* FOR A FULL LIST./
  993. CON 0 END OF *K* DISPLAY
  994. GKDDL EQU *-GKDD
  995. IPH SPACE 4,15
  996. ** IPH - INITIALIZE PAGE HEADER AND PAGE CONTROL.
  997. *
  998. * EXIT (PPOS) SET TO END OF PAGE.
  999. * (PNUM) SET TO PAGE 1.
  1000. * (DNUM) SET TO DAYFILE NUMBER 1.
  1001. * (PDFE+1) SET TO 1 (FORMAT EFFECTOR NOT YET OUTPUT).
  1002. *
  1003. * USES A - 1, 6, 7.
  1004. * X - 1, 2, 6, 7.
  1005. *
  1006. * CALLS COD.
  1007. *
  1008. * MACROS CLOCK, DATE.
  1009.  
  1010.  
  1011. IPH SUBR ENTRY/EXIT
  1012.  
  1013. * SET DATE AND TIME IN PAGE HEADER.
  1014.  
  1015. DATE BOFA+4 PUT DATE IN PAGE HEADING
  1016. SA1 BOFA+4
  1017. SX2 1R.&1R CLEAR PERIOD AT RIGHT OF DATE
  1018. BX6 X1-X2
  1019. SA6 A1
  1020. CLOCK BOFA+5 PUT TIME IN PAGE HEADING
  1021. SA1 BOFA+5
  1022. SX2 1R.&1R CLEAR PERIOD AT RIGHT OF TIME
  1023. BX6 X1-X2
  1024. SA6 A1
  1025.  
  1026. * SET USER INDEX IN PAGE HEADER.
  1027.  
  1028. SX1 PDUI PUT PERMANENT DAYFILE USER INDEX IN HEADER
  1029. RJ COD
  1030. LX6 12
  1031. SA1 BOFA+3
  1032. MX2 36
  1033. LX2 -12
  1034. BX6 X2*X6
  1035. BX1 -X2*X1
  1036. BX6 X1+X6
  1037. SA6 A1
  1038.  
  1039. * SET PAGE POSITION, PAGE NUMBER AND DAYFILE NUMBER.
  1040.  
  1041. SX7 99999 FORCE END OF PAGE
  1042. SX6 B1
  1043. SA7 PPOS
  1044. SA6 PNUM SET TO PAGE 1
  1045. SA6 PDFE+1 SET PRINT DENSITY FORMAT CONTROL FLAG
  1046. SA6 DNUM SET TO DAYFILE 1
  1047. EQ IPHX
  1048. PUN SPACE 4,11
  1049. ** PUN - PERMIT SPECIFIED USER NUMBER WITH WRITE PERMISSION.
  1050. *
  1051. * EXIT (X5) = 0 IF NO ERROR.
  1052. * = *K* DISPLAY MESSAGE ADDRESS IF ERROR.
  1053. * (B7) = 0 IF ERROR.
  1054. *
  1055. * USES A - 1, 2, 7.
  1056. * B - 7.
  1057. * X - 0, 1, 2, 5, 6, 7.
  1058. *
  1059. * CALLS ERP.
  1060. *
  1061. * MACROS PERMIT.
  1062.  
  1063.  
  1064. PUN SUBR ENTRY/EXIT
  1065. SA1 PUNA CHECK IF USER NUMBER SPECIFIED
  1066. SX5 B0+ SET NO ERROR
  1067. ZR X1,PUNX IF NO USER NUMBER
  1068.  
  1069. * CHECK FOR PRIVATE PACK.
  1070.  
  1071. SA2 FMPC CHECK AUXILIARY DEVICE FLAG
  1072. SX6 X2+
  1073. ZR X6,PUN1 IF FAMILY
  1074. SA2 APIN
  1075. MX0 42
  1076. BX6 X0*X2
  1077. NZ X6,PUNX IF PRIVATE PACK
  1078.  
  1079. * PERMIT SPECIFIED USER NUMBER.
  1080.  
  1081. PUN1 PERMIT D,,PUNA,0,,,,IE
  1082. BX7 X7-X7 CLEAR USER NUMBER FROM FET
  1083. SA2 D CHECK FOR ERROR
  1084. MX0 8
  1085. SA7 D+CFOU
  1086. LX0 18
  1087. BX6 X0*X2
  1088. ZR X6,PUNX IF NO ERROR
  1089. BX7 -X0*X2 CLEAR ERROR BITS
  1090. SA7 A2
  1091.  
  1092. * PROCESS ERROR.
  1093.  
  1094. RJ ERP ERROR PROCESSOR
  1095. ZR X5,PUN1 IF RETRY OPERATION
  1096. SB7 B0+
  1097. EQ PUNX
  1098.  
  1099. PUNA VFD 42/0L"USRN",18/0 USER NUMBER TO PERMIT
  1100. TOD SPACE 4,11
  1101. ** TOD - TERMINATE OLD DAYFILES.
  1102. *
  1103. * EXIT (X5) = 0 IF NO ERROR.
  1104. * = *K* DISPLAY MESSAGE ADDRESS IF ERROR.
  1105. * (B7) = 0 IF ERROR.
  1106. *
  1107. * USES A - 2, 4, 5.
  1108. * B - 2, 3, 7.
  1109. * X - 0, 2, 4, 5, 6.
  1110. *
  1111. * MACROS MESSAGE, SYSTEM, WAIT.
  1112.  
  1113.  
  1114. TOD SUBR ENTRY/EXIT
  1115. TOD0 SX5 B0+ SET NO ERROR
  1116. SA4 TARA+AROP OPTION
  1117. MX0 -12
  1118. BX4 -X0*X4
  1119. ZR X4,TOD1 IF INACTIVE DAYFILE TERMINATION
  1120.  
  1121. * TERMINATE ACTIVE DAYFILE.
  1122.  
  1123. SYSTEM SFM,R,D,TAFF*100B
  1124. EQ TOD2
  1125.  
  1126. * TERMINATE INACTIVE DAYFILE.
  1127.  
  1128. TOD1 SYSTEM SFM,R,D,ATDF*100B
  1129. TOD2 SA2 D CHECK FOR ERROR
  1130. MX0 4
  1131. LX0 14
  1132. BX6 X0*X2
  1133. SB7 B0
  1134. ZR X6,TODX IF NO ERROR
  1135.  
  1136. * PROCESS DAYFILE TERMINATION ERRORS.
  1137.  
  1138. LX6 -10
  1139. SA5 TSEP+X6 GET *SFM* ERROR MESSAGE ADDRESS
  1140. SB3 X6
  1141. EQ B1,B3,TOD4 IF DAYFILE BUSY
  1142. SB2 3
  1143. EQ B2,B3,TOD3 IF INACTIVE DAYFILE NOT FOUND
  1144. MESSAGE X5 ISSUE *SFM* ERROR MESSAGE
  1145. SX5 TODA * DAYFILE STATUS INDEFINITE.*
  1146. TOD3 EQ TODX RETURN
  1147.  
  1148. * PROCESS DAYFILE BUSY ERROR.
  1149.  
  1150. TOD4 MESSAGE (=C* WAITING FOR BUSY DAYFILE.*),2,R
  1151. WAIT 100 DELAY
  1152. EQ TOD0 RETRY
  1153.  
  1154.  
  1155. TODA DATA C* DAYFILE STATUS INDEFINITE. *
  1156. VED SPACE 4,21
  1157. ** VED - VALIDATE EXISTENCE OF DAYFILE ON DEVICE.
  1158. *
  1159. * ENTRY (X2) = OPTION.
  1160. * (X3) = DAYFILE TYPE.
  1161. * (X4) = EST ORDINAL.
  1162. *
  1163. * EXIT (X3) = DAYFILE TYPE.
  1164. * (X4) = EST ORDINAL.
  1165. * (X5) = 0 IF NO ERROR.
  1166. * = *K* DISPLAY MESSAGE ADDRESS IF ERROR.
  1167. * (B7) = 0 IF ERROR.
  1168. * (FMPC) = FAMILY/PACK NAME FOR PERMANENT DAYFILE.
  1169. * (APIN) = AUXILIARY PACK INFORMATION.
  1170. * (GOPB) = EST ORDINAL OF ACTIVE DAYFILE IF
  1171. * ACTIVE TERMINATION.
  1172. *
  1173. * USES A - 1, 6.
  1174. * B - 7.
  1175. * X - 0, 1, 2, 5, 6.
  1176. *
  1177. * CALLS SAD, VVD.
  1178.  
  1179.  
  1180. VED SUBR ENTRY/EXIT
  1181.  
  1182. * VERIFY THAT DAYFILE MAY BE TERMINATED AS SPECIFIED.
  1183.  
  1184. ZR X4,VED4 IF AN INVALID EST ORDINAL
  1185. RJ VVD VERIFY VALID DEVICE FOR DAYFILE
  1186. SB7 B0+ SET NO *K* DISPLAY BUFFER
  1187. NZ X5,VEDX IF VALIDITY ERROR
  1188. SA6 FMPC SAVE FAMILY/PACK NAME
  1189. ZR X2,VED2 IF INACTIVE DAYFILE TERMINATION
  1190.  
  1191. * FIND ACTIVE DAYFILE FAMILY/PACK AND EQUIPMENT.
  1192.  
  1193. SX6 X7-3
  1194. ZR X6,VEDX IF ACTIVE DAYFILE CURRENTLY ON DEVICE
  1195. RJ SAD SEARCH FOR ACTIVE DAYFILE
  1196. NZ B4,VED3 IF NO ACTIVE DAYFILE FOUND
  1197. SX6 B2 SAVE ACTIVE DAYFILE EST ORDINAL
  1198. LX6 48
  1199. SX2 B1
  1200. BX6 X2+X6
  1201. SA6 GOPB
  1202.  
  1203. * SET FAMILY/PACK INFORMATION.
  1204.  
  1205. MX0 42 SAVE FAMILY/PACK NAME OF ACTIVE DAYFILE
  1206. BX6 X0*X1
  1207. LX1 -2 ADD AUXILIARY PACK FLAG
  1208. BX2 X2*X1
  1209. BX6 X6+X2
  1210. SA6 FMPC
  1211. BX5 X5-X5 SET NO ERROR
  1212. ZR X2,VED1 IF NOT AUXILIARY PACK
  1213. SA1 TMSA+B2 SET AUXILIARY PACK INFORMATION
  1214. MX0 48
  1215. BX1 X0*X1
  1216. SX6 B2
  1217. BX6 X1+X6
  1218. SA6 APIN
  1219. VED1 ZR X7,VEDX IF NO INACTIVE DAYFILE ON DEVICE
  1220. SX5 =C* INACTIVE DAYFILE ON DEVICE. *
  1221. EQ VEDX
  1222.  
  1223. * CHECK FOR INACTIVE DAYFILE ON SPECIFIED DEVICE.
  1224.  
  1225. VED2 SX6 X7-1
  1226. ZR X6,VEDX IF INACTIVE DAYFILE ON DEVICE
  1227. SX5 =C* INACTIVE DAYFILE NOT FOUND ON DEVICE.*
  1228. EQ VEDX
  1229.  
  1230. VED3 SX5 =C* NO ACTIVE DAYFILE FOUND. *
  1231. EQ VEDX
  1232.  
  1233. VED4 SX5 =C* INVALID DEVICE SPECIFIED. *
  1234. EQ VEDX RETURN
  1235. BDL TITLE SECONDARY SUBROUTINES.
  1236. ** BDL - BUILD DAYFILE LINE.
  1237. *
  1238. * ENTRY (X1) = ADDRESS OF LIST CONTROL BLOCK.
  1239. * (X2) = ADDRESS OF AREA TO RECEIVE LIST LINE.
  1240. *
  1241. * EXIT (X6) = 0 IF LIST LINE AVAILABLE.
  1242. * = 1 IF END OF LIST.
  1243. * (X5) = 0 IF NO ERROR.
  1244. * = *K* DISPLAY MESSAGE ADDRESS IF ERROR.
  1245. * (B7) = 0 IF ERROR.
  1246. *
  1247. * USES A - 0, 1, 2, 5, 6, 7.
  1248. * B - 2, 3, 6, 7.
  1249. * X - 1, 2, 3, 5, 6, 7.
  1250. *
  1251. * CALLS DDD, EDI, FDE, GCD, RCE.
  1252.  
  1253.  
  1254. BDL SUBR ENTRY/EXIT
  1255. SA0 X1+B1 SET ADDRESS OF CATALOG LIST INDEX
  1256. SX6 X2 SAVE ADDRESS OF OUTPUT AREA
  1257. SA6 BDLA
  1258. SA2 A0 GET CATALOG LIST INDEX
  1259. SX1 X2
  1260. NZ X1,BDL2 IF NOT INITIALIZE CALL
  1261.  
  1262. * INITIALIZE POINTERS FOR READING OF CATALOG.
  1263.  
  1264. BDL1 SA1 A0 GET CATALOG LIST INDEX
  1265. SX6 B1
  1266. IX7 X1+X6 ADVANCE INDEX
  1267. SB2 X7
  1268. AX1 18 GET LIST LENGTH
  1269. SB3 X1+
  1270. BX5 X5-X5 CLEAR ERROR FLAG
  1271. GT B2,B3,BDLX IF END OF CATALOG LIST
  1272. SA7 A1+ SAVE CATALOG LIST INDEX
  1273. RJ GCD GET CATALOG DESCRIPTION
  1274. MX2 43 SAVE FAMILY/PACK NAME
  1275. BX6 X2*X1
  1276. SA6 BDLB+2
  1277. BX2 -X2*X1 USER INDEX
  1278. LX1 X6 FAMILY/PACK NAME
  1279. RJ DDD DETERMINE DEFAULT DEVICE
  1280. SA5 A0+ CATALOG LIST INDEX
  1281. LX6 36
  1282. MX1 -36 CLEAR OLD DEFAULT DEVICE NUMBER
  1283. BX5 -X1*X5
  1284. BX6 X6+X5
  1285. SA6 A5
  1286. BX1 X1-X1 SET INITIAL CATALOG READ
  1287.  
  1288. * OBTAIN CATALOG INFORMATION.
  1289.  
  1290. BDL2 SA2 A0-1 GET FET ADDRESS
  1291. SB6 CENB ADDRESS OF AREA TO RECEIVE CATALOG ENTRY
  1292. RJ RCE READ A CATALOG ENTRY
  1293. NZ X5,BDLX IF ERROR DURING CATALOG
  1294. NZ X1,BDL1 IF CATALOG ENTRY NOT READ
  1295. SA1 CENB EXTRACT DAYFILE INFORMATION FROM CATALOG
  1296. SB2 BDLB
  1297. RJ EDI
  1298. SX1 B1+ SET FOR NON-INITIAL CATALOG READ
  1299. ZR X6,BDL2 IF NOT A DAYFILE
  1300. SA1 B2 CHECK DEVICE NUMBER
  1301. MX3 6
  1302. LX3 -42
  1303. BX6 X3*X1
  1304. NZ X6,BDL3 IF NON-ZERO DEVICE NUMBER
  1305. SA2 A0 SUBSTITUTE DEFAULT DEVICE NUMBER
  1306. LX2 -24
  1307. BX2 X3*X2
  1308. BX6 X1+X2
  1309. SA6 A1+
  1310.  
  1311. * FORMAT DAYFILE ENTRY.
  1312.  
  1313. BDL3 SB6 B2 DAYFILE INFORMATION
  1314. SA1 BDLA OUTPUT ADDRESS
  1315. SB7 X1
  1316. RJ FDE FORMAT DAYFILE ENTRY
  1317. BX6 X6-X6 SET LINE AVAILABLE STATUS
  1318. BX5 X5-X5 CLEAR ERROR FLAG
  1319. EQ BDLX EXIT
  1320.  
  1321. BDLA CON 0 OUTPUT STRING ADDRESS
  1322. BDLB BSS 3 DAYFILE ENTRY BUFFER
  1323. CAN SPACE 4,16
  1324. ** CAN - CHECK CATALOG FOR AVAILABLE NAME.
  1325. *
  1326. * ENTRY (SNAM) = USER SPECIFIED NAME.
  1327. * (ANAM) = SKELETON OF AUTOMATIC ASSIGNMENT NAME.
  1328. *
  1329. * EXIT (CANB) = AUTOMATIC ASSIGNMENT SEQUENCE CHARACTER MASK.
  1330. * (SNAM) = 1 IF DUPLICATE SPECIFIED NAME.
  1331. * (X5) = 0 IF NO ERROR.
  1332. * = *K* DISPLAY MESSAGE ADDRESS IF ERROR.
  1333. * (B7) = 0 IF ERROR.
  1334. *
  1335. * USES A - 2, 3, 4, 6.
  1336. * B - 3, 6.
  1337. * X - ALL.
  1338. *
  1339. * CALLS RCE.
  1340.  
  1341.  
  1342. CAN SUBR ENTRY/EXIT
  1343. BX6 X6-X6 CLEAR MASK
  1344. SA6 CANB
  1345.  
  1346. * READ CATALOG ENTRIES.
  1347.  
  1348. BX1 X1-X1 SET INITIAL CALL FOR CATALOG READ
  1349. CAN1 SX2 C READ CATALOG ENTRY
  1350. SB6 CENB
  1351. RJ RCE
  1352. NZ X5,CANX IF ERROR ON INITIAL CATALOG
  1353. NZ X1,CANX IF END OF CATALOG ENTRIES
  1354. SA3 CENB CHECK NAME
  1355.  
  1356. * CHECK FOR DUPLICATE SPECIFIED NAME.
  1357.  
  1358. SA4 SNAM CHECK SPECIFIED NAME
  1359. ZR X4,CAN2 IF NONE SPECIFIED
  1360. MX0 42
  1361. BX6 X3-X4
  1362. BX7 X0*X6
  1363. SX6 B1 SET FLAG
  1364. NZ X7,CAN2 IF NOT A DUPLICATE
  1365. SA6 A4+
  1366.  
  1367. * BUILD AUTOMATIC SEQUENCE CHARACTER MASK.
  1368.  
  1369. CAN2 SA4 CANA CHECK FOR PERMANENT DAYFILES
  1370. SA2 ANAM
  1371. BX4 X4*X3
  1372. BX1 X4-X2
  1373. NZ X1,CAN1 IF NOT PERMANENT DAYFILE
  1374. AX3 42 SET UP MASK FOR SEQUENCE LETTER
  1375. MX0 -6
  1376. BX5 -X0*X3
  1377. SB3 X5
  1378. MX4 1
  1379. LX1 X4,B3
  1380. SA3 A4+B1 PREVIOUS SEQUENCE CHARACTER MASK
  1381. BX6 X3+X1 ADD SEQUENCE CHARACTER TO MASK
  1382. SA6 A3
  1383. EQ CAN1 LOOP FOR NEXT CATALOG
  1384.  
  1385. CANA CON 77770077777777000000B
  1386. CANB CON 0 SEQUENCE CHARACTER MASK
  1387. CDN SPACE 4,10
  1388. ** CDN - CATAGORIZE DAYFILE NAME.
  1389. *
  1390. * ENTRY (X1) = 42/DAYFILE NAME, 18/
  1391. *
  1392. * EXIT (X1) = UNCHANGED.
  1393. * (X6) = DAYFILE TYPE CODE.
  1394. * = 0 IF NOT A DAYFILE NAME.
  1395. *
  1396. * USES A - 2, 7.
  1397. * X - 2, 3, 6, 7.
  1398.  
  1399.  
  1400. CDN SUBR ENTRY/EXIT
  1401. SX6 TDNKL SET TO END OF KEY TABLE
  1402. SX3 B1+
  1403. MX2 12 SAVE KEY PART OF DAYFILE NAME
  1404. BX7 X2*X1
  1405. SA7 TDNK
  1406.  
  1407. * FIND NAME KEY IN TABLE.
  1408.  
  1409. CDN1 IX6 X6-X3 DECREMENT TABLE INDEX
  1410. SA2 TDNK+X6 GET KEY FROM TABLE
  1411. BX2 X2-X7 COMPARE FILE NAME KEY WITH TABLE KEY
  1412. NZ X2,CDN1 IF NO MATCH
  1413. EQ CDNX
  1414. DDD SPACE 4,11
  1415. ** DDD - DETERMINE DEFAULT DEVICE.
  1416. *
  1417. * ENTRY (X1) = FAMILY/PACK NAME.
  1418. * (X2) = USER INDEX.
  1419. *
  1420. * EXIT (X6) = DEFAULT DEVICE NUMBER.
  1421. * = 0 IF NONE FOUND OR IF AUXILIARY PACK.
  1422. *
  1423. * USES A - 2, 3.
  1424. * B - 2, 3.
  1425. * X - 2, 3, 6.
  1426.  
  1427.  
  1428. DDD SUBR ENTRY/EXIT
  1429. BX6 X6-X6 INITIALIZE DEFAULT DEVICE NUMBER
  1430. SX3 X1
  1431. NZ X3,DDDX IF AUXILIARY DEVICE
  1432.  
  1433. * GET USER INDEX MASK BITS.
  1434.  
  1435. MX6 -3
  1436. BX2 -X6*X2
  1437. SB2 X2-59 MASK TEST SHIFT COUNT
  1438. SB3 B0+ EST ORDINAL
  1439.  
  1440. * CHECK FOR CORRECT FAMILY NAME.
  1441.  
  1442. DDD1 SA2 TEQA+B3 GET ENTRY FOR EQUIPMENT B3
  1443. ZR X2,DDDX IF END OF TABLE
  1444. SB3 B3+B1 ADVANCE EST ORDINAL
  1445. SX3 -B1
  1446. IX3 X2-X3
  1447. MX6 42
  1448. ZR X3,DDD1 IF NOT MASS STORAGE EQUIPMENT
  1449. BX3 X6*X2
  1450. IX6 X1-X3
  1451. NZ X6,DDD1 IF NOT CORRECT FAMILY
  1452.  
  1453. * CHECK FOR USER INDEX ON DEVICE.
  1454.  
  1455. SA3 TMSA+B3-1 GET DEVICE MASK FOR EQUIPMENT B3-1
  1456. AX6 X3,B2
  1457. AX2 12 GET DEVICE NUMBER
  1458. PL X6,DDD1 IF USER INDEX NOT ON THIS DEVICE
  1459. MX3 -6
  1460. BX6 -X3*X2
  1461. EQ DDDX
  1462. EDI SPACE 4,24
  1463. ** EDI - EXTRACT DAYFILE INFORMATION.
  1464. *
  1465. * ENTRY (A1) = ADDRESS OF CATALOG ENTRY TO EXTRACT INFORMATION
  1466. * FROM.
  1467. * (X1) = FIRST WORD OF CATALOG ENTRY.
  1468. * (B2) = ADDRESS OF 2 WORD BLOCK TO RECEIVE DAYFILE
  1469. * INFORMATION.
  1470. *
  1471. * EXIT (B2) = UNCHANGED.
  1472. * (X6) = DAYFILE TYPE CODE.
  1473. * = 0 IF NOT A DAYFILE CATALOG ENTRY.
  1474. * DATA BLOCK SET UP AS FOLLOWS AT ADDRESS (B2).
  1475. * 42/DAYFILE NAME, 6/DN, 12/DC
  1476. * 24/LF, 18/CD, 18/CT
  1477. * DN = DEVICE NUMBER OF DAYFILE.
  1478. * DC = DAYFILE TYPE CODE.
  1479. * LF = LENGTH OF DAYFILE.
  1480. * CD = PACKED CREATION DATE.
  1481. * CT = PACKED CREATION TIME.
  1482. *
  1483. * USES A - 2, 3, 6, 7.
  1484. * X - 1, 2, 3, 6, 7.
  1485. *
  1486. * CALLS CDN.
  1487.  
  1488.  
  1489. EDI SUBR ENTRY/EXIT
  1490.  
  1491. * PACK NAME AND DEVICE NUMBER.
  1492.  
  1493. MX6 42 GET FILE NAME
  1494. BX1 X6*X1
  1495. SA2 A1+4 GET DEVICE NUMBER
  1496. MX6 6
  1497. LX6 -18
  1498. BX2 X6*X2
  1499. LX2 -24 PACK FILE NAME AND DEVICE NUMBER
  1500. BX1 X1+X2
  1501.  
  1502. * PACK LENGTH, DATE, AND TIME.
  1503.  
  1504. SA2 A1+B1 GET FILE LENGTH
  1505. SA3 A2+B1 GET CREATION DATE AND TIME
  1506. MX6 24
  1507. BX3 -X6*X3
  1508. BX6 X6*X2
  1509. BX6 X6+X3 SAVE FILE LENGTH, DATE AND TIME
  1510. SA6 B2+B1
  1511. LX2 59-11
  1512. NG X2,EDI1 IF A DIRECT ACCESS FILE
  1513.  
  1514. * SET NON-DAYFILE TYPE.
  1515.  
  1516. BX6 X1 SAVE FILE NAME, DEVICE, AND 0 DAYFILE CODE
  1517. SA6 B2
  1518. BX6 X6-X6 SET NON-DAYFILE TYPE CODE
  1519. EQ EDIX
  1520.  
  1521. * SET DAYFILE TYPE.
  1522.  
  1523. EDI1 RJ CDN CATAGORIZE DAYFILE NAME
  1524. BX7 X1+X6 SAVE FILE NAME, DEVICE, AND DAYFILE CODE
  1525. SA7 B2
  1526. EQ EDIX
  1527. ERP SPACE 4,17
  1528. ** ERP - ERROR PROCESSOR FOR *PFM* CALLS.
  1529. *
  1530. * ENTRY (X6) = *PFM* ERROR CODE.
  1531. *
  1532. * EXIT (X5) = *K* DISPLAY ERROR MESSAGE ADDRESS.
  1533. * = 0 IF RETRY OPERATION.
  1534. *
  1535. * USES A - 6.
  1536. * X - 1, 5, 6.
  1537. *
  1538. * CALLS ADN.
  1539. *
  1540. * MACROS MESSAGE, RECALL.
  1541.  
  1542.  
  1543. ERP SUBR ENTRY/EXIT
  1544. LX6 -10
  1545. SX1 X6-/ERRMSG/FAP
  1546. ZR X1,ERP1 IF FILE ALREADY PERMANENT ERROR
  1547. SX1 X6-/ERRMSG/PFA
  1548. ZR X1,ERP2 IF PF UTILITY ACTIVE ERROR
  1549. SX5 MPER SET ERROR MESSAGE ADDRESS
  1550. EQ ERPX RETURN
  1551.  
  1552. * PROCESS FILE ALREADY PERMANENT ERROR.
  1553.  
  1554. ERP1 RJ ADN ASSIGN DAYFILE NAME
  1555. NZ X5,ERPX IF AUTOMATIC ASSIGNMENT IMPOSSIBLE
  1556. BX6 X2 INSERT NEW NAME IN FET
  1557. SA6 D+CFPN
  1558. EQ ERPX
  1559.  
  1560. * PROCESS PF UTILITY ACTIVITY ERROR.
  1561.  
  1562. ERP2 RECALL WAIT FOR END OF PF UTILITY
  1563. MESSAGE (=C* WAITING FOR PF UTILITY.*),2,R
  1564. BX5 X5-X5
  1565. EQ ERPX
  1566. ERR SPACE 4,3
  1567. ** ERR - PROCESS ERROR EXIT.
  1568. *
  1569. * ENTRY TO *ERR1* IF STATUS OF DAYFILE IS NOT INDEFINITE.
  1570. *
  1571. * MACROS ABORT, ENFAM, MESSAGE, PACKNAM.
  1572.  
  1573.  
  1574. ERR MESSAGE TODA *DAYFILE STATUS INDEFINITE.*
  1575. ERR1 MESSAGE (=C* DFTERM ABORTED.*)
  1576. PACKNAM CPCK SET USER PACK
  1577. ENFAM CFAM SET USER FAMILY
  1578. ABORT
  1579. FDE SPACE 4,20
  1580. ** FDE - FORMAT DAYFILE ENTRY.
  1581. *
  1582. * ENTRY (B6) = ADDRESS OF DAYFILE INFORMATION.
  1583. * 42/FILE NAME, 6/DN, 12/DC
  1584. * 24/LF, 18/CD, 18/CT
  1585. * 42/FAMILY OR PACK NAME, 1/F, 17/0
  1586. * DN = DEVICE NUMBER FOR FILE.
  1587. * DC = DAYFILE TYPE CODE.
  1588. * LF = LENGTH OF DAYFILE.
  1589. * CD = CREATION DATE OF FILE.
  1590. * CT = CREATION TIME OF FILE.
  1591. * F = AUXILIARY PACK FLAG
  1592. * (B7) = ADDRESS OF AREA TO RECEIVE FORMATTED OUTPUT.
  1593. *
  1594. * EXIT (B7) = ADDRESS OF FORMATTED DAYFILE INFORMATION.
  1595. *
  1596. * USES A - 1, 2, 6, 7.
  1597. * X - 0, 1, 2, 3, 6, 7.
  1598. *
  1599. * CALLS COD, SFN.
  1600. *
  1601. * MACROS EDATE, ETIME.
  1602.  
  1603.  
  1604. FDE SUBR ENTRY/EXIT
  1605.  
  1606. * FORMAT FAMILY/PACK NAME.
  1607.  
  1608. SA1 B6+2 GET FAMILY/PACK NAME
  1609. MX0 42
  1610. BX1 X0*X1
  1611. RJ SFN SPACE FILL NAME
  1612. LX6 30 SAVE NAME
  1613. SA6 B7+2
  1614.  
  1615. * FORMAT DAYFILE TYPE AND DEVICE NUMBER.
  1616.  
  1617. SA1 B6 GET DAYFILE TYPE
  1618. MX2 -3
  1619. BX2 -X2*X1
  1620. SA2 TDFT+X2
  1621. MX3 -30
  1622. BX6 -X3*X6
  1623. LX2 18
  1624. BX7 X3*X2
  1625. BX6 X7+X6 SAVE LOWER PART OF DAYFILE TYPE
  1626. SA6 B7+B1
  1627. BX6 X2 SAVE UPPER PART OF DAYFILE TYPE
  1628. LX1 -12 GET DEVICE NUMBER
  1629. SA6 B7+
  1630. MX0 -6
  1631. BX1 -X0*X1
  1632. SX1 X1+100B FORCE TWO DIGITS
  1633. RJ COD CONVERT TO OCTAL
  1634. SA1 B7+2 MERGE WITH FAMILY/PACK NAME
  1635. MX3 -12
  1636. BX6 -X3*X6
  1637. LX3 30
  1638. LX6 30
  1639. BX1 X3*X1
  1640. BX6 X1+X6
  1641. SA6 A1 PUT DEVICE NUMBER IN OUTPUT STRING
  1642.  
  1643. * FORMAT FILE NAME.
  1644.  
  1645. SA1 B6 GET FILE NAME
  1646. MX6 42
  1647. BX1 X6*X1
  1648. RJ SFN SPACE FILL FILE NAME
  1649. LX6 24
  1650. SA6 B7+3 PUT LOWER PART OF FILE NAME IN OUTPUT
  1651. MX0 30
  1652. BX6 -X0*X6
  1653. SA1 A6-B1 SAVE UPPER PART OF FILE NAME
  1654. BX1 X0*X1
  1655. BX7 X1+X6
  1656. SA7 A1
  1657.  
  1658. * FORMAT DATE AND TIME.
  1659.  
  1660. MX6 -18 GET CREATION DATE
  1661. SA1 B6+B1
  1662. LX1 -18
  1663. BX1 -X6*X1
  1664. EDATE X1 EDIT DATE
  1665. LX6 42
  1666. SA6 B7+4 SAVE LOWER PART OF DATE IN OUTPUT
  1667. SA1 A6-B1 SAVE UPPER PART OF DATE IN OUTPUT
  1668. MX2 24
  1669. BX1 X2*X1
  1670. BX6 -X2*X6
  1671. BX6 X1+X6
  1672. SA6 A1
  1673. SA1 B6+B1 GET CREATION TIME
  1674. MX6 -18
  1675. BX1 -X6*X1
  1676. ETIME X1 EDIT TIME
  1677. LX6 48 SAVE LOWER PART OF TIME IN OUTPUT
  1678. SA6 B7+5
  1679. SA1 A6-B1 SAVE UPPER PART OF TIME IN OUTPUT
  1680. MX2 12
  1681. BX1 X2*X1
  1682. BX6 -X2*X6
  1683. BX6 X1+X6
  1684. SA6 A1
  1685.  
  1686. * FORMAT FILE LENGTH.
  1687.  
  1688. SA1 B6+B1 GET FILE LENGTH
  1689. LX1 -36
  1690. MX6 -24
  1691. BX1 -X6*X1
  1692. RJ COD CONVERT FILE LENGTH TO OCTAL
  1693. MX2 -42 SAVE FILE LENGTH
  1694. BX7 -X2*X6
  1695. LX7 12
  1696. MX2 6
  1697. SA1 B7+5
  1698. BX1 X2*X1
  1699. BX6 X1+X7
  1700. SA6 A1
  1701. EQ FDEX
  1702. GCD SPACE 4,14
  1703. ** GCD - GET CATALOG DESCRIPTION.
  1704. *
  1705. * ENTRY (A0) = CATALOG LIST INDEX.
  1706. * (B2) = TABLE INDEX.
  1707. *
  1708. * EXIT (X1) = TABLE ENTRY.
  1709. * (A0) = CATALOG LIST INDEX.
  1710. * (B2) = TABLE INDEX.
  1711. * (APIN) = AUXILIARY PACK INFORMATION.
  1712. * (FET+14) = 42/FAMILY OR PACK, 1/F, 17/USER INDEX.
  1713. * F = AUXILIARY PACK FLAG.
  1714. *
  1715. * USES A - 1, 2, 6, 7.
  1716. * X - 1, 2, 3, 6, 7.
  1717.  
  1718.  
  1719. GCD SUBR ENTRY/EXIT
  1720. SA1 A0+B2 GET CATALOG DESCRIPTION
  1721. MX3 1 CHECK AUXILIARY DEVICE FLAG
  1722. LX3 18
  1723. BX7 X3*X1
  1724. ZR X7,GCD1 IF FAMILY
  1725.  
  1726. * GET AUXILIARY PACK INFORMATION.
  1727.  
  1728. MX3 -17 GET EST ORDINAL
  1729. BX7 -X3*X1
  1730. BX3 X3*X1 SET USER INDEX IN ENTRY
  1731. SX2 PDUI
  1732. BX1 X3+X2
  1733. SA2 TMSA+X7 SET AUXILIARY PACK INFORMATION
  1734. MX3 48
  1735. BX6 X3*X2
  1736. BX7 X7+X6
  1737. SA7 APIN
  1738.  
  1739. * PUT DESCRIPTION IN FET.
  1740.  
  1741. GCD1 BX6 X1
  1742. SA2 A0-B1 GET FET ADDRESS
  1743. SA6 X2+14 PUT CATALOG DESCRIPTION IN FET
  1744. EQ GCDX
  1745. RCE SPACE 4,23
  1746. ** RCE - READ CATALOG ENTRY.
  1747. *
  1748. * ENTRY (X1) = 0 FOR INITIALIZATION CALL.
  1749. * .NE. 0 FOR CONTINUATION CALL.
  1750. * (X2) = FET ADDRESS.
  1751. * (B6) = ADDRESS OF AREA TO RECEIVE CATALOG ENTRY.
  1752. * (FET+14) = 42/FAMILY OR PACK NAME, 1/F, 17/USER INDEX.
  1753. * F = AUXILIARY PACK FLAG.
  1754. *
  1755. * EXIT (X2) = FET ADDRESS.
  1756. * (X1) = 0 IF CATALOG ENTRY AVAILABLE.
  1757. * .NE. 0 IF END OF CATALOG.
  1758. * (X5) = 0 IF NO ERROR.
  1759. * = *K* DISPLAY MESSAGE ADDRESS IF ERROR.
  1760. * (B7) = 0 IF ERROR.
  1761. * FAMILY/PACK NAME AND USER INDEX MAY BE CHANGED IN
  1762. * CONTROL POINT AREA.
  1763. *
  1764. * USES A - 1, 6.
  1765. * B - 7.
  1766. * X - 1, 2, 5, 6.
  1767. *
  1768. * CALLS SFD, SFN.
  1769. *
  1770. * MACROS CATLIST, MESSAGE, READW.
  1771.  
  1772.  
  1773. RCE SUBR ENTRY/EXIT
  1774. NZ X1,RCE2 IF NOT INITIALIZATION CALL
  1775. SX6 B0+
  1776. SA6 X2+CFCN
  1777.  
  1778. * READ CATALOG ENTRIES INTO BUFFER.
  1779.  
  1780. RCE1 SA1 X2+B1 REWIND BUFFER POINTERS
  1781. SX6 X1
  1782. SA6 A1+B1
  1783. SA6 A6+B1
  1784. SB7 X2+ SAVE FET ADDRESS
  1785. SA1 X2+14 SET FAMILY/PACK DESCRIPTION
  1786. RJ SFD
  1787. SX2 B7 RESTORE FET ADDRESS
  1788. CATLIST X2,,,,,,,IE
  1789. SA1 C CHECK FOR ERROR
  1790. MX6 8
  1791. LX6 18
  1792. BX1 X6*X1
  1793. ZR X1,RCE2 IF NO ERROR
  1794.  
  1795. * ISSUE ERROR MESSAGE.
  1796.  
  1797. MX5 42 SET FAMILY/PACK NAME IN MESSAGE
  1798. SA1 X2+14
  1799. BX1 X5*X1
  1800. SB7 B0
  1801. RJ SFN SPACE FILL NAME
  1802. BX6 X5*X6
  1803. SA1 RCEA+3
  1804. BX1 -X5*X1
  1805. BX6 X1+X6
  1806. SA6 A1
  1807. SX5 RCEA SET MESSAGE ADDRESS
  1808. SA1 TARA+ARFC ISSUE DAYFILE MESSAGE ON *DFLIST*
  1809. PL X1,RCEX IF NO *PO=N* PARAMETER
  1810. SX6 X1-2
  1811. NZ X6,RCEX IF NOT LIST
  1812. MESSAGE X5
  1813. EQ RCEX
  1814.  
  1815. * READ ONE CATALOG ENTRY.
  1816.  
  1817. RCE2 READW X2,B6,NWCE READ A CATALOG ENTRY
  1818. BX5 X5-X5 CLEAR ERROR FLAG
  1819. ZR X1,RCEX IF CATALOG ENTRY TRANSFERRED
  1820. SX1 X1+B1
  1821. ZR X1,RCE1 IF NOT END OF CATALOG
  1822. EQ RCEX
  1823.  
  1824. RCEA DATA C* CANNOT CATLIST FAMILY/PACK - .*
  1825. SAD SPACE 4,12
  1826. ** SAD - SEARCH FOR ACTIVE DAYFILE.
  1827. *
  1828. * ENTRY (B3) = SHIFT COUNT FOR DAYFILE BITS IN TABLE *TEQA*.
  1829. *
  1830. * EXIT (B2) = EST ORDINAL OF ACTIVE DAYFILE.
  1831. * (B4) = 0 IF ACTIVE DAYFILE FOUND.
  1832. * = 1 IF NOT FOUND.
  1833. * (X1) = FAMILY/PACK NAME WORD FOR ACTIVE DAYFILE.
  1834. *
  1835. * USES A - 1.
  1836. * B - 2, 4.
  1837. * X - 1, 5, 6.
  1838.  
  1839.  
  1840. SAD SUBR ENTRY/EXIT
  1841. SB2 B0+ SET EST ORDINAL
  1842. SB4 B1+ SET NO ACTIVE DAYFILE FLAG
  1843.  
  1844. * SEARCH TABLE FOR ACTIVE DAYFILE OF SPECIFIED TYPE.
  1845.  
  1846. SAD1 SA1 TEQA+B2 SEARCH TABLE
  1847. ZR X1,SADX IF END OF TABLE
  1848. SB2 B2+B1 ADVANCE EQUIPMENT
  1849. SX5 B1+
  1850. IX5 X5+X1
  1851. ZR X5,SAD1 IF NOT MASS STORAGE
  1852. AX6 B3,X1 CHECK FOR ACTIVE DAYFILE
  1853. SX5 B1+B1
  1854. BX6 X5*X6
  1855. ZR X6,SAD1 IF ACTIVE DAYFILE NOT ON DEVICE
  1856.  
  1857. * SET EST ORDINAL AND FAMILY/PACK NAME WORD.
  1858.  
  1859. SB2 B2-B1 SET EST ORDINAL
  1860. SB4 B0 CLEAR FLAG
  1861. EQ SADX
  1862. SAI SPACE 4,10
  1863. ** SAI - SET AUXILIARY PACK INFORMATION IN FETS.
  1864. *
  1865. * ENTRY (APIN) = 42/USER NUMBER, 6/UNITS, 12/EQUIPMENT.
  1866. *
  1867. * EXIT CATALOG (C) AND DAYFILE (D) FETS SET UP WITH DEVICE
  1868. * TYPE IN WORD 1, USER NUMBER, IF ANY, FOR PRIVATE PACK
  1869. * IN WORD 9, AND NUMBER OF PHYSICAL UNITS IN WORD 12.
  1870. *
  1871. * USES A - 1, 2, 6, 7.
  1872. * X - 0, 1, 2, 6, 7.
  1873. *
  1874. * MACROS RDVT.
  1875.  
  1876.  
  1877. SAI SUBR ENTRY/EXIT
  1878.  
  1879. * SET USER NUMBER FOR PACK IN FETS.
  1880.  
  1881. SA1 APIN SET USER NUMBER
  1882. MX0 42
  1883. BX7 X0*X1
  1884. SA7 C+CFOU
  1885. SA7 D+CFOU
  1886.  
  1887. * SET NUMBER OF PHYSICAL UNITS IN FETS.
  1888.  
  1889. AX1 12 GET NUMBER UNITS - 1
  1890. MX0 -6
  1891. BX7 -X0*X1
  1892. SX6 X7+B1 SET UNITS
  1893. SA6 C+CFPK
  1894. SA6 D+CFPK
  1895.  
  1896. * GET DEVICE TYPE.
  1897.  
  1898. SA2 A1 SET EQUIPMENT
  1899. MX0 -12
  1900. BX2 -X0*X2
  1901. RDVT D,X2
  1902. SA2 D+1 SET DEVICE TYPE IN CATALOG FET
  1903. SA1 C+1
  1904. MX0 12
  1905. BX6 X0*X2
  1906. BX1 -X0*X1
  1907. BX7 X1+X6
  1908. SA7 A1
  1909. EQ SAIX
  1910. SFD SPACE 4,16
  1911. ** SFD - SET FAMILY DESCRIPTION.
  1912. *
  1913. * ENTRY (X1) = 42/FAMILY OR PACK NAME, 1/F, 17/USER INDEX.
  1914. * F = AUXILIARY PACK FLAG.
  1915. *
  1916. * EXIT FAMILY/PACK NAME AND/OR USER INDEX SET IN CONTROL
  1917. * POINT AREA IF REQUESTED VALUE WAS DIFFERENT THAN THE
  1918. * CURRENT VALUE STORED INTERNALLY TO *SFD*. ILLEGAL
  1919. * VALUES FOR CURRENT FAMILY NAME AND CURRENT USER INDEX
  1920. * ARE STORED INITIALLY TO FORCE A CALL TO *CPM* ON THE
  1921. * FIRST CALL TO *SFD*.
  1922. * AUXILIARY PACK INFORMATION IS SET IN THE FETS IF
  1923. * NECESSARY.
  1924. *
  1925. * USES A - 2, 6.
  1926. * X - 0, 2, 3, 5, 6, 7.
  1927. *
  1928. * CALLS SAI.
  1929. *
  1930. * MACROS ENFAM, PACKNAM, SETUI.
  1931.  
  1932.  
  1933. SFD SUBR ENTRY/EXIT
  1934.  
  1935. * COMPARE CURRENT AND REQUESTED FAMILY AND USER INDEX.
  1936.  
  1937. MX3 -17 REQUESTED USER INDEX
  1938. BX6 -X3*X1
  1939. SA2 SFDA+2 CURRENT USER INDEX
  1940. BX5 X3*X1 REQUESTED FAMILY/PACK NAME
  1941. IX7 X2-X6
  1942. ZR X7,SFD1 IF REQUESTED USER INDEX ALREADY SET
  1943. SA6 A2 SET NEW USER INDEX
  1944. SETUI X6
  1945.  
  1946. * CHECK IF FAMILY OR PACK REQUESTED.
  1947.  
  1948. SFD1 SX6 X5+ CHECK AUXILIARY DEVICE FLAG
  1949. SA2 SFDA+B1 CURRENT FAMILY/PACK
  1950. NZ X6,SFD2 IF AUXILIARY PACK
  1951.  
  1952. * SET FAMILY NAME IF NECESSARY.
  1953.  
  1954. BX7 X5-X2
  1955. BX6 X5 SET NEW FAMILY NAME
  1956. ZR X7,SFDX IF REQUESTED FAMILY ALREADY SET
  1957. SA6 A2
  1958. SA6 A6-B1
  1959. BX6 X6-X6 CLEAR ALTERNATE USER NUMBER IN FET
  1960. SA6 C+CFOU
  1961. PACKNAM 0 CLEAR PACK NAME
  1962. ENFAM SFDA
  1963. EQ SFDX RETURN
  1964.  
  1965. * SET PACK NAME IF NECESSARY.
  1966.  
  1967. SFD2 SX6 B1 SET AUXILIARY PACK FLAG
  1968. MX0 42
  1969. BX5 X0*X5
  1970. BX6 X5+X6
  1971. BX7 X6-X2
  1972. ZR X7,SFDX IF REQUESTED PACK ALREADY SET
  1973. SA6 A2
  1974. BX6 X5 SET PACK NAME IN CONTROL POINT AREA
  1975. SA6 A6-B1
  1976. PACKNAM SFDA
  1977. RJ SAI SET AUXILIARY PACK INFORMATION
  1978. EQ SFDX RETURN
  1979.  
  1980. SFDA BSS 1 SCRATCH AREA FOR ENFAM MACRO
  1981. VFD 42/1,18/0 CURRENT FAMILY/PACK NAME
  1982. VFD 42/0,18/0 CURRENT USER INDEX
  1983. VVD SPACE 4,26
  1984. ** VVD - VERIFY VALID DEVICE FOR DAYFILE EXISTENCE.
  1985. *
  1986. * CHECK FOR AUXILIARY OR REMOVABLE DEVICES. ACTIVE
  1987. * DAYFILES MAY NOT EXIST ON REMOVABLE DEVICES. ALSO,
  1988. * NEW ACTIVE DAYFILES MAY NOT BE STARTED ON PRIVATE
  1989. * PACKS UNLESS THE USER NUMBER SPECIFIED FOR PERMITS
  1990. * MATCHES THE USER NUMBER OF THE PRIVATE PACK.
  1991. *
  1992. * ENTRY (X2) = OPTION.
  1993. * (X3) = DAYFILE TYPE.
  1994. * (X4) = EST ORDINAL.
  1995. *
  1996. * EXIT (X2) = OPTION.
  1997. * (X3) = DAYFILE TYPE.
  1998. * (X4) = EST ORDINAL.
  1999. * (X5) = 0 IF NO ERROR.
  2000. * = *K* DISPLAY MESSAGE ADDRESS IF ERROR.
  2001. * (X6) = FAMILY/PACK NAME FOR EQUIPMENT.
  2002. * (X7) = DAYFILE EXISTENCE BITS FOR SPECIFIED TYPE.
  2003. * (B3) = SHIFT COUNT FOR DAYFILE BITS.
  2004. * (APIN) = AUXILIARY PACK INFORMATION.
  2005. * 42/USER NUMBER, 6/UNITS, 12/EST ORDINAL.
  2006. *
  2007. * USES A - 1, 5, 6.
  2008. * B - 2, 3.
  2009. * X - 0, 1, 5, 6, 7.
  2010.  
  2011.  
  2012. VVD SUBR ENTRY/EXIT
  2013.  
  2014. * CHECK IF LEGAL DEVICE FOR TERMINATION.
  2015.  
  2016. SA1 TEQA+X4 GET EQUIPMENT ENTRY
  2017. BX7 X7-X7 CHECK IF AUXILIARY DEVICE
  2018. LX1 59-2
  2019. PL X1,VVD1 IF NOT AUXILIARY DEVICE
  2020. SA5 TMSA+X4 SET AUXILIARY PACK INFORMATION
  2021. MX0 48
  2022. BX5 X0*X5
  2023. BX6 X5+X4
  2024. SX7 B1 SET AUXILIARY DEVICE FLAG
  2025. SA6 APIN
  2026. MX0 42 GET USER NUMBER
  2027. BX6 X0*X6
  2028. ZR X6,VVD1 IF NOT PRIVATE PACK
  2029. SA5 PUNA CHECK IF LEGAL PACK FOR TERMINATION
  2030. BX6 X5-X6
  2031. ZR X6,VVD1 IF PRIVATE PACK UN SAME AS PERMIT
  2032. SX5 =C* PRIVATE PACK/PERMIT UN CONFLICT.*
  2033. EQ VVDX
  2034.  
  2035. VVD1 LX1 2-1
  2036. PL X1,VVD2 IF NOT REMOVABLE DEVICE
  2037. NZ X2,VVD3 IF ACTIVE DAYFILE TERMINATION
  2038.  
  2039. * GET FAMILY/PACK NAME AND DAYFILE EXISTENCE BITS.
  2040.  
  2041. VVD2 SA1 A1 GET FAMILY/PACK NAME
  2042. MX0 42
  2043. BX6 X0*X1
  2044. BX6 X6+X7 ADD AUXILIARY DEVICE FLAG
  2045. SX5 X3-1 SET SHIFT COUNT FOR DAYFILE RESIDENCE BITS
  2046. SB2 10
  2047. LX5 X5,B1
  2048. SB3 X5+
  2049. MX0 -2 GET DAYFILE TYPE BITS FOR DEVICE
  2050. SB3 B2-B3
  2051. AX1 B3
  2052. BX7 -X0*X1
  2053. BX5 X5-X5 SET NO ERROR
  2054. EQ VVDX
  2055.  
  2056. VVD3 SX5 =C* REMOVABLE DEVICE/NO ACTIVE DAYFILES.*
  2057. EQ VVDX
  2058. TITLE DAYFILE NAME TABLES.
  2059. ** TDNK - TABLE OF DAYFILE NAME KEYS.
  2060. *
  2061. * INDEX INTO TABLE IS DAYFILE TYPE CODE (ZERO IF NOT A DAYFILE
  2062. * NAME).
  2063.  
  2064. TDNK BSS 0 TABLE OF DAYFILE NAME KEYS
  2065. LOC 0
  2066. BSS 1 INPUT KEY (USED BY SEARCH ALGORITHM)
  2067. DATA 2LDF MASTER DAYFILE TYPE
  2068. DATA 2LAC ACCOUNT DAYFILE TYPE
  2069. DATA 2LER ERROR LOG DAYFILE TYPE
  2070. DATA 2LML MAINTENANCE LOG DAYFILE TYPE
  2071. TDNKL BSS 0 TABLE LENGTH
  2072. LOC *O
  2073. SPACE 4,3
  2074. ** TDFT - TABLE OF DAYFILE TYPE NAMES.
  2075. *
  2076. * INDEX INTO TABLE IS DAYFILE TYPE CODE (ZERO IF NOT A DAYFILE).
  2077.  
  2078. TDFT BSS 0 TABLE OF DAYFILE TYPES
  2079. LOC 0
  2080. DATA 10LNONE NOT DAYFILE
  2081. DATA 10LDAYFILE MASTER DAYFILE
  2082. DATA 10LACCOUNT ACCOUNT DAYFILE
  2083. DATA 10LERRLOG ERROR LOG DAYFILE
  2084. DATA 10LMAINLOG MAINTENANCE LOG DAYFILE
  2085. LOC *O
  2086. TITLE ERROR PROCESSING TABLES.
  2087. ** TSEP - TABLE OF *SFM* ERROR PROCESSING.
  2088. *
  2089. * INDEX INTO TABLE IS *SFM* ERROR CODE.
  2090. * QUANTITY REPRESENTS ERROR MESSAGE ADDRESS.
  2091.  
  2092. TSEP BSS 0 TABLE OF *SFM* ERROR PROCESSING
  2093. LOC 0
  2094. BSS 1
  2095. CON MS01 FILE BUSY
  2096. CON MS02 NOT ENOUGH MASS STORAGE
  2097. CON MS03 FILE NOT FOUND
  2098. CON MS04 UNCORRECTABLE RMS ERROR
  2099. LOC *O
  2100. TITLE ERROR PROCESSING MESSAGES.
  2101. ** *SFM* ERROR MESSAGES.
  2102.  
  2103. MS01 DATA C* DAYFILE BUSY. *
  2104. MS02 DATA C* NOT ENOUGH MASS STORAGE. *
  2105. MS03 DATA C* INACTIVE DAYFILE NOT FOUND ON DEVICE. *
  2106. MS04 DATA C* UNCORRECTABLE RMS ERROR. *
  2107.  
  2108. ** *PFM* ERROR MESSAGES.
  2109.  
  2110. MPER BSS 4 *PFM* ERROR MESSAGE RETURN BLOCK
  2111. TITLE COMMON DECKS.
  2112. COMMON SPACE 4,10
  2113. ** COMMON DECKS.
  2114.  
  2115.  
  2116. *CALL COMCCDD
  2117. *CALL COMCCIO
  2118. *CALL COMCCOD
  2119. *CALL COMCCPM
  2120. *CALL COMCEDT
  2121. *CALL COMCLFM
  2122. *CALL COMCMVE
  2123. *CALL COMCPFM
  2124. *CALL COMCRDC
  2125. *CALL COMCRDW
  2126. *CALL COMCSFM
  2127. *CALL COMCSFN
  2128. *CALL COMCSYS
  2129. *CALL COMCWTC
  2130. *CALL COMCWTW
  2131. TITLE BUFFERS.
  2132. USE LITERALS
  2133.  
  2134. * BUFFERS.
  2135.  
  2136. CENB BSS NWCE CATALOG ENTRY BUFFER
  2137. PDCB BSS PDCBL PERMANENT DAYFILE LIST CONTROL BUFFER
  2138. PDLB BSS PDLBL PERMANENT DAYFILE LIST LINE BUFFER
  2139. KBUF VFD 11/0,1/1,1/1,5/0,18/KTIA,24/0 K-DISPLAY BUFFER
  2140. DBUF EQU *+KBUFL TERMINATED DAYFILE BUFFER
  2141. CBUF EQU DBUF+DBUFL CATALOG BUFFER
  2142. OBUF EQU CBUF+CBUFL OUTPUT BUFFER
  2143. DSPB EQU OBUF+OBUFL *DSP* PARAMETER BLOCK
  2144. BUFFL EQU DSPB+DSPBL END OF BUFFERS
  2145. SPACE 4,10
  2146. ERRPL *-RFL IF DEFAULT FIELD LENGTH TOO SMALL
  2147. SPACE 4
  2148. END DFTERM
cdc/nos2.source/opl871/dfterm.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator