Tech Tips

Top Tech Tipster IAN CULL picks up the CRASH Tech Niche column where Simon Goodwin left off. This month Ian takes a look at a Spectrum +3 disk management system, more Tech Tape tips and introduces a new section for +3 owners. Well Ian, good luck!

DICING WITH DISKS

Get your +3 disks in some sort of order

THE DICE (Disk Information Copier Editor) is a menu-driven program for the Spectrum +3 from Kobrahsoft.

The program allows standard +3 DOS disks to be examined, altered and copied without requiring detailed knowledge of the way +3 DOS works. However, DICE cannot handle non-standard disks, so cannot be used to copy protected disks. The program can be run from +3 BASIC, loading at address 40000, which allows reasonably sized BASIC programs to co-exist. When RUN, the program gives a graphic display of the usage of the disk, and offers the menus File, Disk, Copy and New. The New option is used to ‘log in’ a new disk to be worked on.

The graphic display gives a clear indication of how full the disk is, and where the spaces are. A fragmented disk (where the spaces are in lots of little sections) can be easily seen and understood. Pressing F, for the File menu, gives a new display of the directory of the disk (in two halves). Deleted filenames are shown, and any file can be selected using the cursor keys. Files can also be erased or renamed easily using this menu.

Once a file has been selected, a new graphic display shows where the pieces of the file are stored on the disk. In addition, the file header (for a +3 DOS file format) can be read, giving information such as the program length and type. File attributes can be changed too (though this is unlikely to be useful to +3 owners). The file’s contents can be viewed (128 bytes at a time) or the editor can be called up. (What, what? Somebody mention me? — Ed.)

‘It may not always be possible for DICE to give the correct report’

The most useful option here, however, is to recover an erased file. This is always a risky job, since the file’s overwritten if further disk use has been made since the file was erased. DICE makes this job easy by reporting whether or not the file can be safely recovered. It may not always be possible for DICE to give a correct report (if, for example, a new file overwrote the old file’s data, and was then itself deleted), so it is still advisable to check through the recovered file. DICE can also be used to check any more recent erased files, to investigate whether they were occupying disk space required by the now to be recovered file.

Pressing D from the main menu selects the Disk menu, which allows individual sectors on the disk to be displayed, and edited. Each sector is displayed in four 128-byte pages, and can be selected by track/sector, or by disk block. The sectors are displayed in hexadecimal, the character representation is also shown. An additional feature, when examining +3 Basic programs, is that the appropriate keyword, where appropriate, is shown on the screen as each byte of the sector is selected.

DICE can search the disk for specific information, entered byte by byte in decimal, hex or by character. Searching is very fast (less than a minute for all forty tracks) but can be aborted during the search. Any displayed sector can be altered, by calling up the editor. (Me again? — Ed.)

CALL UP THE ED

This allows a particular byte to be selected using the cursor keys, then changed. The new value can be entered numerically, or by typing the character. DICE will allow any sector to be changed (including the disk’s boot sector), so should be used with care. However, changes to disk are not written unless confirmed by selecting the Save to disk option. One slight problem with the current version of DICE is that the documented way of exiting from entering new data by character (ie pressing ENTER) does not work. However, pressing a cursor key works fine.(?)

‘A maximum of only three disk swaps is required to copy a full disk’

A useful extra facility of DICE is the Copy function, which (believe it or not) can be used to make copies of disks quickly. Information is read from disk into the extra banks of memory, so a maximum of of only three disk swaps are required to copy a full disk (this is an improvement on even the CP/M Disckit program). The copy also automatically compacts the disk, releasing all the free space to one block — which should improve disk access tremendously on a well-used (fragmented) disk. Such disks can result when lots of files of varying sizes are repeatedly SAVEd and ERASEd, as AMSDOS tries to make ‘best’ (but not fastest) use of the disk space. Other systems (such as the BBC DOS) avoid this by only using a disk space large enough for the whole file. But then little gaps are left all over the disk, which are wasted till the disk is compacted.

The normal +3 COPY "A:" TO "B:" will not improve the situation, since it copies the disk identically, complete with the fragmented files in the same positions on the new disk. Copying each file individually will cure the problem, but it is very time consuming.

The DICE Copy will sort the disk automatically, since it does the equivalent of copying each file name by name, but without the tiresome disk changes. The improvement that can be made depends wholly on how your disks are used. If an early file is deleted and replaced by a larger file, then the new file is likely to be fragmented — the DICE graphic display of the file shows how.

NO SILLY STUFF

The DICE program is well written, and it is difficult to do ‘silly’ things. However, there is no check that the correct disks are inserted when doing a Copy — so open the write protect tab on the source disk before you start! There is also no support for a printer: all displays are onscreen only. There also seems to be some difficulty in accessing the data on track zero of the disk (the boot sector). However, this may be an AMSDOS restriction rather than a DICE problem.

‘Even an expert may find it worth reading the manual’

It is also unfortunate that any DOS error is shown only as a number, and not described. However, there is a list of errors in the manual (with very short descriptions). A full discussion of some of the errors, and how to cure them, would have been worth having, considering that the package is aimed at the non-expert +3 market.

Overall, the manual is extremely good, and worth reading by anyone wanting to know more about how +3 DOS uses disks. A very good appendix describes how the data is stored on the disk, including descriptions of the directory format. There is also a section detailing how to attempt to recover a file when part of it has been over-written — it is suggested that this be done by ‘grafting’ a spare sector into the damaged part of the file, and an example is given to recover a BASIC program in this way. It would obviously be pointless to try to recover machine code files in this way!

The manual also has a menu map showing how each menu selects different functions — this is worth pinning up by your +3 for quick reference.

At £12.95, DICE is an excellent package for +3 owners who do not know everything about disks! Even an expert may find it worth reading the manual.

TECH TAPED

A NUMBER OF READERS have written in concerning the CRASH Tech Tape, available from CRASH Mail Order at £5.95.

Malcolm Goodwin (any relation of Simon N?) sent in an improved turbo-loader/saver routine, which vastly increases the speed at which the code is set up ready for use. His installation program also prompts for the start address and length installation — this means that the values can only be set once, but this is normal when setting up pre-written code for a turbo-load. The loader itself is similar, still giving improvements of up to 50 percent.

Vincent Vity asks how to auto-run a turbo-loaded program. The answer is to save it (call the turbo-save routine) while the program is running, and save all the system variables as well (from address 23552 to the end of the program). Then, when the code is reloaded, the program will continue running from the instruction after the call to the save routine.

Mr Paulo of Portugal asks for details on ZIP2, the BASIC compiler on the tape. My best advice is to buy and try it. The compiler can handle most Spectrum BASIC instructions, but is limited to integer variables only (0–65535). Therefore, it cannot handle scientific functions, which need decimal numbers, or strings — though these could be simulated using PEEK and POKE functions.

David O’Rourke asks about the Zip BREAK program, for ‘breaking into machine code’. This is described on Page 7 of the Tech Tape manual, but it can only be used to break into compiled Zip code, NOT for ‘any’ machine code, However, why not write all your code using Zip instead of your present assembler!

Mr K Cashmore wants help with his Timex 8056 printer and Interface One. Well, the Tech Tape has a screen copy routine for the 8056 printer, which may be worth looking at.

Mr Langley has a Tandy DMP130 for which he requires a screen dump program — any budding Tech Tipsters out there fancy a challenge?

If any other readers have comments, queries or improvements on the Tech Tape, please write in.

BYTE BITS

THE LATEST Beta Basic newsletter containing useful hints for Beta Basic users (who better?) This month there is a listing for proportional text routine for the screen, and some fixes to Beta Basic for disk users.

Finally, I have received a copy of IMBOS for Microdrived Spectrums from Companion. I shall review it in full next month, when my microdrives are up and running again! However, a quick glance shows such features as improved Microdrive command syntax, hexadecimal conversion functions, screen save/load to RAM, improved print formatting and built-in headerless tape load/save commands (ie, lots!).

+3 CORNER

I HAVE RECEIVED a number of letters already concerning the speed of the +3 disk drive when the command SAVE "DOS ROM" CODE 0,16384 is typed in.

The times given by Simon Goodwin, of 18 seconds to save and 10 seconds to load, seem to be rather unusual. Most people writing in so far have save times of 11–13 seconds, and a loading time of 9–12 seconds — the average is 11.5 to save, and 10 to load.

Timings on my own +3 were 11.7 to save, and 10.3 to load. It would seem that most +3 disk drives are of about the same timing, with variations due to the timing methods used as much as to the drive’s actual performance. The +3 drive is not especially fast compared with other computers, but it is certainly a great improvement on tapes (and more reliable than Microdrives).

Please continue to send in your timings, especially if they are wildly different from these. For comparison, Julian Marshall sent in his timings for a Disciple drive. In double density, a save took 7 seconds, and a load took just 1 second. In single density, these times are 14 and 1.5 seconds. respectively.

However, there is a simple way to improve ALL disk access times by about one third! For all those of you with the Locomotive CP/M package, try formatting a disk using DISCKIT, and doing the same timings on that disk. I timed a save at 6.7 seconds, and a load at 5.3 seconds. Similar increases are apparent when loading (Multiface 3) saved programs, so should be so for all disk access. The reason must be connected with the ‘sector skew’ used by AMSDOS. When the disk is set up to store information, each track is given a sector number. When data is saved or loaded, the sectors are accessed in numerical order. The problem occurs if consecutively numbered sectors are too close to each other on the disk. By the time the program is ready to write the next sector, the disk has already moved past it — a whole rotation must occur before the data can be written. By staggering the position of each sector (or ‘skewing’ it), access to each sector is likely to be more successful. This is, I assume, why the CP/M format is quicker. I will investigate further and report soon.

John Haggerty describes a problem he had experienced, where a full 64 files on one side of the disk stopped him being able to store anything on the other side. I have tried this, John, and not had any problem — are you sure that you remembered to turn the disk over! Seriously, though, has anyone else encountered a similar problem? There does not seem to be a logical explanation, unless it is a(nother) (now cured) bug in AMSDOS. What version number is displayed when the test routine is called up? Press and hold BREAK then reset the +3, then press QAZ and PLM together.

Mr K Mann asks where he can get hold of Locomotive’s CP/M +3. The answer is almost anywhere, by mail order. My copy was bought from Microsnips in Wallasey. You could also try the CRASH Mail Order service!

Adrian Dixon has trouble with his +3 Centronics printer, connected to a Silver Reed EX32. The only printout he gets is during the QAZPLM self-test, which gives the report ‘Printer Busy Failed’. I have an Epson MX80 which works fine on my +3, so maybe there is an incompatibility with the Silver Reed. There are a number of special signals in the Centronics interface, not all of which the +3 supports. Can anyone throw any light on this problem?

Finally, has anyone yet got a second disk drive to run on the +3? I tried a standard Amstrad 6128, but although it worked correctly, it disabled the internal drive. So I still only had one working drive! If any company is considering producing an add-on +3 drive (perhaps a larger capacity one), then we’d all be very interested to hear from them.

Before I sign off, just a few lines to say that next month I’ll try to review IMBOS and might even find time for a PC Show report. So till then, get all your helpful hints and technical queries in loads of little white envelopes and send them off to the following address. Remember, I handle so many problems (they’re starting to call me Agony Uncle Ian) that it’s impossible to give personal replies to your queries. The all-important address is Ian Cull, Tech Niche, CRASH.