Standard BASIC provides several commonly used algebraic and string functions which may be called from any program without further definition. In the following list, X arid Y stand for any numerical expressions, I and J stand for integers (or expressions whose values are always integers), and X$ and Y$ stand for string expressions.

Function Call Format

ABS ABS(X)

Returns absolute value of expression X. ABS(X)=X if X>0, 0 if X is 0 and -X if X<O.

ASC ASC(X$)

Returns the ASCII number of the first character of the string X$ (you may use a string variable or a string). ASCII numbers are listed in Appendix G.

ATN ATN(X)

Returns the arctangent (inverse hyperbolic tangent) of X. The result is in radians in the range -pi/2 to pi/2.

CHR$ CHR$(I)

Returns the character with ASCII code I. Either a string of one element or a control function. ASCII codes are in Appendix G.

COS COS(X)

The cosine function: returns cos(X). X must be in radians.

EXP EXP(X)

Returns e to the power X. X must be <=87.3365.

FRE FRE(0)

Returns number of bytes in memory not being used by Standard BASIC. If argument is a string, returns number of free bytes in string space. Use this statement to look at it: PRINT FRE(0) or PRINT FRE(X$).

INP INP(I)

Reads a byte from port I.

INT INT(X)

Returns the largest integer <=X.

LEFT$ LEFT$(X$,I)

Returns leftmost I characters of string X$.

LEN LEN(X$)

Returns length of string X$. Non-printing characters and blanks are counted.

LOG LOG(X)

Returns natural log of X; X>O.

MID$ MID$(X$,I|,J|)

Without J, returns rightmost characters from X$ beginning with the Ith character. If I>LEN(X$), MID$ returns the null string (that is, one with no characters). 0<I< 255. With 3 arguments, returns a string of length J of characters from X$ beginning with the Ith character. If J is greater than the number of characters in X$ to the right of I, MID$ returns the rest of the string. 0<=J<=255.

RND RND(X)

Returns a random number between 0 and 1. X<0 always produces one particular number. X>0 gives a new number each time. X=0 gives the last number returned.

PEEK PEEK(l)

Returns the byte, in the range 0 to 255, in location I (decimal), where I<32768.

POS POS(I)

Returns present column position of terminal's print head. Leftmost position=0.

RIGHT$ RIGHT$(X$,I)

Returns rightmost I characters of string X$. If I>=LEN(X$), returns X$.

SGN SGN(X)

Returns the sign of X. If X>0 returns 1, if X=0 returns 0, if X<0 returns -1.

SIN SIN(X)

Returns the sine of the value of X in radians. (COS (X)=SIN(X+pi/2).)

SPC SPC(I)

Prints I blanks on the terminal, 0<=I<=255. You **must not **leave
a space between SPC and the parenthesis (or the Sorcerer will think that
SPC is a variable, because the reserved word is SPC(.)

SQR SQR(X)

Returns square root of X. X must be >=0.

STR$ STR$(X)

Returns string representation of value of X.

TAB TAB(I)

Spaces to position I on the terminal. Space 0 is the leftmost space, 63
the rightmost. If the carriage is already beyond space I, TAB has no
effect. (Use SPC to make a **relative **move.) May only be used in
PRINT statements. Just as with SPC, make sure to leave no space between
TAB and the parenthesis, or the Sorcerer will think TAB is a variable,
because the reserved word is TAB(.

TAN TAN(X)

Returns tangent (X). X must be in radians.

USR USR(X)

Calls the user's machine language subroutine with argument X. See Chapter 12, THE USR FUNCTION.

VAL VAL(X$)

Returns numerical value of string X$. If first character of X$ is not +, -, or a digit, VAL(X$)=0.