IBM OS/390 User Manual

Page of 673
VSE CALL
Entrypoint ,(PARAMETER LIST)
(15)
MVS CALL
Entrypoint ,(ADDRESS),VL
(15)
,ID=number
Call is used the same way in MVS as it is in VSE, except when it is used with the
LOAD macro. For a discussion of this difference, see the topic “LOAD Macro” on
page 277 in this section. In addition, if a variable number of parameters may be
passed, the VL keyword operand must be added. The parameters of the called
module should be checked for VSE and MVS differences. If differences are found,
make the necessary changes. See the following example.
VSE
MVS
CALL SUBRTN1
CALL SUBRTN1
CALL SUBRIN2,(TAB,BK)
CALL SUBRTN2,(TAB,BK),VL
 VSE SAVE
(r1
,r2)
 MVS SAVE
(regl
,reg2)
,T
,identifier name
Under MVS, the SAVE macro causes the contents of the specified registers to be
stored in the save area at the address contained in register 13 (within the calling
program). Use the SAVE, macro only at the entry point of a program. Do not use
the SAVE macro in a program interruption exit routine. When you use the T and
identifier name parameters, the code resulting from the macro expansion
requires that register 15 contain the address of the SAVE macro.
The T operand specifies that registers 14 and 15 are to be stored in words 3 and
5 of the save area. It thus permits you to save two noncontiguous sets of
registers. The identifier name operand is an identifier that aids in locating a
program
s save area in a dump. It can be a complex name of up to 70
characters. Coding an identifier name causes the SAVE macro expansion to
include:
A count byte containing the number of characters in the identifier name. This
byte is assembled four bytes following the address contained in register 15.
The character string containing the identifier name. This string is assembled
following the count byte.
An instruction to branch around the count and identifier name fields.
Sample MVS SAVE:
LAREX
CSECT
USING
*,11
Establish Addressability
LA
15,SAVEIT
Address of SAVE macro
 SAVEIT
SAVE
(14,12),,*
+SAVEIT
B
10(8,15)
Branch around ID
+
DC
AL1(6)
+
DC
CL6
SAVEIT
Identifier
+
STM
14,12,12(13)
Save registers
VSE
RETURN
(r1,r2)
MVS
RETURN
(reg1 ,reg2) ,T ,RC = number
,RC =(15) 
272
VSE to OS/390 Migration Workbook