Research V3 development
authorKen Thompson <ken@research.uucp>
Thu, 8 Feb 1973 19:28:04 +0000 (14:28 -0500)
committerKen Thompson <ken@research.uucp>
Thu, 8 Feb 1973 19:28:04 +0000 (14:28 -0500)
Work on file man/man1/bas.1

Synthesized-from: v3

man/man1/bas.1 [new file with mode: 0644]

diff --git a/man/man1/bas.1 b/man/man1/bas.1
new file mode 100644 (file)
index 0000000..2bdaa5b
--- /dev/null
@@ -0,0 +1,312 @@
+.pa 1
+.he 'BAS (I)'1/15/73'BAS (I)'
+.ti 0
+NAME           bas -- basic
+.sp
+.ti 0
+SYNOPSIS       bas\b\b\b___ [ file ]
+.sp
+.ti 0
+DESCRIPTION    bas\b\b\b___
+is a dialect of basic [1].
+If a file argument is provided,
+the file is used for input before the console
+is read.
+.sp
+bas\b\b\b___ accepts lines of the form:
+.sp
+   statement
+   integer statement
+.sp
+Integer numbered statements
+(known as internal statements)
+are stored for later execution.
+They are stored in sorted ascending order.
+Non-numbered statements are immediately executed.
+The result of an immediate expression statement
+(that does not have '=' as its highest operator) is printed.
+.sp
+Statements have the following syntax:
+.sp
+.in +6
+.ti -3
+expression
+.br
+The expression is executed for its side
+effects (assignment or function call)
+or for printing as described above.
+.sp
+.ti -3
+done\b\b\b\b____
+.br
+Return to system level.
+.sp
+.ti -3
+draw\b\b\b\b____ expression expression expression
+.br
+A line is drawn on the Tektronix 611 display (/dev/vt0) from
+the current display position
+to the XY co-ordinates specified by the
+first two expressions.
+(The scale is zero to one in both X and Y directions)
+If the third expression
+is zero, the line is invisible.
+The current display position is set to the end point.
+.sp
+.ti -3
+display\b\b\b\b\b\b\b_______ list
+.br
+The list of expressions and strings is
+concatenated and displayed (i.e. printed) on the 611 starting
+at the current display position.
+The current display position is not changed.
+.sp
+.ti -3
+erase\b\b\b\b\b_____
+.br
+The 611 screen is erased.
+.sp
+.ti -3
+for\b\b\b___ name =\b_\b= expression expression statement
+.ti -3
+for\b\b\b___ name =\b_ expression expression
+.br
+.li
+...
+.ti -3
+next\b\b\b\b____
+.br
+The for\b\b\b___ statement
+repetitively executes a
+statement (first form)
+or a group of statements (second form)
+under control of a named variable.
+The variable takes on the value of
+the first expression,
+then is incremented by one on each loop,
+not to exceed the value of
+the second expression.
+.sp
+.ti -3
+goto\b\b\b\b____ expression
+.br
+The expression is evaluated, truncated to an integer
+and execution goes to the corresponding integer numbered statment.
+If executed from immediate mode,
+the internal statements are compiled first.
+.sp
+.ti -3
+if\b\b__ expression statement
+.br
+The statement is executed if the expression evaluates
+to non-zero.
+.sp
+.ti -3
+list\b\b\b\b____ [expression [expression]]
+.br
+list\b\b\b\b____ is used to print out the stored internal statements.
+If no arguments are given, all internal statements are printed.
+If one argument is given, only that
+internal statement is listed.
+If two arguments are given, all internal statements
+inclusively between the arguments are printed.
+.sp
+.ti -3
+print\b\b\b\b\b_____ list
+.br
+The list of expressions and strings are concatenated and
+printed.
+(A string is delimited by " characters.)
+.sp
+.ti -3
+return\b\b\b\b\b\b______ [expression]
+.br
+The expression is evaluated and the result is passed
+back as the value of a function call.
+If no expression is given, zero is returned.
+.sp
+.ti -3
+run\b\b\b___
+.br
+The internal statements are compiled.
+The symbol table is re-initialized.
+The random number generator is re-set.
+Control is passed to the lowest numbered internal
+statement.
+.sp
+.ti -6
+Expressions have the following syntax:
+.sp
+.ti -3
+name
+.br
+A name is used to specify a variable.
+Names are composed of a letter ('a' - 'z')
+followed by letters and digits.
+The first four characters of a name are significant.
+.sp
+.ti -3
+number
+.br
+A number is used to represent a constant value.
+A number is composed of digits, at most one decimal point ('.')
+and possibly a scale factor of the form
+e\b_ digits or e-\b\b__ digits.
+.sp
+.ti -3
+(\b_ expression )\b_
+.br
+Parentheses are used to alter normal order of evaluation.
+.sp
+.ti -3
+expression operator expression
+.br
+Common functions of two arguments are abbreviated
+by the two arguments separated by an operator denoting the function.
+A complete list of operators is given below.
+.sp
+.ti -3
+expression (\b_ [expression [,\b_ expression ...]] )\b_
+.br
+Functions of an arbitrary number of arguments
+can be called by an expression followed by the arguments
+in parentheses separated by commas.
+The expression evaluates to the
+line number of the entry of the function in the
+internally stored statements.
+This causes the internal statements to be compiled.
+If the expression evaluates negative,
+a builtin function is called.
+The list of builtin functions appears below.
+.sp
+.ti -3
+name [\b_ expression [,\b_ expression ...] ]\b_
+.br
+Each expression is truncated to an integer
+and used as a specifier for the name.
+The result is syntactically identical to a name.
+a[1,2] is the same as a[1][2].
+The truncated expressions are restricted to 
+values between 0 and 32767.
+.sp
+.ti -6
+The following is the list of operators:
+.sp
+.ti -3
+=
+.br
+= is the assignment operator.
+The left operand must be a name or an array element.
+The result is the right operand.
+Assignment binds right to left,
+all other operators bind left to right.
+.sp
+.ti -3
+& |
+.br
+&\b_ (logical and)
+has result zero if either of its arguments are zero.
+It has result one if both its arguments are non-zero.
+|\b_ (logical or)
+has result zero if both of its arguments are zero.
+It has result one if either of its arguments are non-zero.
+.sp
+.ti -3
+< <= > >= == <>
+.br
+The relational operators
+(< less than, <= less than or equal,
+> greater than,
+>= greater than or equal,
+== equal to,
+<> not equal to)
+return one if their arguments are in the specified
+relation.
+They return zero otherwise.
+Relational operators at the same level extend as follows:
+a>b>c is the same as a>b&b>c.
+.sp
+.ti -3
++ -
+.br
+Add and subtract.
+.sp
+.ti -3
+* /
+.br
+Multiply and divide.
+.sp
+.ti -3
+^
+.br
+Exponentiation.
+.sp
+.ti -6
+The following is a list of builtin functions:
+.sp
+.ti -3
+arg
+.br
+Arg(i) is the value of the i\b_th
+actual parameter on the current level
+of function call.
+.sp
+.ti -3
+exp
+.br
+Exp(x) is the exponential function of x.
+.sp
+.ti -3
+log
+.br
+Log(x) is the logarithm base e of x.
+.sp
+.ti -3
+sin
+.br
+Sin(x) is the sine of x (radians).
+.sp
+.ti -3
+cos
+.br
+Cos(x) is the cosine of x (radians).
+.sp
+.ti -3
+atn
+.br
+Atn(x) is the arctangent of x.
+.sp
+.ti -3
+rnd
+.br
+Rnd() is a uniformly distributed random
+number between zero and one.
+.sp
+.ti -3
+expr
+.br
+Expr() is the only form of program input.
+A line is read from the input and
+evaluated as an expression.
+The resultant value is returned.
+.sp
+.ti -3
+int
+.br
+Int(x) returns x truncated to an integer.
+.in -6
+.sp
+.ti 0
+FILES          /tmp/btm?       temporary
+.sp
+.ti 0
+SEE ALSO       [1] DEC-11-AJPB-D
+.sp
+.ti 0
+DIAGNOSTICS    Syntax
+errors cause the incorrect line to be typed
+with an underscore where the parse failed.
+All other diagnostics are self explanatory.
+.sp
+.ti 0
+BUGS           --