Table of Contents

LIBTASK

Table Of Contents

  • [00385] LIB - LIBTASK MAIN PROGRAM.
  • [00610] SUBROUTINES.
  • [00612] ALC - ADVANCE LINE COUNT.
  • [00650] CDR - COPY DIRECTORY TO TASK LIBRARY.
  • [00732] ERR - PROCESS ERRORS ENCOUNTERED IN BINARY OR INPUT
  • [00888] FPL - FORMAT PRINT LINE.
  • [01101] LRL - WRITE RECORD LIST.
  • [01197] PCR - PROCESS CREATION RUN.
  • [01222] PLO - PROCESS LIST OPTION.
  • [01382] PNP - PROCESS NO PARAMETERS.
  • [01417] PIT - PURGE INACTIVE TASKS (*PR* OPTION).
  • [01456] PRH - PRINT REPORT HEADER.
  • [01490] PTT - PROCESS TELL *TAF* OPTION.
  • [01514] RBF - READ BINARY FILE.
  • [01749] SAP - SELECT ACTIVE TASKS FROM *P* FILE.
  • [01820] SAT - SELECT ACTIVE TASKS.
  • [01912] SDR - SORT TASK LIBRARY DIRECTORY.
  • [01939] SEH - SET ERROR HEADING.
  • [01972] SKR - SKIP TO NEXT RECORD.
  • [01997] SSR - SHELL SORT RECORD.
  • [02100] STD - SEARCH TASK/TRANSACTION DIRECTORY.
  • [02180] STL - SET TITLE LINE FOR OUTPUT PAGE.
  • [02220] STN - SEARCH TASK NAMES.
  • [02286] STR - SORT TRANSACTION DIRECTORY.
  • [02311] TOV - TABLE OVERLFOW PROCESSOR.
  • [02338] COMMON DECKS.
  • [02400] PRS - PRESET ROUTINE.
  • [02571] ATP - ATTACH LIBRARY FILE.
  • [02613] ATT - ATTACH CHECKING PROCEDURES.
  • [02663] ERC - ERROR CHECKING.
  • [02998] INP - PROCESS INPUT DIRECTIVES.

Source Code

LIBTASK.txt
  1. IDENT LIBTASK,FETS
  2. ABS
  3. SST LREC,MP
  4. ENTRY LIBTASK
  5. ENTRY RFL=
  6. ENTRY SSJ=
  7. SYSCOM B1
  8. LIBTASK TITLE LIBTASK - TASK LIBRARY EDITING PROGRAM.
  9. *COMMENT LIBTASK - TASK LIBRARY EDITING PROGRAM.
  10. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  11. LIBTASK SPACE 4,10
  12. ***** LIBTASK - TASK LIBRARY BUILDING AND EDITING PROGRAM.
  13. *
  14. * J. R. HOGUE. 1971.
  15. * K. R. COMBS. 1972.
  16. * M. M. CHEN. 1978.
  17. * R. G. PARKHOUSE. 80/04/15.
  18. * E. D. REDIG. 81/03/06.
  19. SPACE 4
  20. *** *LIBTASK* BUILDS THE TASK LIBRARY USED BY THE TRANSACTION
  21. * EXECUTIVE AND PLACES BOTH A TASK DIRECTORY AND A TRANSACTION
  22. * DIRECTORY ON THE LAST RECORD OF THE LIBRARY.
  23. *
  24. * TO MAKE CHANGES TO THE LIBRARY WHILE THE TRANSACTION SYSTEM
  25. * IS RUNNING, *LIBTASK* ADDS THE NEW TASK BINARIES TO THE END
  26. * OF THE LIBRARY FILE AND REWRITES AN UPDATED DIRECTORY ON THE
  27. * LAST RECORD. THEN, VIA THE OPERATING SYSTEM *SIC* REQUEST,
  28. * *LIBTASK* INFORMS THE TRANSACTION EXECUTIVE THAT A CHANGE
  29. * WAS MADE AND THE EXECUTIVE READS IN THE NEW DIRECTORY.
  30. *
  31. * *LIBTASK* DOES NOT DEFINE THE INITIAL LIBRARY FILE. THIS
  32. * MUST BE DONE PRIOR TO A *LIBTASK* CREATION RUN.
  33. SPACE 4,10
  34. *** THE COMMAND.
  35. *
  36. * LIBTASK(P1,P2,,PN)
  37. *
  38. * THE PARAMETERS P(I) MAY INCLUDE THE FOLLOWING (IN ANY ORDER)
  39. * AND MUST BE IN ONE OF THE FORMS
  40. *
  41. * * * - (NONE) ASSUME FIRST DEFAULT VALUE.
  42. * P - ASSUME ALTERNATE DEFAULT VALUE.
  43. * P=X - SUBSTITUTE *X* FOR ANY ASSUMED VALUE OF *P*.
  44. *
  45. * I - FILE CONTAINING INPUT DIRECTIVES.
  46. * Z - TAKE DIRECTIVES ONLY FROM COMMAND.
  47. * EXAMPLE -
  48. * LIBTASK(...,Z,...)XDDDDDXDDDDXDDD
  49. * WHERE X IS ANY CHARACTER NOT IN D.
  50. * D IS A LIBTASK DIRECTIVE.
  51. * B - FILE CONTAINING BINARIES TO ADD TO TASK LIBRARY FILE.
  52. * L - FILE CONTAINING LIST OF ACTIONS TAKEN.
  53. * P - TASK LIBRARY FILE.
  54. * N - NEW TASK LIBRARY FILE.
  55. * CR - CREATE A NEW LIBRARY FILE.
  56. * TT - SEND MESSAGE TO *TAF* TO READ NEW DIRECTORY.
  57. * PR - PURGE OLD BINARIES AND DIRECTORIES.
  58. * DA - DISABLE ATTACHES AND RETURNS.
  59. * LO - LIST OPTION FOR TASKS/TRANSACTIONS AND ATTRIBUTES.
  60. * TN - TASK OR TRANSACTION NAME USED IN CONJUNCTION WITH *LO*.
  61. *
  62. * DEFAULT PARAMETER SUBSTITUTION VALUES.
  63. *
  64. * EQUIVALENCED FIRST ALTERNATE
  65. * PARAMETERS DEFAULT DEFAULT - COMMENT -
  66. *
  67. * I *INPUT* *COMPILE*
  68. * B *LGOB* *LGO* TASK BINARY FILE.
  69. * L *OUTPUT* *OUTPUT* OUTPUT FILE.
  70. * P *TASKLIB* TASK LIBRARY FILE.
  71. * N *SCRATCH* *TASKLIB* NEW TASK LIBRARY FILE.
  72. * LO 0 *A* LIST OPTION.
  73. * TN 0 0 TASK OR TRANSACTION NAME.
  74. *
  75. * SINGLE FIRST ALTERNATE
  76. * PARAMETERS DEFAULT DEFAULT - COMMENT -
  77. *
  78. * Z *NOT Z* *Z* DIRECTIVES FROM COMMAND.
  79. * CR *NOT CR* *CR* CREATE A NEW LIBRARY FILE.
  80. * TT *NOT TT* *TT* TELL *TAF* ABOUT CHANGE.
  81. * PR *NOT PR* *PR* PURGE OLD RECORDS
  82. * DA *NOT DA* *DA* SKIP ATTACHES OF LIBRARY FILE
  83. SPACE 4,45
  84. *** DESCRIPTION OF PARAMETER OPTIONS.
  85. *
  86. * CR - THE CREATE OPTION IS USED TO CREATE A NEW TASK LIBRARY.
  87. * IF *TAF* IS RUNNING BUT DOES NOT HAVE A FILE ATTACHED BY THE
  88. * NEW TASK LIBRARY NAME, A CREATE MAY BE DONE. OTHERWISE, IT
  89. * MAY NOT BE USED WHILE *TAF* IS RUNNING. THE *P* FILE MUST
  90. * HAVE BEEN PREVIOUSLY DEFINED. LIBTASK READS ONE TASK
  91. * AT A TIME FROM THE *B* FILE, CHECKS FOR AN INPUT DIRECTIVE
  92. * FOR THE TASK, CONSTRUCTS A DIRECTORY ENTRY AND INSERTS THE
  93. * ENTRY IN ALPHABETICAL ORDER IN THE LIBRARY DIRECTORY. THE
  94. * DIRECTORY IS WRITTEN AT THE END OF THE LIBRARY.
  95. *
  96. * PR - THE PURGE OPTION IS USED TO REMOVE INACTIVE TASK
  97. * BINARIES AND OLD DIRECTORIES FROM THE TASK LIBRARY.
  98. * THIS OPTION MAY BE USED WHILE *TAF* IS RUNNING AND THE
  99. * TASK LIBRARY TO BE PURGED IS NOT ATTACHED BY *TAF*.
  100. * *LIBTASK* PROCESSES THE REPLACEMENT FILE *B*
  101. * AND THE INPUT DIRECTIVES NORMALLY, COPIES THE
  102. * ENTIRE LIBRARY TO A SCRATCH FILE, THEN TRANSFERS THE CURRENT
  103. * BINARY FOR EACH TASK IN THE LIBRARY TO THE SCRATCH FILE.
  104. * HOWEVER, IF THE *N* OPTION IS SPECIFIED, ONLY THE CURRENT
  105. * BINARIES ARE TRANSFERRED DIRECTLY TO THE SCRATCH FILE,
  106. * WHICH HAS BECOME THE NEWLY DEFINED TASK LIBRARY. THE
  107. * DIRECTORY IS UPDATED AND WRITTEN AT THE END IN EACH CASE.
  108. * THEREFORE, ONLY ONE COPY OF EACH TASK AND ONE DIRECTORY
  109. * REMAINS IN THE LIBRARY.
  110. *
  111. * TT - THE TELL *TAF* OPTION IS USED TO INFORM *TAF* THAT A
  112. * CHANGE HAS OCCURRED IN THE TASK LIBRARY WHEN A LIBTASK
  113. * TAKES PLACE WHILE *TAF* IS RUNNING. THE PARAMETER HAS
  114. * NO EFFECT IF *TAF* IS NOT RUNNING. NORMAL PROCESSING
  115. * OCCURS, AFTER WHICH INTERCONTROL POINT COMMUNICATION IS USED
  116. * TO INFORM *TAF* TO READ IN THE NEW DIRECTORY.
  117. *
  118. * DA - THE DISABLE ATTACH OPTION IS USED TO ALLOW A USER
  119. * COMPLETE CONTROL OF HIS PERMANENT FILES. THIS OPTION
  120. * DISABLES ALL ATTACHES AND RETURNS OF THE TASK LIBRARY FILES.
  121. * THE EXCEPTION TO THIS IS IF THE *TT* OPTION IS ALSO
  122. * SPECIFIED. LIBTASK WILL THEN RETURN THE TASK LIBRARY
  123. * FILE SO THAT *TAF* MAY REATTACH THE FILE TO UPDATE ITS
  124. * TABLES.
  125. *
  126. * LO - THE LIST OPTION PRODUCES A REPORT OF TASKS AND THEIR
  127. * ATTRIBUTES, TRANSACTION NAMES WITH ATTRIBUTES AND NAMES
  128. * OF MEMBER TASKS. WHEN LISTING TASK NAMES WITH TRANSACTION
  129. * NAMES, THOSE TASKS WHICH DO NOT EXIST IN THE DATA BASE
  130. * LIBRARY ARE FLAGGED.
  131. SPACE 4,70
  132. *** INPUT FILE DIRECTIVE FORMAT.
  133. *
  134. * 1. TASK DIRECTIVE.
  135. *
  136. * TO ENTER ALTERNATE VALUES FOR A TASK, A DIRECTIVE CARD MAY
  137. * BE ENTERED IN THE DIRECTIVE FILE.
  138. *
  139. * DIRECTORY COMMAND FORMAT.
  140. *
  141. * *NAME P1,P2,,,PN.
  142. *
  143. * NAME = TASK NAME OF TASK ON FILE *B*.
  144. *
  145. * THE PARAMETERS P(I) MAY INCLUDE THE FOLLOWING (IN ANY ORDER)
  146. * AND MUST BE IN ONE OF THE FORMS :
  147. *
  148. * * * - (NONE) ASSUME FIRST DEFAULT VALUE
  149. * P - ASSUME ALTERNATE DEFAULT VALUE
  150. * P=X - SUBSTITUTE *X* FOR ANY ASSUMED VALUE OF *P*
  151. *
  152. * BP - BEGINNING PRIORITY.
  153. * MP - MAXIMUM PRIORITY (FUTURE USE).
  154. * QL - QUEUE LIMIT.
  155. * S - SYSTEM TASK.
  156. * C - CORE RESIDENT.
  157. * SC - COMMUNICATION BLOCK SOLICITED FLAG.
  158. * D - DESTRUCTIVE CODE.
  159. * E - EXTENDED MEMORY RESIDENT (FUTURE USE).
  160. * O - TASK ON/OFF.
  161. * Q - QUEUING FORCED FOR ADDITIONAL ACTIVE COPIES OF TASK.
  162. * R - REDUCE FL (CM RESIDENT TASK ONLY).
  163. *
  164. * EQUIVALENCED FIRST ALTERNATE
  165. * PARAMETERS DEFAULT DEFAULT - COMMENT -
  166. *
  167. * BP 20B 25B BEGINNING TASK PRIORITY.
  168. * EF 0 0 DEFAULT EXPANDABLE FL.
  169. * MP 40B 50B MAXIMUM TASK PRIORITY.
  170. * QL 3B 5B QUEUE LIMIT FOR A TASK.
  171. *
  172. * SINGLE FIRST ALTERNATE
  173. * PARAMETERS DEFAULT DEFAULT - COMMENT -
  174. *
  175. * R 0 0 REDUCE FL
  176. * S *NOT S* *S* SYSTEM TASK.
  177. * C *DISK* *CORE* RESIDENCE OF TASK BINARY.
  178. * D *NOT D* *D* DESTRUCTIVE CODE INDICATOR.
  179. * E *NOT E* *E* EXTENDED MEMORY RESIDENT.
  180. * O *ON* *OFF* TASK ON/OFF.
  181. * DL *NOT DL* *DL* DELETE TASK.
  182. * IG *NOT IG* *IG* IGNORE TASK.
  183. * SC *NOT SC* *SC* COM. BLK. SOLICITED
  184. * Q *NORMAL* *QUEUE* QUEUE FOR ADDITIONAL COPIES.
  185. *
  186. *
  187. * 2. TRANSACTION DIRECTIVE.
  188. *
  189. * TO NAME A TRANSACTION AND SPECIFY TASKS COMPRISING THE NAMED
  190. * TRANSACTION. TO SPECIFY DATA MANAGERS USED BY THE TRANSACTION
  191. * AND SPECIFY THE RECOVERABLE ATTRIBUTE.
  192. *
  193. * DIRECTIVE FORMAT.
  194. *
  195. * /TNAME,T1=TSK1,T2=TSK2,T3=TSK3,T4=TSK4,T5=TSK5,RC,DM=DMID,DL.
  196. *
  197. * TNAME = 1-7 ALPHANUMERIC CHARACTER TRANSACTION UNIT NAME.
  198. * TSK(I) = TASKS COMPRISING TRANSACTION.
  199. * RC = TRANSACTION IS RECOVERABLE.
  200. * DMID = DATA MANAGERS USED(C - *CRM*, D - *CDCS*, CD - BOTH)
  201. * DL = DELETE NAMED TRANSACTION.
  202. SPACE 4,10
  203. *** DOCUMENTATION CONVENTIONS.
  204. *
  205. * B FILE NAME DENOTED BY COMMAND *B* PARAMETER.
  206. * N FILE NAME DENOTED BY COMMAND *N* PARAMETER.
  207. * P FILE NAME DENOTED BY COMMAND *P* PARAMETER.
  208. * TLD TASK LIBRARY DIRECTORY.
  209. * TRD TRANSACTION DIRECTORY.
  210. SPACE 4,10
  211. *** DAYFILE MESSAGES.
  212. *
  213. * ERRA BINARY RECORD WAS LESS THAN 640 WORDS LONG.
  214. * ERRB BINARY RECORD WAS NETHER ABSOLUTE NOR OVERLAY FORMAT.
  215. * PRSB LIBTASK COMMAND ARGUMENT ERRORS.
  216. * ERCB CONFLICTING LIBTASK OPTIONS - CR, PR.
  217. * ERCC CONFLICTING LIBTASK OPTIONS - CR, TT.
  218. * ERCD CONFLICTING LIBTASK OPTIONS - PR, TT.
  219. * ERCF CONFLICTING LIBTASK OPTIONS - P=0, -N.
  220. * ERCH CONFLICTING LIBTASK OPTIONS - TT, N.
  221. * INPB DIRECTIVE ERRORS.
  222. * ERRF DIRECTORY IS FULL - NO MORE ADDITIONS ALLOWED.
  223. * LIBK FILE NOT ATTACHED - LFN.
  224. * ERRD INCORRECT FWA FOR LOAD.
  225. * ATTD LIBRARY FILE TIME OUT.
  226. * ERRE LIBTASK ERROR CONDITION UNKNOWN.
  227. * LIBJ LIBTASK ERRORS.
  228. * ATTE LIBTASK - PFM ERROR DETECTED.
  229. * TOVA TABLE OVERFLOW - TOO MANY TASKS.
  230. * LIBF TASK EDITING COMPLETE.
  231. * PRSD TASK LIBRARY DIRECTORY EMPTY.
  232. * PRSE TASK LIBRARY DIRECTORY ERROR.
  233. * PRSC TASK LIBRARY DIRECTORY TOO LONG.
  234. * ERCO TASKLIB MUST NOT START WITH THE LETTER Z.
  235. * ERCL TN REQUIRES EITHER LO=T OR LO=X.
  236. * PRSF TT OPTION REQUIRES USER NAME.
  237. * PRSG TRANSACTION DIRECTORY EMPTY.
  238. * PRSH TRANSACTION DIRECTORY TOO LONG.
  239. * PRSI TRANSACTION DIRECTORY ERROR.
  240. * PRSJ USER NOT VALIDATED FOR ONLINE TASK LIBRARY UPDATES.
  241. * ERCM VALID LO OPTIONS ARE LO, LO=A, LO=T OR LO=X.
  242. * PLOG XXXXXXX NOT IN DIRECTORY.
  243. SPACE 4,10
  244. QUAL$ EQU 0 PROGRAM WILL HANDLE QUAL
  245. *CALL COMCMAC
  246. *CALL COMCMTM
  247. LIST X
  248. *CALL COMKFLD
  249. *CALL COMKTLD
  250. LIST -X
  251. *CALL COMSPRD
  252. *CALL COMSSSD
  253. *CALL COMSSSJ
  254.  
  255. ORG 104B
  256. FETS TITLE FETS AND DATA STORAGE.
  257. FETS BSS 0
  258.  
  259. I BSS 0
  260. INPUT FILEB IBUF,IBUFL,FET=7 DIRECTIVE INPUT FILE
  261.  
  262. B BSS 0
  263. LGOB FILEB BBUF,BBUFL TASK BINARY FILE
  264.  
  265. O BSS 0
  266. OUTPUT FILEC OBUF,OBUFL OUTPUT FILE
  267.  
  268. P BSS 0
  269. TASKLIB RFILEB PBUF,PBUFL,EPR,FET=11 TASK LIBRARY FILE
  270.  
  271. SF BSS 0
  272. N BSS 0
  273. SCRATCH RFILEB SBUF,SBUFL,EPR,FET=11 NEW/SCRATCH LIBRARY FILE
  274.  
  275. LATLD BSS 1 ACTUAL LWA OF TLD
  276. LWTLD BSS 1 CURRENT LWA OF TLD
  277. LWOLD BSS 1 LWA OF BASE TLD FOR RUNNING SYSTEM
  278. TSKDI BSS 1 TASK DISK INDEX
  279. TSKNM BSS 1 TASK NAME
  280. TSKNE BSS 1 TASK NAME AND ENTRY POINT
  281. TSKFL BSS 1 TASK FIELD LENGTH
  282. EOFF CON 0 END OF BINARY FILE FLAG
  283. BFEF CON 0 BINARY FILE ERROR FLAG
  284. FSLT BSS 1 FREE SPACE LEFT IN TLD
  285. CRES CON 0 CORE RESIDENT TASK COUNT
  286.  
  287. LATRD CON 0 LWA OF TRD BEFORE SORT
  288. LWTRD CON 0 LWA OF TRD
  289. FSTR CON 0 FREE SPACE LEFT IN TRD
  290. MTRD CON 0 TRD UPDATED FLAG
  291. TRDE CON 0 TRD EXISTS FLAG
  292.  
  293. Z CON 0 TO TAKE DIRECTIVES FROM CONTROL COMMAND
  294. PR CON 0 TO PURGE OLD COPIES
  295. CR CON 0 TO CREATE A LIBRARY FILE OR NOT TO CREATE
  296. TT CON 0 TELL *TAF* ABOUT NEW DIRECTORY
  297. DA CON 0 DISABLE ATTACH AND RETURN
  298. AT CON 0 ATTACHED BY *TAF* FLAG
  299. PN CON 0 FILE *F* AND *N* NOT EQUAL FLAG
  300. LO CON 0 LIST OPTION
  301. XTN CON 0 TASK OR TRANSACTION UNIT NAME FOR *LO*
  302.  
  303. FWLD EQU 111B FWA OF SINGLE ENTRY POINT PROGRAM
  304. RECN CON 0 RECORDS READ FROM BINARY FILE
  305. CBP EQU 3533B DEFAULT BEGINNING TASK PRIORITY
  306. ABP EQU 3540B ALTERNATE BEGINNING TASK PRIORITY
  307. MNBP EQU 10B MINIMUM BEGINNING PRIORITY
  308. MXBP EQU 70B MAXIMUM BEGINNING PRIORITY
  309. CMP EQU 3733B DEFAULT MAXIMUM TASK PRIORITY
  310. AMP EQU 4033B ALTERNATE MAXIMUM TASK PRIORITY
  311. MNMP EQU 10B MINIMUM MAXIMUM PRIORITY
  312. MXMP EQU 70B MAXIMUM MAXIMUM PRIORITY
  313. CQL EQU 3336B DEFAULT TASK QUEUE LIMIT
  314. AQL EQU 3340B ALTERNATE TASK QUEUE LIMIT
  315. MINQL EQU 1 MINIMUM QUEUE LIMIT
  316. MAXQL EQU 5 MAXIMUM QUEUE LIMIT
  317. EFL EQU 0 DEFAULT EXPANDABLE FIELD LENGTH BY TASK
  318. MAXEF EQU 300000B MAXIMUM EXPANDABLE FL
  319. CC EQU 0 DEFAULT CORE RESIDENCE VALUE
  320. CD EQU 1 DEFAULT FOR DESTRUCTIVE TASKS
  321. CS EQU 0 DEFAULT SYSTEM TASK INDICATOR
  322. CO EQU 0 DEFAULT ON/OFF INDICATOR
  323. CE EQU 0 DEFAULT ECS RESIDENCE INDICATOR
  324. CDL EQU 0 DEFAULT DELETE DIRECTORY
  325. CQ EQU 0 DEFAULT QUEUING CONTROL
  326. CRE EQU 0 DEFAULT REDUCE FL
  327. TLQUSM DECMIC TLQUS
  328. MLQU EQU 1S"TLQUSM" MULTIPLIER OF *CQ*
  329. BP VFD 12/CBP,48/0 BEGINNING PRIORITY FOR A TASK
  330. MP VFD 12/CMP,48/0 MAXIMUM TASK PRIORITY
  331. EF CON EFL EXPANDABLE FIELD LENGTH BY TASK
  332. QL VFD 12/CQL,48/0 TASK QUEUE LIMIT
  333. C CON CC*10B CORE RESIDENT DIRECTORY INFORMATION
  334. D CON CD*20B DESTRUCTIVE CODE DIRECTORY INFORMATION
  335. S CON CS*40B SYSTEM TASK DIRECTORY INFORMATION
  336. OO CON CO*02B ON/OFF BIT
  337. E CON CE*04B EXTENDED MEMORY RESIDENT BIT
  338. DL CON CDL*01B DELETE BIT
  339. Q CON CQ*MLQU QUEUING CONTROL BIT
  340. R CON CRE REDUCE FL FLAG
  341. IG CON 0 IGNORE TASK
  342. SC CON 0 SOLICITED FLAG
  343.  
  344. TSK1 CON 0 TASK 1
  345. TSK2 CON 0 TASK 2
  346. TSK3 CON 0 TASK 3
  347. TSK4 CON 0 TASK 4
  348. TSK5 CON 0 TASK 5
  349. RC CON 0 RECOVER TRANSACTION
  350. DM CON 0 DATA MANAGER(S) USED
  351. TDL CON 0 DELETE TRANSACTION
  352.  
  353. JOBORG BSS 1 JOB ORIGIN CODE
  354. ENDH CON 10H0LAST MODI
  355. CON 10HFICATION
  356. CON 10H -
  357. LAST BSSZ 3
  358. ENDHL EQU *-ENDH
  359.  
  360.  
  361. LREC TABLE TASKS ON TASK LIBRARY
  362.  
  363. RREC TABLE RECORDS REPLACED TABLE
  364.  
  365. IREC TABLE RECORDS INSERTED TABLE
  366.  
  367. DRTC TABLE INPUT DIRECTIVES
  368.  
  369. TDCH TABLE DIRECTIVES CHANGED TABLE
  370.  
  371. TDRC TABLE DIRECTIVES CHANGED
  372.  
  373. TDIG TABLE IGNORE TASK
  374.  
  375. TTIN TABLE TRANSACTION UNITS INSERTED
  376.  
  377. TTCN TABLE TRANSACTION UNITS CHANGED
  378.  
  379. TTNE TABLE TRANSACTION UNITS WITH NONEXISTENT TASKS
  380.  
  381. SSJ= BSS 0 SPECIAL SYSTEM JOB PARAMETER BLOCK
  382. VFD 36/0,12/LTCS,12/UJSI
  383. BSSZ SSJL-1
  384. LIB TITLE MAIN PROGRAM.
  385. ** LIB - LIBTASK MAIN PROGRAM.
  386. *
  387. * LIB READS THE BINARIES AND BUILDS NEW ENTRIES
  388. * AT THE END OF THE LIBRARY FILE. ONE BINARY RECORD (TASK) AT
  389. * A TIME IS READ FROM THE B FILE AND WRITTEN ON THE P FILE. A
  390. * NEW DIRECTORY ENTRY IS CREATED IF THIS IS A NEW TASK, OR THE
  391. * EXISTING ENTRY IS UPDATED. IF THE CR OPTION IS SET, THE
  392. * DIRECTORY ENTRIES ARE ARRANGED ALPHABETICALLY, ELSE NEW
  393. * ENTRIES ARE ADDED AT THE END OF THE DIRECTORY.
  394. * THE STORAGE AREAS OF *PRS* AND RELATED ROUTINES ARE USED
  395. * FOR TASK LIBRARY DIRECTORY RESIDENT AFTER *PRS* IS CALLED.
  396.  
  397.  
  398. LIBTASK RJ PRS INITIALIZE LIBTASK
  399.  
  400. * CHECK CREATION RUN.
  401.  
  402. SA1 B
  403. ZR X1,LIB0 IF NO BINARY FILE
  404. REWIND B,R
  405. READ B INITIATE READ
  406. LIB0 SA1 CR
  407. SA2 PR
  408. ZR X1,LIB1 IF NOT A CREATION RUN
  409. RJ PCR CREATE A NEW LIBRARY
  410. EQ LIB4 PROCESS OUTPUT
  411.  
  412. * CHECK PURGE RUN.
  413.  
  414. LIB1 SA3 TT
  415. ZR X2,LIB2 IF NOT A PURGE RUN
  416. RJ PIT PURGE INACTIVE TASKS
  417. EQ LIB4 PROCESS OUTPUT
  418.  
  419. * CHECK TELL *TAF* RUN.
  420.  
  421. LIB2 ZR X3,LIB3 IF NOT A TELL *TAF* RUN
  422. RJ PTT TELL *TAF*
  423. EQ LIB4 PROCESS OUTPUT
  424.  
  425. LIB3 RJ PNP PROCESS NO PARAMETERS
  426. LIB4 SA1 JOBORG
  427. ZR X1,LIB5 IF INTERACTIVE INPUT
  428. SA1 L.LREC
  429. ZR X1,LIB5 IF NO TASKS ON OLD DIRECTORY
  430.  
  431. * WRITE NAMES OF TASKS ON OLD DIRECTORY.
  432.  
  433. WRITEW O,LIBE,LIBEL
  434. SX2 2
  435. RJ ALC ADVANCE LINE COUNT
  436. SA1 F.LREC START OF NAMES
  437. SA5 L.LREC COUNT OF NAMES
  438. SB7 X1
  439. SX1 X5
  440. RJ /COMCSST/SST SORT TABLE
  441. SA1 F.LREC START OF NAMES
  442. RJ LRL LIST RECORD LIST
  443. LIB5 SA1 L.IREC
  444. ZR X1,LIB6 IF NO RECORDS INSERTED
  445.  
  446. * WRITE NAMES OF RECORDS INSERTED.
  447.  
  448. WRITEW O,LIBC,LIBCL
  449. SX2 2
  450. RJ ALC ADVANCE LINE COUNT
  451. SA1 F.IREC START OF INSERTED RECORD NAMES
  452. SA5 L.IREC COUNT OF INSERTED RECORD NAMES
  453. SB7 X1
  454. SX1 X5
  455. RJ /COMCSST/SST SORT TABLE
  456. SA1 F.IREC START OF INSERTED RECORD NAMES
  457. RJ LRL LIST RECORD LIST
  458. LIB6 SA1 L.RREC
  459. ZR X1,LIB7 IF NO RECORDS REPLACED
  460.  
  461. * WRITE NAMES OF RECORDS REPLACED.
  462.  
  463. WRITEW O,LIBD,LIBDL
  464. SX2 2
  465. RJ ALC ADVANCE LINE COUNT
  466. SA1 F.RREC START OF REPLACED RECORD NAMES
  467. SA5 L.RREC COUNT OF RECORD NAMES
  468. SB7 X1
  469. SX1 X5
  470. RJ /COMCSST/SST SORT TABLE
  471. SA1 F.RREC START OF REPLACED RECORD NAMES
  472. RJ LRL LIST RECORD LIST
  473. LIB7 SA1 L.TDRC
  474. ZR X1,LIB8 IF NO DIRECTIVES CHANGED
  475.  
  476. * WRITE NAMES OF DIRECTIVES CHANGED.
  477.  
  478. WRITEW O,LIBL,LIBLL
  479. SX2 2
  480. RJ ALC ADVANCE LINE COUNT
  481. SA1 F.TDRC START OF DIRECTIVE CHANGE NAMES
  482. SA5 L.TDRC COUNT OF NAMES
  483. SB7 X1
  484. SX1 X5
  485. RJ /COMCSST/SST SORT TABLE
  486. SA1 F.TDRC START OF DIRECTIVE CHANGE NAMES
  487. RJ LRL LIST RECORD LIST
  488. LIB8 SA1 L.TTIN
  489. ZR X1,LIB9 IF NO TRANSACTION UNITS INSERTED
  490.  
  491. * WRITE NAMES OF TRANSACTION UNITS INSERTED.
  492.  
  493. WRITEW O,LIBN,LIBNL
  494. SX2 2
  495. RJ ALC ADVANCE LINE COUNT
  496. SB2 B1 WORDS PER ENTRY
  497. SA1 F.TTIN
  498. SB6 X1 FWA OF TABLE
  499. SA1 L.TTIN LENGTH OF TABLE
  500. SB3 LIBQ TEMPORARY BUFFER
  501. MX0 42 MASK
  502. RJ SSR SORT TABLE
  503. SA1 F.TTIN
  504. SA5 L.TTIN
  505. RJ LRL LIST RECORD LIST
  506. LIB9 SA1 L.TTCN
  507. ZR X1,LIB10 IF NO TRANSACTION UNITS CHANGED
  508.  
  509. * WRITE NAMES OF TRANSACTION UNITS CHANGED.
  510.  
  511. WRITEW O,LIBO,LIBOL
  512. SX2 2
  513. RJ ALC ADVANCE LINE COUNT
  514. SB2 B1 WORDS PER ENTRY
  515. SA1 F.TTCN
  516. SB6 X1 FWA OF TABLE
  517. SA1 L.TTCN LENGTH OF TABLE
  518. SB3 LIBQ TEMPORARY BUFFER
  519. MX0 42 MASK
  520. RJ SSR SORT TABLE
  521. SA1 F.TTCN
  522. SA5 L.TTCN
  523. RJ LRL LIST RECORD LIST
  524. LIB10 SA1 L.TTNE
  525. ZR X1,LIB11 IF NO TRANSACTION UNITS WITH NONEXISTENT
  526.  
  527. * WRITE NAMES OF TRANSACTION UNITS WITH NONEXISTENT TASKS.
  528.  
  529. WRITEW O,LIBP,LIBPL
  530. SX2 2
  531. RJ ALC ADVANCE LINE COUNT
  532. SB2 B1 WORDS PER ENTRY
  533. SA1 F.TTNE
  534. SB6 X1 FWA OF TABLE
  535. SA1 L.TTNE LENGTH OF TABLE
  536. SB3 LIBQ TEMPORARY BUFFER
  537. MX0 42 MASK
  538. RJ SSR SORT TABLE
  539. SA1 F.TTNE
  540. SA5 L.TTNE
  541. RJ LRL LIST RECORD LIST
  542.  
  543. * PROCESS LIST OPTION IF USED.
  544.  
  545. LIB11 SA1 LO
  546. ZR X1,LIB12 IF NO *LO* OPTION
  547. RJ PLO PROCESS LIST OPTION
  548.  
  549. * WRITE TIME AND DATE OF MOST RECENT LIBRARY MODIFICATION.
  550.  
  551. LIB12 SA1 RECN
  552. NZ X1,LIB13 IF *B* FILE USED
  553. SA1 TLDHD PLACE DIRECTORY DATE IN OUTPUT LINE
  554. BX6 X1
  555. SA6 LAST
  556. SA1 TLDHT PLACE DIRECTORY TIME IN OUTPUT LINE
  557. BX6 X1
  558. SA6 LAST+1
  559. LIB13 WRITEW O,ENDH,ENDHL WRITE DATE AND TIME OF LAST MODIFICATION
  560. WRITER O FLUSH OUTPUT FILE
  561. SETFS O,0 PREVENT RETURN OF OUTPUT FILE
  562. SA1 BFEF
  563. ZR X1,LIB14 IF NO ERRORS ON *B* OR *PLO*
  564. MESSAGE LIBJ * LIBTASK ERRORS.*
  565. ABORT
  566.  
  567. LIB14 MESSAGE LIBF * TASK EDITING COMPLETE.*
  568. ENDRUN
  569.  
  570. * TLD VALUES FOR CURRENT TASK.
  571.  
  572. LIBA VFD 48/0,6/0,6/0 WORD 2 OF TLD
  573. VFD 1/CS,1/CD,1/CC,3/0,18/0,18/0,18/0
  574.  
  575. * DEFAULT VALUES FOR ALL TASKS.
  576.  
  577. LIBB VFD 48/0,6/0,6/0 WORD 2 OF TLD
  578. VFD 1/CS,1/CD,1/CC,3/0,18/0,18/0,18/0
  579. LIBC DATA C* RECORDS INSERTED INTO LIBRARY FILE - *
  580. LIBCL EQU *-LIBC
  581. LIBD DATA C* RECORDS REPLACED IN LIBRARY FILE - *
  582. LIBDL EQU *-LIBD
  583. LIBE DATA C* RECORDS ON OLD TASK LIBRARY FILE - *
  584. CON 8L
  585. LIBEL EQU *-LIBE
  586. LIBF DATA C* TASK EDITING COMPLETE.*
  587. LIBG DATA C* COPYING *
  588. LIBH VFD 18/0,12/TRSI,30/0 REPLY WORD FOR *SIC* MACRO
  589. LIBI VFD 12/2002B,30/0,18/LIBIL
  590. VFD 42/0,18/0
  591. CON 0 TASK LIBRARY NAME
  592. LIBIL EQU *-LIBI LENGTH OF PARAMETER BLOCK
  593. LIBJ DATA C* LIBTASK ERRORS.*
  594. LIBK DATA C* FILE NOT ATTACHED - *
  595. LIBL DATA C* DIRECTIVE ENTRIES CHANGED IN TASK LIBRARY DIRECTORY.
  596. ,*
  597. CON 8L
  598. LIBLL EQU *-LIBL
  599. LIBM DATA C*IGNORING *
  600. LIBN DATA C* TRANSACTION NAMES INSERTED.*
  601. CON 8L
  602. LIBNL EQU *-LIBN
  603. LIBO DATA C* TRANSACTION NAMES CHANGED.*
  604. CON 8L
  605. LIBOL EQU *-LIBO
  606. LIBP DATA C* TRANSACTION NAMES CONTAINING NONEXISTENT TASKS.*
  607. CON 8L
  608. LIBPL EQU *-LIBP
  609. LIBQ CON 0 TEMPORARY BUFFER FOR *SSR*
  610. TITLE SUBROUTINES.
  611. ALC SPACE 4,15
  612. ** ALC - ADVANCE LINE COUNT.
  613. *
  614. * ADVANCE THE LINE COUNT FOR THE OUTPUT FILE PAGE AND
  615. * CHECK FOR END OF PAGE.
  616. *
  617. * ENTRY (X2) = LINE COUNT IF NOT 1.
  618. *
  619. * EXIT LINE COUNT ADVANCED.
  620. *
  621. * USES A - 1, 6, 7.
  622. * B - 2.
  623. * X - 1, 2, 4, 6, 7.
  624. *
  625. * CALLS CDD, STL.
  626.  
  627.  
  628. ALC SUBR ENTRY/EXIT
  629. SA1 ALCA LINE COUNT
  630. IX7 X1+X2
  631. SA7 A1 LINE COUNT ADVANCED
  632. SB2 X1-58
  633. NG B2,ALCX IF NOT AT END OF PAGE
  634. SA1 ALCB
  635. SX7 X1+1 ADVANCE PAGE COUNT
  636. SA7 ALCB
  637. RJ CDD CONVERT TO DECIMAL DISPLAY CODE
  638. MX4 30
  639. SA1 STLAP HEADER PAGE WORD
  640. BX2 X4*X1
  641. BX6 -X4*X6
  642. BX6 X6+X2
  643. SA6 A1+ NEW PAGE NUMBER INSERTED
  644. RJ STL SET NEW TITLE LINE
  645. EQ ALCX RETURN
  646.  
  647. ALCA CON 3 LINE COUNT
  648. ALCB CON 2 PAGE COUNT
  649. CDR SPACE 4,15
  650. ** CDR - COPY DIRECTORY TO TASK LIBRARY.
  651. *
  652. * ENTRY FILE INITIALIZED.
  653. * (X5) = FILE NAME TO WHICH TLD IS TO BE COPIED.
  654. *
  655. * EXIT TASK AND TRANSACTION DIRECTORIES COPIED
  656. * TO THE LIBRARY FILE.
  657. *
  658. * USES A - 1, 2, 3, 4, 6, 7.
  659. * X - 1, 2, 3, 4, 6, 7.
  660. *
  661. * CALLS STN, STR.
  662. *
  663. * MACROS RECALL, WRITEF, WRITER, WRITEW.
  664.  
  665.  
  666. CDR SUBR ENTRY/EXIT
  667. RJ STN FIND TRANSACTIONS WITH NONEXISTENT TASKS
  668. RECALL X5 WAIT FOR FILE NOT BUSY
  669. SA1 STLAD PLACE DATE IN DIRECTORY
  670. SA2 STLAT PLACE TIME IN DIRECTORY HEADER
  671. BX6 X1
  672. BX7 X2
  673. SA6 LAST
  674. SA7 LAST+1
  675. SA6 TLDHD
  676. SA7 TLDHT
  677. SA1 TRDE
  678. ZR X1,CDR1 IF TRD DOES NOT EXIST
  679. SA1 MTRD
  680. ZR X1,CDR1 IF TRD NOT MODIFIED
  681. SA1 LWTRD
  682. SX2 X1-TRD LENGTH OF TRD
  683. NZ X2,CDR0 IF TRD NOT EMPTY
  684. SA1 TLDH+TLTRW CLEAR PRU OF TRD IN TLD HEADER
  685. MX3 60-TLTRN
  686. BX6 X3*X1
  687. SA6 A1+
  688. EQ CDR1 PROCESS TLD
  689.  
  690. CDR0 SA6 TRDH+2 DATE
  691. SA7 A6+1 TIME
  692. RJ STR SORT TRANSACTION DIRECTORY
  693. SA2 X5+6
  694. MX3 TLTRN
  695. ERRNZ TLTRN-30 *CRI* AND PRU OF TRD LENGTHS DIFFERENT
  696. BX6 X3*X2 EXTRACT CURRENT RANDOM INDEX FROM FET
  697. SA2 TLDH+TLTRW
  698. LX6 TLTRS-59
  699. BX3 X3*X2 CLEAR OLD PRU
  700. BX6 X6+X3
  701. SA6 A2 PRU OF TRD IN TLD HEADER
  702. SA1 LWTRD
  703. SX7 X1-TRD LENGTH OF TRD
  704. MX3 -18
  705. LX3 18
  706. LX7 18
  707. SA2 TRDH+1
  708. BX2 X3*X2
  709. BX7 X2+X7
  710. SA7 A2 TRD LENGTH IN TRD HEADER
  711. WRITEW X5,TRDH,X1-TRDH WRITE TRD TO FILE
  712. WRITER X5,R FLUSH BUFFER
  713. CDR1 SA1 CRES NUMBER OF CM RESIDENT TASKS
  714. SA3 TT
  715. SA4 LWTLD LWA OF TLD
  716. ZR X3,CDR2 IF NOT *TT* RUN
  717. SA4 LWOLD LWA OF BASE TLD
  718. CDR2 SA2 TLDH+1
  719. MX3 18
  720. BX2 X3*X2
  721. SX6 X4-TLD LENGTH OF TLD
  722. BX7 X1+X2 STORE CORE RESIDENT COUNT IN HEADER WORD
  723. LX6 18
  724. BX7 X7+X6 ADD TLD LENGTH
  725. SA7 TLDH+1 UPDATE DIRECTORY HEADER
  726. SA4 LWTLD LWA OF TLD
  727. WRITEW X5,TLDH,X4-TLDH
  728. WRITER X5 FLUSH BUFFER
  729. WRITEF X5 WRITE EOF ON LIBRARY FILE
  730. EQ CDRX
  731. ERR SPACE 4,25
  732. ** ERR - PROCESS ERRORS ENCOUNTERED IN BINARY OR INPUT
  733. * DIRECTIVE FILE.
  734. *
  735. * THE FOLLOWING BLOCKS OF CODE HANDLE VARIOUS ERROR CONDITIONS
  736. * WHICH MAY OCCUR WHILE PROCESSING THE *B* OR *I* FILE.
  737. *
  738. * ENTRY (X6) = 1 - RECORD LESS THAN 64D WORDS.
  739. * 2 - INCORRECT RECORD TYPE ON BINARY.
  740. * 3 - MULTIPLE ENTRY POINT.
  741. * 4 - ERROR IN *54* TABLE.
  742. * 5 - TLD IS FULL.
  743. * 6 - TRD IS FULL.
  744. *
  745. * EXIT (BFEF) = 1 IF ERROR PROCESSED.
  746. *
  747. * USES A - 1, 6, 7.
  748. * B - 3.
  749. * X - 1, 2, 6, 7.
  750. *
  751. * CALLS ALC, SEH, SFN, SKR.
  752. *
  753. * MACROS ABORT, MESSAGE, READ, WRITEW.
  754.  
  755.  
  756. ERR9 SX7 B1+ INDICATE ERROR ENCOUNTERED
  757. SA7 BFEF
  758.  
  759. ERR SUBR ENTRY/EXIT
  760. LX6 -1
  761. SX2 X6-TERRL
  762. SB3 X6
  763. PL X2,ERR7 IF UNKNOWN ERROR CONDITION
  764. JP B3+TERR JUMP THROUGH TABLE
  765.  
  766. TERR PL X6,ERR7 UNKNOWN ERROR CONDITION
  767. EQ ERR1 RECORD LESS THAN 64D WORDS
  768. PL X6,ERR4 IF INCORRECT RECORD TYPE
  769. EQ ERR5 MULTIPLE ENTRY POINT
  770. PL X6,ERR6 ERRORS IN *54* TABLE
  771. EQ ERR8 TLD FULL
  772. PL X6,ERR10 TRD FULL
  773. EQ ERR7 UNKNOWN ERROR CONDITION
  774. TERRL EQU *-TERR LENGTH OF ERROR JUMP TABLE
  775.  
  776. * BINARY RECORD LESS THAN 64D WORDS LONG.
  777.  
  778. ERR1 SX2 X1-HB
  779. NZ X2,ERR2 IF NOT A BLANK RECORD
  780. READ B REINITIATE READ ON BINARY FILE
  781. EQ ERRX RETURN
  782.  
  783. ERR2 SX2 X1-HB-1
  784. PL X2,ERR3 IF MORE THAN ONE WORD ON RECORD
  785. SX6 B0+
  786. SA6 HB+1 NO TASK NAME
  787. ERR3 READ B INITIATE READ ON BINARY FILE
  788. RJ SEH SET ERROR HEADER
  789. MX7 42
  790. SA1 HB+1 TASK NAME - HOPEFULLY
  791. BX1 X7*X1
  792. RJ SFN SPACE FILL NAME
  793. SA6 ERRA+1
  794. WRITEW O,ERRA,ERRAL
  795. SX2 B1+B1
  796. RJ ALC ADVANCE LINE COUNT
  797. EQ ERR9 RETURN
  798.  
  799. * INCORRECT RECORD TYPE ON BINARY FILE.
  800.  
  801. ERR4 RJ SKR ADVANCE TO NEXT RECORD
  802. RJ SEH SET ERROR HEADER
  803. MX7 42
  804. SA1 TSKNM TASK NAME
  805. RJ SFN SPACE FILL NAME
  806. SA6 ERRB+1
  807. WRITEW O,ERRB,ERRBL
  808. SX2 B1+B1
  809. RJ ALC ADVANCE LINE COUNT
  810. EQ ERR9 RETURN
  811.  
  812. * MORE THAN ONE ENTRY POINT GIVEN ON A *54* TABLE.
  813.  
  814. ERR5 RJ SKR SKIP TO NEXT RECORD
  815. RJ SEH SET ERROR HEADER
  816. MX7 42
  817. SA1 TSKNM TASK NAME
  818. RJ SFN SPACE FILL NAME
  819. SA6 ERRC+1
  820. WRITEW O,ERRC,ERRCL
  821. SX2 B1+B1
  822. RJ ALC ADVANCE LINE COUNT
  823. EQ ERR9 RETURN
  824.  
  825. * FWA FOR A NON *54* TABLE BINARY WAS NOT EQUAL TO THE
  826. * DEFAULT FWA OF A *54* TABLE.
  827.  
  828. ERR6 RJ SKR SKIP TO NEXT RECORD
  829. RJ SEH SET ERROR HEADER
  830. MX7 42
  831. SA1 TSKNM TASK NAME
  832. RJ SFN SPACE FILL NAME
  833. SA6 ERRD+1
  834. WRITEW O,ERRD,ERRDL
  835. SX2 B1+B1
  836. RJ ALC ADVANCE LINE COUNT
  837. EQ ERR9 RETURN
  838.  
  839. * UNKNOWN ERROR CONDITION.
  840.  
  841. ERR7 MESSAGE ERRE * LIBTASK ERROR CONDITION UNKNOWN.*
  842. ABORT
  843.  
  844. * TLD IS FULL.
  845.  
  846. ERR8 RJ SEH SET ERROR HEADER
  847. MX7 42
  848. SA1 TSKNM TASK NAME
  849. RJ SFN SPACE FILL NAME
  850. SA6 ERRF+1
  851. WRITEW O,ERRF,ERRFL
  852. SX2 2
  853. RJ ALC ADVANCE LINE COUNT
  854. EQ ERR9 RETURN
  855.  
  856. * TRD IS FULL.
  857.  
  858. ERR10 RJ SEH SET ERROR HEADING
  859. MX7 42
  860. SA1 INPT TRANSACTION NAME
  861. RJ SFN SPACE FILL NAME
  862. SA6 ERRG+1
  863. WRITEW O,ERRG,ERRGL
  864. SX2 B1+B1
  865. RJ ALC ADVANCE LINE COUNT
  866. EQ ERR9 RETURN
  867.  
  868. ERRA DATA 20H0
  869. DATA C* BINARY RECORD WAS LESS THAN 64D WORDS LONG.*
  870. ERRAL EQU *-ERRA LENGTH OF MESSAGE
  871. ERRB DATA 20H0
  872. DATA C* BINARY RECORD WAS NETHER ABSOLUTE NOR OVERLAY.*
  873. ERRBL EQU *-ERRB LENGTH OF MESSAGE
  874. ERRC DATA 20H0
  875. DATA C/ MORE THAN ONE ENTRY POINT ON A *54* TABLE./
  876. ERRCL EQU *-ERRC LENGTH OF MESSAGE
  877. ERRD DATA 20H0
  878. DATA C* INCORRECT FWA FOR LOAD.*
  879. ERRDL EQU *-ERRD LENGTH OF MESSAGE
  880. ERRE DATA C* LIBTASK ERROR CONDITION UNKNOWN.*
  881. ERRF DATA 20H0
  882. DATA C* DIRECTORY IS FULL - NO MORE ADDITIONS ALLOWED.*
  883. ERRFL EQU *-ERRF LENGTH OF MESSAGE
  884. ERRG DATA 20H0
  885. DATA C* TRD IS FULL - NO MORE ADDITIONS ALLOWED.*
  886. ERRGL EQU *-ERRG
  887. FPL SPACE 4,20
  888. ** FPL - FORMAT PRINT LINE.
  889. *
  890. * FORMATS THE PRINT LINE FOR EITHER THE TASK NAME REPORT
  891. * OR THE TRANSACTION UNIT REPORT, PRINTS THE LINE, AND
  892. * CALLS *ALC* TO ADVANCE THE LINE COUNT.
  893. *
  894. * ENTRY (A1) = FWA OF TLD/TRD ENTRY.
  895. * (FPLC) = 0, IF TLD IS BEING FORMATTED.
  896. * = 1, IF TRD IS BEING FORMATTED.
  897. *
  898. * EXIT LINE PRINTED.
  899. *
  900. * USES X - 0, 1, 2, 3, 4, 5, 6, 7.
  901. * A - 1, 2, 4, 5, 6.
  902. * B - 2, 3, 4, 5, 6, 7.
  903. *
  904. * CALLS ALC, COD, PRH, SFN, STD.
  905. *
  906. * MACROS WRITEC, WRITEW.
  907.  
  908.  
  909. FPL SUBR ENTRY/EXIT
  910. SA2 FPLC FORMAT FLAG
  911. NZ X2,FPL7 IF FORMATTING TRANSACTION UNITS
  912. SA2 A1+TLTNW FIRST WORD OF TLD
  913. MX4 TLTNN
  914. BX1 X4*X2 TASK NAME
  915. RJ SFN SPACE FILL NAME
  916. LX6 -6
  917. SA6 FPLB SET IN FIRST WORD OF PRINT LINE
  918. SA2 A1+B1 SECOND WORD OF TLD
  919. MX0 -TLMPN
  920. BX1 -X0*X2 MAXIMUM PRIORITY
  921. RJ COD CONVERT TO DISPLAY CODE
  922. SA2 A2+B1 THIRD WORD OF TLD
  923. BX5 X6 SAVE MAXIMUM PRIORITY
  924. LX2 TLBPN-1-TLBPS
  925. BX1 -X0*X2 BEGINNING PRIORITY
  926. MX0 -36
  927. BX5 -X0*X5 CLEAR OUT BEGINNING PRIORITY
  928. RJ COD CONVERT TO DISPLAY CODE
  929. LX6 59-23
  930. BX6 X0*X6 BEGINNING PRIORITY
  931. BX6 X6+X5 ADD MAXIMUM TO BEGINNING PRIORITY
  932. MX4 -TLQLN
  933. SA2 A2 THIRD WORD OF TLD
  934. SA6 A6+1 SET IN SECOND WORD OF PRINT LINE
  935. BX1 -X4*X2 QUEUE LIMIT
  936. RJ COD CONVERT TO DISPLAY CODE
  937. LX6 24
  938. MX0 -TLFLN
  939. SA6 A6+1 SET IN THIRD WORD OF PRINT LINE
  940. SA2 A1+TLFLW SECOND WORD OF TLD
  941. BX5 X2
  942. LX2 TLFLN-1-TLFLS
  943. BX1 -X0*X2
  944. LX1 6 FIELD LENGTH*100B
  945. RJ COD CONVERT TO DISPLAY CODE
  946. LX6 24
  947. SA6 A6+1 SET IN FOURTH WORD OF PRINT LINE
  948. LX5 TLEFN-1-TLEFS
  949. ERRNZ TLFLW-TLEFW
  950. BX1 -X0*X5
  951. LX1 6 EXTRA FL*100B
  952. RJ COD CONVERT TO DISPLAY CODE
  953. LX6 24
  954. SA6 A6+B1 SET IN FIFTH WORD OF PRINT LINE
  955. SA5 FPLA
  956. BX6 X5
  957. SA4 A1+TLNDW THIRD WORD OF TLD
  958. BX1 X4
  959. SA6 A6+1 SET SPACES IN SIXTH WORD OF PRINT LINE
  960. SB2 1R-
  961. BX0 X4
  962. LX1 59-TLNDS
  963. SX2 B2+
  964. NG X1,FPL1 IF NOT DESTRUCTIVE CODE
  965. SX2 1RD ADD IN *D*
  966. FPL1 BX1 X4
  967. LX2 6
  968. SX3 B2
  969. LX1 59-TLCMS
  970. PL X1,FPL2 IF NO CM RESIDENT
  971. SX3 1RC
  972. FPL2 BX2 X2+X3 ADD IN *C* OR *-*
  973. LX1 59-TLECS-59+TLCMS
  974. SX3 B2
  975. LX2 6
  976. PL X1,FPL3 IF NOT EXTENDED MEMORY RESIDENT
  977. SX3 1RE
  978. FPL3 BX2 X2+X3 ADD IN *E* OR *-*
  979. LX0 59-TLTOS
  980. SX3 B2
  981. LX2 6
  982. PL X0,FPL4 IF TASK IS NOT OFF
  983. SX3 1RO
  984. FPL4 BX2 X2+X3 ADD IN *O* OR *-*
  985. LX4 59-TLSCS
  986. SX3 B2
  987. LX2 6
  988. PL X4,FPL5 IF NO SOLICITED COMMUNICATION BLOCK
  989. SX3 1RR
  990. FPL5 BX2 X2+X3 ADD IN *R* OR *-*
  991. LX4 59-TLQUS-59+TLSCS
  992. SX3 B2
  993. LX2 6
  994. PL X4,FPL6 IF QUEUEING NOT ENFORCED
  995. SX3 1RQ
  996. FPL6 BX2 X2+X3 ADD IN *Q* OR *-*
  997. MX4 -24
  998. LX2 24
  999. BX6 -X4*X5
  1000. BX6 X6+X2 ADD ATTRIBUTES TO SPACES
  1001. SA6 A6+B1 SET IN SEVENTH WORD OF PRINT LINE
  1002. EQ FPL14 PRINT OUT LINE
  1003.  
  1004. * FORMAT THE PRINT LINE FOR THE TRANSACTION UNIT REPORT.
  1005.  
  1006. FPL7 MX0 TDTNN
  1007. SA2 A1 FIRST WORD OF TRD
  1008. SB4 A1
  1009. BX1 X0*X2 TRANSACTION NAME
  1010. SB7 4
  1011. RJ SFN SPACE FILL NAME
  1012. LX6 -6
  1013. SA6 FPLB SET IN FIRST WORD OF PRINT LINE
  1014. SA5 A6-B1 GET SPACES
  1015. FPL8 SA2 A2+1 GET NEXT WORD IN TRD
  1016. BX6 X5
  1017. BX1 X0*X2
  1018. ZR X1,FPL10 IF NO TASK
  1019. RJ SFN SPACE FILL NAME
  1020. SB3 TLDLE LENGTH OF TLD ENTRY
  1021. SB5 TLD START OF TLD
  1022. BX2 X1
  1023. SA1 LWOLD
  1024. SB6 X1 LWA OF TLD
  1025. RJ STD SEARCH TLD
  1026. ZR X1,FPL10 IF TASK NAME IN TLD
  1027. LX6 -6
  1028. MX3 -54
  1029. BX1 -X3*X6
  1030. SX4 1R(
  1031. LX4 -6
  1032. BX6 X1+X4 ADD IN LEFT PARENTHESIS
  1033. SB5 -6
  1034. MX1 -6
  1035. SX4 1R
  1036. SB6 6
  1037. FPL9 LX6 -6
  1038. BX3 -X1*X6
  1039. IX7 X3-X4
  1040. SB5 B5+B6
  1041. ZR X7,FPL9 IF BLANK
  1042. LX6 B6
  1043. MX1 54
  1044. BX2 X1*X6
  1045. SX1 1R)
  1046. BX6 X2+X1 ADD IN RIGHT PARENTHESIS
  1047. LX6 B5 POSITION NAME
  1048. FPL10 SB7 B7-B1
  1049. SA6 A6+B1 SET NAME IN PRINT LINE
  1050. PL B7,FPL8 IF MORE TASKS
  1051. MX4 -48
  1052. SA2 B4+TDDCW FIRST WORD OF TRD
  1053. BX6 -X4*X5 CLEAR OUT *CRM* AND *CDCS* USAGE
  1054. BX0 X2
  1055. LX2 59-TDDCS
  1056. SX3 1R-
  1057. PL X2,FPL11 IF NOT *CDCS* USAGE
  1058. SX3 1RD
  1059. FPL11 LX3 -6
  1060. BX6 X6+X3 ADD IN *D* OR *-*
  1061. SX3 1R-
  1062. LX2 59-TDRMS-59+TDDCS
  1063. PL X2,FPL12 IF NOT *CRM* USAGE
  1064. SX3 1RC
  1065. FPL12 LX3 -12
  1066. BX6 X6+X3 ADD IN *C* OR *-*
  1067. MX4 54
  1068. LX0 59-TDRCS
  1069. SX3 1RN
  1070. LX4 12
  1071. BX6 X4*X6 CLEAR OUT RECOVER FLAG
  1072. PL X0,FPL13 IF NOT RECOVERABLE
  1073. SX3 1RY
  1074. FPL13 LX3 12
  1075. BX6 X6+X3 ADD IN *N* OR *Y*
  1076. SA6 A6+1 SET IN SEVENTH WORD OF PRINT LINE
  1077.  
  1078. * PRINT OUTPUT LINE.
  1079.  
  1080. FPL14 WRITEC O,FPLB PRINT OUT LINE
  1081. SX2 B1+
  1082. RJ ALC ADVANCE LINE COUNT
  1083. SA4 ALCA GET LINE COUNT
  1084. SA2 FPLC
  1085. SA5 PLOH
  1086. SX4 X4-3
  1087. SA5 X5+TLDLE GET NEXT TLD ENTRY
  1088. ZR X2,FPL15 IF TLD FORMAT
  1089. SA5 PLOH
  1090. SA5 X5+TRDLE1 GET NEXT TRD ENTRY
  1091. FPL15 ZR X5,FPLX IF NO MORE ENTRIES RETURN
  1092. NZ X4,FPLX IF NOT NEW PAGE RETURN
  1093. RJ PRH PRINT REPORT HEADER
  1094. EQ FPLX RETURN
  1095.  
  1096. FPLA CON 1H SPACES
  1097. FPLB BSS 7 PRINT LINE BUFFER
  1098. CON 8L
  1099. FPLC CON 0 FORMAT FLAG
  1100. LRL SPACE 4,20
  1101. ** LRL - WRITE RECORD LIST.
  1102. *
  1103. * WRITE A LIST OF TASK NAMES ONTO THE OUTPUT FILE, EIGHT NAMES
  1104. * ON EACH LINE, AND UPDATE THE LINE COUNT. IF THERE ARE NO
  1105. * TASK NAMES IN THE LIST, *NONE* IS WRITTEN.
  1106. *
  1107. * ENTRY (X1) = FWA OF RECORD LIST.
  1108. * (X5) = NUMBER OF RECORDS IN LIST
  1109. *
  1110. * EXIT - RECORDS WRITTEN ON OUTPUT FILE.
  1111. *
  1112. * USES A - 0, 1, 2, 6.
  1113. * B - 2, 3, 5, 6.
  1114. * X - ALL.
  1115. *
  1116. * CALLS ALC, SFN.
  1117. *
  1118. * MACROS WRITEC, WRITEW.
  1119.  
  1120.  
  1121. LRL SUBR ENTRY/EXIT
  1122. SX7 X5-23
  1123. SA0 11 TASKS PER LINE
  1124. SB5 X1 ADDRESS OF FIRST TASK NAME
  1125. SB6 A0
  1126. SX0 B1
  1127. SB3 B0
  1128. PL X7,LRL2 IF MORE THAN 23 TASKS TO LIST
  1129. SX6 X5-9
  1130. NG X6,LRL4 IF 8 TASKS ON ONE LINE
  1131. SX3 X5
  1132. LX3 -1 DIVIDE COUNT BY TWO
  1133. SA0 X3
  1134. SB6 A0
  1135. PL X3,LRL2 IF EVEN NUMBER OF TASKS
  1136. SB6 B6+1
  1137. LRL2 SX3 X5
  1138. SX4 A0
  1139. IX0 X3/X4 NUMBER OF LINES
  1140. SB2 A0
  1141. NE B2,B6,LRL3 IF FORCED ODD COUNT LINES
  1142. SX2 X0
  1143. SX4 A0
  1144. IX2 X2*X4 CHECK FOR REMAINDER
  1145. IX4 X5-X2
  1146. ZR X4,LRL3 IF NO ODD COUNT LINES
  1147. SB3 X4+B1
  1148. SX0 X0+B1
  1149. LRL3 SX1 B5+
  1150. LX1 18
  1151. BX0 X1+X0
  1152. SX2 B3+
  1153. LX2 36
  1154. BX0 X0+X2
  1155. LRL4 SA2 STLAB BLANKS
  1156. MX4 42 MASK FOR TASK NAMES
  1157. BX6 X2
  1158. SA6 WBUF
  1159. LRL5 ZR X5,LRL7 IF DONE LISTING TASK NAMES
  1160. SA1 B5 TASK NAME
  1161. BX1 X4*X1
  1162. ZR B3,LRL6 IF NO EXTRA LINES IN THIS COLUMN
  1163. SB3 B3-1
  1164. NZ B3,LRL6 IF EXTRA LINES REMAIN
  1165. SX2 B1
  1166. IX0 X0-X2 REMOVE EXTRA COLUMN COUNT
  1167. LRL6 SX5 X5-1
  1168. RJ SFN SPACE FILL NAME
  1169. SB6 B6-B1
  1170. SA6 A6+1 STORE TASK NAME IN OUTPUT BUFFER
  1171. SB5 B5+X0
  1172. NZ B6,LRL5 IF MORE NAMES TO PRINT ON THIS LINE
  1173. LRL7 BX6 X6-X6
  1174. SA6 A6+B1 TERMINATE LINE
  1175. WRITEC O,WBUF,WBUFL
  1176. SX2 B1
  1177. RJ ALC ADVANCE LINE COUNT
  1178. SB6 A0 NAMES TO LIST ON NEXT LINE
  1179. LX0 -18
  1180. SX1 B1
  1181. SB5 X0+B1
  1182. IX0 X0+X1
  1183. LX0 -18
  1184. SB3 X0
  1185. LX0 36
  1186. ZR B3,LRL8 IF NO EXTRA LINES
  1187. IX0 X0+X1
  1188. LRL8 NZ X5,LRL4 IF NOT END OF LISTING
  1189. WRITEW O,BLINE,1 SKIP ONE LINE
  1190. SX2 B1+
  1191. RJ ALC ADVANCE LINE COUNT
  1192. EQ LRLX RETURN
  1193.  
  1194. LRLA DATA C/ *NONE*/
  1195. LRLAL EQU *-LRLA
  1196. PCR SPACE 4,15
  1197. ** PCR - PROCESS CREATION RUN.
  1198. *
  1199. * ENTRY FILE INITIALIZED.
  1200. *
  1201. * EXIT NEW TASK LIBRARY CREATED.
  1202. *
  1203. * USES A - 1.
  1204. * X - 1, 5.
  1205. *
  1206. * CALLS CDR, RBF, SDR.
  1207. *
  1208. * MACROS REWIND.
  1209.  
  1210.  
  1211. PCR SUBR ENTRY/EXIT
  1212. SA1 PN
  1213. SX5 P
  1214. ZR X1,PCR1 IF *P* AND *N* ARE IDENTICAL
  1215. SX5 N
  1216. PCR1 REWIND X5
  1217. RJ RBF READ BINARY FILE
  1218. RJ SDR SORT DIRECTORY
  1219. RJ CDR COPY DIRECTORY TO NEW TASK LIBRARY
  1220. EQ PCRX RETURN
  1221. PLO SPACE 4,20
  1222. ** PLO - PROCESS LIST OPTION.
  1223. *
  1224. * READ TASK AND TRANSACTION DIRECTORIES AND PRODUCE A
  1225. * FORMATTED LISTING OF ALL TASKS AND THEIR ATTRIBUTES
  1226. * AND ALL TRANSACTIONS WITH THEIR ATTRIBUTES.
  1227. *
  1228. * ENTRY TLD = FWA OF TASK LIBRARY DIRECTORY.
  1229. * TRD = FWA OF TRANSACTION UNIT DIRECTORY.
  1230. *
  1231. * EXIT *PLO* PROCESSSING COMPLETE.
  1232. *
  1233. * ERROR (BFEF) NON ZERO IF NAME NOT IN DIRECTORY.
  1234. *
  1235. * USES X - 1, 2, 3, 6, 7.
  1236. * A - 1, 2, 6, 7.
  1237. * B - 2, 3, 5, 6.
  1238. *
  1239. * CALLS FPL, PRH, SNM, STD, STL.
  1240. *
  1241. * MACROS WRITEW.
  1242.  
  1243.  
  1244. PLO SUBR ENTRY/EXIT
  1245. SA1 ALCA GET LINE COUNT
  1246. SX1 X1-3
  1247. ZR X1,PLO1 IF PAGE EJECT NOT NEEDED
  1248. RJ STL SET NEW TITLE PAGE
  1249. PLO1 SX2 1RT
  1250. SA1 LO
  1251. LX2 -6
  1252. IX3 X2-X1
  1253. ZR X3,PLO6 IF *LO=T*
  1254. SX2 1RX
  1255. LX2 -6
  1256. IX3 X2-X1
  1257. ZR X3,PLO7 IF *LO=X*
  1258. PLO1.1 SA1 LWTLD
  1259. SX1 X1-TLD LENGTH OF TLD
  1260. ZR X1,PLO3 IF NO TLD ENTRIES
  1261. SX2 B0+
  1262. RJ PRH PRINT HEADER FOR TASK NAME REPORT
  1263. SX6 B0+
  1264. SA1 TLD
  1265. SA6 FPLC FORMAT TLD
  1266. PLO2 SX7 A1+
  1267. SA7 PLOH SAVE LAST TLD ENTRY
  1268. RJ FPL FORMAT PRINT LINE
  1269. SA1 PLOH
  1270. SA1 X1+TLDLE GET NEXT TLD ENTRY
  1271. SA2 LWTLD
  1272. SX3 A1
  1273. IX1 X2-X3
  1274. ZR X1,PLO3 IF NO MORE TLD ENTRIES
  1275. EQ PLO2 LOOP FOR NEXT ENTRY
  1276.  
  1277. PLO3 SA2 PLOI
  1278. NZ X2,PLOX IF *LO=T*
  1279. SA2 ALCA GET LINE COUNT
  1280. SX2 X2-3
  1281. ZR X2,PLO4 IF PAGE EJECT NOT NEEDED
  1282. RJ STL SET NEW TITLE PAGE
  1283. PLO4 SA1 LWTRD
  1284. SX1 X1-TRD LENGTH OF TRD
  1285. ZR X1,PLOX IF NO TRD ENTRIES
  1286. SX2 B1+
  1287. RJ PRH PRINT HEADER FOR TRANSACTION UNIT REPORT
  1288. SX6 B1+
  1289. SA1 TRD
  1290. SA6 FPLC FORMAT TRD
  1291. PLO5 SX7 A1+
  1292. SA7 PLOH SAVE LAST TRD ENTRY
  1293. RJ FPL FORMAT PRINT LINE
  1294. SA1 PLOH
  1295. SA1 X1+TRDLE1 GET NEXT TRD ENTRY
  1296. SA2 LWTRD
  1297. SX3 A1
  1298. IX1 X2-X3
  1299. ZR X1,PLOX IF NO MORE TRD ENTRIES
  1300. EQ PLO5 LOOP FOR NEXT ENTRY
  1301.  
  1302. * PROCESS *LO=T* OPTION.
  1303.  
  1304. PLO6 SA2 XTN GET TASK NAME
  1305. SX7 B1+
  1306. SA7 PLOI SET *LO=T*
  1307. ZR X2,PLO1.1 IF *LO=T* WITH NO *TN*
  1308. SB3 TLDLE LENGTH OF TLD ENTRY
  1309. SB5 TLD START OF TLD
  1310. SA1 LWOLD LWA OF BASE TLD
  1311. SB6 X1+
  1312. RJ STD SEARCH TLD
  1313. NZ X1,PLO8 IF ENTRY NOT FOUND
  1314. SX7 A1
  1315. SX2 B0
  1316. SA7 PLOH SAVE FWA OF ENTRY
  1317. RJ PRH PRINT TASK NAME REPORT HEADER
  1318. SX6 B0
  1319. SA1 PLOH
  1320. SA1 X1 FWA OF TLD ENTRY
  1321. SA6 FPLC FORMAT TLD
  1322. RJ FPL FORMAT PRINT LINE
  1323. EQ PLOX RETURN
  1324.  
  1325. * PROCESS *LO=X* OPTION.
  1326.  
  1327. PLO7 SA2 XTN GET TRANSACTION NAME
  1328. ZR X2,PLO3 IF *LO=X* WITH NO *TN*
  1329. SB3 TRDLE1 LENGTH OF TRD ENTRY
  1330. SB5 TRD START OF TRD
  1331. SA1 LWTRD LWA OF TRD
  1332. SB6 X1+
  1333. RJ STD SEARCH TRD
  1334. NZ X1,PLO8 IF ENTRY NOT FOUND
  1335. SX7 A1
  1336. SX2 B1
  1337. SA7 PLOH SAVE FWA OF ENTRY
  1338. RJ PRH PRINT TRANSACTION UNIT REPORT HEADER
  1339. SX6 B1
  1340. SA1 PLOH
  1341. SA1 X1 FWA OF TRD ENTRY
  1342. SA6 FPLC FORMAT TRD
  1343. RJ FPL FORMAT PRINT LINE
  1344. EQ PLOX RETURN
  1345.  
  1346. PLO8 SA1 XTN ENTRY NOT FOUND
  1347. SB2 1RX
  1348. SB5 PLOG ERROR MESSAGE
  1349. RJ SNM SET NAME IN MESSAGE
  1350. WRITEW O,BLINE,1
  1351. WRITEW O,PLOG,PLOGL
  1352. SA1 BFEF
  1353. SX6 X1+1 INCREMENT ERROR FLAG
  1354. SA6 A1+
  1355. EQ PLOX RETURN
  1356.  
  1357. PLOA DATA C* TASK NAME REPORT*
  1358. CON 8L
  1359. PLOAL EQU *-PLOA
  1360. PLOB DATA C* TASK PRIORITY FIELD EXTRA
  1361. , ATTR*
  1362. PLOBL EQU *-PLOB
  1363. PLOC DATA C* NAME BEG MAX QL LENGTH FL
  1364. , DCEORQ*
  1365. CON 8L
  1366. PLOCL EQU *-PLOC
  1367. PLOD DATA C* TRANSACTION NAME REPORT*
  1368. CON 8L
  1369. PLODL EQU *-PLOD
  1370. PLOE DATA C* TRANSACTION TASKS
  1371. , D.M.*
  1372. PLOEL EQU *-PLOE
  1373. PLOF DATA C* NAME 1ST 2ND 3RD 4TH 5
  1374. ,TH DC RECOVER*
  1375. CON 8L
  1376. PLOFL EQU *-PLOF
  1377. PLOG DATA C* XXXXXXX NOT IN DIRECTORY.*
  1378. PLOGL EQU *-PLOG
  1379. PLOH CON 0 FWA OF ENTRY
  1380. PLOI CON 0 *LO*/*TN* FLAG
  1381. PNP SPACE 4,15
  1382. ** PNP - PROCESS NO PARAMETERS.
  1383. *
  1384. * ENTRY FILE INITIALIZED.
  1385. *
  1386. * EXIT NEW TASK LIBRARY CREATED OR UPDATED.
  1387. *
  1388. * USES A - 1, 2.
  1389. * X - 1, 2, 5.
  1390. *
  1391. * CALLS CDR, PCR, PIT, RBF, SDR.
  1392. *
  1393. * MACROS SKIPEI.
  1394.  
  1395.  
  1396. PNP SUBR ENTRY/EXIT
  1397. SA1 AT
  1398. SA2 P
  1399. NZ X2,PNP1 IF NOT *P=0*
  1400. RJ PCR PROCESS CREATE OPTION
  1401. EQ PNPX RETURN
  1402.  
  1403. PNP1 ZR X1,PNP2 IF ATTACHED IN *MODIFY* MODE
  1404. RJ PIT PURGE INACTIVE TASKS
  1405. EQ PNPX RETURN
  1406.  
  1407. PNP2 SA1 B
  1408. SA2 I
  1409. BX1 X1+X2
  1410. ZR X1,PNPX IF NO *I* OR *B* FILE
  1411. SX5 P
  1412. RJ RBF READ BINARY FILE
  1413. RJ SDR SORT DIRECTORY
  1414. RJ CDR COPY DIRECTORY
  1415. EQ PNPX RETURN
  1416. PIT SPACE 4,15
  1417. ** PIT - PURGE INACTIVE TASKS (*PR* OPTION).
  1418. *
  1419. * ENTRY FILE INITIALIZED.
  1420. *
  1421. * EXIT NEW FILE CREATED FROM *P* AND *B*.
  1422. *
  1423. * USES A - 1, 6.
  1424. * X - 1, 5, 6.
  1425. *
  1426. * CALLS CDR, RBF, SAT, SAP, SDR.
  1427.  
  1428.  
  1429. PIT SUBR ENTRY/EXIT
  1430. SA1 LWTLD SAVE LWA OF TLD
  1431. BX6 X1
  1432. SA6 LATLD
  1433. SA1 PN
  1434. NZ X1,PIT2 IF *P* AND *N* ARE NOT EQUAL
  1435. SX5 P COPY TO *P* FILE
  1436. RJ RBF READ BINARY FILE
  1437. RJ SAT SELECT ALL ACTIVE TASKS
  1438. SX5 P COPY TO P FILE
  1439. RJ SDR SORT DIRECTORY
  1440. PIT1 SA1 LATLD COPY ACTUAL LENGTH OF TLD
  1441. BX6 X1
  1442. SA6 LWTLD
  1443. SX6 B1
  1444. SA6 MTRD FORCE COPY OF TRD IF IT EXISTS
  1445. RJ CDR COPY DIRECTORY
  1446. EQ PITX RETURN
  1447.  
  1448. PIT2 REWIND N
  1449. SX5 N
  1450. RJ RBF READ BINARY FILE
  1451. RJ SAP SELECT ACTIVE TASKS FROM *P* FILE
  1452. SX5 N
  1453. RJ SDR SORT DIRECTORY
  1454. EQ PIT1 COPY DIRECTORY
  1455. PRH SPACE 4,20
  1456. ** PRH - PRINT REPORT HEADER.
  1457. *
  1458. * PRINTS THE HEADER FOR EITHER THE TASK NAME REPORT OR
  1459. * THE TRANSACTION UNIT REPORT AND CALLS *ALC* TO ADVANCE
  1460. * THE LINE COUNT.
  1461. *
  1462. * ENTRY (X2) = 0, PRINT TASK NAME REPORT HEADER.
  1463. * 1, PRINT TRANSACTION UNIT REPORT HEADER.
  1464. *
  1465. * EXIT APPROPRIATE HEADER PRINTED.
  1466. *
  1467. * USES X - 2.
  1468. *
  1469. * CALLS ALC.
  1470. *
  1471. * MACROS WRITEW.
  1472.  
  1473.  
  1474. PRH SUBR ENTRY/EXIT
  1475. NZ X2,PRH1 IF TRANSACTION UNIT HEADER WANTED
  1476. WRITEW O,BLINE,1
  1477. WRITEW O,PLOA,PLOAL
  1478. WRITEW O,PLOB,PLOBL
  1479. WRITEW O,PLOC,PLOCL
  1480. EQ PRH2 ADVANCE LINE COUNT
  1481.  
  1482. PRH1 WRITEW O,BLINE,1
  1483. WRITEW O,PLOD,PLODL
  1484. WRITEW O,PLOE,PLOEL
  1485. WRITEW O,PLOF,PLOFL
  1486. PRH2 SX2 6
  1487. RJ ALC ADVANCE LINE COUNT
  1488. EQ PRHX RETURN
  1489. PTT SPACE 4,15
  1490. ** PTT - PROCESS TELL *TAF* OPTION.
  1491. *
  1492. * ENTRY FILE INITIALIZED.
  1493. *
  1494. * EXIT FILE *N* UPDATED.
  1495. *
  1496. * USES A - 1.
  1497. * X - 1, 5.
  1498. *
  1499. * CALLS CDR, RBF.
  1500. *
  1501. * MACROS RETURN, SYSTEM.
  1502.  
  1503.  
  1504. PTT SUBR ENTRY/EXIT
  1505. SX5 P
  1506. RJ RBF READ BINARY FILE
  1507. RJ CDR COPY DIRECTORY
  1508. SA1 DA
  1509. NZ X1,PTT1 IF *DA* SPECIFIED
  1510. RETURN X5
  1511. PTT1 SYSTEM SIC,R,LIBH,LIBI SEND MESSAGE TO *TAF*
  1512. EQ PTTX RETURN
  1513. RBF SPACE 4,30
  1514. ** RBF - READ BINARY FILE.
  1515. *
  1516. * 1. IF END OF BINARY FILE RETURN TO CALLER.
  1517. * 2. READ 77 TABLE AND FIRST OF PROGRAM.
  1518. * 3. IF END OF BINARY RETURN TO CALLER.
  1519. * 4. IF BINARY TOO SHORT CALL ROUTINE *ERR* AND GO TO STEP 1.
  1520. * 5. IF NOT A *54* TABLE CALL *ERR* AND GO TO STEP 1.
  1521. * 6. IF FWA OF LOAD NOT A DEFAULT LOAD ADRESS,
  1522. * CALL *ERR* AND GO TO STEP 1.
  1523. * 7. SEARCH DIRECTORY, IF NOT A IGNORE TASK GO TO STEP 9.
  1524. * 8. SKIP TO NEXT RECORD AND GO TO STEP 1.
  1525. * 9. COPY BINARY TO NEW FILE AND BUILD A DIRECTORY ENTRY.
  1526. * 10. GO TO STEP 1.
  1527. *
  1528. * ENTRY FILE *B* AND *N* INITIATED.
  1529. * (X5) = FILE NAME TO COPY TO.
  1530. *
  1531. * EXIT FILE *B* PROCESSED AND TASK LIBRARY DIRECTORY BUILT.
  1532. *
  1533. * USES A - 1, 2, 3, 4, 5, 6, 7.
  1534. * B - 2, 3, 5, 6.
  1535. * X - ALL.
  1536. *
  1537. * CALLS ERR, SKR, STD.
  1538. *
  1539. * MACROS ADDWRD, MESSAGE, READW, RECALL, SEARCH, WRITER,
  1540. * WRITEW.
  1541.  
  1542.  
  1543. RBF SUBR ENTRY/EXIT
  1544. BX7 X5 SAVE FILE NAME
  1545. SA7 RBFA
  1546. RBF1 SA1 EOFF
  1547. NZ X1,RBFX IF END OF BINARY FILE
  1548. SA1 B
  1549. ZR X1,RBFX IF NO BINARIES
  1550. READW B,HB,HBL READ 77 TABLE AND FIRST WORDS OF PROGRAM
  1551. NG X1,RBFX IF FINISHED WITH BINARY FILE
  1552. SX6 B1+
  1553. NZ X1,RBF19 IF BINARY FILE TOO SHORT
  1554. SA2 HB+1
  1555. MX0 42
  1556. BX7 X0*X2
  1557. MX0 -6
  1558. SB2 10
  1559.  
  1560. * ZERO FILL TASK NAME.
  1561.  
  1562. RBF2 LX7 6
  1563. BX1 -X0*X7
  1564. SX2 X1-1R
  1565. SB2 B2-B1
  1566. NZ X2,RBF3 IF NOT BLANK
  1567. BX7 X0*X7 REMOVE BLANK
  1568. RBF3 NZ B2,RBF2 IF NOT AT WORD BOUNDARY
  1569. SA7 TSKNM TASK NAME LEFT JUSTIFIED
  1570. SA7 LIBG+1 FOR DISPLAY PURPOSES
  1571.  
  1572. * CHECK INCORRECT BINARYS.
  1573.  
  1574. SA5 RBFA FILE NAME
  1575. RECALL X5
  1576. SA1 HB+17B
  1577. MX2 12
  1578. BX2 X2*X1
  1579. SX6 B1+B1 ERROR FLAG
  1580. LX2 12
  1581. SX3 X2-5300B
  1582. SX4 X2-5100B
  1583. SX6 X2-5000B
  1584. SX7 X2-5400B
  1585. ZR X3,RBF4 IF *OVERLAY*
  1586. ZR X4,RBF4 IF *ABS*
  1587. ZR X6,RBF4 IF *ACPM*
  1588. SB2 X1 NUMBER OF ENTRY POINTS
  1589. SX6 B1+B1 INCORRECT RECORD TYPE
  1590. NZ X7,RBF19 IF NOT *5400* TABLE
  1591. SX6 3
  1592. NE B2,B1,RBF19 IF MORE THAN ONE ENTRY POINT
  1593. BX7 X7-X7
  1594. EQ RBF5 COPY BINARY RECORD
  1595.  
  1596. RBF4 LX1 -18
  1597. SX3 X1-FWLD
  1598. BX7 X7-X7
  1599. SX6 4 ERROR FLAG
  1600. NZ X3,RBF19 IF FWA OF LOAD NOT AT DEFAULT LOAD ADDRESS
  1601.  
  1602. * CHECK IGNORE TASK.
  1603.  
  1604. RBF5 SA1 TSKNM TASK NAME
  1605. SEARCH DRTC,X1 SEARCH DIRECTORY
  1606. ZR X2,RBF7 IF TASK NOT IN DIRECTORY
  1607. SA3 TSKNM TASK NAME
  1608. RBF6 SA1 A2+B1 SECOND WORD OF DIRECTORY
  1609. PL X1,RBF8 IF NO IGNORE
  1610.  
  1611. * IGNORE TASK.
  1612.  
  1613. BX7 X3 TASK NAME
  1614. SA7 LIBM+1
  1615. ADDWRD TDIG,X3 IGNORE TASK
  1616. MESSAGE LIBM,1 * IGNORE TASK.*
  1617. RJ SKR SKIP TO NEXT RECORD
  1618. EQ RBF1 PROCESS NEXT RECORD
  1619.  
  1620. RBF7 SA1 TSKNM TASK NAME
  1621. SEARCH TDCH,X1
  1622. SA3 TSKNM
  1623. EQ RBF6 CHECK IGNORE TASK
  1624.  
  1625. * DISPLAY TASK NAME WHILE COPYING.
  1626.  
  1627. RBF8 SA1 X5+6 MASK DISK INDEX
  1628. MX6 30
  1629. BX7 X6*X1
  1630. SA7 TSKDI
  1631. SX0 HBL
  1632. SA5 RBFA FILE NAME
  1633. WRITEW X5,HB,X0 WRITE OUT TASK
  1634. MESSAGE LIBG,1 DISPLAY TASK NAME
  1635.  
  1636. * COPY BINARY FILE RECORD TO LIBRARY FILE.
  1637.  
  1638. BX5 X1-X1 INITIATE CALL
  1639. RBF9 NZ X5,RBF12 IF RECORD COPY COMPLETE
  1640. SX5 TBL
  1641. READW B,TB,TBL READ IN NEXT BLOCK FROM BINARY FILE
  1642. PL X1,RBF10 IF NOT EOF
  1643. SA6 EOFF SET EOF FLAG
  1644. EQ RBF12 PROCESS EOF
  1645.  
  1646. RBF10 ZR X1,RBF11 IF NOT AT EOR
  1647. SX5 X1-TB
  1648. RBF11 SA1 RBFA
  1649. WRITEW X1,TB,X5 WRITE BLOCK TO LIBRARY FILE
  1650. IX0 X0+X5
  1651. SX5 X5-TBL
  1652. EQ RBF9 CONTINUE COPY
  1653.  
  1654. RBF12 READ B REINITIALIZE READ ON BINARY FILE
  1655. SA5 RBFA FILE NAME
  1656. WRITER X5,R FLUSH BUFFER
  1657. SX7 X0+177B
  1658. SA1 RECN
  1659. AX7 6
  1660. SX6 X1+1 RECORD COUNT FOR BINARY FILE
  1661. LX7 18
  1662. SA6 A1+
  1663. SA7 TSKFL TASK FIELD LENGTH
  1664. SA4 TSKNM TASK NAME
  1665. SA3 HB+17B+10B GET ENTRY POINT ADDRESS OF TASK
  1666. SX3 X3
  1667. BX7 X3+X4
  1668. SA7 TSKNE FIRST WORD FOR TLD
  1669.  
  1670. * CHECK FOR INSERTION OR DELETION.
  1671.  
  1672. SA3 CR
  1673. SA2 TSKNM
  1674. SA1 LWTLD CURRENT LWA FOR TLD
  1675. SB5 TLD START OF TLD
  1676. NZ X3,RBF13 IF CREATION RUN
  1677. SA1 LWOLD LWA ADDRESS OF BASE TLD
  1678. RBF13 SX0 X1
  1679. SB6 X0
  1680. SB3 TLDLE TLD ENTRY LENGTH
  1681. RJ STD CHECK IF TASK ALREADY IN DIRECTORY
  1682. NZ X1,RBF15 IF TASK NOT IN DIRECTORY
  1683. SX0 A1
  1684. ADDWRD RREC,X2 RECORD REPLACED INDICATOR
  1685. EQ RBF16 BUILD DIRECTORY
  1686.  
  1687. RBF15 SB3 A1+
  1688. SA3 FSLT FREE SPACE LEFT IN TLD
  1689. SX7 X3-TLDLE DECREMENT FREE TLD SPACE COUNT
  1690. SA7 A3
  1691. BX1 X2
  1692. SX6 5 ERROR FLAG
  1693. NG X7,RBF19 IF DIRECTORY IS FULL
  1694. ADDWRD IREC,X1 RECORD INSERTED INDICATOR
  1695.  
  1696. * INSERT TASK AT END OF DIRECTORY.
  1697.  
  1698. SA1 LWTLD
  1699. SX7 X1+TLDLE ADVANCE LWA ADDRESS
  1700. SA7 A1
  1701. SX0 X1 PLACE TO INSERT
  1702. SA7 LATLD
  1703.  
  1704. * BUILD AND INSERT NEW ENTRY INTO TLD.
  1705.  
  1706. RBF16 SA1 TSKNM TASK NAME
  1707. SEARCH DRTC,X1 CHECK DIRECTIVES TABLE FOR NEW TASK
  1708. NZ X2,RBF17 IF TASK IN DIRECTORY
  1709. SA1 TSKNM
  1710. SEARCH TDCH,X1 CHECK TABLE FOR TASK REPLACING DIRECTIVES
  1711. ZR X2,RBF18 IF NO DIRECTIVES FOR TASK
  1712. RBF17 SA1 A2+1 SECOND WORD OF DIRECTIVE ENTRY
  1713. SA2 A2+2 THIRD WORD OF DIRECTIVE ENTRY
  1714. MX7 -TLEFN-TLMPN GET EFL+MP
  1715. BX7 -X7*X1
  1716. LX6 X2
  1717. SA7 LIBA USE DIRECTIVE ENTRIES FOR TASK DIRECTORY
  1718. SA6 LIBA+1
  1719. RBF18 SA1 TSKNE TASK NAME AND ENTRY POINT
  1720. SA2 TSKDI LIBRARY FILE RANDOM INDEX FOR TASK
  1721. BX6 X1
  1722. SA3 TSKFL TASK FIELD LENGTH
  1723. SA6 X0 FIRST WORD OF TLD
  1724. BX7 X2+X3
  1725. SA1 LIBA TASK PRIORITIES
  1726. SA2 A1+B1 THIRD WORD FOR TLD ENTRY
  1727. BX7 X7+X1
  1728. SA7 X0+1 SECOND WORD OF TLD
  1729. LX6 X2
  1730. SA6 X0+2 THIRD WORD OF TLD
  1731.  
  1732. * RESET DEFAULT PARAMETERS FOR NEXT TASK.
  1733.  
  1734. SA1 LIBB RESTORE DEFAULT TASK VALUES
  1735. SA2 A1+B1
  1736. BX7 X1
  1737. LX6 X2
  1738. SA7 LIBA TASK VALUES
  1739. SA6 A7+B1
  1740. EQ RBF1 PROCESS NEXT TASK
  1741.  
  1742. * PROCESS ERROR CASE.
  1743.  
  1744. RBF19 RJ ERR PROCESS ERROR BINARY
  1745. EQ RBF1 PROCESS NEXT TASK
  1746.  
  1747. RBFA CON 0 TEMPORARY STORAGE FOR FILE NAME
  1748. SAP SPACE 4,20
  1749. ** SAP - SELECT ACTIVE TASKS FROM *P* FILE.
  1750. *
  1751. * ENTRY INPUT DIRECTORY BUILD.
  1752. *
  1753. * EXIT ACTIVE TASKS WRITTEN ON *N* FILE.
  1754. *
  1755. * USES A - 1, 2, 3, 5, 6.
  1756. * X - 0, 1, 2, 3, 4, 5, 6.
  1757. *
  1758. * MACROS READ, READW, REWIND, SEARCH, WRITER, WRITEW.
  1759.  
  1760.  
  1761. SAP SUBR ENTRY/EXIT
  1762. REWIND P,R
  1763. SA5 TLD+1
  1764. SAP1 SA1 A5-B1 TASK NAME
  1765. MX6 42
  1766. BX4 X6*X1
  1767. SEARCH RREC,X4
  1768. NZ X2,SAP5 IF RECORD REPLACED
  1769. SEARCH IREC,X4
  1770. NZ X2,SAP5 IF RECORD INSERED
  1771. SA1 A5 WORD 2 OF AN ENTRY
  1772. MX0 30
  1773. BX3 X0*X1 ISOLATE DISK INDEX
  1774. SA2 A1+B1 WORD 3 OF TLD
  1775. LX3 30
  1776. LX2 59-54 LEFT JUSTIFY DELETD FLAG
  1777. SX4 B1 SET REQUEST BIT
  1778. LX4 29
  1779. SX6 3RZZZ
  1780. NG X2,SAP4 IF DELETE TASK
  1781. BX6 X4+X3 ADD DISK INDEX
  1782. SA6 P+6 PUT IN FET
  1783. SA2 P+1
  1784. SX6 X2+
  1785. SA6 A2+B1 FET+2
  1786. SA6 A6+B1 FET+3
  1787. SA2 N+6
  1788. BX6 X0*X2 ISOLATE NEW INDEX
  1789. BX3 -X0*X1 CLEAR OUT OLD ONE
  1790. BX6 X6+X3
  1791. SA6 A5
  1792. READ P,R
  1793.  
  1794. * COPY ACTIVE TASKS FROM *P* TO *N*.
  1795.  
  1796. SAP2 SX5 TBL
  1797. READW P,TB,X5 READ TASK BINARY FROM SCRATCH
  1798. ZR X1,SAP3 IF NOT AT EOR
  1799. SX5 X1-TB
  1800. SAP3 WRITEW N,TB,X5 WRITE ON LIBRARY
  1801. SX5 X5-TBL
  1802. ZR X5,SAP2 IF RECORD COPY NOT COMPLETE
  1803. WRITER N,R
  1804. EQ SAP5 CONTINUE WITH NEXT TASK
  1805.  
  1806. * TASK IS DELETED PLACE DUMMY NAME IN TLD.
  1807.  
  1808. SAP4 LX6 -18
  1809. SA6 A1-B1 REPLACE TASK NAME
  1810. SA3 LATLD DECREMENT TASK LENGTH
  1811. SX6 X3-3
  1812. SA6 A3+
  1813. SAP5 SA5 A5+TLDLE NEXT ENTRY
  1814. SA1 LWTLD END OF DIRECTORY
  1815. SX2 A5
  1816. IX2 X1-X2
  1817. PL X2,SAP1 IF NOT END OF DIRECTORY
  1818. EQ SAPX RETURN
  1819. SAT SPACE 4,10
  1820. ** SAT - SELECT ACTIVE TASKS.
  1821. *
  1822. * ENTRY INPUT DIRECTORY BUILD.
  1823. *
  1824. * EXIT ACTIVE TASKS WRITTEN ON *P* FILE.
  1825. *
  1826. * USES A - 1, 2, 5, 6.
  1827. * X - 0, 1, 2, 3, 4, 5, 6.
  1828. *
  1829. * MACROS READ, READW, RECALL, REWIND, WRITEF, WRITER, WRITEW.
  1830.  
  1831.  
  1832. SAT SUBR ENTRY/EXIT
  1833. REWIND P,R
  1834.  
  1835. * COPY TASK BINARIES FROM *P* TO SCRATCH.
  1836.  
  1837. REWIND SF
  1838. SAT1 READ P,R
  1839. RECALL SF
  1840. SAT2 SX5 TBL
  1841. READW P,TB,TBL
  1842. NG X1,SAT4 IF EOF
  1843. ZR X1,SAT3 IF NOT AT EOR
  1844. SX5 X1-TB
  1845. SAT3 WRITEW SF,TB,X5 WRITE TO SCRATCH FILE
  1846. SX5 X5-TBL
  1847. ZR X5,SAT2 IF RECORD COPY NOT COMPLETE
  1848. WRITER SF
  1849. SA1 EOFF
  1850. ZR X1,SAT1 IF NOT AT EOF
  1851. SAT4 WRITEF SF
  1852. SA1 P
  1853. LX1 59-9
  1854. PL X1,SAT1 IF NOT AT EOF
  1855.  
  1856. * FLUSH BUFFER.
  1857.  
  1858. WRITEF SF
  1859. REWIND P,R
  1860. RECALL SF
  1861. REWIND SF,R
  1862. SA5 TLD+1
  1863.  
  1864. * SELECT ACTIVE TASKS FROM SCRATCH TO *P*.
  1865.  
  1866. SAT5 SA1 A5 WORD 2 OF AN ENTRY
  1867. MX0 30
  1868. BX3 X0*X1 ISOLATE DISK INDEX
  1869. SA2 A1+B1 WORD 3 OF TLD
  1870. LX3 30
  1871. LX2 59-54 LEFT JUSTIFY DELETE FLAG
  1872. SX4 B1 SET REQUEST BIT
  1873. LX4 29
  1874. SX6 3RZZZ
  1875. NG X2,SAT8 IF DELETE TASK
  1876. BX6 X4+X3 ADD DISK INDEX
  1877. SA6 SF+6 PUT IN FET
  1878. SA2 SF+1
  1879. SX6 X2
  1880. SA6 A2+B1 FET+2
  1881. SA6 A6+B1 FET+3
  1882. SA2 P+6
  1883. BX6 X0*X2 ISOLATE NEW INDEX
  1884. BX3 -X0*X1 CLEAR OUT OLD ONE
  1885. BX6 X6+X3
  1886. SA6 A5+
  1887. READ SF,R
  1888. SAT6 SX5 TBL
  1889. READW SF,TB,X5 READ TASK BINARY FROM SCRATCH
  1890. ZR X1,SAT7 IF NOT AT EOR
  1891. SX5 X1-TB
  1892. SAT7 WRITEW P,TB,X5 WRITE ON LIBRARY
  1893. SX5 X5-TBL
  1894. ZR X5,SAT6 IF RECORD COPY NOT COMPLETE
  1895. WRITER P,R
  1896. EQ SAT9 CONTINUE WITH NEXT TASK
  1897.  
  1898. * TASK IS DELETED PLACE DUMMY NAME IN TLD.
  1899.  
  1900. SAT8 LX6 -18
  1901. SA6 A1-B1 REPLACE TASK NAME
  1902. SA3 LATLD DECREMENT TASK LENGTH
  1903. SX6 X3-3
  1904. SA6 A3+
  1905. SAT9 SA5 A5+TLDLE NEXT ENTRY
  1906. SA1 LWTLD END OF DIRECTORY
  1907. SX2 A5
  1908. IX2 X1-X2
  1909. PL X2,SAT5 IF NOT END OF DIRECTORY
  1910. EQ SATX RETURN
  1911. SDR SPACE 4,15
  1912. ** SDR - SORT TASK LIBRARY DIRECTORY.
  1913. *
  1914. * ENTRY (TLD) = FWA OF TABLE.
  1915. * (LWTLD) = LWA OF TABLE.
  1916. *
  1917. * EXIT TASK DIRECTORY SORTED.
  1918. *
  1919. * USES A - 1.
  1920. * B - 2, 3, 6.
  1921. * X - 0, 1, 2.
  1922. *
  1923. * CALL SSR.
  1924.  
  1925.  
  1926. SDR SUBR ENTRY/EXIT
  1927. SB2 TLDLE LENGTH PER ENTRY
  1928. SA1 LWTLD LWA OF TABLE
  1929. SX2 TLD FWA OF TABLE
  1930. SB3 SDRA FWA OF TEMPORARY BUFFER
  1931. IX1 X1-X2 LENGTH OF TABLE
  1932. SB6 X2+
  1933. MX0 42 MASK TASK NAME
  1934. RJ SSR SHELL SORT RECORD
  1935. EQ SDRX RETURN
  1936.  
  1937. SDRA BSS TLDLE TEMPORARY BUFFER FOR TLD
  1938. SEH SPACE 4,15
  1939. ** SEH - SET ERROR HEADING.
  1940. *
  1941. *
  1942. * PLACE AN ERROR PAGE HEADING ON THE OUTPUT FILE.
  1943. *
  1944. * EXIT - ERROR HEADING WRITTEN ON OUTPUT FILE.
  1945. *
  1946. * USES A - 1, 6.
  1947. * X - 1, 2, 6.
  1948. *
  1949. * CALLS ALC.
  1950. *
  1951. * MACROS WRITEW.
  1952. *
  1953. * NOTE ONLY THE FIRST CALL WRITES THE ERROR HEADING.
  1954.  
  1955.  
  1956. SEH SUBR ENTRY/EXIT
  1957. SEHA BSS 0 MODIFIED BY *SEHB*
  1958. * EQ SEHX RETURN
  1959. WRITEW O,SEHC,SEHCL
  1960. SX2 5
  1961. RJ ALC ADVANCE LINE COUNT
  1962. SA1 SEHB WRITE HEADER ONLY ONCE
  1963. BX6 X1
  1964. SA6 SEHA
  1965. SEHB EQ SEHX RETURN
  1966.  
  1967. SEHC DATA C/0 *ERRORS*/
  1968. DATA C/0 TASK NAME - ERROR TYPE -/
  1969. DATA C* *
  1970. SEHCL EQU *-SEHC HEADER LENGTH
  1971. SKR SPACE 4,15
  1972. ** SKR - SKIP TO NEXT RECORD.
  1973. *
  1974. * ENTRY RECORD TO BE SKIPPED ON FILE *B*.
  1975. *
  1976. * EXIT RECORD SKIPPED.
  1977. *
  1978. * USES A - 1, 6.
  1979. * X - 1, 6.
  1980. *
  1981. * MACROS READ, SKIPEF.
  1982.  
  1983.  
  1984. SKR SUBR ENTRY/EXIT
  1985. RECALL B
  1986. SA1 B CHECK EOR
  1987. LX1 59-4
  1988. NG X1,SKR1 IF EOR ENCOUNTED
  1989. SKIPF B,,R ADVANCE TO NEXT RECORD
  1990. SKR1 SA1 X2+B1 SET FIRST = IN = OUT
  1991. SX6 X1
  1992. SA6 A1+B1
  1993. SA6 A6+B1
  1994. READ B INITIATE READ ON BINARY FILE
  1995. EQ SKRX RETURN
  1996. SSR SPACE 4,20
  1997. ** SSR - SHELL SORT RECORD.
  1998. *
  1999. * ENTRY (B2) = NUMBER OF ELEMENTS PER RECORD.
  2000. * (B3) = FWA OF TEMPORARY BUFFER.
  2001. * MUST BE .GE. (B2).
  2002. * (B6) = FWA OF FILE.
  2003. * (X1) = LENGTH OF FILE IN CM WORDS.
  2004. * (X0) = MASK OF KEY IN FIRST WORD OF RECORD.
  2005. *
  2006. * EXIT FILE SORTED.
  2007. * (X5) RESTORED.
  2008. *
  2009. * USES A - 3, 6, 7.
  2010. * B - 2, 4, 5, 7.
  2011. * X - 1, 2, 3, 4, 5, 6, 7.
  2012. *
  2013. * NOTE *SSR* DOES NOT PRESERVE THE ORDER FOR THE SAME KEY.
  2014. * THIS ROUTINE SHIFTS THE KEY 18 BITS TO THE RIGHT TO
  2015. * PREVENT NEGATIVE VALUES.
  2016.  
  2017.  
  2018. * BEGIN NEW PHASE.
  2019.  
  2020. SSR7 AX4 1 K = K/2
  2021. BX3 -X4
  2022. IX7 X2*X3 LOCATION OF KTH RECORD
  2023. SB4 X7
  2024. SB7 X2 NUMBER OF CM WORDS PER RECORD
  2025. SB2 B6+X7 I = FIRST+K
  2026. NZ X4,SSR4 IF K .NE. ONE
  2027. SA3 SSRA RESTORE (X5)
  2028. BX5 X3
  2029.  
  2030. SSR SUBR ENTRY/EXIT
  2031. SX2 B2 NUMBER OF ELEMENTS IN RECORD
  2032. MX4 12
  2033. BX3 X1 TOTAL CM WORDS IN FILE
  2034. IX3 X3/X2 NUMBER OF RECORD
  2035. SX2 B2
  2036. NX6,B4 X3
  2037. BX6 X5 SAVE (X5)
  2038. AX4 X4,B4
  2039. SX1 B6+X1 LWA OF FILE
  2040. SA6 SSRA
  2041. BX5 X5-X5
  2042. EQ SSR7 ENTER SORT LOOP
  2043.  
  2044. SSR1 PL X5,SSR3 IF NO SWAP
  2045.  
  2046. * MOVE RECORD FROM TEMPORARY BUFFER TO J.
  2047.  
  2048. SB7 X2 NUMBER OF CM WORDS TO MOVE
  2049. SB5 B5+B4
  2050. SSR2 SB7 B7-B1 DECREMENT INDEX
  2051. SA3 B3+B7
  2052. BX6 X3
  2053. SA6 B5+B7
  2054. NZ B7,SSR2 IF NOT END OF RECORD
  2055.  
  2056. * MOVE I TOWARD RIGHT.
  2057.  
  2058. SSR3 SB2 B2+X2 I = I+1
  2059. SX3 B2+
  2060. IX3 X3-X1
  2061. BX5 X5-X5
  2062. ZR X3,SSR7 IF END OF FILE
  2063.  
  2064. * SAVE RECORD I IN TEMPORARY BUFFER.
  2065.  
  2066. SB7 X2 NUMBER OF CM WORDS TO SAVE
  2067. SSR4 SB7 B7-B1
  2068. SA3 B2+B7
  2069. BX6 X3
  2070. SA6 B3+B7
  2071. NZ B7,SSR4 IF NOT END OF RECORD
  2072. SB5 B2-B4 J = I-K
  2073. BX7 X0*X3 MASKING KEY OF T(I)
  2074. LX7 42 SHIFT SO NO SIGN BIT
  2075. SSR5 SA3 B5+ P = T(J)
  2076. BX6 X0*X3 MASKING KEY OF P
  2077. LX6 42 SHIFT SO NO SIGN BIT
  2078. IX6 X7-X6
  2079. PL X6,SSR1 IF RECORD IN ORDER
  2080.  
  2081. * PUT RECORD J IN PLACE OF I.
  2082.  
  2083. SB7 X2 NUMBER OF CM WORDS TO MOVE
  2084. SX5 B5+B4
  2085. SSR6 SB7 B7-B1 DECREMENT INDEX
  2086. SA3 B5+B7
  2087. BX6 X3
  2088. SA6 X5+B7
  2089. NZ B7,SSR6 IF NOT END OF RECORD
  2090. MX5 1 SET FLAG INDICATE RECORD HAS BEEN REPLACED
  2091.  
  2092. * MOVE J TOWARD LEFT.
  2093.  
  2094. SB5 B5-B4 J = J-K
  2095. GE B5,B6,SSR5 IF IN BOUNDS
  2096. EQ SSR1 SELECT NEXT RECORD
  2097.  
  2098. SSRA CON 0 TEMPORARY STORAGE FOR (X5)
  2099. STD SPACE 4,20
  2100. ** STD - SEARCH TASK/TRANSACTION DIRECTORY.
  2101. *
  2102. * PERFORM A BINARY SEARCH OF A TASK OR TRANSACTION DIRECTORY
  2103. * FOR THE SPECIFIED TASK OR TRANSACTION NAME.
  2104. *
  2105. * ENTRY (X2) = LEFT JUSTIFIED TASK/TRANSACTION NAME.
  2106. * (B3) = LENGTH OF ENTRY.
  2107. * (B5) = START OF DIRECTORY.
  2108. * (B6) = END OF DIRECTORY.
  2109. *
  2110. * EXIT (A1) = FWA OF ENTRY IF FOUND.
  2111. * (X1) = 0 IF ENTRY FOUND.
  2112. * (X1) .NE. 0 IF ENTRY NOT IN DIRECTORY.
  2113. *
  2114. * USES A - 1, 3, 7.
  2115. * X - 0, 1, 3, 4, 7.
  2116. * B - 5, 6, 7.
  2117. *
  2118. * NOTE (X0) AND (B7) RESTORED UPON EXIT.
  2119.  
  2120.  
  2121. STD SUBR ENTRY/EXIT
  2122. SX7 B7
  2123. SA7 STDB SAVE (B7)
  2124. BX7 X0
  2125. SA7 STDC SAVE (X0)
  2126. BX0 X2
  2127. LX0 42 SHIFT SO NO SIGN BIT
  2128. SX7 B6 LWA OF BASE TLD
  2129. SA7 STDA
  2130. MX7 42 MASK FOR TASKS/TRANSACTIONS
  2131. EQ STD2 ENTER LOOP
  2132.  
  2133. STD1 SB5 A1+B3 SET NEW LOW LIMIT
  2134. STD2 SX3 B6-B5 FIND MIDDLE
  2135. SX4 B3
  2136. IX3 X3/X4
  2137. AX3 1
  2138. SX4 B3
  2139. IX3 X4*X3
  2140. SA1 B5+X3 READ AN ENTRY
  2141. BX4 X7*X1
  2142. LX4 42 SHIFT SO NO SIGN BIT
  2143. IX1 X4-X0
  2144. ZR X1,STD6 IF FOUND
  2145. ZR X3,STD4 IF END OF BASE DIRECTORY
  2146. NG X1,STD1 IF TOO LOW IN TABLE
  2147. SB6 A1+ SET NEW HIGH LIMIT
  2148. EQ STD2 FIND NEXT ENTRY
  2149.  
  2150. * ENTRIES ADDED ON A NONCREATION RUN ARE PLACED SEQUENTIALLY
  2151. * AT THE END OF THE TLD.
  2152.  
  2153. STD4 SA3 STDA LWA+1 OF BASE TLD
  2154. SB6 B3-TLDLE
  2155. NZ B6,STD6 IF TRANSACTION SEARCH
  2156. SB6 X3
  2157. SB5 B3 LENGTH OF TLD ENTRY
  2158. STD5 SA3 B6
  2159. SB6 B6+B5
  2160. ZR X3,STD6 IF END OF TLD
  2161. BX3 X7*X3
  2162. LX3 42 SHIFT SO NO SIGN BIT
  2163. IX3 X3-X0
  2164. NZ X3,STD5 IF TASK NAME DID NOT MATCH
  2165. SA1 A3
  2166. BX1 X1-X1
  2167.  
  2168. * MATCH FOUND.
  2169.  
  2170. STD6 SA3 STDB RESTORE (B7)
  2171. SB7 X3+
  2172. SA3 STDC RESTORE (X0)
  2173. BX0 X3
  2174. EQ STDX RETURN
  2175.  
  2176. STDA BSS 1 LWA+1 OF BASE TLD
  2177. STDB BSS 1 (B7)
  2178. STDC BSS 1 (X0)
  2179. STL SPACE 4,15
  2180. ** STL - SET TITLE LINE FOR OUTPUT PAGE.
  2181. *
  2182. * STL WRITES THE TITLE LINE ONTO THE OUTPUT FILE, AND ADJUSTS
  2183. * THE LINE COUNT ACCORDINGLY.
  2184. *
  2185. * ENTRY - JOBORG = 0 IF INTERACTIVE ORIGIN
  2186. *
  2187. * EXIT - TITLE LINE WRITTEN TO OUTPUT
  2188. *
  2189. * USES A - 1, 6, 7.
  2190. * X - 1, 3, 6, 7.
  2191. *
  2192. * MACROS WRITEW.
  2193.  
  2194.  
  2195. STL SUBR
  2196. SX3 STLAL
  2197. SA1 JOBORG
  2198. NZ X1,STL1 IF NOT INTERACTIVE ORIGIN
  2199. SA1 BLINE
  2200. BX6 X1
  2201. SA6 STLAT
  2202. SX3 STLAL-3
  2203. STL1 WRITEW O,STLA,X3
  2204. WRITEC O,BLINE
  2205. SX7 3
  2206. SA7 ALCA SET LINE COUNT
  2207. EQ STLX RETURN
  2208.  
  2209. STLA CON 10H1TASK LIBR
  2210. CON 10HARY EDITIN
  2211. CON 10HG PROGRAM.
  2212. STLAB CON 10H
  2213. STLAD CON 10H DATE
  2214. STLAT CON 10H TIME
  2215. STLAP CON 10H PAGE 1
  2216. BLINE CON 8L
  2217. CON 8L
  2218. STLAL EQU *-STLA
  2219. STN SPACE 4,20
  2220. ** STN - SEARCH TASK NAMES.
  2221. *
  2222. * DETERMINE IF EACH TASK, DEFINED IN EACH TRANSACTION ENTRY
  2223. * WITHIN THE DIRECTORY, EXISTS. IF NOT, THE TRANSACTION NAME
  2224. * IS ADDED TO A LIST TO BE PRINTED WITH THE NORMAL *LIBTASK*
  2225. * OUTPUT. IN ADDITION, ANY ENTRY HAVING ITS LOGICALLY-
  2226. * DELETED-BIT SET, WILL HAVE ITS NAME CHANGED TO ;;;. THIS
  2227. * WILL INSURE THAT AFTER THE TRD IS SORTED, THOSE TRANSACTIONS
  2228. * WILL BE PHYSICALLY DELETED FROM THE TRD.
  2229. *
  2230. * ENTRY (LATRD) = LWA OF TRD.
  2231. *
  2232. * EXIT (X5) = RESTORED.
  2233. *
  2234. * USES A - 1, 2, 5, 6.
  2235. * X - 1, 2, 5, 6.
  2236. * B - 2, 3, 5, 6, 7.
  2237. *
  2238. * CALLS STD.
  2239. *
  2240. * MACROS ADDWRD.
  2241.  
  2242.  
  2243. STN SUBR ENTRY/EXIT
  2244. BX6 X5
  2245. SA6 STNC SAVE (X5)
  2246. SB2 TRD-TRDLE1
  2247. SB3 TLDLE LENGTH OF TLD ENTRY
  2248. STN1 SX5 TRDLE1
  2249. SA1 LATRD LWA OF TRD
  2250. SB2 B2+X5
  2251. SB7 X1
  2252. GE B2,B7,STN4 IF ALL CHECKED
  2253. SA2 B2+ NEXT TRANSACTION ENTRY
  2254. BX6 X2
  2255. SA6 STNB SAVE TRANSACTION NAME
  2256. LX2 59-TDDLS
  2257. PL X2,STN2 IF NOT LOGICALLY DELETED
  2258. SA1 STNA
  2259. BX6 X1
  2260. SA6 A2 SET NAME TO ;;;
  2261. EQ STN1 NEXT ENTRY
  2262.  
  2263. STN2 SX5 X5-1
  2264. ZR X5,STN1 IF ALL TASKS CHECKED
  2265. SA2 A2+1 NEXT TASK NAME
  2266. SA1 LWOLD
  2267. SB5 TLD FWA OF TLD
  2268. SB6 X1+ LWA OF TLD
  2269. ZR X2,STN1 IF END OF LIST
  2270. RJ STD SEARCH TASK DIRECTORY
  2271. NZ X1,STN3 IF TASK NOT FOUND
  2272. SA1 A1+TLDLW
  2273. LX1 59-TLDLS
  2274. PL X1,STN2 IF TASK NOT LOGICALLY DELETED
  2275. STN3 SA1 STNB
  2276. ADDWRD TTNE,X1 ADD TRANSACTION NAME TO LIST
  2277. EQ STN1 NEXT ENTRY
  2278.  
  2279. STN4 SA5 STNC RESTORE (X5)
  2280. EQ STNX RETURN
  2281.  
  2282. STNA VFD 60/3L;;; NAME FOR DELETED TRANSACTIONS
  2283. STNB CON 0 TRANSACTION NAME
  2284. STNC CON 0 (X5)
  2285. STR SPACE 4,10
  2286. ** STR - SORT TRANSACTION DIRECTORY.
  2287. *
  2288. * ENTRY (TRD) = FWA OF TABLE.
  2289. * (LATRD) = LWA OF TABLE.
  2290. *
  2291. * USES X - 0, 1, 2.
  2292. * A - 1.
  2293. * B - 2, 3, 6.
  2294. *
  2295. * CALLS SSR.
  2296.  
  2297.  
  2298. STR SUBR ENTRY/EXIT
  2299. SB2 TRDLE1 LENGTH PER ENTRY
  2300. SA1 LATRD LWA OF TABLE
  2301. SX2 TRD FWA OF TABLE
  2302. SB3 STRA FWA OF TEMPORARY BUFFER
  2303. IX1 X1-X2 TABLE LENGTH
  2304. SB6 X2+
  2305. MX0 42 MASK FOR TRANSACTION NAME
  2306. RJ SSR SHELL SORT
  2307. EQ STRX RETURN
  2308.  
  2309. STRA BSSZ TRDLE1 TEMPORARY BUFFER FOR SORT
  2310. TOV SPACE 4,10
  2311. ** TOV - TABLE OVERLFOW PROCESSOR.
  2312. *
  2313. * THIS TAG IS REQUIRED BY THE MANAGED TABLE ROUTINES
  2314. * IN CASE OF TABLE ERRORS.
  2315. *
  2316.  
  2317.  
  2318. TOV MESSAGE TOVA
  2319. ABORT
  2320.  
  2321. TOVA DATA C* TABLE OVERFLOW - TOO MANY TASKS.*
  2322. MEML SPACE 4
  2323. * RESERVED SPACE FOR THE MANAGED TABLES.
  2324.  
  2325. RRECL EQU 50 INITIAL ALLOCATION FOR REPLACED RECORDS
  2326. IRECL EQU 350 INITIAL ALLOCATION FOR INSERTIONS
  2327. LRECL EQU 200 INITIAL ALLOCATION FOR TASK LIBRARY
  2328. DRTCL EQU 200 ESTIMATED ALLOCATION FOR DIRECTIVES
  2329. TTINL EQU 300 INITIAL ALLOCATION FOR INSERTIONS
  2330. TTCNL EQU 20 INITIAL ALLOCATION FOR CHANGES
  2331. TTNEL EQU 20 TRANSACTIONS WITH NONEXISTENT TASKS
  2332.  
  2333. * MANAGED TABLES SPACE SIZE.
  2334.  
  2335. TABLEN EQU RRECL+IRECL+LRECL+DRTCL+TTINL+TTCNL+TTNEL
  2336.  
  2337. MEML BSSZ TABLEN SPACE FOR MANAGED TABLES
  2338. TITLE COMMON DECKS.
  2339. *CALL COMCARG
  2340. *CALL COMCCDD
  2341. *CALL COMCCIO
  2342. *CALL COMCCOD
  2343. *CALL COMCCPM
  2344. *CALL COMCDXB
  2345. *CALL COMCLFM
  2346. *CALL COMCMTP
  2347. *CALL COMCMVE
  2348. *CALL COMCPFM
  2349. *CALL COMCRDS
  2350. *CALL COMCRDW
  2351. *CALL COMCSFN
  2352. *CALL COMCSNM
  2353. QUAL COMCSST
  2354. *CALL COMCSST
  2355. QUAL *
  2356. *CALL COMCSYS
  2357. *CALL COMCUPC
  2358. *CALL COMCUSB
  2359. *CALL COMCWTC
  2360. *CALL COMCWTS
  2361. *CALL COMCWTW
  2362. *CALL COMCZAP
  2363. TLD TITLE TASK AND TRANSACTION DIRECTORIES.
  2364. *** TASK LIBRARY DIRECTORY.
  2365. *
  2366. * DEFAULT VALUES FOR DIRECTORY ARE -
  2367. *
  2368. * BEGINNING PRIORITY = 20B.
  2369. * MAXIMUM PRIORITY = 40B.
  2370. * QUEUE LIMIT = 3B.
  2371. * TASK IS DISK RESIDENT.
  2372. * TASK CODE IS NONDESTRUCTIVE.
  2373. * TASK IS NOT A SYSTEM TASK.
  2374. * TASK IS ON.
  2375. * COMMUNICATION BLOCK IS DELIVERED TO THE TASK (UNSOLICITED).
  2376. * QUEUING IS NOT FORCED FOR ADDITIONAL ACTIVE COPIES.
  2377. SPACE 4,10
  2378. *** TRANSACTION DIRECTORY.
  2379. *
  2380. * DEFAULT VALUES FOR TRANSACTIONS ARE -
  2381. *
  2382. * DATA MANAGER USED = NONE.
  2383. * RECOVERABLE = NO.
  2384. SPACE 4,10
  2385. TSKDL EQU TLDLE*TLDMT+1 SIZE OF TASK DIRECTORY
  2386. TRNDL EQU TRDLE1*TRDMT+1 SIZE OF TRANSACTION UNIT DIRECTORY
  2387.  
  2388. TLDH VFD 12/7700B,12/3,36/0
  2389. VFD 60/0LTLD
  2390. TLDHD CON 10H
  2391. TLDHT CON 10H
  2392. TLD BSSZ TSKDL TASK LIBRARY DIRECTORY
  2393.  
  2394. TRDH VFD 12/7700B,12/3,36/0
  2395. VFD 60/0LTRD
  2396. CON 10H
  2397. CON 10H
  2398. TRD BSSZ TRNDL TRANSACTION UNIT DIRECTORY
  2399. PRS TITLE PRESET AND CRACK COMMAND.
  2400. ** PRS - PRESET ROUTINE.
  2401. *
  2402. * PRS CRACKS THE COMMAND AND SETS UP FOR THE MAIN PROGRAM.
  2403. * ERROR CHECKING IS PERFORMED ON COMMAND PARAMETERS AND
  2404. * INPUT DIRECTIVES. IF THE CR OPTION IS PRESENT, PRS CHECKS
  2405. * IF *TAF* IS UP. IF THE TT OPTION IS PRESENT, THE USERNUM IS
  2406. * SENT TO *TAF* FOR VALIDATION. THE TASK LIBRARY FILE IS
  2407. * ATTACHED IN MODIFY MODE IF THE DA OPTION IS NOT SPECIFIED.
  2408. * THE MAIN LOOP IS THEN INITIATED.
  2409. * NOTE THE FOLLOWING MEMORY IS USED FOR BUFFERS WHEN
  2410. * *PRS* TERMINATES.
  2411.  
  2412.  
  2413. PRS SUBR ENTRY/EXIT
  2414. SB1 1
  2415. SA1 LWPR
  2416. LX1 59-18
  2417. PL X1,PRS0 IF *LIBTASK* NOT LOADED FROM SYSTEM
  2418. SA1 SSJ=+UIDS RESTORE USER NAME AND USER INDEX
  2419. BX6 X1
  2420. SA6 PRSK+2
  2421. SETPFP PRSK
  2422. PRS0 GETJO JOBORG
  2423. SA1 JOBORG
  2424. SX6 X1-TXOT
  2425. SA6 A1+
  2426. SB5 ARGA
  2427. SA1 ACTR ARGUMENT COUNT OF COMMAND
  2428. SB4 X1
  2429. SA4 B1+B1 FIRST ARGUMENT
  2430. RJ ARG PROCESS COMMAND ARGUMENTS
  2431. ZR X1,PRS1 IF NO ARGUMENT ERRORS
  2432. MESSAGE PRSB INCORRECT COMMAND
  2433. ABORT
  2434.  
  2435. PRS1 SX7 TLD
  2436. SA7 LWTLD LAST WORD ADDRESS OF TLD
  2437. SX6 TSKDL
  2438. SA6 FSLT FREE SPACE LEFT IN TLD
  2439. SA7 LATLD
  2440. SA7 LWOLD
  2441. SX7 TRD PRESET LWA OF TRD
  2442. SA7 LWTRD
  2443. SA7 LATRD
  2444. SX7 TRNDL PRESET FREE SPACE IN TRD
  2445. SA7 FSTR
  2446. DATE STLAD DATE
  2447. CLOCK STLAT TIME
  2448. RJ STL SET TITLE PAGE OF OUTPUT
  2449. SX7 MEML+TABLEN
  2450. SA7 F.TEND
  2451. SX5 CMP DISPLAY CODE
  2452. LX5 48
  2453. SB7 B0
  2454. RJ DXB CONVERT DEFAULT MAXIMUM PRIORITY
  2455. SA6 LIBB SAVE TEMPORARILY
  2456. SA6 LIBA
  2457. SX5 CBP DISPLAY CODE
  2458. LX5 48
  2459. RJ DXB CONVERT DEFAULT BEGINNING PRIORITY
  2460. LX6 TLBPS-TLBPN+1
  2461. SA1 LIBB+1
  2462. BX6 X1+X6
  2463. SA6 LIBB+1 SAVE AS DEFAULT
  2464. SA6 LIBA+1 SAVE AS CURRENT
  2465. SX5 CQL DISPLAY CODE
  2466. LX5 48
  2467. RJ DXB CONVERT DEFAULT QUEUE LIMIT
  2468. SA1 LIBB+1
  2469. BX7 X6+X1
  2470. SA7 A1 SAVE AS DEFAULT
  2471. SA7 LIBA+1 SAVE AS CURRENT
  2472. RJ ERC CHECK POSSIBLE ERRORS
  2473. SB4 TLD
  2474. SA1 LWTLD
  2475. SB5 X1+
  2476.  
  2477. * GET NAMES OF PROGRAMS ON LIBRARY FILE.
  2478.  
  2479. PRS2 EQ B4,B5,PRS3 IF DONE GATHERING TASK NAMES
  2480. SA1 B4
  2481. BX1 X1*X5
  2482. ADDWRD LREC,X1
  2483. SB4 B4+TLDLE
  2484. EQ PRS2 GET NEXT TASK NAME
  2485.  
  2486. PRS3 SA1 Z
  2487. ZR X1,PRS4 IF *Z* ARGUMENT NOT SELECTED
  2488. SX2 I SET INPUT FET ADDRESS
  2489. RJ ZAP PROCESS *Z* ARGUMENT
  2490. EQ PRS5 PROCESS DIRECTIVES
  2491.  
  2492. PRS4 SA1 I
  2493. ZR X1,PRS7 IF NO INPUT DIRECTIVES
  2494. READ I INPUT FILE
  2495. PRS5 RJ INP PROCESS INPUT FILE
  2496. PRS7 SA2 CR
  2497. NZ X2,PRSX IF CREATING A NEW LIBRARY
  2498. SKIPEI P,R SKIP TO END OF INFORMATION
  2499. SA1 TT
  2500. ZR X1,PRSX IF NOT *TT* OPTION
  2501. SA1 SSJ=+AACS CHECK ACCESS WORD BIT *CSTP*
  2502. LX1 59-9
  2503. NG X1,PRS7.1 IF USER VALIDATED TO UPDATE LIBRARY ONLINE
  2504. MESSAGE PRSJ USER NOT VALIDATED FOR ONLINE UPDATE
  2505. ABORT
  2506.  
  2507. * THE USER NAME OF THIS JOB IS SENT TO *TAF* FOR VALIDATION
  2508. * PURPOSES.
  2509.  
  2510. PRS7.1 USERNUM PRSA GET USER NAME
  2511. SA1 PRSA
  2512. MX6 42
  2513. BX6 X6*X1 SET INTO *TAF* TRANSMISSION WORD
  2514. SA6 LIBI+1
  2515. NZ X6,PRS8 IF USER NAME NONZERO
  2516. MESSAGE PRSF * USER NAME REQUIRED FOR *TT* OPTION.*
  2517. ABORT
  2518.  
  2519. PRS8 MX0 42
  2520. SA1 P SET TASK LIBRARY NAME INTO *SIC* BLOCK
  2521. BX6 X0*X1
  2522. SA6 A6+B1
  2523. EQ PRSX RETURN
  2524.  
  2525. * COMMAND ARGUMENT TABLES.
  2526.  
  2527. ARGA BSS 0
  2528. B ARG ARGB,B
  2529. L ARG O,O
  2530. P ARG ARGB+1,P
  2531. CR ARG -ARGB-2,CR
  2532. I ARG ARGB+3,I
  2533. TT ARG -ARGB-4,TT
  2534. PR ARG -ARGB-5,PR
  2535. N ARG ARGB+6,SF
  2536. DA ARG -ARGB-7,DA
  2537. Z ARG -ARGB-8,Z
  2538. LO ARG ARGB+9,LO
  2539. TN ARG ARGB+10,XTN
  2540. ARG
  2541.  
  2542.  
  2543. ARGB CON 0LLGO+3
  2544. CON 0LTASKLIB+3
  2545. CON 1
  2546. CON 0LCOMPILE+3
  2547. CON 1
  2548. CON 1
  2549. CON 0LTASKLIB+3
  2550. CON 1
  2551. CON 1
  2552. CON 0LA
  2553. CON 0
  2554.  
  2555. PRSA CON 0 USER NAME
  2556. PRSB DATA C* LIBTASK COMMAND ARGUMENT ERRORS.*
  2557. PRSC DATA C* TASK LIBRARY DIRECTORY TOO LONG.*
  2558. PRSD DATA C* TASK LIBRARY DIRECTORY EMPTY.*
  2559. PRSE DATA C* TASK LIBRARY DIRECTORY ERROR.*
  2560. PRSF DATA C* TT OPTION REQUIRES USER NAME.*
  2561. PRSG DATA C* TRANSACTION DIRECTORY EMPTY.*
  2562. PRSH DATA C* TRANSACTION DIRECTORY TOO LONG.*
  2563. PRSI DATA C* TRANSACTION DIRECTORY ERROR.*
  2564. PRSJ DATA C* USER NOT VALIDATED FOR ONLINE LIBRARY UPDATES.*
  2565.  
  2566. * *SETPFP* PARAMETER BLOCK.
  2567.  
  2568. PRSK VFD 56/0,4/3
  2569. BSSZ 2
  2570. ATP SPACE 4,15
  2571. ** ATP - ATTACH LIBRARY FILE.
  2572. *
  2573. * RETURN THE LIBRARY FILE, READ THE REAL-TIME CLOCK, AND
  2574. * TRY TO ATTACH THE FILE IN *MODIFY* MODE.
  2575. *
  2576. * ENTRY (X5) = FET ADDRESS.
  2577. *
  2578. * EXIT FILE ATTACHED.
  2579. *
  2580. * USES A - 1, 3, 7.
  2581. * X - 1, 3, 4, 7.
  2582. *
  2583. * CALLS ATT.
  2584. *
  2585. * MACROS ATTACH, RECALL, RETURN, RTIME.
  2586.  
  2587.  
  2588. ATP SUBR ENTRY/EXIT
  2589. RETURN X5,R RETURN FILE IF PRESENT
  2590. RTIME ATTA READ CLOCK
  2591. RECALL X5
  2592. SA3 X5+10
  2593. MX4 -18
  2594. BX3 X4*X3
  2595. SX4 ARGB PHONY ADDRESS FOR ERROR MESSAGES
  2596. BX7 X3+X4
  2597. SA7 A3 SUPPRESS ERROR MESSAGES FROM *PFM*
  2598. ATP1 ATTACH X5,,,,W,,,,NF ATTACH IN *WRITE* MODE FIRST
  2599. SX7 B1
  2600. SA7 AT INDICATE ATTACHED IN *WRITE* MODE
  2601. RJ ATT
  2602. ZR X2,ATPX IF ATTACH SUCCESSFUL
  2603. SA1 ERCJ
  2604. NZ X1,ATP1 IF MUST ATTACH IN *WRITE* MODE
  2605. ATP2 ATTACH X5,,,,M,,,,NF ATTACH IN *MODIFY* MODE
  2606. BX7 X7-X7
  2607. SA7 AT INDICATE ATTACHED IN *MODIFY* MODE
  2608. RJ ATT CHECK ATTACH STATUS
  2609. ZR X2,ATP IF ATTACH SUCCESSFUL
  2610. EQ ATP2 TRY AGAIN
  2611.  
  2612. ATT SPACE 4,20
  2613. ** ATT - ATTACH CHECKING PROCEDURES.
  2614. *
  2615. * CHECK FOR A SUCCESSFUL OR UNSUCCESSFUL ATTACH.
  2616. *
  2617. * ENTRY ATTACH REQUEST HAS BEEN ISSUED.
  2618. * (ATTA) = START TIME OF REQUEST.
  2619. * (X5) = FET ADDRESS.
  2620. *
  2621. * EXIT (X2) = 0 IF ATTACH SUCCESSFUL.
  2622. * (X2) .NE. 0 IF NEED TO TRY ATTACH AGAIN.
  2623. * ABORT IF FILE TIMES OUT.
  2624. * ABORT IF ATTACH ERROR.
  2625. *
  2626. * USES A - 1, 2.
  2627. * X - 1, 2, 3, 4, 6, 7.
  2628. *
  2629. * MACROS ABORT, MESSAGE, RECALL, RTIME.
  2630.  
  2631.  
  2632. ATT SUBR ENTRY/EXIT
  2633. SA1 X5
  2634. MX2 -4
  2635. LX1 -10
  2636. BX2 -X2*X1 STATUS OF ATTACH
  2637. ZR X2,ATTX IF FILE ATTACHED
  2638. SX3 X2-1
  2639. NZ X3,ATT1 IF FILE NOT BUSY
  2640. RECALL
  2641. RTIME ATTB READ CLOCK
  2642. SA1 ATTA START TIME
  2643. SA2 ATTB CURRENT TIME
  2644. SX4 ATTC LOOP TIME
  2645. MX3 -36
  2646. BX1 -X3*X1
  2647. BX2 -X3*X2
  2648. IX6 X2-X1 TIME IN LOOP
  2649. IX7 X6-X4
  2650. NG X7,ATTX IF TIME ELAPSED, TRY AGAIN
  2651. MESSAGE ATTD,3
  2652. ABORT TIMED OUT
  2653.  
  2654. ATT1 MESSAGE ATTE
  2655. ABORT
  2656.  
  2657. ATTA BSS 1 START TIME OF REQUEST
  2658. ATTB BSS 1 CURRENT TIME
  2659. ATTC EQU 10000 TIME OUT ON ATTACH ATTEMPT
  2660. ATTD DATA C* LIBRARY FILE TIME OUT.*
  2661. ATTE DATA C* LIBTASK - PFM ERROR DETECTED.*
  2662. ERC SPACE 4,20
  2663. ** ERC - ERROR CHECKING.
  2664. *
  2665. * 1. IF TASKLIB STARTS WITH THE LETTER Z ,
  2666. * PRINT OUT ERROR MESSAGE ON DAYFILE AND OUTPUT
  2667. * FILE THEN ABORT.
  2668. * 2. IF *DA* IS SPECIFIED AND FILE IS NOT A DIRECT ACCESS
  2669. * FILE, ABORT.
  2670. * 3. IF *DA* IS SPECIFIED GO TO STEP 5.
  2671. * 4. ATTACH FILES SPECIFIED BY *N* AND *P* PARAMETERS,
  2672. * IF ATTACH FAILS ABORT.
  2673. * 5. IF INCORRECT COMBINATION OF COMMAND PARAMETERS,
  2674. * PRINT OUT ERROR MESSAGE ON DAYFILE AND OUTPUT THEN ABORT.
  2675. * 6. RETURN TO CALLER.
  2676. *
  2677. * ENTRY COMMAND PARAMETERS UNPACKED.
  2678. *
  2679. * EXIT IF ERROR ON COMMAND PARAMETERS ABORT.
  2680. * (P) = 0 IF *CR* SPECIFIED.
  2681. *
  2682. * USES A - 1, 2, 3, 5, 6, 7.
  2683. * B - 4, 5.
  2684. * X - ALL.
  2685. *
  2686. * CALLS ATP.
  2687. *
  2688. * MACROS ABORT, MESSAGE, READ, READW, REWIND, SKIPB, SKIPEI,
  2689. * STATUS, WRITER, WRITEW.
  2690.  
  2691.  
  2692. ERC SUBR ENTRY/EXIT
  2693. SX6 B0+
  2694. SA6 PN ASSUME *P* AND *N* ARE IDENTICAL
  2695. SA6 AT ASSUME FILE NOT ATTACHED BY *TAF*
  2696. SA1 N
  2697. MX0 6
  2698. SX4 1RZ INCORRECT TASK LIBRARY FILE NAME
  2699. LX4 -6
  2700. BX2 X0*X1
  2701. BX7 X2-X4
  2702. SA2 ERCG
  2703. ZR X7,ERC1.1 IF *N* STARTS WITH THE LETTER Z
  2704. SX7 B1
  2705. IX3 X1-X2
  2706. ZR X3,ERC1 IF *P* AND *N* ARE IDENTICAL
  2707. SA2 P
  2708. BX0 X0*X2
  2709. BX4 X0-X4
  2710. ZR X4,ERC1.1 IF *P* STARTS WITH THE LETTER Z
  2711. IX3 X1-X2
  2712. ZR X3,ERC1 IF *P* AND *N* ARE IDENTICAL
  2713. SA2 DA
  2714. SA7 PN *P* AND *N* ARE NOT IDENTICAL
  2715. NZ X2,ERC3 IF *DA* SPECIFIED
  2716. SX7 B1
  2717. SA7 ERCJ ATTACH *N* FILE IN *WRITE* MODE
  2718. SX5 N
  2719. RJ ATP ATTACH *N* FILE
  2720. SA1 P
  2721. ZR X1,ERC4 IF *P* = 0
  2722. SX7 B0+
  2723. SX5 P
  2724. SA7 ERCJ
  2725. RJ ATP ATTACH *P* FILE
  2726. EQ ERC4 CONTINUE PROCESS
  2727.  
  2728. * PROCESS *N* PARAMETER OMITTED.
  2729.  
  2730. ERC1 SA1 P
  2731. NZ X1,ERC2 IF *P* NOT EQUAL TO ZERO
  2732. MESSAGE ERCF CONFLICTING *LIBTASK* OPTION
  2733. WRITEW O,ERCF,ERCFL
  2734. ABORT
  2735.  
  2736. ERC1.1 MESSAGE ERCO
  2737. WRITEW O,ERCO,ERCOL
  2738. ABORT
  2739.  
  2740. ERC2 SX5 P
  2741. SA2 DA
  2742. NZ X2,ERC3 IF *DA* SPECIFIED
  2743. SA1 CR
  2744. SA2 PR
  2745. BX7 X1+X2
  2746. SA7 ERCJ SAVE ATTACH MODE
  2747. RJ ATP ATTACH P FILE
  2748. EQ ERC4 CHECK PARAMETERS
  2749.  
  2750. * PROCESS *DA* PARAMETER.
  2751.  
  2752. ERC3 ZR X3,ERC3.1 IF P AND N ARE IDENTICAL
  2753. STATUS N,P
  2754. SX2 PMFT DIRECT ACCESS CODE
  2755. SA1 N+5 FNT ENTRY
  2756. MX0 -6
  2757. AX1 6
  2758. BX1 -X0*X1 FILE TYPE
  2759. IX2 X2-X1
  2760. SX6 B0
  2761. SA6 N+5 RESTORE FET+5
  2762. SA6 A6+B1 RESTORE FET+6
  2763. ZR X2,ERC3.1 IF DIRECT ACCESS FILE
  2764. SA5 N
  2765. MX0 42
  2766. BX6 X0*X5
  2767. SA6 LIBK+2
  2768. MESSAGE LIBK * FILE NOT ATTACHED - FILNAME*
  2769. ABORT
  2770.  
  2771. ERC3.1 SA1 P
  2772. ZR X1,ERC4 IF P=0
  2773. STATUS P,P
  2774. SX2 PMFT DIRECT ACCESS CODE
  2775. SA1 P+5 FNT ENTRY
  2776. MX0 -6
  2777. AX1 6
  2778. BX1 -X0*X1 FILE TYPE
  2779. IX2 X2-X1
  2780. SX6 B0
  2781. SA6 P+5 RESTORE FET+5
  2782. SA6 A6+B1 RESTORE FET+6
  2783. ZR X2,ERC4 IF DIRECT ACCESS FILE
  2784. SA5 P *P* FILE NAME
  2785. MX0 42
  2786. BX6 X0*X5
  2787. SA6 LIBK+2
  2788. MESSAGE LIBK * FILE NOT ATTACHED - FILNAME*
  2789. ABORT
  2790.  
  2791. * CHECK INCORRECT COMBINATION OF PARAMETERS.
  2792.  
  2793. ERC4 SX4 B0+
  2794. SA1 XTN
  2795. ZR X1,ERC4.1 IF NO *TN*
  2796. SX4 X4+1
  2797. ERC4.1 SA1 LO
  2798. SX2 B0+
  2799. ZR X1,ERC4.2 IF NO *LO*
  2800. SX3 1RA
  2801. SX2 2
  2802. LX1 6
  2803. IX3 X1-X3
  2804. ZR X3,ERC4.2 IF ALL TASKS TO BE REPORTED
  2805. SX3 1RT
  2806. IX2 X2+X2
  2807. IX3 X1-X3
  2808. ZR X3,ERC4.2 IF REPORT ONLY TASK NAMED
  2809. SX2 6
  2810. SX3 1RX
  2811. IX3 X1-X3
  2812. ZR X3,ERC4.2 IF REPORT ONY TRANSACTION NAMED
  2813. SA2 ERCN *LO*, *LO=A*, *LO=T* OR *LO=X*
  2814. SX4 X2 MESSAGE ADDRESS
  2815. LX2 -18
  2816. SX2 X2+ LENGTH OF MESSAGE
  2817. EQ ERC8.1 PRINT OUT ERROR MESSAGE
  2818.  
  2819. ERC4.2 IX4 X4+X2
  2820. SA2 X4+TERCA ERROR FLAG
  2821. SX4 X2 MESSAGE ADDRESS
  2822. ZR X4,ERC4.3 IF NO ERROR
  2823. LX2 -18
  2824. SX2 X2 LENGTH OF MESSAGE
  2825. EQ ERC8.1 PRINT OUT ERROR MESSAGE
  2826.  
  2827. ERC4.3 SX4 B0+
  2828. SA1 CR
  2829. ZR X1,ERC5 IF NOT *CR*
  2830. SX1 B1+
  2831. ERC5 BX4 X4+X1 ADD *CR* FLAG
  2832. SA2 PR
  2833. ZR X2,ERC6 IF NOT *PR*
  2834. SX2 2
  2835. ERC6 BX4 X4+X2 ADD *PR* FLAG
  2836. SA1 TT
  2837. ZR X1,ERC7 IF NOT *TT*
  2838. SX1 4
  2839. ERC7 SA3 PN
  2840. SA5 P
  2841. BX4 X4+X1
  2842. BX6 X5 SAVE FILE NAME
  2843. ZR X3,ERC8 IF *P* IDENTICAL TO *N*
  2844. SX3 8
  2845. SA5 N
  2846. ERC8 BX4 X4+X3 ADD *PN* FLAG
  2847. SA2 X4+TERC ERROR FLAG
  2848. SX4 X2 MESSAGE ADDRESS
  2849. ZR X4,ERC9 IF NO ERROR
  2850. LX2 -18
  2851. SX2 X2 LENGTH OF MESSAGE
  2852. ERC8.1 WRITEW O,X4,X2 PRINT OUT ERROR MESSAGE
  2853. WRITER O
  2854. LX4 30
  2855. BX6 X4
  2856. SA6 ERCA DAYFILE MESSAGE ADDRESS
  2857. MESSAGE ERCA
  2858. ABORT
  2859.  
  2860. * SET UP OLD DIRECTORY FOR PROCESSING.
  2861.  
  2862. ERC9 SA1 CR
  2863. SA2 P
  2864. MX0 42 MASK FILE NAME
  2865. BX7 X0*X5
  2866. SA7 LIBC+4 DISPLAY FILE NAME
  2867. SA7 LIBD+4
  2868. BX7 X0*X6
  2869. SA7 LIBE+4
  2870. NZ X1,ERCX IF CREATION RUN
  2871. ZR X2,ERCX IF *P* IS EQUAL TO ZERO
  2872. REWIND P
  2873. SKIPEI P,R
  2874. SKIPB P,2,R POSITION AT DIRECTORY
  2875. READ P
  2876. READW P,TLDH,TSKDL+4 DIRECTORY + HEADER
  2877. NZ X1,ERC10 IF DIRECTORY NOT TOO LONG
  2878. MESSAGE PRSC
  2879. ABORT INCORRECT DIRECTORY FORMAT
  2880.  
  2881. ERC10 PL X1,ERC11 IF DATA ON DIRECTORY
  2882. MESSAGE PRSD DIRECTORY EMPTY
  2883. ABORT
  2884.  
  2885. ERC11 SX7 X1+
  2886. SX2 X1-TLD NUMBER OF WORDS IN TLD
  2887. SA7 LWTLD LWA OF TLD
  2888. SB4 TLD
  2889. SB5 X7
  2890. MX5 42
  2891. SA1 TLDH+1 CHECK FOR NAME
  2892. MX4 18
  2893. BX6 -X2
  2894. SX6 X6+TSKDL
  2895. SA6 FSLT UNUSED SPACE LEFT IN TLD
  2896. SA2 ERCI
  2897. BX4 X4*X1
  2898. MX7 -18
  2899. IX3 X4-X2
  2900. LX1 -18
  2901. BX7 -X7*X1 LWA OF BASE TLD
  2902. SX7 X7+TLD
  2903. SA7 LWOLD
  2904. ZR X3,ERC12 IF NAME WAS *TLD*
  2905. MESSAGE PRSE * TASK LIBRARY DIRECTORY ERROR.*
  2906. ABORT BAD LIBRARY FILE
  2907.  
  2908. ERC12 SA1 TLDH
  2909. MX0 30
  2910. BX6 -X0*X1 EXTRACT PRU ADDRESS OF TRD
  2911. ZR X6,ERCX IF NO TRD
  2912. SA6 P+6 STORE IN FET
  2913. READ P
  2914. READW P,TRDH,TRNDL+4 DIRECTORY + HEADER
  2915. NZ X1,ERC13 IF DIRECTORY NOT TOO LONG
  2916. MESSAGE PRSH DIRECTORY TOO LONG
  2917. ABORT
  2918.  
  2919. ERC13 PL X1,ERC14 IF DATA IN DIRECTORY
  2920. MESSAGE PRSG DIRECTORY EMPTY
  2921. ABORT
  2922.  
  2923. ERC14 SX7 X1
  2924. SX2 X1-TRD WORDS IN TRD
  2925. SA7 LWTRD
  2926. SA7 LATRD
  2927. SA1 TRDH+1 CHECK FOR NAME
  2928. MX4 18
  2929. BX6 -X2
  2930. SX6 X6+TRNDL
  2931. SA6 FSTR UNUSED SPACE LEFT IN TRD
  2932. SA2 ERCK
  2933. BX4 X4*X1
  2934. BX4 X4-X2
  2935. SX6 B1+
  2936. SA6 TRDE FLAG *TRD* EXISTS
  2937. ZR X4,ERCX IF NAME WAS *TRD*
  2938. MESSAGE PRSI DIRECTORY ERROR
  2939. ABORT
  2940.  
  2941. ERCA CON 0
  2942. ERCB DATA C* CONFLICTING LIBTASK OPTIONS - CR, PR.*
  2943. ERCBL EQU *-ERCB
  2944. ERCC DATA C* CONFLICTING LIBTASK OPTIONS - CR, TT.*
  2945. ERCCL EQU *-ERCC
  2946. ERCD DATA C* CONFLICTING LIBTASK OPTIONS - PR, TT.*
  2947. ERCDL EQU *-ERCD
  2948. ERCE DATA C* INCORRECT PR OR CR WHEN FILE ATTACHED BY TAF.*
  2949. ERCF DATA C* CONFLICTING LIBTASK OPTIONS - P=0, -N.*
  2950. ERCFL EQU *-ERCF
  2951. ERCG VFD 60/0LSCRATCH+3 DUMMY FILE TO CHECK IF N OMITTED
  2952. ERCH DATA C* CONFLICTING LIBTASK OPTIONS - TT, N.*
  2953. ERCHL EQU *-ERCH
  2954. ERCI VFD 60/3LTLD HEADER WORD FOR TLD
  2955. ERCJ BSSZ 1 ATTACH FLAG, IF SET ATTACH IN *WRITE* MODE
  2956. ERCK VFD 60/0LTRD HEADER WORD FOR TRD
  2957. ERCL DATA C* TN REQUIRES EITHER LO=T OR LO=X.*
  2958. ERCLL EQU *-ERCL
  2959. ERCM DATA C* VALID LO OPTIONS ARE LO, LO=A, LO=T OR LO=X.*
  2960. ERCML EQU *-ERCM
  2961. ERCN VFD 30/0,12/ERCML,18/ERCM *LO*, *LO=A*, *LO=T* OR *LO=X*
  2962. ERCO DATA C* TASKLIB MUST NOT START WITH THE LETTER Z.*
  2963. ERCOL EQU *-ERCO
  2964.  
  2965. TERC BSS 0 TRUTH TABLE OF COMMAND PARAMETERS
  2966. VFD 60/0 ADD (B) TO (P)
  2967. VFD 60/0 CREATE P FROM B
  2968. VFD 60/0 DELETE INACTIVE TASKS IN P
  2969. VFD 30/0,12/ERCBL,18/ERCB *CR* AND *PR* AT SAME TIME
  2970. VFD 60/0 TAF IS NOT UP SO *TT* HAS NO EFFECT
  2971. VFD 30/0,12/ERCCL,18/ERCC *CR* AND *TT* IN COMMAND
  2972. VFD 30/0,12/ERCDL,18/ERCD *PR* AND *TT* IN COMMAND
  2973. VFD 30/0,12/ERCBL,18/ERCB *CR* AND *PR* AT SAME TIME
  2974. VFD 60/0, COPY (P) TO N AND ADD (B)
  2975. VFD 60/0 CREATE N FROM (P) AND (B)
  2976. VFD 60/0 CREATE N FROM (P) AND (B)
  2977. VFD 30/0,12/ERCBL,18/ERCB *CR* AND *PR* AT SAME TIME
  2978. VFD 30/0,12/ERCHL,18/ERCH *TT* WITH N SPECIFIED
  2979. VFD 30/0,12/ERCCL,18/ERCC *CR* AND *TT* IN COMMAND
  2980. VFD 30/0,12/ERCDL,18/ERCD *PR* AND *TT* IN COMMAND
  2981. VFD 30/0,12/ERCBL,18/ERCB *CR* AND *PR* AT SAME TIME
  2982. VFD 30/0,12/ERCCL,18/ERCC *CR* AND *TT* IN COMMAND
  2983. VFD 30/0,12/ERCDL,18/ERCD *PR* AND *TT* IN COMMAND
  2984. VFD 30/0,12/ERCCL,18/ERCC *CR* AND *TT* IN COMMAND
  2985. VFD 30/0,12/ERCDL,18/ERCD *PR* AND *TT* IN COMMAND
  2986.  
  2987. * ERROR MESSAGE TABLE FOR *LO* AND *TN* PARAMETERS.
  2988. TERCA BSS 0 TRUTH TABLE OF *LO* AND *TN* PARAMETERS
  2989. CON 0 NEITHER OPTION
  2990. VFD 30/0,12/ERCLL,18/ERCL *TN* REQUIRES *LO*=T OR *LO*=X
  2991. CON 0 *LO* WITH DEFAULT
  2992. VFD 30/0,12/ERCLL,18/ERCL *TN* REQUIRES *LO*=T OR *LO*=X
  2993. CON 0 *LO=T*
  2994. CON 0 *LO*=T AND *TN*
  2995. CON 0 *LO=X*
  2996. CON 0 *LO*=X AND *TN*
  2997. INP SPACE 4,25
  2998. ** INP - PROCESS INPUT DIRECTIVES.
  2999. *
  3000. * PROCESS THE INPUT DIRECTIVES, CHECKING FOR ERRORS AND
  3001. * SETTING UP MANAGED TABLES WITH THE DIRECTORY VALUES FOR EACH
  3002. * TASK. ONE ENTRY IS ESTABLISHED FOR EACH DIRECTIVE, THEREFORE
  3003. * ONLY ONE DIRECTIVE SHOULD BE USED FOR ANY TASK. SEVERAL
  3004. * PARAMETERS MAY BE INCLUDED IN ONE DIRECTIVE HOWEVER.
  3005. *
  3006. * ENTRY (JOBORG) = 0 IF INTERACTIVE INPUT.
  3007. *
  3008. * EXIT INPUT DIRECTIVES PROCESSED.
  3009. *
  3010. * USES A - ALL.
  3011. * X - ALL.
  3012. * B - 2, 3, 4, 5, 6.
  3013. *
  3014. * CALLS ALC, ARG, DXB, ERR, SFN, STD, UPC.
  3015. *
  3016. * MACROS ABORT, ADDWRD, MESSAGE, READS, WRITEC, WRITER,
  3017. * WRITES, WRITEW.
  3018.  
  3019.  
  3020. INP SUBR ENTRY/EXIT
  3021. SA1 O+1 OUTPUT FET
  3022. SX2 B1
  3023. LX2 36-0 POSITION FLUSH BIT
  3024. BX6 X2+X1
  3025. SA6 A1 SET FLUSH BIT
  3026. SA1 JOBORG
  3027. ZR X1,INP2 IF INTERACTIVE INPUT
  3028. WRITEW O,INPG,INPGL
  3029. SX2 2
  3030. RJ ALC ADVANCE LINE COUNT
  3031. EQ INP2 BYPASS FIRST WRITE
  3032.  
  3033. INP1 SA1 JOBORG
  3034. ZR X1,INP2 IF INTERACTIVE INPUT
  3035. WRITEW O,INPK,1
  3036. WRITES O,INPA,INPAL ECHO PRINT LINE TO OUTPUT FILE
  3037. SX2 B1+
  3038. RJ ALC ADVANCE LINE COUNT
  3039. INP2 READS I,INPA,INPAL READ A DIRECTIVE CARD
  3040. NZ X1,INP20 IF EOR/EOF ENCOUNTERED ON FILE
  3041. SA1 INPI
  3042. SX7 X1+B1 ADVANCE NUMBER OF DIRECTIVES PROCESSED
  3043. SA7 A1
  3044. SA1 INPA FIRST CHARACTER
  3045. SB2 7 MAXIMUM TASK NAME CHARACTER LENGTH
  3046. SB6 A1+B1 START OF BUFFER
  3047. BX6 X6-X6
  3048. SB7 INPA+INPAL END OF BUFFER
  3049. SX7 X1-1R*
  3050. SB5 60
  3051. SX0 55B HOLLERITH BLANK
  3052. SX5 45B FIRST NON ALPHANUMERIC CHARACTER
  3053. ZR X7,INP3 IF FIRST CHARACTER *
  3054. SX7 X1-1R/
  3055. NZ X7,INP19 IF FIRST CHARACTER NOT /
  3056. SX7 B1
  3057. SA7 INPQ FLAG TRANSACTION DIRECTIVE
  3058. INP3 EQ B6,B7,INP19 IF END OF COMMAND
  3059. SA1 B6
  3060. SB6 B6+B1
  3061. BX2 X1-X0
  3062. IX3 X1-X5
  3063. ZR X2,INP4 IF END OF TASK NAME
  3064. SX2 X0+B1
  3065. BX2 X1-X2
  3066. ZR X2,INP4 IF COMMA LEGAL SEPARATOR
  3067. PL X3,INP19 IF INCORRECT CHARACTER
  3068. LX6 6
  3069. BX6 X6+X1 ACCUMULATE CHARACTERS
  3070. SB5 B5-6
  3071. SB2 B2-B1
  3072. LT B2,INP19 IF .GT. 7 CHARACTERS IN NAME
  3073. EQ INP3 CHECK NEXT CHARACTER
  3074.  
  3075. INP4 ZR X6,INP19 IF NO TASK NAME
  3076. LX2 X6,B5
  3077. SX5 B5 SAVE (B5)
  3078. SX6 B6 SAVE (B6)
  3079. SA1 LWOLD LWA OF BASE TLD
  3080. SB6 X1
  3081. SB5 TLD START OF TLD
  3082. SB3 TLDLE TLD ENTRY LENGTH
  3083. SA3 INPQ
  3084. ZR X3,INP4.1 IF TASK DIRECTIVE
  3085. SA1 LATRD LWA OF TRD
  3086. SB6 X1
  3087. SB5 TRD
  3088. SB3 TRDLE1 TRD ENTRY LENGTH
  3089. BX7 X2
  3090. SA7 INPT SAVE TRANSACTION NAME
  3091. INP4.1 RJ STD CHECK IF IN DIRECTORY
  3092. SB5 X5 RESTORE (B5)
  3093. SB6 X6 RESTORE (B6)
  3094. SX0 55B
  3095. SB7 INPA+INPAL RESTORE (B7)
  3096. ZR X1,INP5 IF TASK/TRANSACTION FOUND
  3097. SA1 INPQ
  3098. NZ X1,INP6 IF TRANSACTION DIRECTIVE
  3099. ADDWRD DRTC,X2 ADD TASK NAME TO DIRECTIVE LIST
  3100. BX7 X7-X7
  3101. SA7 INPN CLEAR FLAG TO INDICATE NEW DIRECTIVE
  3102. EQ INP6 PROCESS DIRECTIVES
  3103.  
  3104. INP5 SX7 A1 ADDRESS OF TASK IN DIRECTORY
  3105. SA7 INPN
  3106. SA1 INPQ
  3107. NZ X1,INP6 IF TRANSACTION DIRECTIVE
  3108. ADDWRD TDCH,X2 DIRECTIVE CHANGED TABLE
  3109. INP6 EQ B6,B7,INP19 IF NO DIRECTIVES ON COMMAND
  3110. SA1 B6
  3111. SB6 B6+B1
  3112. BX2 X1-X0
  3113. ZR X2,INP6 IF SKIP ALL BLANKS
  3114. SX5 B6-B1 FIRST NON BLANK CHARACTER AFTER TASK NAME
  3115. SA1 INPC+1 FIRST
  3116. SX7 X1
  3117. SA7 A1+B1 REWIND FET
  3118. SX6 X7+8
  3119. SA7 A7+B1 OUT
  3120. SA6 A7+B1 LIMIT
  3121. SB7 B7-B6
  3122. WRITES INPC,X5,B7 PUT BACK INTO WORD FORMAT
  3123. BX6 X6-X6 ADD LINE TERMINATOR
  3124. SB4 60
  3125. SB7 B1+B1 UNPACK INTO LOW CORE
  3126. SA6 B3
  3127. SA1 B3-B1 LAST CM WORD OF DIRECTIVE
  3128. SX7 1R.
  3129. SB6 6
  3130. MX0 6
  3131. LX7 -6
  3132. INP7 BX3 X0*X1 MASK LEFT MOST CHARACTER
  3133. IX2 X7-X3
  3134. ZR X2,INP9 IF TERMINATOR
  3135. ZR X3,INP8 IF END OF LINE
  3136. LX1 X1,B6 LEFT SHIFT ONE CHARACTER
  3137. SB4 B4-B6
  3138. NZ B4,INP7 IF NOT AT WORD BOUNDARY
  3139. SA1 A1+B1 NEXT WORD
  3140. SB4 60
  3141. EQ INP7 TRY AGAIN
  3142.  
  3143. INP8 BX7 X7+X1 ADD TERMINATOR
  3144. LX7 X7,B4
  3145. SA7 A1+
  3146. INP9 SA5 INPCD FIRST WORD OF DIRECTIVES (DUMMY)
  3147. RJ UPC UNPACK DIRECTIVES
  3148. SB6 B6+B1
  3149. ZR X7,INP10 IF END OF LINE
  3150. SB6 B6-B1
  3151. NZ X6,INP19 IF ERROR IN DIRECTIVE FORMAT
  3152. INP10 SB4 B6-B1 ADJUST ARGUMENT COUNT
  3153. SA4 B7+B1 FIRST ARGUMENT ADDRESS
  3154. SX7 B4
  3155. SA7 INPR SAVE ARGUMENT COUNT
  3156. SA1 INPQ
  3157. SB5 INPE ARGUMENT TABLE
  3158. ZR X1,INP10.1 IF TASK DIRECTIVE
  3159. SB5 INPO ARGUMENT TABLE
  3160. INP10.1 RJ ARG PROCESS ARGUMENTS
  3161. NZ X1,INP19 IF ERROR IN DIRECTIVE ARGUMENTS
  3162. SA1 INPQ
  3163. NZ X1,INP22 IF TRANSACTION DIRECTIVE
  3164.  
  3165. * PROCESS DIRECTORY ARGUMENTS.
  3166.  
  3167. SA1 IG
  3168. SA2 INPN
  3169. ZR X1,INP12 IF NOT IGNORE
  3170. NZ X2,INP11 IF TASK IN DIRECTORY
  3171. MX2 1
  3172. ADDWRD DRTC,X2
  3173. BX2 X2-X2
  3174. ADDWRD DRTC,X2
  3175. SB2 B0
  3176. EQ INP18 PROCESS NEXT DIRECTIVE
  3177.  
  3178. INP11 MX2 1
  3179. ADDWRD TDCH,X2
  3180. BX2 X2-X2
  3181. ADDWRD TDCH,X2
  3182. SB2 B0
  3183. EQ INP18 PROCESS NEXT DIRECTIVE
  3184.  
  3185. * PROCESS OTHER DIRECTIVES.
  3186.  
  3187. INP12 SA5 BP
  3188. SB7 B0+ SET OCTAL CONVERSION
  3189. RJ DXB CONVERT BEGINNING PRIORITY TO OCTAL
  3190. NZ X4,INP19 IF ERROR IN CONVERSION
  3191. SA6 BP STORE NEW VALUE
  3192. SA5 MP
  3193. RJ DXB CONVERT MAXIMUM PRIORITY TO OCTAL
  3194. NZ X4,INP19 IF CONVERSION ERROR
  3195. SA6 MP STORE NEW VALUE
  3196. SA5 QL
  3197. RJ DXB CONVERT QUEUE LIMIT TO OCTAL
  3198. NZ X4,INP19 IF CONVERSION ERROR
  3199. SA6 QL STORE NEW VALUE
  3200. SA5 EF EXPANDABLE FL
  3201. RJ DXB CONVERT TO BINARY
  3202. SX6 X6
  3203. SX1 MAXEF+1
  3204. IX2 X6-X1
  3205. PL X2,INP19 IF MAXIMUM EXPANDABLE FL EXCEEDED
  3206. NG X6,INP19 IF NEGATIVE VALUE
  3207. NZ X4,INP19 IF CONVERSION ERROR
  3208. SA6 EF
  3209.  
  3210. * CHECK FOR PARAMETER VALUES OUT OF RANGE.
  3211.  
  3212. SA1 BP BEGINNING PRIORITY
  3213. SX2 X1-MXBP-1
  3214. SA3 MP MAXIMUM PRIORITY
  3215. SX4 X1-MNBP
  3216. PL X2,INP19 IF BEGINNING PRIORITY IS TOO HIGH
  3217. NG X4,INP19 IF BEGINNING PRIORITY IS TOO LOW
  3218. SX2 X3-MNMP
  3219. SX3 X3-MXMP-1
  3220. NG X2,INP19 IF MAXIMUM PRIORITY IS TOO LOW
  3221. SA1 QL QUEUE LIMIT
  3222. PL X3,INP19 IF MAXIMUM PRIORITY IS TOO HIGH
  3223. SX2 X1-MAXQL-1
  3224. SX4 X1-MINQL
  3225. PL X2,INP19 IF QUEUE LIMIT TOO HIGH
  3226. NG X4,INP19 IF QUEUE LIMIT TOO LOW
  3227. SA1 C
  3228. SA2 TT
  3229. ZR X2,INP12.1 IF *TT* OPTION NOT SPECIFIED
  3230. NZ X1,INP19 IF CORE RESIDENT UPDATE ATTEMPT WITH *TT*
  3231. SA1 INPN
  3232. ZR X1,INP13 IF TASK NOT IN DIRECTORY
  3233. SA1 X1+2 THIRD WORD OF TASK DIRECTORY ENTRY
  3234. LX1 59-57
  3235. NG X1,INP19 IF OLD COPY OF TASK IS CORE RESIDENT
  3236. EQ INP13 PROCESS NEXT TASK CHARACTERISTIC
  3237.  
  3238. INP12.1 ZR X1,INP13 IF NOT A CORE RESIDENT TASK
  3239. SA1 CRES
  3240. SX7 X1+1 BUMP CORE RESIDENT TASK COUNT
  3241. SA7 A1+
  3242. INP13 SA1 D
  3243. NZ X1,INP14 IF NOT A DESTRUCTIVE TASK
  3244. SX7 1
  3245. SA7 QL FORCE DESTRUCTIVE TASK QUEUE LIMIT TO 1
  3246. INP14 SA1 MP MAXIMUM PRIORITY
  3247. SA2 EF EXPANDABLE FIELD LENGTH
  3248. SX2 X2+77B ROUND TO MULTIPLE OF 100B
  3249. AX2 6
  3250. LX2 TLEFS-TLEFN+1
  3251. BX2 X2+X1
  3252. SA1 INPN
  3253. NZ X1,INP15 IF TASK IN DIRECTORY
  3254. ADDWRD DRTC,X2
  3255. EQ INP16 PROCESS NEW TASK
  3256.  
  3257. INP15 SA1 X1+B1 SECOND WORD OF TLD
  3258. MX7 TLDAN+TLFLN
  3259. BX7 X7*X1 DA AND FL
  3260. BX7 X7+X2 ADD *EF* AND *MP*
  3261. SA7 A1
  3262. ADDWRD TDCH,X7 SECOND WORD OF DIRECTORY
  3263. INP16 SA1 S SYSTEM TASK
  3264. SA2 D DESTRUCTIVE CODE
  3265. SA3 C CORE RESIDENCE
  3266. SA4 QL
  3267. BX1 X1+X2
  3268. SA2 OO ON/OFF
  3269. BX3 X2+X3
  3270. BX1 X1+X3
  3271. SA2 E EXTENDED MEMORY RESIDENCE
  3272. BX1 X2+X1
  3273. SA3 DL DELETE TASK
  3274. BX1 X1+X3
  3275. LX1 TLSTS-5
  3276. BX1 X1+X4
  3277. SA2 SC
  3278. BX1 X2+X1
  3279. SA3 R REDUCE FL FLAG
  3280. SA2 BP
  3281. LX3 TLRES-TLREN+1
  3282. LX2 TLBPS-TLBPN+1
  3283. BX1 X1+X3
  3284. BX1 X2+X1
  3285. SA2 Q QUEUING CONTROL INDICATOR
  3286. BX1 X1+X2
  3287. SB2 B0
  3288. SA2 INPN
  3289. NZ X2,INP17 IF TASK ALREADY IN DIRECTORY
  3290. ADDWRD DRTC,X1 ADD TO DIRECTIVE TABLE
  3291. EQ INP18 PROCESS NEXT DIRECTIVE
  3292.  
  3293. INP17 BX7 X1
  3294. SA7 X2+2 STORE IN EXISTING DIRECTORY ENTRY
  3295. ADDWRD TDCH,X7 THIRD WORD OF DIRECTORY
  3296. SA2 INPN
  3297. SA2 X2
  3298. ADDWRD TDRC,X2 DIRECTIVES CHANGED LIST
  3299.  
  3300. * RESET DEFAULT VALUES FOR NEXT TASK.
  3301.  
  3302. INP18 SX7 CBP RESET BEGINNING PRIORITY
  3303. SX6 CMP
  3304. LX7 48
  3305. SA7 BP BEGINNING TASK PRIORITY
  3306. LX6 48
  3307. SA6 MP MAXIMUM TASK PRIORITY
  3308. SX7 CQL
  3309. LX7 48
  3310. SA7 QL QUEUE LIMIT
  3311. SX6 CC*10B
  3312. SA6 C CORE RESIDENCE BIT
  3313. SX7 CD*20B
  3314. SA7 D REUSABLE CODE BIT
  3315. SX7 CS*40B
  3316. SA7 S SYSTEM TASK BIT
  3317. SX6 CO*02B
  3318. SA6 OO TASK ON/OFF BIT
  3319. SX7 CE*04B
  3320. SX6 CDL*01B DELETE TASK
  3321. SA6 DL
  3322. SA7 E EXTENDED MEMORY RESIDENCE BIT
  3323. SX7 B0+
  3324. SA7 SC
  3325. SX6 CRE DEFAULT REDUCE FL FLAG
  3326. SX7 EFL EXPANDABLE FIELD LENGTH
  3327. SA6 R
  3328. SA7 EF
  3329. SX6 CQ*MLQU QUEUING CONTROL BIT
  3330. SA6 Q
  3331. BX7 X7-X7
  3332. SB7 TDL-TSK1
  3333. SA7 TSK1
  3334. INP18.1 SA7 A7+B1 ZERO OUT DEFAULT VALUES
  3335. SB7 B7-B1
  3336. NE B7,INP18.1 IF MORE TO GO
  3337. SA7 INPN TRD ADDRESS
  3338. SA7 INPT TRANSACTION NAME
  3339. SA7 INPQ TRANSACTION DIRECTIVE FLAG
  3340. NE B2,INP2 IF BAD DIRECTIVE
  3341. EQ INP1 READ NEXT DIRECTIVE
  3342.  
  3343. * WRITE ERROR MESSAGES.
  3344.  
  3345. INP19 WRITEW O,INPJ,1 WRITE ERROR MESSAGE
  3346. WRITES O,INPA,INPAL
  3347. WRITEW O,INPH,INPHL INCORRECT DIRECTIVE
  3348. WRITEW O,BLINE,1
  3349. SX2 3
  3350. RJ ALC ADVANCE LINE COUNT
  3351. SA1 INPL
  3352. SX7 X1+B1 BUMP ERROR COUNT
  3353. SA7 A1
  3354. SB2 B1+ FLAG BAD
  3355. SA1 JOBORG
  3356. NZ X1,INP18 IF NOT INTERACTIVE
  3357. WRITER O FLUSH BUFFER
  3358. EQ INP18 RESET DEFAULT VALUES
  3359.  
  3360. INP20 SA1 INPI DIRECTIVE COUNT
  3361. SA2 INPL
  3362. NZ X2,INP21 IF ERRORS PRESENT
  3363. ZR X1,INP20.1 IF NO DIRECTIVES
  3364. WRITEW O,BLINE,1
  3365. SX2 1
  3366. RJ ALC ADVANCE LINE COUNT
  3367. EQ INPX RETURN
  3368.  
  3369. INP20.1 SA1 JOBORG
  3370. ZR X1,INPX IF INTERACTIVE INPUT
  3371.  
  3372. * WRITE *NONE* ON FILE.
  3373.  
  3374. WRITEW O,LRLA,LRLAL
  3375. SX2 B1+B1
  3376. RJ ALC ADVANCE LINE COUNT
  3377. EQ INPX RETURN
  3378.  
  3379. INP21 WRITEW O,INPM,INPML * INPUT DIRECTIVE ERRORS.*
  3380. WRITER O
  3381. MESSAGE INPB * DIRECTIVE ERRORS.*
  3382. ABORT
  3383.  
  3384. * PROCESS TRANSACTION DIRECTIVE.
  3385.  
  3386. INP22 SA1 TDL
  3387. SA2 INPN TRANSACTION ENTRY ADDRESS
  3388. SA4 INPT TRANSACTION UNIT NAME
  3389. SB2 B1 PRESET ERROR
  3390. ZR X1,INP24 IF NOT *DL*
  3391. SA1 INPR
  3392. SX1 X1-1
  3393. NZ X1,INP31 IF MORE PARAMETERS
  3394. NZ X2,INP23 IF TRANSACTION NAME EXISTS
  3395. BX1 X4
  3396. RJ SFN SPACE FILL NAME
  3397. LX6 42
  3398. SA6 INPS+4 STORE IN MESSAGE
  3399. SX2 B1
  3400. RJ ALC ADVANCE LINE COUNT
  3401. WRITEC O,INPS ISSUE WARNING
  3402. SB2 B0 SET NO ERROR
  3403. EQ INP31 NEXT DIRECTIVE
  3404.  
  3405. INP23 SA1 X2
  3406. SX2 B1
  3407. LX2 TDDLS LOGICALLY DELETED BIT
  3408. BX6 X1+X2
  3409. SA6 A1
  3410. SA1 LWTRD
  3411. SX6 X1-TRDLE1 DECREASE DIRECTORY LENGTH
  3412. SA6 A1
  3413. ADDWRD TTCN,X4 TRANSACTION CHANGED
  3414. SB2 B0 SET NO ERROR
  3415. EQ INP31 NEXT DIRECTIVE
  3416.  
  3417. INP24 NZ X2,INP25 IF TRANSACTION NAME EXISTS
  3418. SA2 LATRD
  3419. SX6 X2+TRDLE1
  3420. SA0 X2 NEXT FREE WORD IN TRD
  3421. SA6 A2 UPDATE LWA OF TRD
  3422. SA1 LWTRD UPDATE LWA OF TRD
  3423. SX6 X1+TRDLE1
  3424. SA6 LWTRD
  3425. SA1 FSTR
  3426. SX7 X1-TRDLE1
  3427. SA7 A1+ FREE SPACE IN TRD
  3428. SX6 6
  3429. PL X7,INP26 IF TRD NOT FULL
  3430. SA1 LWTRD DECREMENT LWA OF TRD
  3431. SX7 X1-TRDLE1
  3432. SA7 LWTRD
  3433. SA1 LATRD DECREMENT LWA OF TRD BEFORE SORT
  3434. SX7 X1-TRDLE1
  3435. SA7 LATRD
  3436. RJ ERR REPORT TRD FULL CONDITION
  3437. WRITER O FLUSH BUFFER
  3438. SA3 JOBORG
  3439. ZR X3,INPX IF INTERACTIVE INPUT
  3440. EQ INP21 ABORT
  3441.  
  3442. INP25 SA2 INPN DIRECTORY ENTRY ADDRESS
  3443. SA0 X2+
  3444. INP26 SB2 B1 PRESET ERROR
  3445. SA1 TSK1
  3446. ZR X1,INP31 IF NO TASKS SPECIFIED
  3447. SA2 INPT TRANSACTION UNIT NAME
  3448. SA3 DM DATA MANAGER(S) SPECIFIED
  3449. BX5 X5-X5
  3450. ZR X3,INP28 IF NO DATA MANAGER SPECIFIED
  3451. SA4 INPU-1
  3452. MX0 42
  3453. INP27 SA4 A4+B1 NEXT DATA MANAGER
  3454. ZR X4,INP31 IF END OF LIST
  3455. BX6 X0*X4
  3456. BX6 X6-X3
  3457. NZ X6,INP27 IF NO MATCH
  3458. SX5 X4 DATA MANAGER FLAGS
  3459. INP28 BX6 X2+X5
  3460. SA5 RC RECOVERABLE STATUS
  3461. BX6 X6+X5
  3462. SA6 A0 STORE IN DIRECTORY
  3463. SB6 5 NUMBER OF TASKS TO CHECK FOR
  3464. SB2 B0 SET NO ERROR
  3465. INP29 BX6 X1
  3466. SA6 A6+B1 STORE TASK NAMES
  3467. SB6 B6-B1
  3468. SA1 A1+B1 NEXT TASK NAME
  3469. EQ B6,INP31 IF 5 TASK NAMES SPECIFIED
  3470. NZ X1,INP29 IF MORE TASKS IN LIST
  3471. SB2 B1 PRESET ERROR
  3472. BX6 X6-X6
  3473. SA1 A1-B1
  3474. INP30 SA1 A1+B1
  3475. NZ X1,INP31 IF MORE TASKS IN LIST
  3476. SA6 A6+B1 ZERO REMAINING WORDS
  3477. SB6 B6-B1
  3478. NE B6,INP30 IF MORE TO GO
  3479. SB2 B0 SET NO ERROR
  3480. SA4 INPT
  3481. SA2 INPN DIRECTORY ENTRY ADDRESS
  3482. NZ X2,INP30.1 IF TRANSACTION NAME ALREADY EXISTS
  3483. ADDWRD TTIN,X4 TRANSACTION ADDED
  3484. EQ INP31 NEXT DIRECTIVE
  3485.  
  3486. INP30.1 ADDWRD TTCN,X4 TRANSACTION CHANGED
  3487. INP31 NE B2,INP19 IF DIRECTIVE ERROR
  3488. SX6 B1
  3489. SA6 MTRD FLAG TRD MODIFIED
  3490. SA6 TRDE FLAG TRD EXISTS
  3491. EQ INP18 PROCESS NEXT DIRECTIVE
  3492.  
  3493. INPAL EQU 150
  3494. INPA BSS INPAL STRING BUFFER FOR DIRECTIVE INPUT
  3495. INPB DATA C* DIRECTIVE ERRORS.*
  3496. INPC FILEC INPD,INPAL+1 BUFFER FOR *WTS*
  3497. INPCD VFD 60/10LLIB, CONTROL WORD FOR *UPC*
  3498. INPD BSSZ INPAL+1 MADE LARGE TO STOP A *CIO* WRITE BY *WTS*
  3499.  
  3500. * DATA AREA FOR PROCESSING TASK DIRECTORY COMMANDS.
  3501.  
  3502. INPE BSS 0
  3503. BP ARG INPF,BP
  3504. MP ARG INPF+1,MP
  3505. QL ARG INPF+2,QL
  3506. C ARG -INPF-3,C
  3507. D ARG -INPF-4,D
  3508. S ARG -INPF-5,S
  3509. O ARG -INPF-6,OO
  3510. E ARG -INPF-7,E
  3511. DL ARG -INPF-8,DL
  3512. IG ARG -INPF-9,IG
  3513. SC ARG -INPF-10,SC
  3514. Q ARG -INPF-11,Q
  3515. EF ARG INPF+12,EF
  3516. R ARG -INPF-13,R
  3517. ARG
  3518.  
  3519. INPF VFD 12/ABP,48/0 ALTERNATE BEGINNING PRIORITY
  3520. VFD 12/AMP,48/0 ALTERNATE MAXIMUM PRIORITY
  3521. VFD 12/AQL,48/0 ALTERNATE QUEUE LIMIT
  3522. CON 10B CORE RESIDENT BIT
  3523. CON 0 NONREUSABLE CODE BIT
  3524. CON 40B SYSTEM TASK BIT
  3525. CON 02B ON/OFF BIT
  3526. CON 04B EXTENDED MEMORY RESIDENT BIT
  3527. CON 01B DELETE TASK
  3528. CON 1 IGNORE TASK
  3529. CON 1S17 SOLICITED COMMUNICATION BLOCK LOAD FLAG
  3530. CON MLQU QUEUING CONTROL BIT
  3531. CON EFL EXPANDABLE FIELD LENGTH
  3532. CON CRE REDUCE FL
  3533.  
  3534. INPG DATA C*0LIBTASK DIRECTIVES. *
  3535. DATA C* *
  3536. INPGL EQU *-INPG
  3537. INPH DATA C/ ******* INCORRECT DIRECTIVE./
  3538. INPHL EQU *-INPH
  3539. INPI CON 0
  3540. INPJ CON 10H *ERROR*
  3541. INPK CON 10H
  3542. INPL CON 0 DIRECTIVE INPUT ERROR COUNT
  3543. INPM DATA C/ ** INPUT DIRECTIVE ERRORS **/
  3544. INPML EQU *-INPM
  3545. INPN CON 0 ADDRESS OF TASK CHANGING DIRECTIVES FOR
  3546.  
  3547. * TABLE OF VALID TRANSACTION DIRECTIVE PARAMETERS.
  3548.  
  3549. INPO BSS 0
  3550. T1 ARG INPP,TSK1
  3551. T2 ARG INPP,TSK2
  3552. T3 ARG INPP,TSK3
  3553. T4 ARG INPP,TSK4
  3554. T5 ARG INPP,TSK5
  3555. RC ARG -INPP-1,RC
  3556. DM ARG INPP,DM
  3557. DL ARG -INPP-1,TDL
  3558. ARG
  3559.  
  3560. INPP CON 0
  3561. CON 1
  3562.  
  3563. INPQ CON 0 NONZERO INDICATES TRANSACTION DIRECTIVE
  3564. INPR CON 0 ARGUMENT COUNT
  3565. INPS DATA C* WARNING - TRANSACTION NAME NONEXISTENT XXXXXXX.*
  3566. INPT CON 0 TRANSACTION UNIT NAME
  3567.  
  3568. * TABLE OF VALID DATA MANAGER PARAMETERS.
  3569.  
  3570. INPU VFD 12/0LC,48/2 *CRM*
  3571. VFD 12/0LD,48/4 *CDCS*
  3572. VFD 12/0LCD,48/6 *CRM* + *CDCS*
  3573. VFD 12/0LDC,48/6 *CRM* + *CDCS*
  3574. CON 0 TABLE TERMINATOR
  3575.  
  3576. SPACE 4
  3577. ENDP EQU * END OF PRESET CODE
  3578. BUFFERS TITLE FILE BUFFERS.
  3579. TBL EQU 1001B
  3580. TB EQU PRS WORKING BUFFER FOR TASK BINARY
  3581.  
  3582.  
  3583. BBUFL EQU 1001B
  3584. BBUF EQU TB+TBL BINARY FILE BUFFER
  3585.  
  3586.  
  3587. HBL EQU 102B
  3588. HB EQU BBUF+BBUFL BUFFER FOR FIRST 66 WORDS OF TASK
  3589.  
  3590.  
  3591. SBUFL EQU 1001B
  3592. SBUF EQU HB+HBL SCRATCH FILE BUFFER
  3593.  
  3594.  
  3595. WBUFL EQU 14
  3596. WBUF EQU SBUF+SBUFL OUTPUT FILE WORKING BUFFER
  3597.  
  3598.  
  3599. .1 SET ENDP END OF PRESET CODE
  3600. IFGT WBUF+WBUFL,.1
  3601. .1 SET WBUF+WBUFL
  3602. ENDIF
  3603.  
  3604.  
  3605. PBUFL EQU 6002B
  3606. PBUF EQU .1 TASK LIBRARY FILE
  3607.  
  3608.  
  3609. IBUFL EQU 301B
  3610. IBUF EQU PBUF+PBUFL INPUT FILE BUFFER
  3611.  
  3612.  
  3613. OBUFL EQU 401B
  3614. OBUF EQU IBUF+IBUFL OUTPUT FILE BUFFER
  3615.  
  3616.  
  3617. LASTB EQU OBUF+OBUFL
  3618.  
  3619. RFL= EQU LASTB+10B
  3620. END LIBTASK