that mathematical expressions could use (), [], and <> interchangeably in matched pairs to establish precedence. For example, the following is a valid expression: 01.30 SET A=<10*[5+1]*(1+5)> All of these are the same level of precedence and read left-to-right when at the same level, so this statement will be evaluated [], then (), then <>, to produce 360. The language contained the following built-in functions: – Absolute value – Arctangent – Cosine of argument in radians – Natural base to the power of the argument – Integer part of the argument – Naperian log – Random number – Sign of the argument; FSGN(0)=1 in FOCAL-69, but FSGN(0)=0 in FOCAL-71 and later versions – Sine of an angle given in radians – Square root Other functions FOCAL also included several special-purpose functions: took two values and plotted a dot on the screen of graphical terminals read a value from a numbered analog input and returned an integer value Environment commands Running programs FOCAL used in the editor to start a program. However, a rule-of-thumb was to shorten this to . This is the equivalent of in BASIC. can also be used in the editor to start execution at a specified line. Editing commands New lines are entered into a program by simply starting the command with a line number. The editing commands were ERASE (abbreviation E), MODIFY (abbreviation M), and WRITE (abbreviation W): ERASE – zero out all variables; this is sometimes used in programs to reset them ERASE line number – delete the statement at a specified line ERASE group number – delete all statements in a specified group ERASE ALL – delete an entire program MODIFY line number – allow editing a specified line WRITE line number – display the statement at a specified line WRITE group number – display all statements in a specified group WRITE ALL – display a specified program File commands The file command was OPEN (abbreviation O): – prepare to read from the start of a file – prepare to write from the start of a file – resume input – resume output – output the buffer and close a file Library commands FOCAL included the ability to manage collections of FOCAL programs as a code library. Programs could call other programs in a chain fashion using LIBRARY CALL, or call a single subroutine in another program using LIBRARY GOSUB. Program names could be