STORE

CMS Commands

store.helpcmd.txt
STORE                                                    CP Privilege Class:  G

Use the STORE command to alter the contents of specified registers and
locations of the virtual machine.  The contents of the following can be
altered:
o   Virtual storage locations (1st level virtual storage only; see Usage notes)
o   General registers
o   Floating-point registers
o   Control registers (if available)
o   Program status word.
The STORE command can also save virtual machine data in low storage.  The
format of the ACCESS command is:
+----------+------------------------------------------------------------------+
| STore    | [L]hexloc       hexword1 [hexword2...]                           |
|          | Shexloc         hexdata...                                       |
|          | Greg|Xreg|Yreg  hexword1 [hexword2...]                           |
|          | Psw            [hexword1] hexword2                               |
|          | STATUS                                                           |
+----------+------------------------------------------------------------------+
where:

[L]hexloc hexword1 [hexword2...]
         stores the specified data (hexword1 [hexword2...]) in successive
         fullword locations starting at the address specified by hexloc.  The
         smallest group of hexadecimal values that can be stored using this
         form is one fullword.  Either form (hexloc or Lhexloc) can be used.

         If hexloc is not on a fullword boundary, it is rounded down to the
         next lower fullword.  The hexword1 operand represents up to 16
         hexadecimal digits.  If the value being stored is less than a fullword
         (eight hexadecimal digits), it is right-adjusted in the word and the
         high order bytes of the word are filled with zeros.  If two or more
         hexwords are specified, they must be separated by one or more blanks.

Shexloc hexdata...
         stores the data specified (hexdata...) in the address specified by
         hexloc, without word alignment.  The shortest string that can be
         stored is one byte (two hexadecimal digits).  If the string contains
         an odd number of characters, the last character is not stored, an
         error message is sent, and the function is terminated.  The hexdata...
         operand is a string of two or more hexadecimal digits with no embedded
         blanks.

Greg hexword1 [hexword2...]
         stores the hexadecimal data (hexword1 [hexword2...]) in successive
         general registers starting at the register specified by reg.  The reg
         operand must be either a decimal number from 0 through 15 or a
         hexadecimal digit from 0 through F.

         The hexword1 [hexword2...] operand each represents up to eight
         hexadecimal digits.  If the value being stored is less than a fullword
         (eight hexadecimal digits), it is right-adjusted in the word and the
         high order bytes of the word are filled with zeros.  If two or more
         hexwords are specified, they must be separated by one or more blanks.

Xreg hexword1 [hexword2...]
         stores the hexadecimal data (hexword1 [hexword2...]) in successive
         control registers starting at the register specified by reg.  The reg
         operand must either be a decimal number from 0 through 15 or a
         hexadecimal digit from 0 through F.  If the virtual machine is in
         basic control mode, you can store data in register 0 only.

         The hexword1 [hexword2...] operand each represents up to eight
         hexadecimal digits.  If the value being stored is less than a fullword
         (eight hexadecimal digits), it is right-adjusted in the word and the
         high order bytes of the word are filled with zeros.  If two or more
         hexwords are specified, they must be separated by one or more blanks.

Yreg hexdword1 [hexdword2...]
         stores the hexadecimal data (hexdword1 [hexdword2...]) in successive
         floating-point registers starting at the register specified by reg.
         The reg operand must be a digit from 0 through 7.  If reg is an odd
         number, it is adjusted to the preceding even number.

         The hexdword1 [hexdword2...] operand each represents up to 16
         hexadecimal digits.  If the value being stored is less than a
         doubleword (16 hexadecimal digits), it is left-justified in the
         doubleword and low order positions are filled with zeros.  If two more
         more hexdwords are specified, they must be separated by one or more
         blanks.

Psw [hexword1] hexword2
         stores the hexadecimal data in the first and second words of the
         virtual machine's program status word (PSW).  If only hexword2 is
         specified, it is stored into the second word of the PSW.

         The [hexword1] hexword2 operand each represents up to eight
         hexadecimal digits.  These operands must be separated by one or more
         blanks.  If the value being stored is less than a fullword (eight
         hexadecimal digits), it is right-adjusted in the word and the high
         order bytes of the word are filled with zeros.

STATUS   stores selected virtual machine data in certain low storage locations
         of the virtual machine, simulating the hardware store status facility.
         These locations are permanently assigned locations in real storage.
         To use the STATUS operand, your virtual machine must be in the
         extended control mode.  The STATUS operand should not be issued for
         CMS virtual machines or for DOS virtual machines generated for a CPU
         smaller than a System/360 Model 40.  The STATUS operand stores the
         following data in low storage:
            Decimal   Hexadecimal   Length
            Address      Address    in Bytes  Data
              216           D8         8      CPU Timer
              224           E0         8      Clock Comparator
              256          100         8      Current PSW
              352          160        32      Floating-point registers 0-6
              384          180        64      General registers 0-15
              448          1C0        64      Control registers 0-15


Usage notes:

1.  Only first-level storage (storage that is real to the virtual machine) can
    be stored into.  Operating systems running in a virtual machine such as
    DOS/VS and OS/VS have virtual storage of their own.  This second-level
    virtual storage cannot be stored into directly.  The user or the virtual
    operating system is responsible for converting any second-level storage
    locations to first-level storage locations.

2.  The operands may be combined in any order desired, separated by one or more
    blanks, for up to one full line of input.  If an invalid operand is
    encountered, an error message is issued and the store function is
    terminated.  However, all valid operands entered, before the invalid one,
    are processed properly.

3.  If you combine the operands for storing into storage, registers, the PSW,
    or the status area on a single command line, all operands must be
    specified; default values do not apply in this case.

4.  If the STORE command is used by your virtual machine to alter the contents
    of a shared segment, you receive a warning message and your virtual machine
    is unshared from (given a private copy of) the named system.  Other users
    of the segment continue to operate with an unchanged copy of that segment.

5.  With the STORE command, data is stored either in units of one word with
    fullword boundary alignment or in units of one byte without alignment.

6.  The STORE STATUS command stores data in the extended logout area.  The
    STORE STATUS command stores CPU Timer and Clock Comparator values that may
    then be displayed at the terminal via the DISPLAY command.  The procedure
    is the only way to get timer information at the terminal using a CP command.

Response

STORE COMPLETE
   is the response at the successful completion of the command.