Command POSN
 
Description Position Cursor X,Y or +X or +Y or X, Y, Name/Page.
The cursor can be positioned on the display using absolute co-ordinates or moved in relation to it's current position by using +/- offset values. The origin is located at the top left of the screen.
 
Re-position a previously placed entity by specifying the new coo-ordinates and it's name.
This can be useful for indicator bars, simple movement animations and moving text.

It may be necessary to place the cursor on another page to create a new entity.
 
Syntax/Parameters POSN(X,Y,Name/Page)
 
Options Move multiple entities at the same time - v47.12
Multiple entities can be moved at the same time POSN(x0,y0,Ent1,Ent2,Ent3,Ent4,...);
POSN(+10,+10,Img1,keyup,keydn); moves both image and keys 10 pixels in X and Y direction
This is useful for slider bars where the bar image, key up and key down objects move in sync.

Move with update=changed - v49.19
Movement of entities POSN(x,y,ent); when update=changed supported.

POSN in DRAW, IMG, TEXT and KEY Commands-vv49.37
* Added initial positioning to commands:
a) DRAW(name,width,style,x,y);
DRAW(name,width,height,style,x,y);
DRAW(name,width,height,start,arc,style,x,y);
b) IMG(name,src,style,x,y);
c) TEXT(name,text,style,x,y);
d) KEY(name,func,width,height,style,x,y);
KEY(name,downFunc,upFunc,width,height,style,x,y);
KEY(name,downFunc,upFunc,repFunc,width,height,style,x,y);
 
Example POSN(+25,+0);  moves the cursor 25 pixels to the right.
POSN(236,48); absolute position of x=236, y=48.
POSN(24,56,CalcPage); position cursor on calc page at x=24, y=56.
POSN(VarX,Vary); use variables with absolute values to control position of cursor
POSN(VarX,Vary,VertBar); use variables to move an entity - vertical bar
POSN(TOUCHX,TOUCHY,MyRectCursor); move a cursor to the contact point on the screen. 

Example
STYLE(stPage, PAGE) { back=black; update=changed; }
STYLE(stCircFg, DRAW) { type=Circle; col=white; }
STYLE(stCircBg, stCircFg) { col=black; }

VAR(x,0,S16);
VAR(y,0,S16);

PAGE(pgMain, stPage)
{
POSN(x,y);
DRAW(circBg, 60, 60, stCircBg);
DRAW(circFg, 60, 60, stCircFg);
LOOP(lpMain, FOREVER)
{
POSN(x,y,circBg);
LOAD(x,TOUCHX);
LOAD(y,TOUCHY);
POSN(x,y,circFg);;
}
}
SHOW(pgMain);

Note: It is advised not to move entities unless necessary as the rendering times are greatly increase