VSS UTILITIES

TOPIC VSS General information about VSS applicable to many utilites is to be found under the heading GENERAL. Other information relating to specific utilities is to be found under the command name.

GENERAL

KEY VSS (Virtual Space Simulator) is a program which runs under EMAS, which emulates many of the functions of an IBM OS/VS operating system, and so enables many IBM programs to run unmodified.

IMPLEMENTATION

KEY Much of the code of VSS is derived from work done at Durham university, where it was used to run OS/VS programs in the environment of their MTS/MVS operating systems. Hence, our VSS contains within it many facilites which emulate MVS facilities. The emulation has two stages: OS => MVS => EMAS. This is usually transparent to the user, but there are some cases (especially diagnostic messages) where the two-stage emulation will be apparent. The VSS we obtained from Durham was claimed to be a very full emulation of OS/VS facilities, but there are some difficulties with our EMAS implementation. 1. We have not yet implemented all of the Durham VSS. 2. We have not implemented all of the MVS support facilites required by VSS. 3. Many of the facilities present have not been fully tested and may contain bugs. Hence, there may be problems with our implementation. These are gradually being resolved as more OS programs are run successfully.

LICENCING

KEY Many of the packages available to be run under VSS are subject to licence agreements, which limit the way in which they may be used. Many of the packages are made available to us on the understanding that they are for teaching and non-profit research only. Also, they may not be transferred between machines without the approval of the originators. Details of particular licences will normally be given in the help information for the package itself. Please respect these agreements.

ROUTES

KEY A VSS ROUTE is a filename, or a construction of the form (filename,maxsize,type). This second form contains parameters much the same as those used by DEFINE. Some valid routes are: .out (.null) (outsq,,EV1024) Values for the "type" field are interpreted as follows: C..Character file (ISO code) V..Sequential file, ISO code E..(OR EV) Sequential file, EBCDIC code. L..VSS "LINE" file (EBCDIC code) The types E, EV and V may also have a record length. If not, then a default is assumed. The parameter "maxsize" is only relevant if the file is to be written. It does not apply to Line files. The parameter "type" may be ommitted if the file already exists, as the type is then determined from the file itself. Beware the difference between E and V format. VSS itself operates in EBCDIC, and translates all data to EBCDIC on reading it. Hence, the most usual format is "E". Files which contain binary or EBCDIC data, but which have not been marked as Ebcdic may be so marked using the command SETSQCODE. The LINE file is the most complicated and general type of file, and should be used for Partitioned Data Sets or Libraries, Direct access data sets, simulated disks, and data sets on which much re-positioning is done.

LINE FILES

KEY "Line" files are special files used under VSS which support very general access. The file is considered to comprise a number of lines, each of which has a line-number and length. Any line can be accessed by its line number, which is often a multiple of 1000. A line of arbitrary line number and length can be inserted anywhere in the file. Many VSS operations can be supported on other EMAS file types, but line files are required to support (IBM) partitioned data sets (e.g. macro libraries, load libraries etc.) and for simulated disk files (including DA files). In addition, the direct-access capability of line files makes them more efficient when the package requires to do a lot of re-positioning of the file. This includes many work files. A number of utilites are provided to look at the contents of line files. These include SCANLINF, DUMPLINF, and COPYLINF. When manipulating a line file, it is often best to use COPYLINF to copy the file into an EMAS (ebcdic) sequential file, and then to manipulate that.

LISTLINF

LISTLINF infile,outfile Gives a listing of a linefile, including line numbers and lengths. PAMSTOP The following paragraphs describe the parameters to this command.

INFILE

KEY Input file name.

OUTFILE

KEY Output file or device.

SCANLINF

SCANLINF infile,outfile Gives the numbers and lengths of lines in a line file. "outfile" defaults to ".out". At the end, the number of lines in the file and the maximum line length is printed. PAMSTOP The following paragraphs give information about the parameters to this command.

INFILE

KEY Name of file to be scanned.

OUTFILE

KEY Output filename or device.

DUMPLINF

Gives a full hexadecimal dump of each line in a file, which may be a line file, a SQ file, or a stream file. ISO files are converted to EBCDIC before dumping. PAMSTOP The following paragraphs describe the parameters used by this command.

INFILE

KEY Name of file to be dumped

OUTFILE

KEY Output filename or device.

START

KEY Start Line Number - applies only to Line files. Remember that line numbers are usually multiples of 1000. By default, dumplinf starts at the beginning of the file.

LEN

KEY Maximum length of data to be dumped in each block. May not exceed 8192. This value limits the amount of data dumped for long data blocks.

COPYLINF

COPYLINF inroute,outroute E.g. Copylinf infile,outfile or copylinf infile,(outfile,,l) Copies from inroute to outroute, both of which may be of stream, sequential, or line format. Unless otherwise specified, outroute will be of stream format, unless this route references a file which already exists. In this case, the output file retains its type. PAMSTOP The following paragraphs describe the parameters to this command.

INFILE

KEY The input route, or input filename.

OUTFILE

KEY The output route. By default, this will be in stream format, unless the output file already exists, in which case this format will be used. E.g. (outfile,,L)

VFILETYPE

VFILETYPE infile Prints the type of file "infile" - which may be stream, iso sequential, ebcdic sequential, or line file. PAMSTOP The following paragraph describes the parameter to this command.

FILENAME

KEY The name of a stream, iso seqential, ebcdic sequential, or line file.

SETSQCODE

SETSQCODE infile,code Marks a sequential file as iso or ebcdic. The data in the file is not changed by this command, but programs which operate on this file may examine the data code type, and interpret the data accordingly. PAMSTOP The following paragraphs describe the parameters to this command.

FILE

KEY The name of a sequential (SQ) file.

CODE

KEY ISO or EBC. The data code relating to the data in the file.

VCREATEF

VCREATEF infile Creates an empty line file of name "infile". An empty line file may be used as a Partitioned Data Set - currently containing no members.

VSSLIB

This command manipulates an (IBM) partitioned data set, or library file - e.g. a macro or load library. The parameter "function" determines the action taken. PAMSTOP The function parameter and various actions are described in the paragraphs under section FUNCTION. The other paragraphs describe the various parameters which may be required depending on the function specified. A null Partitioned Data Set may be created using command VCREATEF. Partitioned Data Sets may be used as Macro Libraries, or as Load Libraries, amongst other things. Libraries of macros and copy sections may be manipulated using the command VMACLIB. Information about Load Libraries may be obtained using command VLOADLIB.

FUNCTION

KEY Specify one of the following functions: MAP Print a map of the partitioned data set directory. LIST Print map, together with dump of user data. COPY Copy a member of a partitioned data set. DELETE Delete an entry in a partitioned data set directory. RENAME Rename an entry in a partitioned data set directory. ALIAS Create an entry in a partitioned data set directory. PAMSTOP The following paragraphs describe these functions in more detail.

MAP

KEY VSSLIB MAP,infile Gives a "map" of the VSS partitioned data file "infile". The map includes the name of each member, its starting record number, the number of "user half words" of extra data in the file directory, and the number of "ttr" or record pointer records in the directory.

LIST

KEY VSSLIB LIST,infile Gives a listing of the directory of the VSS partitioned data file "Infile". This includes all the information as for MAP, together with a dump of the user data associated with each member.

DELETE

KEY VSSLIB DELETE,fileid_member Deletes member "member" of the VSS partitioned data file "fileid". In accordance with usual IBM practice, the deleted space is not recovered.

RENAME

KEY VSSLIB RENAME,fileid_member1,fileid_member2 OR VSSLIB RENAME,fileid_member1,member2 Renames member "member1" of VSS partitioned data file "fileid" as member "member2". All other directory information is retained.

ALIAS

KEY VSSLIB ALIAS,fileid_member1,member2 Creates a new entry in the directory of the partitioned data set "fileid". The new entry has all the attributes of member "member1", but has name "member2". Hence, the new name "member2" describes the same member as the old name "member1". The alias bit is set on the new directory entry.

COPY

KEY VSSLIB COPY,infile,fileid_member VSSLIB COPY,fileid_member,outfile VSSLIB COPY,fileid1_member1,fileid2_member2 Copies a file, or member of a VSS partitioned data file, to another file, or member of a VSS partitioned data file. Either the input, or the output file must be a partitioned data file member. If both input and output files are members of partitioned data files, then the directory information is also copied, and any information relating to record addresses is also updated. Otherwise, no directory information can be copied or generated. Input and output files may not both be members of the same VSS partitioned data file. An empty line file will serve as a null VSS partitioned file. Thus, to create a null VSS partitioned file, use VCREATEF. If the output file is a member of a partitioned data file, and that member already exists, then the copy will fail unless OVERWRITE=YES is given.

PDSET

KEY The filename of the MVS partitioned data set.

INFILE

KEY The input filename. This may take the form pdsfile_member if required, to specify a member of an MVS partitioned data set. If both input and output files are members of partitioned data sets, then the user data in the partitioned data set directory is also copied.

OUTFILE

KEY The output filename. This may take the form pdsfile_member if required, to specify a member of an MVS partitioned data set. If both input and output files are members of partitioned data sets, then the user data in the partitioned data set directory is also copied.

PDSMEM

KEY An existing member of an MVS partitioned data set. E.g. PDSFILE_MEMBER

NEWMEMBER

KEY The name (not exceeding 8 characters) of the new member. This member must not currently exist.

OVERWRITE

KEY This parameter is required if VSSLIB COPY is attempting to overwrite an existing file. Specify YES if this is intended, NO otherwise.

VLOADLIB

VLOADLIB MAP,infile Gives a map of the VSS partitioned data file "infile", which is assumed to be a loadlib. This includes the name and storage required for each member of the loadlib. This information is obtained from the partitioned file directory.

VMACLIB

Utility used to DUMP or GENerate a MACLIB containing MACROs or COPY sections. The action of this routine is governed by the function parameter. Other functions may be performed on macro libraries using the VSSLIB utility.

FUNCTION

KEY Give one of the following DUMP Dump a macro library, producing COPY directives for each subfile. MACDUMP Dump a macro library, assuming that all members are valid macros, with names corresponding to the member names. GEN Generate a macro library from a source file containing COPY directives. MACGEN Generate a macro library from a source file containing macros. The names of the members are derived from the names of the macros.

MACLIB

KEY Give the name of the MACRO library. If the function is GEN or MACGEN, then any existing file will be overwritten.

CHARFILE

KEY Give the name of the source file from which the library is to be generated, or to which the library is to be dumped.

VLIBFROMCMS

VLIBFROMCMS infile,outfile Copies a CMS partitioned data file into a VSS partitioned data file. The input file should normally be an ebcdic sequential file. The output is a VSS line file. Please note that IBM partitioned files do accumulate quantities of junk - i.e. unused and unaccessable data which has been part of the file data at some time past. Before moving partitioned files, please remove junk by compressing them.

VLIBFROMUPDS

Converts an unloaded partitioned data set into a VSS library. This utility will work with LOADLIB type files, as well as with text libraries. The input for this utility is an ebcdic sequential file containing 80 byte records. On tape, this would be F80 or FB80. If the file is not of this format, then try VSS UTILITY VLIBFROMBAS. PAMSTOP Information about the parameters to this command is given in the following paragraphs.

INFILE

KEY The name of the input file. This should be an EMAS sequential file of record length 80, normally read from tape, and should have been marked as EBCDIC (using SETSQCODE).

OUTFILE

KEY The name of the output file. The output file will be a VSS library.

OPTIONS

KEY Options. This number is the sum of various bits: 1..monitor file and block headers. 2..monitor member names.

VLIBFROMBAS

Converts a file in the format used by BAS at Cambridge into a VSS library. VLIBFROMBAS is the appropriate command to deal with most tapes of release software from IBM sites. The input to this utility is an EBCDIC sequential file of variable record length. On tape, this always has VS format. If the file is F80 or FB80 format, then try VSS UTILITY VLIBFROMUPDS. PAMSTOP The following paragraphs contain information about the parameters to this command, and the files involved.

INFILE

KEY Input file name. The input file should have been read from tape, and marked as EBCDIC using SETSQCODE. On tape, the file will have had RECFM of VS. On EMAS, this file will be an EBCDIC sequential file of variable record length.

OUTFILE

KEY Name of the output file, which will be a library or partitioned data file for use under VSS.

OPTIONS

KEY &1#0..monitor block data structure. &2#0..monitor doread. &4#0..monitor ttrs of records being processed.

VUNBLOCK

VUNBLOCK infile=..,outfile=..,recfm=F, lrecl=.. or VUNBLOCK infile=..,outfile=..,recfm=V Unblocks IBM blocked files. For input files of format "V", "VB" or "VBS", "recfm=V" should be specified. PAMSTOP The following paragraphs describe the parameters to this command.

INFILE

KEY Blocked input file.

OUTFILE

KEY Unblocked output route.

RECFM

KEY Record format - i.e. F or V. Specify V if format is V, VB, VS, or VBS. If format F, then LRECL will be requested.

LRECL

KEY Record length - i.e. length of records within blocks of blocked input file. Block size is always an exact multiple of record length. The usual value for LRECL is 80, which corresponds to card images.

VREBLOCK

VREBLOCK infile=..,outfile=..,recfm=..,blksiz=.. VREBLOCK is the opposite of VUNBLOCK. It takes individual records, and forms a blocked file according to the given recfm and blksiz. Recfm may be "V", "VB", "VS" or "VBS". Blksize is the maximum block size for formats "VB", "VS" and "VBS", but is not required for recfm="V". When an IBM standard labelled tape is read using the standard ERCC utilities, then blocked files are normally split into individual records. VREBLOCK may be used to invert the process. PAMSTOP The following paragraphs describe the parameters to this command.

INFILE

KEY Input file name. This file contains the records which are to be assembled to form the blocks of the output file.

OUTFILE

KEY Blocked output route. A stream file is not suitable for this purpose, so an ebcdic SQ file, or line file should be specified. E.g. (outfile,,EV6000) or (outfile,,L)

RECFM

KEY Record format. I.e. V, VB, or VBS.

BLKSIZ

KEY Maximum block size of output file.

JOINSQ

JOINSQ infile1,infil2...,.end,outfile Joins sequential files, provided they have compatible formats. This is useful where sequential files have been read from tape into individual part files, which need to be joined together. Subsystem limits may need to be modified, if it is desired to create very large files. PAMSTOP The following paragraphs contain information about the parameters to this command.

INFILE

KEY Name of input SQ file, or ".end".

OUTFILE

KEY Name of output SQ file.

VZAP

VSS Utility to patch load modules - i.e. members of load libraries. The patching is done in place. Hence, the user should make a copy of the original file before patching, if necessary. Existing data is overwritten by this program. No new program areas can be created. Relocation requests are not effected, so the patched data may be modified during the load sequence. The relocation requests referring to areas which are patched or dumped are printed during patch and dump. PAMSTOP Information about the parameters required is given in sections LIBRARY, MEMBER, and COMMAND. Depending on the command given, further parameters are read, and information about these is available in the further paragraphs. Information about the parameters is given in the following sections.

LIBRARY

KEY The name of the VSS library file containing the load module to be patched.

MEMBER

KEY The member name within the load library file of the load module to be patched. The member name should not exceed 8 characters in length.

COMMAND

KEY The command to be executed. Valid commands are: STOP End processing. QUIT Same as STOP. SYMBOLS Print symbol table. DUMP Dump part of load module. PATCH Patch part of a load module.

DUMPSECTION

KEY The name of the control section to be dumped.

DUMPOFFSET

KEY The start address within the control section, where dumping is to start.

DUMPLEN

KEY The length of the data to be dumped.

PATCHSECTION

KEY The name of the control section to be patched.

PATCHOFFSET

KEY The start address within the control section, where patching is to start.

PATCHDATA

KEY The (halfword) data to be stored at the patch address. Give "-1" to terminate. Reading data also stops at end of section, and when the patch table is full. E.g. x47F0