DOS error codes returned in the RPL FDBK field that do not exist in
os are mapped to their as equivalents. If the user has specified
synchronous processing, this return code is passed unchanged in register
15.
For asynchronous processing, return codes are cleared before return
and any exit routines set inactive are reactivated in the EXLST. Also,
all ECBs are set to WAITING status.
CHECK PROCESSING: For CHECK processing, return codes in the RPL FDEK fIeld are--checked to determine the results of the I/O operation. If
there is an active exit routine provided for the return code, control is
passed to that routine. Also, all WAITING ECBs are posted with an
equivalent completion code.
If no active exit routine is provided or if the exit routine returns
to VSAM, the return code is placed in register 15 and control is
returned to the instruction following the CHECK. Two types of support for error routine processing are provided in DMSVIP. Entry point DMSVIP3 provides support for user exit routines;
entry point DMSVIP4 provides support for ERET error returns. DMSVIP provides support for as VSAft I/O error exits at entry point D3SVIP3. At this entry point the Dossve bit
is turned off and the user storage key is restored.
The address of the user routine is recovered from VIP's saved exit
list (either the primary exit list in the work area or the overflow exit
list, OEXLSA). Control then passes to the exit routine. If the routine
is one that returns to VSAM, the DOSSVC flag is set ON and VSAM processing continues. DMSVIP can save the addresses of up to 128 exit routines during
execution of a user program. ]]BT DMSVIP provides support for as VSAM BRHT exit routines used in conjunction with the TESTCB macro. This support
is located at entry point DMSVIP4. At DMSVIP4, the Dossve bit is turned
off and the user storage key is restored. The address of the ERET
routine is recovered from the work area and control passes to that The ERET routine may not return control to VSAM. COMPLETION PROCESSING FOR OS AND DOS VSA! PROGRAMS When an as or DOS VSAM program completes, control is passed to module DMSVSR, which "cleans up" after VSAM. DMSVSR can be called from three
routines after as processing: DMSINT, if processing completes without system errors or serious user
errors. eMS Method of Operation and Program Organization 2-121
DMSEIT, if the user program is used as part of an EIEC file. DMSABN, if there are system errors or the user program abnormally
terminates.
After DOS VSAM processing completes, DMSVSR is called by DMSDOS. DMSVSR issues an SVC 2 to execute the DOS transient routine $$BACLOS. $$BACLOS first checks for any OPEN VSAM files. If any are open, SVC 2 is
issued to $$BCLOSE (DMSCLS) to close the files.
If there are no open files or if all ACB's have been closed, $$BACLCS issues SVC 2 to $$BEOJ4, an entry point in DMSVSR. At $$BEOJ4, a PURGESYS DIAGNOSE 64 is issued to purge the CMSVSA! DCSS. DMSVSR then
checks to see if an os program has completed processing. If this is the
case, the SET DOS OFF command is issued and control returns to the
caller. OS Simulation by eMS When in a CMS environment, a processor or a user-written program is
executing and utilizing oS-type functions, as is not controlling this
action, CMS is in control. Consequently, it is not as code that is in CMS, but routines to simulate, in terms of CMS, certain OS functions
essential to the support of OS language processors and their generated
code.
These functions are simulated to yield the same results as seen from the processing program, as specified by OS Frogram logic manuals.
However, they are supported only to the extent stated in CMS documentation and to the extent necessary to successfully execute OS language processors. The user should be aware that restrictions to CS functions as viewed from OS exist in CMS. Certain TSO Service routines are provided to allow the Program Products to run under CMS. The routines are the Command Scan and Parse Service Routines and the Terminal I/O Service Routines. In addition the
user must provide some initialization as documented in TSO TMP Service Routine initialization. The OS functions that CftS simulates are shown
in Figure 22. TSO macros that support the use of the terminal monitor program (TMF) service routines are contained in TSOMAC MACLIB. The macro functions are
as described in the TSO TMP documentation with the exception of PUTLINE, GETLINE, PUTGET, and TCLEARQ.
Before using the TSO service routines, the calling program performs
the following initialization:
1. Stores the address of the command line as the first word in the
command processor parameter list (CPPL). The TSOGET macro puts the
address of the CPPL in register 1.
2. Initializes CMS storage using the STRINIT macro.
3. Clears the ECT field that contains the address of the I/O work area (ECTIOWA) 2-122 IBM VM/370 System Logic and program Determination--Volume 2
Previous Page Next Page