FILINF 15 - get file/device info.

Usage:

pmme   FILINF,1    For a normal file code
   or
pmme   FILINF,2    If a 'file capability' is used.

On entry

Q register bits 00-02: request type
000
Normal fetch data request.
100
Update tape number in PAT.
010
Update tape PAT density.
001
Update tape block count.
Q register bits 14-17: tape density
If the function is "update PAT density", these bits will be copied to the PAT.
Q register bits 24-35: BCD file code
This identifies the file being queried/updated.
parameter 0 - update data
For the 3 update functions parameter zero must frame at least two words. Word 0 is ignored by all three updates function, and word 1 is interpreted as follows.
Update tape number
Bits 0-29 are copied to the file serial number field in the PAT.
Update density
the word is ignored.
Update block number
Bits 0-17 are stored in the 'records since last EOF' tape position field of the device tables.
parameter 1 - file id
If a zero file code is specified in bits 24-35 of the Q register, then a file capability must be supplied as parameter 1.

On return

Q register - device address
For the update functions, the Q is left unchanged. For the normal "get file data" function, the Q is set the same as MME GEFADD.
parameter 0 - file information
The update functions do not write into parameter 0. For the normal fetch info request at least 3 words of output space are required. If more space is provided, and the device is a tape, up to 8 words of data may be returned. See below for a more detailed description.

Required privilege

None.

Description:

PMME FILINF is normally used to obtain run time information about the file or device associated with a file code or file capability. I.e. it is used to obtain the characteristics of file codes that were specified at run time in the JCL. In addition to this "get information" function, PMME FILINF has three special "update" functions for tape files. Although the mechanics of the interface are quite different, PMME FILINF is used for most of the same purposes as MME GEFCON.

Normal get information request

This function writes information about the file code or capability into the buffer framed by parameter 0. At least three words are always required, but for tapes if extra space is provided more information will be returned.

All devices
File present, word 0 bit 1
This bit is set is the file code is present and does not represent a released file. This bit should be checked before examining other fields.
file type, word 0 bits 30-35
One of the following octal codes will be stored in this field. These are almost the same codes used by MME GEFCON, except for minor variations in two sysout codes.
02
magnetic tape
04
obsolete, was 40-word sector drum
05
remote sysout ($REMOTE)
06
64-word sector disc.
07
conversational device ($DAC)
10
card reader
12
printer
13
console (default or $TYPE)
14
obsolete, was paper tape
16
card punch
20
central or remote sysout. (default or $SYSOUT)
device address: word 2
This contains the same device address information as MME GEFADD returns in the Q register. PMME FILINF also returns a copy of this word in the Q register.
Sysout files
Although a program does nothing different for central site sysout and remote sysout, both MME GEFADD and PMME FILINF try to distinguish in the information they return to the caller. They do not exactly agree on how the difference is determined. In addition to the type codes (05 and 20), PMME FILINF sets two bits in word 0 depending on what type of sysout. A program will normally get test both bits, and treat the file as sysout if either is set.
plain sysout, word 0 bit 1
The file is a sysout file defined by a $SYSOUT card, or implicitly by the system. If this is set, the type code will be octal 20. This may be central or remote sysout depending on the $SYSOUT card.
$REMOTE, word 0 bit 2
The file is remote sysout defined by a $REMOTE card. If this is set the type code will be octal 05. A $SYSOUT card that specifies remote sysout, will NOT cause this bit to be set.
Conversational devices
Note that a $DAC control card does not actually connect a terminal to the program. It is up to the program to recognize from that a $DAC card was used and issue the appropriate GEROUT or remote CALLIO calls.
Unit designator, word 0 bits 24-29
A single BCD character taken from the second field of the $DAC card; if there is no explicit second field a blank is returned. By convention, this character is appended to the snumb of job to generate the remote inquiry name used for this file.
Printers
Some information about the printer capabilities is returned. This information is a subset of that returned by MME GEFADD and PMME PHFADD which should probably be used instead.
ASCII capable, word 0 bit 12
This bit will be set if this type of printer can accept ASCII data.
136 capable, word 0 bit 16
This bit will be set if the printer can handle at least 136 columns. If it is not set, no more than 132 columns can be assumed.
Card Readers and Punches
Again, the capability information is a subset of that returned by MME GEFADD.
Word 0 bits 12-13
These bits will be set to 11 is the device has ASCII capability, and to 00 if it does not.
Disk files
Mode, word 0 bit 4
This bit will be 0 for sequential files, and 1 for random ones.
File size, word 1
The file size in llinks is stored in this word.
Magnetic Tapes
For tape, the file information block must have at least 3 words, but may be larger. If at least 6 words are supplied, filename and generation data is returned, and if 8 words are supplied primary and alternate device names are returned.
Non-7 track indicator, word 0 bit 3
This bit will be set to zero in the unlikely event that a 7 track tape drive is assigned to the file. Normally it will be a 1, indicating some other tape type (9 track or cartridge).
Dismount code, word 0 bit 20
This is the lower bit of the 2 bit normal disposition code. Please see "expl mme gefcon" for a discussion of its meaning, and utility (non-utility?).
Starting Reel Index, word 0 bits 21-29
See discussion in "expl mme gefcon" for the meaning of this field.
File Serial Number, word 1 bits 0-29
The BCD file serial number from the PAT is stored here. If the PAT is marked as not having a reel number, then `99999` will be stored.
FIPS file version number, word 3 bits 0-17
If the $TAPE card specified a FIPS generation and version number (GnnnVnn field), then the version number is stored here.
FIPS file generation number, word 3 bits 18-35
If the $TAPE card specified a FIPS generation and version number (GnnnVnn field), then the generation number is stored here. This information is not available through MME GEFCON.
Tape file name, words 4 and 5
The 12 character BCD file name from the $TAPE card will be stored here. This information is not available through MME GEFCON.
Primary device name, word 6 bits 0-17
The 3 BCD character device name of the primary tape drive is returned here.
Secondary device name, word 6 bits 18-36
If a secondary tape drive is assigned, its device name will be returned here. If no secondary drive is assigned, then BCD spaces will be stored.
RFU, word 7
No information is returned in this word, but space for it must be supplied if the device name data is required.

Update PAT tape number

This function is requested by setting code 100, "request type" field of the Q (bits 0-2). If specified, the BCD file serial number is copied from bits 0-29 of word 1 in the data block to the PAT. Please see "expl mme gefcon" for further discussion of this function.

Update PAT density

This function is specified by setting code 010 in the "request type" field of the Q. If specified, bits 14-17 of the Q will be copied to the PAT density field. Please see "expl mme gefcon" for the effects of changing the PAT density field, and "expl mme gefadd" for the density code values.

Update tape block count

This function is specified by setting code 001 in the "request type" field of the Q. If specified, the value in word 1 bits 0-17 will be stored into the "blocks from prior EOF" field in the GCOS tables that keep track of the tape position. There is no corresponding functionality in MME GEFCON, and it is not clear why a user program would ever need to do this since the system keeps track of this information. If the wrong value was specified, and a later a reposition tape optation was performed because of a drive exchange or error recovery, then data could be lost.

See Also:

expl mme gefadd
for the format of the physical device address data, tape density codes, and more complete unit record capability and state data.
expl mme gefcon
for further discussion of the update functions, and more explanation of the interpretation of some of returned data.

Copyright © 2000, Thinkage Ltd.