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\