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.