Layout of 'ptype':
==================

'ptype' requires 16 bits to define a variable, and can be regarded as
two bytes:

upper one(uptype)	:= litl<<6!rout<<4!nam<<2!arr
lower one(ptype)	:= prec<<4!type

Often (e.g. in 'expop') only the lower part is required, as functions
etc. are prefetched and stacked.

litl		:= 1=const,2=external,3=extrinsic(or dynamic), 0=none of these
rout		:= 1 for routine or fn or map, =0 none of these
nam		:= 2 for maps and 'refrefs',=1 for names ,=0 directly addressed
arr		:= 1 for arrays =0 scalars
prec		   is descriptor size code for each precision:
		:= 0 bits, =3 bytes, =5 words, =6 d-wrds, =7,quad wrds
type		:= the variable type 
		:=0 (type general), =1 integer, =2 real, =3 record
		:=4 (recordformat), =5 string,  =6 label/switch.
		:=7 not set

Values for 'flag':
==================

0		Constant < 18 bits
1		Long constant
2		Name
3		128 bit constant
4		Conditional expression
5		Unassigned
6		Unassigned
7		I-R in a stack frame
8		I-R that has been stacked
9		I-R in a register
