e. For disk files (DTFxx), the LUB is verified to ensure that the
logical unit bas been assigned. 1 check is made to ensure that
the DOSCB exists for the DTF filename. For disk output files,
the address of the appropriate IOAREl is placed in IOREG. For
disk input files, the existence of the file is verified via a
call to DKSSST. Also, EXTENT information is initialized and
the OPEl bit is posted.
f. DTFDT and DTFCP are separate DTF types that could describe any of the above devices.
4. After all files in the table have been opened, DKSBOP returns
control to the problem program via SVC 11.
5. If errors are encountered during DMSBOP processing, an error
message is issued and return is .ade via SVC 6.
The CftS/DOS routine that processes CLOSE requests is DMSCLS, whose logiC
is analogous to that of DKSBOP, the OPEN routine described above: when CLOSE expands, register 1 points to $BCLOSE and register 0 points to the
list of DTF/ACB addresses. The same table containing DTFs and lCBs used
to open files is also used to close those files. Each entry in the
table is processed as it occurs, with control passing to a VSAM CLOSE routine ($$BCVS1K) when an ICB is encountered. The OPEN bit is then
turned off. PROCESS CMS/DOS EXECUTION-RELATED CONTROL The CMS/DOS FETCH and DOSLKED com.ands simulate the operation of the DOS/VS fetch routines and the DOS/VS Linkage Editor. The three CMS .odules that perform this simulation are: DKSFET--Prcvide an interface to interpret the DOS FETCH command line
and execute the phase, if START is specified on the command line. DftSFCH--Bring into storage a specified phase from a system or private
core-image library or from a CMS DOSLIB library. DMSDLK--Link edit the relocatable output of the CMS/DOS language
translators to create executable programs. The DOS/'S FETCH function is simulated by CMS .odules DMSFET and DMSFCH. The main control block used during a FETCH operation is FCHSECT, which
contains addressing information required for I/O operations.
The FETCH command line invokes module This module first
validates the command line and issues a FILEDEF for the DOSLIB file. It
then issues a FILEDEF for a DOSLIB file. DKSFE7 then issues a DOS SVC 4, which invokes the module DMSFCH to perform the actual FETCH
operation.
2-142 IBM VM/370 Systea Logic and Program Determination--Volume 2
DMSFCH first determines .here the phase to be fetched resides. The
search order is private core-image library, DOSLIB, system core-image
library. If the 'phase is not found in any of these libraries, DHSFCH assumes that the FETCH is for a phase in a system or private core-image
library. To find a DOSLIB library member, OS OPEN ano FIND macros are
issued (SVC 19 and 18). When the member is found, OS READ and CHECK macros are issued to read
the first record of the file (the member directory). This record
contains the number of text blocks and the length of the member.
All addressing information is stored in FCHSECT and the text blocks
that the phase are read into stcrage. If the read is from a CMS disk,
issue the OS READ and CHECK macros to read the data. If the read is
from a DOS disk, first determine whether this is the first read for the DOS discontiguous shared segment (DCSS) _ If this is the case, CCi information is relocated to ensure that the DCSS code is reentrant. For
all reads for a DOS disk, a CP READ DIAG instruction is issued. When the entire file is read, it is relocated (if it is relocatable).
If a DOSLIB is open, close it using an OS SVC 20 and return control
to DMSFET. DMSFET then checks to see whether START is specified and, if
so, an SVC 202 is issued for the CMS START command to execute the loaded
file. When all FETCH processing is complete, control returns to the command handler, DKSITS. CMS simulation of the DOS/VS Linkage Editor function directly parallels
the DOS/VS implementation of that function. For detailed information on
the logic of the function, see the publication Order Ne. SY33-8556. Note that the modules comprising the DOS/VS Linkage Editor are
prefixed by the letters IJB and are separate CSECTs. ALL of these CSECTs have counterparts contained within the ene eMS module, DMSDLK. They are treated as subroutines within that module, but perform the same
functions as their independent DOS/VS counterparts and have been named using the same naming conventions as for the DOS/VS CSECTs. For example, the IJBESD CSECT in DOS/VS is paralleled by the CMS DMSDLK subroutine DLKESD. A brief dscription of the logic follows. The CMS/DOS DOSLKED command invokes the module DMSDLK, which is entered at subroutine DLKINL.
DLKINL performs initialization and is later overlaid by the text buffer
and the linkage editor tables. DLKINL starts to read from a DOSLNK file
and processes ACTION statements, if there are any_ On encountering the first non-ACTION card (or if there is no DOSLNK file), the main flow is entered. Depending on the input on the DOSLBK or the TEXT file, records from either of those files may be read or
records from a relocatable library may be read. The type of card i.age
read determines the subroutine to which control is given for further
processing.
An ENTRY card indicates the end of the input to the linkage editor.
At this point, a map is produced by subroutine DLKMAP. DLKRLD is then
entered to finish the editing of object .odules by relocating the
address constants. If the phases are to be relocatable, relocation
information is added to the output on the DOSLIB. Updating of the DOSLIB library is performed by DLKCAT using the OS STOW macro. CMS Method of operation and Program Organization 2-143
Previous Page Next Page