FOLLOWING THE EXCELLENT Rotronics Wafadrive, and the Beta Plus (TR-DOS V4) interface of last issue, here's a look at two further units, the Kempston Disc Interface and the Opus Discovery 1. The Kempston belongs to the Shugart compatible interfaces and can run with any Shugart standard 3", 3.5" or 5.25" disk drive which incorporate a power supply unit. The drives must however, be capable of double density recording. The K-DOS operating system displays itself as an extended BASIC, where commands have to be called up via a PRINT #4 command. This proves to be laborious and a lot more effort is required when comparing with the simple Beta operating commands or even the Rotronics and Microdrive extended commands. A nice feature for BASIC programmers is the BASIC OVERLAY facility using the excellent MERGE with autorun, and the line definable CLEAR functions. The Kempston unit must be the smallest disk interface for the Spectrum, but this isn't necessarily a plus, as there is no extension port for other peripherals.

The Opus Discovery 1 is probably the most comprehensive add-on for the Spectrum next to the Timex drive. It incorporates a 3.5" disk drive, a parallel printer interface, a Kempston compatible joystick interface and a monitor output port and provides an expansion port for any further peripherals. The Opus Discovery 1 comes as a fully integrated unit, into which the Spectrum 48K or Spectrum Plus plugs. Provision is made to incorporate a second drive, but for this the unit has to be returned to the factory. The operating system is similar to the microdrive extended BASIC and the various ports for printer and joystick are accessed via separate streams. The Opus Discovery 1 is the ideal unit for users who abhor a multitude of separate enclosures and cables littering their precious desk space.

The next issue will feature the Timex disk drive and a complete comparison table featuring all the fast storage devices looked at in this series will summarise the various findings.



The Kempston disc interface must be the smallest unit of the series, measuring only 100 x 67mm. It has no expansion port and must therefore be connected as last in the chain of add-ons. Up to four disc drives (40 or 80 track, single or double sided) may be connected via a Shugart compatible 34-way IDC cable. To save space or cost the 34-way plug is not polarised, which means a trial and error connection. No harm can be done, as the Shugart pin layout only uses one side of the connector. A power indicator and a reset button are incorporated in the unit.


On powering up the system, the Spectrum will display the copyright message to indicate the presence of the Kempston DOS. This K-DOS is an extension of the Sinclair BASIC and is implemented via a software switch triggered by a PRINT #4 command. Parameters are passed on via a further PRINT statement. K-DOS can be included on the same line as BASIC statements, but care should be taken with standard PRINT statements, as these must be separated by use of a double colon to distinguish them from the parameter passing PRINT statements.


Kempston DOS Version 2.0


All commands with the exception of INPUT #, PRINT # and INKEY$ # are preceded by PRINT # 4:

CAT: PRINT d gives a catalogue of all files of drive d (1-4)

CAT: PRINT d, "string" gives a catalogue of all files on drive d, whose name contains "string"

CLEAR: PRINT m1, m2 deletes a block of BASIC lines starting at m1 and ending with m2

COPY: PRINT d is a tape to disc transfer utility which allows the transfer of most unprotected cassette programs to disc. The command batch processes the tape files until a BREAK is detected. The tape must be stopped on a command prompt to allow block storage to disc. On saving, the command displays the filename, the start address and the length of file in decimal notation. Headerless blocks are saved using a "default n" filename. A break into the BASIC loader allows the modification of LOAD, SAVE and MERGE to K-DOS syntax. The transfer of tape programs obviously requires some knowledge of BASIC and possibly machine code.

ERASE "filename" erases "filename" from the directory of the current drive. The UP ARROW acts as a WILD CARD character

ERASE "filename": PRINT d erases "filename" from the directory on drive d

FORMAT "diskname": PRINT i,j,k,l formats a disc on drive i (1-4) with j tracks (35, 40 or 80), k sides (1 or 2) and stepping rate (6, 12, 20 or 30ms delay)

GOTO m forces a BASIC program to jump to line m on any error (Error trapping)

INKEY$ #n reads the next character of a sequential file opened to stream n (n can be 0 to 15 with the exclusion of 4)

INPUT #n; var1; var2; reads the next record of a sequential file opened to stream n

LOAD "filename" filetype: PRINT d loads a program from the specified drive. The drive specifier is optional. The filetype may be CODE, SCREEN$ , DATA a(), DATA a$ () etc. Programs will AUTO-BOOT after a reset or power on if they are saved as file "AUTO" with a line number

MERGE "filename": PRINT d loads a BASIC file from the specified drive and merges it with the program currently in memory. This function provides the use of BASIC overlays to reduce the memory requirement of large BASIC programs by autorunning from the line number specified in the SAVE function after having been merged in the main program residing in RAM. K-DOS's CLEAR acts as a block delete to prevent the execution of lines from the previous program.

MOVE "file1","file2": PRINT d2 copies files from a specified drive to another specified drive. It can also rename files or discs on the specified drive (Back-up on same disc). For single drive users d1 equals d2 and prompts for disc change are displayed automatically. If filename2 is a nullstring, then a copy with the same name as the source file (filename1) is created. Block copy is performed if filename1 is the nullstring. This option allows the back-up of a complete disc to be made. With filename1 a nullstring and a specified filename2 any files on the specified drive with the substring filename2 will be copied to the specified drive. This is useful for file extension systems (MOVE "", "/BAS";PRINT d1,d2 copies all files on drivel with the extension /BAS to drive 2)

NEW is similar to BASIC NEW with the exception that K-DOS remains enabled (K-DOS variables are not cleared)

OPEN #n,"filename": PRINT d opens a stream n to a sequential file "filename" of the specified drive d and assigns a buffer to it. If the file already exists, it is opened for reading, otherwise for writing

PRINT #n; var1; var2; writes records var1, var2 etc. into buffer n for transfer to a sequential file

SAVE "filename" LINE m: PRINT d saves the BASIC program "filename" onto the specified drive d. The drive specification can be omitted if it is the current drive. The optional line number will provide autorun from the specified line. If the filename is "AUTO" the program will autoboot when loaded.

SAVE "filename" filetype: PRINT d saves CODE, SCREEN$, DATA a(), DATA a$() etc.


27 error reports




24 page manual with introduction, installation, explanation of disc interface commands, error messages and K-DOS summary.




Slow access times.
Complicated command structure with PRINT #4 calls.
Complicated handling of variables with the use of PRINT statements.
No machine code access to the DOS commands due to lack of information.


Average disc interface with good CLEAR and MERGE commands enabling simple BASIC OVERLAY system configuration.


Depends on drives connected.


Number of drives supported per system: 4
Storage capacity depending on drives connected.


£85 including VAT



The disk drive is integrated in a large metal housing painted in black and incorporates the 3.5" disk drive and the large interface card with a parallel printer interface, a software switchable Kempston protocol joystick interface and a monochrome composite video output. The unit also features an extension port for further peripherals, but the NMI line on A14 is not brought out, which means further ROM based peripherals cannot be connected. Provision is made for a second disc drive which may be fitted into the unit by purchasing the Discovery Plus package. This, however, must be installed by the Opus factory. Discovery 1 accommodates both the Spectrum and the Spectrum Plus, and both computers may be screwed permanently to the unit.


Except for minor differences, the Discovery 1 system is completely software compatible at command level with the microdrive system and includes some extra extensions to various commands. Streams and channels are used for the access to the individual input and output devices. The main channels are: K for input from keyboard and output to the lower part of the screen; S output to the upper part of the screen; P for output to the ZX printer; M for input and output to a disk file; B for binary input or output to the parallel port; T for ASCII input or output to the parallel port; CAT for access to the disk catalogue file; CODE for writing or reading directly to memory; D for disk access used in conjunction with a MOVE command; J for switching the joystick port on and off and # to open one stream to another.

An excellent feature provided by Discovery 1 is the possibility of creating a RAM disk within the Spectrum RAM area for fast file handling. To this purpose the RAM area needs to be formatted similar to a normal disk and files created or transferred to the RAM disk area for processing. When the processing is completed, the files may be moved back onto disk for permanent storage.

Data storage can be performed via serial or random access files. An existing datafile may be extended with the use of the EXP command extension, random access requires the setting up of fixed record lengths when opening a new random access file.

The Discovery 1 is a 2 drive system using only one drive. By using drive 1 and drive 3 the operating system remembers which disk is currently in the drive and asks for a change of disks whenever it needs to write or read from the other disk. The Discovery 1 has a socket for a 2K RAM chip and this may optionally be fitted. All the operating system tables get copied into it and this means the whole drive system may be configured. New commands and channels may be added and error messages changed. All the floppy disk parameters are stored in the RAM chip and this means that Discovery can be used with any sized disk. The sector size may be changed to 1024 bytes for very fast operation or to 128 bytes for memory saving applications. The RAM disk may also be reconfigured to reside anywhere in memory, be of any length and even have a variable block size. Programming expertise is a requirement for this kind of configuring, but Opus will provide technical information for machine code programming.


CAT(drive) displays the catalogue of the disk in the specified drive

CAT #(stream); (drive) sends the catalogue of the disk in the specified drive to the given stream

CLEAR # clears out all open streams and makes them available for further use

CLEAR # (stream) clears out the specified stream

CLOSE # (stream) closes the specified stream

CLS* clears the screen and sets the display attributes to their defaults

CODE(start address), (no. of bytes) is an extension to the LOAD*, VERIFY* and SAVE* commands which allows a block of memory to be saved, loaded or verified

DATA(array name) () is an extension to the LOAD*, VERIFY* and SAVE* commands which can be used to save and load numeric or string arrays

ERASE(file spec.) erases the specified file

FORMAT is used to set up channels "j", "m" and "d"

FORMAT "j"; (status) is used to turn the joystick on or off

FORMAT "m"; (drive); "(drive title)" is used to format a disk. "m" may be omitted since it is the default channel. To set up a RAM disk a RAM area has to be cleared and drive number 5 used: CLEAR 32767 ENTER followed by FORMAT 5; "ramd" after which the disk system will recognize RAM disk as disk number 5

INKEY$# (stream) reads one character from the specified stream. If the stream is associated with an "m" channel the command will only return a null string when EOF has been reached. Other slow channels ("K", " t " and "b") will return a null string when a character is not available

INPUT #(stream); var1 ; var2; ... inputs values from the specified stream. If used when inputting from a file, the variable list must be separated by semicolons and not commas to make sure there is no output to the stream. In the file the values to be read must be separated by the ENTER character

LOAD*(channel spec.) loads a programme and variables from the channel specified

LPRINT #(stream); var1, var2, ... prints the values of variables in the variable list to the specified stream

LPRINT sends the variables to the stream 3 (the ZX printer)

LLIST lists the programme to stream 3 (the ZX printer). To list programmes using the parallel port stream 3 must be opened to the "t" channel

MERGE* (channel spec.) merges a programme and variables with the programme and variables already in the memory

MOVE A TO B transfers information from an input channel or stream A to an output channel or stream B. The process is terminated with an End Of File. For input from a slow channel, an End of File must be generated by pressing SHIFT and ENTER simultaneously

OPEN # (stream); (channel spec.) (access) associates the specified stream with the channel given. Possible types of access are IN or OUT. For the "m" channel the following options are available: EXP expands a serial file for output only and RND allows input and output for random access files

OPEN #4; "m"; 1; "sample" RND 15,10 creates a random access file "sample" with a record length of 15 bytes and with room for 10 records. For the "t" channel a printer width can be specified: OPEN #4; "t"; 0 RND 80

POINT #(stream); (record number) sets the file pointer to the start of the given record in random access files

PRINT # (stream); var1; var2; ... prints the values in the variable list to the specified stream

SAVE*(channel spec.) saves the current programme and variables to the specified channel. If a BASIC programme is saved with the filename "RUN" followed by the LINE extension, the programme will automatically run after being loaded

USR 0 resets the Spectrum, but not the disk system

USR 14070 resets the Spectrum and the disk system

USR 8 returns the version number of the disk software

USR 432 returns the number of bytes remaining in the current stream


13 error reports.


Centronics parallel printer port, software switchable Kempston type joystick port and monochrome composite video monitor output.


Comprehensive 34 page manual with extensive introduction to the disk system, detailed description of the operating procedures, command reference guide, error reports description and connector details.


None included. Selection of disk software available from Boots.




Comprehensive disk system with good extended BASIC commands, excellent filehandling facilities including random access file management, time saving RAM DISK feature and host of extras such as the parallel printer port, joystick interface and monochrome video output.


3.5" hard cased disks as used with Amstrad and Tatung computers. Price of media: Single sided from £2.40 to £4.10 excl. VAT, double sided from £3.60 to £4.75.


Number of drives per system: 2
Storage capacity: 180 Kbytes per side
Number of tracks: 40
Number of sectors per track: 18
Sector size: 256 bytes


Formatting: approx. 17.5 sec
Cataloguing: approx. 4sec
Loading a screen: approx. 4sec


£99.95 including VAT


Producer: AT & Y Computing Ltd.
Price: £32.95 incl. VAT (P&P for Europe £2, outside Europe £4)


Yet another peripheral for transfer of protected commercial software is AT & Y's SPECMATE. Unique in that it can transfer programs to tape at normal or double speed, to the Challenge Sprint tape recorder, microdrive, Wafadrive and last but not least to the BETA disk drive system (Version 3,0). SPEC-MATE seems to resolve any kind of transfer problems for less than £40.00, but does the transfer fee also include a lot of hassle and lots of debugging?

SPEC-MATE could be mistaken for another of the long line of uncharacteristic looking joystick interfaces housed in a non descript black box. An extension port and a push switch at the top right of the unit are the only visible features.

The transfer procedure is simplicity itself. After installing SPEC-MATE, the program is loaded in the normal way and run. It can be frozen at any point by just pressing the push-button. The border flashes for a second and then turns black. This is where the first of up to four selections have to be made. The first decision is whether to save to tape (t), to microdrive (m), to BETA disk (d), to Wafadrive or to save at double speed to tape (f). A further option lets you examine the screen for any hidden data by removing the screen colours.

Pressing the required option takes you to the red border mode. Here you decide how to save the program — with or without the loading screen. 'N' saves the program with the frozen screen, 'S' saves it without any screen. If you want to save the loading screen as well, you need to load the program until the full loading screen is visible and then interrupt the loading. Then, in red border mode, select 'A' which saves the screen. Next, you need to reload the program entirely, freeze it and then select 'B' in the red border mode to save the program itself.

After the red border mode comes the blue border mode which allows you to specify which part of the screen area SPEC-MATE will use for its work data. It requires a third of the screen as workspace and, as some programs have hidden data in some area of the screen, it is important that you can choose which part of the screen SPEC-MATE is to use. If you choose the wrong section of the screen, hidden data is overwritten by SPEC-MATE and the program crashes.

Last of the border modes is magenta, which allows you to enter the name of the program after which ENTER starts the saving procedure. If backing up to tape, the tape recorder should be in recording mode. If everything is hunkydory, the program will unfreeze and continue running. If it doesn't, the back-up will not have been successful and you may have selected the wrong part of the screen memory for SPEC-MATE to use.

If saving to Wafadrive, the red and blue border mode are skipped. The only other difference in procedure between the various back-up media is number of characters allowed in the title.

Several programs were backed up successfully onto various media and SPEC-MATE seemed to perform both well and as promised. Saving at double speed to tape was impressive, reducing the loading time of Way of the Exploding Fist from 4min 33sec to 2min 10sec, for instance. A certain amount of trial and error may be necessary to secure a successful save — some programs may not save out if they are frozen at certain points during execution, while the choice of screen area for SPEC-MATE's workspace is also critical.

Not all programs load successfully to Wafadrive. Barry Blitz of AT & Y explains that this is due to a higher memory requirement of the Wafadrive operating system work area. He reckons that about 80% of programs will transfer easily to Wafadrive. Further problems were encountered with the BETA disk interface. Apparently there are several sub-versions of version 3.0 DOS. At present only particular issues of the BETA DOS 3.0 seem to work with SPEC-MATE. It appears that earlier versions of the DOS have different call addresses and the drive does not respond. Barry believes that Cumana have batches of earlier versions still on sale. AT & Y is investigating the possibility of accommodating these earlier versions into the SPEC-MATE ROM. Also on line is an improved version of SPEC-MATE which will be able to operate with the OPUS disk drive system (in 2-3 weeks).

File handling programs such as TASWORD can be saved with their files to produce working versions on Wafadrive or disk. An interesting feature of SPECMATE is the fact that back-up programs run without the presence of SPEC-MATE: they are fully independent. Perhaps this is the reason why AT & Y stress in the SPEC-MATE manual the point of not pirating software...

Franco Frey