Rom Review

Ultracalc
?

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.