A&B Computing


Ultracalc II

Categories: Review: ROM Chip
Author: Gordon Taylor
Publisher: BBCSoft/BBC Publications
Machine: BBC Model B

 
Published in A&B Computing 2.05

BBC Soft have updated their spreadsheet to rival ViewSheet in price and performance. Suitable for both the Beeb and Electron

Ultracalc II (BBCSoft/BBC Publications)

Electronic spreadsheets are now acknowledged to be one of the key business productivity tools (along with word processors and databases). Moreover, they are products of the micro-computer age - the first and best-known being VisiCalc, which dates only from 1978. Such spreadsheets make it very easy to set up tables - which may have up to 63 columns and up to 255 rows - whether for calculation or simply display. Three important features of spreadsheets are the ability to scroll the sheet horizontally or vertically to put any part on the screen, to add or delete rows or columns as required (try doing this on paper!) and to "replicate" calculations. This last means that once one column has been set up for one month - e.g. January - corresponding columns may be set up for the months of February to December in a semi-automatic fashion.

According to Chris Curry, over 510,000 Beebs and 190,000 Electrons have been sold up to the end of last year. One of the advantages of such a large user base is that a range of excellent software is offered - by third parties as well as by Acornsoft themselves. Since there is no one best way of designing even such "standard" applications as word processors, databases and spreadsheets, a choice is most welcome.

Ultracalc 2 is an example of such choice in ROM-based spreadsheets - as an alternative to ViewSheet (See A&B Computing, January 1985, p 16). Although Ultracalc 1 was reviewed in July/August 1984, many changes have been made to create Ultracalc 2. The most important of these is the ability to operate in all modes - including the 80-column modes 0 and 3. This is especially valuable for spreadsheets, since it allows twice as much of the sheet to be seen at once

Like ViewSheet, Ultracalc 2 is a general-purpose spreadsheet suitable for building any number of models of, e.g. financial or technical systems. Thus it allows multiple sheets to be created, containing both formulae (which together make up a model) and datavor values, in various cells. In principle, BASIC could be used to do the same job, but spreadsheets are much easier to use when the formulae may be "replicated" and a tidy tabular output is required. Ultracalc is based on the Prophet II spreadsheet, which ran on an Acorn Atom - the forerunner of the Beeb. Prophet II, Ultracalc 1 and Ultracalc 2 were all written by Jack Lang of Topexpress.

Ultracalc 2 is contained in a ROM (Read Only Memory) chip of 16K and is treated as a "language", just like BASIC, COMAL or FORTH and so on, which leaves the maximum amount of RAM memory free to the user's model. Ultracalc 2 is self-sufficient, ie no BASIC ROM need be fitted in the machine.

Hardware Compatibility

The Ultracalc 2 ROM fits into one of the Sideways ROM sockets of the Beeb and the ABC Personal Assistant and works in all the available screen modes. Since the 80-column modes - 0 and 3 - also take up considerable RAM memory for the screen (20K and 16K respectively), it is fortunate that (like ViewSheet), Ultracalc 2 can operate with "Shadow RAM" (See A&B Computing. January 1985, p 16). I have tested Ultracalc 2 with an add-on version for the Beeb - The Raven-20 board costing 69.95 from Twillstar Computers Ltd. Other add-on Shadow RAM boards are available from Aries Computers and Watford Electronics at similar prices. Since it is written according to the Acorn guidelines, I am confident that it will also work with the Shadow RAM that is rumoured to be a feature of the upgraded (64K) Beeb (when it comes) and is built as standard into the ABC Personal Assistant.

The "bytes free" on a Beeb with a Disc Filing System fitted are as seen in Fig 1. The sheet contents and colours are retained on enabling and disabling the Raven board. (This is, of course, true only for a sheet that fits into the selected mode with the Raven board disabled).

Whereas the maximum sheet size of ViewSheet is limited to 32K (which is more than enough for the single-processor Beeb - even with a "Shadow RAM" board fitted and working), that for Ultracalc 2 can be of up to 44K with a 6502 Second Processor fitted. It thus acts like Hi-BASIC or Hi-View but differs from these in being self-relocating, so no special Hi-version is required. Both ViewSheet and Ultracalc 2 can benefit from the 50 or more percent greater speed of a second processor. Both also allow consolidation of sheets - thus permitting much larger models, even with a single processor machine. This is of particular value with an Electron - due to its 7K smaller, memory-limited sheet size - though consolidation is only possible with a disc or network filing system.

It is less easy to install Ultracalc 2 on an Electron since (unlike ViewSheet) it is not available as a cartridge, which can be plugged directly into a simple ROM board - such as that offered by Slogger Ltd. (See A&B Computing, March 1985, p59). Since Ultracalc 2 makes little use of the red function keys for commands, and Mode 7 and the Teletext colours are not available on the Electron, the Beeb version can be used as it is.

Another limitation of the Electron for running Ultracalc 2 (and ViewSheet and similar programs) is that Shadow RAM boards are impossible to fit, because the 6502 Central Processor Unit is soldered in, rather than socketted as in the Beeb. This is all the more regrettable, since the least memory taken by the screen is 8K (Mode 6) on the Electron, as opposed to 1K (Mode 7) on the Beeb. Nonetheless, within these limitations, Ultracalc 2 (and ViewSheet) offer real business capability to the Electron, as well as (on an appreciably larger scale) to the Beeb and the PA.

As with ViewSheet, it is perfectly possible to use Ultracalc 2 with the standard cassette filing system. Due to the usual encroachments on RAM memory, the maximum sheet sizes (in the various screen modes) are reduced somewhat when disc or network filing systems are in use.

Starting Up

On entering Ultracalc 2 with *CALC, it is in Mode 7 with the titles in cyan. Text values or labels may be displayed in colour by entering the appropriate Teletext codes via unshifted function keys. (ViewSheet allows you to achieve the same result, but with the Shifted-function keys - as from BASIC (See the User Guide, p 439). Also in Mode 7, negative values may be highlighted in red - by prefacing them with the tilde symbol (~).

Colours in Mode 7 are mainly relevant to those using TVs for display. Most serious users would wish to use Mode 3 whenever possible - to show more of the sheet - and this requires the use of a monitor. Ultracalc 2 can be set up in any two colours in Modes 0 to 6 almost as readily as ViewSheet, but takes a second attempt. For example, a green screen effect is much more restful for 08 sessions.

This may be effected from Ultracalc 2 by keying *BASIC then Ctrl-S, 7, 2, 0, 0, 0 (or Ctrl-S, G, B, Sp, Sp, Sp) and *CALC to return. Indeed, this may be done at any stage, since it does not disturb the sheet. Alternatively, *BASIC, MODE 3, VDU 19,7,2,0,0,0, *CALC may be included in a !BOOT file and then activated by pressing Shift-Break twice in succession

Operators, Functions And Facilities

Ultracalc 2 has a very extensive set of operators - arithmetic (+,-,*,/, A (raise to the power), logical or Boolean (=,<=,>=,<.>,<>) and combination (AND and OR).

The functions available in Ultracalc 2 include all the usual arithmetic ones (ABS etc), trigonometric ones (SIN, COS etc), exponential ones (LOG, EXP and even HTN - hyperbolic tangent).

Facilities specific to spreadsheets include CouNT, MIN, MAX and SUM as well as IF, LooKuP and LKX (repeat last lookup). Finally, it has NPV (Net Present Value) for financial calculations.

In ViewSheet, HTN, CNT, LKX and NPV would have to be entered as formulae.

Commands

Ultracalc 2 is "driven" by backslash-letter commands - many of which are mnemonic - rather than by function keys, as in ViewSheet. The commands can be entered in lower case as well as upper. However, when sending Operating System (*) commands, eg *DELETE from Ultracalc 2, it recognizes case in filenames (unlike from BASIC). This fact is noted in the manual, p42.

There is no mention in the Ultracalc 2 manual of using *FX210,1 to turn off the beep sound which may annoy some users after a while.

Graphics

Like many other "standard" sheet programs, Ultracalc 2 has no in-built graphics facility that will produce e.g. line, bar and pie charts from arrays of figures. (ViewSheet has a simple facility for plotting horizontal bar charts).

However, an Appendix in the supplementary manual includes a BASIC program "DECODE", to read Ultracalc 2 files, which could serve as a link to suitable business graphics programs either proprietary (such as "Easiplot" from Synergy Software) or from magazines (such as A&B Computing, May/June 1983, p112 and July/August 1983, p46 and 106 - for bar charts, line graphs and pie charts respectively).

Interfacing

Ultracalc 2 has no special in-built facility for importing formulae or data from disc files but the Manual supplement (p14) includes a BASIC program "EXECUTE" which may be used (or modified) for this purpose.

Transferring data between sheets (e.g. for consolidation) may be effected by saving and loading parts of sheets into another one.

It is now possible to spool both sheet contents and formulae as ASCII files, for export to a word processor, such as Wordwise, View or Scribe. Parts of each sheet may be selected, but each continguous area requires a separate file whereas in ViewSheet, windows may be used for selection, and only one file is needed from each sheet.

It is also possible to read a file saved from Ultracalc 2, using the BASIC program "DECODE" given in the Manual supplement, to export to e.g. a business graphics program - as noted above.

Linking

Ultracalc 2 can be used to create and edit multiple sheets (under different filenames) and to consolidate them (as pointed out in the Manual, p 53). However, it is appreciably less easy than with ViewSheet, since all the input sheets must write into different areas which are then saved (under different filenames again).

Unlike ViewSheet, these different areas retain the same cell addresses on re-loading and so need to be laid out carefully to ensure that they do not overlap or clash. hence it is probably best to design the consolidation sheet first. Thanks to the quite large cell address ranges (63 columns and 255 rows) this is relatively easy. The fact that Ultracalc 2 recognises text values (or labels) means that they can be transferred between sheets during consolidation (unlike ViewSheet).

Turnkey Systems

As well as setting protection to limit data entry to certain cells, use may be made of commands stored in cells. They can enable automatic saving and loading of files (and hence consolidation of sheets) and automatic printing of the results.

It is also possible to put commands and filenames on function keys (most of which are unused by Ultracale 2) - e.g. by including the definitions in a !BOOT file, the function key buffer ne hes be saved with *SAVE (filename) 0B00 0BFF and *LOADed when required, eg from a !BOOT file.

Spreadsheet Operations

Ultracalc 2 (like ViewSheet) does not require columns or rows to be opened up or created explicitly, before entering values or formulae. However, the constraints are somewhat tighter than for ViewSheet. The maximum nominal sheet size - at 63 x 255 versus 255 x 255 - is smaller and consolidation, while possible, is more difficult.

Inputs in Ultracalc 2 are normally interpreted intelligently - text scripts as labels and numbers or expressions as values or formulae - and identified accordingly on screen. Hence, unlike several more expensive spreadsheets, identifying prefixes are not normally required. However, Ultracalc 2 has prefixes available to "force" for example a telephone number or a data to act as a label or a text string to act as a value.

While values are usally quite short, formulae may be up to 127 characters in length. to avoid the need to re-enter them from scratch if incorrect, Ultracalc 2 has facilities for editing. Thus they may be copied back from the current cell to the input line and functon keys f8 and f9 used to position the editing cursor.

For mass entry of data into an Ultracalc 2 sheet, the TAB key can be set to advance the cursor to the next cell, as well as entering the value into the current cell. (However, the ViewSheet method, using Return rather than the TAB key, is better, particularly if you are right-handed).

Ultracalc 2 recalculates column by column (whereas ViewSheet does so row by row). This needs to be remembered when laying out the model on the sheet.

Insert And Delete

Columns and rows may be inserted and deleted anywhere in the sheet as required. This may arise during moves - where a new column or row is inserted, the contents are copied (or replicated - see below) across and the old column or row is then deleted.

Replication

In addition to copying single cells, Ultracalc 2 provides for replication - which reproduces whole areas of values and formulae from one part of the sheet to another. As usual in spreadsheets, two cases are provided for - known as "absolute" and "relative" replication. While the former reproduces without change, the latter changes the cell addresses as required. Thus if a formula in column A totals the value of several cells in column A then replicating it "relatively" - to other columns would change the cell addresses accordingly.

Display And Printout

Numeric values are shown to the nearest whole number by default (i.e. until the format is changed).

The column width is seven characters by default but may be reset to up to 37 characters in a 40-column screen mode or 78 characters in an 80-column screen mode. Ultracalc 2 can look somewhat untidy on screen when it displays part-widths of columns. (VS only displays columns when there is room for the full width).

The presence of inter-column gaps - which may split titles - was criticised in the review of Ultracalc 1. In Ultracalc 2, they may be removed and restored for displaying in Modes 0 to 6 and for printing.

Variable column widths are very convenient for setting up display-only tables but real calculating spreadsheet work is much easier with "windows" - which allow splitting of the screen. As a major feature of ViewSheet and many other spreadsheets, this allows both input values and results to be seen at once, even when they are widely separated on the (work) sheet. Nor is Ultracalc 2 capable of splitting the screen or windowing when printing, except by printing areas separately.

The absence of windows can be overcome in two ways:

  1. The first is to enter the value on the entry line, then go to the "bottom line" area, then hit Return to initiate calculation and watch the result come in.
  2. The second is more trouble - and is to set intervening column widths to zero (this cannot be done for rows). This is in effect, what a window scheme does automatically.

To set up a printer mode from UltraCalc 2, a code can be sent direct from the keyboard to the printer (as for ViewSheet). For UC2, such codes are expressed in hexadecimal notation, which may require some cross-referencing in your printer manual. For example, condensed mode (16.5 characters per inch) for an Epson or compatible printer requires &0F. However, while &1BM selects Elite print (12 characters per inch), it comes out double-spaced. I could not find any way of correcting this with commands to ignore or even reverse line-feeds but, in the end, had to Har to setting DIP-switch 2.4 to "off".

In addition to printing out part or all of the sheet, with its labels and values, the formulae may be printed out as a record of the model (or listing of a program in BASIC).

Protection

Ultracalc 2 allows the setting of protection (against deletion or overwriting of the contents) on a cell or area basis - as well as on the column or row basis available in ViewSheet. Such protection is very valuable for "Turnkey" models (see above).

Saving And Loading Of Files

With Ultracalc 2, you have to declare how much you want to save of the sheet. However, it does mean that - as well as saving the whole sheet - it can be used for transferring parts of sheets to other sheets (e.g. for the purposes of consolidation).

Saving and loading with a disc filing system is very much slower than with ViewSheet. The speed is more like that of a cassette filing system - as was Ultracalc 1 - but at least it is automatic and reliable. In addition, files may be verified explicity against the sheet held in RAM memory.

Auto/Manual Recalculation

Normally a spreadsheet model is set to recalculate automatically whenever a new value or formula is entered. However, when it becomes large or involves the lining or consolidation of more than one sheet, this can take an appreciable time. Ultracalc 2 therefore has provision for turning off the automatic action, leaving the user to initiate each recalculation manually.

Free Memory

The amount of free memory remaining is not displayed continuously, as in some spreadsheets. However, it may be checked at any time by entering TOP into the current cell, when it returns the number of bytes or characters free (in decimal notation). In addition, when all the memory is used up, "M" is displayed at the end of the reference line.

Unless working with a machine fitted with Shadow RAM or a Second Processor, the simplest way to free more memory is to change screen mode. Another way is to divide the model between several sheets, and link them together via file transfers.

Long Jumps

Normal movement around the sheet - one cell at a time - is effected by the arrow keys. Ultracalc 2 provides for long jumps around the sheet via the Shifted-arrow keys. These move the cursor by four columns horizontally or ten rows vertically. In addition, moves may be made directly to a specified cell.

Searching And Logic

Ultracalc 2 recognizes text strings and hence an operate on them as values - including both single and multiple wildcards. This is especially valuable when using the Lookup functions LKP and LKX. Thus a target string (or part thereof - with wildcards) may be entered into a particular cell and the corresponding value found and displayed - from where it could be printed or spooled.

Conversely, ViewSheet - which will accommodate but not recognise text strings - would have to use numeric item codes. In addition to finding the first occurrence of a target value or string with the LKP function, Ultracalc 2 provides for finding the next with the LKX function.

As shown in the Manual Supplement, these features enable Ultracalc 2 to operate as a simple in-memory database - as can other spreadsheets such as The Cracker and Lotus 1-2-3.

True Capacity And Speed

Compared with all the other spreadsheets (in PCW 84/12):

  1. on formula capacity, Ultracalc 2 is competitive - ie more than Abacus on the QL, less than MasterPlanner_ on CP/M and Visicalc or Multiplan on a standard Apple II.
  2. on recalculation speed, it is well up with the leaders - Symphony, 1-2-3 and ViewSheet.

Hence ViewSheet has from 8 to 16% greater capacity, recalculates 30 to 35% quicker, replicates much faster and loads and saves to disc very much faster.

Documentation

Within the 16K capacity of the ROM, the designers have now provided a *HELP CALC command, which gives a brief summary of most of the commands in Ultracalc 2. This is all the more welcome since the documentation now consists of the original 80-page spiral-bound manual for Ultracalc 1, plus a 16-page supplementary booklet - neither of which have indices. This is really not adequate for a product of this quality - and price. Although all the commands and functions are summarised on the back of the latter, it can take time to find any explanation or examples in the text.

However, three example models (equivalent to programs in BASIC) are given in an Appendix - Cash Budget, Home Data Base and Pricing a Product - and these provide excellent guidance to building up your own spreadsheet models.

At £79.50 including VAT, Ultracalc 2 costs slightly more than ViewSheet, its closest rival. However, both are very suitable for carrying out - in conjunction with a standard, single-processor BBC Micro (or, to a lesser extent, an Electron) - a wide range of tasks for the home, in education and research and for business. The prices for both software (such as Ultracalc 2) and hardware (the BBC Micro, even with one or more disc drives) represent remarkably good value. Indeed, they are often less than half those of other small business systems (e.g. those based on Apple hardware or the CP/M operating system) of similar (or sometimes lesser) performance.

The reason is simple - both software and hardware for the BBC Micro sells in much larger volumes, and so both suppliers and retailers accept lower margins. Ultracalc 2 is available from dealers, or direct from BBC Publications Ltd, 35 Marylebone High Street, London WIM 4AA, (P&P £1.30).

Owners of Ultracalc 1 who wish to upgrade to Ultracalc 2 should send an SAE to the same address for an order form. The upgrade cost is £6.25: excellent value in view of the many improvements.

  Raven Disabled Raven Enabled Increase
Mode 0 5872 26352 4.5 x
Mode 3 9968 26352 2.6 x
Mode 7 25328 26352 1.04 x
Fig 1.

Gordon Taylor

Other Reviews Of Ultracalc II For The BBC Model B


New Version Of Ultracalc
David Otley takes a fresh look at this Spreadsheet package

This article was converted to a web page from the following pages of A&B Computing 2.05.

A&B Computing 2.05 scan of page 34

Page 34

A&B Computing 2.05 scan of page 35

Page 35

A&B Computing 2.05 scan of page 36

Page 36

A&B Computing 2.05 scan of page 37

Page 37