----------------------------------------------------------------
|                                                              |
|                                                              |
|                      comp.sources.unix                       |
|                                                              |
|                       SSSSS      CCCC                        |
|                      S     S    C    C                       |
|                      S         C                             |
|                       SSSSS    C                             |
|                            S   C                             |
|                      S     S    C    C                       |
|                       SSSSS      CCCC                        |
|                                                              |
|        Spreadsheet Calculator (V6.1) Command Summary         |
|                                                              |
|--------------------------------------------------------------|
| ^To   Toggle options. Toggle one option selected by o:       |
|--------------------------------------------------------------|
| a            |Recalculate automatically or on ``@'' commands |
| c            |Current cell highlighting enable/disable       |
| e            |External function execution enable/disable     |
| n            |If enabled, a digit starts a numeric value     |
| t            |Top line display enable/disable                |
| x            |Encrypt/decrypt database and listing files     |
| $            |Dollar prescale. Multiply constants by 0.01    |
|--------------------------------------------------------------|
| S     Set options.  Options include:                         |
|--------------------------------------------------------------|
| byrows       |Recalculate in row order  (default)            |
| bycols       |Recalculate in column order                    |
| iterations=n |Set the number of iterations allowed  (10)     |
| tblstyle=xx  |Set ``T'' output style to 0, tex, latex, or tbl|
|--------------------------------------------------------------|
| Cell cursor movement (always OK)                             |
|--------------------------------------------------------------|
| ^N ^P ^B ^F  |Down, up, back, forward                        |
| ^Ed          |Go to end of range in direction such as ^P or j|
| Arrow keys   |(if the terminal and termcap support them)     |
|--------------------------------------------------------------|
| Cell cursor movement (if no prompt active)                   |
|--------------------------------------------------------------|
| j k l h      |Down, up, right, left                          |
| SPACE        |Forward                                        |
| ^H           |Back                                           |
| TAB          |Forward, otherwise starts/ends a range         |
| ^            |Up to row 0 of the current column              |
| #            |Down to the last valid row of current column   |
| 0            |Back to column A.  Use ^U0 if numeric mode     |
| $            |Forward to the last valid column of current row|
| b            |Back then up to the previous valid cell        |
| w            |Forward then down to the next valid cell       |
| g            |Go to cell name, range, quoted string, number  |
|--------------------------------------------------------------|
| Cell entry and editing commands                              |
|--------------------------------------------------------------|
| =            |Enter a numeric constant or expression         |
| <            |Enter a left justified string/expression       |
| >            |Enter a right justified string/expression      |
| e            |Edit the current cell's numeric value          |
| E            |Edit the current cell's string part            |
| x            |Clear the current cell                         |
| c            |Copy the last marked cell to the current cell  |
| m            |Mark a cell to be used as the source for ``c'' |
| +            |Increment numeric part                         |
| -            |Decrement numeric part                         |
| In numeric mode, 0-9, +, -, . start new constant/expression  |
|--------------------------------------------------------------|
|Written by     Andrew Yeomans                                 |
|               Crosfield Electronics Limited                  |
|               Three Cherry Trees Lane                        |
|               Hemel Hempstead                                |
|               Hertfordshire HP2 7RH                          |
|               England                                        |
|                                                              |
|               Tel +44-442-230000                             |
|                                                              |
|Created        July 1989                                      |
|                                                              |
|Issue          1.0            Copyright (C) A.J.V.Yeomans 1989|
----------------------------------------------------------------
----------------------------------------------------------------
| File commands                                                |
|--------------------------------------------------------------|
| G            |Get a new database from a file                 |
| M            |Merge a new file into the current database     |
| P            |Put the current database into a file           |
| W            |Write a listing to file in screen format       |
| T            |Write a listing to file, with delimiters and   |
|              |optionally control lines for tbl, LaTeX, TeX   |
|              |                                               |
| If encryption mode set, file I/O will be encrypted/decrypted.|
| "| program" for file name pipes P, W, T output to program.   |
| Cell name for file name uses cell's string part as file name.|
|--------------------------------------------------------------|
| Row and column commands                                      |
|--------------------------------------------------------------|
| ir, ic       |Insert a new, empty row/column                 |
| ar, ac       |Append a new copy of the current row/column    |
| dr, dc       |Delete the current row/column                  |
| pr, pc, pm   |Pull deleted cells back into the spreadsheet   |
|              |Insert rows, columns or merge the cells        |
| vr, vc       |Remove expressions (not values) from row/column|
| zr, zc       |Hide (zap) the current row/column              |
| sr, sc       |Show hidden rows/columns                       |
| f width frac |Set the output format. A preceding count can be|
|              |used to change more than one column            |
|              |                                               |
| Commands which move or copy cells modify the row and column  |
| references in new cell expressions unless fixed or $ used.   |
|--------------------------------------------------------------|
| Range commands                                               |
|--------------------------------------------------------------|
| /x           |Clear a range                                  |
| /v           |Remove expressions from range, leaving values  |
| /c           |Copy a source range to a destination range     |
| /f           |Fill range with constant incrementing values   |
| /d           |Assign a name to a cell or a range of cells    |
| /s           |Shows the currently defined range names        |
| /u           |Undefine a previously defined range name       |
|              |                                               |
| A range is a rectangular region defined by the upper left and|
| lower right cells e.g. a20:k52 or a named range (/d)         |
|--------------------------------------------------------------|
| Miscellaneous commands                                       |
|--------------------------------------------------------------|
| Q q ^C       |Exit from the program                          |
| ^G ESC       |Abort entry of the current command             |
| ?            |Help                                           |
| !            |Shell escape. !! repeats last command          |
| ^L           |Redraw the screen                              |
| ^R           |Redraw the screen. Highlight value cells       |
| ^X           |Redraw the screen. Show formulas, not values   |
| @            |Recalculate the spreadsheet                    |
| ^V           |Type the name of the current cell              |
| ^W           |Type the current cell's expression             |
| ^A           |Type the current cell's numeric value          |
| TAB          |Starts or stops display of the default range   |
|--------------------------------------------------------------|
| Variable names                                               |
|--------------------------------------------------------------|
| K20          |Row and column can vary on copies              |
| $K$20        |Row and column stay fixed on copies            |
| $K20         |Row can vary; column stays fixed on copies     |
| K$20         |Row stays fixed; column can vary on copies     |
| fixed        |holds following expession fixed on copies      |
| Cells and ranges can be given a symbolic name with /d        |
|--------------------------------------------------------------|
| Expressions                                                  |
|--------------------------------------------------------------|
| -e     |Negation            | e<=e   |Less than or equal     |
| e+e    |Addition            | e=e    |Equal                  |
| e-e    |Subtraction         | e!=e   |Not Equal              |
| e*e    |Multiplication      | e>=e   |Greater than or equal  |
| e/e    |Division            | e>e    |Greater than           |
| e%e    |Modulo              | e<e    |Less than              |
| e^e    |Exponentiation      | e&e    |Boolean operator AND   |
| e?e1:e2|If e non-zero then  | e|e    |Boolean operator OR    |
|        |e1, otherwise e2    | ~e     |Boolean operator NOT   |
| Terms may be constants, variables, parenthesized expressions.|
----------------------------------------------------------------
----------------------------------------------------------------
| Range functions                                              |
|--------------------------------------------------------------|
| @sum(r)      |Sum all valid cells in the range               |
| @prod(r)     |Multiply together all valid cells in the range |
| @avg(r)      |Average all valid cells in range               |
| @max(r)      |Return the maximum value in the range          |
| @min(r)      |Return the minimum value in the range          |
|              |See also the numeric versions of max and min   |
| @stddev(r)   |Return the sample standard deviation of range  |
| @index(e,r)  |Return value of cell at index e into range r   |
| @stindex(e,r)|Return string value of cell at index e into r  |
| @lookup(e,r) |Search range r for a value e, return next row  |
|              |same column if range was a single row, or next |
|              |column and same row if range was single column.|
|--------------------------------------------------------------|
| Numeric functions                                            |
|--------------------------------------------------------------|
| @atan2(e1,e2)        |Arc tangent of e1/e2                   |
| @ceil(e)             |Smallest integer not less than e       |
| @eqs(se1,se2)        |1 if string expr se1 = se2, else 0     |
| @exp(e)              |Exponential function of e              |
| @fabs(e)             |Absolute value of e                    |
| @floor(e)            |The largest integer not greater than e |
| @hypot(x,y)          |Sqrt(x*x+y*y)                          |
| @max(e1,e2,...)      |The maximum of the values of the e's   |
| @min(e1,e2,...)      |The minimum of the values of the e's   |
| @nval(se,e)          |Return numeric value of named cell at  |
|                      |row given by se, column given by e     |
| pi                   |A constant quite close to pi           |
| @pow(e1,e2)          |e1 raised to the power of e2           |
| @rnd(e)              |Round e to the nearest integer         |
| @sqrt(e)             |Square root of e                       |
| @ston(se)            |Convert string expr se to a numeric    |
| @ln(e)   @log(e)     |Natural/base 10 logarithm of e         |
| @dtr(e)  @rtd(e)     |Convert degrees to/from radians        |
| @cos(e)  @acos(e)    |Cosine/inverse cosine using radians    |
| @sin(e)  @asin(e)    |Sine/inverse sine using radians        |
| @tan(e)  @atan(e)    |Tangent/inverse tangent using radians  |
|--------------------------------------------------------------|
| String functions                                             |
|--------------------------------------------------------------|
| #                    |Concatenate strings                    |
| @substr(se,e1,e2)    |Extract characters e1-e2 from se       |
| @fmt(se,e)           |Convert e to a string using sprintf(3) |
| @sval(se,e)          |Return string value of named cell at   |
|                      |row given by se, column given by e     |
| @ext(se,e)           |Call external program/script se with   |
|                      |argument e (converted to string).      |
|                      |Returns first line output as a string  |
| String expressions are made from constant strings (characters|
| surrounded by quotes), variables, and string functions.      |
|--------------------------------------------------------------|
| Financial functions                                          |
|--------------------------------------------------------------|
| @pmt(e1,e2,e3)       |@pmt(60000,.01,360) computes monthly   |
|                      |payments for $60000 mortgage, 12%/year |
|                      |interest (.01/month) for 360 months    |
| @fv(e1,e2,e3)        |@fv(100,.005,36) computes future value |
|                      |of 36 monthly payments of $100 at      |
|                      |6% per year interest (.005 per month)  |
| @pv(e1,e2,e3)        |@pv(1000,.015,36) computes present     |
|                      |value of ordinary annuity of 36 monthly|
|                      |payments of $1000 at 18%/year interest |
|--------------------------------------------------------------|
| Time and date functions                                      |
|--------------------------------------------------------------|
| @now                 |Return current time in seconds since   |
|                      |00:00 January 1, 1970 GMT              |
|                      |                                       |
| All of the following take an argument expressed in seconds:  |
| @date(e)             |Convert the time to 24 character date  |
|                      |string e.g. 'Sun Sep 16 01:03:52 1973' |
| @year(e)             |Return the year  (From 1970)           |
| @month(e)            |Return the month: 1 (Jan) to 12 (Dec)  |
| @day(e)              |Return the day of the month: 1 to 31   |
| @hour(e)             |Return the hour: 0 to 23               |
| @minute(e)           |Return the minutes: 0 to 59            |
| @second(e)           |Return the seconds: 0 to 59            |
----------------------------------------------------------------
