DMSLDS calls DMSLAD to find the active disk table block. If you
specify file mode as an asterisk (*), DMSLAD searches for all ADT blocks.
If you specify the filemode as alphabetic, DMSLAD finds only the AtT tlock for the specified filemode.
If you specify the dsname (which is optional), DMSLDS sets the
channel programs to read by key= If you did not specify a dsname, DMSLDS searches the whole VTOC for format 1 DSCES and displays all the
requested information contained in the DSCB on your console. If you
specify the format option, the RECFM, LRECL, ELKSI, DSCRG, DATE, LABEL, FMODE, and data set name appear on you console; otherwise, only the FMODE and data set name appear. If you specify the PDS option, DMSLDS calls the 'find' routine
(rosfind) in DMSROS to read the member directory and pass back, one at a
time, in the fcbmembr field of CMSCB the name of each member of the data
set. This occurs if the data set is partitioned.
After processing finishes, DMSLDS resets the nucleus key to the same
value as the user key, puts the return code in register 15, and returns
to the calling routine. DMSLFS verifies that the FST being searched for has an CS disk associated with it. DMSLFS calls the DMSROS state routine (ROSSTT) to verify that the data set exists and eMS supports the data set
attributes. Upon return from DMSROS, a return code of 88 indicates that
the data set was not found, and DMSLDS starts the search again using the
next disk in sequencee Any other errors, such as a return code 80, cause DMSLFS to exit immediately. A return code of 0 from DMSRCS indicates that the data set is on the specified disk. From this point
on, execution occurs common to both CMS and OS disks. DMSMVE MODULE: If you specify the PDS option and the input is from a aisk;-DMSMvi-sets the FCBMVPDS bit and issues an as FIND macro before
opening an output DCB to position the input file at the next DMSMVE then stores the input member name in the output CMSCB for use as
the output filename. After reaching end-of-file on a member, the
message DMSMVE225I appears, DMSMVEcloses the output DCB, and passes
control to find the next member. After moving all the members to
separate eMS files, movefile displays message DMSMVE226I, closes the
input and outFut DCBS, and returns control to the calling routine. ROSACC Routine -- ROSACC gets control from DMSACft after DftS!CH determines that the label of the disk belongs to an as disk. The ROSACC routine reads the format 4 DSCB of the disk to further verify
the validity of the OS disk. ROSACC updates the ADT to contain the
address of the high extent of the VTOC (if the disk is a DOS disk) or
the address of the last active for.at 1 DSCE (if the disk is an CS disk), and the number of cylinders in the disk. If the disk is a Des
disk, ROSACC sets a flag in the ADT. Information messages appear to
notify you that the disk was accessed in read-only mode. If the disk
is already accessed as another disk, another information message
appears to that effect. Finally ROSACC zeroes out the ADTFLG1 flag
in the ADT, sets the ADRFLG2 flag to reflect that an OS disk was 3ccessed, and returns control to the calling routine.
ROSSTT Routine --Verifies the existence of an CS data set and
verifies the support of the data set attributes. Within the ROSSTT description, any reference to FCB or CMSCB implies a DoseB if DOS is active. CMS Method of Operation and Program Organization 2-133
ROSSTT gets control from DMSSTT after DMSSTT determines that the STATE operation is to an OS disk. The ROSS1T routine searches for
the correct FCB which a previous FILEDEF associated with the data set, If the DOS environment is active, ROSSTT locates the correct DOSCB that defines a data set described by a previous DLBL. If ROSSTT finds an active FST, control passes to ROSSTRET; otherwise, ROSSTT acquires the dsname bleck, places its address in the FCB, and
moves the dsname in the FCB to the acquired block. ROSSTT acquires
an FST block, chains it to the FST chain, and fills all general
fields (dsname, disk address, and disk mode). ROSS1T now reads the
format 1 DSCB for the data set and checks for unsupported options (BDAM, IS1M, VSAM, and read protect).
Errors pass control back to the calling routine with an error cede. ROSSTT groups together all the extents of the data set (by reading
the format 3 DSCB if necessary) and checks them for validity. ROSSTT bypasses any user labels that may exist and displays a message to
that effect. Next, ROSSTT moves the DSCB1 ELKSIZE, LRECL, and parameters to the OS FST and Fasses control to rosstret. ROSSTRET Routine --If t.hp. passes control tack to the caller. If the specified disk is a DOS disk, rosstret fills in the os FST BLKSIZE, LRECL, and RECFft fields that
were not specified in the DSCB1. If the CMSCB fields are zero,
rosstret defaults them to BLKSIZE=32760, LRECL=32670, and RECFM=O. Control then returns to the calling routine. ROSRPS Routine ROSRPS reads the next record of an as data set.
Upon entry to the ROSRPS entry point, ROSRPS calls CHKXTNT and, if
the-current CCHHR is zero, SETXTNT to ensure the CCHHR and extent
boundaries are correctly set. ROSRPS then calls DISKIO and, if
necessary, CHKSENSE and GETALT to read the next record. If no errors
exist or an unrecoverable error occurred, control returns to the user
with either a zero (I/O OK) or an 80 (I/O error) in register 15. If
an unrecoverable error occurs, ROSRPS updates the CCWS and buffer
pointers as necessary and recalls CHKXTNT and DISKIO to read the next
record. ROSFIND Routine -- ROSFIND sets the CCHHR to point to a member specified in FCBMEMBR or, if the FCBMVPDS bit is on, sets the CCRHR
to point to the next member higher than FCBftEMBR and sets a new
member name in FCBMEMBR.
Upon entry at the ROSFND entry point, ROSFND sets up a ccw to search
for a higher member name if the FCBMVPDS tit is on, or an equal member name if the FCBMVPDS bit is off. It then calls SETXTNT, DISKIO and, if needed, CHKSENSE and GETALT to read in the directory
block that contains the member name requested. After reading the
block, it is searched for the requested member name. If the member name is not found, an error code 4 returns to the calling routine.
If an I/O error occurs while trying to read the PDS block, an error
code 8 returns to the calling routine. If the member name is found, TTRCNVRT is called to convert the relative track address to a CCHR
and pass the address of the member entry to the calling routine. ROSNTPTB Routine -- ROSNTPTB gets the current TTR, sets the current
CCHHR to the value of the TTR, and backspaces to the previous record.
Upon entry at the ROSNTPTB entry point, ROSNTPTB checks to determine
if a NOTE, POINT, or BSP operation was requested.
If register 0 is zero, NOTE is assumed. The note routine calls CBRCNVRT to convert the CCHH to a relative track and returns control
to the calling routine with the TTR in register O. 2-134 IBM VM/370 System Logic and Program 2
Previous Page Next Page