ULTRACALC
By S.K. KHASNAVIS
LIKE other ROM based software, Ultracalc - a sophisticated spreadsheet
program - fits into one of the extra ROM sockets in the BBC Micro.
The accompanying 80 page manual, which is extremely well written,
gives precise fitting instructions.
To call the ROM into action you have to key *CALC, which immediately
brings the sheet onto the screen with two beeps.
If you want the computer to start-up in Ultracalc, the ROM can
be fitted into the right-most socket, and the Basic ROM moved
one step to the left.
It is a large spreadsheet with 63 columns and 255 rows. The
columns are named A,B,C,D . . . Z, then AA, AB, AC, AD ... AZ,
and finally BA, BB, BC, up to BK. Rows are numbered 1 to 255.
In Ultracalc the top portion of the screen above the column
scales is called the information area. This consists of three
lines, the first showing the status of the page.
At the left hand corner, two characters, such as A1, indicate
the coordinates of the current cell.
To the right of it, the display reads "BLANK", which
means that the cell does not contain anything. After this appear
the words INPUT OR COMMAND, which indicate that Ultracalc is expecting
instructions.
When anything is typed, it is first shown on the input line,
and as soon as Return is pressed, it is entered in the cell bracketed
by the cursor. The entry then moves up from the input line to
the contents line.
Below these three lines, a column scale such as A, B, C, etc.,
is displayed across the screen, and in the left hand margin appear
the row numbers, starting from one.
With the default column width of seven characters, the screen
can show four columns and 20 rows at a time.
The cursor indicates the user's position on the page, and can
be moved by the micro's four arrow keys one cell at a time in
the direction of the arrow. Using the arrow keys in combination
with the Shift key will cause the cursor to jump four columns
or 10 rows at a time.
There is also a GOTO command /G(area) which will make the cursor
go to any desired cell.
In addition to supporting arithmetic and mathematical operators
and functions, it has several built-in facilities making it easy
to use.
The column width can be individually or globally varied up to
40 characters wide, giving the user complete freedom to define
a broader width for, say, the first column A on the left normally
used for titles and text.
A powerful "SUM" facility is available for easy totalling
of a column or row or even a whole area without having to type
all the cell references. To do this, you have to type SUM(area),
and Ultracalc will total up all the values in the defined area
and display it in the current cell.
Editing is excellent. You can edit all the data placed in the
various cells with the help of function keys f8 and f9, and the
Delete key. All you do is place the cursor on the particular cell
and press Shift and Copy together. This puts the contents of the
cell in the input line.
The flashing cursor can then be moved to the left by f8 and
to the right by f9. The Delete key will remove the character above
the cursor, and a new character can be typed in. Pressing Return
will send the edited entry to the cell concerned.
The manual describes a numeric entry as "value", and
a text entry as "label". A thoughtful feature is that
Ultracalc automatically senses an entry to be text string or numeric
and marks it accordingly as a label or a value, showing it as
such on the top reference line.
This is most convenient, as one does not have to key in double
quotes to identify text entries as in a few other sheets. There
is provision to override this automatic feature, and to force
a numeric entry to be read as text or "label".
A powerful replication facility is available supporting both
"absolute" and "relative" copying of formula
over any "area" of the sheet.
Copying a formula from one cell to a whole area is simple and
useful. Just place the cursor on the particular cell containing
the formula and type //(area). In this case area means the cell
references at the begining and end of the area into which the
formula is to be copied.
An area begins at the left hand uppermost corner, and ends at
the rightmost bottom corner, forming a rectangle.
Because of this feature, Ultracalc requires that even a single
cell like A1 should be referred to as a rectangle named A1A1.
A rectangle can therefore be a single cell, a row, a column, or
any contiguous part of the page.
As well as copying the contents of a single cell into any area,
Ultracalc also supports a powerful replication facility which
can copy "relatively" or "absolutely" the
contents of one area into another. The command for this is /R
(source area) (target area).
The system incorporates an IF routine and a LOOK UP facility
found only in expensive financial modelling packages running under
CP/M or other operating systems.
IF allows the user to give conditional instructions, carried
out only if defined conditions are met.
In LOOK UP, Ultracalc can look up an expression in any area
instantly, without the user having to wade across the whole sheet
searching.
These two facilities make it very versatile - almost in the
class of Visicalc.
Rows and columns can be inserted/ deleted simply by typing a
single command. All the formulae and contents are automatically
shifted and adjusted. Formatting the display is also simple and
can be made applicable globally, or to individual cells.
For example, display of integers in those cells where necessary,
and two decimal places in others can be achieved without fuss.
"Labels" as well as "values" can be left or
right justified.
In fact, all the formatting commands can be applied to a single
cell or a whole area as necessary. While executing such a command,
Ultracalc will automatically ignore blank cells, or cells containing
"labels", if the command refers to "values"
only.
Saving, loading, printing etc are carried out with ease, and
all commands can be remembered easily. For example /S for SAVE,
/L for LOAD and /P for PRINT.
Cassette and disc systems can both be supported, and I had no
difficulty in using it with Amcom DFS in the extended mode.
Any part of the sheet can be saved or printed if it is defined
by cell references as an "area". After saving, there
is a command to verify whether the sheet has saved properly. If
it has not, the screen will display "FAIL" so that the
user can try again.
While printing it is possible to switch off the column and row
scales, so they don't appear on the printed sheet.
By typing /T you can "fix" the area above and to the
left of the cell bracketed by the cursor so that it remains in
view when the cursor is moved to the right or towards the bottom
of the screen.
This is useful in scrolling-in the contents of distant columns
against the titles which are usually in the first left column.
The command /H will hold the contents of a cell, and will not
allow the user to delete or overwrite it until /H command is issued
again.
Ultracalc also allows the command /* which passes the rest of
the line to the system, thus typing /*B. will take you to Basic,
and /*. will give the catalogue of the current drive etc. Typing
TOP will give the remaining memory and CNT counts the number of
cells with values defined in them.
Memory is used like the precious thing it is. I built a simple
model to calculate compound interest and total yield every year
for 25 years for a given amount and rate of interest, the interest
being compounded quarterly.
It used up only 5k, leaving more than 21k to be tapped. Obviously,
much more complicated models can be built quite easily.
Calculation is also very fast. Any change in the given amount
or interest rate in the above model recalculated the whole sheet
in less than a second.
Obviously the program has been written by experienced and professional
people reflected in every feature of it being simple and easy
to use.
I could hardly find anything to complain about in Ultracalc.
It has practically everything that a good spreadsheet should have,
and I thoroughly recommend it to anyone who has to do a lot of
financial modelling.