IDENT LIBTASK,FETS ABS SST LREC,MP ENTRY LIBTASK ENTRY RFL= ENTRY SSJ= SYSCOM B1 LIBTASK TITLE LIBTASK - TASK LIBRARY EDITING PROGRAM. *COMMENT LIBTASK - TASK LIBRARY EDITING PROGRAM. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. LIBTASK SPACE 4,10 ***** LIBTASK - TASK LIBRARY BUILDING AND EDITING PROGRAM. * * J. R. HOGUE. 1971. * K. R. COMBS. 1972. * M. M. CHEN. 1978. * R. G. PARKHOUSE. 80/04/15. * E. D. REDIG. 81/03/06. SPACE 4 *** *LIBTASK* BUILDS THE TASK LIBRARY USED BY THE TRANSACTION * EXECUTIVE AND PLACES BOTH A TASK DIRECTORY AND A TRANSACTION * DIRECTORY ON THE LAST RECORD OF THE LIBRARY. * * TO MAKE CHANGES TO THE LIBRARY WHILE THE TRANSACTION SYSTEM * IS RUNNING, *LIBTASK* ADDS THE NEW TASK BINARIES TO THE END * OF THE LIBRARY FILE AND REWRITES AN UPDATED DIRECTORY ON THE * LAST RECORD. THEN, VIA THE OPERATING SYSTEM *SIC* REQUEST, * *LIBTASK* INFORMS THE TRANSACTION EXECUTIVE THAT A CHANGE * WAS MADE AND THE EXECUTIVE READS IN THE NEW DIRECTORY. * * *LIBTASK* DOES NOT DEFINE THE INITIAL LIBRARY FILE. THIS * MUST BE DONE PRIOR TO A *LIBTASK* CREATION RUN. SPACE 4,10 *** THE COMMAND. * * LIBTASK(P1,P2,,PN) * * THE PARAMETERS P(I) MAY INCLUDE THE FOLLOWING (IN ANY ORDER) * AND MUST BE IN ONE OF THE FORMS * * * * - (NONE) ASSUME FIRST DEFAULT VALUE. * P - ASSUME ALTERNATE DEFAULT VALUE. * P=X - SUBSTITUTE *X* FOR ANY ASSUMED VALUE OF *P*. * * I - FILE CONTAINING INPUT DIRECTIVES. * Z - TAKE DIRECTIVES ONLY FROM COMMAND. * EXAMPLE - * LIBTASK(...,Z,...)XDDDDDXDDDDXDDD * WHERE X IS ANY CHARACTER NOT IN D. * D IS A LIBTASK DIRECTIVE. * B - FILE CONTAINING BINARIES TO ADD TO TASK LIBRARY FILE. * L - FILE CONTAINING LIST OF ACTIONS TAKEN. * P - TASK LIBRARY FILE. * N - NEW TASK LIBRARY FILE. * CR - CREATE A NEW LIBRARY FILE. * TT - SEND MESSAGE TO *TAF* TO READ NEW DIRECTORY. * PR - PURGE OLD BINARIES AND DIRECTORIES. * DA - DISABLE ATTACHES AND RETURNS. * LO - LIST OPTION FOR TASKS/TRANSACTIONS AND ATTRIBUTES. * TN - TASK OR TRANSACTION NAME USED IN CONJUNCTION WITH *LO*. * * DEFAULT PARAMETER SUBSTITUTION VALUES. * * EQUIVALENCED FIRST ALTERNATE * PARAMETERS DEFAULT DEFAULT - COMMENT - * * I *INPUT* *COMPILE* * B *LGOB* *LGO* TASK BINARY FILE. * L *OUTPUT* *OUTPUT* OUTPUT FILE. * P *TASKLIB* TASK LIBRARY FILE. * N *SCRATCH* *TASKLIB* NEW TASK LIBRARY FILE. * LO 0 *A* LIST OPTION. * TN 0 0 TASK OR TRANSACTION NAME. * * SINGLE FIRST ALTERNATE * PARAMETERS DEFAULT DEFAULT - COMMENT - * * Z *NOT Z* *Z* DIRECTIVES FROM COMMAND. * CR *NOT CR* *CR* CREATE A NEW LIBRARY FILE. * TT *NOT TT* *TT* TELL *TAF* ABOUT CHANGE. * PR *NOT PR* *PR* PURGE OLD RECORDS * DA *NOT DA* *DA* SKIP ATTACHES OF LIBRARY FILE SPACE 4,45 *** DESCRIPTION OF PARAMETER OPTIONS. * * CR - THE CREATE OPTION IS USED TO CREATE A NEW TASK LIBRARY. * IF *TAF* IS RUNNING BUT DOES NOT HAVE A FILE ATTACHED BY THE * NEW TASK LIBRARY NAME, A CREATE MAY BE DONE. OTHERWISE, IT * MAY NOT BE USED WHILE *TAF* IS RUNNING. THE *P* FILE MUST * HAVE BEEN PREVIOUSLY DEFINED. LIBTASK READS ONE TASK * AT A TIME FROM THE *B* FILE, CHECKS FOR AN INPUT DIRECTIVE * FOR THE TASK, CONSTRUCTS A DIRECTORY ENTRY AND INSERTS THE * ENTRY IN ALPHABETICAL ORDER IN THE LIBRARY DIRECTORY. THE * DIRECTORY IS WRITTEN AT THE END OF THE LIBRARY. * * PR - THE PURGE OPTION IS USED TO REMOVE INACTIVE TASK * BINARIES AND OLD DIRECTORIES FROM THE TASK LIBRARY. * THIS OPTION MAY BE USED WHILE *TAF* IS RUNNING AND THE * TASK LIBRARY TO BE PURGED IS NOT ATTACHED BY *TAF*. * *LIBTASK* PROCESSES THE REPLACEMENT FILE *B* * AND THE INPUT DIRECTIVES NORMALLY, COPIES THE * ENTIRE LIBRARY TO A SCRATCH FILE, THEN TRANSFERS THE CURRENT * BINARY FOR EACH TASK IN THE LIBRARY TO THE SCRATCH FILE. * HOWEVER, IF THE *N* OPTION IS SPECIFIED, ONLY THE CURRENT * BINARIES ARE TRANSFERRED DIRECTLY TO THE SCRATCH FILE, * WHICH HAS BECOME THE NEWLY DEFINED TASK LIBRARY. THE * DIRECTORY IS UPDATED AND WRITTEN AT THE END IN EACH CASE. * THEREFORE, ONLY ONE COPY OF EACH TASK AND ONE DIRECTORY * REMAINS IN THE LIBRARY. * * TT - THE TELL *TAF* OPTION IS USED TO INFORM *TAF* THAT A * CHANGE HAS OCCURRED IN THE TASK LIBRARY WHEN A LIBTASK * TAKES PLACE WHILE *TAF* IS RUNNING. THE PARAMETER HAS * NO EFFECT IF *TAF* IS NOT RUNNING. NORMAL PROCESSING * OCCURS, AFTER WHICH INTERCONTROL POINT COMMUNICATION IS USED * TO INFORM *TAF* TO READ IN THE NEW DIRECTORY. * * DA - THE DISABLE ATTACH OPTION IS USED TO ALLOW A USER * COMPLETE CONTROL OF HIS PERMANENT FILES. THIS OPTION * DISABLES ALL ATTACHES AND RETURNS OF THE TASK LIBRARY FILES. * THE EXCEPTION TO THIS IS IF THE *TT* OPTION IS ALSO * SPECIFIED. LIBTASK WILL THEN RETURN THE TASK LIBRARY * FILE SO THAT *TAF* MAY REATTACH THE FILE TO UPDATE ITS * TABLES. * * LO - THE LIST OPTION PRODUCES A REPORT OF TASKS AND THEIR * ATTRIBUTES, TRANSACTION NAMES WITH ATTRIBUTES AND NAMES * OF MEMBER TASKS. WHEN LISTING TASK NAMES WITH TRANSACTION * NAMES, THOSE TASKS WHICH DO NOT EXIST IN THE DATA BASE * LIBRARY ARE FLAGGED. SPACE 4,70 *** INPUT FILE DIRECTIVE FORMAT. * * 1. TASK DIRECTIVE. * * TO ENTER ALTERNATE VALUES FOR A TASK, A DIRECTIVE CARD MAY * BE ENTERED IN THE DIRECTIVE FILE. * * DIRECTORY COMMAND FORMAT. * * *NAME P1,P2,,,PN. * * NAME = TASK NAME OF TASK ON FILE *B*. * * THE PARAMETERS P(I) MAY INCLUDE THE FOLLOWING (IN ANY ORDER) * AND MUST BE IN ONE OF THE FORMS : * * * * - (NONE) ASSUME FIRST DEFAULT VALUE * P - ASSUME ALTERNATE DEFAULT VALUE * P=X - SUBSTITUTE *X* FOR ANY ASSUMED VALUE OF *P* * * BP - BEGINNING PRIORITY. * MP - MAXIMUM PRIORITY (FUTURE USE). * QL - QUEUE LIMIT. * S - SYSTEM TASK. * C - CORE RESIDENT. * SC - COMMUNICATION BLOCK SOLICITED FLAG. * D - DESTRUCTIVE CODE. * E - EXTENDED MEMORY RESIDENT (FUTURE USE). * O - TASK ON/OFF. * Q - QUEUING FORCED FOR ADDITIONAL ACTIVE COPIES OF TASK. * R - REDUCE FL (CM RESIDENT TASK ONLY). * * EQUIVALENCED FIRST ALTERNATE * PARAMETERS DEFAULT DEFAULT - COMMENT - * * BP 20B 25B BEGINNING TASK PRIORITY. * EF 0 0 DEFAULT EXPANDABLE FL. * MP 40B 50B MAXIMUM TASK PRIORITY. * QL 3B 5B QUEUE LIMIT FOR A TASK. * * SINGLE FIRST ALTERNATE * PARAMETERS DEFAULT DEFAULT - COMMENT - * * R 0 0 REDUCE FL * S *NOT S* *S* SYSTEM TASK. * C *DISK* *CORE* RESIDENCE OF TASK BINARY. * D *NOT D* *D* DESTRUCTIVE CODE INDICATOR. * E *NOT E* *E* EXTENDED MEMORY RESIDENT. * O *ON* *OFF* TASK ON/OFF. * DL *NOT DL* *DL* DELETE TASK. * IG *NOT IG* *IG* IGNORE TASK. * SC *NOT SC* *SC* COM. BLK. SOLICITED * Q *NORMAL* *QUEUE* QUEUE FOR ADDITIONAL COPIES. * * * 2. TRANSACTION DIRECTIVE. * * TO NAME A TRANSACTION AND SPECIFY TASKS COMPRISING THE NAMED * TRANSACTION. TO SPECIFY DATA MANAGERS USED BY THE TRANSACTION * AND SPECIFY THE RECOVERABLE ATTRIBUTE. * * DIRECTIVE FORMAT. * * /TNAME,T1=TSK1,T2=TSK2,T3=TSK3,T4=TSK4,T5=TSK5,RC,DM=DMID,DL. * * TNAME = 1-7 ALPHANUMERIC CHARACTER TRANSACTION UNIT NAME. * TSK(I) = TASKS COMPRISING TRANSACTION. * RC = TRANSACTION IS RECOVERABLE. * DMID = DATA MANAGERS USED(C - *CRM*, D - *CDCS*, CD - BOTH) * DL = DELETE NAMED TRANSACTION. SPACE 4,10 *** DOCUMENTATION CONVENTIONS. * * B FILE NAME DENOTED BY COMMAND *B* PARAMETER. * N FILE NAME DENOTED BY COMMAND *N* PARAMETER. * P FILE NAME DENOTED BY COMMAND *P* PARAMETER. * TLD TASK LIBRARY DIRECTORY. * TRD TRANSACTION DIRECTORY. SPACE 4,10 *** DAYFILE MESSAGES. * * ERRA BINARY RECORD WAS LESS THAN 640 WORDS LONG. * ERRB BINARY RECORD WAS NETHER ABSOLUTE NOR OVERLAY FORMAT. * PRSB LIBTASK COMMAND ARGUMENT ERRORS. * ERCB CONFLICTING LIBTASK OPTIONS - CR, PR. * ERCC CONFLICTING LIBTASK OPTIONS - CR, TT. * ERCD CONFLICTING LIBTASK OPTIONS - PR, TT. * ERCF CONFLICTING LIBTASK OPTIONS - P=0, -N. * ERCH CONFLICTING LIBTASK OPTIONS - TT, N. * INPB DIRECTIVE ERRORS. * ERRF DIRECTORY IS FULL - NO MORE ADDITIONS ALLOWED. * LIBK FILE NOT ATTACHED - LFN. * ERRD INCORRECT FWA FOR LOAD. * ATTD LIBRARY FILE TIME OUT. * ERRE LIBTASK ERROR CONDITION UNKNOWN. * LIBJ LIBTASK ERRORS. * ATTE LIBTASK - PFM ERROR DETECTED. * TOVA TABLE OVERFLOW - TOO MANY TASKS. * LIBF TASK EDITING COMPLETE. * PRSD TASK LIBRARY DIRECTORY EMPTY. * PRSE TASK LIBRARY DIRECTORY ERROR. * PRSC TASK LIBRARY DIRECTORY TOO LONG. * ERCO TASKLIB MUST NOT START WITH THE LETTER Z. * ERCL TN REQUIRES EITHER LO=T OR LO=X. * PRSF TT OPTION REQUIRES USER NAME. * PRSG TRANSACTION DIRECTORY EMPTY. * PRSH TRANSACTION DIRECTORY TOO LONG. * PRSI TRANSACTION DIRECTORY ERROR. * PRSJ USER NOT VALIDATED FOR ONLINE TASK LIBRARY UPDATES. * ERCM VALID LO OPTIONS ARE LO, LO=A, LO=T OR LO=X. * PLOG XXXXXXX NOT IN DIRECTORY. SPACE 4,10 QUAL$ EQU 0 PROGRAM WILL HANDLE QUAL *CALL COMCMAC *CALL COMCMTM LIST X *CALL COMKFLD *CALL COMKTLD LIST -X *CALL COMSPRD *CALL COMSSSD *CALL COMSSSJ ORG 104B FETS TITLE FETS AND DATA STORAGE. FETS BSS 0 I BSS 0 INPUT FILEB IBUF,IBUFL,FET=7 DIRECTIVE INPUT FILE B BSS 0 LGOB FILEB BBUF,BBUFL TASK BINARY FILE O BSS 0 OUTPUT FILEC OBUF,OBUFL OUTPUT FILE P BSS 0 TASKLIB RFILEB PBUF,PBUFL,EPR,FET=11 TASK LIBRARY FILE SF BSS 0 N BSS 0 SCRATCH RFILEB SBUF,SBUFL,EPR,FET=11 NEW/SCRATCH LIBRARY FILE LATLD BSS 1 ACTUAL LWA OF TLD LWTLD BSS 1 CURRENT LWA OF TLD LWOLD BSS 1 LWA OF BASE TLD FOR RUNNING SYSTEM TSKDI BSS 1 TASK DISK INDEX TSKNM BSS 1 TASK NAME TSKNE BSS 1 TASK NAME AND ENTRY POINT TSKFL BSS 1 TASK FIELD LENGTH EOFF CON 0 END OF BINARY FILE FLAG BFEF CON 0 BINARY FILE ERROR FLAG FSLT BSS 1 FREE SPACE LEFT IN TLD CRES CON 0 CORE RESIDENT TASK COUNT LATRD CON 0 LWA OF TRD BEFORE SORT LWTRD CON 0 LWA OF TRD FSTR CON 0 FREE SPACE LEFT IN TRD MTRD CON 0 TRD UPDATED FLAG TRDE CON 0 TRD EXISTS FLAG Z CON 0 TO TAKE DIRECTIVES FROM CONTROL COMMAND PR CON 0 TO PURGE OLD COPIES CR CON 0 TO CREATE A LIBRARY FILE OR NOT TO CREATE TT CON 0 TELL *TAF* ABOUT NEW DIRECTORY DA CON 0 DISABLE ATTACH AND RETURN AT CON 0 ATTACHED BY *TAF* FLAG PN CON 0 FILE *F* AND *N* NOT EQUAL FLAG LO CON 0 LIST OPTION XTN CON 0 TASK OR TRANSACTION UNIT NAME FOR *LO* FWLD EQU 111B FWA OF SINGLE ENTRY POINT PROGRAM RECN CON 0 RECORDS READ FROM BINARY FILE CBP EQU 3533B DEFAULT BEGINNING TASK PRIORITY ABP EQU 3540B ALTERNATE BEGINNING TASK PRIORITY MNBP EQU 10B MINIMUM BEGINNING PRIORITY MXBP EQU 70B MAXIMUM BEGINNING PRIORITY CMP EQU 3733B DEFAULT MAXIMUM TASK PRIORITY AMP EQU 4033B ALTERNATE MAXIMUM TASK PRIORITY MNMP EQU 10B MINIMUM MAXIMUM PRIORITY MXMP EQU 70B MAXIMUM MAXIMUM PRIORITY CQL EQU 3336B DEFAULT TASK QUEUE LIMIT AQL EQU 3340B ALTERNATE TASK QUEUE LIMIT MINQL EQU 1 MINIMUM QUEUE LIMIT MAXQL EQU 5 MAXIMUM QUEUE LIMIT EFL EQU 0 DEFAULT EXPANDABLE FIELD LENGTH BY TASK MAXEF EQU 300000B MAXIMUM EXPANDABLE FL CC EQU 0 DEFAULT CORE RESIDENCE VALUE CD EQU 1 DEFAULT FOR DESTRUCTIVE TASKS CS EQU 0 DEFAULT SYSTEM TASK INDICATOR CO EQU 0 DEFAULT ON/OFF INDICATOR CE EQU 0 DEFAULT ECS RESIDENCE INDICATOR CDL EQU 0 DEFAULT DELETE DIRECTORY CQ EQU 0 DEFAULT QUEUING CONTROL CRE EQU 0 DEFAULT REDUCE FL TLQUSM DECMIC TLQUS MLQU EQU 1S"TLQUSM" MULTIPLIER OF *CQ* BP VFD 12/CBP,48/0 BEGINNING PRIORITY FOR A TASK MP VFD 12/CMP,48/0 MAXIMUM TASK PRIORITY EF CON EFL EXPANDABLE FIELD LENGTH BY TASK QL VFD 12/CQL,48/0 TASK QUEUE LIMIT C CON CC*10B CORE RESIDENT DIRECTORY INFORMATION D CON CD*20B DESTRUCTIVE CODE DIRECTORY INFORMATION S CON CS*40B SYSTEM TASK DIRECTORY INFORMATION OO CON CO*02B ON/OFF BIT E CON CE*04B EXTENDED MEMORY RESIDENT BIT DL CON CDL*01B DELETE BIT Q CON CQ*MLQU QUEUING CONTROL BIT R CON CRE REDUCE FL FLAG IG CON 0 IGNORE TASK SC CON 0 SOLICITED FLAG TSK1 CON 0 TASK 1 TSK2 CON 0 TASK 2 TSK3 CON 0 TASK 3 TSK4 CON 0 TASK 4 TSK5 CON 0 TASK 5 RC CON 0 RECOVER TRANSACTION DM CON 0 DATA MANAGER(S) USED TDL CON 0 DELETE TRANSACTION JOBORG BSS 1 JOB ORIGIN CODE ENDH CON 10H0LAST MODI CON 10HFICATION CON 10H - LAST BSSZ 3 ENDHL EQU *-ENDH LREC TABLE TASKS ON TASK LIBRARY RREC TABLE RECORDS REPLACED TABLE IREC TABLE RECORDS INSERTED TABLE DRTC TABLE INPUT DIRECTIVES TDCH TABLE DIRECTIVES CHANGED TABLE TDRC TABLE DIRECTIVES CHANGED TDIG TABLE IGNORE TASK TTIN TABLE TRANSACTION UNITS INSERTED TTCN TABLE TRANSACTION UNITS CHANGED TTNE TABLE TRANSACTION UNITS WITH NONEXISTENT TASKS SSJ= BSS 0 SPECIAL SYSTEM JOB PARAMETER BLOCK VFD 36/0,12/LTCS,12/UJSI BSSZ SSJL-1 LIB TITLE MAIN PROGRAM. ** LIB - LIBTASK MAIN PROGRAM. * * LIB READS THE BINARIES AND BUILDS NEW ENTRIES * AT THE END OF THE LIBRARY FILE. ONE BINARY RECORD (TASK) AT * A TIME IS READ FROM THE B FILE AND WRITTEN ON THE P FILE. A * NEW DIRECTORY ENTRY IS CREATED IF THIS IS A NEW TASK, OR THE * EXISTING ENTRY IS UPDATED. IF THE CR OPTION IS SET, THE * DIRECTORY ENTRIES ARE ARRANGED ALPHABETICALLY, ELSE NEW * ENTRIES ARE ADDED AT THE END OF THE DIRECTORY. * THE STORAGE AREAS OF *PRS* AND RELATED ROUTINES ARE USED * FOR TASK LIBRARY DIRECTORY RESIDENT AFTER *PRS* IS CALLED. LIBTASK RJ PRS INITIALIZE LIBTASK * CHECK CREATION RUN. SA1 B ZR X1,LIB0 IF NO BINARY FILE REWIND B,R READ B INITIATE READ LIB0 SA1 CR SA2 PR ZR X1,LIB1 IF NOT A CREATION RUN RJ PCR CREATE A NEW LIBRARY EQ LIB4 PROCESS OUTPUT * CHECK PURGE RUN. LIB1 SA3 TT ZR X2,LIB2 IF NOT A PURGE RUN RJ PIT PURGE INACTIVE TASKS EQ LIB4 PROCESS OUTPUT * CHECK TELL *TAF* RUN. LIB2 ZR X3,LIB3 IF NOT A TELL *TAF* RUN RJ PTT TELL *TAF* EQ LIB4 PROCESS OUTPUT LIB3 RJ PNP PROCESS NO PARAMETERS LIB4 SA1 JOBORG ZR X1,LIB5 IF INTERACTIVE INPUT SA1 L.LREC ZR X1,LIB5 IF NO TASKS ON OLD DIRECTORY * WRITE NAMES OF TASKS ON OLD DIRECTORY. WRITEW O,LIBE,LIBEL SX2 2 RJ ALC ADVANCE LINE COUNT SA1 F.LREC START OF NAMES SA5 L.LREC COUNT OF NAMES SB7 X1 SX1 X5 RJ /COMCSST/SST SORT TABLE SA1 F.LREC START OF NAMES RJ LRL LIST RECORD LIST LIB5 SA1 L.IREC ZR X1,LIB6 IF NO RECORDS INSERTED * WRITE NAMES OF RECORDS INSERTED. WRITEW O,LIBC,LIBCL SX2 2 RJ ALC ADVANCE LINE COUNT SA1 F.IREC START OF INSERTED RECORD NAMES SA5 L.IREC COUNT OF INSERTED RECORD NAMES SB7 X1 SX1 X5 RJ /COMCSST/SST SORT TABLE SA1 F.IREC START OF INSERTED RECORD NAMES RJ LRL LIST RECORD LIST LIB6 SA1 L.RREC ZR X1,LIB7 IF NO RECORDS REPLACED * WRITE NAMES OF RECORDS REPLACED. WRITEW O,LIBD,LIBDL SX2 2 RJ ALC ADVANCE LINE COUNT SA1 F.RREC START OF REPLACED RECORD NAMES SA5 L.RREC COUNT OF RECORD NAMES SB7 X1 SX1 X5 RJ /COMCSST/SST SORT TABLE SA1 F.RREC START OF REPLACED RECORD NAMES RJ LRL LIST RECORD LIST LIB7 SA1 L.TDRC ZR X1,LIB8 IF NO DIRECTIVES CHANGED * WRITE NAMES OF DIRECTIVES CHANGED. WRITEW O,LIBL,LIBLL SX2 2 RJ ALC ADVANCE LINE COUNT SA1 F.TDRC START OF DIRECTIVE CHANGE NAMES SA5 L.TDRC COUNT OF NAMES SB7 X1 SX1 X5 RJ /COMCSST/SST SORT TABLE SA1 F.TDRC START OF DIRECTIVE CHANGE NAMES RJ LRL LIST RECORD LIST LIB8 SA1 L.TTIN ZR X1,LIB9 IF NO TRANSACTION UNITS INSERTED * WRITE NAMES OF TRANSACTION UNITS INSERTED. WRITEW O,LIBN,LIBNL SX2 2 RJ ALC ADVANCE LINE COUNT SB2 B1 WORDS PER ENTRY SA1 F.TTIN SB6 X1 FWA OF TABLE SA1 L.TTIN LENGTH OF TABLE SB3 LIBQ TEMPORARY BUFFER MX0 42 MASK RJ SSR SORT TABLE SA1 F.TTIN SA5 L.TTIN RJ LRL LIST RECORD LIST LIB9 SA1 L.TTCN ZR X1,LIB10 IF NO TRANSACTION UNITS CHANGED * WRITE NAMES OF TRANSACTION UNITS CHANGED. WRITEW O,LIBO,LIBOL SX2 2 RJ ALC ADVANCE LINE COUNT SB2 B1 WORDS PER ENTRY SA1 F.TTCN SB6 X1 FWA OF TABLE SA1 L.TTCN LENGTH OF TABLE SB3 LIBQ TEMPORARY BUFFER MX0 42 MASK RJ SSR SORT TABLE SA1 F.TTCN SA5 L.TTCN RJ LRL LIST RECORD LIST LIB10 SA1 L.TTNE ZR X1,LIB11 IF NO TRANSACTION UNITS WITH NONEXISTENT * WRITE NAMES OF TRANSACTION UNITS WITH NONEXISTENT TASKS. WRITEW O,LIBP,LIBPL SX2 2 RJ ALC ADVANCE LINE COUNT SB2 B1 WORDS PER ENTRY SA1 F.TTNE SB6 X1 FWA OF TABLE SA1 L.TTNE LENGTH OF TABLE SB3 LIBQ TEMPORARY BUFFER MX0 42 MASK RJ SSR SORT TABLE SA1 F.TTNE SA5 L.TTNE RJ LRL LIST RECORD LIST * PROCESS LIST OPTION IF USED. LIB11 SA1 LO ZR X1,LIB12 IF NO *LO* OPTION RJ PLO PROCESS LIST OPTION * WRITE TIME AND DATE OF MOST RECENT LIBRARY MODIFICATION. LIB12 SA1 RECN NZ X1,LIB13 IF *B* FILE USED SA1 TLDHD PLACE DIRECTORY DATE IN OUTPUT LINE BX6 X1 SA6 LAST SA1 TLDHT PLACE DIRECTORY TIME IN OUTPUT LINE BX6 X1 SA6 LAST+1 LIB13 WRITEW O,ENDH,ENDHL WRITE DATE AND TIME OF LAST MODIFICATION WRITER O FLUSH OUTPUT FILE SETFS O,0 PREVENT RETURN OF OUTPUT FILE SA1 BFEF ZR X1,LIB14 IF NO ERRORS ON *B* OR *PLO* MESSAGE LIBJ * LIBTASK ERRORS.* ABORT LIB14 MESSAGE LIBF * TASK EDITING COMPLETE.* ENDRUN * TLD VALUES FOR CURRENT TASK. LIBA VFD 48/0,6/0,6/0 WORD 2 OF TLD VFD 1/CS,1/CD,1/CC,3/0,18/0,18/0,18/0 * DEFAULT VALUES FOR ALL TASKS. LIBB VFD 48/0,6/0,6/0 WORD 2 OF TLD VFD 1/CS,1/CD,1/CC,3/0,18/0,18/0,18/0 LIBC DATA C* RECORDS INSERTED INTO LIBRARY FILE - * LIBCL EQU *-LIBC LIBD DATA C* RECORDS REPLACED IN LIBRARY FILE - * LIBDL EQU *-LIBD LIBE DATA C* RECORDS ON OLD TASK LIBRARY FILE - * CON 8L LIBEL EQU *-LIBE LIBF DATA C* TASK EDITING COMPLETE.* LIBG DATA C* COPYING * LIBH VFD 18/0,12/TRSI,30/0 REPLY WORD FOR *SIC* MACRO LIBI VFD 12/2002B,30/0,18/LIBIL VFD 42/0,18/0 CON 0 TASK LIBRARY NAME LIBIL EQU *-LIBI LENGTH OF PARAMETER BLOCK LIBJ DATA C* LIBTASK ERRORS.* LIBK DATA C* FILE NOT ATTACHED - * LIBL DATA C* DIRECTIVE ENTRIES CHANGED IN TASK LIBRARY DIRECTORY. ,* CON 8L LIBLL EQU *-LIBL LIBM DATA C*IGNORING * LIBN DATA C* TRANSACTION NAMES INSERTED.* CON 8L LIBNL EQU *-LIBN LIBO DATA C* TRANSACTION NAMES CHANGED.* CON 8L LIBOL EQU *-LIBO LIBP DATA C* TRANSACTION NAMES CONTAINING NONEXISTENT TASKS.* CON 8L LIBPL EQU *-LIBP LIBQ CON 0 TEMPORARY BUFFER FOR *SSR* TITLE SUBROUTINES. ALC SPACE 4,15 ** ALC - ADVANCE LINE COUNT. * * ADVANCE THE LINE COUNT FOR THE OUTPUT FILE PAGE AND * CHECK FOR END OF PAGE. * * ENTRY (X2) = LINE COUNT IF NOT 1. * * EXIT LINE COUNT ADVANCED. * * USES A - 1, 6, 7. * B - 2. * X - 1, 2, 4, 6, 7. * * CALLS CDD, STL. ALC SUBR ENTRY/EXIT SA1 ALCA LINE COUNT IX7 X1+X2 SA7 A1 LINE COUNT ADVANCED SB2 X1-58 NG B2,ALCX IF NOT AT END OF PAGE SA1 ALCB SX7 X1+1 ADVANCE PAGE COUNT SA7 ALCB RJ CDD CONVERT TO DECIMAL DISPLAY CODE MX4 30 SA1 STLAP HEADER PAGE WORD BX2 X4*X1 BX6 -X4*X6 BX6 X6+X2 SA6 A1+ NEW PAGE NUMBER INSERTED RJ STL SET NEW TITLE LINE EQ ALCX RETURN ALCA CON 3 LINE COUNT ALCB CON 2 PAGE COUNT CDR SPACE 4,15 ** CDR - COPY DIRECTORY TO TASK LIBRARY. * * ENTRY FILE INITIALIZED. * (X5) = FILE NAME TO WHICH TLD IS TO BE COPIED. * * EXIT TASK AND TRANSACTION DIRECTORIES COPIED * TO THE LIBRARY FILE. * * USES A - 1, 2, 3, 4, 6, 7. * X - 1, 2, 3, 4, 6, 7. * * CALLS STN, STR. * * MACROS RECALL, WRITEF, WRITER, WRITEW. CDR SUBR ENTRY/EXIT RJ STN FIND TRANSACTIONS WITH NONEXISTENT TASKS RECALL X5 WAIT FOR FILE NOT BUSY SA1 STLAD PLACE DATE IN DIRECTORY SA2 STLAT PLACE TIME IN DIRECTORY HEADER BX6 X1 BX7 X2 SA6 LAST SA7 LAST+1 SA6 TLDHD SA7 TLDHT SA1 TRDE ZR X1,CDR1 IF TRD DOES NOT EXIST SA1 MTRD ZR X1,CDR1 IF TRD NOT MODIFIED SA1 LWTRD SX2 X1-TRD LENGTH OF TRD NZ X2,CDR0 IF TRD NOT EMPTY SA1 TLDH+TLTRW CLEAR PRU OF TRD IN TLD HEADER MX3 60-TLTRN BX6 X3*X1 SA6 A1+ EQ CDR1 PROCESS TLD CDR0 SA6 TRDH+2 DATE SA7 A6+1 TIME RJ STR SORT TRANSACTION DIRECTORY SA2 X5+6 MX3 TLTRN ERRNZ TLTRN-30 *CRI* AND PRU OF TRD LENGTHS DIFFERENT BX6 X3*X2 EXTRACT CURRENT RANDOM INDEX FROM FET SA2 TLDH+TLTRW LX6 TLTRS-59 BX3 X3*X2 CLEAR OLD PRU BX6 X6+X3 SA6 A2 PRU OF TRD IN TLD HEADER SA1 LWTRD SX7 X1-TRD LENGTH OF TRD MX3 -18 LX3 18 LX7 18 SA2 TRDH+1 BX2 X3*X2 BX7 X2+X7 SA7 A2 TRD LENGTH IN TRD HEADER WRITEW X5,TRDH,X1-TRDH WRITE TRD TO FILE WRITER X5,R FLUSH BUFFER CDR1 SA1 CRES NUMBER OF CM RESIDENT TASKS SA3 TT SA4 LWTLD LWA OF TLD ZR X3,CDR2 IF NOT *TT* RUN SA4 LWOLD LWA OF BASE TLD CDR2 SA2 TLDH+1 MX3 18 BX2 X3*X2 SX6 X4-TLD LENGTH OF TLD BX7 X1+X2 STORE CORE RESIDENT COUNT IN HEADER WORD LX6 18 BX7 X7+X6 ADD TLD LENGTH SA7 TLDH+1 UPDATE DIRECTORY HEADER SA4 LWTLD LWA OF TLD WRITEW X5,TLDH,X4-TLDH WRITER X5 FLUSH BUFFER WRITEF X5 WRITE EOF ON LIBRARY FILE EQ CDRX ERR SPACE 4,25 ** ERR - PROCESS ERRORS ENCOUNTERED IN BINARY OR INPUT * DIRECTIVE FILE. * * THE FOLLOWING BLOCKS OF CODE HANDLE VARIOUS ERROR CONDITIONS * WHICH MAY OCCUR WHILE PROCESSING THE *B* OR *I* FILE. * * ENTRY (X6) = 1 - RECORD LESS THAN 64D WORDS. * 2 - INCORRECT RECORD TYPE ON BINARY. * 3 - MULTIPLE ENTRY POINT. * 4 - ERROR IN *54* TABLE. * 5 - TLD IS FULL. * 6 - TRD IS FULL. * * EXIT (BFEF) = 1 IF ERROR PROCESSED. * * USES A - 1, 6, 7. * B - 3. * X - 1, 2, 6, 7. * * CALLS ALC, SEH, SFN, SKR. * * MACROS ABORT, MESSAGE, READ, WRITEW. ERR9 SX7 B1+ INDICATE ERROR ENCOUNTERED SA7 BFEF ERR SUBR ENTRY/EXIT LX6 -1 SX2 X6-TERRL SB3 X6 PL X2,ERR7 IF UNKNOWN ERROR CONDITION JP B3+TERR JUMP THROUGH TABLE TERR PL X6,ERR7 UNKNOWN ERROR CONDITION EQ ERR1 RECORD LESS THAN 64D WORDS PL X6,ERR4 IF INCORRECT RECORD TYPE EQ ERR5 MULTIPLE ENTRY POINT PL X6,ERR6 ERRORS IN *54* TABLE EQ ERR8 TLD FULL PL X6,ERR10 TRD FULL EQ ERR7 UNKNOWN ERROR CONDITION TERRL EQU *-TERR LENGTH OF ERROR JUMP TABLE * BINARY RECORD LESS THAN 64D WORDS LONG. ERR1 SX2 X1-HB NZ X2,ERR2 IF NOT A BLANK RECORD READ B REINITIATE READ ON BINARY FILE EQ ERRX RETURN ERR2 SX2 X1-HB-1 PL X2,ERR3 IF MORE THAN ONE WORD ON RECORD SX6 B0+ SA6 HB+1 NO TASK NAME ERR3 READ B INITIATE READ ON BINARY FILE RJ SEH SET ERROR HEADER MX7 42 SA1 HB+1 TASK NAME - HOPEFULLY BX1 X7*X1 RJ SFN SPACE FILL NAME SA6 ERRA+1 WRITEW O,ERRA,ERRAL SX2 B1+B1 RJ ALC ADVANCE LINE COUNT EQ ERR9 RETURN * INCORRECT RECORD TYPE ON BINARY FILE. ERR4 RJ SKR ADVANCE TO NEXT RECORD RJ SEH SET ERROR HEADER MX7 42 SA1 TSKNM TASK NAME RJ SFN SPACE FILL NAME SA6 ERRB+1 WRITEW O,ERRB,ERRBL SX2 B1+B1 RJ ALC ADVANCE LINE COUNT EQ ERR9 RETURN * MORE THAN ONE ENTRY POINT GIVEN ON A *54* TABLE. ERR5 RJ SKR SKIP TO NEXT RECORD RJ SEH SET ERROR HEADER MX7 42 SA1 TSKNM TASK NAME RJ SFN SPACE FILL NAME SA6 ERRC+1 WRITEW O,ERRC,ERRCL SX2 B1+B1 RJ ALC ADVANCE LINE COUNT EQ ERR9 RETURN * FWA FOR A NON *54* TABLE BINARY WAS NOT EQUAL TO THE * DEFAULT FWA OF A *54* TABLE. ERR6 RJ SKR SKIP TO NEXT RECORD RJ SEH SET ERROR HEADER MX7 42 SA1 TSKNM TASK NAME RJ SFN SPACE FILL NAME SA6 ERRD+1 WRITEW O,ERRD,ERRDL SX2 B1+B1 RJ ALC ADVANCE LINE COUNT EQ ERR9 RETURN * UNKNOWN ERROR CONDITION. ERR7 MESSAGE ERRE * LIBTASK ERROR CONDITION UNKNOWN.* ABORT * TLD IS FULL. ERR8 RJ SEH SET ERROR HEADER MX7 42 SA1 TSKNM TASK NAME RJ SFN SPACE FILL NAME SA6 ERRF+1 WRITEW O,ERRF,ERRFL SX2 2 RJ ALC ADVANCE LINE COUNT EQ ERR9 RETURN * TRD IS FULL. ERR10 RJ SEH SET ERROR HEADING MX7 42 SA1 INPT TRANSACTION NAME RJ SFN SPACE FILL NAME SA6 ERRG+1 WRITEW O,ERRG,ERRGL SX2 B1+B1 RJ ALC ADVANCE LINE COUNT EQ ERR9 RETURN ERRA DATA 20H0 DATA C* BINARY RECORD WAS LESS THAN 64D WORDS LONG.* ERRAL EQU *-ERRA LENGTH OF MESSAGE ERRB DATA 20H0 DATA C* BINARY RECORD WAS NETHER ABSOLUTE NOR OVERLAY.* ERRBL EQU *-ERRB LENGTH OF MESSAGE ERRC DATA 20H0 DATA C/ MORE THAN ONE ENTRY POINT ON A *54* TABLE./ ERRCL EQU *-ERRC LENGTH OF MESSAGE ERRD DATA 20H0 DATA C* INCORRECT FWA FOR LOAD.* ERRDL EQU *-ERRD LENGTH OF MESSAGE ERRE DATA C* LIBTASK ERROR CONDITION UNKNOWN.* ERRF DATA 20H0 DATA C* DIRECTORY IS FULL - NO MORE ADDITIONS ALLOWED.* ERRFL EQU *-ERRF LENGTH OF MESSAGE ERRG DATA 20H0 DATA C* TRD IS FULL - NO MORE ADDITIONS ALLOWED.* ERRGL EQU *-ERRG FPL SPACE 4,20 ** FPL - FORMAT PRINT LINE. * * FORMATS THE PRINT LINE FOR EITHER THE TASK NAME REPORT * OR THE TRANSACTION UNIT REPORT, PRINTS THE LINE, AND * CALLS *ALC* TO ADVANCE THE LINE COUNT. * * ENTRY (A1) = FWA OF TLD/TRD ENTRY. * (FPLC) = 0, IF TLD IS BEING FORMATTED. * = 1, IF TRD IS BEING FORMATTED. * * EXIT LINE PRINTED. * * USES X - 0, 1, 2, 3, 4, 5, 6, 7. * A - 1, 2, 4, 5, 6. * B - 2, 3, 4, 5, 6, 7. * * CALLS ALC, COD, PRH, SFN, STD. * * MACROS WRITEC, WRITEW. FPL SUBR ENTRY/EXIT SA2 FPLC FORMAT FLAG NZ X2,FPL7 IF FORMATTING TRANSACTION UNITS SA2 A1+TLTNW FIRST WORD OF TLD MX4 TLTNN BX1 X4*X2 TASK NAME RJ SFN SPACE FILL NAME LX6 -6 SA6 FPLB SET IN FIRST WORD OF PRINT LINE SA2 A1+B1 SECOND WORD OF TLD MX0 -TLMPN BX1 -X0*X2 MAXIMUM PRIORITY RJ COD CONVERT TO DISPLAY CODE SA2 A2+B1 THIRD WORD OF TLD BX5 X6 SAVE MAXIMUM PRIORITY LX2 TLBPN-1-TLBPS BX1 -X0*X2 BEGINNING PRIORITY MX0 -36 BX5 -X0*X5 CLEAR OUT BEGINNING PRIORITY RJ COD CONVERT TO DISPLAY CODE LX6 59-23 BX6 X0*X6 BEGINNING PRIORITY BX6 X6+X5 ADD MAXIMUM TO BEGINNING PRIORITY MX4 -TLQLN SA2 A2 THIRD WORD OF TLD SA6 A6+1 SET IN SECOND WORD OF PRINT LINE BX1 -X4*X2 QUEUE LIMIT RJ COD CONVERT TO DISPLAY CODE LX6 24 MX0 -TLFLN SA6 A6+1 SET IN THIRD WORD OF PRINT LINE SA2 A1+TLFLW SECOND WORD OF TLD BX5 X2 LX2 TLFLN-1-TLFLS BX1 -X0*X2 LX1 6 FIELD LENGTH*100B RJ COD CONVERT TO DISPLAY CODE LX6 24 SA6 A6+1 SET IN FOURTH WORD OF PRINT LINE LX5 TLEFN-1-TLEFS ERRNZ TLFLW-TLEFW BX1 -X0*X5 LX1 6 EXTRA FL*100B RJ COD CONVERT TO DISPLAY CODE LX6 24 SA6 A6+B1 SET IN FIFTH WORD OF PRINT LINE SA5 FPLA BX6 X5 SA4 A1+TLNDW THIRD WORD OF TLD BX1 X4 SA6 A6+1 SET SPACES IN SIXTH WORD OF PRINT LINE SB2 1R- BX0 X4 LX1 59-TLNDS SX2 B2+ NG X1,FPL1 IF NOT DESTRUCTIVE CODE SX2 1RD ADD IN *D* FPL1 BX1 X4 LX2 6 SX3 B2 LX1 59-TLCMS PL X1,FPL2 IF NO CM RESIDENT SX3 1RC FPL2 BX2 X2+X3 ADD IN *C* OR *-* LX1 59-TLECS-59+TLCMS SX3 B2 LX2 6 PL X1,FPL3 IF NOT EXTENDED MEMORY RESIDENT SX3 1RE FPL3 BX2 X2+X3 ADD IN *E* OR *-* LX0 59-TLTOS SX3 B2 LX2 6 PL X0,FPL4 IF TASK IS NOT OFF SX3 1RO FPL4 BX2 X2+X3 ADD IN *O* OR *-* LX4 59-TLSCS SX3 B2 LX2 6 PL X4,FPL5 IF NO SOLICITED COMMUNICATION BLOCK SX3 1RR FPL5 BX2 X2+X3 ADD IN *R* OR *-* LX4 59-TLQUS-59+TLSCS SX3 B2 LX2 6 PL X4,FPL6 IF QUEUEING NOT ENFORCED SX3 1RQ FPL6 BX2 X2+X3 ADD IN *Q* OR *-* MX4 -24 LX2 24 BX6 -X4*X5 BX6 X6+X2 ADD ATTRIBUTES TO SPACES SA6 A6+B1 SET IN SEVENTH WORD OF PRINT LINE EQ FPL14 PRINT OUT LINE * FORMAT THE PRINT LINE FOR THE TRANSACTION UNIT REPORT. FPL7 MX0 TDTNN SA2 A1 FIRST WORD OF TRD SB4 A1 BX1 X0*X2 TRANSACTION NAME SB7 4 RJ SFN SPACE FILL NAME LX6 -6 SA6 FPLB SET IN FIRST WORD OF PRINT LINE SA5 A6-B1 GET SPACES FPL8 SA2 A2+1 GET NEXT WORD IN TRD BX6 X5 BX1 X0*X2 ZR X1,FPL10 IF NO TASK RJ SFN SPACE FILL NAME SB3 TLDLE LENGTH OF TLD ENTRY SB5 TLD START OF TLD BX2 X1 SA1 LWOLD SB6 X1 LWA OF TLD RJ STD SEARCH TLD ZR X1,FPL10 IF TASK NAME IN TLD LX6 -6 MX3 -54 BX1 -X3*X6 SX4 1R( LX4 -6 BX6 X1+X4 ADD IN LEFT PARENTHESIS SB5 -6 MX1 -6 SX4 1R SB6 6 FPL9 LX6 -6 BX3 -X1*X6 IX7 X3-X4 SB5 B5+B6 ZR X7,FPL9 IF BLANK LX6 B6 MX1 54 BX2 X1*X6 SX1 1R) BX6 X2+X1 ADD IN RIGHT PARENTHESIS LX6 B5 POSITION NAME FPL10 SB7 B7-B1 SA6 A6+B1 SET NAME IN PRINT LINE PL B7,FPL8 IF MORE TASKS MX4 -48 SA2 B4+TDDCW FIRST WORD OF TRD BX6 -X4*X5 CLEAR OUT *CRM* AND *CDCS* USAGE BX0 X2 LX2 59-TDDCS SX3 1R- PL X2,FPL11 IF NOT *CDCS* USAGE SX3 1RD FPL11 LX3 -6 BX6 X6+X3 ADD IN *D* OR *-* SX3 1R- LX2 59-TDRMS-59+TDDCS PL X2,FPL12 IF NOT *CRM* USAGE SX3 1RC FPL12 LX3 -12 BX6 X6+X3 ADD IN *C* OR *-* MX4 54 LX0 59-TDRCS SX3 1RN LX4 12 BX6 X4*X6 CLEAR OUT RECOVER FLAG PL X0,FPL13 IF NOT RECOVERABLE SX3 1RY FPL13 LX3 12 BX6 X6+X3 ADD IN *N* OR *Y* SA6 A6+1 SET IN SEVENTH WORD OF PRINT LINE * PRINT OUTPUT LINE. FPL14 WRITEC O,FPLB PRINT OUT LINE SX2 B1+ RJ ALC ADVANCE LINE COUNT SA4 ALCA GET LINE COUNT SA2 FPLC SA5 PLOH SX4 X4-3 SA5 X5+TLDLE GET NEXT TLD ENTRY ZR X2,FPL15 IF TLD FORMAT SA5 PLOH SA5 X5+TRDLE1 GET NEXT TRD ENTRY FPL15 ZR X5,FPLX IF NO MORE ENTRIES RETURN NZ X4,FPLX IF NOT NEW PAGE RETURN RJ PRH PRINT REPORT HEADER EQ FPLX RETURN FPLA CON 1H SPACES FPLB BSS 7 PRINT LINE BUFFER CON 8L FPLC CON 0 FORMAT FLAG LRL SPACE 4,20 ** LRL - WRITE RECORD LIST. * * WRITE A LIST OF TASK NAMES ONTO THE OUTPUT FILE, EIGHT NAMES * ON EACH LINE, AND UPDATE THE LINE COUNT. IF THERE ARE NO * TASK NAMES IN THE LIST, *NONE* IS WRITTEN. * * ENTRY (X1) = FWA OF RECORD LIST. * (X5) = NUMBER OF RECORDS IN LIST * * EXIT - RECORDS WRITTEN ON OUTPUT FILE. * * USES A - 0, 1, 2, 6. * B - 2, 3, 5, 6. * X - ALL. * * CALLS ALC, SFN. * * MACROS WRITEC, WRITEW. LRL SUBR ENTRY/EXIT SX7 X5-23 SA0 11 TASKS PER LINE SB5 X1 ADDRESS OF FIRST TASK NAME SB6 A0 SX0 B1 SB3 B0 PL X7,LRL2 IF MORE THAN 23 TASKS TO LIST SX6 X5-9 NG X6,LRL4 IF 8 TASKS ON ONE LINE SX3 X5 LX3 -1 DIVIDE COUNT BY TWO SA0 X3 SB6 A0 PL X3,LRL2 IF EVEN NUMBER OF TASKS SB6 B6+1 LRL2 SX3 X5 SX4 A0 IX0 X3/X4 NUMBER OF LINES SB2 A0 NE B2,B6,LRL3 IF FORCED ODD COUNT LINES SX2 X0 SX4 A0 IX2 X2*X4 CHECK FOR REMAINDER IX4 X5-X2 ZR X4,LRL3 IF NO ODD COUNT LINES SB3 X4+B1 SX0 X0+B1 LRL3 SX1 B5+ LX1 18 BX0 X1+X0 SX2 B3+ LX2 36 BX0 X0+X2 LRL4 SA2 STLAB BLANKS MX4 42 MASK FOR TASK NAMES BX6 X2 SA6 WBUF LRL5 ZR X5,LRL7 IF DONE LISTING TASK NAMES SA1 B5 TASK NAME BX1 X4*X1 ZR B3,LRL6 IF NO EXTRA LINES IN THIS COLUMN SB3 B3-1 NZ B3,LRL6 IF EXTRA LINES REMAIN SX2 B1 IX0 X0-X2 REMOVE EXTRA COLUMN COUNT LRL6 SX5 X5-1 RJ SFN SPACE FILL NAME SB6 B6-B1 SA6 A6+1 STORE TASK NAME IN OUTPUT BUFFER SB5 B5+X0 NZ B6,LRL5 IF MORE NAMES TO PRINT ON THIS LINE LRL7 BX6 X6-X6 SA6 A6+B1 TERMINATE LINE WRITEC O,WBUF,WBUFL SX2 B1 RJ ALC ADVANCE LINE COUNT SB6 A0 NAMES TO LIST ON NEXT LINE LX0 -18 SX1 B1 SB5 X0+B1 IX0 X0+X1 LX0 -18 SB3 X0 LX0 36 ZR B3,LRL8 IF NO EXTRA LINES IX0 X0+X1 LRL8 NZ X5,LRL4 IF NOT END OF LISTING WRITEW O,BLINE,1 SKIP ONE LINE SX2 B1+ RJ ALC ADVANCE LINE COUNT EQ LRLX RETURN LRLA DATA C/ *NONE*/ LRLAL EQU *-LRLA PCR SPACE 4,15 ** PCR - PROCESS CREATION RUN. * * ENTRY FILE INITIALIZED. * * EXIT NEW TASK LIBRARY CREATED. * * USES A - 1. * X - 1, 5. * * CALLS CDR, RBF, SDR. * * MACROS REWIND. PCR SUBR ENTRY/EXIT SA1 PN SX5 P ZR X1,PCR1 IF *P* AND *N* ARE IDENTICAL SX5 N PCR1 REWIND X5 RJ RBF READ BINARY FILE RJ SDR SORT DIRECTORY RJ CDR COPY DIRECTORY TO NEW TASK LIBRARY EQ PCRX RETURN PLO SPACE 4,20 ** PLO - PROCESS LIST OPTION. * * READ TASK AND TRANSACTION DIRECTORIES AND PRODUCE A * FORMATTED LISTING OF ALL TASKS AND THEIR ATTRIBUTES * AND ALL TRANSACTIONS WITH THEIR ATTRIBUTES. * * ENTRY TLD = FWA OF TASK LIBRARY DIRECTORY. * TRD = FWA OF TRANSACTION UNIT DIRECTORY. * * EXIT *PLO* PROCESSSING COMPLETE. * * ERROR (BFEF) NON ZERO IF NAME NOT IN DIRECTORY. * * USES X - 1, 2, 3, 6, 7. * A - 1, 2, 6, 7. * B - 2, 3, 5, 6. * * CALLS FPL, PRH, SNM, STD, STL. * * MACROS WRITEW. PLO SUBR ENTRY/EXIT SA1 ALCA GET LINE COUNT SX1 X1-3 ZR X1,PLO1 IF PAGE EJECT NOT NEEDED RJ STL SET NEW TITLE PAGE PLO1 SX2 1RT SA1 LO LX2 -6 IX3 X2-X1 ZR X3,PLO6 IF *LO=T* SX2 1RX LX2 -6 IX3 X2-X1 ZR X3,PLO7 IF *LO=X* PLO1.1 SA1 LWTLD SX1 X1-TLD LENGTH OF TLD ZR X1,PLO3 IF NO TLD ENTRIES SX2 B0+ RJ PRH PRINT HEADER FOR TASK NAME REPORT SX6 B0+ SA1 TLD SA6 FPLC FORMAT TLD PLO2 SX7 A1+ SA7 PLOH SAVE LAST TLD ENTRY RJ FPL FORMAT PRINT LINE SA1 PLOH SA1 X1+TLDLE GET NEXT TLD ENTRY SA2 LWTLD SX3 A1 IX1 X2-X3 ZR X1,PLO3 IF NO MORE TLD ENTRIES EQ PLO2 LOOP FOR NEXT ENTRY PLO3 SA2 PLOI NZ X2,PLOX IF *LO=T* SA2 ALCA GET LINE COUNT SX2 X2-3 ZR X2,PLO4 IF PAGE EJECT NOT NEEDED RJ STL SET NEW TITLE PAGE PLO4 SA1 LWTRD SX1 X1-TRD LENGTH OF TRD ZR X1,PLOX IF NO TRD ENTRIES SX2 B1+ RJ PRH PRINT HEADER FOR TRANSACTION UNIT REPORT SX6 B1+ SA1 TRD SA6 FPLC FORMAT TRD PLO5 SX7 A1+ SA7 PLOH SAVE LAST TRD ENTRY RJ FPL FORMAT PRINT LINE SA1 PLOH SA1 X1+TRDLE1 GET NEXT TRD ENTRY SA2 LWTRD SX3 A1 IX1 X2-X3 ZR X1,PLOX IF NO MORE TRD ENTRIES EQ PLO5 LOOP FOR NEXT ENTRY * PROCESS *LO=T* OPTION. PLO6 SA2 XTN GET TASK NAME SX7 B1+ SA7 PLOI SET *LO=T* ZR X2,PLO1.1 IF *LO=T* WITH NO *TN* SB3 TLDLE LENGTH OF TLD ENTRY SB5 TLD START OF TLD SA1 LWOLD LWA OF BASE TLD SB6 X1+ RJ STD SEARCH TLD NZ X1,PLO8 IF ENTRY NOT FOUND SX7 A1 SX2 B0 SA7 PLOH SAVE FWA OF ENTRY RJ PRH PRINT TASK NAME REPORT HEADER SX6 B0 SA1 PLOH SA1 X1 FWA OF TLD ENTRY SA6 FPLC FORMAT TLD RJ FPL FORMAT PRINT LINE EQ PLOX RETURN * PROCESS *LO=X* OPTION. PLO7 SA2 XTN GET TRANSACTION NAME ZR X2,PLO3 IF *LO=X* WITH NO *TN* SB3 TRDLE1 LENGTH OF TRD ENTRY SB5 TRD START OF TRD SA1 LWTRD LWA OF TRD SB6 X1+ RJ STD SEARCH TRD NZ X1,PLO8 IF ENTRY NOT FOUND SX7 A1 SX2 B1 SA7 PLOH SAVE FWA OF ENTRY RJ PRH PRINT TRANSACTION UNIT REPORT HEADER SX6 B1 SA1 PLOH SA1 X1 FWA OF TRD ENTRY SA6 FPLC FORMAT TRD RJ FPL FORMAT PRINT LINE EQ PLOX RETURN PLO8 SA1 XTN ENTRY NOT FOUND SB2 1RX SB5 PLOG ERROR MESSAGE RJ SNM SET NAME IN MESSAGE WRITEW O,BLINE,1 WRITEW O,PLOG,PLOGL SA1 BFEF SX6 X1+1 INCREMENT ERROR FLAG SA6 A1+ EQ PLOX RETURN PLOA DATA C* TASK NAME REPORT* CON 8L PLOAL EQU *-PLOA PLOB DATA C* TASK PRIORITY FIELD EXTRA , ATTR* PLOBL EQU *-PLOB PLOC DATA C* NAME BEG MAX QL LENGTH FL , DCEORQ* CON 8L PLOCL EQU *-PLOC PLOD DATA C* TRANSACTION NAME REPORT* CON 8L PLODL EQU *-PLOD PLOE DATA C* TRANSACTION TASKS , D.M.* PLOEL EQU *-PLOE PLOF DATA C* NAME 1ST 2ND 3RD 4TH 5 ,TH DC RECOVER* CON 8L PLOFL EQU *-PLOF PLOG DATA C* XXXXXXX NOT IN DIRECTORY.* PLOGL EQU *-PLOG PLOH CON 0 FWA OF ENTRY PLOI CON 0 *LO*/*TN* FLAG PNP SPACE 4,15 ** PNP - PROCESS NO PARAMETERS. * * ENTRY FILE INITIALIZED. * * EXIT NEW TASK LIBRARY CREATED OR UPDATED. * * USES A - 1, 2. * X - 1, 2, 5. * * CALLS CDR, PCR, PIT, RBF, SDR. * * MACROS SKIPEI. PNP SUBR ENTRY/EXIT SA1 AT SA2 P NZ X2,PNP1 IF NOT *P=0* RJ PCR PROCESS CREATE OPTION EQ PNPX RETURN PNP1 ZR X1,PNP2 IF ATTACHED IN *MODIFY* MODE RJ PIT PURGE INACTIVE TASKS EQ PNPX RETURN PNP2 SA1 B SA2 I BX1 X1+X2 ZR X1,PNPX IF NO *I* OR *B* FILE SX5 P RJ RBF READ BINARY FILE RJ SDR SORT DIRECTORY RJ CDR COPY DIRECTORY EQ PNPX RETURN PIT SPACE 4,15 ** PIT - PURGE INACTIVE TASKS (*PR* OPTION). * * ENTRY FILE INITIALIZED. * * EXIT NEW FILE CREATED FROM *P* AND *B*. * * USES A - 1, 6. * X - 1, 5, 6. * * CALLS CDR, RBF, SAT, SAP, SDR. PIT SUBR ENTRY/EXIT SA1 LWTLD SAVE LWA OF TLD BX6 X1 SA6 LATLD SA1 PN NZ X1,PIT2 IF *P* AND *N* ARE NOT EQUAL SX5 P COPY TO *P* FILE RJ RBF READ BINARY FILE RJ SAT SELECT ALL ACTIVE TASKS SX5 P COPY TO P FILE RJ SDR SORT DIRECTORY PIT1 SA1 LATLD COPY ACTUAL LENGTH OF TLD BX6 X1 SA6 LWTLD SX6 B1 SA6 MTRD FORCE COPY OF TRD IF IT EXISTS RJ CDR COPY DIRECTORY EQ PITX RETURN PIT2 REWIND N SX5 N RJ RBF READ BINARY FILE RJ SAP SELECT ACTIVE TASKS FROM *P* FILE SX5 N RJ SDR SORT DIRECTORY EQ PIT1 COPY DIRECTORY PRH SPACE 4,20 ** PRH - PRINT REPORT HEADER. * * PRINTS THE HEADER FOR EITHER THE TASK NAME REPORT OR * THE TRANSACTION UNIT REPORT AND CALLS *ALC* TO ADVANCE * THE LINE COUNT. * * ENTRY (X2) = 0, PRINT TASK NAME REPORT HEADER. * 1, PRINT TRANSACTION UNIT REPORT HEADER. * * EXIT APPROPRIATE HEADER PRINTED. * * USES X - 2. * * CALLS ALC. * * MACROS WRITEW. PRH SUBR ENTRY/EXIT NZ X2,PRH1 IF TRANSACTION UNIT HEADER WANTED WRITEW O,BLINE,1 WRITEW O,PLOA,PLOAL WRITEW O,PLOB,PLOBL WRITEW O,PLOC,PLOCL EQ PRH2 ADVANCE LINE COUNT PRH1 WRITEW O,BLINE,1 WRITEW O,PLOD,PLODL WRITEW O,PLOE,PLOEL WRITEW O,PLOF,PLOFL PRH2 SX2 6 RJ ALC ADVANCE LINE COUNT EQ PRHX RETURN PTT SPACE 4,15 ** PTT - PROCESS TELL *TAF* OPTION. * * ENTRY FILE INITIALIZED. * * EXIT FILE *N* UPDATED. * * USES A - 1. * X - 1, 5. * * CALLS CDR, RBF. * * MACROS RETURN, SYSTEM. PTT SUBR ENTRY/EXIT SX5 P RJ RBF READ BINARY FILE RJ CDR COPY DIRECTORY SA1 DA NZ X1,PTT1 IF *DA* SPECIFIED RETURN X5 PTT1 SYSTEM SIC,R,LIBH,LIBI SEND MESSAGE TO *TAF* EQ PTTX RETURN RBF SPACE 4,30 ** RBF - READ BINARY FILE. * * 1. IF END OF BINARY FILE RETURN TO CALLER. * 2. READ 77 TABLE AND FIRST OF PROGRAM. * 3. IF END OF BINARY RETURN TO CALLER. * 4. IF BINARY TOO SHORT CALL ROUTINE *ERR* AND GO TO STEP 1. * 5. IF NOT A *54* TABLE CALL *ERR* AND GO TO STEP 1. * 6. IF FWA OF LOAD NOT A DEFAULT LOAD ADRESS, * CALL *ERR* AND GO TO STEP 1. * 7. SEARCH DIRECTORY, IF NOT A IGNORE TASK GO TO STEP 9. * 8. SKIP TO NEXT RECORD AND GO TO STEP 1. * 9. COPY BINARY TO NEW FILE AND BUILD A DIRECTORY ENTRY. * 10. GO TO STEP 1. * * ENTRY FILE *B* AND *N* INITIATED. * (X5) = FILE NAME TO COPY TO. * * EXIT FILE *B* PROCESSED AND TASK LIBRARY DIRECTORY BUILT. * * USES A - 1, 2, 3, 4, 5, 6, 7. * B - 2, 3, 5, 6. * X - ALL. * * CALLS ERR, SKR, STD. * * MACROS ADDWRD, MESSAGE, READW, RECALL, SEARCH, WRITER, * WRITEW. RBF SUBR ENTRY/EXIT BX7 X5 SAVE FILE NAME SA7 RBFA RBF1 SA1 EOFF NZ X1,RBFX IF END OF BINARY FILE SA1 B ZR X1,RBFX IF NO BINARIES READW B,HB,HBL READ 77 TABLE AND FIRST WORDS OF PROGRAM NG X1,RBFX IF FINISHED WITH BINARY FILE SX6 B1+ NZ X1,RBF19 IF BINARY FILE TOO SHORT SA2 HB+1 MX0 42 BX7 X0*X2 MX0 -6 SB2 10 * ZERO FILL TASK NAME. RBF2 LX7 6 BX1 -X0*X7 SX2 X1-1R SB2 B2-B1 NZ X2,RBF3 IF NOT BLANK BX7 X0*X7 REMOVE BLANK RBF3 NZ B2,RBF2 IF NOT AT WORD BOUNDARY SA7 TSKNM TASK NAME LEFT JUSTIFIED SA7 LIBG+1 FOR DISPLAY PURPOSES * CHECK INCORRECT BINARYS. SA5 RBFA FILE NAME RECALL X5 SA1 HB+17B MX2 12 BX2 X2*X1 SX6 B1+B1 ERROR FLAG LX2 12 SX3 X2-5300B SX4 X2-5100B SX6 X2-5000B SX7 X2-5400B ZR X3,RBF4 IF *OVERLAY* ZR X4,RBF4 IF *ABS* ZR X6,RBF4 IF *ACPM* SB2 X1 NUMBER OF ENTRY POINTS SX6 B1+B1 INCORRECT RECORD TYPE NZ X7,RBF19 IF NOT *5400* TABLE SX6 3 NE B2,B1,RBF19 IF MORE THAN ONE ENTRY POINT BX7 X7-X7 EQ RBF5 COPY BINARY RECORD RBF4 LX1 -18 SX3 X1-FWLD BX7 X7-X7 SX6 4 ERROR FLAG NZ X3,RBF19 IF FWA OF LOAD NOT AT DEFAULT LOAD ADDRESS * CHECK IGNORE TASK. RBF5 SA1 TSKNM TASK NAME SEARCH DRTC,X1 SEARCH DIRECTORY ZR X2,RBF7 IF TASK NOT IN DIRECTORY SA3 TSKNM TASK NAME RBF6 SA1 A2+B1 SECOND WORD OF DIRECTORY PL X1,RBF8 IF NO IGNORE * IGNORE TASK. BX7 X3 TASK NAME SA7 LIBM+1 ADDWRD TDIG,X3 IGNORE TASK MESSAGE LIBM,1 * IGNORE TASK.* RJ SKR SKIP TO NEXT RECORD EQ RBF1 PROCESS NEXT RECORD RBF7 SA1 TSKNM TASK NAME SEARCH TDCH,X1 SA3 TSKNM EQ RBF6 CHECK IGNORE TASK * DISPLAY TASK NAME WHILE COPYING. RBF8 SA1 X5+6 MASK DISK INDEX MX6 30 BX7 X6*X1 SA7 TSKDI SX0 HBL SA5 RBFA FILE NAME WRITEW X5,HB,X0 WRITE OUT TASK MESSAGE LIBG,1 DISPLAY TASK NAME * COPY BINARY FILE RECORD TO LIBRARY FILE. BX5 X1-X1 INITIATE CALL RBF9 NZ X5,RBF12 IF RECORD COPY COMPLETE SX5 TBL READW B,TB,TBL READ IN NEXT BLOCK FROM BINARY FILE PL X1,RBF10 IF NOT EOF SA6 EOFF SET EOF FLAG EQ RBF12 PROCESS EOF RBF10 ZR X1,RBF11 IF NOT AT EOR SX5 X1-TB RBF11 SA1 RBFA WRITEW X1,TB,X5 WRITE BLOCK TO LIBRARY FILE IX0 X0+X5 SX5 X5-TBL EQ RBF9 CONTINUE COPY RBF12 READ B REINITIALIZE READ ON BINARY FILE SA5 RBFA FILE NAME WRITER X5,R FLUSH BUFFER SX7 X0+177B SA1 RECN AX7 6 SX6 X1+1 RECORD COUNT FOR BINARY FILE LX7 18 SA6 A1+ SA7 TSKFL TASK FIELD LENGTH SA4 TSKNM TASK NAME SA3 HB+17B+10B GET ENTRY POINT ADDRESS OF TASK SX3 X3 BX7 X3+X4 SA7 TSKNE FIRST WORD FOR TLD * CHECK FOR INSERTION OR DELETION. SA3 CR SA2 TSKNM SA1 LWTLD CURRENT LWA FOR TLD SB5 TLD START OF TLD NZ X3,RBF13 IF CREATION RUN SA1 LWOLD LWA ADDRESS OF BASE TLD RBF13 SX0 X1 SB6 X0 SB3 TLDLE TLD ENTRY LENGTH RJ STD CHECK IF TASK ALREADY IN DIRECTORY NZ X1,RBF15 IF TASK NOT IN DIRECTORY SX0 A1 ADDWRD RREC,X2 RECORD REPLACED INDICATOR EQ RBF16 BUILD DIRECTORY RBF15 SB3 A1+ SA3 FSLT FREE SPACE LEFT IN TLD SX7 X3-TLDLE DECREMENT FREE TLD SPACE COUNT SA7 A3 BX1 X2 SX6 5 ERROR FLAG NG X7,RBF19 IF DIRECTORY IS FULL ADDWRD IREC,X1 RECORD INSERTED INDICATOR * INSERT TASK AT END OF DIRECTORY. SA1 LWTLD SX7 X1+TLDLE ADVANCE LWA ADDRESS SA7 A1 SX0 X1 PLACE TO INSERT SA7 LATLD * BUILD AND INSERT NEW ENTRY INTO TLD. RBF16 SA1 TSKNM TASK NAME SEARCH DRTC,X1 CHECK DIRECTIVES TABLE FOR NEW TASK NZ X2,RBF17 IF TASK IN DIRECTORY SA1 TSKNM SEARCH TDCH,X1 CHECK TABLE FOR TASK REPLACING DIRECTIVES ZR X2,RBF18 IF NO DIRECTIVES FOR TASK RBF17 SA1 A2+1 SECOND WORD OF DIRECTIVE ENTRY SA2 A2+2 THIRD WORD OF DIRECTIVE ENTRY MX7 -TLEFN-TLMPN GET EFL+MP BX7 -X7*X1 LX6 X2 SA7 LIBA USE DIRECTIVE ENTRIES FOR TASK DIRECTORY SA6 LIBA+1 RBF18 SA1 TSKNE TASK NAME AND ENTRY POINT SA2 TSKDI LIBRARY FILE RANDOM INDEX FOR TASK BX6 X1 SA3 TSKFL TASK FIELD LENGTH SA6 X0 FIRST WORD OF TLD BX7 X2+X3 SA1 LIBA TASK PRIORITIES SA2 A1+B1 THIRD WORD FOR TLD ENTRY BX7 X7+X1 SA7 X0+1 SECOND WORD OF TLD LX6 X2 SA6 X0+2 THIRD WORD OF TLD * RESET DEFAULT PARAMETERS FOR NEXT TASK. SA1 LIBB RESTORE DEFAULT TASK VALUES SA2 A1+B1 BX7 X1 LX6 X2 SA7 LIBA TASK VALUES SA6 A7+B1 EQ RBF1 PROCESS NEXT TASK * PROCESS ERROR CASE. RBF19 RJ ERR PROCESS ERROR BINARY EQ RBF1 PROCESS NEXT TASK RBFA CON 0 TEMPORARY STORAGE FOR FILE NAME SAP SPACE 4,20 ** SAP - SELECT ACTIVE TASKS FROM *P* FILE. * * ENTRY INPUT DIRECTORY BUILD. * * EXIT ACTIVE TASKS WRITTEN ON *N* FILE. * * USES A - 1, 2, 3, 5, 6. * X - 0, 1, 2, 3, 4, 5, 6. * * MACROS READ, READW, REWIND, SEARCH, WRITER, WRITEW. SAP SUBR ENTRY/EXIT REWIND P,R SA5 TLD+1 SAP1 SA1 A5-B1 TASK NAME MX6 42 BX4 X6*X1 SEARCH RREC,X4 NZ X2,SAP5 IF RECORD REPLACED SEARCH IREC,X4 NZ X2,SAP5 IF RECORD INSERED SA1 A5 WORD 2 OF AN ENTRY MX0 30 BX3 X0*X1 ISOLATE DISK INDEX SA2 A1+B1 WORD 3 OF TLD LX3 30 LX2 59-54 LEFT JUSTIFY DELETD FLAG SX4 B1 SET REQUEST BIT LX4 29 SX6 3RZZZ NG X2,SAP4 IF DELETE TASK BX6 X4+X3 ADD DISK INDEX SA6 P+6 PUT IN FET SA2 P+1 SX6 X2+ SA6 A2+B1 FET+2 SA6 A6+B1 FET+3 SA2 N+6 BX6 X0*X2 ISOLATE NEW INDEX BX3 -X0*X1 CLEAR OUT OLD ONE BX6 X6+X3 SA6 A5 READ P,R * COPY ACTIVE TASKS FROM *P* TO *N*. SAP2 SX5 TBL READW P,TB,X5 READ TASK BINARY FROM SCRATCH ZR X1,SAP3 IF NOT AT EOR SX5 X1-TB SAP3 WRITEW N,TB,X5 WRITE ON LIBRARY SX5 X5-TBL ZR X5,SAP2 IF RECORD COPY NOT COMPLETE WRITER N,R EQ SAP5 CONTINUE WITH NEXT TASK * TASK IS DELETED PLACE DUMMY NAME IN TLD. SAP4 LX6 -18 SA6 A1-B1 REPLACE TASK NAME SA3 LATLD DECREMENT TASK LENGTH SX6 X3-3 SA6 A3+ SAP5 SA5 A5+TLDLE NEXT ENTRY SA1 LWTLD END OF DIRECTORY SX2 A5 IX2 X1-X2 PL X2,SAP1 IF NOT END OF DIRECTORY EQ SAPX RETURN SAT SPACE 4,10 ** SAT - SELECT ACTIVE TASKS. * * ENTRY INPUT DIRECTORY BUILD. * * EXIT ACTIVE TASKS WRITTEN ON *P* FILE. * * USES A - 1, 2, 5, 6. * X - 0, 1, 2, 3, 4, 5, 6. * * MACROS READ, READW, RECALL, REWIND, WRITEF, WRITER, WRITEW. SAT SUBR ENTRY/EXIT REWIND P,R * COPY TASK BINARIES FROM *P* TO SCRATCH. REWIND SF SAT1 READ P,R RECALL SF SAT2 SX5 TBL READW P,TB,TBL NG X1,SAT4 IF EOF ZR X1,SAT3 IF NOT AT EOR SX5 X1-TB SAT3 WRITEW SF,TB,X5 WRITE TO SCRATCH FILE SX5 X5-TBL ZR X5,SAT2 IF RECORD COPY NOT COMPLETE WRITER SF SA1 EOFF ZR X1,SAT1 IF NOT AT EOF SAT4 WRITEF SF SA1 P LX1 59-9 PL X1,SAT1 IF NOT AT EOF * FLUSH BUFFER. WRITEF SF REWIND P,R RECALL SF REWIND SF,R SA5 TLD+1 * SELECT ACTIVE TASKS FROM SCRATCH TO *P*. SAT5 SA1 A5 WORD 2 OF AN ENTRY MX0 30 BX3 X0*X1 ISOLATE DISK INDEX SA2 A1+B1 WORD 3 OF TLD LX3 30 LX2 59-54 LEFT JUSTIFY DELETE FLAG SX4 B1 SET REQUEST BIT LX4 29 SX6 3RZZZ NG X2,SAT8 IF DELETE TASK BX6 X4+X3 ADD DISK INDEX SA6 SF+6 PUT IN FET SA2 SF+1 SX6 X2 SA6 A2+B1 FET+2 SA6 A6+B1 FET+3 SA2 P+6 BX6 X0*X2 ISOLATE NEW INDEX BX3 -X0*X1 CLEAR OUT OLD ONE BX6 X6+X3 SA6 A5+ READ SF,R SAT6 SX5 TBL READW SF,TB,X5 READ TASK BINARY FROM SCRATCH ZR X1,SAT7 IF NOT AT EOR SX5 X1-TB SAT7 WRITEW P,TB,X5 WRITE ON LIBRARY SX5 X5-TBL ZR X5,SAT6 IF RECORD COPY NOT COMPLETE WRITER P,R EQ SAT9 CONTINUE WITH NEXT TASK * TASK IS DELETED PLACE DUMMY NAME IN TLD. SAT8 LX6 -18 SA6 A1-B1 REPLACE TASK NAME SA3 LATLD DECREMENT TASK LENGTH SX6 X3-3 SA6 A3+ SAT9 SA5 A5+TLDLE NEXT ENTRY SA1 LWTLD END OF DIRECTORY SX2 A5 IX2 X1-X2 PL X2,SAT5 IF NOT END OF DIRECTORY EQ SATX RETURN SDR SPACE 4,15 ** SDR - SORT TASK LIBRARY DIRECTORY. * * ENTRY (TLD) = FWA OF TABLE. * (LWTLD) = LWA OF TABLE. * * EXIT TASK DIRECTORY SORTED. * * USES A - 1. * B - 2, 3, 6. * X - 0, 1, 2. * * CALL SSR. SDR SUBR ENTRY/EXIT SB2 TLDLE LENGTH PER ENTRY SA1 LWTLD LWA OF TABLE SX2 TLD FWA OF TABLE SB3 SDRA FWA OF TEMPORARY BUFFER IX1 X1-X2 LENGTH OF TABLE SB6 X2+ MX0 42 MASK TASK NAME RJ SSR SHELL SORT RECORD EQ SDRX RETURN SDRA BSS TLDLE TEMPORARY BUFFER FOR TLD SEH SPACE 4,15 ** SEH - SET ERROR HEADING. * * * PLACE AN ERROR PAGE HEADING ON THE OUTPUT FILE. * * EXIT - ERROR HEADING WRITTEN ON OUTPUT FILE. * * USES A - 1, 6. * X - 1, 2, 6. * * CALLS ALC. * * MACROS WRITEW. * * NOTE ONLY THE FIRST CALL WRITES THE ERROR HEADING. SEH SUBR ENTRY/EXIT SEHA BSS 0 MODIFIED BY *SEHB* * EQ SEHX RETURN WRITEW O,SEHC,SEHCL SX2 5 RJ ALC ADVANCE LINE COUNT SA1 SEHB WRITE HEADER ONLY ONCE BX6 X1 SA6 SEHA SEHB EQ SEHX RETURN SEHC DATA C/0 *ERRORS*/ DATA C/0 TASK NAME - ERROR TYPE -/ DATA C* * SEHCL EQU *-SEHC HEADER LENGTH SKR SPACE 4,15 ** SKR - SKIP TO NEXT RECORD. * * ENTRY RECORD TO BE SKIPPED ON FILE *B*. * * EXIT RECORD SKIPPED. * * USES A - 1, 6. * X - 1, 6. * * MACROS READ, SKIPEF. SKR SUBR ENTRY/EXIT RECALL B SA1 B CHECK EOR LX1 59-4 NG X1,SKR1 IF EOR ENCOUNTED SKIPF B,,R ADVANCE TO NEXT RECORD SKR1 SA1 X2+B1 SET FIRST = IN = OUT SX6 X1 SA6 A1+B1 SA6 A6+B1 READ B INITIATE READ ON BINARY FILE EQ SKRX RETURN SSR SPACE 4,20 ** SSR - SHELL SORT RECORD. * * ENTRY (B2) = NUMBER OF ELEMENTS PER RECORD. * (B3) = FWA OF TEMPORARY BUFFER. * MUST BE .GE. (B2). * (B6) = FWA OF FILE. * (X1) = LENGTH OF FILE IN CM WORDS. * (X0) = MASK OF KEY IN FIRST WORD OF RECORD. * * EXIT FILE SORTED. * (X5) RESTORED. * * USES A - 3, 6, 7. * B - 2, 4, 5, 7. * X - 1, 2, 3, 4, 5, 6, 7. * * NOTE *SSR* DOES NOT PRESERVE THE ORDER FOR THE SAME KEY. * THIS ROUTINE SHIFTS THE KEY 18 BITS TO THE RIGHT TO * PREVENT NEGATIVE VALUES. * BEGIN NEW PHASE. SSR7 AX4 1 K = K/2 BX3 -X4 IX7 X2*X3 LOCATION OF KTH RECORD SB4 X7 SB7 X2 NUMBER OF CM WORDS PER RECORD SB2 B6+X7 I = FIRST+K NZ X4,SSR4 IF K .NE. ONE SA3 SSRA RESTORE (X5) BX5 X3 SSR SUBR ENTRY/EXIT SX2 B2 NUMBER OF ELEMENTS IN RECORD MX4 12 BX3 X1 TOTAL CM WORDS IN FILE IX3 X3/X2 NUMBER OF RECORD SX2 B2 NX6,B4 X3 BX6 X5 SAVE (X5) AX4 X4,B4 SX1 B6+X1 LWA OF FILE SA6 SSRA BX5 X5-X5 EQ SSR7 ENTER SORT LOOP SSR1 PL X5,SSR3 IF NO SWAP * MOVE RECORD FROM TEMPORARY BUFFER TO J. SB7 X2 NUMBER OF CM WORDS TO MOVE SB5 B5+B4 SSR2 SB7 B7-B1 DECREMENT INDEX SA3 B3+B7 BX6 X3 SA6 B5+B7 NZ B7,SSR2 IF NOT END OF RECORD * MOVE I TOWARD RIGHT. SSR3 SB2 B2+X2 I = I+1 SX3 B2+ IX3 X3-X1 BX5 X5-X5 ZR X3,SSR7 IF END OF FILE * SAVE RECORD I IN TEMPORARY BUFFER. SB7 X2 NUMBER OF CM WORDS TO SAVE SSR4 SB7 B7-B1 SA3 B2+B7 BX6 X3 SA6 B3+B7 NZ B7,SSR4 IF NOT END OF RECORD SB5 B2-B4 J = I-K BX7 X0*X3 MASKING KEY OF T(I) LX7 42 SHIFT SO NO SIGN BIT SSR5 SA3 B5+ P = T(J) BX6 X0*X3 MASKING KEY OF P LX6 42 SHIFT SO NO SIGN BIT IX6 X7-X6 PL X6,SSR1 IF RECORD IN ORDER * PUT RECORD J IN PLACE OF I. SB7 X2 NUMBER OF CM WORDS TO MOVE SX5 B5+B4 SSR6 SB7 B7-B1 DECREMENT INDEX SA3 B5+B7 BX6 X3 SA6 X5+B7 NZ B7,SSR6 IF NOT END OF RECORD MX5 1 SET FLAG INDICATE RECORD HAS BEEN REPLACED * MOVE J TOWARD LEFT. SB5 B5-B4 J = J-K GE B5,B6,SSR5 IF IN BOUNDS EQ SSR1 SELECT NEXT RECORD SSRA CON 0 TEMPORARY STORAGE FOR (X5) STD SPACE 4,20 ** STD - SEARCH TASK/TRANSACTION DIRECTORY. * * PERFORM A BINARY SEARCH OF A TASK OR TRANSACTION DIRECTORY * FOR THE SPECIFIED TASK OR TRANSACTION NAME. * * ENTRY (X2) = LEFT JUSTIFIED TASK/TRANSACTION NAME. * (B3) = LENGTH OF ENTRY. * (B5) = START OF DIRECTORY. * (B6) = END OF DIRECTORY. * * EXIT (A1) = FWA OF ENTRY IF FOUND. * (X1) = 0 IF ENTRY FOUND. * (X1) .NE. 0 IF ENTRY NOT IN DIRECTORY. * * USES A - 1, 3, 7. * X - 0, 1, 3, 4, 7. * B - 5, 6, 7. * * NOTE (X0) AND (B7) RESTORED UPON EXIT. STD SUBR ENTRY/EXIT SX7 B7 SA7 STDB SAVE (B7) BX7 X0 SA7 STDC SAVE (X0) BX0 X2 LX0 42 SHIFT SO NO SIGN BIT SX7 B6 LWA OF BASE TLD SA7 STDA MX7 42 MASK FOR TASKS/TRANSACTIONS EQ STD2 ENTER LOOP STD1 SB5 A1+B3 SET NEW LOW LIMIT STD2 SX3 B6-B5 FIND MIDDLE SX4 B3 IX3 X3/X4 AX3 1 SX4 B3 IX3 X4*X3 SA1 B5+X3 READ AN ENTRY BX4 X7*X1 LX4 42 SHIFT SO NO SIGN BIT IX1 X4-X0 ZR X1,STD6 IF FOUND ZR X3,STD4 IF END OF BASE DIRECTORY NG X1,STD1 IF TOO LOW IN TABLE SB6 A1+ SET NEW HIGH LIMIT EQ STD2 FIND NEXT ENTRY * ENTRIES ADDED ON A NONCREATION RUN ARE PLACED SEQUENTIALLY * AT THE END OF THE TLD. STD4 SA3 STDA LWA+1 OF BASE TLD SB6 B3-TLDLE NZ B6,STD6 IF TRANSACTION SEARCH SB6 X3 SB5 B3 LENGTH OF TLD ENTRY STD5 SA3 B6 SB6 B6+B5 ZR X3,STD6 IF END OF TLD BX3 X7*X3 LX3 42 SHIFT SO NO SIGN BIT IX3 X3-X0 NZ X3,STD5 IF TASK NAME DID NOT MATCH SA1 A3 BX1 X1-X1 * MATCH FOUND. STD6 SA3 STDB RESTORE (B7) SB7 X3+ SA3 STDC RESTORE (X0) BX0 X3 EQ STDX RETURN STDA BSS 1 LWA+1 OF BASE TLD STDB BSS 1 (B7) STDC BSS 1 (X0) STL SPACE 4,15 ** STL - SET TITLE LINE FOR OUTPUT PAGE. * * STL WRITES THE TITLE LINE ONTO THE OUTPUT FILE, AND ADJUSTS * THE LINE COUNT ACCORDINGLY. * * ENTRY - JOBORG = 0 IF INTERACTIVE ORIGIN * * EXIT - TITLE LINE WRITTEN TO OUTPUT * * USES A - 1, 6, 7. * X - 1, 3, 6, 7. * * MACROS WRITEW. STL SUBR SX3 STLAL SA1 JOBORG NZ X1,STL1 IF NOT INTERACTIVE ORIGIN SA1 BLINE BX6 X1 SA6 STLAT SX3 STLAL-3 STL1 WRITEW O,STLA,X3 WRITEC O,BLINE SX7 3 SA7 ALCA SET LINE COUNT EQ STLX RETURN STLA CON 10H1TASK LIBR CON 10HARY EDITIN CON 10HG PROGRAM. STLAB CON 10H STLAD CON 10H DATE STLAT CON 10H TIME STLAP CON 10H PAGE 1 BLINE CON 8L CON 8L STLAL EQU *-STLA STN SPACE 4,20 ** STN - SEARCH TASK NAMES. * * DETERMINE IF EACH TASK, DEFINED IN EACH TRANSACTION ENTRY * WITHIN THE DIRECTORY, EXISTS. IF NOT, THE TRANSACTION NAME * IS ADDED TO A LIST TO BE PRINTED WITH THE NORMAL *LIBTASK* * OUTPUT. IN ADDITION, ANY ENTRY HAVING ITS LOGICALLY- * DELETED-BIT SET, WILL HAVE ITS NAME CHANGED TO ;;;. THIS * WILL INSURE THAT AFTER THE TRD IS SORTED, THOSE TRANSACTIONS * WILL BE PHYSICALLY DELETED FROM THE TRD. * * ENTRY (LATRD) = LWA OF TRD. * * EXIT (X5) = RESTORED. * * USES A - 1, 2, 5, 6. * X - 1, 2, 5, 6. * B - 2, 3, 5, 6, 7. * * CALLS STD. * * MACROS ADDWRD. STN SUBR ENTRY/EXIT BX6 X5 SA6 STNC SAVE (X5) SB2 TRD-TRDLE1 SB3 TLDLE LENGTH OF TLD ENTRY STN1 SX5 TRDLE1 SA1 LATRD LWA OF TRD SB2 B2+X5 SB7 X1 GE B2,B7,STN4 IF ALL CHECKED SA2 B2+ NEXT TRANSACTION ENTRY BX6 X2 SA6 STNB SAVE TRANSACTION NAME LX2 59-TDDLS PL X2,STN2 IF NOT LOGICALLY DELETED SA1 STNA BX6 X1 SA6 A2 SET NAME TO ;;; EQ STN1 NEXT ENTRY STN2 SX5 X5-1 ZR X5,STN1 IF ALL TASKS CHECKED SA2 A2+1 NEXT TASK NAME SA1 LWOLD SB5 TLD FWA OF TLD SB6 X1+ LWA OF TLD ZR X2,STN1 IF END OF LIST RJ STD SEARCH TASK DIRECTORY NZ X1,STN3 IF TASK NOT FOUND SA1 A1+TLDLW LX1 59-TLDLS PL X1,STN2 IF TASK NOT LOGICALLY DELETED STN3 SA1 STNB ADDWRD TTNE,X1 ADD TRANSACTION NAME TO LIST EQ STN1 NEXT ENTRY STN4 SA5 STNC RESTORE (X5) EQ STNX RETURN STNA VFD 60/3L;;; NAME FOR DELETED TRANSACTIONS STNB CON 0 TRANSACTION NAME STNC CON 0 (X5) STR SPACE 4,10 ** STR - SORT TRANSACTION DIRECTORY. * * ENTRY (TRD) = FWA OF TABLE. * (LATRD) = LWA OF TABLE. * * USES X - 0, 1, 2. * A - 1. * B - 2, 3, 6. * * CALLS SSR. STR SUBR ENTRY/EXIT SB2 TRDLE1 LENGTH PER ENTRY SA1 LATRD LWA OF TABLE SX2 TRD FWA OF TABLE SB3 STRA FWA OF TEMPORARY BUFFER IX1 X1-X2 TABLE LENGTH SB6 X2+ MX0 42 MASK FOR TRANSACTION NAME RJ SSR SHELL SORT EQ STRX RETURN STRA BSSZ TRDLE1 TEMPORARY BUFFER FOR SORT TOV SPACE 4,10 ** TOV - TABLE OVERLFOW PROCESSOR. * * THIS TAG IS REQUIRED BY THE MANAGED TABLE ROUTINES * IN CASE OF TABLE ERRORS. * TOV MESSAGE TOVA ABORT TOVA DATA C* TABLE OVERFLOW - TOO MANY TASKS.* MEML SPACE 4 * RESERVED SPACE FOR THE MANAGED TABLES. RRECL EQU 50 INITIAL ALLOCATION FOR REPLACED RECORDS IRECL EQU 350 INITIAL ALLOCATION FOR INSERTIONS LRECL EQU 200 INITIAL ALLOCATION FOR TASK LIBRARY DRTCL EQU 200 ESTIMATED ALLOCATION FOR DIRECTIVES TTINL EQU 300 INITIAL ALLOCATION FOR INSERTIONS TTCNL EQU 20 INITIAL ALLOCATION FOR CHANGES TTNEL EQU 20 TRANSACTIONS WITH NONEXISTENT TASKS * MANAGED TABLES SPACE SIZE. TABLEN EQU RRECL+IRECL+LRECL+DRTCL+TTINL+TTCNL+TTNEL MEML BSSZ TABLEN SPACE FOR MANAGED TABLES TITLE COMMON DECKS. *CALL COMCARG *CALL COMCCDD *CALL COMCCIO *CALL COMCCOD *CALL COMCCPM *CALL COMCDXB *CALL COMCLFM *CALL COMCMTP *CALL COMCMVE *CALL COMCPFM *CALL COMCRDS *CALL COMCRDW *CALL COMCSFN *CALL COMCSNM QUAL COMCSST *CALL COMCSST QUAL * *CALL COMCSYS *CALL COMCUPC *CALL COMCUSB *CALL COMCWTC *CALL COMCWTS *CALL COMCWTW *CALL COMCZAP TLD TITLE TASK AND TRANSACTION DIRECTORIES. *** TASK LIBRARY DIRECTORY. * * DEFAULT VALUES FOR DIRECTORY ARE - * * BEGINNING PRIORITY = 20B. * MAXIMUM PRIORITY = 40B. * QUEUE LIMIT = 3B. * TASK IS DISK RESIDENT. * TASK CODE IS NONDESTRUCTIVE. * TASK IS NOT A SYSTEM TASK. * TASK IS ON. * COMMUNICATION BLOCK IS DELIVERED TO THE TASK (UNSOLICITED). * QUEUING IS NOT FORCED FOR ADDITIONAL ACTIVE COPIES. SPACE 4,10 *** TRANSACTION DIRECTORY. * * DEFAULT VALUES FOR TRANSACTIONS ARE - * * DATA MANAGER USED = NONE. * RECOVERABLE = NO. SPACE 4,10 TSKDL EQU TLDLE*TLDMT+1 SIZE OF TASK DIRECTORY TRNDL EQU TRDLE1*TRDMT+1 SIZE OF TRANSACTION UNIT DIRECTORY TLDH VFD 12/7700B,12/3,36/0 VFD 60/0LTLD TLDHD CON 10H TLDHT CON 10H TLD BSSZ TSKDL TASK LIBRARY DIRECTORY TRDH VFD 12/7700B,12/3,36/0 VFD 60/0LTRD CON 10H CON 10H TRD BSSZ TRNDL TRANSACTION UNIT DIRECTORY PRS TITLE PRESET AND CRACK COMMAND. ** PRS - PRESET ROUTINE. * * PRS CRACKS THE COMMAND AND SETS UP FOR THE MAIN PROGRAM. * ERROR CHECKING IS PERFORMED ON COMMAND PARAMETERS AND * INPUT DIRECTIVES. IF THE CR OPTION IS PRESENT, PRS CHECKS * IF *TAF* IS UP. IF THE TT OPTION IS PRESENT, THE USERNUM IS * SENT TO *TAF* FOR VALIDATION. THE TASK LIBRARY FILE IS * ATTACHED IN MODIFY MODE IF THE DA OPTION IS NOT SPECIFIED. * THE MAIN LOOP IS THEN INITIATED. * NOTE THE FOLLOWING MEMORY IS USED FOR BUFFERS WHEN * *PRS* TERMINATES. PRS SUBR ENTRY/EXIT SB1 1 SA1 LWPR LX1 59-18 PL X1,PRS0 IF *LIBTASK* NOT LOADED FROM SYSTEM SA1 SSJ=+UIDS RESTORE USER NAME AND USER INDEX BX6 X1 SA6 PRSK+2 SETPFP PRSK PRS0 GETJO JOBORG SA1 JOBORG SX6 X1-TXOT SA6 A1+ SB5 ARGA SA1 ACTR ARGUMENT COUNT OF COMMAND SB4 X1 SA4 B1+B1 FIRST ARGUMENT RJ ARG PROCESS COMMAND ARGUMENTS ZR X1,PRS1 IF NO ARGUMENT ERRORS MESSAGE PRSB INCORRECT COMMAND ABORT PRS1 SX7 TLD SA7 LWTLD LAST WORD ADDRESS OF TLD SX6 TSKDL SA6 FSLT FREE SPACE LEFT IN TLD SA7 LATLD SA7 LWOLD SX7 TRD PRESET LWA OF TRD SA7 LWTRD SA7 LATRD SX7 TRNDL PRESET FREE SPACE IN TRD SA7 FSTR DATE STLAD DATE CLOCK STLAT TIME RJ STL SET TITLE PAGE OF OUTPUT SX7 MEML+TABLEN SA7 F.TEND SX5 CMP DISPLAY CODE LX5 48 SB7 B0 RJ DXB CONVERT DEFAULT MAXIMUM PRIORITY SA6 LIBB SAVE TEMPORARILY SA6 LIBA SX5 CBP DISPLAY CODE LX5 48 RJ DXB CONVERT DEFAULT BEGINNING PRIORITY LX6 TLBPS-TLBPN+1 SA1 LIBB+1 BX6 X1+X6 SA6 LIBB+1 SAVE AS DEFAULT SA6 LIBA+1 SAVE AS CURRENT SX5 CQL DISPLAY CODE LX5 48 RJ DXB CONVERT DEFAULT QUEUE LIMIT SA1 LIBB+1 BX7 X6+X1 SA7 A1 SAVE AS DEFAULT SA7 LIBA+1 SAVE AS CURRENT RJ ERC CHECK POSSIBLE ERRORS SB4 TLD SA1 LWTLD SB5 X1+ * GET NAMES OF PROGRAMS ON LIBRARY FILE. PRS2 EQ B4,B5,PRS3 IF DONE GATHERING TASK NAMES SA1 B4 BX1 X1*X5 ADDWRD LREC,X1 SB4 B4+TLDLE EQ PRS2 GET NEXT TASK NAME PRS3 SA1 Z ZR X1,PRS4 IF *Z* ARGUMENT NOT SELECTED SX2 I SET INPUT FET ADDRESS RJ ZAP PROCESS *Z* ARGUMENT EQ PRS5 PROCESS DIRECTIVES PRS4 SA1 I ZR X1,PRS7 IF NO INPUT DIRECTIVES READ I INPUT FILE PRS5 RJ INP PROCESS INPUT FILE PRS7 SA2 CR NZ X2,PRSX IF CREATING A NEW LIBRARY SKIPEI P,R SKIP TO END OF INFORMATION SA1 TT ZR X1,PRSX IF NOT *TT* OPTION SA1 SSJ=+AACS CHECK ACCESS WORD BIT *CSTP* LX1 59-9 NG X1,PRS7.1 IF USER VALIDATED TO UPDATE LIBRARY ONLINE MESSAGE PRSJ USER NOT VALIDATED FOR ONLINE UPDATE ABORT * THE USER NAME OF THIS JOB IS SENT TO *TAF* FOR VALIDATION * PURPOSES. PRS7.1 USERNUM PRSA GET USER NAME SA1 PRSA MX6 42 BX6 X6*X1 SET INTO *TAF* TRANSMISSION WORD SA6 LIBI+1 NZ X6,PRS8 IF USER NAME NONZERO MESSAGE PRSF * USER NAME REQUIRED FOR *TT* OPTION.* ABORT PRS8 MX0 42 SA1 P SET TASK LIBRARY NAME INTO *SIC* BLOCK BX6 X0*X1 SA6 A6+B1 EQ PRSX RETURN * COMMAND ARGUMENT TABLES. ARGA BSS 0 B ARG ARGB,B L ARG O,O P ARG ARGB+1,P CR ARG -ARGB-2,CR I ARG ARGB+3,I TT ARG -ARGB-4,TT PR ARG -ARGB-5,PR N ARG ARGB+6,SF DA ARG -ARGB-7,DA Z ARG -ARGB-8,Z LO ARG ARGB+9,LO TN ARG ARGB+10,XTN ARG ARGB CON 0LLGO+3 CON 0LTASKLIB+3 CON 1 CON 0LCOMPILE+3 CON 1 CON 1 CON 0LTASKLIB+3 CON 1 CON 1 CON 0LA CON 0 PRSA CON 0 USER NAME PRSB DATA C* LIBTASK COMMAND ARGUMENT ERRORS.* PRSC DATA C* TASK LIBRARY DIRECTORY TOO LONG.* PRSD DATA C* TASK LIBRARY DIRECTORY EMPTY.* PRSE DATA C* TASK LIBRARY DIRECTORY ERROR.* PRSF DATA C* TT OPTION REQUIRES USER NAME.* PRSG DATA C* TRANSACTION DIRECTORY EMPTY.* PRSH DATA C* TRANSACTION DIRECTORY TOO LONG.* PRSI DATA C* TRANSACTION DIRECTORY ERROR.* PRSJ DATA C* USER NOT VALIDATED FOR ONLINE LIBRARY UPDATES.* * *SETPFP* PARAMETER BLOCK. PRSK VFD 56/0,4/3 BSSZ 2 ATP SPACE 4,15 ** ATP - ATTACH LIBRARY FILE. * * RETURN THE LIBRARY FILE, READ THE REAL-TIME CLOCK, AND * TRY TO ATTACH THE FILE IN *MODIFY* MODE. * * ENTRY (X5) = FET ADDRESS. * * EXIT FILE ATTACHED. * * USES A - 1, 3, 7. * X - 1, 3, 4, 7. * * CALLS ATT. * * MACROS ATTACH, RECALL, RETURN, RTIME. ATP SUBR ENTRY/EXIT RETURN X5,R RETURN FILE IF PRESENT RTIME ATTA READ CLOCK RECALL X5 SA3 X5+10 MX4 -18 BX3 X4*X3 SX4 ARGB PHONY ADDRESS FOR ERROR MESSAGES BX7 X3+X4 SA7 A3 SUPPRESS ERROR MESSAGES FROM *PFM* ATP1 ATTACH X5,,,,W,,,,NF ATTACH IN *WRITE* MODE FIRST SX7 B1 SA7 AT INDICATE ATTACHED IN *WRITE* MODE RJ ATT ZR X2,ATPX IF ATTACH SUCCESSFUL SA1 ERCJ NZ X1,ATP1 IF MUST ATTACH IN *WRITE* MODE ATP2 ATTACH X5,,,,M,,,,NF ATTACH IN *MODIFY* MODE BX7 X7-X7 SA7 AT INDICATE ATTACHED IN *MODIFY* MODE RJ ATT CHECK ATTACH STATUS ZR X2,ATP IF ATTACH SUCCESSFUL EQ ATP2 TRY AGAIN ATT SPACE 4,20 ** ATT - ATTACH CHECKING PROCEDURES. * * CHECK FOR A SUCCESSFUL OR UNSUCCESSFUL ATTACH. * * ENTRY ATTACH REQUEST HAS BEEN ISSUED. * (ATTA) = START TIME OF REQUEST. * (X5) = FET ADDRESS. * * EXIT (X2) = 0 IF ATTACH SUCCESSFUL. * (X2) .NE. 0 IF NEED TO TRY ATTACH AGAIN. * ABORT IF FILE TIMES OUT. * ABORT IF ATTACH ERROR. * * USES A - 1, 2. * X - 1, 2, 3, 4, 6, 7. * * MACROS ABORT, MESSAGE, RECALL, RTIME. ATT SUBR ENTRY/EXIT SA1 X5 MX2 -4 LX1 -10 BX2 -X2*X1 STATUS OF ATTACH ZR X2,ATTX IF FILE ATTACHED SX3 X2-1 NZ X3,ATT1 IF FILE NOT BUSY RECALL RTIME ATTB READ CLOCK SA1 ATTA START TIME SA2 ATTB CURRENT TIME SX4 ATTC LOOP TIME MX3 -36 BX1 -X3*X1 BX2 -X3*X2 IX6 X2-X1 TIME IN LOOP IX7 X6-X4 NG X7,ATTX IF TIME ELAPSED, TRY AGAIN MESSAGE ATTD,3 ABORT TIMED OUT ATT1 MESSAGE ATTE ABORT ATTA BSS 1 START TIME OF REQUEST ATTB BSS 1 CURRENT TIME ATTC EQU 10000 TIME OUT ON ATTACH ATTEMPT ATTD DATA C* LIBRARY FILE TIME OUT.* ATTE DATA C* LIBTASK - PFM ERROR DETECTED.* ERC SPACE 4,20 ** ERC - ERROR CHECKING. * * 1. IF TASKLIB STARTS WITH THE LETTER Z , * PRINT OUT ERROR MESSAGE ON DAYFILE AND OUTPUT * FILE THEN ABORT. * 2. IF *DA* IS SPECIFIED AND FILE IS NOT A DIRECT ACCESS * FILE, ABORT. * 3. IF *DA* IS SPECIFIED GO TO STEP 5. * 4. ATTACH FILES SPECIFIED BY *N* AND *P* PARAMETERS, * IF ATTACH FAILS ABORT. * 5. IF INCORRECT COMBINATION OF COMMAND PARAMETERS, * PRINT OUT ERROR MESSAGE ON DAYFILE AND OUTPUT THEN ABORT. * 6. RETURN TO CALLER. * * ENTRY COMMAND PARAMETERS UNPACKED. * * EXIT IF ERROR ON COMMAND PARAMETERS ABORT. * (P) = 0 IF *CR* SPECIFIED. * * USES A - 1, 2, 3, 5, 6, 7. * B - 4, 5. * X - ALL. * * CALLS ATP. * * MACROS ABORT, MESSAGE, READ, READW, REWIND, SKIPB, SKIPEI, * STATUS, WRITER, WRITEW. ERC SUBR ENTRY/EXIT SX6 B0+ SA6 PN ASSUME *P* AND *N* ARE IDENTICAL SA6 AT ASSUME FILE NOT ATTACHED BY *TAF* SA1 N MX0 6 SX4 1RZ INCORRECT TASK LIBRARY FILE NAME LX4 -6 BX2 X0*X1 BX7 X2-X4 SA2 ERCG ZR X7,ERC1.1 IF *N* STARTS WITH THE LETTER Z SX7 B1 IX3 X1-X2 ZR X3,ERC1 IF *P* AND *N* ARE IDENTICAL SA2 P BX0 X0*X2 BX4 X0-X4 ZR X4,ERC1.1 IF *P* STARTS WITH THE LETTER Z IX3 X1-X2 ZR X3,ERC1 IF *P* AND *N* ARE IDENTICAL SA2 DA SA7 PN *P* AND *N* ARE NOT IDENTICAL NZ X2,ERC3 IF *DA* SPECIFIED SX7 B1 SA7 ERCJ ATTACH *N* FILE IN *WRITE* MODE SX5 N RJ ATP ATTACH *N* FILE SA1 P ZR X1,ERC4 IF *P* = 0 SX7 B0+ SX5 P SA7 ERCJ RJ ATP ATTACH *P* FILE EQ ERC4 CONTINUE PROCESS * PROCESS *N* PARAMETER OMITTED. ERC1 SA1 P NZ X1,ERC2 IF *P* NOT EQUAL TO ZERO MESSAGE ERCF CONFLICTING *LIBTASK* OPTION WRITEW O,ERCF,ERCFL ABORT ERC1.1 MESSAGE ERCO WRITEW O,ERCO,ERCOL ABORT ERC2 SX5 P SA2 DA NZ X2,ERC3 IF *DA* SPECIFIED SA1 CR SA2 PR BX7 X1+X2 SA7 ERCJ SAVE ATTACH MODE RJ ATP ATTACH P FILE EQ ERC4 CHECK PARAMETERS * PROCESS *DA* PARAMETER. ERC3 ZR X3,ERC3.1 IF P AND N ARE IDENTICAL STATUS N,P SX2 PMFT DIRECT ACCESS CODE SA1 N+5 FNT ENTRY MX0 -6 AX1 6 BX1 -X0*X1 FILE TYPE IX2 X2-X1 SX6 B0 SA6 N+5 RESTORE FET+5 SA6 A6+B1 RESTORE FET+6 ZR X2,ERC3.1 IF DIRECT ACCESS FILE SA5 N MX0 42 BX6 X0*X5 SA6 LIBK+2 MESSAGE LIBK * FILE NOT ATTACHED - FILNAME* ABORT ERC3.1 SA1 P ZR X1,ERC4 IF P=0 STATUS P,P SX2 PMFT DIRECT ACCESS CODE SA1 P+5 FNT ENTRY MX0 -6 AX1 6 BX1 -X0*X1 FILE TYPE IX2 X2-X1 SX6 B0 SA6 P+5 RESTORE FET+5 SA6 A6+B1 RESTORE FET+6 ZR X2,ERC4 IF DIRECT ACCESS FILE SA5 P *P* FILE NAME MX0 42 BX6 X0*X5 SA6 LIBK+2 MESSAGE LIBK * FILE NOT ATTACHED - FILNAME* ABORT * CHECK INCORRECT COMBINATION OF PARAMETERS. ERC4 SX4 B0+ SA1 XTN ZR X1,ERC4.1 IF NO *TN* SX4 X4+1 ERC4.1 SA1 LO SX2 B0+ ZR X1,ERC4.2 IF NO *LO* SX3 1RA SX2 2 LX1 6 IX3 X1-X3 ZR X3,ERC4.2 IF ALL TASKS TO BE REPORTED SX3 1RT IX2 X2+X2 IX3 X1-X3 ZR X3,ERC4.2 IF REPORT ONLY TASK NAMED SX2 6 SX3 1RX IX3 X1-X3 ZR X3,ERC4.2 IF REPORT ONY TRANSACTION NAMED SA2 ERCN *LO*, *LO=A*, *LO=T* OR *LO=X* SX4 X2 MESSAGE ADDRESS LX2 -18 SX2 X2+ LENGTH OF MESSAGE EQ ERC8.1 PRINT OUT ERROR MESSAGE ERC4.2 IX4 X4+X2 SA2 X4+TERCA ERROR FLAG SX4 X2 MESSAGE ADDRESS ZR X4,ERC4.3 IF NO ERROR LX2 -18 SX2 X2 LENGTH OF MESSAGE EQ ERC8.1 PRINT OUT ERROR MESSAGE ERC4.3 SX4 B0+ SA1 CR ZR X1,ERC5 IF NOT *CR* SX1 B1+ ERC5 BX4 X4+X1 ADD *CR* FLAG SA2 PR ZR X2,ERC6 IF NOT *PR* SX2 2 ERC6 BX4 X4+X2 ADD *PR* FLAG SA1 TT ZR X1,ERC7 IF NOT *TT* SX1 4 ERC7 SA3 PN SA5 P BX4 X4+X1 BX6 X5 SAVE FILE NAME ZR X3,ERC8 IF *P* IDENTICAL TO *N* SX3 8 SA5 N ERC8 BX4 X4+X3 ADD *PN* FLAG SA2 X4+TERC ERROR FLAG SX4 X2 MESSAGE ADDRESS ZR X4,ERC9 IF NO ERROR LX2 -18 SX2 X2 LENGTH OF MESSAGE ERC8.1 WRITEW O,X4,X2 PRINT OUT ERROR MESSAGE WRITER O LX4 30 BX6 X4 SA6 ERCA DAYFILE MESSAGE ADDRESS MESSAGE ERCA ABORT * SET UP OLD DIRECTORY FOR PROCESSING. ERC9 SA1 CR SA2 P MX0 42 MASK FILE NAME BX7 X0*X5 SA7 LIBC+4 DISPLAY FILE NAME SA7 LIBD+4 BX7 X0*X6 SA7 LIBE+4 NZ X1,ERCX IF CREATION RUN ZR X2,ERCX IF *P* IS EQUAL TO ZERO REWIND P SKIPEI P,R SKIPB P,2,R POSITION AT DIRECTORY READ P READW P,TLDH,TSKDL+4 DIRECTORY + HEADER NZ X1,ERC10 IF DIRECTORY NOT TOO LONG MESSAGE PRSC ABORT INCORRECT DIRECTORY FORMAT ERC10 PL X1,ERC11 IF DATA ON DIRECTORY MESSAGE PRSD DIRECTORY EMPTY ABORT ERC11 SX7 X1+ SX2 X1-TLD NUMBER OF WORDS IN TLD SA7 LWTLD LWA OF TLD SB4 TLD SB5 X7 MX5 42 SA1 TLDH+1 CHECK FOR NAME MX4 18 BX6 -X2 SX6 X6+TSKDL SA6 FSLT UNUSED SPACE LEFT IN TLD SA2 ERCI BX4 X4*X1 MX7 -18 IX3 X4-X2 LX1 -18 BX7 -X7*X1 LWA OF BASE TLD SX7 X7+TLD SA7 LWOLD ZR X3,ERC12 IF NAME WAS *TLD* MESSAGE PRSE * TASK LIBRARY DIRECTORY ERROR.* ABORT BAD LIBRARY FILE ERC12 SA1 TLDH MX0 30 BX6 -X0*X1 EXTRACT PRU ADDRESS OF TRD ZR X6,ERCX IF NO TRD SA6 P+6 STORE IN FET READ P READW P,TRDH,TRNDL+4 DIRECTORY + HEADER NZ X1,ERC13 IF DIRECTORY NOT TOO LONG MESSAGE PRSH DIRECTORY TOO LONG ABORT ERC13 PL X1,ERC14 IF DATA IN DIRECTORY MESSAGE PRSG DIRECTORY EMPTY ABORT ERC14 SX7 X1 SX2 X1-TRD WORDS IN TRD SA7 LWTRD SA7 LATRD SA1 TRDH+1 CHECK FOR NAME MX4 18 BX6 -X2 SX6 X6+TRNDL SA6 FSTR UNUSED SPACE LEFT IN TRD SA2 ERCK BX4 X4*X1 BX4 X4-X2 SX6 B1+ SA6 TRDE FLAG *TRD* EXISTS ZR X4,ERCX IF NAME WAS *TRD* MESSAGE PRSI DIRECTORY ERROR ABORT ERCA CON 0 ERCB DATA C* CONFLICTING LIBTASK OPTIONS - CR, PR.* ERCBL EQU *-ERCB ERCC DATA C* CONFLICTING LIBTASK OPTIONS - CR, TT.* ERCCL EQU *-ERCC ERCD DATA C* CONFLICTING LIBTASK OPTIONS - PR, TT.* ERCDL EQU *-ERCD ERCE DATA C* INCORRECT PR OR CR WHEN FILE ATTACHED BY TAF.* ERCF DATA C* CONFLICTING LIBTASK OPTIONS - P=0, -N.* ERCFL EQU *-ERCF ERCG VFD 60/0LSCRATCH+3 DUMMY FILE TO CHECK IF N OMITTED ERCH DATA C* CONFLICTING LIBTASK OPTIONS - TT, N.* ERCHL EQU *-ERCH ERCI VFD 60/3LTLD HEADER WORD FOR TLD ERCJ BSSZ 1 ATTACH FLAG, IF SET ATTACH IN *WRITE* MODE ERCK VFD 60/0LTRD HEADER WORD FOR TRD ERCL DATA C* TN REQUIRES EITHER LO=T OR LO=X.* ERCLL EQU *-ERCL ERCM DATA C* VALID LO OPTIONS ARE LO, LO=A, LO=T OR LO=X.* ERCML EQU *-ERCM ERCN VFD 30/0,12/ERCML,18/ERCM *LO*, *LO=A*, *LO=T* OR *LO=X* ERCO DATA C* TASKLIB MUST NOT START WITH THE LETTER Z.* ERCOL EQU *-ERCO TERC BSS 0 TRUTH TABLE OF COMMAND PARAMETERS VFD 60/0 ADD (B) TO (P) VFD 60/0 CREATE P FROM B VFD 60/0 DELETE INACTIVE TASKS IN P VFD 30/0,12/ERCBL,18/ERCB *CR* AND *PR* AT SAME TIME VFD 60/0 TAF IS NOT UP SO *TT* HAS NO EFFECT VFD 30/0,12/ERCCL,18/ERCC *CR* AND *TT* IN COMMAND VFD 30/0,12/ERCDL,18/ERCD *PR* AND *TT* IN COMMAND VFD 30/0,12/ERCBL,18/ERCB *CR* AND *PR* AT SAME TIME VFD 60/0, COPY (P) TO N AND ADD (B) VFD 60/0 CREATE N FROM (P) AND (B) VFD 60/0 CREATE N FROM (P) AND (B) VFD 30/0,12/ERCBL,18/ERCB *CR* AND *PR* AT SAME TIME VFD 30/0,12/ERCHL,18/ERCH *TT* WITH N SPECIFIED VFD 30/0,12/ERCCL,18/ERCC *CR* AND *TT* IN COMMAND VFD 30/0,12/ERCDL,18/ERCD *PR* AND *TT* IN COMMAND VFD 30/0,12/ERCBL,18/ERCB *CR* AND *PR* AT SAME TIME VFD 30/0,12/ERCCL,18/ERCC *CR* AND *TT* IN COMMAND VFD 30/0,12/ERCDL,18/ERCD *PR* AND *TT* IN COMMAND VFD 30/0,12/ERCCL,18/ERCC *CR* AND *TT* IN COMMAND VFD 30/0,12/ERCDL,18/ERCD *PR* AND *TT* IN COMMAND * ERROR MESSAGE TABLE FOR *LO* AND *TN* PARAMETERS. TERCA BSS 0 TRUTH TABLE OF *LO* AND *TN* PARAMETERS CON 0 NEITHER OPTION VFD 30/0,12/ERCLL,18/ERCL *TN* REQUIRES *LO*=T OR *LO*=X CON 0 *LO* WITH DEFAULT VFD 30/0,12/ERCLL,18/ERCL *TN* REQUIRES *LO*=T OR *LO*=X CON 0 *LO=T* CON 0 *LO*=T AND *TN* CON 0 *LO=X* CON 0 *LO*=X AND *TN* INP SPACE 4,25 ** INP - PROCESS INPUT DIRECTIVES. * * PROCESS THE INPUT DIRECTIVES, CHECKING FOR ERRORS AND * SETTING UP MANAGED TABLES WITH THE DIRECTORY VALUES FOR EACH * TASK. ONE ENTRY IS ESTABLISHED FOR EACH DIRECTIVE, THEREFORE * ONLY ONE DIRECTIVE SHOULD BE USED FOR ANY TASK. SEVERAL * PARAMETERS MAY BE INCLUDED IN ONE DIRECTIVE HOWEVER. * * ENTRY (JOBORG) = 0 IF INTERACTIVE INPUT. * * EXIT INPUT DIRECTIVES PROCESSED. * * USES A - ALL. * X - ALL. * B - 2, 3, 4, 5, 6. * * CALLS ALC, ARG, DXB, ERR, SFN, STD, UPC. * * MACROS ABORT, ADDWRD, MESSAGE, READS, WRITEC, WRITER, * WRITES, WRITEW. INP SUBR ENTRY/EXIT SA1 O+1 OUTPUT FET SX2 B1 LX2 36-0 POSITION FLUSH BIT BX6 X2+X1 SA6 A1 SET FLUSH BIT SA1 JOBORG ZR X1,INP2 IF INTERACTIVE INPUT WRITEW O,INPG,INPGL SX2 2 RJ ALC ADVANCE LINE COUNT EQ INP2 BYPASS FIRST WRITE INP1 SA1 JOBORG ZR X1,INP2 IF INTERACTIVE INPUT WRITEW O,INPK,1 WRITES O,INPA,INPAL ECHO PRINT LINE TO OUTPUT FILE SX2 B1+ RJ ALC ADVANCE LINE COUNT INP2 READS I,INPA,INPAL READ A DIRECTIVE CARD NZ X1,INP20 IF EOR/EOF ENCOUNTERED ON FILE SA1 INPI SX7 X1+B1 ADVANCE NUMBER OF DIRECTIVES PROCESSED SA7 A1 SA1 INPA FIRST CHARACTER SB2 7 MAXIMUM TASK NAME CHARACTER LENGTH SB6 A1+B1 START OF BUFFER BX6 X6-X6 SB7 INPA+INPAL END OF BUFFER SX7 X1-1R* SB5 60 SX0 55B HOLLERITH BLANK SX5 45B FIRST NON ALPHANUMERIC CHARACTER ZR X7,INP3 IF FIRST CHARACTER * SX7 X1-1R/ NZ X7,INP19 IF FIRST CHARACTER NOT / SX7 B1 SA7 INPQ FLAG TRANSACTION DIRECTIVE INP3 EQ B6,B7,INP19 IF END OF COMMAND SA1 B6 SB6 B6+B1 BX2 X1-X0 IX3 X1-X5 ZR X2,INP4 IF END OF TASK NAME SX2 X0+B1 BX2 X1-X2 ZR X2,INP4 IF COMMA LEGAL SEPARATOR PL X3,INP19 IF INCORRECT CHARACTER LX6 6 BX6 X6+X1 ACCUMULATE CHARACTERS SB5 B5-6 SB2 B2-B1 LT B2,INP19 IF .GT. 7 CHARACTERS IN NAME EQ INP3 CHECK NEXT CHARACTER INP4 ZR X6,INP19 IF NO TASK NAME LX2 X6,B5 SX5 B5 SAVE (B5) SX6 B6 SAVE (B6) SA1 LWOLD LWA OF BASE TLD SB6 X1 SB5 TLD START OF TLD SB3 TLDLE TLD ENTRY LENGTH SA3 INPQ ZR X3,INP4.1 IF TASK DIRECTIVE SA1 LATRD LWA OF TRD SB6 X1 SB5 TRD SB3 TRDLE1 TRD ENTRY LENGTH BX7 X2 SA7 INPT SAVE TRANSACTION NAME INP4.1 RJ STD CHECK IF IN DIRECTORY SB5 X5 RESTORE (B5) SB6 X6 RESTORE (B6) SX0 55B SB7 INPA+INPAL RESTORE (B7) ZR X1,INP5 IF TASK/TRANSACTION FOUND SA1 INPQ NZ X1,INP6 IF TRANSACTION DIRECTIVE ADDWRD DRTC,X2 ADD TASK NAME TO DIRECTIVE LIST BX7 X7-X7 SA7 INPN CLEAR FLAG TO INDICATE NEW DIRECTIVE EQ INP6 PROCESS DIRECTIVES INP5 SX7 A1 ADDRESS OF TASK IN DIRECTORY SA7 INPN SA1 INPQ NZ X1,INP6 IF TRANSACTION DIRECTIVE ADDWRD TDCH,X2 DIRECTIVE CHANGED TABLE INP6 EQ B6,B7,INP19 IF NO DIRECTIVES ON COMMAND SA1 B6 SB6 B6+B1 BX2 X1-X0 ZR X2,INP6 IF SKIP ALL BLANKS SX5 B6-B1 FIRST NON BLANK CHARACTER AFTER TASK NAME SA1 INPC+1 FIRST SX7 X1 SA7 A1+B1 REWIND FET SX6 X7+8 SA7 A7+B1 OUT SA6 A7+B1 LIMIT SB7 B7-B6 WRITES INPC,X5,B7 PUT BACK INTO WORD FORMAT BX6 X6-X6 ADD LINE TERMINATOR SB4 60 SB7 B1+B1 UNPACK INTO LOW CORE SA6 B3 SA1 B3-B1 LAST CM WORD OF DIRECTIVE SX7 1R. SB6 6 MX0 6 LX7 -6 INP7 BX3 X0*X1 MASK LEFT MOST CHARACTER IX2 X7-X3 ZR X2,INP9 IF TERMINATOR ZR X3,INP8 IF END OF LINE LX1 X1,B6 LEFT SHIFT ONE CHARACTER SB4 B4-B6 NZ B4,INP7 IF NOT AT WORD BOUNDARY SA1 A1+B1 NEXT WORD SB4 60 EQ INP7 TRY AGAIN INP8 BX7 X7+X1 ADD TERMINATOR LX7 X7,B4 SA7 A1+ INP9 SA5 INPCD FIRST WORD OF DIRECTIVES (DUMMY) RJ UPC UNPACK DIRECTIVES SB6 B6+B1 ZR X7,INP10 IF END OF LINE SB6 B6-B1 NZ X6,INP19 IF ERROR IN DIRECTIVE FORMAT INP10 SB4 B6-B1 ADJUST ARGUMENT COUNT SA4 B7+B1 FIRST ARGUMENT ADDRESS SX7 B4 SA7 INPR SAVE ARGUMENT COUNT SA1 INPQ SB5 INPE ARGUMENT TABLE ZR X1,INP10.1 IF TASK DIRECTIVE SB5 INPO ARGUMENT TABLE INP10.1 RJ ARG PROCESS ARGUMENTS NZ X1,INP19 IF ERROR IN DIRECTIVE ARGUMENTS SA1 INPQ NZ X1,INP22 IF TRANSACTION DIRECTIVE * PROCESS DIRECTORY ARGUMENTS. SA1 IG SA2 INPN ZR X1,INP12 IF NOT IGNORE NZ X2,INP11 IF TASK IN DIRECTORY MX2 1 ADDWRD DRTC,X2 BX2 X2-X2 ADDWRD DRTC,X2 SB2 B0 EQ INP18 PROCESS NEXT DIRECTIVE INP11 MX2 1 ADDWRD TDCH,X2 BX2 X2-X2 ADDWRD TDCH,X2 SB2 B0 EQ INP18 PROCESS NEXT DIRECTIVE * PROCESS OTHER DIRECTIVES. INP12 SA5 BP SB7 B0+ SET OCTAL CONVERSION RJ DXB CONVERT BEGINNING PRIORITY TO OCTAL NZ X4,INP19 IF ERROR IN CONVERSION SA6 BP STORE NEW VALUE SA5 MP RJ DXB CONVERT MAXIMUM PRIORITY TO OCTAL NZ X4,INP19 IF CONVERSION ERROR SA6 MP STORE NEW VALUE SA5 QL RJ DXB CONVERT QUEUE LIMIT TO OCTAL NZ X4,INP19 IF CONVERSION ERROR SA6 QL STORE NEW VALUE SA5 EF EXPANDABLE FL RJ DXB CONVERT TO BINARY SX6 X6 SX1 MAXEF+1 IX2 X6-X1 PL X2,INP19 IF MAXIMUM EXPANDABLE FL EXCEEDED NG X6,INP19 IF NEGATIVE VALUE NZ X4,INP19 IF CONVERSION ERROR SA6 EF * CHECK FOR PARAMETER VALUES OUT OF RANGE. SA1 BP BEGINNING PRIORITY SX2 X1-MXBP-1 SA3 MP MAXIMUM PRIORITY SX4 X1-MNBP PL X2,INP19 IF BEGINNING PRIORITY IS TOO HIGH NG X4,INP19 IF BEGINNING PRIORITY IS TOO LOW SX2 X3-MNMP SX3 X3-MXMP-1 NG X2,INP19 IF MAXIMUM PRIORITY IS TOO LOW SA1 QL QUEUE LIMIT PL X3,INP19 IF MAXIMUM PRIORITY IS TOO HIGH SX2 X1-MAXQL-1 SX4 X1-MINQL PL X2,INP19 IF QUEUE LIMIT TOO HIGH NG X4,INP19 IF QUEUE LIMIT TOO LOW SA1 C SA2 TT ZR X2,INP12.1 IF *TT* OPTION NOT SPECIFIED NZ X1,INP19 IF CORE RESIDENT UPDATE ATTEMPT WITH *TT* SA1 INPN ZR X1,INP13 IF TASK NOT IN DIRECTORY SA1 X1+2 THIRD WORD OF TASK DIRECTORY ENTRY LX1 59-57 NG X1,INP19 IF OLD COPY OF TASK IS CORE RESIDENT EQ INP13 PROCESS NEXT TASK CHARACTERISTIC INP12.1 ZR X1,INP13 IF NOT A CORE RESIDENT TASK SA1 CRES SX7 X1+1 BUMP CORE RESIDENT TASK COUNT SA7 A1+ INP13 SA1 D NZ X1,INP14 IF NOT A DESTRUCTIVE TASK SX7 1 SA7 QL FORCE DESTRUCTIVE TASK QUEUE LIMIT TO 1 INP14 SA1 MP MAXIMUM PRIORITY SA2 EF EXPANDABLE FIELD LENGTH SX2 X2+77B ROUND TO MULTIPLE OF 100B AX2 6 LX2 TLEFS-TLEFN+1 BX2 X2+X1 SA1 INPN NZ X1,INP15 IF TASK IN DIRECTORY ADDWRD DRTC,X2 EQ INP16 PROCESS NEW TASK INP15 SA1 X1+B1 SECOND WORD OF TLD MX7 TLDAN+TLFLN BX7 X7*X1 DA AND FL BX7 X7+X2 ADD *EF* AND *MP* SA7 A1 ADDWRD TDCH,X7 SECOND WORD OF DIRECTORY INP16 SA1 S SYSTEM TASK SA2 D DESTRUCTIVE CODE SA3 C CORE RESIDENCE SA4 QL BX1 X1+X2 SA2 OO ON/OFF BX3 X2+X3 BX1 X1+X3 SA2 E EXTENDED MEMORY RESIDENCE BX1 X2+X1 SA3 DL DELETE TASK BX1 X1+X3 LX1 TLSTS-5 BX1 X1+X4 SA2 SC BX1 X2+X1 SA3 R REDUCE FL FLAG SA2 BP LX3 TLRES-TLREN+1 LX2 TLBPS-TLBPN+1 BX1 X1+X3 BX1 X2+X1 SA2 Q QUEUING CONTROL INDICATOR BX1 X1+X2 SB2 B0 SA2 INPN NZ X2,INP17 IF TASK ALREADY IN DIRECTORY ADDWRD DRTC,X1 ADD TO DIRECTIVE TABLE EQ INP18 PROCESS NEXT DIRECTIVE INP17 BX7 X1 SA7 X2+2 STORE IN EXISTING DIRECTORY ENTRY ADDWRD TDCH,X7 THIRD WORD OF DIRECTORY SA2 INPN SA2 X2 ADDWRD TDRC,X2 DIRECTIVES CHANGED LIST * RESET DEFAULT VALUES FOR NEXT TASK. INP18 SX7 CBP RESET BEGINNING PRIORITY SX6 CMP LX7 48 SA7 BP BEGINNING TASK PRIORITY LX6 48 SA6 MP MAXIMUM TASK PRIORITY SX7 CQL LX7 48 SA7 QL QUEUE LIMIT SX6 CC*10B SA6 C CORE RESIDENCE BIT SX7 CD*20B SA7 D REUSABLE CODE BIT SX7 CS*40B SA7 S SYSTEM TASK BIT SX6 CO*02B SA6 OO TASK ON/OFF BIT SX7 CE*04B SX6 CDL*01B DELETE TASK SA6 DL SA7 E EXTENDED MEMORY RESIDENCE BIT SX7 B0+ SA7 SC SX6 CRE DEFAULT REDUCE FL FLAG SX7 EFL EXPANDABLE FIELD LENGTH SA6 R SA7 EF SX6 CQ*MLQU QUEUING CONTROL BIT SA6 Q BX7 X7-X7 SB7 TDL-TSK1 SA7 TSK1 INP18.1 SA7 A7+B1 ZERO OUT DEFAULT VALUES SB7 B7-B1 NE B7,INP18.1 IF MORE TO GO SA7 INPN TRD ADDRESS SA7 INPT TRANSACTION NAME SA7 INPQ TRANSACTION DIRECTIVE FLAG NE B2,INP2 IF BAD DIRECTIVE EQ INP1 READ NEXT DIRECTIVE * WRITE ERROR MESSAGES. INP19 WRITEW O,INPJ,1 WRITE ERROR MESSAGE WRITES O,INPA,INPAL WRITEW O,INPH,INPHL INCORRECT DIRECTIVE WRITEW O,BLINE,1 SX2 3 RJ ALC ADVANCE LINE COUNT SA1 INPL SX7 X1+B1 BUMP ERROR COUNT SA7 A1 SB2 B1+ FLAG BAD SA1 JOBORG NZ X1,INP18 IF NOT INTERACTIVE WRITER O FLUSH BUFFER EQ INP18 RESET DEFAULT VALUES INP20 SA1 INPI DIRECTIVE COUNT SA2 INPL NZ X2,INP21 IF ERRORS PRESENT ZR X1,INP20.1 IF NO DIRECTIVES WRITEW O,BLINE,1 SX2 1 RJ ALC ADVANCE LINE COUNT EQ INPX RETURN INP20.1 SA1 JOBORG ZR X1,INPX IF INTERACTIVE INPUT * WRITE *NONE* ON FILE. WRITEW O,LRLA,LRLAL SX2 B1+B1 RJ ALC ADVANCE LINE COUNT EQ INPX RETURN INP21 WRITEW O,INPM,INPML * INPUT DIRECTIVE ERRORS.* WRITER O MESSAGE INPB * DIRECTIVE ERRORS.* ABORT * PROCESS TRANSACTION DIRECTIVE. INP22 SA1 TDL SA2 INPN TRANSACTION ENTRY ADDRESS SA4 INPT TRANSACTION UNIT NAME SB2 B1 PRESET ERROR ZR X1,INP24 IF NOT *DL* SA1 INPR SX1 X1-1 NZ X1,INP31 IF MORE PARAMETERS NZ X2,INP23 IF TRANSACTION NAME EXISTS BX1 X4 RJ SFN SPACE FILL NAME LX6 42 SA6 INPS+4 STORE IN MESSAGE SX2 B1 RJ ALC ADVANCE LINE COUNT WRITEC O,INPS ISSUE WARNING SB2 B0 SET NO ERROR EQ INP31 NEXT DIRECTIVE INP23 SA1 X2 SX2 B1 LX2 TDDLS LOGICALLY DELETED BIT BX6 X1+X2 SA6 A1 SA1 LWTRD SX6 X1-TRDLE1 DECREASE DIRECTORY LENGTH SA6 A1 ADDWRD TTCN,X4 TRANSACTION CHANGED SB2 B0 SET NO ERROR EQ INP31 NEXT DIRECTIVE INP24 NZ X2,INP25 IF TRANSACTION NAME EXISTS SA2 LATRD SX6 X2+TRDLE1 SA0 X2 NEXT FREE WORD IN TRD SA6 A2 UPDATE LWA OF TRD SA1 LWTRD UPDATE LWA OF TRD SX6 X1+TRDLE1 SA6 LWTRD SA1 FSTR SX7 X1-TRDLE1 SA7 A1+ FREE SPACE IN TRD SX6 6 PL X7,INP26 IF TRD NOT FULL SA1 LWTRD DECREMENT LWA OF TRD SX7 X1-TRDLE1 SA7 LWTRD SA1 LATRD DECREMENT LWA OF TRD BEFORE SORT SX7 X1-TRDLE1 SA7 LATRD RJ ERR REPORT TRD FULL CONDITION WRITER O FLUSH BUFFER SA3 JOBORG ZR X3,INPX IF INTERACTIVE INPUT EQ INP21 ABORT INP25 SA2 INPN DIRECTORY ENTRY ADDRESS SA0 X2+ INP26 SB2 B1 PRESET ERROR SA1 TSK1 ZR X1,INP31 IF NO TASKS SPECIFIED SA2 INPT TRANSACTION UNIT NAME SA3 DM DATA MANAGER(S) SPECIFIED BX5 X5-X5 ZR X3,INP28 IF NO DATA MANAGER SPECIFIED SA4 INPU-1 MX0 42 INP27 SA4 A4+B1 NEXT DATA MANAGER ZR X4,INP31 IF END OF LIST BX6 X0*X4 BX6 X6-X3 NZ X6,INP27 IF NO MATCH SX5 X4 DATA MANAGER FLAGS INP28 BX6 X2+X5 SA5 RC RECOVERABLE STATUS BX6 X6+X5 SA6 A0 STORE IN DIRECTORY SB6 5 NUMBER OF TASKS TO CHECK FOR SB2 B0 SET NO ERROR INP29 BX6 X1 SA6 A6+B1 STORE TASK NAMES SB6 B6-B1 SA1 A1+B1 NEXT TASK NAME EQ B6,INP31 IF 5 TASK NAMES SPECIFIED NZ X1,INP29 IF MORE TASKS IN LIST SB2 B1 PRESET ERROR BX6 X6-X6 SA1 A1-B1 INP30 SA1 A1+B1 NZ X1,INP31 IF MORE TASKS IN LIST SA6 A6+B1 ZERO REMAINING WORDS SB6 B6-B1 NE B6,INP30 IF MORE TO GO SB2 B0 SET NO ERROR SA4 INPT SA2 INPN DIRECTORY ENTRY ADDRESS NZ X2,INP30.1 IF TRANSACTION NAME ALREADY EXISTS ADDWRD TTIN,X4 TRANSACTION ADDED EQ INP31 NEXT DIRECTIVE INP30.1 ADDWRD TTCN,X4 TRANSACTION CHANGED INP31 NE B2,INP19 IF DIRECTIVE ERROR SX6 B1 SA6 MTRD FLAG TRD MODIFIED SA6 TRDE FLAG TRD EXISTS EQ INP18 PROCESS NEXT DIRECTIVE INPAL EQU 150 INPA BSS INPAL STRING BUFFER FOR DIRECTIVE INPUT INPB DATA C* DIRECTIVE ERRORS.* INPC FILEC INPD,INPAL+1 BUFFER FOR *WTS* INPCD VFD 60/10LLIB, CONTROL WORD FOR *UPC* INPD BSSZ INPAL+1 MADE LARGE TO STOP A *CIO* WRITE BY *WTS* * DATA AREA FOR PROCESSING TASK DIRECTORY COMMANDS. INPE BSS 0 BP ARG INPF,BP MP ARG INPF+1,MP QL ARG INPF+2,QL C ARG -INPF-3,C D ARG -INPF-4,D S ARG -INPF-5,S O ARG -INPF-6,OO E ARG -INPF-7,E DL ARG -INPF-8,DL IG ARG -INPF-9,IG SC ARG -INPF-10,SC Q ARG -INPF-11,Q EF ARG INPF+12,EF R ARG -INPF-13,R ARG INPF VFD 12/ABP,48/0 ALTERNATE BEGINNING PRIORITY VFD 12/AMP,48/0 ALTERNATE MAXIMUM PRIORITY VFD 12/AQL,48/0 ALTERNATE QUEUE LIMIT CON 10B CORE RESIDENT BIT CON 0 NONREUSABLE CODE BIT CON 40B SYSTEM TASK BIT CON 02B ON/OFF BIT CON 04B EXTENDED MEMORY RESIDENT BIT CON 01B DELETE TASK CON 1 IGNORE TASK CON 1S17 SOLICITED COMMUNICATION BLOCK LOAD FLAG CON MLQU QUEUING CONTROL BIT CON EFL EXPANDABLE FIELD LENGTH CON CRE REDUCE FL INPG DATA C*0LIBTASK DIRECTIVES. * DATA C* * INPGL EQU *-INPG INPH DATA C/ ******* INCORRECT DIRECTIVE./ INPHL EQU *-INPH INPI CON 0 INPJ CON 10H *ERROR* INPK CON 10H INPL CON 0 DIRECTIVE INPUT ERROR COUNT INPM DATA C/ ** INPUT DIRECTIVE ERRORS **/ INPML EQU *-INPM INPN CON 0 ADDRESS OF TASK CHANGING DIRECTIVES FOR * TABLE OF VALID TRANSACTION DIRECTIVE PARAMETERS. INPO BSS 0 T1 ARG INPP,TSK1 T2 ARG INPP,TSK2 T3 ARG INPP,TSK3 T4 ARG INPP,TSK4 T5 ARG INPP,TSK5 RC ARG -INPP-1,RC DM ARG INPP,DM DL ARG -INPP-1,TDL ARG INPP CON 0 CON 1 INPQ CON 0 NONZERO INDICATES TRANSACTION DIRECTIVE INPR CON 0 ARGUMENT COUNT INPS DATA C* WARNING - TRANSACTION NAME NONEXISTENT XXXXXXX.* INPT CON 0 TRANSACTION UNIT NAME * TABLE OF VALID DATA MANAGER PARAMETERS. INPU VFD 12/0LC,48/2 *CRM* VFD 12/0LD,48/4 *CDCS* VFD 12/0LCD,48/6 *CRM* + *CDCS* VFD 12/0LDC,48/6 *CRM* + *CDCS* CON 0 TABLE TERMINATOR SPACE 4 ENDP EQU * END OF PRESET CODE BUFFERS TITLE FILE BUFFERS. TBL EQU 1001B TB EQU PRS WORKING BUFFER FOR TASK BINARY BBUFL EQU 1001B BBUF EQU TB+TBL BINARY FILE BUFFER HBL EQU 102B HB EQU BBUF+BBUFL BUFFER FOR FIRST 66 WORDS OF TASK SBUFL EQU 1001B SBUF EQU HB+HBL SCRATCH FILE BUFFER WBUFL EQU 14 WBUF EQU SBUF+SBUFL OUTPUT FILE WORKING BUFFER .1 SET ENDP END OF PRESET CODE IFGT WBUF+WBUFL,.1 .1 SET WBUF+WBUFL ENDIF PBUFL EQU 6002B PBUF EQU .1 TASK LIBRARY FILE IBUFL EQU 301B IBUF EQU PBUF+PBUFL INPUT FILE BUFFER OBUFL EQU 401B OBUF EQU IBUF+IBUFL OUTPUT FILE BUFFER LASTB EQU OBUF+OBUFL RFL= EQU LASTB+10B END LIBTASK