Assembler instructions often take one or more arguments, separated by
commas. Here is a guide to the format of these arguments:


	@	current top of stack. If used as a source, the stack is
		popped. If used as a destination, the stack is pushed.
	SP+N	Stack frame pointer + N
	$NN	NN is an immediate numeric value (int or real).
	$name	Immediate type. $name equates to an object of type "name"
		but filled with zeroes.
	name	A type called "name".
	_word	"word" is a symbol (variable, label, function).
		This translates to the base address for that variable.

Assembler Instructions
======================

append A,S,N

	Append a scalar to an array. The length of the array is increased
	by one.
		A = Array descriptor
		S = Source data
		N = Number of bytes to copy.

array T,D,dim1 [,dim2...]

	Declares an array of type T. The array descriptor is stored
	at location D. Args dim1 etc give initialisers for each dimension.

fetch E,A,D,O,N

	Fetches a fragment of one array element. Arguments are:
		E = Element number
		A = Array descriptor
		D = Destination address for retrieved data
		O = Offset from start of array element
		N = Number of bytes to fetch from offset O.

push V [, N]

	Pushes value V onto top of stack. If V is not an immediate value
	then N is required to specify the number of bytes to push from
	address V.

put E,A,S,O,N

	Puts a scalar value into an array. Arguments are the same as fetch
	with the exception that S gives the source address for the data.
	This will cause an array bounds trap if the element is past the current
	end of the array.

store S,D,N

	Stores a scalar value.

	S = source
	D = destination
	N = Number of bytes to copy.
