Calculators, copiers and +3 cock-ups preoccupy IAN CULL this month. Showing a commendable amount of self-discipline Ian dissects the various products with his usual laser sharpness, nary (LMSWD) a hint of festive bleariness anywhere.
IN THE business world spreadsheet programs are huge sellers, and typically cost several hundred pounds. Simply put they’re very sophisticated calculators. The Spectrum may be simple compared to the mega IBMs of this world, but with a minimum of 128K this powerful calculator can be yours too — thanks to Tasman Software’s TasCalc. The program is available on either tape or disk, the only difference being that the former can use microdrives, while the latter is set up for the built-in disk drive. Both versions can also save/load to tape.
The TasCalc ‘super-calculator’ consists of 52 columns (A...Z, AA...AZ) of 157 rows (totalling 8164 cells). Each cell can hold a number, a label, or a formula. Formulae can reference the contents of other cells, so that altering one cell can affect the whole spreadsheet (AZ=A1+C5). Numbers are entered just by typing them in, with the spreadsheet cursor, on the required cell. Labels (or simply text messages) are entered by pressing the " key first. Formulae are entered by first pressing the ENTER key.
The design of the spreadsheet is up to the user, making TasCalc very flexible in use. The width of each cell can be altered, which is useful for fitting more columns on the screen at once. The number of rows on screen at once is initially set to 13, unless the prompt menu at the top of the screen (as in Tasword III) is switched off (making four more rows visible).
The cursor can be moved around the spreadsheet using either the cursor keys, or by typing G to go to a particular cell — specified by typing its ‘address’. If that cell is not onscreen a redraw occurs. Labels set up in column A and row 1 can also be used to reference a cell (eg COSTS.FEB would reference cell G3 if C1 = COSTS and A3 = FEB).
‘The formulae are altered automatically as the echo occurs’
As the spreadsheet is built up, formulae will be entered which calculate new details from information entered in other cells — in the sheet I set up (see pic, hopefully), the page price of each issue of CRASH is calculated by dividing the issue price by the number of pages (G11 + B11×100/C11). The value of each formula is not, however, computed by TasCalc as it is entered. An Execute command must be entered whenever formulae need to be evaluated (TasCalc does not auto-calculate, as do spreadsheets on more powerful computers — this would be too slow). The execute can be limited to just the areas of the sheet which need updating, which helps to speed up the process.
It would be very laborious having to enter a separate formula for each cell in column G. In TasCalc this is not necessary — there is an Echo command, which I used to echo the G11 formula into G12–G50. The formulae are altered automatically as the echo occurs (so that G50 + B50×100/C50).
As the spreadsheet is developed, formulae are continually replaced and updated. Old formulae occupy memory, which will eventually be filled up. An Optimise command causes TasCalc to sort through the spreadsheet, eliminating unused formulae. This is a very slow process (4½ minutes for my spreadsheet containing 143 formulae). Turning off the display of the working cell does speed this up (to 53 seconds for the same sheet).
For major changes to the spreadsheet, there is a Copy command. This allows whole blocks of the spreadsheet to be moved around the work area. Formulae which reference cells that are moved are automatically altered by TasCalc during the copy. WARNING: there is a major problem with this command, when inserting rows into the spreadsheet. The copy proceeds row by row, top to bottom. There is no error check for overwriting, so if, for example, cells A10 to A20 are moved one row down to 11–21, then the result will be ten new copies of A10. The old values of A11 to A20 will be lost! Once you know about it, however, you can easily avoid the problem by copying the complete block to an unused part of the spreadsheet, then copying it back into the new position (for example, copy A10–A20 to AA10–AA20, then back to A11–A21).
‘Experimentation is simple and rewarding’
After such a process, the temporary copy area should be erased. However, if a full row or column is to be inserted (rather than just an extra cell in one column as in the above example), then TasCalc has commands to allow the current row/column to be deleted, shuffling all later rows/columns up/left; or an additional row/column to be inserted. For an insert or a delete, all formulae are altered to reference the newly-shifted cells.
The main use of spreadsheets is for quite simple calculations, referencing a large number of variables, which are set in the columns of the spreadsheet as tables. TasCalc also has a complete set of scientific and miscellaneous functions. Trigonometric functions (SIN, ATN, etc) are provided, as well as SQR, INT, PI and the other Spectrum BASIC functions. Also included, though, are spreadsheet-specific functions — for example AVE <range> which returns the average value of the cells in the range specified.
Whenever the spreadsheet is re-calculated, it is done cell by cell in strict order (normally A1–A157, B1–B157 ... AZ1–AZ157). If a formula references a yet-to-be-calculated cell, then problems will occur as the value calculated will be wrong. This is a problem with all complex spreadsheets, and can only be solved by repeated re-calculation until the values are unchanging.
It is possible to create a spreadsheet in which the values will always be changed — this can be useful! I set up a Fibonacci (LM’s BIG LWD) number sequence; each number displayed after the next re-calculation (A1=B1; B1=C1; C1=A1=B1).
The spreadsheet can be saved to disk or tape by calling up a files menu. The size saved depends how ‘full’ the sheet is — doing an Optimise before saving can result in quite a reduction in size. Any part of the spreadsheet can also be printed; TasCalc supports standard printers through almost all common Spectrum printer interfaces: parallel or serial.
‘The TasCalc manual is a reference work’
A powerful facility of TasCalc is its ability to produce graphs. The range of the spreadsheet to be plotted is given, and a graph (either line-type or bar graph) appears almost instantly. I had problems with TasCalc only plotting the integer part of the cell values — solved by scaling the values into another column of the spreadsheet. The graph displayed cannot be printed, but can be saved to disk or tape for printing later.
The TasCalc manual is a reference work, aimed at users who already know how to use a spreadsheet. However, for those wishing to learn, experimentation is simple and rewarding. The manual is detailed, but has no index section.
TasCalc costs £17.95 on tape for the 128K and +2 Spectrums. or £19.95 on disk for the +3. Anyone needing the power of a spreadsheet should be very happy with TasCalc, provided they are not in too much of a hurry forthe Spectrum to calculate the results.
AS MENTIONED last month, Kobrahsoft have released another useful progam for +3 owners. This program fills the gaps of DICE (Issue 57), by allowing commercially-protected disk programs (as well as normal +3 disks) to be backed-up to another disk, or to tape. Protection systems for disks vary, but they are likely to get more sophisticated in time. It is likely, therefore, that programs like DB1 will need regular updating to keep abreast of the manufacturers’ skills.
DB1 is an automatic copier program, but is not in the same league of friendliness as DICE. When the program is loaded, the screen shows a two-line menu, and no help at all. The program has a number of options, one (not on the menu!) allows a new disk to be logged in. The filenames on the disk are displayed, and can be selected by using the cursor keys and pressing S when the required filenames are pointed to.
Selected files can be transferred to a second disk, deleted, renamed or transferred to tape. The boot sector can also be saved to tape or disk, if it is in use.
Pressing G allows files on tape to be copied back to disk. Normal tape-based software can also be transferred in this way. A disk can also be formatted, in one of four ways (including Amstrad data format, giving 178K per side). The formats are no faster to access than the standard +3 format, however (unlike the CP/M format command).
‘Not in the same league of friendliness as DICE’
The main facility of DB1, and the one which is easy to use, is the Clone command. DB1 first, annoyingly, asks for the original DB1 disk to be inserted for ‘protection purposes’ (explained later). Once this has been done, DB1 reads the source disk, and automatically figures out the protection methods employed by the disk manufacturers (hopefully). The clone disk is automatically formatted identically to the source disk as DB1 proceeds. The time taken to clone the disk can be very long, seemingly depending on how sophisticated the protection method employed is.
I tested DB1 with one of the Ultimate Collection disks, and ended up with a perfect copy in less than two minutes. Cloning Where Time Stood Still, however, took 4½ minutes. I tried a few other disks, which all cloned successfully — DB1 even cloned an unformatted disk (in ten minutes!).
DB1 is not fully debugged, so care is needed especially considering the limited prompts given by the program. For example, pressing T (to transfer) twice, with no disk in the drive, causes the program to hang, decrementing the MEM= counter constantly. However, when used correctly, I found no problems!
‘DB1 is not fully debugged’
DB1 costs £12.95 on disk, or is available together with DICE at £19.95. It is therefore quite an expensive program, but a worthwhile investment if you own many commercial disk programs, assuming that all can be copied by DB1. Please remember that the policy of Kobrahsoft & CRASH is that programs like this must only be used for making private BACKUP copies just in case your disk should become faulty, not for distributing illegal copies around friends.
‘Ironically it will not copy itself’
Final comment: I am very disappointed that DB1 itself is copy protected, and ironically it will not copy itself! Surely the whole point of DB1 is to protect the purchaser against disks being damaged. It is also irritating that DB1 has to re-read the master disk before each clone — especially considering that the disk is uncopyable, and DB1 cannot even be copied by the Multiface +3. If ever the DB1 disk is corrupted, Kobrahsoft will replace it, but may make a charge for the privilege. One code for the games producers, another for the copier-makers it seems...
Another month, another column. All those of you interested in the DB1/DICE double-pack, order your February issue now because I'll be reviewing Version 2 of DICE then, not to mention another look over the intriguing SAM.
Letters begging for my expert advice in these pages, and Nobel prize-winning hints/information, should be sent to Ian Cull, Tech Niche, CRASH.