VisiCalc: Reason Enough for Owning a Computer

Doug Green

Ideally your computer should be able to act like a cross between an electronic piece of paper and a pocket calculator. That seems to be just what the people at Personal Software, Inc. had in mind when they developed VisiCalc. VisiCalc is not merely a piece of interactive software, but in some respects is more like a separate programming language. It is extremely powerful, and handles many varied jobs with aplomb. When used properly it can save a great deal of time that would ordinarily be spent programming or using several pieces of software. VisiCalc cannot do some of the things that high level languages can do, but what it can do, it does very well indeed.

It takes much less time to learn virtually everything there is to know about the VisiCalc system than it takes for any other programming language you can think of. In my case it took about seven days averaging about one and one-half hours a day to become conversant with all that VisiCalc has to offer. This is in sharp contrast to the various high level programming languages that demand much more of the learner in exchange for their greater flexibility.

Not only does it take only a short period of time to understand the entire VisiCalc system, but it takes almost no time to begin getting results from this remarkable piece of software. This is an opinion that I share with everyone that I have demonstrated this system to, as well as several people in the computer business who already use VisiCalc or supply it to other users.

A Window Into The Computer's Memory

After you load in the VisiCalc disk you will have the basic electronic sheet of paper on your screen. As you can see from Photo 1, it has 20 rows and four columns. Each location in this grid is identified by the number of the row and the letter-code at the top of the column, for example, A1. The cursor in VisiCalc is much wider than the usual single-character cursor; it takes up the entire entry that it occupies on the grid.

Any entry on the sheet can either be a number, a word, or a function of the contents of other locations. This is one of the reasons that VisiCalc is so powerful. Whenever a location is changed by the user, all of the locations that depend on it are automatically recalculated. It is this aspect of VisiCalc that is so striking and so useful.

Let us say you have told the VisiCalc sheet to derive column C in someway from columns A and B. Then if, for some reason, you change any of the values in columns A or B, new results in column C will be displayed automatically. This is like using FOR . . . NEXT commands in immediate mode without ever having the contents of your memory leave the screen.


Photo 1.

Although what you see is limited by the number of spaces that can be displayed on your screen at once, the electronic sheet is actually much larger. There are 254 rows and 63 columns where information can be stored, and the amount you can store is limited more by the size of your computer's memory than it is by the VisiCalc sheet.

Keeping track of the remaining memory is very simple since it is constantly displayed in the upper right hand corner of the screen.

You may only see 20 rows of data at one time, but the number of columns can be varied by changing the width of the columns. You can also store more information in one of the grid locations than it appears able to hold. The system will remember exactly what was entered regardless of how narrow you choose to make the visible columns. The screen will display as many characters as you allow for, beginning from the left of your input.

In addition to the grid, there is space at the top of the screen where other important information is displayed.

The white bar displays the contents of the location where the cursor is currently residing. This can either be a value (v) or a label (i). These terms are analogous to numeric and alphanumeric variables that one deals with when using Basic; except just a value can be an expression referring other locations in the table.

Two Independently Scrollable Windows

If you are not satisfied with the information that you can see on the screen at one time, you can split the screen in either the horizontal or vertical direction and look at whatever portion of the sheet you like in either window. A common use of this feature is to display the upper left corner of your sheet in the left window while the lower right portion of your work is displayed in the right window. That way you can change your initial entries and watch your totals change at the same time. Photo 2 shows an example of how this might be put to use while analyzing the family budget for the upcoming year. Instead of wondering idly what would happen to your savings for the year if the electric bill goes up five dollars a month, you can find out just by typing over the information that you would like to see changed. As you might guess, this will change the entire row that lies beyond the changed data, along with all of the column totals that depend on these figures.


Photo 2.

The Replication Feature

Another impressive feature of this system is the ability to replicate similar functions down a row, across a column, or in both directions at once. For example, if you wish to have VisiCalc derive values for column C by subtracting those in column B from the corresponding values in column A, all you need do is type in the directions for the first location in column C along with directions for replication. This will cause column C to be completed in an instant.

If you are trying to complete a table of entries that depends on the values stored in the top row and the left hand column, all you need do is supply the directions for the entry located at row two, column two along with the replication commands and the screen will fill before your eyes, much faster than most users could type in the specific formulas to perform such a task.

Cursor Control

The <- and -> keys are used to move the cursor from side to side and up and down, while the space bar is used to change the direction of cursor movement from horizontal to vertical and back. For rapid movement you can hold down the repeat key. There is also a GOTO command that allows you to move the cursor to any location on the sheet with just a few keystrokes.

The little dash in the upper right hand corner of the sheet tells you which way the cursor is currently prepared to move. The letter next to this dash, either a C or an R, lets you know the current direction that the recalculation will occur in. You can instruct VisiCalc to recalculate down the columns (C) or across the rows (R). This will depend on how you have set up the entries in your table.

The ESC key is used to recover from simple typing mistakes. If you press it often enough it will erase all that you have typed in since you last hit the return key. As you enter data for a given location it appears on the so-called prompt line, the line between the white box at the top of the sheet and the grid. When you close an entry by hitting return, or moving the cursor to another location on the page, the contents of the prompt line are calculated (if necessary) and placed in the location on the grid that you have just dealt with.

More Functions And Commands

There are a number of other functions that are available to VisiCalc users. These are all listed in Table 1, but a few deserve special mention. The sum function is especially useful to anyone dealing with columns of numbers that must be added. (Think of all the time operators of small businesses can save by not having to bang number after number into a calculator. With VisiCalc they only need to be written once.) You can also ask for the average of a range of values along with other common functions used in business, science, and mathematics.

The list of commands is also impressive. With a few key strokes you can blank out any location, add or delete a row or column, move a row or column to a new location on the page, or repeat a number or letter across any location in the grid. This last command is especially useful for drawing lines across the page like those in Photo 1. There are a number of commands that can change the format of a given location or the entire window that the cursor is located in. The choices for these format commands include: general, integer, dollars and cents, left- or right-justified columns, and graphing. This final command can be used to construct simple bar-graphs for information displayed in a range of entries selected by the user. This is shown in Photo 3.


Photo 3.

Other commands couple or uncouple the movements of pairs of windows, fix the titles on the screen as the cursor moves down or to the right, and replicate formatting across a whole column or row, or the entire contents of the current window. These commands require between two and five keystrokes each depending on what is being accomplished. (The Clear command requires three keystrokes, a fact that saved me from clearing the VisiCalc sheet at a time when I was really trying to do something else.)

VisiCalc manages its own storage in its own format. It provides storage commands allowing you to save files on disks or cassette tapes, load files from a disk or a cassette, delete a file from a disk, or initialize a blank disk so that it will be ready to receive VisiCalc files for storage. It is easy to ask for a list of the file names on a given disk. You can also print the contents of your sheet on a disk as a "text file." This file can be read by other programs in Basic, for example, and the information can be further processed in this manner. (This feature permits you to perform whatever other functions you may feel are missing.)

Similar commands will result in the printing of your electronic sheet by your printer. The output will be what is actually on the sheet, as opposed to what appears in the window, so be sure to pay attention to the line width of your printer. In any case you can specify the portion of the page that will be printed with the issuance of the proper print command.

Stay Tuned

Your purchase of the VisiCalc package includes an instruction book that contains an introduction and four lessons. As I read through the book and carried out the examples I found the text to be easy to understand. The explanations were certainly cleaner and better than those I have seen in most systems programing manuals. Along with the book, which is in a handsome 10 x 7 1/2 inch three-ring binder, you receive the VisiCalc reference card. This contains a summary of all of the VisiCalc commands and functions and is extremely useful for users who are new to the system. It would also be invaluable to infrequent users. When you send in your warranty card you will receive the first copy of the VisiCalc Newsletter free. Original owners are also protected from any defect in the disk for 90 days, and replacement thereafter for $15.00.

The people at Personal Software, Inc. are planning to improve the system and offer the updated versions to original owners at a reduced price. They also encourage users to suggest changes and additions to improve the system. As a VisiCalc user I would suggest that they add some of the more commonly used statistical functions to those listed on Table 1. The ones that I would suggest would be: standard deviation, one or more correlation coefficients, and perhaps the ability to do a t-test and a least-squares linear regression; but new functions, must use up too much memory.

Machines And Memory Requirements

Although the version I used was designed for an Apple system, it will soon be available for other makes of small computers including Pet and Atari. It is only available on disk and requires a minimum of 32K of RAM. Additional memory will allow for the storage of a much larger electronic sheet but all of the systems' features are available for users of 32K systems.

The version that I used (version 35) requires 23K for the resident program. This means that for a 32K system there remains only 9K for storage of the electronic sheet. This still allows for a reasonable amount of storage, but for most business applications it would be a good idea to have 48K available.

Worth The Money?

If you are in business, the chances are that the cost of a VisiCalc disk will be one business expense you will gladly bear. The current suggested retail price is $150.00. This may be a bit steep for someone who only needs to do his check book and the family budget, but for almost anyone in business, education, or any science-related field it is not only worth the initial expense, but reason enough to purchase a small computer system in the first place.

VisiCalc Functions








Calculates the sum of the values in a list
Calculates the minimum value in a list
Calculates the maximum value in a list
Results in the number of non-blank entries in a list
Calculates the average of the non-blank values in a list.
The maximum number of values in the list is 255.
Calculates the net present value of the cash flows in a
list, discounted at the rate specified. The first entry in
the list is the cash flow at the end of the first period, the
second entry is the cash flow at the end of the second
period, etc.
Used with a list of items that are ranked in ascending
order. This function returns the value from the list that
is less than or equal to the value referenced in the
command given.
Returns the value of 3.1415926536
Returns the absolute value of the value given
Returns the integer portion of the value given
Calculates the appropriate function. The
trigonometric calculations are done in radians

Results of a calculation are not available. This makes
all expressions using the value display as NA.
Results in an "Error" value that makes all expressions
using the value display as ERROR.
This means that there is not enough room to display
the calculated value in the room available. Making the
columns wider will often allow the value to be displayed.
VisiCalc will automatically shift to scientific notation
if necessary in order to display a value in the space

Table 1.

Doug Green, Cortland Jr.-Sr. High School, Valley View Drive, Cortland, NY 13045.

Table of Contents
Previous Section: Atari Text Editor Program
Next Section: Atari Resources