Welcome to Mike Lehman's HotTEA

Documentation current for version 2.0
June 26, 1996


----------------------------
	HotTEA Statements
----------------------------

	{} indicates an optional keyword

	All statements can be preceeded by a label followed by a colon
	(see some examples below)

	Comments begin with a single quote and
	continue to the end of the line

	{LET} <var> = <expr>

	GOTO <label>
	GO TO <label>
	IF <expr> {THEN} {CALL label|GOTO label|{LET}<var>=<expr>}
	
	ELSE
	
	ENDIF
	END IF

	SUB <name>
	ENDSUB
	END SUB

'
' these are sample comments
' the following is a sample label attached
' to the END statement

quitit:	END		

	FOR <var> = <expr> TO <expr> {STEP <expr>}
	NEXT <var>

	PRINT <expr>
	PRINT <expr>,<EXPR> (tabs between)
	PRINT <expr>;<EXPR>	(no space between)
	CALL <subname>
	RETURN

**** New For V2.0 ****

	PenColor r,g,b
	PenWidth n
	DrawLine x1,y1,x2,y2
	DrawRect l,t,w,h{,FILLED}
	(These draw in PenColor with PenWidth size lines)

	SetFont <font-name>
	TextColor r,g,b
	DrawText <text>,x,y

	Trace {ON | OFF}
	This causes the HotTEA source code to be printed
	on the Java console as it executes

----------------------------
    Built-in functions:
----------------------------

	ABS(<expr>)
		take absolute value

	handle = ANIMATE(l,t,w,h,url,filename,rate,numFrames,autoStart)
		load (and optionally play) an animation made from
		a single .GIF/.JPG image consisting of a strip of
		same-sized rectangles (see teapots3.gif as an example)

	handle = IMAGE(url,file)
		load an image from your server.  Note: this does
		not display the image.  Use MOVE() to put it in its place

	SHOW(handle)
		display an animation or an image

	HIDE(handle)
		hide an animation or an image

	MOVE(handle,x,y)
		move an animation or image to a new location

	START(handle)
		start an animation or a sound

	STOP(handle)
		stop an animation or a sound

	INT(<expr>)
	LEFT(<expr>,<len-expr>)
	RIGHT(<expr>,<len-expr>)
	MID(<expr>,<start>,<len-expr>)

	handle = SOUND(url,file,autoStart)
		load a sound from your server.  If autoStart is <> 0 then
		the sound is automatically played


	INRECT(x,y,l,t,w,h) returns non-zero if x,y in rect l,t,l+w,t+h
		Used primarily in the MOUSE_CLICK subroutine to determine
		if the mouse was clicked in a rectangle.

	SHOWURL(url,name)
		Used only within NetScape
		name can be name of frame or title of window
		(use '_self' to keep using the same window or frame)
		e.g. j=showurl('http://foo.html','_self')

**** New for V2.0 ****
	RND()
		Returns a random number between 0.0 and 1.0

----------------------------
	Operators
----------------------------
	+ add or string concatenate
	- subtract or unary minus
	* multiply
	/ divide
	^ take to the power
	% modulo divide
	! string concatentate

	= 	equals
	<>	not equals
	>	greater than
	<	less than
	>=	greater than or equal
	<=	less than or equal

----------------------------
	Notes
----------------------------
ALL variables are GLOBAL
NO parameter passing in level 1
All expressions are either number or strings
dependent upon usage.

**** New for V2.0 ****
	
'Virtually Real Arrays'

You can now use a[<expr>] notation.  This translates
at run-time to global variable names (e.g. a[3]
translates to A#3 as a variable name.  Since you can't
use # in a variable name there is no way your variable
names can conflict with the 'array element' names.

Multiple dimensions are allowed as are string 'subscripts'
(e.g. A["MIKE"] translates to A#MIKE, and var[3][5]
translates to var#3#5)


Good LUCK and let us know what you think.

Cereus Design Corp.
