Wlabel="VCALC Help"
Contents=Overview,
The Sheet,
        Cursor Movement,
        Special Chars,
        Cells,
        Functions,
        Commands,
        Miscellaneous,
Files,
Bugs
Name=Overview
Llabel=" VCALC  OVERVIEW"
Slabel="OVERVIEW"
Branch=The Sheet, Files, Bugs
Title="Vcalc Overview"
Text=
  Vcalc is a spreadsheet calculator very similar to
  products such as VisiCalc and Supercalc available
  to users of personal computers. (VisiCalc is a
  registered trademark of VisiCorp; Supercalc is a
  trademark of Sorcim.) Vcalc is designed to work in
  the UNIX environment and is compatible with many
  popular terminals.

  Vcalc's main utility is that values may be
  specified to be functions of other values.  Thus,
  when one value is changed, the other values
  dependent on it may be seen to change
  "instantaneously." You can play "What if...?" type
  games and see what happens to a modeled situation
  if one or more constituent variables or formulas
  are changed.
\EOT\

Name=The Sheet
Llabel="The     SHEET"
Slabel="SHEET"
Branch= Overview,
	Cursor Movement,
        Special Chars,
        Cells,
        Functions,
        Commands,
        Miscellaneous
Title="The Sheet"
Text=
  The spreadsheet is arranged as 63 columns by 254
  rows of cells.  Each column is indicated by one or
  two letters (A, B, ..., Z, AA, ..., AZ, BA, ...,
  BK) and a number (1, ..., 254).  Thus, the upper
  left hand cell is A1, and the lower rightmost is
  BK254.  At any time, the values of as many cells
  as can fit on the screen are displayed.

  At any time, one cell is highlighted (generally
  reverse video or underlined).  This marks the
  position of vcalc's cursor.  The cursor may be
  moved to anywhere on the sheet.  If it is moved to
  a location not appearing on the screen, the sheet
  scrolls so that the new cursor position does
  appear.

  The cell at the cursor position may have its
  contents changed by one of the commands described
  below.  The four general types of cell contents
  are empty, label, repeating label, and value.

  Besides the spreadsheet itself, things appearing
  on the screen include:

  ENTRY LINE
       Line One shows the contents (i.e. the
       formula, rather than the value) and format of
       the highlighted cell.

  PROMPT LINE
       Line Two prompts you for the next menu item
       or information to be typed for the current
       command.

  EDIT LINE
       Line Three holds character strings typed by
       you to represent cell contents, file names,
       etc.  This information is generally editable
       until you type a terminating character, such
       as a carriage return.  In cases where there
       is a default string, the edit line will
       initially show the default.  You can select
       the default by simply typing the terminator.

  AXES Axes of course identify the rows and columns
       being displayed.
\EOT\

Name=Cursor Movement
Llabel="CURSOR  MOVEMENT"
Slabel=" CURSOR"
Branch=The Sheet, Files, Bugs
Title="Moving the Cursor"
Text=
  To move the cursor one cell to the left, down, up,
  or right, use your terminal's arrow keys.  If your
  terminal does not have such keys, you may use
       ^H, ^J, ^K, or ^L,
  (where "^H" means Control-H, etc.) for LEFTARROW,
  DOWNARROW, UPARROW, and RIGHTARROW, respectively.
  (Hereinafter, the arrow keys will be generally be
  called arrow.)

  In general, when you want to type a coordinate,
  you may instead type a series of arrows as above.
  For example, if the cursor is at cell A1, and you
  wish to type
       1+C1+2
  you may instead type
       1+ -> -> +2
  where -> means RIGHTARROW.  (The spaces in the
  above line are there just for clarity and need not
  be typed.) The cursor moves as you type the
  arrows, and then goes back to its original
  position when you type the second +.  The
  advantage of using this method is that you can
  indicate a nearby cell without paying attention to
  its coordinates.

  To move more than one cell at a time, type
       > coord RET
  where RET is a carriage return.  Coord above may
  be a fully specified coordinate, such as B10, or
  it may be partially specified if you wish to go to
  a cell in the same row or column as the cursor.
  For example, if the cursor is at location B2, you
  may go to location B10 by typing either
       > B10 RET
  or
       > 10 RET

  Similarly, from B10 you may move the cursor to G10
  by typing either
       > G10 RET
  or
       > G RET

  To jump between windows (see the /W command), type
       ;

  The < command allows you to return to the first
  column or row of a table very easily.  You may
  think of it as the carriage return of a
  typewriter.  A margin is set by the /WM margin
  command. Thereafter, the location to which the
  cursor moves depends on the last arrow typed.  If
  the last arrow was a RIGHTARROW, typing < moves
  the cursor one row down and to the column set by
  /WM.  If the last arrow was DOWNARROW, < moves the
  cursor one column to the right and to the set
  margin's row.  If the last arrow was LEFTARROW, <
  moves the cursor one row up and to the set
  margin's column.  If the last arrow was UPARROW, <
  moves the cursor one column to the left and to the
  set margin's row.  Thus, to enter a table of
  numbers, you can set the left margin with /WM,
  type the numbers across the first row using
  RIGHTARROW to move across the row, and, when you
  reach the end of the first row, type <.  The
  cursor will move to the first column in the second
  row.  Similarly, you can enter the table a column
  at a time with DOWNARROW and <.  You can traverse
  the table backwards with LEFTARROW or UPARROW and
  <.
\EOT\

Name=Special Chars
Llabel="SPECIAL  CHARs"
Slabel="CHARS"
Branch=The Sheet, Files, Bugs
Title="Special Characters"
Text=
  DEL  (DELETE, called RUBOUT on some terminals).
       Erase the character just typed.  If you are
       several levels into a menu, DEL should back
       you up one level.  The present implementation
       of vcalc allows the reverse slash '\' as a
       synonym for DEL.  Previous versions of vcalc
       expected ESC instead of DEL; use of ESC is
       now discouraged.

  ^C   Cancel or abort the current command.

  ^E   Enter the edit mode (see /E) from within the
       the middle of typing data such as the
       contents of a cell or a file name.  If a
       default response is being displayed, you may
       edit the default by immediately typing ^E.

  ^R   Redraw the screen if it becomes corrupted.

  !    A one character command to recalculate the
       values of all the cells in the sheet.
       Recalculation is normally done whenever a
       value cell receives a new entry, but ! may be
       used if this feature has been disabled by the
       /GRM command.

  /    Initiate a slash command as described below.

  Note that, in general, when an upper case
  (capital) letter is required for a menu selection,
  you may type either upper or lower case.  Lower
  case characters are interpreted as their upper
  case equivalents everywhere except in labels (and
  in labels, too, if the /GLU command has been
  invoked).
\EOT\

Name=Cells
Llabel=" CELLS"
Slabel="CELLS"
Branch=The Sheet, Files, Bugs
Title="Cells"
Text=
Empty Cells
  These cells are displayed as blanks.  When the
  program begins, all of the cells are empty.  You
  may reset one or more non-empty cells to the blank
  state with the /B command (see below).

Label Cells
  Label cells display alphanumeric information about
  the sheet.  To enter a label at the cursor
  position, type the single quote character (')
  followed by the text of the label.  If the label
  text begins with a letter, the quote is
  unnecessary.  If a left-justified label is too
  wide to fit in the present cell and the cell to
  its right is empty, the text will overflow into
  that cell (and empty cells to the right of that).
  Similarly, a right-justified label may "underflow"
  into empty cells to its left.  See the /F1 command
  to see how to left or right justify a cell.

  Remember that you may edit what you've typed by
  typing DEL (to erase) or ^E.  You also may abort
  the label assignment by typing ^C.

  The text string is terminated by your typing RET.
  Alternately, you may type one of the arrow keys to
  terminate the string and simultaneously move the
  cursor one cell to the left, down, up, or right.

  Label and empty cells have value zero when
  referenced in arithmetic expressions.  (They are
  actually ignored when they appear in ranges in the
  argument lists of arithmetic functions.  See
  Functions below.) Label cells may, however, be
  referenced in value cells which perform operations
  on strings.

Repeating Labels
  Repeating labels are like regular labels in every
  way except that the character or characters in
  them is/are repeated to the end of the column
  (without continuing into the next column.)

  To enter a repeating label, type " (double quote)
  followed by the character or characters.  For
  example, if you want the cell at the cursor
  position to be filled with dashes, type
       "-

Value cells
  A value cell contains a formula for a numeric or
  string value.  The value is generally shown on the
  spreadsheet proper; its formula is shown on the
  Entry Line.  The numerical values of value cells
  are stored as double precision floating point
  numbers.  Enter a value cell by typing its
  formula.  For Example:
       1+A2*SIN(A1*PI)

  Note that if the formula starts with a letter
  (i.e. a function name or coordinate), you will
  have to precede it with a plus sign so that it
  isn't interpreted as a label.

  Valid formula tokens are:

  ^    Exponentiation operator.  For example, the
       value of
	    2^3
       is 8, because 2*2*2 is 8.

  * /  Multiplication and division operators.

  + -  Addition and subtraction operators (unary and
       binary).

  < > = >= <= <>
       Relational operators

  &&   Logical And (See also the AND function)

  ||   Logical Or (See also the OR function)

  ( )  Parentheses

  coord
       A coordinate, either of the form AB123 or as
       a series of arrows.  This represents the
       value of the indicated cell.

  function
       A function, with arguments if appropriate.  A
       list of the valid functions is given below.

  number
       A number, with optional decimal places and
       optional power of 10 exponent.  An example is
       12.34E-4 .

  string
       A string is a series of characters enclosed
       in single quotes.  Strings, like label cells,
       have a numerical value of zero.  Thus, the
       value of
	    2+'abcd'
       is 2.  Certain functions, including MAX(),
       MIN(), CHOOSE(), INDEX(), and IF(), may
       accept arguments which are strings or labels.
       Thus, for example, the expression
	    +MAX('abc','xyz','def')
       has a value of 'xyz'.

       The expression
	    +MAX('abc',2,'def')
       has value 2 because numbers are selected
       preferentially over strings (just as numbers
       and strings are selected preferentially over
       empty cells in ranges).

       Strings may also be compared by the
       relational operators.  Strings are compared
       according to the ASCII collating sequence.
       Thus, 'b' > 'a', and 'a' > 'A', etc.  A cell
       whose expression evaluates to a string will
       display the string, just as if the cell were
       a label cell.

  The exponentiation operator ^ has the highest
  priority; relational operators have the lowest.
  Thus, the expression
       1+2*3^4
  is equivalent to
       1+(2*(3^4))
  or 163.

  There also are two special characters that may be
  typed when you are entering an expression:

  !    Replace the expression typed so far with its
       numeric value.

  #    Replace the coordinate just typed (default is
       the present coordinate position if none was
       typed) with its value.  For example, if the
       cursor position cell is the value 16.34 and
       you want to add 2 to it, you may type
       #+2 RET
  The new cell expression (and value) will be 18.34
  .

  If you type a character inappropriate for the
  expression, an error message will be displayed,
  and the character will not be accepted.

  Like labels, value entries are terminated with RET
  or an arrow.
\EOT\

Name=Functions
Llabel="FUNCT'NS"
Slabel="FUNCTs"
Branch=The Sheet, Files, Bugs
Title="Functions"
Text=
  Function names are character strings.  Some
  functions require one or more arguments in
  parentheses; others do not take arguments.

  In the list below, the following nomenclature is
  used:

  v    Any value, such as a number, coordinate,
       function, or expression.

  l    Any logical value.

  list A combination of values and ranges separated
       by commas.

  range
       A number of contiguous cells, specified by
       the beginning coordinate, a dot (displayed as
       an ellipsis), and the end coordinate.  For
       example,
	    A10..A20
       means "all of the cells between A10 and A20,
       inclusive."
	    A10..C20
       means all of the cells in the block or
       rectangle bound by A10 at the upper left and
       C20 at the lower right.

       Note that empty or label cells in ranges in
       function argument lists are ignored.  Thus
       you may "double space" entries if you so
       desire.  You also may put blank cells or
       labels on either end of a range and then not
       have to worry about retyping expressions
       referencing the range if you later insert or
       delete rows or columns at the ends (see /I
       and /D).

  The functions and special values are:

  FALSE
       The logical value FALSE This is identical to
       the number 0.

  TRUE The logical value TRUE.  This is identical to
       the number 1.

  ERROR
       Makes all expressions referencing the value
       display ERROR.  This is also displayed as the
       value of expressions with illegal
       computations (such as dividing by 0).

  NA   Makes all expressions referencing the value
       display NA.

  PI   3.141592653589793238

  INT(v)
       Integer portion of v.

  ABS(v)
       Absolute value of v.

  ROUND(v1,v2)
       Round v1 to the nearest v2.  For example,
	    ROUND(175,100)
       is 200 because 200 is the closest multiple of
       100 to 175.

       Similarly
	    ROUND(17,5)
       is 15.

  MOD(v1,v2)
       The remainder of v1 divided by v2.  For
       example
	    MOD(9,4)
       is 1 because 9 divided by 4 is 2 with a
       remainder of 1.

  AVERAGE(list)
       Average of the values in list.

  COUNT(list)
       Count of the numerical entries in list.
       Recall that empty and label cells in ranges
       are ignored.

  SUM(list)
       Sum of the values in list.

  MAX(list)
       Maximum value in list.

  MIN(list)
       Minimum value in list.

  NPV(dr,list)
       Net Present Value of the cash flow in list,
       discounted at the rate dr.  The formula is
	    NPV = v1 / DR + v2 / DR^2 + v3 / DR^3 +
	    ....
       for DR = dr+1, v1 = item one of list, etc.

  EXP(v)
       Natural exponential.

  LN(v)
       Natural logarithm.

  LOG10(v)
       Common logarithm.

  SQRT(v)
       Square root.

  ACOS(v)
       Arccosine in radians.

  ASIN(v)
       Arcsine in radians.

  ATAN(v)
       Arctangent in radians.

  COS(v)
       Cosine (angle in radians).

  SIN(v)
       Sine.

  TAN(v)
       Tangent.

  FACT(v)
       Factorial.

  CHOOSE(v,list)
       The function's value is the value of the vth
       element in list.  If v is non-integral,
       truncate it to the next lower integer.  If v
       is 0 or greater than the number of items in
       list, the function's value is NA.  As an
       example, the value of
	    CHOOSE(2,10,20,30)
       is 20.

       Also, the value of
	    CHOOSE(2,'abc','xyz','def')
       is 'xyz'.

  INDEX(v,list)
       Find the largest value in list that is less
       than or equal to v.  The value of the
       function is the relative position of that
       value in the list.  If no value in list is
       less than or equal to v, the function's value
       is NA.

       As an example, the value of
	    INDEX(20,10,20,30)
       is 2.  Also, the value of
	    INDEX('xyz','abc','xyz','def')
       is 2.

  IF(l,v1,v2)
       v1 if l is TRUE, else v2.

  AND(list)
       The logical AND of all the items in list.
       For example, the value of
	    AND(5>4,4>3,3>2)
       is TRUE, and the value of
	    AND(5>4,4>3,3<2)
       is FALSE.

  OR(list)
       The logical OR of all the items in list.  For
       example, the value of
	    OR(5>4,4<3,3<2)
       is TRUE, and the value of
	    AND(5<4,4<3,3<2)
       is FALSE.

  NOT(l)
       The logical negation of l.  For example, the
       value of
	    NOT(3>2)
       is FALSE.

  ISERROR(v)
       TRUE if v is ERROR, else FALSE.

  ISNA(v)
       TRUE if v is NA, else FALSE.
\EOT\

Name=Commands
Llabel="COMMANDS"
Slabel="COMMANDS"
Branch=The Sheet, Files, Bugs
Title="Commands"
Text=
  /B   Blank - Erase a cell or cells to EMPTY.  You
       will be prompted for the range of cells to be
       blanked.  Type the desired coordinate or
       range, and terminate the command with RET.
       The default is just the cell at the cursor
       position.  That is, if you do not type a
       coordinate or range, vcalc will take the
       default action of blanking the cell at the
       cursor position.

  /C   Clear - Clear the worksheet, and revert to
       initial window and format configurations.
       The program will prompt you for a Y to
       confirm that you really want to do this.

  /D   Delete - Delete one or more partial or
       complete rows or columns.  The command asks
       you for several pieces of information.  First
       you are asked for a number indicating the
       number of rows or columns to be deleted.  If
       you do not type a number, 1 is assumed.
       Follow the number (or lack thereof) with R or
       C to indicate whether you wish to delete rows
       or columns.  Finally, you are asked for an
       indication of where to delete from.  Type a
       coordinate or range followed by RET.  The
       default is the row or column in which the
       cursor rests.

       For example:
	    /D 2 R 15 RET
       means that you want to delete two complete
       rows starting at row 15.  Rows 15 and 16 are
       deleted.

	    /D 2 R C15..E15 RET
       deletes two partial rows.  Cells C15..E15 and
       C16..E16 are deleted.

       Cells below or to the right of the deleted
       area are shifted up or to the left to fill in
       the created gap.  All references throughout
       the worksheet to coordinates in the area
       below the deleted area are adjusted to
       reflect their shift in position.  Any
       references to the deleted area itself receive
       the value ERROR.

  /E   Edit - Allow editing of the contents of the
       cell at the cursor position.  Typing
       LEFTARROW backs you up one cell, RIGHTARROW
       moves you one cell forward, UPARROW puts you
       at the beginning of the entry, and DOWNARROW
       puts you at the end.  DEL erases the
       character to the left of the edit cursor, and
       any other character will be added at the
       cursor position.  Terminate it all with RET.

       If you are editing a value cell and you
       introduce a syntax error into the expression,
       the error will not be noticed until you type
       RET.  You will then see an error message, and
       you will remain in edit mode, with the cursor
       at the position immediately after the error.

       Recall that you may enter the edit mode while
       initially entering a cell expression (or
       other data to be terminated by RET) by typing
       ^E.

  /F   Format - Specify the format of a cell or
       cells.

       Specify the domain for the format
       specification with one of the characters E,
       C, R, or W:

       E    indicates that the specification is
	    valid for the single entry only.

       C    indicates that it applies to the entire
	    column,

       R    that it applies to the row, and

       W    that it applies globally to the present
	    window (see /W).
       In case of conflict, the entry specification
       has highest priority, followed by column,
       row, and window with lowest priority.

       You must then enter the relevant format
       specifications for the specified domain.
       Enter one or more of these specifications,
       followed by a RET or an arrow.  Possible
       specs are:

       D    Default - Default to the specs of the
	    next lower priority domain.

       E    Exponential - Force the entry to be in
	    exponential format (scientific
	    notation).

       F    Fixed - Force the entry to be in fixed
	    point format.  That is, it will never be
	    in exponential format.  For example, the
	    value 31.4 will be displayed as 3.14e1
	    in E format and as 31.4 in F format.

       G    General format - Display values in
	    either fixed or exponential format,
	    depending on which will show the most
	    significant figures.

       ,    Comma format - Display values exactly as
	    in the F fixed format, but with commas
	    separating thousands to the left of the
	    decimal point.  Thus, 1000000 is
	    displayed as 1,000,000 with the comma
	    format.

       *    Graph format - Replace values with an
	    appropriate number of stars.

	    Note that E, F, G, and * are mutually
	    exclusive.  If one of those has been
	    specified and you wish to instead
	    default to the spec of the next lower
	    priority domain, type the appropriate
	    character followed by D.

       L    Left - Align entries with the leftmost
	    column of their cell.  This is the
	    default alignment for labels and *'s.

       R    Right - Align entries with the rightmost
	    column of their cell.  This is the
	    default alignment for values displayed
	    as numbers.

	    L and R are mutually exclusive.  If one
	    has been specified and you wish to
	    instead specify the alignment of the
	    next lower priority domain, type the
	    appropriate character followed by D.

       P    Specify the number of decimal places
	    with E and F formats.  You may type a
	    number between 0 and 13.  Alternatively,
	    you may type V to specify that the
	    precision should be varying, according
	    to how many significant decimal places
	    can fit in a column.  Finally, you may
	    type D to indicate the precision should
	    default to that of the next higher
	    domain.  Note that the precision is
	    ignored when the G or * spec is enabled.

       C    Specify the column width (valid only
	    with global and column domains).  Follow
	    the C with a number, which must be
	    greater than or equal to 3 and less than
	    or equal to the present window width.
	    For the column domain, you may type D
	    instead of a number in order to default
	    to the global width.

       W    Specify write protection for the
	    indicated cell(s).  Follow W with Y to
	    enable write protection, N to disable
	    protection, and D to use the default.  A
	    write protected cell may not be
	    overwritten by a succeeding command or
	    operation.  If you try to change the
	    contents of a write protected cell,
	    vcalc will ask you if you really wish to
	    change it.  The change will take place
	    only if you respond with Y.

       For example,
	    /FEFP2
       indicates that you want the cell at the
       cursor position to have two decimal places in
       fixed format.

	    /FWC6 RET
       indicates that you want the window containing
       the cursor to have columns 6 characters wide.

	    /FC*RPDCDWY
       indicates that you want the column containing
       the cursor to have right aligned "star"
       format, with default decimal places and
       column width, and write protection turned on.

       The initial state of the sheet is:
	    /FWGPVWYC9 /FRD /FCD /FED
       for all rows, columns, and entries.

  /G   Global - Specify or display global parameters
       and flags.

       /GO  Order of recalculation.  Normally, when
	    the values on the sheet are calculated,
	    the program runs down the first column,
	    then down the second column, and so on
	    to the last column.  But your data may
	    be arranged so that the value of one
	    cell depends on the value of a cell to
	    its right.  In case, the value of the
	    dependent cell will not be right after
	    one pass through the sheet.  For
	    example, if you have
		 A1: 20          B1: 10+A1
		 A2: 5*B1        B2: whatever
	    you can see that if you type a new value
	    for A1 the new value for A2 will be
	    calculated before B1 is recalculated.
	    Since A2's new value depends on the new
	    value of B1, A2's value will be wrong.
	    If you type !, the sheet will be
	    recalculated, and A2 will get the proper
	    value because it will use B1's new value
	    this time.  But there is a better way to
	    handle this situation.  You can type
		 /GOR RET
	    to specify that the calculations are to
	    proceed in "row major order", i.e.  that
	    the first row will be calculated, then
	    the second row, and so on to the last
	    row.  You of course may reset the order
	    to the default with
		 /GOC RET

	    In the interest of efficiency, it is
	    recommended that you arrange the
	    formulas in your sheet so that they will
	    all receive the proper values in one
	    pass, either in row major or column
	    major order.  But there may be some
	    instances where this is not possible.
	    In these cases, you may specify multiple
	    passes.  For example,
		 /GORC RET
	    specifies that the sheet is to be
	    calculated twice on recalculations.  The
	    first calculation is in row major order,
	    the second in column order.  You may
	    have any combination of R's and C's, but
	    remember that each pass adds to the time
	    of recalculation.

       /GR  Automatic recalculation flag.  Normally,
	    whenever a value cell is written to, the
	    entire sheet is recalculated.  This is
	    an important feature of vcalc, but
	    sometimes it can slow you down when you
	    want to enter a lot of data without
	    having to wait for the values to be
	    recalculated and the screen redrawn for
	    each entry.  Disable the automatic
	    calculation by typing
		 /GRM

	    You can still do recalculation manually
	    with the ! command, and you can reset
	    automatic calculation with
		 /GRA

       /GS  Show pertinent parameters on the prompt
	    line.  These parameters include the
	    column, row, and global formats, title
	    fixing status (see /T), and the amount
	    of memory used in storing the sheet.
	    The information remains on the screen
	    until you type a character for the next
	    command.

       /GL  Label upper/lower case flag.  You may
	    want all or most of your labels to be in
	    upper case (capitals).  This flag allows
	    you to type lower case letters and have
	    them appear as upper case in the labels.
	    (When you hit the shift key, the upper
	    case letters you type are mapped to
	    lower case.)

	    This flag is initially disabled, so that
	    label characters are stored "as typed".
	    To turn it on, type
		 /GLU

	    To turn it back off, type
		 /GLL
  /I   Insert - Insert one or more empty partial or
       complete rows or columns.  You are prompted
       for a number, an R or a C, and a range
       indicating where the new cells are to be
       inserted.  As in the /D delete command, 1 is
       the default number, and the present row or
       column is the default position.

       For example, if you type
	    /I 2 R 15 RET
       two new rows will be inserted above row 15.
       If you type
	    /I 2 R C15..E15 RET
       six new cells will be inserted, two above
       C15, two above D15, and two above E15.

       Cells at and beyond the insertion position
       are shifted down or to the right to make way
       for the insertion.  All references throughout
       the worksheet to coordinates in the area
       below to the right of the inserted area are
       adjusted to reflect their shift in position.

  /M   Move - Move one or more partial or complete
       rows or columns to another position in the
       sheet.  You will be prompted for a number, R
       or C, and two ranges.  The first range
       indicates the starting location of the moved
       cells, and the second range indicates the end
       location.

       For example, if you type
	    /M 2 R 15 RET 20
       rows 15 and 16 will be moved to the position
       before row 20, i.e. between rows 19 and 20.
       Row 17 will be shifted up into the row 15
       position, 18 into 16, and 19 into 17.  The
       old 15 thus becomes row 18, and 16 becomes
       row 19.

       If you type
	    /M 2 R 15 RET 10
       rows 15 and 16 are moved to the position
       before row 10, i.e. between rows 9 and 10.
       Rows 10 through 14 are shifted down to make
       room.

       If you type
	    /M 2 R C15..E15 RET 10
       the six cells C15..E15 and C16..E16 are moved
       to above row 10.

       All references throughout the worksheet to
       coordinates in the area affected by the move
       are adjusted.

       Note that rows may be moved down or up and
       columns left or right.  There is no way to
       move a group of cells simultaneously down and
       to the right.

  /P   Print - Print all or part of the sheet.  You
       first are prompted for options.  If the
       default options are satisfactory, just type
       RET.  To change one or more options, type O.
       The options that appear are:

       Top  - Type T to change the size of the top
	    margin on each printed page.  The
	    default is 5 lines left blank on each
	    page.

       Margin
	    - Type M to change the size of the
	    left-hand margin of each printed page.
	    The default is 10 blanks at the
	    beginning of each line.

       Lines
	    - Type L to change the number of lines
	    printed on each page.  The default is
	    56.

       Width
	    - Type W to change the maximum number of
	    characters typed on each line after the
	    left margin.  The default is 65.

       Page length
	    - Type P to change the total length,
	    including top margin, printed matter,
	    and bottom margin, of each printed page.
	    The default is 66 lines.

       After typing an option, you may type a colon
       (':') to see the list of options again or
       else just type the letter for one of the
       options.  After you finish specifying the
       options, type RET to return to printing, or
       type Q to quit the print command.

       You are prompted for the range of cells to be
       printed.  The default is the whole sheet.
       You will then be prompted for an F or P,
       specifying whether you want to direct your
       output to a file or to a printer program.
       Note that the "program" may actually be a
       UNIX pipeline.  Finally you are asked for the
       name of the file or program.  Type the name,
       followed by RET.  (Note that if you wish to
       use the default specified the last time you
       executed the /P program, you may just type
       RET.) The indicated cells are printed just as
       they should appear on your screen in the
       present window.

       Vcalc prints as many rows and columns as can
       fit onto each page.  Anything left over is
       continued on succeeding pages.

  /Q   Quit - You can quit vcalc by typing
	    /Q
       You will be prompted for a confirming Y.

       In an emergency, you can quit without the
       confirming Y by typing ^| or your standard
       Quit character.

  /R   Replicate - Copy a cell or cells to another
       position(s).  The contents of the source
       cells, including format information, is
       copied.  You must specify both the source and
       the destination, with a RET in between.  Both
       the source and destination may be single
       coordinates or ranges.

       For example, to copy cell A2 to D10, type
	    /R A2 RET D10 RET

       To copy column A1 through A20 to a position
       beginning at B1, type
	    /R A1..A20 RET B1 RET
       Location A1 will be copied to B1, A2 to B2,
       etc.

       If the destination is a range, the source
       cell or cells will be copied multiple times.
       The source block will be copied to a group of
       adjacent block positions, each of whose upper
       left hand corner is in the specified
       destination range.  For example, to copy cell
       A1 to the whole sheet (not recommended), type
	    /R A1 RET A1..BK254 RET

       To copy row B2 through E2, making several
       copies beginning at M5 through M20, type
	    /R B2..E2 RET M5..M20 RET
       Cells B2..E2 will be copied to M5..P5, and
       also to M6..P6, etc.

       To copy block A1..B2 to the four locations
       beginning at E6, G6, E8, and G8, type
	    /R A1..B2 RET E6..G8 RET

       If a coordinate is omitted, it is assumed to
       be the present location.  For example, if the
       cursor is at A1, you may copy A1 through A10
       to the position beginning at D1 by typing
	    /R .A10 RET D1 RET
       The "default" coordinate will be displayed to
       remind you that you've indicated it.

       When you copy a formula that has coordinates
       in it, you may want the coordinates in the
       copy to be adjusted to take account of that
       fact.  For example, if cell A1 has the value
       1 and cell A2 has formula 1+A1 and value 2,
       you may want to put 1+A2 in cell A3 and so on
       down to 1+A19 in A20 so you'll have a column
       of the numbers 1 through 20.  You may type
	    /R A2 RET A3..A20
       You then will be prompted with a question
       asking whether you want A2 in the formula to
       be copied "No Change", "Relative", or
       "Value".  Type R to make the coordinate in
       the copy relative to its new position.  If
       you had wanted the coordinate to remain as
       A1, so you'd get the value 2 in A3..A20, you
       would have typed N for no change.  You will
       be similarly prompted for each coordinate in
       each formula in the source range.  You may
       precede the N or R with a number to indicate
       that you wish the N or R to apply for that
       number of coordinate references.  This saves
       you having to type the same response time
       after time.  You may also precede the
       response with * to indicate that the response
       applies for the remainder of the coordinate
       references in the replicate.

       You may type V if you want expressions
       involving coordinates to be copied so that
       they are converted to their values alone.
       For example, if cell A3 is the expression
       1+A2, evaluating to 17, you may place the
       value 17 into cell B3 by typing
	    /R A3 RET B3
       and typing V when vcalc asks you for the
       disposition of the coordinate.

  /S   Storage - Save worksheets to files, and load
       from files.

       /SS  - Save a copy of the sheet in a UNIX
	    file.  You will be prompted for a file
	    name.  Type the name, followed by RET.
	    The file name may include shell
	    metacharacters such as * and ?, and may
	    include shell variables such as $HOME.
	    If the file already exists, you will be
	    prompted for a Y to confirm that it's
	    okay for the file to be overwritten
	    (this confirmation is unnecessary if the
	    file is being written by a command file
	    executed by /SL (see below)).  Saved
	    information includes the formulas and
	    formats of all the cells, windows,
	    columns, and rows, window information,
	    printout options, recalc order and
	    auto/manual options, and the default
	    label case flag.

       You may specify that /SS output is to be to a
       pipe to another program rather than a file by
       typing the program preceded by the '|'
       character when you are prompted for the file
       name.

       /SL  - Load a previously saved worksheet from
	    a file.  You will be prompted for a file
	    name.  Type the name, followed by RET.
	    Non-empty cells on your present sheet
	    will not be overwritten unless the saved
	    file had data in those positions.  You
	    can also use the /SL command to execute
	    a series of commands that are stored in
	    a Unix file.

	    You may specify that /SL input is to be
	    from a pipe to another program rather
	    than a file by typing the program
	    preceded by the '|' character when you
	    are prompted for the file name.

	    Note that specifying a file name on the
	    command line in invoking vcalc is
	    similar in effect to typing /SLfilename
	    as the first command.

       /SR  - Read data from a non-vcalc format
	    ASCII file.  You may wish vcalc to read
	    a table of numbers and/or labels that
	    were produced by another program or by a
	    standard text editor.  The /SR command
	    reads a file of data items separated by
	    some delimiter.

	    You are first prompted for one or more
	    delimiters.  Type the delimiters,
	    followed by RET.  For example, if your
	    input file consists of a list of numbers
	    separated by commas, type a comma and
	    RET.  The default delimiter is TAB.
	    Note that if two delimiters are read
	    without intervening characters, a column
	    is skipped.  For example, 2,,6 is
	    interpreted as 2, skipped column, 6.
	    This rule is not true for the SPACE
	    character as a delimiter.  That is, two
	    or more adjacent SPACEs character
	    delimiters are the same as one SPACE.

	    You next are prompted for characters to
	    be ignored.  For example, if the input
	    file has dollar signs in front of
	    numbers, you'll want to specify that
	    dollar sign is to be ignored because
	    vcalc does not understand the meaning of
	    these characters.

	    You are then prompted for the upper left
	    hand corner of the region to receive the
	    input.  Type a coordinate followed by
	    RET.  The default position is the cursor
	    position.

	    You finally are prompted for a file
	    name.  Type the name followed by RET.

	    Successive lines in the input file are
	    read into successive rows in the
	    spreadsheet.

       /SD  - Change directory.  You are prompted
	    for a directory name.  Type a name
	    followed by RET.  $HOME is the default.

  /T   Title fixing - You may find that you want to
       work on a distant corner of your worksheet
       while still keeping some column headers or
       other titles way up in the upper left of the
       sheet in view.  The title fixing feature
       tells the program that you want certain rows
       and/or columns to stay put while you scroll
       through the rest of the sheet.  The way to do
       this is to move the cursor to the lower right
       of the region you want to fix in place and
       type:
	    /TA RET or /TL RET or /TAL RET
       for fixing at and above the cursor, at and to
       the left of the cursor, or both.

       Type
	    /TN
       to negate column fixing.

  /V   Version.  Type /V to display the current
       version of the program.

  /W   Windows - You may split the screen either
       horizontally or vertically into two windows.

       /WH  splits the screen into a window above
	    the cursor position and a window below.

       /WV  splits the screen into a window to the
	    left of the cursor position and a window
	    to the right.

	    After the /W command executes, the
	    cursor will be in the first (left/upper)
	    window.  Type the character ; to jump
	    back and forth between the windows.

       /W1  returns the screen to the single window
	    state, effectively undoing a /WV or /WH.
	    The single window has the attributes of
	    the window that the cursor was in at the
	    command's invocation.

       /WS  synchronizes scrolling.  Thus, when one
	    window scrolls, the other one will also
	    (for example, you may want to
	    simultaneously examine the same rows in
	    two distant columns).  With vertically
	    separated windows, up and down scrolling
	    will be synchronized.  With horizontally
	    separated windows, right/left scrolling
	    will be synchronized.

       /WU  to disables the synchronization feature
	    (unsynchronizes the windows).

       /WM  Set a margin for use with the < command.
	    You are prompted for the position where
	    the margin is to be set.  Type a
	    coordinate followed by RET.  The default
	    is the current cursor position.

  /Z   Zone/Scroll - Shift the worksheet so that a
       different portion is displayed on the screen.

       A window is scrolled by following /Z with an
       arrow indicating the direction of scrolling.
       For example, if the screen currently displays
       columns A through H, and the cursor is at
       position D10, and you'd like to look at
       column I while keeping the cursor in column
       D, you can type
	    /Z RIGHTARROW

       The cursor stays at the same cell if that
       position is still on the screen.  The arrow
       may be preceded by an integer if you wish to
       scroll more than one column or row at a time.

       A second flavor of the /Z command allows you
       to shift the worksheet so that the coordinate
       on which the cursor lies is in one of 9
       positions on the screen.  Follow the /Z with
       a digit
	    1 2 3
	    4 5 6
	    7 8 9

       and then RET.  For example, /Z1 will put the
       cursor in the upper left corner of the
       screen, /Z2 puts it at the upper center, /Z5
       puts it at the center, etc.

       Note that the movement may only be
       approximate and that there are constraints
       placed by the size of the sheet.  For
       example, with the cursor at A1, typing /Z9
       will have no effect because there are no
       cells which can appear to the upper left of
       A1.  Also, the zone command has no effect if
       the cursor is in an area fixed in place by
       the /T command.

  /!   Shell escape - Execute a single command via
       the UNIX shell.  Type /! and a command name.
       The screen will be cleared and the command
       will execute.

       If you want to execute an interactive shell,
       type
	    /!sh

       When the command finishes, type any character
       to redraw the worksheet, or type another ! to
       execute another shell escape.
\EOT\

Name=Miscellaneous
Llabel=" MISC"
Slabel="MISC"
Branch=The Sheet, Files, Bugs
Title="Miscellaneous"
Text=
  If your terminal line is dropped, the program will
  save your sheet in file $HOME/vcalc.hup .  If you
  have not specified shell environment $HOME, the
  program will save the sheet in the file
  ./vcalc.hup .

  Invoking vcalc with the flag -v causes vcalc to
  display its version number and exit.

AUTHOR AND BUG REPORT SINK
  Tom Skrobala
  AT&T Information Systems Laboratories Middletown
\EOT\

Name=Files
Llabel="FILES"
Slabel="FILES"
Branch=Overview
Title="Files"
Text=
  /etc/termcap
  /tmp/vcp??????
  $HOME/vcalc.hup
\EOT\

Name=Bugs
Llabel=" BUGS"
Slabel="BUGS"
Branch=Overview
Title="Bugs"
Text=
  Some arithmetic overflow conditions are not
  caught.

  -x^n (unary minus) is treated as (-x)^n instead of
  -(x^n)

  /WV with cursor in last column on screen is buggy
  for certain column width combinations.

  Terminal character insert/delete capabilities are
  not fully exploited.

  Repeating labels referenced in value cells act
  like non-repeating labels, i.e. the expression
       +A1
  where A1 is the repeating label "- , displays as a
  single dash.

  Doesn't handle "standout" (e.g. reverse video)
  mode properly for some terminals.  For some
  terminals this fault is recognized automatically,
  and standout mode is disabled.  For others, you
  must explicitly disable it with the '-' flag.  For
  some terminals, there are only intermittent
  problems, which can be cleared up by typing ^R to
  redraw the screen.

  The program can be very picky about what value you
  give to your $TERM variable.  For example,
  specifying TERM=hp when you should have TERM=2621
  or vice versa will cause standout problems.

  Some terminals send ^| for their arrow keys.
  People using these terminals must make sure that
  their terminal "Quit" character is set to
  something else.
\EOT\
