REVIEWS COURTESY OF ZXSR

ZipZap
Omega Software [2]
1988
Your Sinclair Issue 33, Sep 1988   page(s) 98

RAGE HARD!

More Rage Soft this month, as Phil South delves again into the wealth of independent utility software.

More hardware-related software out of the bag this month, Imbos from Companion Software, and ZipZap from Omega Software. There's still a surprising amount of high-quality utility software being made for the Spectrum, even now when the machine is edging on for six-seven years old! So let's cut the waffle, and get into the reviews.

Omega Software
£10.95
Contact: Omega Software, Dept YSR, PO BOX 21, Shepperton, Middlesex TW17 8BY
(+3 Disk £10.95 + £1 postage and packing)
Tel: 0932 228649

As there has been no disk tradition on the Spectrum, there's been no need for a disk toolkit. Until now that is. Omega Software has been calling me up and telling me how brilliant its program is, a thing called ZipZap. I asked for a copy, I got one and I thought, this is more like it.

This is the program that every +3 user needs in his disk box, at the front, for those tasks which otherwise would be impossible except for the most accomplished programmers. It features the ability to recover lost files, lets you read protected and nonstandard disks, display, modify, print and search any sector or group of sectors on a disk. You can format individual tracks, and even lock damaged and unreadable sectors out, so your programs won't access them by mistake. It's the ideal hacker's tool, but any disk user should find a use for one or all of the features supported. One of the most interesting things you can do with the search facility is to scan a program for a certain sequence, letting you seek and destroy bits of code, either for inserting POKEs in games, or de-bugging your own programs.

The manual is an excellent document, covering many aspects of Spectrum +3DOS. Including an amazing bit on DFCBs (or Directory File Control Blocks), disk headers, XDPBs and logical sectors. All this is wicked technical stuff, and covered much better in this manual than it is in the +3 manual, which is not at all.

Using ZipZap is a treat, and I don't mean one of those sweeties that don't melt in your pocket, either. You're presented on loading with a display depicting a location on the disk by track and sector, with a bank of ASCII characters to the right, to let you search for strings in programs, and a bank of hex showing the actual bytes on the disk. Below the impressive numerical barrage, is an area called the Status Field which tells you which byte, sector and track you're looking at on the Hex field, and the buffer states, and also which drive you're addressing.

This is a rock solid utility, and invaluable to any serious user. It helps inexperienced users perform like the pros, and helps pros get the job done. Recommended.

IMBOS

Companion Software
£8.65
Contact: Companion Software and Hardware, 193 Brampton Road, Carlisle, Cumbria CA3 9AX.
(Cassette £8.95 + 30p postage and packing)
Tel: 0228 35208

Imbos is a set of extended commands which bolt directly onto the set already m your Spectrum Interface 1. You install them in your Interface 1 and they stretch the amount of things you can do with your microdrive system, or presumably any other peripheral which uses the microdrive syntax. The new words you can use are as follows:

*
*AFTER x$
*CAPS,x
*CAT
*CODE x
*DATA a,b,c,d,e,f,g,h
*DOKE x,y
*ERASE x$
*FILL x,y
*GAPS (x)
*HALT x
*MIRROR
*MIRROR,x
*MOVE x,y TO 2
*PRINT X
*STORE x
*VERIFY X$
.ENDRAM
.RAMTOP
?ENDRAM
?RAMPTOP
?FRE
?LCLS x
?PROG
?RAMTOP
?SCROLL x
?VAR
BEEP #x,y
BORDER #
BORDER PAPER
BRIGHT OVER x
CLOSE # x TO y
FLASH OVER x
GOTO LINE x,y
INPUT *s,l,h
INVERSE SCREEN$
LINE ERASE x,y
LINEx
LIST %x$
LIST CAT x
LIST £x
OUT !x$
OUT *s,l,,m
PAPER ATTR x,y TO u,v
PAPER TO x,y
PAUSE x$
PRINT !x$
PRINT $x
PRINT &x
PRINT %x
PRINT /x$;k$;sp, AT a,b TO c
PRINT @x$
PRINT ATTR x
PRINT SCREEN $x TO y
READ #x
READ iN #
RUN x$

An impressive array of new commands there, you must agree. Where possible, original Spectrum keywords have been used, and where this wasn't possible an asterisk (*) has been placed in front of the word to disable the 'K' cursor keyword mode in the computer.

The new commands cover a wide range of powerful functions. Let's look at a few of the more interesting examples:

?PROG Displays the length of a Basic program in bytes to give some indication of memory being taken up by the program. A useful trick for Basic programmers who want to keep an eye on their use of the available RAM.

LIST £x Displays a monitor listing of memory from the decimal number x, with a choice of hexadecimal or ASCII to find text.

RAMTOP Tells you where Ramtop is!

PRINT @x$ Prints text centred on the screen. Saves all that counting up the columns and printing spaces or TABs.

*MIRROR flips the screen!

OUT *s,l,h,m Saves a file as a headerless piece of code, reloadable with another new command, INPUT *s,l;h.

?SCROLL x does precisely that, scrolls x number of lines up the screen. And so on.

Installing the new commands in your Interface 1 is a piece of cake. A special program is on the tape to allow you to copy the Imbos programs onto a microdrrve or disk, five programs in all, plus a demo program to demonstrate the power of the new commands. Depending on the issue ROM you have (one or two) the program will load one of two main programs containing the new commands. This is necessary to make the new words work in either ROM, as Issue 1 and 2 ROMs are different enough to cause problems.

After you've installed Imbos the loading screen will pull down, and on the press of a key, you'll be handed over to Imbos Basic. When NEW is typed and entered, you are returned to the usual prompt, but with Imbos Basic intact in the Interface 1 protected by RAMTOP. To invoke the program you need to type RANDOMISE USR 57250, and the new operating system is switched in. Then the Imbos 'test card' pops up. The RAND USR address only has to be used to invoke the system, but if you're a programmer and want to get around this, you can follow instructions in the manual to do this. If you write a program using Imbos, you need to save the Imbos code to your program tape in order to run it on someone else's computer.

This is an excellent package, and as you can see it does have some very interesting possibilities. It even has its own error codes to tell you if anything goes wrong with your Imbos programs it's actually worth more than £8.65, but I reckon that Companion will sell many more units that way. Every Speccy owner should have one.


REVIEW BY: Phil South

Transcript by Chris Bourne

Crash Issue 52, May 1988   page(s) 70

(Simon N Goodwin owns the copyright to this review. Please visit http://simon.mooli.org.uk to find original articles and updates, much new material and his contact details.)

ZIPZAP PAZAZZ

This month Simon N Goodwin delves into the +3 ROM and disk system, reveals machine-code instructions, and reports on the CRASH Tech Tape and MGT'S SAM.

+3 ZIP ZAP

The promised version of CP/M for the Spectrum +3 is still apparently waiting in the wings at Locomotive Software. They keep saying 'soon', so I hope to be able to review it next month.

In the meantime I've spent a while looking at ZipZap, a +3 disk utility that should appeal to hackers and regular disk users.

ZipZap, from Omega Software, is a disk sector editor - a program that lets you read and edit the raw information recorded on a +3 disk. This is useful if you want to edit programs or header information without loading files into memory - perhaps to change the starting line number on a BASIC file, or to patch text or code.

ZipZap can be even more useful if something goes wrong with a disk - should you erase a file accidentally, or a mechanical fault wipes out part of a file, for instance. In the first case, as long as you have not written anything new to the disk you can retrieve the data by just changing a few characters in the index or 'directory' the disk uses to keep track of files.

In the second case you've probably lost the data that's on the physically damaged part of the disk, but you can usually retrieve most of the file by changing the directory entry so that the computer skips over the damaged part

DISK ORGANISATION

ZipZap can read any part of any disk produced by +3 DOS. It doesn't load or save files in the usual way, but instead works with the individual lumps of information on the disk, known as sectors.

The data on a +3 disk is spread over 40 rings, or 'tracks', each a fraction of a millimetre wide. The disk head-the part that reads and writes data-steps back and forth from track to track, so that any ring on the disk can be accessed.

Each track is divided up into nine sectors, each of 512 characters, and sectors are allocated in pairs to each file. As files grow they are allocated new sectors, and a 'directory' is written on the outside of the disk to keep track of which sectors belong to each file.

There's no necessary connection between the order of sectors on the disk and their apparent order when you load a file, although it's rare for a file to be scattered all over a disk - the Amstrad software, +3 DOS, just doles out sectors from the unused ones as required, and re-uses sectors when a file has been deleted and its space is needed.

The system reads a particular sector by moving to the appropriate track and reading the sector numbers, recorded before each lump of data, until it finds the sector it wants. The disk turns at 300 RPM, so there's not usually long to wait.

ZipZap lets you drive the disk head around and grab sectors by number or at random as they come off a particular track. You can then print, display, edit or replace the sector. Standard disks use sector numbers from 0 to 8, but 'protected' disks tend to use higher numbers that can only be read with special software.

Other protection schemes use a mixture of single and double-density recording. ZipZap can read and write these, although it takes a fair amount of fiddling around to write single-density tracks.

You can read most types of protected disk with ZipZap, but the utility relies on the +3 DOS ROM routines, so it can't read all recordings generated by programs that manipulate the disk controller directly. ZipZap itself was protected when it was launched, but I've since persuaded Omega Software to remove the protection.

At the moment, commercial programs use +3 DOS routines because direct control is a fiddly and error-prone business. It's fair to assume that ZipZap will read the vast majority of +3 disks, including anything you format yourself, but it's not guaranteed to read absolutely everything.

GET DIRECT

ZipZap uses a fixed display format. The top part of the screen shows the current quarter sector, with 128 bytes of data arranged in two sections. The left side shows hexadecimal data values, and the right side shows text.

You can edit either part by moving a cursor over the data. There's no shortage of commands to move around the screen, memory or disk surface - you'll probably end up using just a subset of the available commands.

The lower third of the screen shows the current drive, track, sector, memory address and cursor position. It's also the place where messages appear.

ZipZap is controlled with single keys, sometimes used in conjunction with Symbol shift. The 'Z' key gives a three page list of the 49 controls, with single-line explanations of their effects.

Numeric values must be entered in hex - base 16. Most machine code programmers will be happy with hex input - personally, I hate it - but the rest of us just have to get used to 1F being one less than 20, or 32 as we know it in decimal! ZipZap includes a command to convert hex values to decimal, but not vice versa.

Hex makes for a neat display, as every value can be written in two 00-FF, rather than three (000-255) in decimal, so perhaps it's worth the hassle. Nonetheless, the Spectrum cannot display enough standard-sized characters to show a complete sector on the screen at one time, so each sector is shown in four quarters, with a code letter A to D to identify each part.

ZipZap can read and write sectors into a 'buffer' of 512 bytes of memory. The top 32K of RAM is reserved for 64 at these buffers, so you can build up files in RAM and edit them with POKEs from BASIC, if that's what turns you on - you can leave ZipZap at any time without losing data, although there's only about 2K left for ZX BASIC.

You can change buffers by pressing 'B' followed by the buffer number in hex, or just use 'E' to Exchange between an odd and even numbered sector - convenient when editing one buffer and keeping the directory in another. Buffer contents can be edited just like disk sectors.

The 'P' key sends the sector cm the screen to a serial or Centronics printer, using a double-width format to save paper.

Key 'S' controls a useful search option which scans the disk or memory for a given sequence of up to six characters. Unfortunately you have to enter these by character code, in hex. Searches in RAM are very fast, but disk access is slowed by +3 DOS. It takes about three minutes to search through an entire 180K disk, but you can stop the search at any time by pressing BREAK.

DISK PACK

ZipZap costs £12.95 on 3 inch disk, with an A4 manual and a 'bonus' in the shape of a rudimentary but useful utility program: SuperCat lets you check the exact size and SAVE parameters of files, rather like the tape command CAT "T:".

The ZipZap documentation is well written as far as it goes, but that's not really as far as I would like. It's heavy going for a beginner, as it assumes you've read and understood most of the disk information in the +3 DOS manual, but it contains enough examples to get you started.

The program is fairly easy to use once you've worked out how to read the directory and track files down on the disk, but it works more like a hexadecimal spreadsheet than a friendly, menu-driven utility. The first version I was sent for review reported errors by number, but the latest one prints full messages, using the normal Amstrad text.

ZipZap is a very useful tool, but it takes a while to get used to it unless you've used a disk sector editor before. You may find using it an uphill struggle if you're easily phased by screenfuls of numbers, but it's worth persevering. Omega Software can be contracted on 0932 228649, or by post at PO Box 21, Shepperton, Middlesex TW17 8BY.


REVIEW BY: Simon N Goodwin

Transcript by Chris Bourne

All information in this page is provided by ZXSR instead of ZXDB