cdc:nos2.source:opl871:gettasv
Table of Contents
GETTASV
Table Of Contents
- [00007] GETTASV - GET VSNS FOR TAPE ALTERNATE STORAGE.
- [00011] GET TAPE ALTERNATE STORAGE VSN(S).
- [00091] DAYFILE MESSAGES.
- [00151] COMMON DECKS.
- [00164] TABLES.
- [00168] COMMAND ARGUMENT VARIABLES.
- [00182] ERROR MESSAGES.
- [00192] MAIN PROGRAM.
- [00194] MAIN PROGRAM.
- [00389] SUBROUTINES.
- [00391] ABT - ABORT PROCESSING.
- [00415] CAP - CHECK FOR ALLOWABLE PATTERNS.
- [00478] COMMON DECKS.
- [00491] FILE ENVIRONMENT TABLES.
- [00509] PRS - PRESET ROUTINES.
- [00512] PRS - PRESET PROGRAM.
- [00647] TDEN - TABLE OF TAPE DENSITIES.
- [00674] TATF - TABLE OF ALLOWABLE TAPE FORMATS.
- [00690] IME - ISSUE MESSAGE IF ERROR.
Source Code
- GETTASV.txt
- 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
cdc/nos2.source/opl871/gettasv.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator