Peek

Gets the value of an arbitrary type at an address in memory

Syntax
   Declare Function Peek ( ByVal address As Any Ptr ) ByRef As UByte
   Declare Function Peek ( datatype, ByVal address As Any Ptr ) ByRef As 
   datatype

Usage
   Peek( [ datatype, ] address )

Parameters
   address
      The address in memory to get the value from.
   datatype
      The type of value to get. If omitted, UByte is assumed.

Description
   This procedure returns a reference to the value in memory given by a 
   memory address, and is equivalent to:
      *cast(ubyte ptr, address)
         or
      *cast(datatype ptr, address)
   thus this keyword can also be used to assign a value to a memory 
   location, similarly to Poke.

   Note: When using Peek, the -exx compiler option does not add code for 
   null-pointer checking (no nullity test on the value of address).

Example
   Dim i As Integer, p As Integer Ptr
   p = @i

   Poke Integer, p, 420
   Print Peek(Integer, p)

   will produce the output:

   420

Differences from QB
   * Peek did not support the datatype parameter in QB, and could only 
     return individual bytes.
   * Peek returns a reference in FB, so can be used to set the memory 
     contents of the address, like with Operator * (Value Of).
   * DEF SEG isn't needed anymore because the address space is 32-bit flat 
     in FreeBASIC.

See also
   * Poke
   * Operator * (Value Of)
