summaryrefslogtreecommitdiff
path: root/static/unix-v10/man1/bite.1
diff options
context:
space:
mode:
Diffstat (limited to 'static/unix-v10/man1/bite.1')
-rw-r--r--static/unix-v10/man1/bite.1712
1 files changed, 712 insertions, 0 deletions
diff --git a/static/unix-v10/man1/bite.1 b/static/unix-v10/man1/bite.1
new file mode 100644
index 00000000..41638a81
--- /dev/null
+++ b/static/unix-v10/man1/bite.1
@@ -0,0 +1,712 @@
+.TH BITE 1 local
+.SH NAME
+bite \- Basic Interpreter for Testing & Engineering
+.SH SYNOPSIS
+.B bite
+[ - ] [prog1 prog2 prog3 .....]
+.SH DESCRIPTION
+.I Bite
+is a BASIC language interpreter.
+Its virtues are in that it is written in the Bell System 'C'
+compiler language which lends itself to
+.I portability
+and
+.I readability.
+One of the most important aspects is that the interpreter is
+.I interfaced
+with the
+.I system shell via the '!' command.
+Shell commands can be executed inmmediately or actually typed into
+the BASIC program itself!
+"bite" may also be invoked by a shell script and when given an argument
+(a program name) will automatically cause the BASIC program to be
+executed. In that case the BASIC program should be terminated with
+a "bye" statement.
+The inclusion of the '-' option, along with a BASIC program name will
+cause "bite" to start and then "load" the BASIC program
+.I without
+running it.
+.PP
+.I Bite
+is designed so that BASIC language programs
+of the original Dartmouth syntax will be loadable
+with little or no incompatibility and extra features that do not
+follow common standards will be
+.I additions
+to, rather than
+.I exceptions
+to the syntax rules of BASIC.
+
+The commands and functions in this interpreter
+are implemented by entries into
+tables and the procedure for implementing new
+commands will be documented as another virtue of the
+configuration of this interpreter.
+.PP
+.I Bite
+was implemented
+with
+.I instrument control
+and
+.I data collection
+in mind
+for the purpose of controlling an
+.I Automated Test System (ATS).
+These functions will be available as an extended instruction set.
+Another version of "bite" is being configured for this purpose
+which will reside (initially) on an PDP-11/03 (subsequently on
+a PDP-11/23).
+.PP
+A standard string capability is implemented on the BASIC interpreter
+BITE.
+.TP 4
+.I Conventions
+.TP 8
+.I THIS DOCUMENT
+All things enclosed in [] are optional.
+.TP 8
+.I EDITING
+Editing is accomplished as it is in any BASIC language intepreter
+in that line-numbers are entered by typing a line-number followed
+by the statement and removed or deleted by merely typing the line-number.
+Listing is accomplished with the "list" command (explained under "COMMANDS").
+In addition to the above, it is possible to list single lines by typing
+the return-key in which case the program is listed one line-at-a-time,
+starting at the first. When the last one is reached, the sequence starts
+at the first line again.
+At any time it is also possible to type the '-' symbol to "backup" a line-
+at-a-time.
+Other editing facilities are "s", "delete", and "reseq" also explained
+under "COMMANDS".
+.TP 8
+.I EXPR
+Any algebraic expression which could be a constant, variable, math
+function or a combination of same, seperated by arithmetic operators
+as in: a+b*3.14*(4.4+c2*sin(b+s))+a(2,2)
+See "variables" and "math functions" below.
+.TP 8
+.I OPERATORS
++,-,*,/ or ^ for addition, subtraction, multiplication, division or
+exponentiation in order of lowest to highest precidence. + and - have
+the same precidence and * and / have the same precidence.
+.TP
+.I RELATIONALS
+<, >, =, <=, >=, <> for less than, greater than, equality, less or equal,
+greater than or equal and not equal.
+.TP 8
+.I SOURCE PATH
+When reference is made to a "bite" source file (i.e. the "old" and "load"
+command), at least two directories are searched, the first being the current
+directory and then /usr/lib/bites which is a "pool" where shared programs
+should be stored. The /usr/lib/bites directory is analogous to the
+/usr/bin directory in UNIX.
+The user may specify extra paths to be searched by defining them in
+BITEPATH and then exporting BITEPATH like:
+.br
+BITEPATH=:$HOME/BASIC:/usr/local/lib/:
+.br
+which adds the two pathnames between the ':' delimiters to the
+other paths. In this way, one may have private BITE programs
+and execute them from any directory.
+.TP 8
+.I SOURCE PROGRAM NAME
+The source program name is twelve or less characters suffixed by a .b .
+.TP 8
+.I STATEMENT
+A basic statement consists of a line number (integer value between 1 and
+32767) followed by a command, space and operand which follows the
+syntax governed by the command as in: 100 print "hello world"
+A statement can be typed without a line number in which case it will
+execute immediately. This is true for all commands, but doesn't make
+sense for all commands such as "for". Immediate execution is handy
+for diagnostic purposes such as: print a, to find out what the value
+of a.
+.TP 8
+.I VARIABLES
+All variable names are either a lower case alpha character (a-z)
+or a lower-case alpha character followed by an integer (0-9).
+Array have the same name convention as regular variables and take
+the form varname(D1,D2,D3....D10) where D1-D10 are the dimension
+attributes of the array and can take the form of any legal expression
+(including another array) as in a(b(2,2),x).
+.TP 8
+.I STRING VARIABLE
+A string variable is any single lower case alpha character (a-z)
+followed by a '$' or any single alpha character followed by a single digit
+(1-9) then followed by a '$' like a$ or z9$.
+.TP 8
+.I STRING ARRAY VARIABLE
+A string array variable has the same naming convention as a regular string
+variable and contains one or two "subscripts" enclosed in parenthesis
+as in:
+.br
+ x1$(x,y)
+
+Like other array variables in BASIC string arrays must be declared
+in a dimension statement prior to their use: e.g. dim a$(20) or
+d$(100,3).
+.TP 8
+.I STRING EXPRESSION
+A string expression is any combination of string variables and
+literals added together by a '+' operator which indicates concatenation.
+An example of an assignment statement for string variables is:
+
+ b$="Joan"+a1$+c2$+"John"+x$(20)
+.SH COMMANDS
+.TP 8
+.I bye or q
+Exit
+the interpreter.
+.TP 8
+.I com[mon]
+Preserve
+variables for subsequent "run". Issue of the run command
+otherwise de-allocates all variables.
+.TP 8
+.I con \fR[line#]
+Continue normal execution from single step mode. See "sing" command.
+.TP 8
+.I data \fR(expr),(expr),(expr),..........
+The data statement is a string of defined constants or expressions referred
+to by the "read" statement. Unlike most BASIC interpreters, the data is
+stored only in the form of text strings which allows the read statement to
+evaluate expressions as well as constants.
+.TP 8
+.I del[ete] \fRlownum [, highnum]
+Delete line-number specified if only lownum given. Delete all lines
+between lownum and highnum if both are specified.
+See the "undo" command.
+.TP 8
+.I dim \fRvariable(expr1,expr2,....,expr10)
+Allocate space and define the dimensional characteristics of
+subscripted variable.
+.TP 8
+.I end
+Define logical end of program. Cause termination or current "run".
+.TP 8
+.I expunge
+Force all variable space, including subscripted variables to be freed.
+Or de-allocate used varriable space.
+.TP 8
+.I f
+Identify current file. Typing "f" causes the currently referenced
+file (if any) to be displayed.
+.TP 8
+.I for - next
+Cause code enclosed by this combination to be executed under the
+conditions specified in the
+.I for
+statement as in: for variable = expr1 to expr2 [step expr].
+.TP 8
+.I gosub \fRline#
+Goto subroutine, resume from following statement after "return" encountered.
+.TP 8
+.I goto \fRline#
+Force execution to continue starting at the line# specified.
+.TP 8
+.I if \fR(expr1) relational (expr2) \fIthen \fRline#
+Redirect program flow to line# if expr1 is related to expr2 by the
+specified relational.
+String expressions are also compared by the "if" statement as in:
+.br
+if a$ < "jim" goto 100
+.br
+The results of the comparison are based on alphabetical order
+of the two objects being compared.
+The "then" in the "if" statement can be optionally replaced with "goto"
+"go to" or "gosub". The "if" statement can also take the form:
+.br
+.I if \fR(expr) relatioanl (expr) \fIthen \fRvar = (expr)
+.TP 8
+.I if \fRmore _fd \fI then \fRline#
+Direct program flow to line# if there are more lines to be read
+from the file associated with fd where fd is the file designator
+between 1 and 4 inclusive. This type if statement is used to detect
+EOF (End Of File) condition.
+.br
+Example: 100 if more _2 then 200
+.br
+Note that "gosub" can be used in place of "then" in which case
+the subroutine would be one for reading another line.
+.TP 8
+.I input \fR[_fildes]var1[,var2,var3,....]
+Prompt for input and assign inputed value to variable.
+If 's' is typed program is halted.
+String variables may be specified in the "input" statement. The
+variables can be mixed like:
+.br
+input a$,a,b$(2,2)
+.br
+which will interpret the first input as a string, require the second
+input to be numerical and interpret the third as a string input.
+.TP 8
+.I [let] \fRvariable = expr
+Assign the value of expr to variable.
+The let is optional.
+The let or assignment statement also allows the assignment of
+string expressions to string variables like:
+.br
+b$="Joan"+a1$+c2$+"John"+x$(20)
+.TP 8
+.I l[ist] \fR[lownum [, highnum]]
+List the text in working storage. If lownum is given then only that number
+is listed, if lownum and highnum are specified, then a listing is
+displayed between the given statement numbers.
+.TP 8
+.I load \fR[prog-name]
+Same as the "old" command, except working storage is not cleared.
+.TP 8
+.I ls \foptions
+List directory. Same as UNIX "ls" command.
+.TP 8
+.I mov \fRstartnum,endnum,newnum [,increm]
+The mov command causes the lines beginning with
+.I startnum
+and ending with
+.I endnum
+to be moved (ie. resequenced) to the line beginning with
+.I newnum
+and incremented by
+.I increm \fR.
+The default value for
+.I increm
+is 10.
+All references to the moved lines are updated. The user is responsible to
+see that line numbers associated with moved lines do not conflict with
+existing lines which will cause loss of program text.
+.I mov
+is similar to
+.I reseq
+(see below) except that only the specified lines are resequenced.
+.TP 8
+.I n
+List the next 23 lines. Useful for paging through a listing on a CRT.
+.TP 8
+.I new
+Clear program working storage for new program to be typed.
+.TP 8
+.I old \fR[prog-name]
+Clear user space and load program. If old is typed with no argument
+it will prompt the user for a program name if not defined or load
+the last defined program name.
+.TP 8
+.I on \fR(expr) \fIgoto \fRline#,line#,.......
+Is a selective goto with multiple line number targets. The target
+branched to depends on the value of expr which is truncated.
+Control is passed to the first line# specified after goto if the
+value of the expression is 1. Control passes to the second line#
+if the value is 2, the third if 3 and so on.
+.TP 8
+.I on \fR(expr) \fIgosub \fRline#,line#,.......
+Same action as on-goto, except action taken is that of "gosub".
+.TP 8
+.I pause
+Causes execution to be suspended until a "newline" or "return" is typed.
+This is useful for programs which need to be continuously in "run", but
+need to allow a time for user action i.e. unit insertion.
+.TP 8
+.I pr[int] \fR[_fildes](expr's,quoted strings or tab operators)
+The print statment is a limited format display statement in which
+expressions are evaluated and displayed along with quoted literals.
+The tab(expr) operator causes the print head to move to the absolute
+column position computed by expr provided the current head position
+is less. The specifiers must be seperated by onee or more commas
+or semicolons.
+String expressions are also expanded by the print statement.
+.TP 8
+.I printf \fR[_fildes]"format string"[,expr1,expr2,.....,expr10]
+This is an interpretive implementation of the UNIX 'C' library
+routine, printf. It is, however restricted to only the floating
+point format control specifiers 'f' and 'g'. Use of any of the
+other specifiers such as 'o', 'd' or 's' will give erroneous results.
+Print controls such as \\b (backspace), \\n (newline), \\r (return)
+or \\t can also be used. The printf format was chosen in lieu
+of the usual "print using" command because it was felt that
+printf is not only a 'C' language standard but easier to use
+than "print using".
+.br
+Usage Example:
+.br
+100 printf "Variable a=%2.2f\\tVariable b=%g.\\n",a,b
+.TP 8
+.I randomize
+Causes "rnd" statement to start at an "unpredictable" value.
+.TP 8
+.I read \fRvar1,var2,var3,..............
+The "read" statement causes data to be assigned to each variable in the
+list from the constants or expressions contained in "data" statements. The
+reading starts where-ever the data pointer is currently at. The data pointer
+points to the last data field accessed, if a read was done, the first
+data field in the first data statment if the "restore" statment is issued
+or the program is re-run.
+The "read" statement will also assign values to string variables or
+expressions in the "data" statement.
+.TP 8
+.I rem
+The remark statement causes no operation in
+.I bite
+but may be followed by any string of characters for the purpose of commenting
+a program. Unlike compiler languages, remarks do take up program buffer space,
+however, they are of paramount importance in making a program readable by
+human beings and are therefore strongly recommended.
+.TP 8
+.I reseq \fR[startnum [, increm]]
+The resequence command causes the statement numbers and all references
+to them (such as if's goto's, gosub's, etc) to be resequenced starting
+at
+.I startnum
+and incremented by
+.I increm.
+If startnum and/or increm are omitted, the default values are 10 and
+10 respectively.
+.TP 8
+.I restore
+Restores the data pointer to the first field of the first "data" statment.
+.TP 8
+.I return
+Return from subroutine called by "gosub" statement.
+.TP 8
+.I rm \ffilename(s)
+Remove file(s). Same as UNIX "rm" command.
+.TP 8
+.I run \fR[prog-name]
+Run basic program specified. If no argument is given, "run" attempts to
+execute whatever is currently in working storage.
+.TP 8
+.I s \fRline#/old-string/new-string[/]
+Substitute in line line# the new-string for the old-string. The last delimiter
+is optional, unless new-string is null in which case it is desired that
+old-string merely be removed.
+See the "undo" command.
+.TP 8
+.I sing \fR[line#]
+Enter the single step mode starting at the line# specified or at
+the first line of the program if no line# is specified.
+In single step mode an instruction is executed and then the prompt '^'
+is displayed.
+At this time the user may enter
+any command (i.e. print) or hit the "return" key to execute the next
+instruction.
+See the "con" instruction.
+.TP 8
+.I size
+Causes amount of storage used and remaining or free space in
+decimal number of bytes.
+.TP 8
+.I stop
+Stop execution of program.
+.TP 8
+.I save \fR[prog-name]
+Save the contents of working storage in file-name specified by progname.
+If no progname is given last referenced file-name is used. If no file
+name was referenced, the user is prompted for a name.
+.TP 8
+.I undo
+Undo last "s" command or
+.I single line deletion.
+.TP 8
+.I ! (any shell command string)
+Unix shell command invocation allows system commands to be
+executed from the interpreter.
+Not available in restricted version.
+.SH FILE COMMANDS
+The file commands: append, openi, and openo are followed by one or more
+file-names seperated by commas, each file-name being no more that
+14 characters long. Files are assigned to designators (integer values
+between 1 and 8 inclusive) in the order that they are open.
+All commands
+such as "print" and "input" which refer to a file use the designator
+number preceded by a '_' character to refer to that file
+as in: 100 print _1"hello world" or 100 input _3a(x,y) .
+.TP 8
+.I append \fRfile1[,file2,.....,file8]
+If file exists open for output cause new data to be appended. If file
+does not exist, the named file is created.
+.TP 8
+.I openi \fRfile1[,file2,.....,file8]
+Open file for input. File must exist.
+.TP 8
+.I openo \fRfile1[,file2,.....,file8]
+Create named file(s) and open for output. If named files exist, the old
+data is destroyed.
+.TP 8
+.I seek \fR_fildes, offset, mode
+Seek to a line whose position in the file is offset. If mode = 0 the
+offset is from the beginning, if mode = 1 then the offset is relative
+to the current file pointer.
+.br
+Usage Example: 101 seek _1, 33, 0
+.br
+would cause the file pointer to the 33rd line.
+.TP 8
+.I rewind \fR_fildes
+Rewind the file specified by fildes to the beginning (first line).
+This is effectively the same as seek _fildes, 0, 0.
+.TP 8
+.I close \fR_fildes
+Close file associated with file designator.
+.TP 8
+.I closeall
+Close all files input and output.
+.SH MATH FUNCTIONS
+.TP 8
+.I abs\fR(expr)
+Absolute value.
+.TP 8
+.I atn\fR(expr)
+Arc-tangent.
+.TP 8
+.I cos\fR(expr)
+Cosine.
+.TP 8
+.I exp\fR(expr)
+Natural exponential.
+.TP 8
+.I fact\fR(expr)
+Factorial. (Truncates fractions i.e. fact(3.22) interpreted as fact(3))
+.TP 8
+.I int\fR(expr)
+Integerize or truncate fractional part of result of expr.
+.TP 8
+.I log\fR(expr)
+Natural log.
+.TP 8
+.I rnd\fR(expr)
+Return random number between 0 and evaluated expr.
+.TP 8
+.I sin\fR(expr)
+Sine.
+.TP 8
+.I sqr\fR(expr)
+Square root.
+.SH STRING FUNCTIONS
+.TP 8
+.I asc(string)
+Returns ASCII value of first character in string.
+.TP 8
+.I chr$(expr)
+Return the character corresponding to the value of expr where expr
+is a numerical expression. If the value of the expression exceeds
+octal 177 the least significant 7 bits are used.
+.TP 8
+.I ext$(string,pos,len)
+The ext$ "extract" string function returns a substring of the
+string expression string starting at position "pos" having length "len".
+If attempt is made to extract a string beyond the end of "string" the result
+will be truncated and an error message will be displayed.
+.TP
+.I len(string)
+Return the length of the string expression "string".
+.TP
+.I left$(string,n)
+Return the leftmost n characters of the string. If the string length is
+less than n, then the string itself is returned.
+.TP
+.I loc$(string)
+Converts all upper case alphabetic characters in the string to lower case.
+.br
+EX: a$=loc$("ABCdef123#$^&*")
+.br
+returns abcdef123#$^&* to a$
+.TP
+.I mid$(string,pos,len)
+Does exactly same as ext$. Included because it is part of another
+popular dialect of BASIC.
+.TP
+.I right$(string,n)
+Return rightmost n characters of string. If string length is less than
+n the string itself is returned.
+.TP
+.I str$(expr)
+Returns value of expr (numerical expression) as an ASCII string.
+.TP
+.I string$(n,string)
+Returns n occurrences of the first character in string.
+.TP
+.I upc$(string)
+Converts all lower case alphabetic characters in the string to upper case.
+.TP
+.I val(string)
+Return numerical value represented by ASCII number.
+.br
+Ex: a=val("100.2")
+.br
+assigns the value 100.2 to variable a. This function is good for
+converting ASCII tabulations of numbers. ext$ or mid$ can be used
+to select the column.
+.SH ATS INSTRUMENT COMMANDS
+.TP 8
+.I buspr \fR'busadr(text and expressions)
+Buspr is merely an extension of the print statement which allows
+the print string which would otherwise be displayed on the tty
+to be sent via the IBV-11 bus to the bus address specified by "busadr".
+The ' preceding busadr distinguishes the following character from anything
+other than a single character to be interpreted as an address.
+.br
+Usage Example: 100 buspr '6"F2R";r
+.TP 8
+.I cmd "string"
+Send character string over IBV-11 command lines.
+.TP 8
+.I delay num
+Causes a delay of num 60ths of a second where num is an integer.
+.br
+Usage Example: 100 delay 120 (delay 2 minutes or 120/60ths sec)
+.TP 8
+.I dvminit
+Initialize Digital Voltmeter.
+.TP 8
+.I dvms \fRfunction, range
+Digital voltmeter set command, where: function is "ac", "dc" or "ohms"
+and range is .1, 1, 10, 100, 1k, 10k or "aut". i.e.
+.br
+Usage Example: 100 dvms dc,1k
+.TP 8
+.I hprintf \fR"format text"[,expr1,expr2,...,expr10]
+Formatted print to strip printer. Syntax rules are the same as
+. I printf.
+Strip printer is 20 columns wide, anything past the 20th column is
+truncated.
+.TP 8
+.I lodset \fRlodnum,mode,value
+Set load. Where lodnum an integer describing which load referred to,
+mode is the manner in which the load is set and value is an expression
+describing the current or resistance the load was set to depending on the
+mode. Mode is a single character 'r', 'R', 'i' or 'I' where 'r' is resistance
+mode (value in ohms) and 'i' is current mode (value in amperes). Small
+letter causes a hunt for the value and capital causes set on first try.
+.TP 8
+.I relay \fRfunction, relnum1[, relnum2, relnum3,... ]
+Set multiprogrammer relays. Function is m (make), b (break) or c (clear).
+Function is followed by all relay numbers to be acted upon which may
+be expressions or variables. The clear function when not followed by
+anything, simply means open all relays. When followed by relay numbers,
+clear means all relays are open EXCEPT the ones specified.
+.br
+Usage Example: 100 relay m,10,20,21,a,b,rnd(10)
+.TP 8
+.I ps \fRpsno, voltage, current limit, overvoltage
+Set power supply parameters. Psno is an integer representing the
+power supply number describing which power supply is to be used,
+voltage, current limit and overvoltage are self explanatory. Each
+one of the parameters may be a legal algebraic expression so that
+they may be controlled by the program.
+.br
+Usage Example: 100 dvms 1,10,1,11 or 100 dvms n,v1,i1,v1+1
+.SH INSTRUMENT FUNCTIONS
+.TP 8
+.I btn\fR(expr)
+Button function returns non-zero if control button number (expr) is
+depressed.
+.TP 8
+.I dvmr()
+Return digital voltmeter reading.
+.TP 8
+.I error()
+Return 1 if last instrument command caused instrument error, otherwise
+return 0.
+
+.SH AUTHORS
+Richard B. Drake & James P. Hawkins
+.SH FILES
+source.b
+.br
+/usr/lib/bites/<source>
+.br
+.SH "SEE ALSO"
+sh(1),bstring(1)
+BASIC Programming and Applications, C. Joseph Sass 1972
+.br
+.br
+BITE Users Guide, J.P.Hawkins, Bell Labs, TM-79-2425-4
+.SH DIAGNOSTICS
+Diagnostic error messages are issued by the interpreter
+which indicate syntax errors , system failure, illegal commands or expressions,etc.
+The
+.I LSI-11/03
+Version of
+.I bite
+does not issue explicit error messages, but displays an error number
+in which the meanings are listed below. This is done to regain approx.
+2Kb memory in an already tight LSI-11/03 memory.
+.nf
+.I Standard Error Messages
+
+ NUMBER MESSAGE TEXT
+ --------------------
+ 0 REFERS TO A NON EXISTING LINE NUMBER
+ 1 UNRECOGNIZABLE OPERATION
+ 2 CANNOT OPEN FILE
+ 3 ILLEGAL VARIABLE NAME
+ 4 BAD FILENAME
+ 5 WORKING STORAGE AREA EMPTY
+ 6 RUNS NESTED TOO DEEPLY
+ 7 UNASSIGNED VARIABLE
+ 8 EXPRESSION SYNTAX
+ 9 BAD KEYWORD IN STATEMENT
+ 10 IMPROPER OR NO RELATIONAL OPERATOR
+ 11 UNBALANCED QUOTES
+ 12 FILE EDITING NOT PERMITTED IN SINGLE STEP MODE
+ 13 MISSING OR ILLEGAL DELIMITER
+ 14 GOSUB WITH NO RETURN
+ 15 IS FATAL
+ 16 UNBALANCED PARENTHESIS
+ 17 UNKNOWN MATH FUNCTION
+ 18 NEXT WITH NO OR WRONG FOR IN PROGRESS
+ 19 CANNOT PROCESS IMAGINARY NUMBER
+ 20 WHAT ?
+ 21 BAD DIMENSION SYNTAX
+ 22 TOO MANY DIMENSIONS
+ 23 REDUNDANT DIM STATEMENT
+ 24 NOT ENOUGH WORKING STORAGE SPACE
+ 25 VARIABLE NOT DIMENSIONED
+ 26 WRONG NUM OF DIMS
+ 27 ONE OR MORE DIMS LARGER THAN ASSIGNED
+ 28 NEG. OR ZERO DIMENSION ILLEGAL
+ 29 DIVIDE BY ZERO
+ 30 BAD TAB SPEC. IN PRINT
+ 31 SYS CALL FAILED
+ 32 BAD FILE DECLARE SYNTAX
+ 33 OUT OF DATA
+ 34 FILE-NAME TOO LONG
+ 35 FILE DES. USED UP
+ 36 FILE NOT OPEN FOR OUTPUT
+ 37 FILE NOT OPEN FOR INPUT
+ 38 EXPRESSION YIELDS AN IMPOSSIBLE VALUE
+ 39 PRINTF: ARG COUNT MISMATCH
+ 40 PRINTF: MORE THAN 10 ARGS
+ 41 LINE TOO LONG FOR STRIP PRINTER
+ 42 MOV REQUIRES 3 LINE #'s SPACING IS OPTIONAL
+.I String error messages
+ 49 STRING VARIABLE IN NUMERICAL EXPR.
+ 50 NON-STRING IN STRING ASSIGNMENT
+ 51 NUMERIC IN STRING EXPRESSION
+ 52 INVALID STRING OPERATOR
+ 53 CANNOT COMPARE STRING WITH NUM. TYPES
+ 54 UNKNOWN STRING FUNCTION
+ 55 OUT OF STRING RANGE
+
+.I Test Set and Instrument Error Messages
+
+ 100 MISSING ' DELIMITER BEFORE BUS ADDR
+ 101 PS: VOLTAGE OUT OF RANGE
+ 102 PS: CURRENT OUT OF RANGE
+ 103 PS: OVERVOLTAGE OUT OF RANGE
+ 104 RELAY ERR
+ 105 RELAY: INVALID FUNC.
+ 106 RELAY: INVALID NUMBER
+ 107 DVM: INVALID MODE
+ 108 DVM: INVALID RANGE
+ 109 LODSET: IMPROPER NUMBER OF ARGUMENTS
+ 110 LODSET: IMPROPER MODE
+ 111 LODSET: UNABLE TO SET LOAD
+.fi
+.SH BUGS
+ There are more or less common features not yet available such as
+.I string variables, multiple statment lines, matrix statements
+and the
+.I def
+statement.
+Array variables do not accept reference to 0th elements.
+Bugs will be found as local users write and execute programs and report
+their problems.