TMSPROC 
*NOSEQ
.PROC,RGENTMS,FM=.
.IFE,OT.NE.SYO,OT1. 
$REVERT,ABORT. INCORRECT ACCESS.
.ENDIF,OT1. 
.IFE,$FM$.EQ.$$,FM1.
$REVERT,ABORT. NO FAMILY NAME.
.ENDIF,FM1. 
****************************************
* 
* RGENTMS 
* 
* THIS PROCEDURE ROUTES A SYSTEM ORIGIN 
* JOB THAT GENERATES THE *TMS* BILLING
* FILE *TFDUMP* ON USER INDEX 377777 OF 
* THE SPECIFIED FAMILY.  THIS PROCEDURE 
* MUST BE CALLED FROM A SYSTEM ORIGIN 
* JOB.
* 
* FORMAT OF CALL -
* 
*   RGENTMS,FAMILY. 
* 
*     FAMILY     NAME OF FAMILY TO
*                GENERATE *TMS* BILLING 
*                FILE ON.  MANDATORY
*                ENTRY. 
* 
* THE FOLLOWING LOCAL FILE NAMES ARE USED BY
* *RGENTMS* - 
* 
*   ZZZJOB
* 
* THE FOLLOWING MESSAGE MAY BE FLASHED BY 
* *RGENTMS* IF UNSUCCESSFUL - 
* 
*   RGENTMS ABORTED.
* 
****************************************
$ROUTE,ZZZJOB,OT=SYOT,DC=IN.
$REVERT. RGENTMS COMPLETE.
$EXIT.
$OPMSG. RGENTMS ABORTED, SEE DAYFILE. 
$REVERT,ABORT. RGENTMS ABORTED. 
$EXIT.
$REVERT,ABORT. RGENTMS ABORTED. 
.DATA,ZZZJOB. 
GENTMS(T7777) GENERATE BILLING FOR *TMS* TAPES. 
$ASSIGN,MS,OUTPUT.
$NOTE(OUTPUT/NR)/1 *** GENTMS - GENERATE TMS BILLING INFORMATION. *** 
$SUI(377777)
$FAMILY,FM. 
* 
$WHILE,R1 .EQ. 0,LOOP.
$PURGE(TFDUMP/NA) 
$DEFINE(TFDUMP/PW=CHANGE,NA)
* 
$IF,FILE(TFDUMP,PM),GENTMS1. IF TFDUMP WAS DEFINED
$SET(R1=1) END LOOPING
$ELSE(GENTMS1)
*** INSTRUCTIONS. 
* 
*  THERE WAS A PROBLEM DEFINING AN EMPTY
*  PERMANENT FILE (TFDUMP) ON WHICH TO
*  WRITE BILLING INFORMATION. 
*  TYPE GO,JSN TO RETRY.
*  TYPE DROP,JSN TO ABANDON GENTMS RUN. 
* 
$OPMSG. GENTMS ABORTED. GO,JSN TO RETRY.
$SKIP,RETRY.
$EXIT. OPERATOR DROPPED.
$EXIT. ABANDON RUN. 
$ENDIF,RETRY. 
$ENDIF,GENTMS1. 
* 
$ENDW,LOOP. 
* 
* GET MACHINE READABLE FILE 
* FROM THE TAPE FILE CATALOG
* VIA *TFSP*. 
* 
$SET,R1=0.
$WHILE,R1.EQ.0,MREAD1.
$RETURN,MREAD.
$TFSP,L=0,SS=MREAD,OP=Z,RT./MREADUN=
$SET,R1=1.
$NOTE,OUTPUT,NR./ /  MACHINE READABLE FILE
$NOTE,OUTPUT,NR./  GENERATED FROM FAST-ATTACHED 
$NOTE,OUTPUT,NR./  TAPE CATALOG FILE. 
$SKIP,MREAD2. 
$EXIT.
* 
* UNABLE TO ACCESS FAST-ATTACHED FILE.
* ATTEMP TO ACCESS DIRECT-ACCESS FILE 
* *ZZZZZFC*.
* 
$ATTACH,OLD=ZZZZZFC/M=M.
$RETURN,MREAD.
$TFSP,L=0,LF,SS=MREAD,OP=Z./MREADUN=
$RETURN,OLD.
$SET,R1=1.
$NOTE,OUTPUT,NR./ /  MACHINE READABLE FILE
$NOTE,OUTPUT,NR./  GENERATED FROM DIRECT-ACCESS 
$NOTE,OUTPUT,NR./  FILE *ZZZZZFC*.
$SKIP,MREAD2. 
$EXIT.
* 
* UNABLE TO ACCESS DIRECT-ACCESS FILE.
* CHECK IF DIRECT-ACCESS FILE EXISTS. 
* 
$CATLIST,FN=ZZZZZFC.
*** INSTRUCTIONS. 
* 
* UNABLE TO ACCESS TAPE CATALOG FILE. 
* TYPE GO,JSN TO RETRY. 
* TYPE DROP,JSN TO ABANDON GENTMS RUN.
* 
$OPMSG. GENTMS ABORTED. GO,JSN TO RETRY.
$SKIP,MREAD2. 
$EXIT.
* 
* DIRECT-ACCESS FILE *ZZZZZFC*
* DOES NOT EXIST
* OR
* OPERATOR DROPPED TO ABANDON RUN.
* 
$NOTE,OUTPUT,NR./ /  TAPE CATALOG FILE *ZZZZZFC*
$NOTE,OUTPUT,NR./  DOES NOT EXIST 
$NOTE,OUTPUT,NR./  OR 
$NOTE,OUTPUT,NR./  OPERATOR DROPPED TO ABANDON RUN. 
$SET,R1=2.  FLAG CATALOG ERROR. 
$SKIP,ERRPROC.  PROCESS NO CATALOG ERROR AND ABORT. 
$ENDIF,MREAD2.
$ENDW,MREAD1. 
* 
* CONVERT MACHINE READABLE LISTING
* TO TFDUMP VIA *GENTMS* BINARY.
* 
$REWIND,MREAD.
$TMSBILL. 
$IFE,FILE(TAPE2,AS),FILE1.
$REWIND,TAPE2.
$SORT5.FROM=TAPE2 TO=TFDUMP KEY=((8,7,COBOL6,A),(21,6,COBOL6,A))
$ENDIF,FILE1. 
$NOTE,OUTPUT,NR./ /  CONVERSION FROM MACHINE READABLE FILE
$NOTE,OUTPUT,NR./  TO *TFDUMP* COMPLETE.
$PACK,OUTPUT. 
$ROUTE,OUTPUT,DC=PR.
$DAYFILE,OUT. 
$ROUTE,OUT,DC=PR. 
$EXIT.
$ENDIF,ERRPROC. 
$IFE,R1.NE.2,CONVERR. 
$NOTE,OUTPUT,NR./ /  ERROR OCCURRED IN CONVERSION 
$NOTE,OUTPUT,NR./  FROM MACHINE READABLE LISTING
$NOTE,OUTPUT,NR./  TO *TFDUMP*. 
$ENDIF,CONVERR. 
*** INSTRUCTIONS. 
* 
*  A PROBLEM OCCURRED WHILE WRITING 
*  BILLING INFORMATION TO THE FILE
*  *TFDUMP* OR THE TMS DATA BASE COULD
*  NOT BE ATTACHED. 
*  TYPE EITHER GO,JSN OR DROP,JSN TO
*  ACKNOWLEDGE. 
*  SAVE THIS JOB'S OUTPUT FOR ANALYSIS. 
*  MANUALLY INITIATE GENTMS AGAIN WHEN
*  THE CAUSE IS CORRECTED.
* 
$PURGE(TFDUMP/NA) 
$PACK,OUTPUT. 
$OPMSG. GENTMS ABORTED. CFO,JSN.OK TO ACKNOWLEDGE.
$REVERT,ABORT. GENTMS ABORTED.
$EXIT.
$REVERT,ABORT. GENTMS ABORTED.
*WEOR 
.PROC,TMSDBLD,FM=,AFN=,DFN=DIRFILE,STIME=000000,ETIME=250000, 
SAM=0/1,EAM=0/1.
.IFE,OT.NE.SYO,OT1. 
$REVERT,ABORT. INCORRECT ACCESS.
.ENDIF,OT1. 
.IFE,$FM$.EQ.$$,FM1.
$REVERT,ABORT. NO FAMILY NAME.
.ENDIF,FM1. 
$RFL,0. 
$FAMILY,FM. 
$SUI,377777.
****************************************
* 
* TMSDBLD 
* 
* THIS PROCEDURE USES THE ACCOUNT FILE
* TO GENERATE *TFSP* DIRECTIVES THAT CAN
* BE USED TO RECOVER A TMS TAPE CATALOG 
* FILE.  THIS PROCEDURE MUST BE CALLED FROM A 
* SYSTEM ORIGIN JOB.
* 
* FORMAT OF CALL -
* 
*   TMSDBLD,FAMILY,#AFN,#DFN,#STIME,#ETIME,#SAM,#EAM. 
* 
*     FAMILY     NAME OF FAMILY TO BUILD
*                DIRECITIVES AGAINST.  MANDATORY
*                ENTRY. 
* 
*     #AFN        LOCAL FILE NAME OF
*                ACCOUNT FILE.  IF NOT SPECIFIED, 
*                THE CURRENT ACCOUNT FILE WILL BE 
*                USED.
* 
*     #DFN        LOCAL FILE NAME OF *TFSP* 
*                DIRECTIVE FILE.  DEFAULT IS
                 *DIRFILE*. IF #DFN IS NOT AN EMPTY 
*                FILE, THE DIRECTIVES ARE COPIED
*                TO THE END OF THE FILE.
* 
*     #STIME      STARTING TIME TO BEGIN READING
*                ACCOUNT FILE.  FORMAT IS HHMMSS. 
*                IF NOT SPECIFIED, THE ACCOUNT
*                FILE WILL BE READ FROM THE START.
* 
*     #ETIME      ENDING TIME TO COMPLETE READING 
*                ACCOUNT FILE.  FORMAT IS HHMMSS. 
*                IF NOT SPECIFIED, THE ACCOUNT
*                FILE WILL BE READ TO THE END.
* 
*     #SAM        IF SPECIFIED, THE STARTING TIME 
*                IS AFTER MIDNIGHT IN THE ACCOUNT 
*                FILE.
* 
*     #EAM        IF SPECIFIED, THE ENDING TIME IS
*                AFTER MIDNIGHT IN THE ACCOUNT
*                FILE.
* 
* THE CALLING JOB EXITS AT USER INDEX 377777
* OF THE FAMILY.
* 
* THE FOLLOWING LOCAL FILE NAMES ARE USED BY
* *TMSDBLD* - 
* 
*   ACCFILE 
*   DIRFILE 
*   FAMNAME 
* 
* THE FOLLOWING MESSAGE MAY BE FLASHED BY 
* *TMSDBLD* IF UNSUCCESSFUL - 
* 
*   TMSDBLD ABORTED, CHECK DAYFILE. 
* 
****************************************
.IFE,$AFN$.EQ.$$,AFN1.
$AFD,ACCFILE. 
.ELSE,AFN1. 
$RENAME,ACCFILE=AFN.
.ENDIF,AFN1.
$IFE,FILE(DFN,AS),DFN1. 
$RENAME,DIRFILE=DFN.
$ENDIF,DFN1.
$RETURN,FAMNAME.
$NOTE,FAMNAME,NR./FM
.IFE,$ETIME$.EQ.$250000$,ETIME1.
$NOTE,FAMNAME,NR./STIME_SAM_ETIME_1 
.ELSE,ETIME1. 
.IFE,$SAM$.EQ.$1$,SAM1. 
$NOTE,FAMNAME,NR./STIME_SAM_ETIME_1 
.ELSE,SAM1. 
$NOTE,FAMNAME,NR./STIME_SAM_ETIME_EAM 
.ENDIF,SAM1.
.ENDIF,ETIME1.
$PACK,FAMNAME.
$REWIND,ACCFILE.
$RECTMS.
$RENAME,DFN=DIRFILE.
$PACK,DFN.
.IFE,$AFN$.NE.$$,AFN2.
$RENAME,AFN=ACCFILE.
.ENDIF,AFN2.
$REVERT. TMS TMSDBLD COMPLETE.
$EXIT.
$OPMSG. TMSDBLD ABORTED, SEE DAYFILE. 
$REVERT,ABORT. TMSDBLD ABORTED. 
$EXIT.
$REVERT,ABORT. TMSDBLD ABORTED. 
*WEOR 
.PROC,TMSDUMP,FM=,DFM=,DUI=377777,DPF=. 
.IFE,OT.NE.SYO,OT1. 
$REVERT,ABORT. INCORRECT ACCESS.
.ENDIF,OT1. 
.IFE,$FM$.EQ.$$,FM1.
$REVERT,ABORT. NO FAMILY NAME.
.ENDIF,FM1. 
$FAMILY,FM. 
$SUI,377777.
****************************************
* 
* TMSDUMP 
* 
* THIS PROCEDURE USES *PFDUMP* TO DUMP A
* TAPE CATALOG FILE OF A FAMILY TO A DIFFERENT
* DEVICE.  THIS PROCEDURE MUST BE CALLED
* FROM A SYSTEM ORIGIN JOB. 
* 
* FORMAT OF CALL -
* 
*   TMSDUMP,FAMILY,#DFM,#DUI,#DPF.
* 
*     FAMILY     NAME OF THE FAMILY OF THE
*                TAPE CATALOG FILE TO DUMP. 
*                MANDATORY ENTRY. 
* 
*     #DFM        NAME OF THE FAMILY TO RECEIVE 
*                THE DUMP FILE.  DEFAULT IS 
*                THE SAME AS THE FAMILY OF THE
*                TAPE CATALOG FILE. 
* 
*     #DUI        USER INDEX TO RECEIVE THE DUMP
*                FILE.  DEFAULT IS 377777.
* 
*     #DPF        NAME OF THE DIRECT-ACCESS FILE
*                TO RECEIVE THE DUMP.  IF NOT 
*                SPECIFIED, THE DUMP WILL BE
*                COPIED TO A LOCAL FILE *TAPE*. 
* 
* THE CALLING JOB EXITS AT USER INDEX 377777
* OF THE FAMILY.
* 
* THE FOLLOWING LOCAL FILE NAMES ARE USED BY
* *TMSDUMP* - 
* 
*   TAPE
* 
* THE FOLLOWING MESSAGE MAY BE FLASHED BY 
* *TMSDUMP* IF UNSUCCESSFUL - 
* 
*   TMSDUMP ABORTED, SEE DAYFILE. 
* 
****************************************
.IFE,$DPF$.NE.$$,DPF1.
.IFE,$DFM$.NE.$$,DFM1.
$FAMILY,DFM.
.ENDIF,DFM1.
$SUI,DUI. 
$PURGE,DPF/NA.
$DEFINE,TAPE=DPF. 
$FAMILY,FM. 
$SUI,377777.
.ENDIF,DPF1.
$PFDUMP,#FM=FM,UI=377777,PF=ZZZZZFC.
$REVERT. TMSDUMP COMPLETE.
$EXIT.
$OPMSG. TMSDUMP ABORTED, SEE DAYFILE. 
$REVERT,ABORT. TMSDUMP ABORTED. 
$EXIT.
$REVERT,ABORT. TMSDUMP ABORTED. 
*WEOR 
.PROC,TMSLOAD,FM=,DFM=,DUI=377777,DPF=. 
.IFE,OT.NE.SYO,OT1. 
$REVERT,ABORT. INCORRECT ACCESS.
.ENDIF,OT1. 
.IFE,$FM$.EQ.$$,FM1.
$REVERT,ABORT. NO FAMILY NAME.
.ENDIF,FM1. 
$FAMILY,FM. 
$SUI,377777.
****************************************
* 
* TMSLOAD 
* 
* THIS PROCEDURE USES *PFLOAD* TO RELOAD A
* TAPE CATALOG FILE OF A FAMILY FROM A DIFFERENT
* DEVICE.  THIS PROCEDURE MUST BE CALLED
* FROM A SYSTEM ORIGIN JOB. 
* 
* FORMAT OF CALL -
* 
*   TMSLOAD,FAMILY,#DFM,#DUI,#DPF.
* 
*     FAMILY     NAME OF THE FAMILY OF THE
*                TAPE CATALOG FILE TO RELOAD. 
*                MANDATORY ENTRY. 
* 
*     #DFM        NAME OF THE FAMILY THAT HAS 
*                THE DUMP FILE.  DEFAULT IS 
*                THE SAME AS THE FAMILY OF THE
*                TAPE CATALOG FILE. 
* 
*     #DUI        USER INDEX THAT HAS THE DUMP
*                FILE.  DEFAULT IS 377777.
* 
*     #DPF        NAME OF THE DIRECT-ACCESS FILE
*                THAT HAS THE LOAD FILE.  IF NOT
*                SPECIFIED, THE LOCAL FILE
*                *TAPE* IS ASSUMED TO BE
*                THE DUMP FILE. 
* 
* THE CALLING JOB EXITS AT USER INDEX 377777
* OF THE FAMILY.
* 
* THE FOLLOWING LOCAL FILE NAMES ARE USED BY
* *TMSLOAD* - 
* 
*   TAPE
* 
* THE FOLLOWING MESSAGE MAY BE FLASHED BY 
* *TMSLOAD* IF UNSUCCESSFUL - 
* 
*   TMSLOAD ABORTED, SEE DAYFILE. 
* 
****************************************
.IFE,$DPF$.NE.$$,DPF1.
.IFE,$DFM$.NE.$$,DFM1.
$FAMILY,DFM.
.ENDIF,DFM1.
$SUI,DUI. 
$ATTACH,TAPE=DPF. 
$FAMILY,FM. 
$SUI,377777.
.ENDIF,DPF1.
$REWIND,TAPE. 
$PFLOAD,#FM=FM,UI=377777,PF=ZZZZZFC,OP=OR.
$REVERT. TMSLOAD COMPLETE.
$EXIT.
$OPMSG. TMSLOAD ABORTED, SEE DAYFILE. 
$REVERT,ABORT. TMSLOAD ABORTED. 
$EXIT.
$REVERT,ABORT. TMSLOAD ABORTED. 
*WEOR 
.PROC,TMSRBLD,FM=,P=,N=NEW,I=DIRFILE. 
.IFE,OT.NE.SYO,OT1. 
$REVERT,ABORT. INCORRECT ACCESS.
.ENDIF,OT1. 
.IFE,$FM$.EQ.$$,FM1.
$REVERT,ABORT. NO FAMILY NAME.
.ENDIF,FM1. 
$FAMILY,FM. 
$SUI,377777.
****************************************
* 
* TMSRBLD 
* 
* THIS PROCEDURE CAN BE USED TO REBUILD A 
* TAPE CATALOG FILE GIVEN AN OLD TAPE 
* CATALOG FILE AND A *TFSP* DIRECTIVE FILE. 
* THIS PROCEDURE MUST BE CALLED FROM A
* SYSTEM ORIGIN JOB.
* 
* FORMAT OF CALL -
* 
*   TMSRBLD,FAMILY,OFN,NFN,DFN. 
* 
*     FAMILY     NAME OF FAMILY OF TAPE 
*                CATALOG FILE.  MANDATORY 
*                ENTRY. 
* 
*     OFN        LOCAL FILE NAME OF OLD 
*                TAPE CATALOG FILE TO BUILD 
*                AGAINST.  IF NOT SPECIFIED,
*                THE DIRECT-ACCESS FILE 
*                *ZZZZZFC* ON USER INDEX
*                377777 OF THE FAMILY IS
*                USED.  *ZZZZZFC* MUST NOT
*                BE A FAST-ATTACHED FILE
*                WHEN *TMSRBLD* IS CALLED.
* 
*     NFN        LOCAL FILE NAME OF THE 
*                REBUILT TAPE CATALOG FILE. 
*                DEFAULT IS *NEW*.  THE 
*                *OFN* AND *NFN* PARAMETERS 
*                MAY HAVE THE SAME NAME.
* 
*     DFN        LOCAL FILE NAME OF THE 
*                *TFSP* DIRECTIVE INPUT 
*                FILE TO APPLY AGAINST THE
*                OLD TAPE CATALOG FILE. 
*                DEFAULT IS *DIRFILE*.
* 
* THE CALLING JOB EXITS AT USER INDEX 377777
* OF THE FAMILY.
* 
* THE FOLLOWING LOCAL FILE NAMES ARE USED BY
* *TMSRBLD* - 
* 
*   ZZZZZFC 
*   NEW 
*   DIRFILE 
* 
* THE FOLLOWING MESSAGE MAY BE FLASHED BY 
* *TMSRBLD* IF UNSUCCESSFUL - 
* 
*   TMSRBLD ABORTED, CHECK DAYFILE. 
* 
****************************************
$REWIND,I.
.IFE,$P$.EQ.$$,P1.
$ATTACH,ZZZZZFC/M=W.
$TFSP,LF,#P=ZZZZZFC,#N=N,#I=I,A.
.ELSE,P1. 
$TFSP,LF,#P=P,#N=N,#I=I,A.
.ENDIF,P1.
$REVERT. TMS TMSRBLD COMPLETE.
$EXIT.
$OPMSG. TMSRBLD ABORTED, SEE DAYFILE. 
$REVERT,ABORT. TMSRBLD ABORTED. 
$EXIT.
$REVERT,ABORT. TMSRBLD ABORTED. 
*WEOR 
