IDENT GETTASV,FWA ABS SST ENTRY GETTASV ENTRY RFL= SYSCOM B1 TITLE GETTASV - GET VSNS FOR TAPE ALTERNATE STORAGE. *COMMENT GETTASV - GET TAPE ALTERNATE STORAGE VSN(S). COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1993. GETTASV SPACE 4,10 *** GETTASV - GET TAPE ALTERNATE STORAGE VSN(S). * * R. E. DUNBAR. 93/10/11. SPACE 4,10 *** *GETTASV* IS A UTILITY TO SELECT ONE OR TWO SYSTEM VSNS FOR * USE AS TAPE ALTERNATE STORAGE (*TAS*) ARCHIVE VOLUMES IN A * TAPE MANAGEMENT SYSTEM (*TMS*) ENVIRONMENT. SPACE 4,20 *** COMMAND FORMAT. * * * GETTASV(P1,P2,...,PN) * * * *PN* MAY BE ONE OF THE FOLLOWING - * * PARAMETER DESCRIPTION * --------- ----------- * * SS=FILE LOCAL FILE NAME OF THE *TFSP* MACHINE- * READABLE AUDIT FILE. FILE MUST BE IN THE * FORMAT CREATED BY THE *TFSP* *MREADVS* * DIRECTIVE. THE DEFAULT LFN IS *MREADVS*. * * P=PREFIX TWO-CHARACTER ALPHANUMERIC PREFIX FOR THE * ARCHIVE VSNS. DEFAULT IS *AA*. * * N=VSNS NUMBER OF VOLUMES. THE DEFAULT IS *1*. * * N=1 ONE VOLUME IS SELECTED, WITH A VSN * IN THE RANGE XX0000-XX4095, WHERE * *XX* IS THE PREFIX SPECIFIED BY THE * *P* PARAMETER. * * N=2 TWO VOLUMES ARE SELECTED, THE FIRST * VSN IN THE RANGE XX0000-XX4095, AND * A SECOND IN THE RANGE XX5000-XX9095. * *XX* IS THE PREFIX SPECIFIED BY THE * *P* PARAMETER. THE NUMERIC PORTION * OF THE SECONDARY VSN IS EXACTLY 5000 * HIGHER THAN THAT OF THE PRIMARY VSN. * * D=DENSITY DUMP TAPE DENSITY. DEFAULT IS *GE*. * * D=HD/PE/GE, SELECT 9-TRACK MAGNETIC TAPE. * D=CE, SELECT CARTRIDGE TAPE. * D=AE, SELECT ACS CARTRIDGE TAPE. * * F=FORMAT DUMP TAPE FORMAT. DEFAULT IS *I*. * * F=I - INTERNAL FORMAT. * F=LI - LONG BLOCK INTERNAL FORMAT. * * T=LFN1 DESTAGE TAPE LFN. THE DEFAULT IS *TAPE*. * THE LOCAL FILE NAME FOR THE PRIMARY TAPE * TO RECEIVE THE DESTAGED PERMANENT FILES. * * VF=LFN2 VERIFY TAPE LFN. THE DEFAULT IS *PFVER*. * THE LOCAL FILE NAME FOR THE SECONDARY * TAPE TO RECEIVE BACKUP COPIES OF THE * DESTAGED PERMANENT FILES. * * C=ALTCMD ALTERNATE COMMAND. DEFAULT IS *SETTASV*. * THE COMMAND NAME TO BE USED IN AN *EXCST* * CALL TO PASS THE TAPE DENSITY, FORMAT AND * SELECTED VSN(S) ON FOR FURTHER PROCESSING. * *ALTCMD* MUST BE A PROGRAM OR PROCEDURE ON * THE SYSTEM LIBRARY OR AVAILABLE TO THE JOB * AS A LOCAL FILE OR IN A GLOBAL LIBRARY. IT * IS EXECUTED VIA *EXCST* AS FOLLOWS. * * ALTCMD(DENSITY,FORMAT,VSN1,,LFN1) * * OR * * ALTCMD(DENSITY,FORMAT,VSN1,VSN2,LFN1,LFN2) * * THE PROGRAM OR PROCEDURE CALLED MUST BE * ABLE TO ACCEPT SIX POSITIONAL PARAMETERS * AS SHOWN IN THE ORDER SHOWN. TITLE DAYFILE MESSAGES. SPACE 4,20 *** DAYFILE MESSAGES. * * * ALTERNATE COMMAND INCORRECT.* - THE ALTERNATE COMMAND * SPECIFIED WITH THE *C* PARAMETER DOES NOT MEET THE * REQUIREMENTS FOR A *NOS* COMMAND NAME. IT MUST BE * SEVEN OR FEWER ALPHANUMERIC CHARACTERS. * * * AUDIT FILE IS EMPTY OR MISPOSITIONED.* - END OF * FILE OR END OF RECORD WAS DETECTED ON THE FIRST READ * OF THE *TFSP* MACHINE-READABLE AUDIT FILE. * * * AUDIT FILE IS WRONG VERSION OR MISPOSITIONED.* - THE AUDIT * FILE FILE VERSION NUMBER DOES NOT MATCH THE VERSION * NUMBER *GETTASV* IS PREPARED TO PROCESS. * * * GETTASV ABORTED.* - *GETTASV* HAS DETECTED AN ERROR OR * THE USER HAS INITIATED AN ABORT. * * * GETTASV ARGUMENT ERROR.* - AN INCORRECT ARGUMENT WAS * DETECTED ON THE *GETTASV* COMMAND. THE ARGUMENT WAS * EITHER TOO LARGE OR NOT AN ACCEPTABLE *NOS* FORMAT. * * * GETTASV COMPLETE.* - NORMAL COMPLETION. THE REQUESTED * VOLUMES HAVE BEEN SELECTED. * * * NO PRIMARY OR SECONDARY VSNS AVAILABLE.* - *GETTASV* * FOUND NEITHER PRIMARY NOR SECONDARY VSNS AVAILABLE * WITH THE PREFIX SPECIFIED. * * * PRIMARY LFN INCORRECT.* - THE PRIMARY DESTAGE TAPE LFN * SPECIFIED WITH THE *T* PARAMETER DOES NOT MEET THE * REQUIREMENTS FOR A *NOS* LOCAL FILE NAME. IT MUST * BE SEVEN OR FEWER ALPHANUMERIC CHARACTERS. * * * PRIMARY VSN NOT AVAILABLE.* - *GETTASV* COULD NOT FIND AN * AVAILABLE PRIMARY VSN WITH THE PREFIX SPECIFIED. * * * PRIMARY/SECONDARY VSN SET NOT AVAILABLE.* - *GETTASV* FOUND * AVAILABLE PRIMARY AND SECONDARY VSNS WITH THE PREFIX * SPECIFIED, BUT NO MATCHING PAIR. * * * SECONDARY LFN INCORRECT.* - THE SECONDARY DESTAGE TAPE LFN * SPECIFIED WITH THE *VF* PARAMETER DOES NOT MEET THE * REQUIREMENTS FOR A *NOS* LOCAL FILE NAME. IT MUST * BE SEVEN OR FEWER ALPHANUMERIC CHARACTERS. * * * SECONDARY VSN NOT AVAILABLE.* - *GETTASV* COULD NOT FIND AN * AVAILABLE SECONDARY VSN WITH THE PREFIX SPECIFIED. * * * TAPE DENSITY NOT RECOGNIZED.* - THE VALUE SPECIFIED FOR THE * *D* PARAMETER DOES NOT MATCH ANY KNOWN TAPE DENSITY. * * * TAPE FORMAT NOT RECOGNIZED.* - THE VALUE SPECIFIIED FOR * THE *F* PARAMETER IS NOT ONE OF THE TAPE FORMATS * ALLOWED FOR TAPE ALTERNATE STORAGE PURPOSES. * * * VSN PREFIX INCORRECT.* - THE VALUE SPECIFIED ON THE *P* * PARAMETER IS NOT TWO ALPHANUMERIC CHARACTERS. TITLE COMMON DECKS. SPACE 4,10 * COMMON DECKS. *CALL COMCCMD *CALL COMCMAC * BUFFER SIZE DEFINITIONS. OBUFL EQU 1001B OUTPUT FILE BUFFER LENGTH ABUFL EQU 1001B AUDIT FILE BUFFER LENGTH ARECL EQU 24 AUDIT FILE RECORD LENGTH TITLE TABLES. FWA SPACE 4,10 ORG 110B FWA EQU * PROGRAM ORIGIN TITLE COMMAND ARGUMENT VARIABLES. * COMMAND ARGUMENT VARIABLES. ARGS SPACE 4,10 ACMD DATA C*SETTASV* ALTERNATE COMMAND PARAMETER DENS DATA C*GE* DENSITY PARAMETER ERFL CON 0 ERROR FLAG IF NONZERO FRMT DATA C*I* TAPE FORMAT PARAMETER LFN1 DATA C*TAPE* PRIMARY DESTAGE TAPE LFN LFN2 DATA C*PFVER* SECONDARY DESTAGE TAPE LFN MAXV VFD 12/0,24/4L4095,24/0 HIGHEST ALLOWABLE PRIMARY VSN NVSN DATA C*1* NUMBER OF VSNS PARAMETER PRFX DATA C*AA* PREFIX PARAMETER TTYP DATA C*MTNT* *TMS* TAPE TYPE VSEC CON 0 SECONDARY VSN FOUND IF NON-ZERO TITLE ERROR MESSAGES. * ERROR MESSAGES. SPACE 4,10 ERAE DATA C* AUDIT FILE IS EMPTY OR MISPOSITIONED.* ERAV DATA C* AUDIT FILE IS WRONG VERSION OR MISPOSITIONED.* ERVE DATA C* NO PRIMARY OR SECONDARY VSNS AVAILABLE.* ERVF DATA C* SECONDARY LFN INCORRECT.* ERVM DATA C* PRIMARY/SECONDARY VSN SET NOT AVAILABLE.* ERVP DATA C* PRIMARY VSN NOT AVAILABLE.* ERVS DATA C* SECONDARY VSN NOT AVAILABLE.* TITLE MAIN PROGRAM. GETTASV SPACE 4,15 ** GETTASV - MAIN PROGRAM. * * CALLS CAP, PRS, SNM. * * MACROS MESSAGE, READ, READC. GETTASV BSS 0 ENTRY RJ PRS PRESET READ SS,R READ FIRST AUDIT RECORD READC SS,AREC,ARECL SX5 ERAE * AUDIT FILE IS EMPTY OR MISPOSITIONED.* NZ X1,ABT IF EOR/EOF/EOI ON FIRST READ SA1 AREC MX6 -6 LX1 6 BX6 -X6*X1 SX6 X6-1R2 CHECK FOR CORRECT AUDIT FILE VERSION ZR X6,GET2 IF CORRECT VERSION SX5 ERAV * AUDIT FILE IS WRONG VERSION OR MISPOS..* EQ ABT ABORT JOB * READ AN AUDIT RECORD. GET1 READC SS,AREC,ARECL READ AUDIT RECORD NZ X1,GET6 IF EOR/EOF/EOI * CHECK FOR A USER NAME ASSOCIATED WITH THIS VSN. GET2 SA1 AREC MX0 -12 SA2 A1+1 BX6 -X0*X1 BX2 X0*X2 BX6 X2+X6 SA3 =10H BX6 X3-X6 NZ X6,GET1 IF ASSIGNED TO A USER * CHECK FOR AVAILABLE, ON-SITE, CENTER-OWNED SYSTEM VSN. SA1 AREC+18 SA2 =6LVAILON BX6 X1-X2 AX6 24 NZ X6,GET1 IF NOT AVAILABLE OR OFF SITE SX6 X1-3RCEN NZ X6,GET1 IF NOT CENTER-OWNED TAPE SA1 AREC+22 LX1 -6 SX6 X1-3RYES NZ X6,GET1 IF NOT SYSTEM TAPE * CHECK FOR NON-RESERVED TAPE. SA2 =1LN MX0 6 LX1 24 BX2 X1-X2 BX6 X0*X2 NZ X6,GET1 IF TAPE IS RESERVED * CHECK FOR CORRECT TAPE TYPE (AT, CT, MTNT). LX1 -18 MX0 -6 BX2 -X0*X1 SA1 A1+1 MX0 18 BX1 X0*X1 BX1 X1+X2 LX1 54 SA2 TTYP BX6 X1-X2 NZ X6,GET1 IF NOT CORRECT TAPE TYPE * CHECK THAT *VSN* AND *PRN* MATCH. SA1 AREC+15 MX0 -6*5 BX6 -X0*X1 UPPER 5 OF *VSN* SA1 A1+1 MX0 6 BX7 X0*X1 LOWER 1 OF *VSN* BX1 X1-X7 REMOVE UPPER CHARACTER BX6 X6+X7 MERGE UPPER 5 AND LOWER 1 OF *VSN* MX0 6*7 LX6 6*5 LEFT JUSTIFY *VSN* BX5 X0*X1 ISOLATE *PRN* LX5 6 LEFT JUSTIFY *PRN* BX7 X5-X6 NZ X7,GET1 IF *VSN* AND *PRN* DO NOT AGREE * (X5) = (X6) = VSN. SA2 PRFX BX7 X2-X6 AX7 48 NZ X7,GET1 IF PREFIX DOES NOT MATCH SA2 GETA PATTERN FOR PRIMARY VSN SB2 6 MUST BE 6 CHARACTERS RJ CAP CHECK FOR ALLOWED PATTERN BX5 X6 RESTORE VSN NZ X1,GET3 IF WRONG PATTERN FOR PRIMARY VSN SA1 MAXV LX6 6*6 IX1 X1-X6 NG X1,GET1 IF NUMERIC PORTION EXCEEDS 4095 SB5 GETC POINT TO COMMAND TO BE EXECUTED SA1 NVSN ZR X1,GET5 IF ONLY ONE VSN NEEDED SA1 TVSN SX7 X1+1 INCREMENT VSN COUNT SA6 TVSN+X7 SAVE VSN IN TABLE SA7 A1 MX6 0 SET TABLE TERMINATE SA6 A6+B1 EQ GET1 PROCESS NEXT AUDIT RECORD GET3 SA2 GETB PATTERN FOR SECONDARY VSN SB2 6 MUST BE 6 CHARACTERS RJ CAP CHECK FOR ALLOWED PATTERN NZ X1,GET1 IF WRONG PATTERN FOR SECONDARY VSN SA1 NVSN SX5 ERVP * PRIMARY VSN NOT AVAILABLE.* ZR X1,ABT IF PRIMARY VSN NEEDED AND NOT FOUND LX6 6*6 RIGHT JUSTIFY SECONDARY VSN SX0 5 LX0 18 IX0 X6-X0 PRIMARY VSN TO LOOK FOR SA2 MAXV IX2 X2-X0 NG X2,GET1 IF NUMERIC PORTION EXCEEDS 9095 SA6 VSEC FLAG QUALIFYING SECONDARY VSN FOUND SA1 TVSN ZR X1,ABT IF NO ENTRIES IN VSN TABLE GET4 SA1 A1+B1 ZR X1,GET1 IF NO MORE ENTRIES BX7 X0-X1 NZ X7,GET4 IF NO MATCH * (X1) = PRIMARY VSN, (X6) = SECONDARY VSN. SB2 4*6 LX5 X1,B2 SAVE AND LEFT JUSTIFY PRIMARY VSN LX1 X6,B2 LEFT JUSTIFY SECONDARY VSN SB2 1R# SB5 GETD RJ SNM SET SECONDARY VSN INTO COMMAND SA1 LFN2 SB2 1R> RJ SNM SET SECONDARY LFN INTO COMMAND * (X5) = PRIMARY VSN. GET5 SB2 1R+ BX1 X5 RJ SNM SET PRIMARY VSN INTO COMMAND SA1 LFN1 SB2 1R< RJ SNM SET PRIMARY LFN INTO COMMAND SA1 FRMT SB2 1R& RJ SNM SET TAPE FORMAT INTO COMMAND SA1 DENS SB2 1R/ RJ SNM SET TAPE DENSITY INTO COMMAND SA1 ACMD SB2 1R- RJ SNM SET COMMAND NAME INTO COMMAND MESSAGE GETE,3,R * GETTASV COMPLETE.* EXCST B5 EXECUTE CONTROL STATEMENT ENDRUN * AUDIT FILE IS EXHAUSTED AND NO SELECTION HAS BEEN MADE. * DETERMINE WHY AND ABORT WITH APPROPRIATE ERROR MESSAGE. GET6 SA1 NVSN SX5 ERVP * PRIMARY VSN NOT AVAILABLE.* ZR X1,ABT IF NO PRIMARY VSN FOUND SA1 TVSN SX5 ERVE * NO PRIMARY OR SECONDARY VSNS AVAILABLE.* ZR X1,ABT IF NEITHER TYPE OF VSN FOUND SA1 VSEC SX5 ERVS * SECONDARY VSN NOT AVAILABLE.* ZR X1,ABT IF NO SECONDARY VSN FOUND SX5 ERVM * PRIMARY/SECONDARY VSN SET NOT AVAILABLE* EQ ABT GETA VFD 18/442333B,42/0 PRIMARY VSN PATTERN GETB VFD 18/443333B,42/0 SECONDARY VSN PATTERN GETC DATA C*-------(////,&&,++++++,,<<<<<<<)* GETD DATA C*-------(////,&&,++++++,######,<<<<<<<,>>>>>>>)* GETE DATA C* GETTASV COMPLETE.* TITLE SUBROUTINES. ABT SPACE 4,10 ** ABT - ABORT PROCESSING. * * ENTRY (X5) = ADDRESS OF ERROR MESSAGE. * * EXIT ALL FILES RETURNED. * ERROR MESSAGES ISSUED. * *GETTASV* ABORTED. * * MACROS ABORT, MESSAGE, WRITEC, WRITER. ABT BSS 0 ENTRY MESSAGE X5,,R ISSUE ERROR MESSAGE WRITEC O,X5 * ENTER HERE FROM PRESET IF ERRORS DETECTED. ABT1 WRITER OUTPUT,R MESSAGE ABTA,,R * GETTASV ABORTED.* ABORT ABORT ABTA DATA C* GETTASV ABORTED.* CAP SPACE 4,30 ** CAP - CHECK FOR ALLOWABLE PATTERNS. * * CHECK PARAMETERS FOR ALLOWABLE CHARACTER PATTERNS. * * ENTRY (X5) = PARAMETER, LEFT JUSTIFIED ZERO FILLED. * (X2) = PATTERN, LEFT JUSTIFIED ZERO FILLED. PATTERN * CONSISTS OF ONE OCTAL DIGIT FOR EACH CHARACTER * POSITION OF THE PARAMETER. EACH OCTAL DIGIT * INDICATES THE CHARACTERS THAT ARE VALID FOR * THAT CHARACTER POSITION, AS FOLLOWS. * * 0 - ANY CHARACTER. * 1 - CHARACTERS A THROUGH Z. * 2 - DIGITS 0 THROUGH 4. * 3 - DIGITS 0 THROUGH 9. * 4 - CHARACTERS A THROUGH Z, DIGITS 0 THROUGH 9. * 5 - NO CHARACTER IS VALID. * * (B2) = MINIMUM NUMBER OF 6-BIT CHARACTERS. * * EXIT (X1) = 0 IF PARAMETER MATCHES PATTERN. * (X1) .NE. 0 IF PARAMETER DOES NOT MATCH PATTERN. * * USES X - 1, 2, 4, 5. * A - 1. * B - 2, 3, 4. CAP3 SX1 B2+ CHECK MINIMUM CHARACTER COUNT CAP SUBR ENTRY/EXIT CAP1 LX5 6 MX1 -6 BX1 -X1*X5 BX5 X5-X1 ZR X1,CAP3 IF ALL CHARACTERS CHECKED SB4 X1 LX2 3 SX1 X2 INDEX TO PATTERNS ZR X1,CAP2 IF NO RESTRICTION ON THIS CHARACTER BX2 X2-X1 LX1 2 PATTERN INDEX * 4 SB3 X1 LX1 1 PATTERN INDEX * 8 SB3 B3+X1 PATTERN INDEX * 12 SA1 CAPA MX4 -6 LX1 X1,B3 BX4 -X4*X1 SB3 X4 GT B4,B3,CAPX IF CHARACTER OUT OF RANGE MX4 -6 LX1 -6 BX4 -X4*X1 SB3 X4 LT B4,B3,CAPX IF CHARACTER OUT OF RANGE CAP2 ZR B2,CAP1 IF MINIMUM SIZE REACHED SB2 B2-1 EQ CAP1 CONTINUE WITH NEXT CHARACTER CAPA VFD 12/2LAZ,12/2L04,12/2L09,12/2LA9,12/2L10 TITLE COMMON DECKS. SPACE 4,10 * COMMON DECKS. *CALL COMCCIO *CALL COMCCPM *CALL COMCRDC *CALL COMCRDW *CALL COMCSNM *CALL COMCSYS *CALL COMCWTC *CALL COMCWTW TITLE FILE ENVIRONMENT TABLES. FETS SPACE 4,10 * FETS. O BSS 0 OUTPUT FILE OUTPUT FILEB OBUF,OBUFL SS BSS 0 AUDIT FILE MREADVS FILEB ABUF,ABUFL SPACE 4,10 * BUFFERS AND LARGE TABLES. TVSN CON 0 TVSN TABLE - FIRST WORD IS COUNT AREC EQU TVSN+4098 AUDIT FILE RECORD BUFFER ABUF EQU AREC+ARECL AUDIT FILE BUFFER OBUF EQU ABUF+ABUFL OUTPUT FILE BUFFER RFL= EQU OBUF+OBUFL SET INITIAL FIELD LENGTH TITLE PRS - PRESET ROUTINES. ORG TVSN+1 PRS SPACE 4,20 ** PRS - PRESET PROGRAM. * * CALLS ARG, CAP. * * MACROS MESSAGE. PRS SUBR ENTRY/EXIT SB1 1 * CRACK PARAMETERS FROM COMMAND. SA1 ACTR GET NUMBER OF ARGUMENTS SB4 X1+ SA4 ARGR GET FIRST ARGUMENT SB5 TCAT COMMAND ARGUMENT TABLE ADDRESS RJ ARG PROCESS ARGUMENTS SX5 PRSA * GETTASV ARGUMENT ERROR.* RJ IME ISSUE MESSAGE IF ERROR ((X1).NE.0) * CHECK ALTERNATE COMMAND PARAMETER. SA5 ACMD SA2 PRSC SB2 1 MUST BE AT LEAST 1 CHARACTER RJ CAP CHECK FOR ALLOWABLE PATTERN SX5 PRSD * ALTERNATE COMMAND INCORRECT.* RJ IME ISSUE MESSAGE IF ERROR ((X1).NE.0) * CHECK PRIMARY LFN PARAMETER. SA5 LFN1 SA2 PRSC SB2 1 MUST BE AT LEAST 1 CHARACTER RJ CAP CHECK FOR ALLOWABLE PATTERN SX5 PRSI * PRIMARY LFN INCORRECT.* RJ IME ISSUE MESSAGE IF ERROR ((X1).NE.0) * CHECK SECONDARY LFN PARAMETER. SA5 LFN2 SA2 PRSC SB2 1 MUST BE AT LEAST 1 CHARACTER RJ CAP CHECK FOR ALLOWABLE PATTERN SX5 ERVF * SECONDARY LFN INCORRECT.* RJ IME ISSUE MESSAGE IF ERROR ((X1).NE.0) * CHECK PREFIX PARAMETER. SA5 PRFX SA2 PRSB SB2 2 PREFIX MUST BE 2 CHARACTERS RJ CAP CHECK FOR ALLOWABLE PATTERN SX5 PRSH * VSN PREFIX INCORRECT.* RJ IME ISSUE MESSAGE IF ERROR ((X1).NE.0) SA1 PRFX COMBINE PREFIX WITH MAXIMUM DIGIT VALUE SA2 MAXV BX6 X1+X2 SA6 A2+ * CHECK DENSITY PARAMETER. MX0 30 SA1 DENS SA2 TDEN PRS1 BX6 X1-X2 SA2 A2+1 BX7 X0*X6 ZR X7,PRS2 IF CORRECT DENSITY NZ X2,PRS1 IF MORE DENSITIES TO CHECK SX1 B1+ FORCE ERROR INDICATION SX5 PRSE * TAPE DENSITY NOT RECOGNIZED.* RJ IME ISSUE MESSAGE FOR ERROR PRS2 LX6 30 SA6 TTYP SAVE *TMS* TAPE TYPE * CHECK TAPE FORMAT PARAMETER. SA1 FRMT VALIDATE TAPE FORMAT SA2 TATF PRS3 BX6 X1-X2 SA2 A2+1 BX7 X0*X6 ZR X7,PRS4 IF CORRECT FORMAT NZ X2,PRS3 IF MORE FORMATS TO CHECK SX1 B1+ FORCE ERROR INDICATION SX5 PRSF * TAPE FORMAT NOT RECOGNIZED.* RJ IME ISSUE MESSAGE FOR ERROR * CHECK AND CONVERT NUMBER OF VSNS PARAMETER. PRS4 SA1 NVSN SX2 1R1 LX1 6 IX6 X1-X2 SX1 X6-1 SA6 NVSN STORE CONVERTED *NV* PARAMETER ZR X6,PRS5 IF NV=1 SX5 PRSG * NUMBER OF VOLUMES MUST BE 1 OR 2.* RJ IME ISSUE MESSAGE IF ERROR ((X1).NE.0) * SEE IF ANY PARAMETER ERRORS OCCURRED. PRS5 SA1 ERFL ZR X1,PRSX IF NO ERRORS EQ ABT1 ABORT PRSA DATA C* GETTASV ARGUMENT ERROR.* PRSB VFD 6/44B,24/55555555B,30/0 PREFIX VALIDATION MASK PRSC VFD 21/4444444B,9/555B,30/0 COMMAND/LFN VALIDATION MASK * PRESET ERROR MESSAGES. PRSD DATA C* ALTERNATE COMMAND INCORRECT.* PRSE DATA C* TAPE DENSITY NOT RECOGNIZED.* PRSF DATA C* TAPE FORMAT NOT RECOGNIZED.* PRSG DATA C* NUMBER OF VOLUMES MUST BE 1 OR 2.* PRSH DATA C* VSN PREFIX INCORRECT.* PRSI DATA C* PRIMARY LFN INCORRECT.* TCAT SPACE 4,10 * COMMAND ARGUMENT TABLE. TCAT BSS 0 COMMAND ARGUMENT TABLE SS ARG SS,SS AUDIT FILE NAME P ARG PRFX,PRFX PREFIX CHARACTERS N ARG NVSN,NVSN NUMBER OF VSNS D ARG DENS,DENS TAPE DENSITY F ARG FRMT,FRMT TAPE FORMAT T ARG LFN1,LFN1 PRIMARY TAPE LFN VF ARG LFN2,LFN2 SECONDARY TAPE LFN C ARG ACMD,ACMD ALTERNATE COMMAND CON 0 ARGUMENT LIST TERMINATOR TDEN SPACE 4,15 ** TDEN - TABLE OF TAPE DENSITIES. * * *TDEN* CONTAINS THE TAPE DENSITIES RECOGNIZED BY *GETTASV* * AND THE CORRESPONDING *TMS* TAPE TYPES. * *T 30/ DEN, 30/ TTYP * * DEN THE DISPLAY CODE SYMBOL FOR THE DENSITY. * TTYP THE DISPLAY CODE SYMBOL FOR THE *TMS* TAPE TYPE. TDEN BSS 0 TABLE OF TAPE DENSITIES VS DEVICE TYPES VFD 30/2LLO,30/4LMTNT VFD 30/2LHI,30/4LMTNT VFD 30/2LHY,30/4LMTNT VFD 30/2LHD,30/4LMTNT VFD 30/2LPE,30/4LMTNT VFD 30/2LGE,30/4LMTNT VFD 30/2LCE,30/4LCT VFD 30/2LAE,30/4LAT VFD 30/3L200,30/4LMTNT VFD 30/3L556,30/4LMTNT VFD 30/3L800,30/4LMTNT VFD 30/4L1600,30/4LMTNT VFD 30/4L6250,30/4LMTNT CON 0 TATF SPACE 4,15 ** TATF - TABLE OF ALLOWABLE TAPE FORMATS. * * *TATF* CONTAINS THE TAPE FORMATS ALLOWED BY *GETTASV*. * *T 30/ FMT, 30/ 0 * * FMT THE DISPLAY CODE TAPE FORMAT. TATF BSS 0 TABLE OF ALLOWABLE TAPE FORMATS VFD 30/1LI,30/0 VFD 30/2LLI,30/0 CON 0 SPACE 4,10 * PRESET SUBROUTINES. IME SPACE 4,10 ** IME - ISSUE MESSAGE IF ERROR. * * ENTRY (X1) = ERROR INDICATOR (NONZERO = ERROR). * (X5) = ADDRESS OF ERROR MESSAGE. * * * EXIT ERROR MESSAGE ISSUED IF (X1) NONZERO. * ERROR FLAG SET IF (X1) NONZERO. * * MACROS MESSAGE, WRITEC. IME SUBR ENTRY/EXIT ZR X1,IMEX IF NO ERROR INDICATED BX6 X1 SET ERROR FLAG SA6 ERFL MESSAGE X5,,R ISSUE ERROR MESSAGE WRITEC O,X5 EQ IMEX RETURN SPACE 4,10 * PRESET COMMON DECKS. *CALL COMCARG SPACE 4,10 * OVERFLOW CHECK. ERRPL *-OBUF PRESET OVERFLOWS INTO OUTPUT BUFFER SPACE 4 END