Poke

Assigns a value to a location in memory.

Syntax
	KeyPgDeclareDeclare KeyPgSubSub Poke ( KeyPgByvalByVal address KeyPgAsAs KeyPgAnyAny KeyPgPtrPtr, KeyPgByrefByRef value KeyPgAsAs KeyPgUbyteUByte )
	KeyPgDeclareDeclare KeyPgSubSub Poke ( datatype, KeyPgByvalByVal address KeyPgAsAs KeyPgAnyAny KeyPgPtrPtr, KeyPgByrefByRef value KeyPgAsAs 
	datatype )

Usage
	Poke [ datatype, ] address, value

Parameters
	datatype
		The type of data at the specified address. If omitted, KeyPgUbyteUByte is 
		assumed.
	address
		The location in memory to assign to.
	value
		The value to assign.

Description
	Poke assigns a value to a location in memory. It is equivalent to
		*cast(ubyte ptr, address) = value
			or
		*cast(datatype ptr, address) = value

	When datatype is a user-defined type, Poke assigns value using the 
	type's KeyPgOpLetOperator Let.

	Note: When using Poke, the CompilerOptexx-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
	* Only the byte form were supported in QB.
	* DEF SEG isn't needed anymore because the address space is 32-bit flat 
	  in FreeBASIC.

See also
	* KeyPgPeekPeek

