Diagnose Instruction
in
VMjPC
The
DIAGNOSE
instruction cannot
be
used in a virtual
machine for its normal function.
If
a virtual machine
attempts
to
execute a DIAGNOSE instruction, a program
interrupt returns control
to
CPo
Since a
DIAGNOSE
instruction issued in a virtual machine results only in
returning control
to
CP
and not in performing normal
DIAGNOSE
functions, the instruction
is
used for
communication between a virtual machine
and
CPo
The
machine language format of
DIAGNOSE
is:
~<------
4 bytes
------~)
I 83 I
Rx
I Ry I
CODE
Where:
83
is
X'83'
and interpreted
by
the assembler as the
DIAGNOSE
instruction.
Note: There
is
no assembler mnemonic for DIAGNOSE.
Rx,Ry
are general purpose registers
that
contain operand
storage addresses
or
return codes passed
to
the
DIAGNOSE
interface.
CODE
is
a two-byte hexadecimal value
that
CP
uses
to
determine what
DIAGNOSE
function
to
perform. The
codes defined for the
VM/PC
user are described in this
section.
Because
DIAGNOSE
operates differently in a virtual
machine
than
it does in a real machine, a program should
determine
that
it
is
operating in a virtual machine before
issuing a
DIAGNOSE
instruction, and prevent execution
of
a
DIAGNOSE
when in a real machine. The Store Processor
ID (STIDP) instruction provides a program with information
about
the
processor in which it
is
executing, including the
Appendix
A.
CP/CMS
Interface
A-3