Rote: If Ry contains X'0010', Ry cannot be register 15. Ry.1 contains the length of the data area pointed to by Rx. If Rx points to a paraaeter list (Ry not equal to X'0010'), By .. 1 is ignored. DMKHVC checks the VSACCOUR flag in V!PSTAT to verify that the user
has the account option and if not, returns control to the user with a
condition code of one.
If Ry contains a code of X'0010', D!KBVC perforas the following checks: If the address specified in Rx is negative or greater than the size
of the user's virtual storage, an addressing exception is generated. If the coabination of the address in Rx and the length in Ry+1
indicates that the data area crosses a page boundary, a specification
exception is generated. If the value in Ry.1 is zero, negative, or greater than 70, a is If both the virtual address and the length are valid, DBlREE is
called to obtain storage for an account buffer (ACBTBLOK) which is then
initialized to blanks. The userid of the user issuing the DIAGBOSE instruction is placed in coluans 1 through 8 and an accounting card
identification code of "CO" is placed in coluans 79 and 80. The user
data pointed to by the address in Rx is .oved to the accounting card
starting at coluan 9 for a length equal to the value in Ry+1. A call to D!KACOQU queues the ACITBtOK for real output. If a real punch is
available, D!KACOPU is called to punch the card; otherwise, the buffer
is stored in .ain storage until a punch is free. DBKBVC then returns
control to the user with a condition code of zero.
If Ry contains other than a X'0010' code, control is passed to D!KCPV to generate the card. D!KCPV passes control to D!KACO to co.plete the
"charge to" infor.ation; either from the User Accounting Block (ACCTBtOK), if a pointer to it exists, or froa the user's VBBLOK. D!KCPV then punches the card and passes control back to D!KBVC to
release the storage for the ACCTBtOK, if one exists. D!KHVC then checks
the paraaeter list address for the following conditions: If zero, control is returned to the user with a condition code of
zero. If invalid, an addressing exception is generated. If not aligned on a doubleword boundary, a specification exception is
generated. lor a parameter list address that is nonzero and valid, the use rid in
the parameter list is checked against the directory list and if not
found, control is returned to the user with a condition code of two. If
the function hexadecimal code is invalid, control is returned to the
user with a condition code of three. If both userid and function
hexadeciaal code are valid, the User Accounting Block (ACCTBtOK) is
built and the userid, account nuaber, and distribution nuaber are aoved to the block froa the parameter list or the User Machine Block belonging
to the userid in the paraaeter list. Control is then passed to the user with a condition code of zero.
1-64 IBM VM/370 System Logic and Problem Deteraination--Voluae 1
DIAGNOSE X'5Q.!. = Save the 3701 Control progry Image DIAGNOSE code X'50' (Privilege class A, B, or C only) invokes the CP .odule D!KSNC to (1) validate the parameter list and (2) write the
page-for.at i.age of the 370X control prograa to the appropriate system voluae. When a 370X control program load module is created, the C!S service program SAVEBCP builds a co •• unications controller list (CCPAR!) of
control infor.ation. It passes this information to CP via a DIAGNOSE code X'50'. The register specified as Rx contains the virtual address of the
para.eter list (CCPAR!). The Ry register is ignored on entry. Upon return, the By register contains the following error codes: 044 171
178
179
435 'ncpname' was not found in system name table.
Syste. volu.e specified not currently available.
Insufficient space reserved for program and system control
infor.a tion. Syste. volu.e specified is not a CP-owned volume. P aging error while writing sa ved systea. Code :.:. Contr.2! Fun£ti,Q!! .Q!: the FUDc,!:io!! Key DIAGNOSE code X'54' controls the function of the PA2 function key. The PA2 function key can be used either to simulate an external interrupt to
a virtual machine or to clear the output area of a display screen.
The function perfor.ed depends upon how Rx is specified when DIAGNOSE code X'54' is issued. If Rx contains a nonzero value, the PA2 key
si.ulates an external interrupt to the virtual .achine. If Rx contains
a value of zero, the PA2 key clears the output area of the display
screen.
The external interrupt is si.ulated only when the display screen is
in the ,5 REiD, BOLD, or MORE status and the lPt OJ cossand has been issued. = 3270 Virtual Console Execution of DIAGNOSE code X'58' allows a virtual machine to display
large amounts of data on a 3270 in a very rapid fashion. The interface
can display the entire 3270 screen with one write operation instead of
22 writes (one for each line in the output area of a 3270 screen).
The register specified as Rx contains the address of the console CCi string. The By register contains (in bits 16 through 31) the device
address of the virtual console.
To specify the special display CCi , use the following asse.bler
language instructions: DS OD DC X'19', AL3 (dataddr), lL1(flags), lL1(ctl), lL2(count) dataddr is the beginning address of the data to be displayed.
CP Introduction 1-65
Previous Page Next Page