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
If register 0 is positive upon entry into POINT is assumed
and ROSNTPTB loads a TTR from the address in register 0 and calls TTRCNVRT and SETXTNT to convert the TTR to a CCHHR. Then contrel
returns to the calling routine.
If register 0 is negative upon entry into DMSROS, BSP (BACKSPACE) is
assumed. The backsFace code checks to determine if the current
position is the beginning of a track. If not, the backspace code
decrements the record number by one and control then returns to the
calling routine. If the current position is the beginning of a
track, the backspace code calls CHRCNVRT to get the current ceHB.
The backspace code then calls rdcnt to get the current record number
of the last record on the new track, calls setxtnt to set the new
extent boundaries, and returns control to the calling routine. NOTE Routine -- Upon entry to note, DMSSCT checks to determine if the DCB refers to an OS disk. If it does, DMSSCT calls DMSROS (ROSRTPTE) to get the current TTR. Control then returns to the user. POINT Routine -- Upon entry to point, DMSSCT checks to determine if
the DCB refers to an OS disk. If it does, DMSSCT calls (ROSNTPTB) to reset the current TTR, calls CKCONCAT and returns
control to the calling CKCONCAT Routine Upon entry to CKCONCAT, DMSSCT checks to
determine if the FCB MACLIB CORCAT bit is on. If it is on, DCBRELAD+3 sets the correct OS FST pointer the FCB and returns
control to the calling routine. If the FCE CCNCAT bit is off,
control returns to the calling routine. FIND (type_C) Routine If the DCB refers to an OS disk, DMSSCT TTR and control returns to the calls DMSROS (ROSNTPTB) to update the
calling routine. EOBROUTN Routine If the FCB OS bit OSREAD. Otherwise, if no special I/O FCBPROC, control passes to EOB2 in DMSSEB. is on,
routine
control passes
is specified
to
in OSREAD Routine -- DMSSEB calls DMSROS to perform a read or write and
then control passes to EOBRETRN which, in turn, passes control back
to DMSSBS. DMSSBS passes control back to the routine calling the
read or write macro operation. -- If the MACLIB CONCAT option is on in the CMSCB, OPEN checks the MACLIB names in the global list and fills in the addresses of OS FSTS for any MACLIBS on os disks. The CMSCB of the first MACLIB in
the global list merges and initializes CMSCBS. If the CMSCB refers to a data set on an OS disk, DMSSCP checks to ensure
that the data set is accessible and the DCB dees not specify output, BDAM, or a key length. If any errors occur, error message DMSSOP036E appears and DMSSOP does not open the DCB. DMSSOP fills them in from the
os PST for the data set5 CMS Method of Operation and Program Organization 2-135
Previous Page Next Page