New graphics instructions : --------------------------- R Move dx,dy : moves relative to the graphics cursor does the same thing as: Gr Locate Xgr+dx,Ygr+dy but is shorter and faster... R Draw dx,dy : draw a line relative to the graphics cursor does the same thing as: Draw Xgr,Ygr to Xgr+dx,Ygr+dy but is shorter and faster... R Box dx,dy : draw a box relative to the graphics cursor. does the same thing as: Box Xgr,Ygr to Xgr+dx,Ygr+dy but is shorter and faster... R Bar dx,dy : draws a filled bar relative to the graphics cursor. does the same thing as: Bar Xgr,Ygr to Xgr+dx,Ygr+dy. but is shorter and faster... F Draw X,Y : Does the same thing as Draw To X,Y. But it is up to 200% faster than the original Draw routine ! (1-2 bitplane screen) The Set Line MASK command has no effect when using F Draw, this will be corrected in the next version ! Hmm... F Draw X,Y To X1,Y1 : Does the same thing as Draw X,Y To X1,Y1. But it is up to 200% faster than the original Draw routine ! (2 bitplane screen) The Set Line MASK command has no effect when using F Draw, this will be corrected in the next version ! Hmm... Line 3d X,Y,Z To X1,Y1,Z1 : Will draw a line from (X,Y,Z) to (X1,Y1,Z1) in three- dimensional space. To do this I assume a fixed eye position. Further I take the eye position as the origin. To form a perspective view, we need to define a "vanishing point", a theoritical point at which all diminishing parallel lines meet. If you were standing on the white lines in the middle of a straight road and you looked along th road towards the horizon, the vanishing point would be where the white line and the two road edges meet. By taking this eye position, our perspective calculations can be simplified to : X=X*D/Z and Y=Y*D/Z... Where D is the distance between the eye position and the picture plane (the screen). The value I use for D=128. So the greater the value of 'Z' the further away the object and therefore the smaller the resultant 'X' and 'Y' values. This implies that objects appear smaller at a distance ! Eye 3d X,Y : This instruction changes the "point of view" in opposite to the picture plane. If not initialised when using the Line 3d instruction X will have a value of 160 and Y a value of 100. F Plot X,Y,COLOUR : This instruction does the same thing as the normal AMOS Plot instruction, except that it is 2 to 3 times faster than the standard AMOS version and that you must give the COLOUR parameter ! F Plot is now fully compatible with the AMOS double buffering process ! R=F Point(X,Y) : This function does the same thing as the normal AMOS Point instruction, except that it is 2 to 3 times faster than the standard AMOS version ! F Circle X,Y,Radius,Colour : Does the same thing as the normal Circle command but this new version is up to 550 % (for big circles) faster than the ori- ginal AMOS BASIC version ! For smaller circles you get a speed factor lying around 250 to 400 % ... All parameters are the same as in the normal Circle command except that you must give a colour ( C ) parameter... At this point you can only use this command in LOWRES screens or HIRES+LACED screens. Try it in a normal HIRES screen and you'll see what I'm talking about... There is a known bug in this command, do not use a radius above 180...there will be no crash, but the result is definitely not a circle !