The sign of the halfword code indicates whether the programmer
expects an error return; if so, the code is negative: if not, the code
is positive. Note that the sign of the halfword code has no effect ondetermining the routine which is to be called, because DMSITS takes the atsolute value of the cede to determine the called routine.
Because only the second byte of the absolute value of the code is
examined byDMSITS, seven bits (bits 1-7) are available as flags or for
other uses. For example,DMSFREE uses these seven bits to indicate such
things as conditional requests and variable requests. Therefore,DMSITS considers the codes H'3' and H'259' to be identical, and handles them
the same as H'-3' and H'-259', except for error returns.When an SVC 203 is invoked, DMSITS stores the halfword code into the NUCON location CODE203, so that the called routine can interrogate the
seven bits made available to it. The programmer may use the HNDSVC macro to specify
the address of a routine that processes anySVC call for SVC numbers 0 through 200 and 206 through 255.
If theHNDSVC macro is used, the linkage conventions are as required
by the user specifiedSVC-handling routine.
There is no way to specify a normal or error returnfrom a
user-handledSVC routine& OS MACRO CA11§: CMS supports certain of the SVC calls generated by OS macros, by simulating the effect of these macro calls.
The proper linkages are set up by the os macro generations.DMSITS does not recognize any way to specify a normal or error return from an OS macro simulation SVC call. All SVC functions supported for CMSjDOS are handled by
theCMS module DMSDOS. DMSDOS receives control from DHSITS (the CMS SVC handler) when that routine intercepts a DOS SVC code and finds that the DOSSiC flag in DOSFLAGS is set in NueON. DMSDOS acquires the specified SVC code from the OLDPSi field of the
currentSVC save area. Using this code, DMSEOS computes the address ef
the routine where the sve is to be handled.Many eMS/DOS routines (including DMSDOS) are contained in a
discontiguous shared segment(nCSS). Most SiC cedes are executed within DMSDOS, but seme are in separate modules external to DMSDOS. If the SiC code requested is external to DMSDOS, its address is computed using a
table calledDCSSTAB; if the code requested is executed within DMSDOS, the table SVCTAB is used to compute the address of the code to handle
theSiC. DOS SVC calls are discussed in more detail in "Simulating a DOS Under CMS" in this section. INVALID SiC £!1LS: recognIzed-by DMSITS. There are several
These are:types of invalid SVC calls • Invalid SiC number. If the SiC number does not fit into any of the
classes described above, it is not handled byDMSITS. An error message is displayed at the terminal, and control is returned
directly to the caller.• Invalid routine name in SVC 202 parameter list. If the routine na.ed
in theSVC 202 parameter list is invalid or cannot be found, then CMS Method of Operation and Program Organization 2-67
expects an error return; if so, the code is negative: if not, the code
is positive. Note that the sign of the halfword code has no effect on
Because only the second byte of the absolute value of the code is
examined by
other uses. For example,
things as conditional requests and variable requests. Therefore,
the same as H'-3' and H'-259', except for error returns.
seven bits made available to it.
the address of a routine that processes any
If the
by the user specified
There is no way to specify a normal or error return
user-handled
The proper linkages are set up by the os macro generations.
the
current
the routine where the sve is to be handled.
discontiguous shared segment
table called
the
These are:
classes described above, it is not handled by
directly to the caller.
in the