reduced to a single Group 3 first tests to see if the fuel has run out, and jumps to group 4 if it has. Then it tests if the 10-second period in has expired and, if so, loops back to print everything out again, which has the side-effect of resetting and to 10. Line tests to see if the amount of fuel burned this period, , will reduce the mass of the vehicle as a whole, , beyond the empty weight, N. If not, it moves on, if it will, it instead sets the loop timer to the amount of time the remaining fuel will burn, thus ending the loop early. In either case, it calls group 9 to update the velocity and position. It then loops over groups 7, 8 and 9 until the value of I converges. When the 10-second timer runs out, or it reaches the end due to the fuel test in line or the altitude test in . In the latter cases, it will jump to group 4 and fall through to group 5, or jump to group 5 directly. Group 5 types the end-of-game results and then asks the user if they'd like to try again. If so, it jumps to to clear out all values and print the headers again, if not if falls through to and uits. See also JOSS, the Rand language that inspired FOCAL MUMPS, a data-manipulation language based on JOSS and FOCAL concepts References Bibliography External links FOCAL source code, FOCAL source for several programs, including Lunar Lander, Sumer Game, and others DEC's FOCAL 1969 Promotional Booklet The Computer History Simulation Project (Focal is available as a free download here) ftp://www.cozx.com/pub/langs/focal.tar.gz C-source version that runs under several operating systems, including Linux the C-source for a modern DOS version suitable for teaching Abramov V.A. Dialogue language FOCAL (in Russian) Osetinsky L.G. FOCAL for mini-computers (in Russian) Фокал снаружи и изнутри. (пишется) – FOCAL outside and inside. (in progress) (in Russian) Файл справки к фокалу-1б – Help file for FOCAL-1B (in Russian) JOSS programming language family Digital Equipment Corporation