REVIEWS COURTESY OF ZXSR

Swift Disc 2
Sixword Ltd
1989
Crash Issue 64, May 1989   page(s) 57,58

SWIFT DISK LOADING

Sixword's latest Spectrum add-on

Fed up waiting for tape-based programs to load? You might consider upgrading to a +3, but another option is to purchase an interface and 3.5 inch disk drive - a lot faster than the +3's 3 inch drive.

Swiftdisc II is a new disk-drive interface from Sixword Ltd which allows you to use a wide variety of 3.5 inch disk drives with the Spectrum, and is an improved version of the original Swiftdisc interface.

Unlike its predecessor, which fitted underneath the Spectrum, the Swiftdisc II fits right behind the edge connector and has a through port allowing other peripherals to be used simultaneously. I had problems connecting the interface as it is quite large - there is just room on my 48K machine to connect to the tape and power sockets, but my fitted ON/OFF switch blocked access to the interface's joystick port.

The Swiftdisc II is compatible with both the 48K and 128K Spectrums, and has a built-in magic button which, unlike the Plus D, calls up a complete disk control program when pressed. The Swiftdisc II can, as well as controlling the disk drives, control a printer through standard RS232 or Centronics ports, and offers a Kempston joystick interface (however, all these ports are optional see details of prices). The system I tested had a Centronics printer port, Kempston joystick and 'Microdrive Hardware Mapping' (more on this later).

The interface can be used in three completely different ways: from the magic button, from Spectrum Basic or from a microdrive emulation mode. Button control is the simplest and will be the preferred method for many users, especially those primarily using the drive just as a way of loading games more quickly than tape. When the magic button is pressed, part of the screen is cleared and a prompt appears. It is then possible to LOAD and SAVE machine code files, screens or 'images' (which are like Multiface snapshots). It is also possible to catalogue or format disks, erase, copy or rename files, or protect individual disks from erasure. A complete disk can also be backed up to a second disk - but this is an operation that will rarely be used, since it apparently takes up to 30 disk swaps (I didn't try it!). There are also magic button commands to enter pokes, reset the Spectrum and return to the interrupted program (the screen is restored first).

The Spectrum Basic commands (for example LOAD%0;"file") largely duplicate the magic button functions - allowing running Basic programs full access to the disk. An additional feature is that Spectrum streams can be used - so the Disk Catalogue can be redirected to a printer (using CAT%%£3,0): either a ZX or Alphacom printer, or one connected to the Swiftdiscs printer port (once it has been FORMATed). The Basic SAVE command can save machine code and screens, like the magic button function, but can also save Basic and data arrays, handling all the normal SAVE/LOAD options. There are also OPEN and CLOSE commands for setting up streams to files (allowing a file on disk to be PRINTed to or INPUT from), though the OPEN£%£5;"file" syntax is a little hard to get used to.

One of the most powerful features, however, is the Swiftdisc's option of fixed PRINT to a file (which puts data in it) or INPUT from one (which reads the data back). The Swiftdisc II has this facility - enhanced with functions to append to the disk file (for adding more data to an existing file) and to test for an end-of-file condition (which would normally result in an error).

Another feature offered by Swiftdisc II is the 'Fixed Length Record' mode. This allows a program access to any individual record in the file almost instantly by referencing each entry by number according to its position in the file. The only disadvantage of this system is that all items in the file must be the same size. This facility is available to Spectrum Basic using IN% and OUT% commands and makes it possible to write database programs handling a full disk of data (more than 600K). The example program uses the commands to almost instantly recall from the disk file any pre-calculated prime number (after another program has created the file on disk). The only other Spectrum disk system I know of which can do this is Mallard Basic running under CP/M+3.

Other Basic functions include error handling (%ERR and %LINE give the error code and the line on which it occurred) and a file date stamping facility (use LET %DATE="dd/mm/yy" on power up).

The final way to use the Swiftdisc II interface is via ZX Interface One emulation. This is initiated by loading an emulator program (LOAD%0;"EMUL") purchased separately at £12. Once loaded, the Magic Button is disabled and the emulation gives up to 4 pseudo-microdrives on one disk (numbered as you choose from 1 to 8) - each is 127K in size and can hold up to 50 microdrive files. The emulation (of a version one ZX Interface One) is very compatible with existing Spectrum software especially if the optional Hardware Mapping facility is purchased (this is £11 on top of the microdrive software, or free with either printer port). The hardware simulates the circuits of the Interface One so that even software which directly accesses the interface (to check whether a cartridge is inserted for example) will run correctly - the hardware also fixes the CLOSE£ bug (a bug in the Spectrum ROM itself).

For tests, I ran Hisoft's Devpac (versions 3M21 and 4), Oasis Software's Laser Genius (a superb package - bring it back on the market, someone!), Beta Basic (version 3.0), Supercode 3.5 (another useful package) and Imbos 2.0. I also ran, without problems, an extended catalogue program (modified from listings in the Hisoft manuals) and the MOVE copier program that came free with the Microdrive Expansion Kit. In fact, the only program that I could not get to work was Microdrive Doctor from PIPEQ.

The Swiftdisc II is also fully compatible with ZX Interface One, allowing microdrives to be used even while it is connected. A program supplied with the microdrive emulator disk automatically transfers whole cartridges to pseudo-microdrives on the disk (though it omits 'hidden' files starting with CHR$0, and gets confused if files are multiply-saved using the POKE 27391,x trick). Loading the same 48K image program took about 7.5 seconds, compared with 3.7 seconds on the Plus D and 30 seconds on the +3 with Multiface 3 - this shows that the Swiftdisc doesn't quite live up to its name!

The Swiftdisc II is compatible with normal Multiface Ones, except in microdrive emulation mode - but my Disciple-compatible Multiface worked fine all the time, and saved images onto the pseudo-microdrive correctly. It is difficult to decide how fast the microdrive emulation is compared with the ZX microdrives - since microdrive loading time varies enormously, depending on how the files are laid out on the cartridge. At a guess I would say that SAVEing is quicker than cartridges, and LOADing is slightly slower - however, the disks are much more reliable! FORMAT1ng (after the first, which sets up the disk) is almost instant, and the RAMTOP bug (which crashed the Spectrum if a LOAD was attempted when there was too little free memory) has been cured.

Prices for the Swiftdisc II vary from £50 for the basic interface to £172 for the interface, drive (which has a built-in power supply and formats 3.5inch disks to more than 600K), RS232 port, microdrive emulator software and hardware, and Kempston joystick port. If you want one of the interface write off to Sixword Ltd at 24 Chatsworth Close, Catisfield, Fareham, Hampshire PO15 5LS. I recommend the Swiftdisc II system to any serious Spectrum user wishing to upgrade from microdrives - games players and non-microdrive users may wish to compare prices with the MGT Plus D system.


REVIEW BY: Ian Cull

Blurb: SWIFTDISC II EXAMPLE 5 CLOSE£%£4 10 OPEN£%4;0;"primelist","R","R",5 15 REM opens primes file - each number takes 5 bytes 20 DIM P(1) 25 REM all IN/OUT is via arrays of numbers of characters 30 INPUT "Which prime?";X 40 IN%£4;P(1),X 45 REM get entry X into P(1) array 50 PRINT P(1) 60 GO TO 30

Transcript by Chris Bourne

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