Original instructions for the Newsfield magazine sub-editor follow:
This is in FIVE sections: the first part forms an 'editorial',
summarising the trends in the market; then comes the main Tech review,
covering CP/M and Mallard BASIC - this part can be printed in condensed
type if space is short, but please make sure it's not on a dark blue
background (e.g. the Xmas special) as readers find that combination hard to
read. Then I preview the NEW Plus Three material I'll cover in next month's
feature (along with anything else that comes in). Then comes a short
feature on a project to get the CPC machines to run Spectrum BASIC - light
relief as CP/M works the opposite way - and the usual 'trailer' for next
month.
SPRING SURPRISES - TECH TIPS #30 - CRASH JUNE 1988
Spring has been fruitful for the Spectrum market this year, with a flood of
new Plus Three utilities, a conversion of ZX BASIC for the Amstrad CPC
range, and signs of Amstrad's long-forecast shift into the computer-music
market. Simon N Goodwin reports on the changing face of the Spectrum...
PLUS THREE RUSH
Original software for the Spectrum Plus Three is flooding onto the market
at last. In the last few days I've received three new serious programs from
Tasman Software, a clutch of utilities from ZX Guaranteed, and news of new
Plus Three titles from Lerm, BetaSoft and HiSoft.
Most importantly, Locomotive Software have at last put the CP/M Plus
operating system on the Spectrum. This move has been predicted since 1982,
though it was not technically feasible till the launch of the Plus Three.
CP/M doubles the size of the Spectrum's software-base at a stroke, and
changes the Plus Three from a specialist games box into a bargain-priced
general-purpose computer.
At last it looks as if the Plus Three is here to stay, despite its high
price, technical quirks and lack of compatibility with older Spectrums.
Software houses are breaking away from the 'toy market' image, taking
advantage of the Plus Three's standard ports, and bringing Spectrum users
'serious' applications software.
It's not yet clear how this will affect the main Spectrum market.
Machine-specific games will always dominate Spectrum software sales by
volume, because - as publishers know well - they are disposable products in
an ever-changing fashion market.
The Plus Three is a valuable part of Amstrad's range, but it's a hybrid
product: a CPC/Spectrum clone rather than a true Spectrum. At least for the
time being, if you only want to use Spectrum-specific hardware and
software, you're better off with a Plus Two and a Plus D or Swift Disk -
but the Plus Three is gaining a unique character.
It's interesting that Amstrad have put the price of the PCW 8256 range up
to around twice that of the Plus Three; they seem to be protecting its
status on the borderline between games and serious computing.
There are strong signs that Amstrad have chosen a new direction for their
mass-market entertainment products. If you've been paying attention over
the last three years you will not be surprised to hear that they're moving
into music-making. DIY music is going to be a very, very big hobby, and an
extension of home computing as distinct and popular as game-playing or
word-processing.
After the Plus 2A - the Plus Three with cassette - it looks as if the Plus
Four will have add-on music hardware, probably similar to the RAM Music
Machine hardware, designed by ex-Sinclair staff at Flare. No one - even at
Amstrad - knows when this will appear as I write, and the first Amstrad
home-made music product is not a computer.
The Studio 100 started to get TV advertising in April, when it reached a
few high-street shops. It's a four track tape recorder, which lets you
build up a stereo recording from up to 10 parts, recorded separately. It
also includes a six channel mixer, to combine sounds and effects, four
grotty microphones, speakers, uncomfortable headphones, an echo generator
and a complete music-centre - including a second tape deck, turntable and a
three-band stereo tuner.
There's a ominous 'DATA' connector on the back, and the manual - by Plus
Two manual editor Ivor Spital - just hints that it is 'reserved for future
Amstrad add-on products' - believe it!
The Studio 100 is a fabulous peripheral for a sampler or SpecDrum, and at
£300 it's excellent value. The sound quality is not brilliant, but
tolerable, as you'd expect from Amstrad.
At first, the Studio 100 is sure to sell well for other reasons. Staff in
my local Currys cynically reckon most punters won't know what it's for, but
they'll buy it because it has more knobs and switches than anything else in
the shop: 33 knobs, 7 faders, 22 switches, 21 buttons, 17 sockets and a
lever!
Once people have got it, they won't be disappointed, as long as they can
find time to play with it. We can expect a steady stream of interactive
music products from Amstrad in the next few years.
CP/M EMANCIPATION
Despite its success in the specialist games market, the Spectrum has always
been a general-purpose computer. Until recently it has been handicapped by
an obscure operating system, no standard disks and a limited home TV
display resolution. Locomotive Software have addressed all three of these
problems, with the launch of CP/M Plus for the Plus Three.
CP/M HISTORY
When computers first appeared they were all totally incompatible, like
games machines today. After a while people decided it was a waste to
re-write programs for every new machine, so they dug out a program written
in 1974 that would control disks and a simple display on ANY computer with
an 8080 processor, or it's souped-up successor the Z80. The program was
called Control Program/Monitor, or CP/M for short.
CP/M was important because it meant programs could be written once and work
on lots of machines without changes. All the machine-specific bits were
handled by calling the control program. This was a bit slow and restrictive
- it ruled out graphics and sound - but it was worth it, because thousands
of CP/M programs were written - programming tools, business software, and
text games like adventures. Many programs are available at just the cost of
a disk and duplication - a few pounds - from legal 'public domain' software
libraries like PD-SIG: 0896 63298.
SPECTRUM CP/M
Spectrum CP/M only runs on the Plus Three. It consists of a single three
inch disk, brim full with 346K of files on both sides, and a hefty manual.
It loads from the Plus Three 'loader' option in about 10 seconds, plus
another 10 while it automatically configures the serial port and an 11K RAM
disk (drive C).
Once CP/M is loaded you have about 61K of fast memory free for programs,
with no need for 'paging'. Usually on a Plus Three the screen and ROM mean
you only have about 40K free in one space, plus a 64K RAM disk. In CP/M up
to 15K of otherwise unused memory can work as a fast but small simulated
disk - useful when copying small files with only one drive. The rest of the
128K contains the code of CP/M, which runs entirely independently of the
Spectrum ROM.
CP/M COMMANDS
Spectrum CP/M Plus has 37 standard commands, but there's no maximum - the
package includes facilities to make your own commands, in BASIC,
machine-code or by chaining together existing ones. If you type a word CP/M
doesn't know, it automatically looks for a file of that name and either
executes it, if it's a program, or reads commands from it as if you typed
them, if the file contains text. This simple scheme is very powerful.
Plus Three CP/M initially recognises 15 'housekeeping' commands. The
simplest is TYPE, which shows a named file on the screen, waiting for a key
between pages.
You enter DIR to find the names of disk files. DIR takes about 3.5 seconds
to read and display a directory of 27 files - plus an extra eight seconds
if you've just changed the disk, and the computer needs to update its
record of the disk structure.
DIR (SIZE) uses the separate DIR utility program, and takes nine seconds to
load that 15K program, read the same directory, sort it into alphabetical
order and display it over 31 lines.
DIR works on Plus Three DOS disks, but TYPE - like most commands - can only
decipher the data on CP/M disks. It prints just PLUS3DOS, plaintively, if
you ask it to look at a file created by Plus Three BASIC.
SHOW tells you the amount of space in a drive, DATE lets you read and set
the date and time, used to mark files. The rather rudimentary Plus Three
hardware means that the clock loses time when the disk is accessed. The
date reverts to Christmas 1982 whenever you reset the system.
ERASE and RENAME let you remove files from a disk or change their names.
SET can protect a file from ERASE. Names can include 'wildcard' characters,
as in Plus Three DOS, so you can use one command to process several files
with similar names.
DISCKIT copies disks. It takes about two minutes to copy a 173K disk on a
single drive computer - a minute to read and write the data, plus another
minute for you to swap the disks back and forth eight times.
PIP is the rather clumsy 'Peripheral interchange program'. It lets you copy
files back and forth between disks, the screen, serial and parallel ports -
but not MIDI, which did not exist when CP/M was designed.
OTHER COMMANDS
There are 10 configuration commands. For example, the PALLETTE command lets
you set the foreground and background colours - the default is white on
blue.
The other 12 commands are only briefly mentioned in the manual - they are
'advanced programming tools' - well, they were when CP/M was invented, but
today they seem a bit crude.
ED is the standard CP/M line editor, and is horrible. Not much better is
RPED - a screen-editor for up to 200 lines of text, written by Amstrad in
protected BASIC. It's simple to use but very rudimentary, and won't let you
copy or move information between lines to the next. RPED is alright if you
just want to write a few command-files, but it's not much good for
programming.
You get two assemblers, for the 8080 processor rather than the Z80, and can
try them out by assembling the well- commented RAM disk source code
provided. All the 8080 instructions run on the Z80, but they have different
mnemonic names so the source looks pretty odd! To make things even
stranger, the program uses Z80 codes which the 8080 couldn't handle, and
these are written as 'defined' bytes and words in the program. Even so,
it's an interesting example.
KEYBOARD
Like ZX BASIC, CP/M is usually controlled by typing commands at the
keyboard. However CP/M lets you change the characters produced by every
key, and there's a massive character-set, including foreign accents and
loads of weird squiggles.
Some commands use the square and curly brackets, which Amstrad did not mark
on the keyboard. Locomotive have positioned these sensibly on unused pairs
of symbol-shifted keys. BREAK is the equivalent of CP/Ms 'Escape', and EDIT
usefully recalls the last line entered for editing - try doing that in GEM
or on an Apple Mac!
EXTEND works as a 'control' key, so - for example Control S and Control Q
stop and start scrolling; the TRUE and INVERSE VIDEO keys give the same
effect more conveniently.
You can divert input and output to any device with commands. If you've got
a printer connected, Extend P is a convenient way to copy all display
output to it.
Keys repeat, without over-running, when you hold them down for a while, but
there's no key-click, and the cursor disappeared annoyingly when the arrow
keys were held to move quickly along the line. Locomotive Software excuse
this on the grounds that they try to make the screen display fast, and
no-one complained about this bug on earlier Amstrad CP/M machines. They'll
try to find a fix, but they don't sound very hopeful.
You can 'type ahead' while commands are running. Sometimes the characters
you enter get lost, but usually they appear on the next command-line. The
effect depends on what the computer is doing, but it's a useful feature
when you get used to its quirks.
The line editor lets you move back and forth through up to 239 characters
of command and 'parameters', adding and deleting at will. Unfortunately you
can't edit characters unless they're on the same display line as the
cursor.
MALLARD BASIC
Mallard BASIC is a 28K code file. It loads from the CP/M command level in
about 5.5 seconds, leaving just over 30K for file-buffers, variables and
your program.
Mallard BASIC is aimed at serious programmers, and is very like IBM's GW
BASIC or Microsoft's MBASIC. You enter program lines of up to 255
characters. The syntax is not checked at once, as it would be in ZX BASIC.
If a mistake is found when the line is executed, you are thrown into the
line editor.
The BASIC editor works like the CP/M command editor, with extra tricks to
move up and down between screen lines, search for a specific character, and
delete or overwrite chunks of text. You MUST tell it the width of the
screen line with the WIDTH command before it will work in 32 column or 80
column mode, or strange things can happen!
In BASIC the keyboard functions are sadly inconsistent with the CP/M
command level - a common problem with early operating systems, where every
program has its own conventions. EXTEND A works like EDIT in CP/M,
recalling the last line as long as you have not yet started to enter a new
command. BREAK is ignored, but EXTEND C will stop your program unless
you've protected against it.
Control G is the only way to make a sound, unless you resort to OUT
instructions to control the speaker directly. Type Control G in BASIC, to
hear a simple 'beep' sound. In CP/M this only makes a sound when you print
the character - not when you type it.
Display control is rudimentary, with no graphics commands at all. You have
to print control characters to change colours, move the cursor or clear the
screen. In ZX BASIC you'd type CLS, but in Locomotive BASIC you must use
terminal control codes: PRINT CHR$(27);"H";CHR$(27);"J".
This gibberish means your programs will work on most other CP/M machines,
and suits the IBM PC or Amstrad PCW, both of which run Mallard BASIC and
use the same control-codes.
Mallard BASIC allows four different data-types: integers, whole numbers
between -32768 and 32767, are more concise and slightly faster than other
numeric types. They are particularly useful for array subscripts. Maths
functions like SIN and LOG use the default 7 digit floating point 'single
precision', and real number-crunchers can add, subtract, multiply and
divide 16 digit 'double precision' numbers. You pay for the precision in
time and memory.
Variable names can be as long as you like, but strings are limited to
255 characters, unlike ZX BASIC. Locomotive BASIC has the big advantage
that you don't have to tell the system the maximum length of string array
variables.
Like Microsoft and ZX BASIC, but unlike more modern BASICs, Mallard BASIC
is not well-suited to structured programming. There's IF..THEN..ELSE, which
can be nested but must be one one line, and WHILE..WEND for loops that
start with a test.
Unlike Plus Three BASIC, Mallard has proper file-handling and lets you trap
errors, mask the bits of integer values, search strings and trace the
current line-number. Overall it's much more like Fortran than Pascal,
though when it comes to program development it has the edge over both those
languages in that it is interpreted, and you can edit and test the code
very quickly.
Sadly there's no compiler available. Locomotive say, unconvincingly, that
their interpreter is as fast as other people's compilers. Methinks they
expect people to use other languages if they need the speed of compiled
code.
Three file-handling schemes give you most of the traditional
data-processing options, including sophisticated 'ISAM' (Indexed Sequential
Access Method) files, usually only found on big multi-user systems.
You can manipulate normal text files, printing lines then reading them
back, one by one, in order.
Alternatively you can use 'random access', dividing a preset file space
into fixed-sized sections, called 'records'. Later you can tell the system
to 'GET' or 'PUT' collections of text and numbers in any section in the
file, just by supplying the appropriate record number.
ISAM files come in two parts - one file contains the data, as in a random
file, and another file, the 'index', contains labels or 'keys' used to
access the data. You no longer need slot numbers, as you can associate any
number of keys - strings of up to 31 characters - with any record in the
data file. You can use up to eight independent indices with one file. ISAM
files can save a lot of work, but it takes a while to get the hang of them
and they tend to be wasteful of disk space.
You can't write a shoot-em-up in Mallard BASIC, but it's still a valuable
addition to the Spectrum programmer's armoury.
CAN IT BE TRUE?
CP/M is no use unless the implementation is genuinely compatible with the
thousands of programs available for the system. Spectrum CP/M has quirks,
as you might expect, but it runs most CP/M programs OK.
The disks, at 173K, are small by modern standards, but many CP/M machines
had even smaller drives - 88K was not unknown! CP/M software is often sold
on 5.25 inch disks, but conversion is not too much of a problem, as lots of
firms and interest groups can convert CP/M stuff for CPC and PCW computer
users with three inch drives.
Spectrum CP/M seems to work fine with 173K Amstrad disks. Pro Pascal and
Pro Fortran, for the PCW 8256, just plugged in and worked, although they
were short of space for files on my single drive Plus Three.
Most CP/M systems had two drives. The Plus Three can run a plug-in drive B,
but most people won't want to spend that much. Locomotive provide useful
two drive emulation on drive A. The system lets you use two disks in one
drive, telling you when to swap them.
Beware: this can get very tedious if the program is copying a file, a line
at a time, from one disk to another! An optional status line, at the bottom
of the screen, says which disk should be in the drive at any time.
Spectrum CP/M can display a maximum of 51 characters per line, or 32 per
line with full colour control. Most CP/M packages expect an 80 column
display.
To get around this, Locomotive provide a simulated 80 column mode, showing
80 columns in two overlapping 51 column sections. There's a marker on the
status line to show which side you're on. Flicking back and forth can
follow the cursor, or be manually controlled. Either way it works with most
packages, but makes some very hard to use.
Text output is slow: screen updates are about a third the speed of ZX
BASIC, in both sizes; scrolling is about 60 per cent of ZX BASIC speed in
51 column mode, but - bizarrely - only 44 per cent of Sinclair's speed when
scrolling a 32 column display.
CP/M uses two characters to mark the end of a line. Some printers only
expect one, and give double-spaced output when you use them from CP/M. You
can cure this by adjusting a switch inside your printer, unless you've got
a really cheap and nasty model. You must use the serial or parallel ports -
ZX and Alphacom printers won't work at all from CP/M.
DOCUMENTATION
The manual is in three sections. The first 100 A5 pages explain how you use
the system - entering and editing commands, performing 'housekeeping' tasks
such as copying and editing files and disks, and 'configuration' -
customising the system to your favourite key-layout, language or printer.
This part of the manual shows the benefits of CP/M's 14-year life and
Locomotive's long experience of the system. It's clearly written, although
a long and wordy read for anyone who doesn't like books. It's packed with
little comments that show that the authors have actually done what they are
writing about.
The next section, 160 pages long, covers Mallard BASIC. It's a tutorial
introduction to the language - incomplete but quite a good 'taster'.
The tutorial is no substitute for a a proper reference guide, so the £10
Mallard BASIC Reference Manual is probably a vital purchase if you're
serious. It starts with a similar tutorial, followed by an extra 300-odd
pages - methinks there's a frustrated blockbuster novelist at Locomotive
Software.
The CP/M manual ends with over 100 pages of appendices, covering disk
contents, keywords, machine-code system calls, detailed device
specifications and error messages. My pre-release copy lacked an index,
which Locomotive will add in final version. They recommend that techies buy
the Digital Research CP/M Plus Manual, for further information about the
programming tools and the design of the system.
VERDICT
At £30 for CP/M Plus, utilities, and Locomotive BASIC, this package is a
bargain if you're at all interested in computers for their own sake.
CP/M Plus transforms the Plus Three from an ingenious but aging games
machine into an old-fashioned but useful non-specific computer SYSTEM. Like
many others, I've found such systems a fascinating kind of general-purpose
tool and toy to have around the house. It's fun, but it takes hundreds of
hours to learn your way around such a system, and not everyone can be
bothered.
Even if you don't want to be a hacker, you can be a 'power user' with CP/M,
using whatever parts of it appeal to run a customised computer system for
work, business or fun. Suddenly there's more to be read in computer
magazines, because you can run all the CP/M packages reviewed in Crash,
Amstrad magazines and multi-format titles like Computer Shopper.
PLUS THREE PLETHORA
I've received lots of new and revised Plus Three programs recently, so I'm
planning an in-depth survey next month. For the moment, here's a taster.
HiSoft (0525 718181) have new Pascal and C compilers, in two versions. The
Plus Three DOS versions support Spectrum colour and sound and cost £35. The
CP/M compilers cost £50, but come with a screen editor and let you develop
programs for other CP/M machines.
At the same high price they offer CP/M DevPac. That's the assembler they
use to write their own programs, and has few of the annoying restrictions I
found when I reviewed the Spectrum version in the March issue.
HiSoft also distribute CP/M compilers from other firms. Now you can run
Astec standard C, Nevada Fortran and even Cobol on a Spectrum! Astec C is
big, costs £80, and includes floating-point maths and a built-in assembler,
unlike HiSoft C. The Nevada compilers are aimed at students and cost £40
each.
Tasman Software (0532 438301), authors of the best-selling word-processor
Tasword, are taking the Plus Three seriously. They've a new version of
Tasword on three inch disk, and TasSpell - a computerised spelling-checker
with a 70,000 word English dictionary.
Those two programs run on the Plus Three only, but TasCalc is a new
spreadsheet calculating package for any 128K Spectrum; it's the only
Sinclair spreadsheet that takes advantage of the extra memory on a Spectrum
128. TasCalc costs £18 on tape, or £20 - like the other Tasman Plus Three
titles - on three inch disk.
Lerm Software (091 253 3615) are working on a Plus Three disk management
package, and I've just received a bundle of disks from ZX Guaranteed (061
766 5712). These include a rather limited disk doctor, file transfer
utilities and simple database programs. Most interesting is '007 Menu',
which lets you keep track of up to 2300 files in a 'directory of
directories' on one disk.
CPC EMULATION
BetaSoft (021 443 4620) hope to have Plus Three BetaBASIC finished in the
next few weeks. They've been waylaid for a while by an experimental
project, converting the ZX BASIC language to run on the Amstrad CPC range!
The resultant £9.95 program starts by loading a copy of the Spectrum's 16K
ROM from tape. To avoid copyright problems, it's up to you to save the copy
from your own Spectrum, by typing:
SAVE "ZX 48K ROM" CODE 0,16384
Betasoft's code can load and save Spectrum-format tape files on the CPC. ZX
BASIC programs work fine, although slightly slower than they run on the
Spectrum. PEEKs and POKEs are compatible, as are most ROM calls, but few
machine-code games will run because IN and OUT cannot find the Spectrum's
keyboard and display ports. COPY drives any Epson printer.
There are two display modes. One lets you use four colours anywhere on the
screen, with NO attribute clash. The other emulates the Spectrum display;
again it only allows four colours, without BRIGHT or FLASH, but this time
it simulates the effects of attribute clash, so that even POKEs to the
display area work!
The CPC display uses 16K of memory, so it's not as fast as the Spectrum's
6.75K. 16K is taken from the program area on a 64K computer, so you only
get about 20K for ZX BASIC, but you get the full 41K Spectrum program area
on a CPC 6128.
SUMMER-TECH
In the July issue I plan to survey lots of the Plus Three software
previewed in this issue, concentrating on 'new' serious software - the
business and programming tools that have been denied to Spectrum owners for
the last five years. This will be good reading whether you've already got a
Plus Three, are thinking of upgrading, or just want to know what the new
machine can do that the old Spectrum could not.
Don't be put off if you're still among the majority with a 48K system. I'll
continue to cover the original Spectrum models, and cassette 128s, in this
column. Next month I hope to announce some Tech Tape enhancements, and news
of Lerm's cheap but powerful Z80 programming tape, set to break the
monopoly of HiSoft's DevPac. Don't miss Crash 54!
The above is from the original text, written at the time on a 48K
Video Genie computer with half the power of a ZX Spectrum, extracted
from a 100K 5.25" floppy disk with a Sinclair SuperBASIC program
on my QL which tweaked the non-ASCII characters inserted by
Scripsit; Then I read it onto my Amiga 4000/60 from a 3.5" Qdos
format transfer floppy, concatenated the 'extent' file (it was a
bit too big for one allocation unit on NEWDOS, and my program
(MultiDOS_BAS in the Quanta library) creates one file per directory
entry as most (up to about 24K) fit that) then I stripped a few more
control codes and word-wrapped it with Amiga shell commands, before
manually tidying the table (which got a bit messed up in transit)
and inserting pound signs that the Genie mapped to hashes. There
followed a few minutes of searching and replacing for the HTML
conversion in Hisoft Devpac 3, and a run through the W3C Tidy tool
to validate it - that's what I call compatibility ;-)
Copyright © 1988-2003 Simon Goodwin, all rights reserved.
First published by Newsfield Limited.