*NOSEQ DOC ***** CYBER SUPERMINI PROCEDURES. * * J. H. ERICKSON 84/06/01 * * THESE PROCEDURES FRONT END THE STANDARD UTILITIES. * THESE PROCEDURE DO NOT PRESENT ALL THE OPTIONS * AVAILABLE UNDER NOS. THEY DO REQUIRE ONLY A MINIMAL * NUMBER OF DECISIONS ON THE PART OF THE USER. MOST * OF THE PROCEDURES ARE RUN FROM THE SYSTEM CONSOLE. * THREE OF THE PROCEDURES ARE RUN FROM A TERMINAL * IN SCREEN MODE. * * BEFORE THE PROCEDURES CAN BE RUN THEY MUST BE * INSTALLED USING THE SYSTEM PROCEDURE, * MAINTAIN SYSTEM *MS*. * * FROM DSD ENTER: X.MS(SETUP) * * THIS WILL TAKE THE PROCEDURES AND THE VALIDATION TYPES * ON ULIB/SUPERM AND PLACE THEM ON USER NAME SYSTEMX ON * A PERMANENT FILE CALLED ZZZPFIL. THE PROCEDURE CPASS * WILL BE PLACED ON A PUBLIC PERMANENT FILE ON SYSTEMX. * *MS* WILL CREATE THE FILE ZZZZVDI USED BY VALUSER AND * WRITEVI. THESE FILES CREATED BY *MS* ON SYSTEMX WILL * GIVE USER NAME INSTALL WRITE PERMISSION. * * SETUP MAY ALSO BE USED AS FOLLOWS: * * X.MS(SETUP,XXXX) * * THIS FORMAT ALLOWS THE OPERATOR TO INSTALL PROTIONS * OF WHAT WAS INSTALLED BY * X.MS(SETUP) *. THE * PORTION IS SPECIFIED BY USING THE PARAMETER *XXXX*. * SUBSTITUTING ZZZZVDI FOR XXXX INSTALLS ZZZZVDI. * SUBSTITUTING SUPERM FOR XXXX INSTALLS THE PROCEDURES * AND VALIDATION TYPES. * * ALL THE TAPES USED IN THESE PROCEDURES ARE ASSUMED * TO BE PRELABELED GE DENSITY TAPES. THE PROCEDURES * FOR DAYFILE AND QUEUE FILE MAINTENANCE ASSUME ONLY * ONE TAPE WILL BE REQUIRED FOR EACH RUN. A SETNAME * PARAMETER IS SUPPLIED TO IDENTIFY THE SET OF TAPES * USED. THE SETNAME MUST BE 1-5 ALPHANUMERIC CHARACTERS. * THE PROCEDURES CONCATENATE THE SETNAME WITH THE * VOLUME NUMBER OF TAPE TO GET THE ACTUAL VSN. * EXAMPLE: THE SETNAME IS FRI AND THE VOLUME NUMBER * IS 2. THE VSNS WOULD BE FRI1 AND FRI2. * BE FRIDAY1 OR FRIDAY2, ETC. * * THE GLOBAL *CCL* REGISTER R1G IS USED TO COMMUNICATE * BETWEEN THE SYSTEM PROCEDURE, *MS* AND THE CALLED * PROCEDURES. IF R1G IS EQUAL TO ONE THEN *MS* KNOWS * THERE WAS A FAILURE IN THE CALLED PROCEDURES AND * THE CALLED PROCEDURE NOTIFIED THE OPERATOR. IF * *MS* GOES TO EXIT PROCESSING THEN *MS* KNOWS THERE * WAS AN ERROR IN THE CALLED PROCEDURE AND THE CALLED * PROCEDURE DID NOT NOTIFIED THE OPERATOR. IF R1G * IS EQUAL TO ZERO THEN THE CALLED PROCEDURE COMPLETED * SUCCESSFULLY. * *WEOR .PROC,MS*I ,TOOL =(*F) ,P1 =(*N=$$,*A) ,P2 =(*N=$$,*A) ,P3 =(*N=$$,*A) ,P4 =(*N=$$,*A) ,P5 =(*N=$$,*A) ,P6 =(*N=$$,*A) ,P7 =(*N=$$,*A) . .* MS - MAINTAIN SYSTEM .* THIS SYSTEM PROCEDURE IS USED TO INITIATE TOOLS .* THAT ARE USED IN MAINTAINING THE SYSTEM. .* DSD COMMAND FORMAT: .* .* X.MS(TOOL,P1,P2,P3...) .* .* WHERE TOOL IS THE PROCEDURE NAME, P1, P2, P3, ETC. ARE THE .* PARAMETERS TO THE PROCEDURE. .* THE PROCEDURE DESIGNED TO BE INITIATED FROM A TERMINAL WILL .* BE INITIATED AS: .* .* SCREEN,TERMINAL TYPE. .* MS(TOOL) .* .* IN THIS CASE, THE TOOL WILL PROMPT THE USER FOR THE PARAMETERS. .* CURRENTLY THE TOOLS RESIDE ON A PERMANENT FILE ZZZPFIL ON .* SYSTEMX. .IF,OT.EQ.SYO,MS1. * EXECUTE TOOL FROM THE CONSOLE .IF,$TOOL$.EQ.$SETUP$,MS2. * THIS IS A SETUP RUN. * ZZZPFIL AND/OR ZZZZVDI ARE INSTALLED * ON SYSTEMX DEPENDING ON THE P1 PARAMETER. * SETUP IS CREATED BY A .DATA STATEMENT IN MS. BEGIN(SETUP,SETUP,P1) REVERT. MS COMPLETE EXIT. RETURN,*,OUTPUT. *********************************** * * *SETUP IS NOT SUPPORTED AS CALLED. * *PLEASE CONSULT CYBER SUPERMINI * *OPERATIONS HANDBOOK AND TRY AGAIN * * * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER: ASSIGN,JSN,2. * * * ************************************ REQUEST(OPER) SETUP FAILED RETURN(OPER) REVERT. MS(SETUP) FAILED .ENDIF,MS2. ATTACH,ZZZPFIL. SKIP,MS3. EXIT. *********************************** * * * PROCFIL ZZZPFIL WAS NOT FOUND. * * RUN X.MS(SETUP) TO CREATE THIS * * PROCFIL. * * * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER: ASSIGN,JSN,2. * * * *********************************** REQUEST(OPER) MS FAILED. RETURN(OPER) WRITEF. REVERT. MS ENDIF,MS3. * CHECK TO SEE IF TOOL IS * SUPPORTED FROM THE CONSOLE * IF SO CHECK TO SEE IF TOO MANY * PARAMETERS WERE SUPPLIED BEGIN(VERTOOL,ZZZPFIL,TOOL,P1,P2,P3,P4,P5,P6,P7) * EXECUTE THE TOOL BEGIN(TOOL,ZZZPFIL,P1,P2,P3,P4,P5) SKIP,MS6. EXIT. * TOOL FAILED AND THE EXACT * ERROR COULD NOT BE IDENTIFIED. BEGIN(ERRTOOL,ZZZPFIL,TOOL) REVERT. MS ENDIF,MS6. * THE R1G REGISTER IS USED TO STATE WHETHER OR * NOT TOOL WAS SUCCESSFUL. * R1G=1 FOR ERROR IN TOOL. IF,R1G.EQ.1,MS7. * THERE WAS AN ERROR IN TOOL THAT WAS * REPORTED TO THE OPERATOR BY TOOL. WRITEF. REVERT. MS ENDIF,MS7. * TOOL COMPLETED SUCCESSFULLY. BEGIN(SUCCESS,ZZZPFIL,TOOL) .ELSE,MS1. .IF,OT.EQ.IAO,MS1. ATTACH,ZZZPFIL/UN=SYSTEMX,NA. ATTACH,ZZPPFIL/UN=SYSTEMX. SKIP,MS8. EXIT. NOTE(OUTPUT)* PROCFIL ZZPPFIL WAS NOT FOUND. NOTE(OUTPUT)* RUN X.MS(SETUP) NOTE(OUTPUT)* FROM THE CONSOLE NOTE(OUTPUT)* TO CREATE THIS PROCFIL. ROLLOUT(5) REVERT. MS(TOOL) FAILED ENDIF,MS8. * CHECK TO SEE IF TOOL IS SUPPORTED * FROM A TERMINAL BEGIN(VERIAT,ZZPPFIL,TOOL) * BEGIN EXECUTION OF THE TOOL .IF,$TOOL$.EQ.$WRITEVI$,MS11. ATTACH,ZZZPFIL/UN=SYSTEMX. BEGIN(TOOL,ZZZPFIL,P1,P2,P3,P4,P5,P6,P7) REVERT. MS (TOOL) COMPLETED. EXIT. * WRITEVI CANNOT BE RUN FROM THIS * USER. REVERT. MS (TOOL) FAILED. .ELSE,MS11. BEGIN(TOOL,ZZPPFIL,P1,P2,P3,P4,P5,P6,P7) REVERT. MS (TOOL) COMPLETED. .ENDIF,MS11 SKIP,MS9. EXIT. NOTE(OUTPUT,NR)* TOOL FAILED. PLEASE NOTE(OUTPUT,NR)* EXAMINE THE DAYFILE NOTE(OUTPUT,NR)* TO IDENTIFIED THE CAUSE. ROLLOUT(5) REVERT. MS (TOOL) FAILED ENDIF,MS9. REVERT. (TOOL) COMPLETE .ELSE,MS1. * TOOL NOT SUPPORTED FROM * THIS ORIGIN TYPE. * #TOOLS ARE ONLY SUPPORTED FROM A * TERMINAL OR THE CONSOLE BY MS. * PLEASE TRY TOOL FROM AN ORIGIN * TYPE WHICH SUPPORTS IT. * TOOL WAS NOT RUN. REVERT. MS FAILED. .ENDIF,MS1. .IF,OT.EQ.SYO,MS10. .DATA,SETUP. .EXPAND,OFF. .PROC,SETUP*I ,P1 [SETUP THIS] =(*N=0,PROCFIL=1,ZZZZVDI=2) . IF,((P1.EQ.0).OR.(P1.EQ.2)),SETUP1. * INSTALL ZZZZVDI. PURGE(ZZZZVDI/NA) DEFINE(ZZZZVDI) PERMIT(ZZZZVDI,INSTALL=W) RETURN(ZZZZVDI) SKIP,SETUP1. EXIT. IF,PNL.EQ.2,SETUP3. RETURN,*,OUTPUT. ENDIF,SETUP3. *************************************** * * * SETUP FAILED WHILE TRYING * * TO CREATE ZZZZVDI. PLEASE EXAMINE * * THE OUTPUT TO ISOLATE THE CAUSE. * * * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER: ASSIGN,JSN,2. * * * *************************************** IF,PNL.EQ.2,SETUP4. REQUEST(OPER) SETUP FAILED RETURN(OPER) ELSE,SETUP4. REVERT,EX.REVERT,ABORT. SETUP FAILED. ENDIF,SETUP4. REVERT. SETUP FAILED ENDIF,SETUP1. IF,((P1.EQ.0).OR.(P1.EQ.1)),SETUP2. * INSTALL THE PROCFILS, ZZZPFIL AND ZZPPFIL. COMMON(SYSTEM) PURGE(ZZZPFIL,ZZPPFIL/NA) DEFINE(ZZZPFIL) DEFINE(ZZPPFIL/CT=PU) PERMIT(ZZZPFIL,INSTALL=W) GTR(SYSTEM,TEMP)ULIB/SUPERM GTR(TEMP)SPRI-EPRI LIBEDIT(N=ZZZPFIL,P=0,Z)/*FILE LGO/*IGNORE,SPRI,EPRI/*BUILD ZZZPFIL RETURN,LGO. GTR(TEMP)SPUB-EPUB LIBEDIT(N=ZZPPFIL,P=0,Z)/*FILE LGO/*IGNORE,SPUB,EPUB/*BUILD ZZPPFIL ENDIF,SETUP2. IF,PNL.EQ.2,SETUP5. BEGIN(SUCCESS,ZZZPFIL,SETUP) ENDIF,SETUP5. WRITEF,OUTPUT. REVERT. SETUP COMPLETE EXIT. IF,PNL.EQ.2,SETUP6. RETURN,*,OUTPUT. ENDIF,SETUP6. *************************************** * * * SETUP FAILED WHILE TRYING * * TO CREATE PROCFILS. PLEASE EXAMINE * * THE OUTPUT TO ISOLATE THE CAUSE. * * * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER: ASSIGN,JSN,2. * * * *************************************** IF,PNL.EQ.2,SETUP7. REQUEST(OPER) SETUP FAILED RETURN(OPER) ELSE,SETUP7. REVERT,EX.REVERT,ABORT. SETUP FAILED. ENDIF,SETUP7. REVERT. SETUP FAILED .EXPAND. .ENDIF,MS10. *WEOR SPUB *WEOR .PROC,CPASS*I ,OLDPASS [OLD PASSWORD] =(*S7(ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789)), ,NEWPASS [NEW PASSWORD] =(*S7(ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789)), ,NPASS [ENTER NEW PASSWORD AGAIN] =(*S7(ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789)). .* .* COMMAND FORMAT : MS(CPASS) .* THIS PROCEDURE CAN BE RUN FROM ANY TERMINAL LOGGED INTO A VALID .* USER NAME. CPASS WILL ASK FOR THE OLD PASSWORD AND THE NEW .* PASSWORD. THEN IT WILL ASK FOR THE NEW PASSWORD AGAIN. IF THE .* SECOND REPONSE MATCHES THE FIRST, CPASS WILL CHANGE BOTH THE .* BATCH AND INTERACTIVE PASSWORDS TO THE NEW PASSWORD. IF THE .* NEW PASSWORD IS NOT TYPED IN THE SAME BOTH TIMES CPASS WILL .* ASK THE USER TO TRY AGAIN. .* .IF, $NEWPASS$ .NE. $NPASS$, CPASS1. NOTE(OUTPUT,NR)++ YOUR NEW PASSWORDS DISAGREE. TRY AGAIN.+ SET,R1G=1. .ELSE,CPASS1. PASSWOR,OLDPASS,NEWPASS. SUBMIT,CHGPASS,N. .ENDIF,CPASS1. REVERT. CPASS COMPLETED. .DATA,CHGPASS /JOB PASSWOR. /USER PASSWOR,OLDPASS,NEWPASS. EXIT. *WEOR .PROC,FINDJSN*I ,JSN [JOB SEQUENCE NUMBER] =(*S4(ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890)). .* .* COMMAND FORMAT : *FINDJSN(JSN)* .* THIS PROCEDURE PRINTS ALL DAYFILE ENTRIES FOR A SPECIFIC JOB .* BY EXAMINING THE CURRENT ACTIVE SYSTEM DAYFILE FOR ALL ENTRIES .* MADE BY THE JOB WITH A SPECIFIC JSN. .* ATTACH,DF=DAYFILE/UN=SYSTEMX/NA. IF,.NOT.FILE(DF,AS),FNDJSN1. SET,R1G=1. ABORT. NOTE.++ DAYFILE NOT FOUND IN SYSTEMX.+ RETURN,DF,FIEDIT. WRITEF,OUTPUT. REVERT. FINDJSN ABORTED. ENDIF,FNDJSN1. EDIT,DF,I=FIEDIT,L=ZZLIST. REWIND,*,OUTPUT. SKIP,FINDJS1. EXIT. REVERT,ABORT. FINDJSN FAILED. ENDIF,FINDJS1. VERIFY,ZZLIST,ZZZFIND,A. .* IF THE FILES VERIFY THAN THE JSN WAS NOT FOUND IN THE DAYFILE. SET,R1G=1. NOTE(OUTPUT,NR)* * NOTE(OUTPUT,NR)* ERROR-- #JSN JSN WAS NOT FOUND * NOTE(OUTPUT,NR)* IN THE DAYFILE. RETRY WITH A * NOTE(OUTPUT,NR)* DIFFERENT #JSN. * NOTE(OUTPUT,NR)* * ROLLOUT,7. REVERT. FINDJSN FAILED. EXIT. REWIND,*,OUTPUT. COPYEI,ZZLIST,OUTPUT. RETURN,DF,FIEDIT. WRITEF,OUTPUT. REVERT. FINDJSN COMPLETED. .DATA,FIEDIT L:/. JSN/;* END .DATA,ZZZFIND. BEGIN TEXT EDITING. -END OF FILE- END TEXT EDITING. *WEOR .PROC,LOADLOG*I ,VSN [VOLUME SERIAL NUMBER] =(*S6(ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890)), ,ACCOUNT [LOAD ACCOUNT FILE. ENTER YES OR NO] =(NO,YES), ,DAYFILE [LOAD DAYFILE FILE. ENTER YES OR NO] =(NO,YES), ,ERRLOG [LOAD ERRLOG FILE. ENTER YES OR NO] =(NO,YES), ,MAINLOG [LOAD MAINLOG FILE. ENTER YES OR NO] =(NO,YES). .* .* COMMAND FORMAT : *LOADLOG(VSN,ACCOUNT,DAYFILE,ERRLOG,MAINLOG)* .* THIS PROCEDURE USES RECLAIM TO LOAD THE PERMANENT FILES (ACCOUNT, .* DAYFILE, ERRLOG, AND MAINLOG) FROM A TAPE CREATED BY ENDLOG. .* THE TAPE IS A GE DENSITY LABELED TAPE WITH A VSN. .* ANY SUBSET OF THESE LOGS MAY BE LOADED. .* EDIT,INDIR,I=LOEDIT,L=ZZSCR. RECLAIM,I=INDIR,DB=0. UNLOAD,INDIR,TAPE,LOEDIT,ZZSCR. WRITEF,OUTPUT. REVERT. LOADLOG COMPLETED. EXIT. UNLOAD,INDIR,TAPE,LOEDIT,ZZSCR. WRITEF,OUTPUT. REVERT. LOADLOG FAILED. .DATA,INDIR LOAD,D=GE,NT,TN=VSN,RP=Y,PF=* .IF,$ACCOUNT$ .EQ. $YES$.#ACCOUNT+ .IF,$DAYFILE$ .EQ. $YES$.-#DAYFILE+ .IF,$ERRLOG$ .EQ. $YES$.-#ERRLOG+ .IF,$MAINLOG$ .EQ. $YES$.-#MAINLOG .DATA,LOEDIT CS:/+/,/-/;* /,/ RS:/+/,/ /;1 DS:/-/;1 END *WEOR .PROC,VERIAT*I ,P1 [TOOL] =(WRITEVI=1,FINDJSN=1,LOADLOG=1,CPASS=1,1=L,*A) . .IF,($P1$.EQ.$1$).REVERT,NOLIST. TOOL SUPPORTED FROM TERMINAL NOTE(OUTPUT)* P1 NOT SUPPORTED FROM A TERMINAL ROLLOUT(5) REVERT,EX.REVERT. P1 FAILED *WEOR EPUB *WEOR SPRI *WEOR .PROC,BLANKST*I"BLANK LABEL A SET OF TAPES" ,SETNAME [SETNAME OF DUMP TAPES] =(*A,*N=) ,NUMBER [NUMBER OF DUMP TAPES TO BLANK LABEL] =(*A,*N=) . .* .* COMMAND FORMAT : *X.MS(BLANKST,SETNAME,NUMBER)* .* WHERE NUMBER IS THE NUMBER OF VOLUMES TO BE LABELED. .* THIS PROCEDURE BLANK LABELS (NUMBER) TAPES USING (SETNAME) .* AS THE ROOT. THE VSNS WILL BE; .* SETNAME_1 SETNAME_2 .... (MAX OF 8 TAPES) .* BEGIN,VERSETN,ZZZPFIL,SETNAME. VERIFY SETNAME SKIP,BLANKST1. EXIT. BEGIN,ERRSETN,ZZZPFIL,BLANKST,SETNAME. SET(R1G=1) WRITEF,OUTPUT. REVERT. BLANKST FAILED ENDIF,BLANKST1. BEGIN,VERSETM,ZZZPFIL,NUMBER. VERIFY MAX SETNAME SKIP,BLANKST2. EXIT. BEGIN,ERRSETM,ZZZPFIL,BLANKST,NUMBER. SET(R1G=1) WRITEF,OUTPUT. REVERT. BLANKST FAILED ENDIF,BLANKST2. SET,R1=0. WHILE,R1 .LT. NUMBER, BLANKST3. SET,R1=R1+1. BEGIN,BLANKX,ZZZPFIL,SETNAME,R1+D,BLANKST. ENDW,BLANKST3. WRITEF,OUTPUT. REVERT. BLANKST COMPLETED *WEOR .PROC,BLANKX,ROOT,TAPENUM,P1. *************************************** * * * TO ASSIGN A TAPE TO A TAPE DRIVE * * ENTER: ASSIGN,JSN,NN. * * WHERE NN IS THE EST OF THE * * TAPE DRIVE, FOUND IN THE E,T * * DISPLAY. * * * *************************************** BLANK,VSN=ROOT_TAPENUM,D=GE. REVERT,NOLIST. BLANKX COMPLETE. EXIT. RETURN,*,OUTPUT. SET,R1G=1. *************************************** * * * ERROR--BLANKST : SETNAME=ROOT * * MAY BE OPERATOR TERMINATION ELSE * * CONSULT DAYFILE. THEN TRY AGAIN * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER: ASSIGN,JSN,2. * * * *************************************** REQUEST,OPER. P1 FAILED. RETURN,OPER. WRITEF,OUTPUT. REVERT,EX. REVERT. BLANKST FAILED. *WEOR .PROC,DUMPALL*I"DUMP ALL FILES" ,P1 [SETNAME OF DUMP TAPES] =(*A,*N=) . .* .* COMMAND FORMAT : *X.MS(DUMPALL,SETNAME)* .* THIS PROCEDURE DUMPS ALL PERMANENT FILES TO THE SET OF .* TAPES IDENTIFIED BY SETNAME. DUMPALL WILL ALSO CREATE .* A PERMANENT FILE, ZZDUMPM, ON USER NAME SYSTEMX WHICH .* CONTAINS THE SETNAME FOR THIS DUMP AND THE DATE AND TIME OF THE .* DUMP. THIS INFORMATION IS USED TO CONNECT THIS DUMP .* WITH SUBSEQUENT DUMPS OF FILES THAT ARE MODIFIED .* AFTER THIS DUMP. .* .* WHEN THIS PROCEDURE COMPLETES CHECK THE DAYFILE .* TO DETERMINE THAT ALL THE FILES WERE DUMPED. IT .* IS POSSIBLE FOR DUMPALL TO COMPLETE SUCESSFULLY .* AND NOT HAVE ALL THE FILES DUMPED TO TAPE. IF .* A DIRECT ACCESS FILE IS ATTACHED IN WRITE MODE TO A JOB THEN .* THAT FILE IS SKIPPED BY DUMPALL. .* BEGIN(LABELS,ZZZPFIL,P1,DUMPALL,DATE+D) BEGIN(DUMPFUL,ZZZPFIL,DATE+D,P1,TIME+D) WRITEF,OUTPUT. REVERT. DUMPALL COMPLETED *WEOR .PROC,DUMPFUL*I ,P [DATE OF FULL DUMP] =(*A) ,P2 [SETNAME OF FULL DUMP] =(*A) ,P3 [TIME OF FULL DUMP] =(*A). REPLACE,ZZDUMPM. *P = CURRENT DATE. * PFDUMP. REVERT,NOLIST. DUMPFUL COMPLETED. .DATA,ZZDUMPM .PROC,ZZDUMPM. PFDUMP,OP=M,AD=P,AT=P3_00,PVSN=P2_1. * P2 = SETNAME OF FULL DUMP. * REVERT,NOLIST. ZZDUMPM COMPLETED. *WEOR .PROC,DUMPLOG*I ,VSN [VOLUME SERIAL NUMBER] =(*A,*N=) ,P [PURGE ON/OFF] =(*A,*N=). .* .* COMMAND FORMAT : *DUMPLOG(VSN,PURGE)* .* THIS PROCEDURE USES RECLAIM TO DUMP PERMANENT FILES .* (ACCOUNT, DAYFILE, ERRLOG, AND MAINLOG) CREATED BY .* PROCEDURE ENDLOG TO TAPE. THE TAPE IS A GE DENSITY .* LABELED TAPE WITH A VSN. IF PARAMETER PURGE IS SET .* TO PURGE, THE PERMANENT FILES ARE PURGED AFTER THEY .* ARE DUMPED. IF PURGE IS NOT SUPPLIED, THE FILES WILL .* NOT BE PURGED. .* BEGIN,VERPURG,ZZZPFIL,P,DUMPLOG. ATTACH,ACCOUNT/NA. ATTACH,DAYFILE/NA. ATTACH,ERRLOG/NA. ATTACH,MAINLOG/NA. IF,(FILE(ACCOUNT,PM).AND. FILE(DAYFILE,PM).AND. FILE(MAINLOG,PM).AND. FILE(ERRLOG,PM)).SKIP,DUMPLOG2. RETURN,*,OUTPUT. SET,R1G=1. **************************************** * * * ERROR-- DUMPLOG FAILED * * ENDLOG OR ENDDF MUST BE EXECUTED * * BEFORE DUMPLOG. EXAMINE THE * * OUTPUT FROM THIS JOB TO * * DETERMINE THE CAUSE OF THE * * FAILURE. * * * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER: ASSIGN,JSN,2. * *************************************** REQUEST,OPER. DUMPLOG FAILED. RETURN,OPER. REVERT. DUMPLOG FAILED. ENDIF,DUMPLOG2. RETURN,ACCOUNT,DAYFILE,ERRLOG,MAINLOG. BEGIN(LABELV,ZZZPFIL,VSN,DUMPLOG,DATE+D) RECLAIM,Z./DUMP,EI=NO,DN=TAPE,PF=*/ACCOUNT,DAYFILE,ERRLOG,MAINLOG IF,$P$.EQ.$PURGE$,DUMPLOG1. PURGE,ACCOUNT,DAYFILE,ERRLOG,MAINLOG/NA. ENDIF,DUMPLOG1. WRITEF,OUTPUT. REVERT. DUMPLOG COMPLETED. *WEOR .PROC,DUMPMOD*I"DUMP MODIFIED FILES" ,P1 [SETNAME OF DUMP TAPES] =(*A,*N=) . .* .* COMMAND FORMAT : *X.MS(DUMPMOD,SETNAME)* .* THIS PROCEDURE WILL DUMP PERMANENT FILES THAT HAVE BEEN .* MODIFIED SINCE THE LAST DUMPALL. DUMPMOD USES .* THE INFORMATION ON THE FILE ZZDUMPM TO DETERMINE .* WHEN DUMPALL WAS LAST CALLED. IT ALSO STORES THE VSN .* OF THE FIRST TAPE USED IN THE DUMPALL ON THIS DUMP. .* BEGIN(LABELS,ZZZPFIL,P1,DUMPMOD,DATE+D) IF,R1G.EQ.1.REVERT. DUMPMOD FAILED GET,ZZDUMPM/NA. IF,FILE(ZZDUMPM,LO),DUMPMOD2. BEGIN,,ZZDUMPM. ELSE,DUMPMOD2. BEGIN(DUMPFUL,ZZZPFIL,DATE+D,P1,TIME+D) ************************************ * A DUMPALL WAS PERFORMED BECAUSE * THE RECORD OF WHEN THE LAST DUMPALL * WAS PERFORMED WAS NOT FOUND. ************************************** WRITEF,OUTPUT. REVERT. DUMPALL COMPLETED. ENDIF,DUMPMOD2. WRITEF,OUTPUT. REVERT. DUMPMOD COMPLETED. *WEOR .PROC,DUMPOLD*I"ARCHIVE FILES" ,P1 [SETNAME OF TAPES TO BE USED] =(*A,*N=) ,P2 [LAST ACCESS BEFORE DATE CUTOFF] =(*A,*N=). .* .* COMMAND FORMAT : *X.MS(DUMPOLD,SETNAME,DATE)* .* THIS PROCEDURE WILL DUMP PERMANENT FILES THAT HAVE NOT .* BEEN READ, EXECUTED OR WRITTEN AFTER DATE. AFTER THESE .* FILES HAVE BEEN DUMPED THEY WILL BE PURGED. THE OUTPUT .* FROM THIS PROC WILL BE STORED ON A PERMANENT FILE ON .* SYSTEMX NAMED DYYMMDD WHERE YYMMDD IS THE DATE OF THE DUMP. .* BEGIN,VERDATE,ZZZPFIL,P2,DUMPQUE. *************************************** * NOTE--IF THIS PROCEDURE CONTINUES, * * PERMANENT FILES HAVING A LAST * * ACCESS DATE PRIOR TO P2 ARE * * DUMPED TO TAPE AND PURGED. * * * * TO "NOT" DUMP ANS PURGE FILES: * * ENTER DROP,JSN. * * TO DUMP AND PURGE FILES: * * ENTER: ASSIGN,JSN,2. * * * *************************************** REQUEST,OPER. STOP OR PURGE? RETURN,OPER. SKIP,DUMPOLD1. EXIT. RETURN,*,OUTPUT. SET(R1G=1) ************************************* * * * NO FILES WERE DUMPED TO TAPE OR * * PURGED. * * DUMPOLD STOPPED AS REQUESTED. * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER: ASSIGN,JSN,2. * * * ************************************* REQUEST,OPER. DUMPOLD STOPPED. RETURN,OPER. WRITEF,OUTPUT. REVERT. DUMPOLD STOPPED. ENDIF,DUMPOLD1. BEGIN(LABELS,ZZZPFIL,P1,DUMPOLD,DATE+D) PFDUMP(OP=AP,BD=P2). *************************************** * * * ALL FILES HAVING A LAST ACCESS DATE * * BEFORE ** P2 ** HAVE NOW * * BEEN DUMPED TO TAPE AND PURGED. * *************************************** WRITEF,OUTPUT. REVERT. DUMPOLD COMPLETED. *WEOR .PROC,DUMPQUE*I ,VSN [VOLUME SERIAL NUMBER] =(*A,*N=). .* .* COMMAND FORMAT : *X.MS(DUMPQUE,VSN)* .* THIS PROCEDURE IS USED TO DUMP AND PURGE ALL QUEUE FILES. .* BEGIN(LABELV,ZZZPFIL,VSN,DUMPQUE,DATE+D) QREC(OP=DI,PO=N) QDUMP(DA=ALL,PO=N,FN=TAPE) QREC(OP=PI,PO=N) WRITEF,OUTPUT. REVERT. DUMPQUE COMPLETED. *WEOR .PROC,ENDDF*I"RESTART A DAYFILE" ,P1 [TYPE OF DAYFILE] =(ACCOUNT=1,DAYFILE=2,ERRLOG=3,MAINLOG=4,*A,*N=$$). .* COMMAND FORMAT: X.MS(ENDDF,DAYFILE) .* THIS PROCEDURE CAUSES THE SYSTEM TO APPEND THE SPECIFIED .* *DAYFILE* TO A PERMANENT FILE WITH THE SAME NAME. IF THE .* CORRESPONDING PERMANENT FILE ALREADY EXISTS, THE DAYFILE IS .* COPIED TO THE PERMANENT FILE AS AN ADDITIONAL RECORD. .* IF THE PERMANENT FILE DOES NOT EXIST, ENDDF DEFINES IT, AND THE .* CORRESPONDING DAYFILE IS COPIED THE PERMANENT FILE AS THE FIRST .* RECORD. A NEW SYSTEM DAYFILE IS CREATED TO RECEIVE SUBSEQUENT .* DAYFILE MESSAGES. THE SUPPORTED VALUES FOR THE PARAMETER, .* *DAYFILE* ARE ACCOUNT, DAYFILE, ERRLOG, AND MAINLOG. .* .IF,P1.EQ.1,ENDDF1. BEGIN,ENDDFL,ZZZPFIL,ACCOUNT,AC. .ELSE,ENDDF1. .IF,P1.EQ.2,ENDDF1. BEGIN,ENDDFL,ZZZPFIL,DAYFILE,DF. .ELSE,ENDDF1. .IF,P1.EQ.3,ENDDF1. BEGIN,ENDDFL,ZZZPFIL,ERRLOG,ER. .ELSE,ENDDF1. .IF,P1.EQ.4,ENDDF1. BEGIN,ENDDFL,ZZZPFIL,MAINLOG,ML. .ELSE,ENDDF1. BEGIN(ERRDAY,ZZZPFIL,ENDDF,P1) .ENDIF,ENDDF1. WRITEF,OUTPUT. REVERT,NOLIST. ENDDF COMPLETED. *WEOR .PROC,ENDDFL*I ,P1 [SYSTEM LOG FILE NAME] =(ACCOUNT,DAYFILE,ERRLOG,MAINLOG) ,P2 [TWO CHARACTER LOG FILE IDENTIFIER] =(AC,DF,ER,ML) . PURGE,P2_FILE/NA. DFTERM,FT=P1,NM=FILE,PO=N. ATTACH(P2_FILE) ATTACH,P1/M=W,NA. IF,FILE(P1,.NOT.PM),ENDDF1. DEFINE,P1. ENDIF,ENDDF1. SKIPEI,P1. COPYEI,P2_FILE,P1. PURGE,P2_FILE. *************************************** * * * P1 RESTART COMPLETE * * * *************************************** REVERT. ENDDFL COMPLETE *WEOR .PROC,ENDLOG. .* .* COMMAND FORMAT : *X.MS(ENDLOG)* .* THIS PROCEDURE CALLS *ENDDF* FOR EACH OF THE FOUR SYSTEM .* DAYFILES. .* BEGIN(ENDDFL,ZZZPFIL,ACCOUNT,AC) BEGIN(ENDDFL,ZZZPFIL,DAYFILE,DF) RETURN,*. BEGIN(ENDDFL,ZZZPFIL,ERRLOG,ER) BEGIN(ENDDFL,ZZZPFIL,MAINLOG,ML) WRITEF,OUTPUT. REVERT. ENDLOG COMPLETED. *WEOR .PROC,ERRDAY*I ,P1 [TOOL] =(*F) ,P2 [ERRONEOUS DAYFILE] =(*A,*N=NULL) . RETURN,*,OUTPUT. SET(R1G=1) ************************************* * * * ERROR--DAYFILE : P2. * * NOT PROPERLY SPECIFIED * * TRY AGAIN WITH ACCOUNT, DAYFILE, * * ERRLOG, OR MAINLOG. * * * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER: ASSIGN,JSN,2. * * * ************************************* REQUEST,OPER. P1 FAILED RETURN,OPER. REVERT,EX.REVERT. P1 FAILED *WEOR .PROC,ERRJSN*I ,P1 [PROCEDURE ERRJSN IS CALLED FROM] =(*F) ,P2 [JSN THAT WAS INCORRECT] =(*A,*N=NONE). SET(R1G=1) RETURN,*,OUTPUT. *************************************** * * * ERROR--#JSN : P2 * * NOT PROPERLY SPECIFIED. * * TRY AGAIN WITH A 1-6 ALPHANUMERIC * * CHARACTER JSN. * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER: ASSIGN,JSN,2. * * * *************************************** REQUEST,OPER. P1 FAILED. RETURN,OPER. REVERT,NOLIST. ERRJSN COMPLETED. *WEOR .PROC,ERRNOU. SET(R1G=1) RETURN,*,OUTPUT. *************************************** * * * ERROR--TO SPECIFY A PERMANENT FILE, * * THE USER NAME MUST ALSO BE GIVEN. * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER: ASSIGN,JSN,2. * * * *************************************** REQUEST,OPER. LOADF FAILED. RETURN,OPER. WRITEF,OUTPUT. REVERT,EX.REVERT. LOADF FAILED. *WEOR .PROC,ERRSETM*I ,P1 [PROCEDURE ERRSETM IS CALLED FROM] =(*F) ,P2 [NUMBER THAT WAS INCORRECT] =(*A,*N=NONE). SET(R1G=1) RETURN,*,OUTPUT. *************************************** * * * ERROR--NUMBER OF DUMP TAPES TO * * BLANK LABEL NOT PROPERLY SPECIFIED. * * TRY AGAIN WITH A NUMERIC DIGIT IN * * RANGE : 1 TO 8. * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER: ASSIGN,JSN,2. * * * *************************************** REQUEST,OPER. P1 FAILED. RETURN,OPER. REVERT,NOLIST. ERRSETM COMPLETED. *WEOR .PROC,ERRSETN*I ,P1 [PROCEDURE ERRSETN IS CALLED FROM] =(*F) ,P2 [SETNAME THAT WAS INCORRECT] =(*A,*N=NONE). SET(R1G=1) RETURN,*,OUTPUT. *************************************** * * * ERROR--SETNAME : P2 * * NOT PROPERLY SPECIFIED. * * TRY AGAIN WITH A 1-5 ALPHANUMERIC * * CHARACTER SETNAME. * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER: ASSIGN,JSN,2. * * * *************************************** REQUEST,OPER. P1 FAILED. RETURN,OPER. REVERT,NOLIST. ERRSETN COMPLETED. *WEOR .PROC,ERRTOOL*I ,P1 [TOOL] =(*F) . SET(R1G=1) RETURN,*,OUTPUT. **************************************** * * * ERROR--P1 FAILED * * EXAMINE THE OUTPUT FROM THIS JOB TO * * DETERMINE THE CAUSE OF THE FAILURE * * * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER ASSIGN,JSN,2. * * * **************************************** REQUEST,OPER. P1 FAILED RETURN,OPER. WRITEF. REVERT,EX.REVERT. P1 FAILED *WEOR .PROC,ERRUSER*I ,P1 [PROCEDURE ERRUSER IS CALLED FROM] =(*F) ,P2 [USER NAME THAT WAS INCORRECT] =(*A,*N=NONE). SET(R1G=1) RETURN,*,OUTPUT. *************************************** * * * ERROR--USER NAME P2. * * NOT PROPERLY SPECIFIED. * * TRY AGAIN WITH A USER NAME MADE UP * * OF 1-7 ALPHANUMERIC CHARACTERS. * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER: ASSIGN,JSN,2. * * * *************************************** REQUEST,OPER. P1 FAILED. RETURN,OPER. REVERT,NOLIST. ERRUSER COMPLETED. *WEOR .PROC,ERRVSN*I ,P1 [PROCEDURE ERRVSN IS CALLED FROM] =(*F) ,P2 [VSN THAT WAS INCORRECT] =(*A,*N=NONE). SET(R1G=1) RETURN,*,OUTPUT. *************************************** * * * ERROR--#VSN : P2 * * NOT PROPERLY SPECIFIED. * * TRY AGAIN WITH A 1-6 ALPHANUMERIC * * CHARACTER VSN. * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER: ASSIGN,JSN,2. * * * *************************************** REQUEST,OPER. P1 FAILED. RETURN,OPER. REVERT,NOLIST. ERRVSN COMPLETED. *WEOR .PROC,FINDJSN*I ,JSN [JOB SEQUENCE NUMBER] =(*A,*N=). .* .* COMMAND FORMAT : *FINDJSN(JSN)* .* THIS PROCEDURE USES DFD TO GET SYSTEM DAYFILE AND EXTRACTS FROM .* IT THE DAYFILE FOR JOB (JSN). THE JSN DAYFILE IS WRITTEN TO .* FILE OUTPUT. .* BEGIN,VERJSN,ZZZPFIL,JSN,FINDJSN. VERIFY #JSN SKIP,FDJSN0. EXIT. BEGIN,ERRJSN,ZZZPFIL,JSN,FINDJSN. SET,R1G=1. REVERT. FINDJSN FAILED. ENDIF,FDJSN0. DFD. RENAME,DF=OUTPUT. EDIT,DF,I=FIEDIT,L=ZZLIST. RETURN,DF,VERJSN,ERRJSN. REWIND,*,OUTPUT. SKIP,FINDJS1. EXIT. REVERT,ABORT. FINDJSN FAILED. ENDIF,FINDJS1. VERIFY,ZZLIST,ZZZFIND,A. .* IF THE FILES VERIFY THAN THE JSN WAS NOT FOUND IN THE DAYFILE. SET,R1G=1. ************************************** * * * ERROR-- #JSN JSN WAS NOT FOUND * * IN THE DAYFILE. RETRY WITH A * * DIFFERENT #JSN. * * * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER: ASSIGN,#JSN,2. * * * ************************************** REQUEST,OPER. FINDJSN FAILED. RETURN,OPER. REVERT. FINDJSN FAILED. EXIT. REWIND,*,OUTPUT. COPYEI,ZZLIST,OUTPUT. REVERT. FINDJSN COMPLETE. .DATA,FIEDIT L:/. JSN/;* END .DATA,ZZZFIND. BEGIN TEXT EDITING. -END OF FILE- END TEXT EDITING. *WEOR .PROC,GETTYPE*I ,P1 [VALIDATION TYPE] =(*F) ,P2 [TOOL] =(*F) . GTR(ZZZPFIL,P1,,,,NA)P1 IF,FILE(P1,LO),GETYPE1. EDIT,P1,I=GEEDIT. REVERT. GETTYPE COMPLETE ELSE,GETYPE1. GET(P1/UN=INSTALL) REVERT. GETTYPE COMPLETE EXIT. SET(R1G=1) ENDIF,GETYPE1. **************************************** * * * ERROR-- TYPE FILE: P1 * * NOT FOUND. DETERMINE THE FILE NAME * * YOU WANT TO USE AND RETRY P2 * * * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER: ASSIGN,JSN,2. * * * **************************************** REVERT,EX.REVERT. P2 FAILED .DATA,GEEDIT SET;-1 DELETE END *WEOR .PROC,LABELS*I"REQUEST SET OF TAPES" ,P1 [SETNAME OF TAPES] =(*A,*N=) ,P2 [TOOL] =(*F) ,P3 [DATE] =(*S6(0123456789),*N=$$) . BEGIN,VERSETN,ZZZPFIL,P1. VERIFY SETNAME SKIP,LABELS1. EXIT. BEGIN,ERRSETN,ZZZPFIL,P2,P1. SET(R1G=1) REVERT,EX. REVERT. P2 FAILED. ENDIF,LABELS1. .IF,$P3$.EQ.$$,LABELS2. VSN,TAPE=P1_1/P1_2/P1_3/P1_4/P1_5/P1_6/P1_7/P1_8. LABEL,TAPE,NT,D=GE,PO=FR. .ELSE,LABELS2. VSN,TAPE=P1_1/P1_2/P1_3/P1_4/P1_5/P1_6/P1_7/P1_8. LABEL,TAPE,NT,D=GE,PO=FW,W,FI=$P3$. .ENDIF,LABELS2. REVERT. LABELS COMPLETE *WEOR .PROC,LABELV*I"REQUEST A TAPE" ,P1 [VSN OF TAPES] =(*A,*N=) ,P2 [TOOL] =(*F) ,P3 [DATE] =(*S6(0123456789),*N=$$) . BEGIN,VERVSN,ZZZPFIL,P1. VERIFY VSN SKIP,LABELV1. EXIT. BEGIN,ERRVSN,ZZZPFIL,P2,P1. SET(R1G=1) REVERT,EX. REVERT. P2 FAILED ENDIF,LABELV1. .IF,$P3$.EQ.$$,LABELV2. LABEL,TAPE,VSN=P1,NT,D=GE,PO=FR. .ELSE,LABELV2. LABEL,TAPE,VSN=P1,NT,D=GE,PO=FW,W,FI=$P3$. .ENDIF,LABELV2. REVERT. LABELV COMPLETE *WEOR .PROC,LISTQUE. .* .* COMMAND FORMAT : *X.MS(LISTQUE)* .* THIS PROCEDURE PRODUCES A LISTING WHICH DESCRIBES ALL THE .* QUEUE FILES IN THE SYSTEM. THIS LISTING MAY BE HELPFUL IN .* IDENTIFING QUEUE FILES THAT COULD BE DROPPED FROM THE SYSTEM. .* QFTLIST(PO=N,LO=F) WRITEF,OUTPUT. REVERT. LISTQUE COMPLETE. EXIT. WRITEF,OUTPUT. REVERT. LISTQUE FAILED. *WEOR .PROC,LOADF*I"LOAD PERMANENT FILES" ,P1 [SETNAME OF TAPES] =(*A,*N=) ,USERNAME [USER NAME] =(*A,*N=) ,PF1 [PERMANENT FILE NAME 1] =(*A,*N=) ,PF2 [PERMANENT FILE NAME 2] =(*A,*N=). .* .* COMMAND FORMAT : *X.MS(LOADF,SETNAME,USERNAME,PF,PF)* .* THIS PROCEDURE LOADS PERMANENT FILES FROM TAPES CREATED BY .* DUMPALL, DUMPMOD OR DUMPOLD. .* WHEN LOADF IS CALLED TO LOAD FILES STARTING WITH A SET OF .* TAPES CREATED BY DUMPALL OR DUMPMOD IT WILL LOAD FILES .* FROM THAT SET ONLY. WHEN LOADF IS CALLED TO LOAD FILES .* STARTING WITH A SET OF TAPES CREATED BY DUMPMOD IT LOADS .* THE FILES ON THE DUMPMOD SET OF TAPES. THEN IT LOADS THE .* FILES FROM THE LAST DUMPALL SET OF TAPES CREATED BEFORE .* THIS DUMPMOD SET. TO BE LOADED, THESE FILES MUST MEET .* THE FOLLOWING CRITERIA: 1) THE FILES WERE ON THE DISKS .* WHEN THE DUMPMOD WAS EXECUTES. 2) THE FILES WERE NOT MODIFIED .* AFTER THE DUMPALL. .* LOADF CAN BE CALLED TO LOAD ALL THE FILES, THE FILES FOR A .* USERNAME, OR ONE OR TWO SPECIFIED FILES. TO LOAD ALL FILES .* ONLY THE SETNAME PARAMETER IS SUPPLIED. TO LOAD THE FILES FOR .* A USERNAME, THE SETNAME AND USERNAME PARAMETER ARE REQUIRED. .* TO LOAD ONE OR TWO SPECIFIC FILES, THE SETNAME, USERNAME AND .* ONE OR TWO OF THE FILENAME PARAMETERS ARE REQUIRED. IF A FILE .* IS ALREADY ON DISK AND LOADF WAS SPECIFICALLY ASKED TO LOAD .* THAT FILE BY THE FILENAME PARAMETER THEN LOADF WILL ASK IF IT .* SHOULD OVERWRITE THE FILE. IN THE CASE WHERE LOADF WAS CALLED .* TO LOAD ALL THE FILES OR ALL FILES FOR A USERNAME LOADF WILL .* NOT RELOAD A FILE THAT IS ALREADY ON DISK. BEGIN,VERF,ZZZPFIL,PF1,LOADF. BEGIN,VERF,ZZZPFIL,PF2,LOADF. .IF,$USERNAME$.EQ.$$,LOADF1. .IF,$PF1$.NE.$$,LOADF2. BEGIN(ERRNOU,ZZZPFIL,PF1) .ELSE,LOADF2. .IF,$PF2$.NE.$$,LOADF2. BEGIN(ERRNOU,ZZZPFIL,PF2) .ELSE,LOADF2. BEGIN(LABELS,ZZZPFIL,P1,LOADF) REQUEST SET OF TAPES IF,(R1G.EQ.1).REVERT. LOADF FAILED PFLOAD,OP=LV. EXECUTE A FULL LOAD. **************************** * FULL LOAD COMPLETE * **************************** .ENDIF,LOADF2. .ELSE,LOADF1. USER NAME SUPPLIED BEGIN,VERUSER,ZZZPFIL,USERNAME,LOADF. BEGIN(LABELS,ZZZPFIL,P1,LOADF) REQUEST SET OF TAPES IF,(R1G.EQ.1).REVERT. LOADF FAILED .IF,(($PF1$.EQ.$$).AND.($PF2$.EQ.$$)),LOADF3. PFLOAD,UD,UN=USERNAME,OP=LV. **************************** * USER NAME LOAD COMPLETE * **************************** .ELSE,LOADF3. .IF,(($PF1$.NE.$$).AND.($PF2$.NE.$$)),LOADF3. PFLOAD,UD,UN=USERNAME,PF=PF1,PF=PF2,OP=LV. ************************** * TWO FILE LOAD COMPLETE * ************************** .ELSE,LOADF3. .IF,($PF1$.NE.$$),LOADF3. LOCAL--PURGE OR OVERWRITE? PFLOAD,UD,UN=USERNAME,PF=PF1,OP=LV. ************************** * ONE FILE LOAD COMPLETE * ************************** .ELSE,LOADF3. PFLOAD,UD,UN=USERNAME,PF=PF2,OP=LV. ************************** * ONE FILE LOAD COMPLETE * ************************** .ENDIF,LOADF3. .ENDIF,LOADF1. WRITEF,OUTPUT. REVERT,NOLIST. LOADF COMPLETE *WEOR .PROC,LOADLOG*I ,VSN [VOLUME SERIAL NUMBER] =(*A,*N=) ,ACCOUNT [LOAD ACCOUNT FILE. DEFAULT IS NO] =(ACCOUNT=1,DAYFILE=2,ERRLOG=3,MAINLOG=4,*A,*N=0), ,DAYFILE [LOAD DAYFILE FILE. DEFAULT IS NO] =(ACCOUNT=1,DAYFILE=2,ERRLOG=3,MAINLOG=4,*A,*N=0), ,ERRLOG [LOAD ERRLOG FILE. DEFAULT IS NO] =(ACCOUNT=1,DAYFILE=2,ERRLOG=3,MAINLOG=4,*A,*N=0), ,MAINLOG [LOAD MAINLOG FILE. DEFAULT IS NO] =(ACCOUNT=1,DAYFILE=2,ERRLOG=3,MAINLOG=4,*A,*N=0). .* .* COMMAND FORMAT : *LOADLOG(VSN,ACCOUNT,DAYFILE,ERRLOG,MAINLOG)* .* THIS PROCEDURE USES RECLAIM TO LOAD THE PERMANENT FILES (ACCOUNT, .* DAYFILE, ERRLOG, AND MAINLOG) FROM A TAPE CREATED BY ENDLOG. .* THE TAPE IS A GE DENSITY LABELED TAPE WITH A VSN. .* ALL OR ANY SUBSET OF THESE LOGS MAY BE LOADED. .* BEGIN,VERVSN,ZZZPFIL,VSN. VERIFY #VSN SKIP,LOADLOG1. EXIT. BEGIN,ERRVSN,ZZZPFIL,LOADLOG,VSN. SET,R1G=1. REVERT. LOADLOG FAILED. ENDIF,LOADLOG1. RETURN,ZZSCR. BEGIN,,VERLOG,ACCOUNT. BEGIN,,VERLOG,DAYFILE. BEGIN,,VERLOG,ERRLOG. BEGIN,,VERLOG,MAINLOG. IF,.NOT.FILE(ZZSCR,AS),LOADLOG2. BEGIN,LOADLOG,ZZPPFIL, VSN,YES,YES,YES,YES. REQUEST,OPER. LOADLOG COMPLETED. RETURN,OPER. REVERT,NOLIST. LOADLOG COMPLETED. ENDIF,LOADLOG2. BEGIN,,CALLLOG. REVERT. LOADLOG COMPLETED. EXIT. REVERT. LOADLOG FAILED. .DATA,CALLLOG .PROC,CALLLOG. BEGIN,LOADLOG,ZZPPFIL, VSN,#ACCOUNT=NO,#DAYFILE=NO,#ERRLOG=NO,#MAINLOG=NO. REVERT,NOLIST. .DATA,VERLOG .PROC,VERLOG,P1. REWIND,INACCT,INDAYF,INERRL,INMLOG. #.IF,$P1$ .EQ. $1$.EDIT,CALLLOG,I=INACCT,M=N,L=ZZSCR. #.IF,$P1$ .EQ. $2$.EDIT,CALLLOG,I=INDAYF,M=N,L=ZZSCR. #.IF,$P1$ .EQ. $3$.EDIT,CALLLOG,I=INERRL,M=N,L=ZZSCR. #.IF,$P1$ .EQ. $4$.EDIT,CALLLOG,I=INMLOG,M=N,L=ZZSCR. #.IF,NUM(P1),VERLOG1. #.IF,$P1$ .EQ. $0$.REVERT,NOLIST. IF,P1 .GT. 0 .AND. P1 .LT. 5.REVERT,NOLIST. #.ENDIF,VERLOG1. SET,R1G=1. *************************************** * * * ERROR--BAD PARAMETER- P1 * TRY AGAIN WITH VALID FILE NAMES * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER: ASSIGN,JSN,2. * * * *************************************** REQUEST,OPER. LOADLOG FAILED. RETURN,OPER. REVERT,EX.REVERT. LOADLOG FAILED. .DATA,INACCT RS:/#ACCOUNT=NO/,/#ACCOUNT=YES/;1 END .DATA,INDAYF RS:/#DAYFILE=NO/,/#DAYFILE=YES/;1 END .DATA,INERRL RS:/#ERRLOG=NO/,/#ERRLOG=YES/;1 END .DATA,INMLOG RS:/#MAINLOG=NO/,/#MAINLOG=YES/;1 END *WEOR .PROC,LOADQUE*I"LOAD QUEUE FILES" ,VSN [VOLUME SERIAL NUMBER] =(*A,*N=). .* .* COMMAND FORMAT : *X.MS(LOADQUE,VSN)* .* THIS PROCEDURE IS USED TO LOAD ALL QUEUE FILES ON TO .* THE SYSTEM FROM A GE DENSITY TAPE WITH A VSN. .* BEGIN,LABELV,ZZZPFIL,VSN,LOADQUE. QLOAD,DA=ALL,PO=N,FN=TAPE. WRITEF,OUTPUT. REVERT. LOADQUE COMPLETE *WEOR .PROC,PURGLOG. .* .* COMMAND FORMAT : *PURGLOG.* .* THIS PROCEDURE PURGES THE PERMANENT FILES, CREATED BY ENDLOG, .* ACCOUNT, DAYFILE, ERRLOG AND MAINLOG ON USER NAME SYSTEMX. .* *************************************** * * * NOTE--IF THIS PROCEDURE CONTINUES, * * PERMANENT FILES CREATED BY ENDLOG * * ACCOUNT, DAYFILE, ENDLOG, AND * * MAINLOG WILL BE PURGED. * * TO NOT PURGE THE FILES * * ENTER: DROP,JSN. * * TO PURGE THE FILES * * ENTER: ASSIGN,JSN,2. * * * *************************************** REQUEST,OPER. PURGE OR STOP? RETURN,OPER. SKIP,PURGLOG1. EXIT. RETURN,*,OUTPUT. ************************************* * * * PROCESSING HAS BEEN STOPPED. * * THE LOG FILES WERE NOT PURGED. * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER: ASSIGN,JSN,2. * * * ************************************* REQUEST,OPER. PURGLOG STOPPED. RETURN,OPER. WRITEF,OUTPUT. REVERT. PURGLOG STOPPED ENDIF,PURGLOG1. PURGE,ACCOUNT/NA. PURGE,DAYFILE/NA. PURGE,ERRLOG/NA. PURGE,MAINLOG/NA. WRITEF,OUTPUT. REVERT. PURGLOG COMPLETE *WEOR .PROC,SUCCESS*I ,P1 [TOOL] =(*F) . RETURN,*,OUTPUT. **************************************** * * * P1 COMPLETE * * THIS TOOL RAN TO COMPLETION * * * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER ASSIGN,JSN,2. * * * **************************************** REQUEST,OPER. P1 COMPLETE RETURN,OPER. REVERT,EX.REVERT. P1 COMPLETE *WEOR .PROC,VALUSER*I ,TYPE [NAME OF VALIDATION TYPE FILE] =(*F,*N=$$) ,USERNAME [USERNAME] =(*F,*N=INSTALL) ,PASSWORD [PASSWORD IS] =(*F,*N=UNSECUR). .* .* COMMAND FORMAT : *VALUSER(TYPE,USERNAME,PASSWORD)* .* THIS PROCEDURE CAN EITHER CREATE, DELETE OR MODIFY A SINGLE .* USERNAME OR MULTIPLE USERNAMES. IF THE PARAMETERS WERE .* SUPPLIED, THEY WILL FUNCTION AS DESCRIBED FOR WRITEVI. .* IF NO PARAMETERS ARE SUPPLIED, TYPE FILE IS ZZZZVDI CREATED .* BY WRITEVI AND CALLS MODVAL WITH THAT FILE AS THE DIRECTIVE .* INPUT FILE. .* AFTER A DIRECTIVE INPUT FILE HAS BEEN CREATED FROM THESE .* PARAMETERS, MODVAL IS CALLED. AFTER A SUCCESSFUL MODVAL .* RUN ZZZZVDI IS PURGED AND REDEFINED. .* .IF,#$TYPE$.EQ.$$,VALUSER1. BEGIN(VERVDI,ZZZPFIL,VALUSER) MODVAL,OP=U,I=ZZZZVDI,FA. REWIND,ZZZZVDI. WRITER,ZZZZVDI. RETURN,ZZZZVDI. BEGIN(SETUP,SETUP,ZZZZVDI) REVERT. VALUSER COMPLETE .ENDIF,VALUSER1. BEGIN(VERUSER,ZZZPFIL,USERNAME,VALUSER) .IF,#$TYPE$.EQ.$DELETE$,VALUSER2. MODVAL,I=DELUSER,OP=UR,FA. .ELSE,VALUSER2. BEGIN(VERPASS,ZZZPFIL,PASSWORD,VALUSER) BEGIN(GETTYPE,ZZZPFIL,TYPE,VALUSER) SKIPR,INUSER. COPYBR(TYPE,INUSER) PACK(INUSER) MODVAL,I=INUSER,OP=U,FA. .ENDIF,VALUSER2. REVERT. VALUSER COMLETE. .DATA,INUSER. /USERNAME,PW=PASSWORD. .DATA,DELUSER. /USERNAME,PW=DELETE. /USERNAME,DAC=USERNAME. *WEOR .PROC,VERDATE*I ,P1 [DATE SUPPLIED] =(*A,*N=). ,P2 [TOOL] =(*F) . ZZVERD1,P1. INSURE DATE IS ATLEAST SIX CHARACTERS SKIP,VERDATE1. EXIT. DATE NOT TOO SHORT ZZVERD,P1. INSURE DATE IS ONLY SIX NUMERIC CHARACTERS REVERT,NOLIST. VERDATE COMPLETE EXIT. SET(R1G=1) **************************************** * * * ERROR--DATE: P1. * * NOT PROPERLY SPECIFIED * * TRY AGAIN WITH A 6 CHARACTER DATE * * IN THE FORM YYMMDD. * * * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER ASSIGN,JSN,2. * * * **************************************** REQUEST,OPER. P2 FAILED RETURN,OPER. REVERT,EX.REVERT. P2 FAILED .DATA,ZZVERD .PROC,ZZVERD*I ,R1 [DATE SUPPLIED] =(*S6(0123456789)) . REVERT,NOLIST. .DATA,ZZVERDM .PROC,ZZVERDM*I ,R1 [DATE SUPPLIED] =(*S5(0123456789)) . REVERT. THIS PROC SHOULD FAIL *WEOR .PROC,VERF*I ,P1 [PERMANENT FILE NAME] =(*A,*N=) ,P2 [TOOL] =(*F) . ZZVERF,P1. REVERT,NOLIST. VERF COMPLETED. EXIT. SET(R1G=1) RETURN,*,OUTPUT. **************************************** * * * ERROR--FILE NAME: P1. * * NOT PROPERLY SPECIFIED * * TRY AGAIN WITH A 1-7 CHARACTER * * ALPHANUMERIC FILE NAME. * * * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER ASSIGN,JSN,2. * * * **************************************** REQUEST,OPER. P2 FAILED RETURN,OPER. REVERT,EX.REVERT. P2 FAILED .DATA,ZZVERF .PROC,ZZVERF*I ,R1 [FILE NAME] =(*F,*N=) . REVERT,NOLIST. *WEOR .PROC,VERJSN*I ,JSN [JOB SEQUENCE NUMBER] =(*S4(ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890)). REVERT. VERJSN COMPLETED. *WEOR .PROC,VERMPL*I ,R1 [PASSWORD SUPPLIED] =(*S3(0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ)) . NOTE(OUTPUT,NR)* ERROR-- PASSWORD: R1 TOO SHORT NOTE(OUTPUT,NR)* TRY AGAIN WITH A 4 TO 7 CHARACTER PASSWORD ROLLOUT(5) REVERT. THIS PROC SHOULD FAIL *WEOR .PROC,VERPASS*I ,P1 [PASSWORD SUPPLIED] =(*A,*N=) ,P2 [TOOL] =(*F) . BEGIN(VERMPL,ZZZPFIL,P1) PASSWORD AT LEAST FOUR CHARACTERS SKIP,VERPASS1. EXIT. PASSWORD NOT TOO SHORT ZZVERP,P1. INSURE PASSWORD IS 7 OR FEWER CHARACTERS REVERT,NOLIST. VERPASS COMPLETED. EXIT. ENDIF,VERPASS1. SET(R1G=1) RETURN,*,OUTPUT. **************************************** * * * ERROR--PASSWORD: P1. * * NOT PROPERLY SPECIFIED * * TRY AGAIN WITH A 4-7 CHARACTER * * ALPHANUMERIC PASSWORD. * * * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER ASSIGN,JSN,2. * * * **************************************** REQUEST,OPER. P2 FAILED RETURN,OPER. REVERT,EX.REVERT. P2 FAILED .DATA,ZZVERP .PROC,ZZVERP*I ,R1 [PASSWORD SUPPLIED] =(*S7(0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ)) . REVERT,NOLIST. *WEOR .PROC,VERPURG*I ,P [PURGE ON-OFF] =(PURGE=PURGE,*N=,*A). IF,$P$.EQ.$PURGE$,VERPURG1. REVERT. FILES WILL BE PURGED. ENDIF,VERPURG1. IF,$P$.EQ.$$,VERPURG2. REVERT. FILES WILL NOT BE PURGED. ELSE,VERPURG2. REVERT,ABORT. VERPURGE FAILED. ENDIF,VERPURG2. REVERT,NOLIST. VERPURGE COMPLETED. *WEOR .PROC,VERSETM*I ,NUMBER [NUMBER OF TAPES IN SET] =(*S1(12345678)). REVERT,NOLIST. VERSETM COMPLETED. *WEOR .PROC,VERSETN*I ,SETNAME [SETNAME OF TAPE SET] =(*S5(ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890)). REVERT,NOLIST. VERSETN COMPLETED. *WEOR .PROC,VERSTPN*I ,TOOL [TOOL TO EXECUTE] =(DUMPALL=1,DUMPMOD=1,DUMPQUE=1,DUMPLOG=2, ENDLOG =0,ENDDF =1,LOADF =4,LOADQUE=1, LOADLOG=5,DUMPOLD=2,PURGLOG=0,VALUSER=3, LISTQUE=0,FINDJSN=1,BLANKST=2) ,P1 [FIRST PARAMETER] =(*N=,*A) ,P2 [SECOND PARAMETER] =(*N=,*A) ,P3 [THIRD PARAMETER] =(*N=,*A) ,P4 [FOURTH PARAMETER] =(*N=,*A) ,P5 [FIFTH PARAMETER] =(*N=,*A) ,P6 [SIXTH PARAMETER] =(*N=,*A) ,P7 [SEVENTH PARAMETER] =(*N=,*A) . .IF,((TOOL.LE.5).AND.(($P6$.NE.$$).OR.($P7$.NE.$$))).SKIP,VERSTP1. .IF,((TOOL.LE.4).AND.($P5$.NE.$$)).SKIP,VERSTP1. .IF,((TOOL.LE.3).AND.($P4$.NE.$$)).SKIP,VERSTP1. .IF,((TOOL.LE.2).AND.($P3$.NE.$$)).SKIP,VERSTP1. .IF,((TOOL.LE.1).AND.($P2$.NE.$$)).SKIP,VERSTP1. .IF,((TOOL.EQ.0).AND.($P1$.NE.$$)).SKIP,VERSTP1. * NUMBER OF PARAMETERS VERIFIED. REVERT,EX.REVERT. VERTOOL COMPLETE ENDIF,VERSTP1. RETURN,*,OUTPUT. **************************************** * * * ERROR-- TOO MANY PARAMETERS WERE * * SUPPLIED FOR THIS #TOOL * * * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER: ASSIGN,JSN,2 * * * **************************************** REQUEST,OPER. MS FAILED RETURN,OPER. REVERT,EX.REVERT,EX.REVERT. MS FAILED *WEOR .PROC,VERTOOL*I ,TOOL [TOOL TO EXECUTE] =(*N=,*A) ,P1 [FIRST PARAMETER] =(*N=,*A) ,P2 [SECOND PARAMETER] =(*N=,*A) ,P3 [THIRD PARAMETER] =(*N=,*A) ,P4 [FOURTH PARAMETER] =(*N=,*A) ,P5 [FIFTH PARAMETER] =(*N=,*A) ,P6 [SIXTH PARAMETER] =(*N=,*A) ,P7 [SEVENTH PARAMETER] =(*N=,*A) . BEGIN(VERSTPN,ZZZPFIL,TOOL,P1,P2,P3,P4,P5,P6,P7) REVERT,ABORT. EXIT. RETURN,*,OUTPUT. **************************************** * * * ERROR--#TOOL: TOOL * * NOT SUPPORTED FROM THE CONSOLE * * * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER: ASSIGN,JSN,2. * * * **************************************** REQUEST,OPER. TOOL FAILED RETURN,OPER. REVERT,EX.REVERT. X.MS(TOOL) FAILED *WEOR .PROC,VERUSER*I ,P1 [USER NAME IS] =(*A,*N=) ,P2 [TOOL] =(*F) . BEGIN,ZZVERU,ZZZPFIL,P1. REVERT,NOLIST. VERUSER COMPLETED. EXIT. SET(R1G=1) BEGIN,ERRUSER,ZZZPFIL,P2,P1. REVERT,EX.REVERT. P2 FAILED *WEOR .PROC,VERVDI*I ,P1 [TOOL] =(*F) . .* FIND VALIDATION DIRECTIVE INPUT FILE. .* PUT OUT AN ERROR MESSAGE IF IT IS NOT FOUND. .* ATTACH,ZZZZVDI/M=W. SKIP,VERVDI1. EXIT. SET(R1G=1) RETURN,*,OUTPUT. *************************************** * * * ERROR--THE VALIDATION DIRECTIVE FILE* * WAS NOT FOUND. CREATE THIS FILE * * USING: X.MS(SETUP,ZZZZVDI) * * USE MS(WRITEVI) AT A TERMINAL TO * * PUT DATA ON ZZZZVDI. * * WHEN YOU HAVE READ THIS MESSAGE * * * * ENTER: ASSIGN,JSN,2. * * * *************************************** REQUEST,OPER. P1 FAILED. RETURN,OPER. REVERT,EX.REVERT. P1 FAILED ENDIF,VERVDI1. REVERT,NOLIST. VERVDI COMPLETE. *WEOR .PROC,VERVSN*I ,VSN [VOLUME SERIAL NUMBER] =(*S6(ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890)). REVERT. VERVSN COMPLETED. *WEOR .PROC,VUSER*I" WRITEVI " ,TYPE [ENTER DELETE OR VALIDATION TYPE] =(*F) ,USERNAM [USER NAME] =(*F) ,PASSWOR [PASSWORD] =(*F,*N=UNSECUR) . .HELP,TYPE,NOLIST. * A DELETE RESPONSE CAUSES THE USER NAME TO BE DELETED * FROM THE VALIDATION FILE. * * THE FOLLOWING ARE SYSTEM SUPPLIED VALIDATION TYPES * * CDCCHS CDC CENTRAL HARDWARE SUPPORT * CDCCSS CDC CENTRAL SOFTWARE SUPPORT * SYSADM SYSTEM ADMINISTRATOR OR OPERATOR * NOLIMIT USERS WITH UNLIMITED RESOURCE LIMITS * LIMITED USERS WITH LIMITED RESOURCES * * THIS TOOL WILL ACCEPT USER DEFINED VALIDATION TYPES * SUPPLY THE FILE NAME THAT CONTAINS THESE VALIDATIONS. * * .HELP,USERNAM,NOLIST. * * 1-7 ALPHANUMERIC CHARACTER USER NAME. * * .HELP,PASSWOR,NOLIST. * * 4-7 ALPHANUMERIC CHARACTER PASSWORD. * * .ENDHELP. IF,$TYPE$.EQ.$DELETE$,VUSER1. REWIND,IN. NOTE(IN,NR)+/USERNAM NOTE(IN,NR)+/USERNAM,DAC=USERNAM.+ REWIND,IN. COPYEI,IN,DVDI. .* DVDI IS THE LOCAL FILE THAT CONTAINS ALL THE .* INFORMATION TO DELETE USER NAMES. .* PLEASE NOTE THIS PROCEDURE IS SETUP TO PROCESS .* AN ATTEMPT TO DELETE A NON-EXISTENT USER NAME .* IN THE SAME WAY IT PROCESSES ONE THAT EXISTS. ELSE,VUSER1. BEGIN(GETTYPE,ZZZPFIL,TYPE,WRITEVI) IF,FILE(TYPE,.NOT.LO),VUSER2. NOTE(OUTPUT,NR)* NOTE(OUTPUT,NR)* ERROR--FILE TYPE NOT FOUND NOTE(OUTPUT,NR)* PLEASE SELECT A _TYPE LISTED NOTE(OUTPUT,NR)* BY HELP FOR THE _TYPE PARAMETER. NOTE(OUTPUT,NR)* RUNNING X.MS(INSTALL,_TYPE) WILL REINSTALL THE NOTE(OUTPUT,NR)* VALIDATION TYPES SUPPLIED BY CDC. ROLLOUT,10. REVERT,EX.BEGIN,VUSER,ZZZPFIL,$?$,USERNAM,PASSWOR. ELSE,VUSER2. REWIND,IN. SKIP,VUSER3. EXIT. REVERT,ABORT. VUSER FAILED ENDIF,VUSER3. IF,$PASSWOR$.LE.$ZZZ$,VUSER4. RETURN,TYPE. REVERT,EX.BEGIN,VUSER,ZZZPFIL,TYPE,USERNAM,$?$) ENDIF,VUSER4. SKIPR,ZZIN. COPYBR,TYPE,ZZIN. RETURN,TYPE. REWIND,ZZIN. COPYEI,ZZIN,ZVDI. RETURN,ZZIN. * ZVDI IS Z LOCAL FILE THAT CONTAINS THE * VALIDATION DIRECTIVES FOR USER NAMES BEING * ADDED OR UPDATED. ENDIF,VUSER2. ENDIF,VUSER1. REVERT,EX.BEGIN,VUSER,ZZZPFIL. REVERT. VUSER COMPLETED SUCCESSFULLY. EXIT. NOTE(OUTPUT,NR)+ WRITEVI FAILED IN PROCEDURE VUSER. NOTE(OUTPUT,NR)+ PLEASE EXAMINE THE DAYFILE TO NOTE(OUTPUT,NR)+ DETERMINE THE REASON. REVERT. VUSER FAILED. .DATA,ZZIN /USERNAM,PW=PASSWOR. *WEOR .PROC,WRITEVI. .* .* COMMAND FORMANT: MS(WRITEVI) .* THIS IS AN INTERACTIVE PROCEDURE USED TO CREATE A DIRECTIVE .* FILE TO BE USED TO CREATE, DELETE OR MODIFY MULTIPLE USER NAMES. .* THIS PROCEDURE PROMPTS FOR THE USER NAME, PASSWORD AND A DELETE .* REQUEST OR VALIDATION TYPE. THE USER NAME IS THE USER NAME .* THAT WILL BE CREATED, DELETED OR MODIFIED BY THE DIRECTIVES .* CREATED BY THIS PROCEDURE. THE PASSWORD SUPPLIED IS THE PASSWORD .* FOR THAT USER NAME. THE TYPE IS THE NAME OF THE TYPE FILE. .* (FIVE VALIDATION TYPES ARE SUPPLIED) CDCCHS, CDCCSS, SYSADM, .* NOLIMIT, LIMITED. THAT WILL BE USED TO SUPPLY THE VALIDATION .* DIRECTIVES FOR THIS USER NAME. IF DELETE IS SUPPLIED FOR TYPE, THE .* PROCEDURE WILL CREATE THE DIRECTIVE TO DELETE USER NAME FROM THE .* VALIDATION FILE. THIS PROCEDURE IS A RECURSIVE FUNCTION ALLOWING .* PROCESSING OF MULTIPLE USER NAMES. THE PROCEDURE IS STOPPED BY .* ENTERING THE QUIT FUNCTION. .* SITE ADMINISTRATORS CREATE A VALIDATION TYPE BY PLACING THE .* THE DESIRED VALIDATION DIRECTIVES ON A FILE ON USER NAME INSTALL .* AND SUPPLYING THAT FILE NAME WHEN PROMPTED FOR VALIDATION TYPE. .* IF A PASSWORD IS NOT SUPPLIED IT WILL BE SET TO XPWXPWX. ALL .* PASSWORDS ON ZZZZVDI WILL BE ENCRYPTED BY WRITEVI. .* ATTACH,ZZZZVDI/M=W,NA,UN=SYSTEMX. IF,FILE(ZZZZVDI,.NOT.PM),WRITEVI1. NOTE(OUTPUT,NR)/ FILE ZZZZVDI NOT FOUND. NOTE(OUTPUT,NR)/ RUN X.MS(SETUP,ZZZZVDI) NOTE(OUTPUT,NR)/ FROM THE CONSOLE TO CREATE ZZZZVDI. NOTE(OUTPUT,NR)/ AFTER THIS COMPLETES RERUN MS(WRITEVI). ROLLOUT(10) REVERT. WRITEVI FAILED. SKIP,WRITEVI1. EXIT. NOTE(OUTPUT,NR)/ WRITEVI FAILED. PLEASE EXAMINE THE NOTE(PUTPUT,NR)/ DAYFILE TO DETERMINE THE CAUSE. ROLLOUT(5) REVERT. WRITEVI FAILED. ELSE,WRITEVI1. BEGIN,VUSER,ZZZPFIL. SKIP,WRITEVI2. EXIT. VUSER ENDED WITH QUIT FUNCTION KEY ENDIF,WRITEVI2. PACK(DVDI) PACK(ZVDI) * DVDI IS A LOCAL FILE ON WHICH VUSER STORES DIRECTIVES * TO DELETE USER NAMES * ZVDI IS A LOCAL FILE ON WHICH VUSER STORES DIRECTIVES * TO CREATE OR MODIFY USER NAMES. * THE FOLLOWING MODVAL COMMANDS ENCRYPT THE PASSWORDS ON ZVDI. MODVAL,OP=C,P=0,I=ZVDI,LO=E,L=OUTPUT,SI. MODVAL,OP=S,P=NEWVAL. EDIT,SOURCE,I=WREDIT,L=ZZZSCRA. REWIND,SOURCE,ZZZZVDI. SKIPR,ZZZZVDI. COPYBR,SOURCE,ZZZZVDI. COPYBR,DVDI,ZZZZVDI. PACK(ZZZZVDI) RETURN,ZZZZVDI. ENDIF,WRITEVI1. REVERT. WRITEVI COMPLETED EXIT. NOTE(OUTPUT,NR)/ WRITEVI FAILED. PLEASE EXAMINE THE DAYFILE NOTE(OUTPUT,NR)/ TO DETERMINE THE CAUSE. A LIKELY CAUSE IS AN NOTE(OUTPUT,NR)/ UNSUPPORTED MODVAL DIRECTIVE. NOTE(OUTPUT,NR)/ PASSWORDS MUST BE AT LEAST 4 CHARACTERS LONG. ROLLOUT(5) REVERT. WRITEVI FAILED. .DATA,WREDIT. D:/UI = /;* END *WEOR .PROC,ZZVERU*I ,R1 [USER NAME] =(*F). REVERT,NOLIST. *WEOR CDCCHS RL=ALL IS=BATCH VM=DI AW=NUL AW=CNRD,AW=CASF,AW=CSRP AW=CLPF,AW=CSPF,AW=CAND,AW=CCNR,AW=CMNT,AW=COPR SC=10B SAV=NUL SAV=CULT,SAV=COLD SH=RMSHELL AP=NUL AP=IAF,AP=RBF PX=HALF TT=TTY PA=EVEN XT=7 *WEOR CDCCSS RL=ALL IS=BATCH VM=DI AW=NUL AW=CNRD,AW=CSRP AW=CLPF,AW=CSPF,AW=CAND,AW=CCNR AW=CNOP,AW=CSOJ,AW=CASF,AW=COPR,AW=CMNT SC=10B SAV=NUL SAV=CULT AP=NUL AP=CS AP=IAF,AP=RBF PX=HALF TT=TTY PA=EVEN XT=7 *WEOR LIMITED DS=5,DF=77B,CC=77B,MS=20B,DT=3,LP=77B,CP=77B,MT=1,RP=2,TL=77B CM=40B,CS=4,FC=7,DB=4,SL=77B,FS=6 IS=BATCH VM=DI AW=NUL AW=CPWC,AW=CNRD,AW=CSRP AW=CLPF,AW=CSPF,AW=CAND,AW=CCNR AW=CPLK,AW=CQLK,AW=CUST,AW=COPR SC=77B SAV=NUL SAV=CFPX SAV=CULT AP=NUL AP=IAF,AP=RBF XT=4095 *WEOR NOSVE DS=5,DF=77B,CC=77B,MS=20B,DT=3,LP=77B,CP=77B,MT=1,RP=2,TL=77B CM=40B,CS=4,FC=7,DB=4,SL=77B,FS=6 IS=BATCH VM=DI AW=NUL AW=CPWC,AW=CNRD,AW=CSRP AW=CLPF,AW=CSPF,AW=CAND,AW=CCNR AW=CPLK,AW=CQLK,AW=CUST,AW=COPR AW=CNVE,AW=CUCP SC=77B SAV=NUL SAV=CFPX SAV=CULT AP=NUL AP=IAF,AP=RBF XT=4095 *WEOR NOLIMIT RL=ALL IS=BATCH VM=DI AW=NUL AW=CPWC,AW=CNRD,AW=CASF,AW=CSRP AW=CLPF,AW=CSPF,AW=CAND,AW=CCNR AW=CPLK,AW=CQLK,AW=CUST,AW=COPR SC=77B SAV=NUL SAV=CFPX SAV=CULT AP=NUL AP=IAF,AP=RBF XT=4095 *WEOR SYSADM RL=ALL IS=BATCH VM=DI AW=NUL AW=CPWC AW=CNRD,AW=CSRP,AW=CSRP AW=CLPF,AW=CSPF,AW=CAND,AW=CCNR AW=CNOP,AW=CSOJ,AW=CASF AW=CPLK,AW=CQLK,AW=CUST,AW=COPR SC=77B SAV=NUL SAV=CPWX SAV=CFPX SAV=CULT AP=NUL AP=CS AP=IAF,AP=RBF XT=4095 *WEOR EPRI