VMS Help  —  DEPOSIT
    Replaces the contents of the specified locations in virtual
    memory and displays the new contents.

    The DEPOSIT command, together with the EXAMINE command, aids
    in debugging programs interactively. The DCL command DEPOSIT is
    similar to the DEPOSIT command of the OpenVMS Debugger.

    Requires user-mode read (R) and write (W) access to the virtual
    memory location whose contents you wish to change.

    Format

      DEPOSIT  location=data[,...]

1  –  Parameters

 location

    Specifies the starting virtual address or range of virtual
    addresses (where the second address is larger than the first)
    whose contents are to be changed. A location can be any valid
    integer expression containing an integer value, a symbol
    name, a lexical function, or a combination of these entities.
    Radix qualifiers determine the radix in which the address is
    interpreted; hexadecimal is the initial default radix. Symbol
    names are always interpreted in the radix in which they were
    defined. The radix operators %X, %D, or %O can precede the
    location. A hexadecimal value must begin with a number (or be
    preceded by %X).

    The specified location must be within the virtual address space
    of the image currently running in the process.

    The DEPOSIT and EXAMINE commands maintain a pointer to a current
    memory location. The DEPOSIT command sets this pointer to the
    byte following the last byte modified; you can refer to this
    pointer by using a period (.)  in subsequent EXAMINE and DEPOSIT
    commands. If the DEPOSIT command cannot deposit the specified
    data, the pointer does not change. The EXAMINE command does not
    change the value of the pointer.

 data[,...]

    Specifies the data to be deposited into the specified locations.
    By default, the data is assumed to be in hexadecimal format;
    it is then converted to binary format and is written into the
    specified location.

    If you specify more than one item, separate the items with
    commas (,).  The DEPOSIT command writes the data in consecutive
    locations, beginning with the address specified.

    When non-ASCII data is deposited, you can specify each item of
    data using any valid integer expression.

    When ASCII data is deposited, only one item of data is allowed.
    All characters to the right of the equal sign are considered
    to be part of a single string. The characters are converted to
    uppercase, and all spaces are compressed.

2  –  Qualifiers

2.1    /ASCII

    Indicates that the specified data is ASCII.

    Only one data item is allowed; all characters to the right
    of the equal sign (=)  are considered to be part of a single
    string. Unless they are enclosed within quotation marks (" "),
    characters are converted to uppercase and multiple spaces are
    compressed to a single space before the data is written in
    memory.

    The DEPOSIT command converts the data to its binary equivalent
    before placing it in virtual memory. When you specify /ASCII,
    or when ASCII mode is the default, the location you specify is
    assumed to be hexadecimal.

2.2    /BYTE

    Requests that data be deposited 1 byte at a time.

2.3    /DECIMAL

    Indicates that the data is decimal. The DEPOSIT command converts
    the data to its binary equivalent before placing it in virtual
    memory.

2.4    /HEXADECIMAL

    Indicates that the data is hexadecimal. The DEPOSIT command
    converts the data to its binary equivalent before placing it
    in virtual memory.

2.5    /LONGWORD

    Requests that data be deposited a longword at a time.

2.6    /OCTAL

    Indicates that the data is octal. The DEPOSIT command converts
    the data to its binary equivalent before placing it in virtual
    memory.

2.7    /WORD

    Requests that the data be deposited one word at a time.

3  –  Examples

    1.$ RUN MYPROG
         .
         .
         .

 <Ctrl/Y>

      $ EXAMINE %D2145876444
      7FE779DC:  0000000000
      $ DEPOSIT .=17
      7FE779DC:  0000000017
      $ CONTINUE

      The RUN command executes the image MYPROG.EXE; subsequently,
      Ctrl/Y interrupts the program. Assuming that the initial
      defaults of the /HEXADECIMAL and /LONGWORD qualifiers are in
      effect, the DEPOSIT command places a longword value 17 (23
      decimal) in virtual memory location 2145876444.

      Because the EXAMINE command sets up a pointer to the current
      memory location, which in this case is virtual address
      2145876444, you can refer to this location with a period (.)
      in the DEPOSIT command.

      The CONTINUE command resumes execution of the image.

    2.$ DEPOSIT/ASCII   2C00=FILE: NAME: TYPE:
      00002C00:  FILE: NAME: TYPE:...

      In this example, the DEPOSIT command deposits character data
      at hexadecimal location 2C00 and displays the contents of
      the location after modifying it. Because the current default
      length is a longword, the response from the DEPOSIT command
      displays full longwords. The ellipsis ( . . . ) indicates that
      the remainder of the last longword of data contains information
      that was not modified by the DEPOSIT command.

    3.$ EXAMINE 9C0             !  Look at Hex location 9C0
      000009C0:  8C037DB3
      $ DEPOSIT .=0             !  Deposit longword of 0
      000009C0:  00000000
      $ DEPOSIT/BYTE .=1        !  Put 1 byte at next location
      000009C4:  01
      $ DEPOSIT .+2=55          !  Deposit 55 next
      000009C7:  55
      $ DEPOSIT/LONG .=0C,0D,0E !  Deposit longwords
      000009C8:  0000000C 0000000D 0000000E

      The sequence of DEPOSIT commands in the above example
      illustrates how the DEPOSIT command changes the current
      position pointer. Note that after you specify the /BYTE
      qualifier, all data is deposited and displayed in bytes, until
      the /LONGWORD qualifier restores the system default.

    4.$ BASE=%X200               !  Define a base address
      $ LIST=BASE+%X40           !  Define offset from base
      $ DEPOSIT/DECIMAL LIST=1,22,333,4444
      00000240:  00000001 00000022 00000333 00004444
      $ EXAMINE/HEX LIST:LIST+0C !  Display results in hex
      00000240:  00000001 00000016 0000014D 0000115C

      The assignment statements define a base address in hexadecimal
      and a label at a hexadecimal offset from the base address.
      The DEPOSIT command reads the list of values and deposits each
      value into a longword, beginning at the specified location. The
      EXAMINE command requests a hexadecimal display of these values.
Close Help