File: HELP03.HF of Tape: Sources/Focal/s4
(Source file text) 


***** COMMANDS:

MOST COMMANDS MUST BE FOLLOWED BY A SPACE

*** DIRECT COMMANDS ARE TYPED WITHOUT LINE NUMBERS AND FOCAL
EXECUTES THEM AS SOON AS THE RETURN OR THE ALT MODE/ESCAPE
BUTTON IS HIT---FOR EXAMPLE:

#TYPE 3+4		(CAUSES FOCAL TO TYPE A 7)

			(OR SEVERAL COMMANDS MAY BE GIVEN IN
			SEQUENCE:)

#SET X=3
#SET Y=2
#TYPE 3+X+Y,!
	    8.0000
#TYPE X+Y-4$     1.0000
#
*** INDIRECT COMMANDS ARE USED FOR LONGER PROGRAMS. THEY
ARE TYPED FOLLOWING LINE NUMBERS AND MAY BE EXECUTED BY A
DIRECT 'GO':

#2.1 SET X=3
#2.2 SET Y=2
#2.3 TYPE 3+X+Y,!
#GO
    8.0000
#GO$     8.0000
#

*** THE COMMANDS:

EXAMPLES OF EACH ARE GIVEN FOLLOWED BY THE GENERAL FORM IN
WHICH:

	<REQUIRED TERMS> ARE ENCLOSED IN ANGLE BRACKETS.
	[OPTIONAL TERMS] ARE ENCLOSED IN SQUARE BRACKETS.
	(COMMENTS) ARE ENCLOSED IN PARENTHESES.
	A, B, C, X, Y, AND Z ARE VARIABLES.
	L1, L2 AND L3 ARE LINE NUMBERS.
	G1 STANDS FOR A GROUP OR LINE NUMBER
	IN MOST CASES, GROUP AND LINE NUMBERS MAY BE REPLACED
	BY VARIABLES.

*** ELEMENTARY COMMANDS:

ASK Y		(EXPECTS A VALUE TO BE INPUT FOR Y)
A Z		(A IS THE ABBREVIATION FOR 'ASK' --- ALL
		 COMMANDS HAVE SINGLE LETTER ABBREVIATIONS)
A B2,X,NUMBER 
A "HOW MANY?", M (TYPES 'HOW MANY' THEN SETS M = TO THE
		 RESPONSE)
ASK A,B,C,	(ALLOWS THREE VARIABLES TO BE GIVEN VALUES)
		(SPACE, COMMA OR CARRIAGE RETURN WILL TER-
		 MINATE EACH NUMBER INPUT; TYPE A '_' OR ^U
		 TO ERASE A PARTIALLY TYPED NUMBER --- IT MAY
		 THEN BE RETYPED.)
#SET A=PI	ALT/ESCAPE LEAVES THE VARIABLE WITH ITS 
#ASK A$$    3.1416	FORMER VALUE AND ECHOES IT
#
(3 COMMAND DECODER OPTIONS PROVIDE AUTOMATIC PRINTING OF A
':', '?' OR BELL, BY THE 'ASK' COMMAND)

** ASK ["PRINT OUT IN QUOTES"] X [,Y,Z]


COMMENT SQRT	(COMMENTS ARE USED TO TELL ABOUT PROGRAM)
CONTINUE	(DUMMY LINE)
C PRINT ROUTINE 

** C (LINES BEGINNING WITH A 'C' WILL BE IGNORED)


DO 7.24		(TELLS FOCAL TO EXECUTE LINE 7.24 THEN RETURN
D 4.48		 TO THE COMMAND FOLLOWING THE 'DO')
DO 7$		(EXECUTES GROUP 7, AND STAYS ON THE SAME LINE)
D G1;D 7.6	(EXECUTES LINE (OR GROUP) G1 THEN LINE 7.6)


** DO [LINE OR GROUP NUMBER]


ERASE 2.17	(DELETES LINE 2.17 FROM INDIRECT PROGRAM)
E 3		(DELETES ANY GROUP 3 LINES --- 3.01 THROUGH
		3.99)
ERASE		(ZEROES ALL VARIABLES)
ERASE ALL	(ERASES ENTIRE INDIRECT PROGRAM)

** ERASE [LINE OR GROUP NUMBER]  (ZEROES VARIABLES IF NO 
   NUMBER GIVEN)


FOR P=1,7;TYPE 3	(OUTPUTS A '3' SEVEN TIMES)
FOR J=1,5;DO 17.1$	(DOES LINE 17.1, FIVE TIMES)
F X=2,-2,-8;T X/5,!	(OUTPUTS .4 0 -.4 -.8 -1.2 -1.6
FOR Z=1,Y;DO 7		(DOES GROUP 7, Y TIMES)

** FOR X=E1[,E2],E3;[COMMAND TO BE REPEATED]
			('FOR' COMMANDS REPEAT AND ADD 1 (OR 
			'E2') TO 'E1' EACH TIME; THEN GO TO 
			NEXT LINE WHEN 'E1' EXCEEDS 'E3' IF E2
			POSITIVE OR WHEN E1 IS LESS THAN E3
			WHEN E2 NEGATIVE


GO 8.17	(STARTS EXECUTING PROGRAM AT LINE 8.17)
GOTO 3.1	(STARTS EXECUTING PROGRAM AT LINE 3.1)
GO		(STARTS EXECUTING PROGRAM AT LOWEST LINE)
G$		(SAME BUT STAYS ON THE SAME LINE)
GO ?		('TRACE FEATURE' -- PRINTS PROGRAM DURING 
		EXECUTION)
G X		(STARTS EXECUTING PROGRAM AT LINE X)

** GO [LINE NUMBER]   (STARTS EXECUTING INDIRECT PROGRAM AT 
		      LINE L1)


I (H-5)1.3,1.5,1.7	('IF' CHECKS THE VALUE INSIDE THE
			PARENTHESES)
IF (Y)2.7,1.2,L1	(FOCAL GOES TO LINE 2.7,1.2 OR L1 IF
			Y IS -, 0, OR +)
I (B-3)2.8,7.9;		(GOES TO NEXT COMMAND IF (B-3) IS
			POSITIVE)
I (Z)2.7;T 21		(IF Z IS LESS THAN 0 --- THEN 2.7;
			OTHERWISE 'TYPE 21')
I (G)2.1,L1,2.4		IF G=0 THEN GOES TO LINE L1)

** IF (E1)L1[,L2,L3]  (NEXT EXECUTES LINE L1, L2, OR L3 DE-
   PENDING ON WHETHER E1 IS -, 0, OR +)

** LOGICAL IF'S

#I (A,<,B)1.8;T "<"$<	(WHEN A .LT. B THIS TYPES < ,
#			OTHERWISE GOES TO LINE 1.8)
I (X,=,0)1.5;T "0"	(TYPES '0' WHEN X=0)
I (X,>=,Y)6.9,L2	(GOES TO L2 WHEN X .GE. Y,TO 6.9
			OTHERWISE)

** IF (E1,REL,E2)L1[,L2]  EXECUTE L2 (OR END OF LINE)
			WHEN CONDITION IS MET. (REL:RELATIONAL
			OPERATOR: <,>,=,<=,>=,<>   <>:.NOT.)


'MODIFY  3.72'  FOLLOWED BY A 'RETURN' OR ALT/ESCAPE WILL
CAUSE 03.72 TO BE TYPED, TYPING THE LETTER 'X' WILL CAUSE
THE LINE TO BE TYPED THROUGH ITS FIRST 'X'.  YOU MAY THEN:

 1) TYPE IN REST OF REVISED LINE AND HIT 'RETURN'
 2) USE 'RUB OUT' TO ERASE SINGLE CHARACTERS OR THE LINE
	 NUMBER (IN THE LATTER CASE RETYPE NEW LINE NUMBER)
 3) HIT 'LINE FEED' TO KEEP REMAINDER OF OLD LINE
 4) HIT CTRL/K TO GO TO NEXT OCCURRENCE OF 'X'
 5) HIT CTRL/BELL TO CHANGE SEARCH CHARACTER; THEN HIT NEW CHARACTER
 6) HIT '_' OR ^U TO DELETE LINE OVER TO LEFT MARGIN

*MODIFY L1	(LET L1=1.23)
01.23 C		('C' IS THE PARTICULAR SEARCH CHARACTER CHOSEN)

Q		(ABBREVIATION)

*QUIT		(TERMINATES PROGRAM EXECUTION)
		(AND SOMETIMES RETURNS TO THE KM)


R		(ABBREVIATION)

*RETURN		(ALLOWS ESCAPE FROM A 'DO LOOP' TO THE
		COMMAND FOLLOWING THE 'DO' OR 'LIBRARY GOSUB')


SET Y=37$	(CAUSES 'Y' TO TAKE THE VALUE 37)
S A=110/P+32	(CAUSES 'A' TO ASSUME THE VALUE OF 110/P+32)
S Y=Y+1		(SETS THE NEW VALUE OF Y = 1 PLUS OLD VALUE)
S Z=$;T Z	(PERMITS TYPING VALUE OF TTY: INPUT BUFFER)
S #=0		(ONLY WAY TO ZERO PROTECTED VARIABLE '#')

*SET Y=<NUMBER,VARIABLE OR EXPRESSION>


TYPE 3		(OUTPUTS A 3 ON THE TELEPRINTER OR
		 OTHER OUTPUT DEVICE)
T 3$   3.000	(EXAMPLE OF THE USE OF ALT/ESCAPE)
#
T X/Y-1		(OUTPUTS THE VALUE OF THE EXPRESSION X/Y-1)
T "A"!"B"!"C"!	(OUTPUTS 'A', 'B' AND 'C' IN A VERTICAL ROW)
T !		(OUTPUTS A RETURN/LINE FEED)
T &,'		(TYPES A FORMFEED FOLLOWED BY A LINEFEED)
T #		(RESETS THE LINE/PAGE COUNTER TO ZERO)
T (#)		(OUTPUTS VALUE OF INTERRUPT FLAG '#')
T "ANS: ",26+5	(OUTPUTS 'ANS:  31')
T :8,"/",:8,"\"	(OUTPUTS 'X' IN POSITION 8 ON LINE)
T $		(OUTPUTS THE SYMBOL TABLE)
T %10.09	(SETS THE OUTPUT FORMAT TO ALLOW UP TO 10
		 DIGITS TO BE PRINTED, OF WHICH 9 MAY BE
		 DECIMAL PLACES)
T %		(FORMATS OUTPUT IN POWERS-OF-TEN NOTATION)
T %+3		(FLOATING OUTPUT WITH 3 SIGNIFICANT PLACES)
T %\X		('\' DELETES LEADING SPACE)
T %$3.02,9	(TYPES  $  9.00 )
T %*7.02,-33	(TYPES **-33.00 )
(A CD OPTION PROVIDES AUTOMATIC PRINTING OF AN '=' OR ':' BY
		THE'TYPE' COMMAND)

*TYPE [NUMBERS, VARIABLES, EXPRESSIONS, TEXT IN QUOTES
		&,', !,#,:,$ OR %]


WRITE 2.27	(OUTPUTS LINE 2.27 OF THE INDIRECT PROGRAM)
W 2		(OUTPUTS GROUP 2)
WRITE ALL	(OUTPUTS ENTIRE INDIRECT PROGRAM)
W		(SAME)
W X		(OUTTPUTS GROUP OR LINE GIVEN BY 'X')

*WRITE [GROUP OR LINE NUMBER]    (LISTS PROGRAM)