0% found this document useful (0 votes)
119 views

ZXComputing Apr 1987

Uploaded by

ryosaeba666
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
119 views

ZXComputing Apr 1987

Uploaded by

ryosaeba666
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 92

AN ARGUS SPECIALIST PUBLICATION April 1987 £1.

50

I
« FOR ALL SINCLAIR USERS
• I THE ESSENTIAL
[Stvp professorj
ZX CONTACTS
DIRECTORY
WORLD'S NOT
READY FOR A RANDOM LANDSCAPE
SPECTRUM COMIC GRAPHICS
STRIP UVUTYU!
THE DISCIPLE

L A LONE VOICE
KINGS OUT,,.
i „ v ^ s

/ V

/i

Spectrum

READY OR NOT...
HERE IT COMES
5U3W-X THE VERY FABRIC OF SPAOTIME BECINS TO CRUMBL£...

MONSTER HITS: • RANARAMA


ACE OF ACES • LEADERBOARD
Screen
c.u

Star

C.C.I
M E G A

S P O R l T i M E
COMMODORE 64 * \
X
(C)E8-95 (D) £14-95
SPECTRUM 48K,12QK,+ ADVANCE • S O F T W A R E • P R O M O T I O N S • L I M I T E D

£8-95 17 • STAPLE TYE • HARLOW • ESSEX »CM18 7LX • T E L * ( 0 2 7 9 ) 412441


AMSTRAD CPC
(C) £9*95 (D) £14-95
PROGRAMMING PROJECTS
Ml
PROJECT X: The best solutions to the code breakers
puzzle. 14

DISCOVERY COLUMN: Routines trom Discover owners.


49

LINE RENUMBER: Machine code programming utility. 68

REGULARS
Leaderboard (48)
NEWS: The latest In soft and hardware. 4

1 FEATURES
CROSSWIRES: Your technical queries answered. 12

WHICH? COMPUTER SHOW: Sir d i v e * new Z86


portable steals the show. 8 SHORTCUTS: Prlzewlnning readers' routines. 22

COMIC STRIP: The Random Memory column begins a


three part excursion Into comic strip territory. 19 CROSSFIRE: Readers letters. 29

DISCIPLE: John Wase with more Into on this exciting QL COLUMN: Brian Becket with the latest on the QL
new add-on. 16 scene. 67

EXPERT SYSTEMS: How to turn your computer into an


oracle. 24

RANDOM LANDSCAPE GRAPHICS: Alan Davis with a


new approach to building adventure settings. 32

FIRST STEPS INTO MACHINE CODE: Alan Davis


introduces you to machine code (Part 2). 41

IN-FLIGHT: The latest airborne epics Including Top Gun


and Ace ot Aces. 53

MEMORY EXTENSION: Tonl Baker pushing back the


programming frontiers. 57

Little Computer People (45)


THE ZX CONTACTS DIRECTORY: Who to phone for
repairs, software, h a r d w a r e . . . 59

TECHNICAL GRAPHICS: Ton! Baker with further


thoughts on 3-D. 70 SOFTWARE REVIEWS

SPECTRUM: Elevator Action (31), Ranarama (46), Leader


STREAMS AND CHANNELS: How to use the 128/+2-S Board (48), Short reviews b e g i n . . . (38)
RAM disc facility. 76

MINDPLAY: Peter Sweasey casts his eye over


WARGAMES: Gordon Hamlett goes to war. 82 Inheritance and Imagination. 84

ZX Computing Monthly • April 1987 3


Gremlin '87
We're being swamped bv news of all the planned releases
from Gremlin; as well as the reappearance o( Monty Mole Jack
The Nipper, and Thing on a Spring. Gremlin have also plunged
Into the licensing game and are working on games based on
Death Wish III (which should be easy to program, since they
won't have to animate the Charles Bronson sprite), Basil The
Greal Mouse Detective, and the comic strip character, Mask.
Also about to appear is Krakout, a sorl ot cross between
Space Invaders and Breakout, then there's the Samurai Trilogy
(yet another martial arts game) and Star Games, a compilation
tape that puts together Way ot The Tiger, Beach Head 2, Barry
McGuigan's Boxing and Rescue on Fractalus. These last three
vill all" be
titles will " available (or £9.95.

Melbourne Mystery
Undeterred by the tact that might well f i n d yourself
they've just been gobbled up bumping Into monster with lots
by Mastertronlc, Melbourne of tentacles, eyeballs a n d
House are carrying on as usual n a m e s like S h e g b a g the
and are about to release The Greebly. In addition to the
Mystery ot Arkham Manor. The eyeballs the g a m e also
game casts you as an Intrepid features animated graphics,
newshound a t t e m p t i n g to text, Icons a n d putl-down
uncover the uneartly mystery menus and the adventure Is so
that s u r r o u n d s the sleepy complex that it's had to be split
village of Arkham. Into two parts. After a few
The literary trendies d i s a p p o i n t i n g releases It
amongst you will of course sounds as If Melbourne House
remember that Arkham House may be back on form, but youH
was the company that publish- have to wait until May before
ed the stories of cosmic horror shelling out your £8.95 to find
weirdy, H.P. Lovecraft. so you out.

Colour of Magic Winners


Thirty ZX readers carry off Williamson. Moray; E.
Piranha's spool adventure The Mcllwaine, Coole; T. Hoodless,
Colour of Magic Bedfore; H. Neilson, Edinburgh:
They are, J o a n n e Side- M. Watson, Darwen; K. Solomon,
bottom, Hyde; Paul Oliver. Newcastle; C Clennell, Black-
Barton under Need wood; N. pool; G. Deacon. Amersham; R.
Owen, Prestwood; R Luckham, Verzlik, Amersfoort. Holland; K.
Manchester; K. Rose, Oldbury; A Robertson, Harare, Zimbabwe;
Brown. Northampton; A. Cho- R. Douglaas. Mossfellssvelt.
dorowski, Krakow, Poland; J. Iceland; R lauf. Bad Vllbel. West
Talbott, Bromsgrove; R Underhlll, Germany. The return of Monty Mole in Auf Wiedersehn Monty.
Aldershot; M. Hattersley, Bushey;

r
Disciple
G. Peikner, Leitha, Austria; S.
Ogleby, B F P 0 4 5 ; D. Riley,
Spalding; K, Sagner, Bellflower,
Editor Bryan Ralph
California, USA; D Emmerson, In our review of the Disciple
Bridgenorth; AG. Punchard, Assistant Editor: Cliff Joseph
last month we g a v e an
F a r n b o r o u g h ; C. Renders, Consultant Editor Ray Elder
incorrect price The Disciple
Farnham; K. Stephens, Hayes; H. costs £89.95 Inc VAT. Advertising Manager: Peter Chandler

Design: A.S.P. Design Studio


Printed by Chaw Web E*tov»r. Plymouth. A.S.R Advertising and Editorial
Advertisement Copy Controter Andy Setwood No. 1 Golden Square, London W1R 3AB 01-437-0626
Distributed by Argus Press Soles and Distribution Ltd. 12-10 Poul Street. London EC2A 4JS

ZX Computing Monthly If published on the fourth Friday ot each month. Subscription rates cn be obtained from ZX Subscriptions, intonet, Time* House,
179 The Marlowes. Hemel Hempstead, Herts HPS1 166
The content* o) this publication. Including oil articles, designs, plans, drawings and other Intellectual property rights herein belong to Argus Specialist
Publications Limited. All right* conferred by the law o< Copyright and other Intellectual property rights and by virtue o< International copyright conventions
are specifically reserved to Argus Specialist Publication* Limited ond ony reproduction require* the prior written consent erf the company.
Argus Specialist Publications Umlled ©1967

4 ZX Computing Monthly • April 1987 4


Power House
CRL's Alpha-Omega budget label hasnt exactly established
itself at the front of the budget market, which probably explains
why It's being relaunched as The Power House'. Starting off with
Slingshot, by Steve Cargill (author of Melbourne House's Fighting
Warrior), the new label alms to produce l o p quality games,
with superb artwork at pocket money prices'. Now where have
I heard that before?
CRL themselves, having brought Dracula back from the
grave to the computer screen, are now busy assembling
Frankenstein, a three part adventure with digitised graphics
price £9.95.
In Ihe arcade department CRL have Sunstar due out soon,
price £7.95.

Print and be damned


Yes, It's hardware time! Following on the success of the DMP
2000 (reviewed next monfh), Amsfrad have gone and released
the DMP 4000. Positively busting with fealures. like a speed of
200 cps, NLQ printing and over a hundred typeface
combinations, fhe DMP 4000 will set you back about £400.

The Cruel Sea


Activlsion are hoping the afterglow of Americas Cup
fever will draw people to their sailing game Due out about
now, and priced at £7.99. Sailing is 'a game of strategy
and simulation designed to capture the thrill of competing
in fop-level sailing competition'.
Nemesis

Throb!
Pulsator is the next release the same name from 2000 AD

w m
planned by Marfech, In which Nemesis has to take on his arch-
you have to rescue a number of enemy, Torquemada, and at-
pulsies' from mazes infested tempt to foil his plan lo destroy
with deadly alien creatures. all life in the galaxy. Apart from
Due for a spring release. Pul- their tetters page there can't be
sator should also be accom- much of 2000 AD fhat hasn't
panied by Nemesis the War- been turned Info a computer
lock. based on ihe character of game

New Multiface
Romantic Robot have just re- a function to format microdrive
leased the follow up to the cartridges to over 100K,
Multiface O n e This new multi- Multiface 128 works wifh
purpose interface has been tape microdrive and Discovery.
dubbed fhe Mulfiface 128 but Versions are being prepared for
despite the name if Is compat- the Disciple and tentatively tor
ible with all existing Spectrum Beta. The Muif'face 1 will retail
versions. Improvements on fhe at £44.95. Further Information
original Include the ability to from Romantic Robot on
save to fape at two speeds and 01-200-8870.

Hardball Winners
Five readers will doubtless Carrtckfergus, Co Antrim; A.
be found in their local parks Galrdner, Leamington Spa;
putllng their new baseball kits Anthony Smith, Little Neston,
to work. The winners of our South Wirral; French, New 5
Advance Software Hardball Milton, Hants; D. Haffner,
C o m p e t i t i o n are F. Bond, Redd Itch, Worcs.

ZX Computing Monthly • April 1987


Ultimate Return Spectrum Games Top Ten
The arrival of a new Ultimate game doesn't, sadly,
create the excitement that it used to. but their games are 1 (1) Gauntlet U.S. Gold
still worth looking at. April should see the release of 2 (2) Footballer of The Year Gremlin
Martianoids. in which you have to protect a vast computer,
known as The Brain of Markon from the aliens who are 3 ( ) Fist II Melbourne House
attacking It on board Its space craft. Released in 4 (5) Super Soccer Ocean
conjunction with U.S. Gold, Martianoids will cost £8.99.
5 (8) Paperboy Elite
6 1 ) Konami's Golf Konami
pLnukfi i 7 ( ) Ace of Aces U.S. Gold
682829 8 () KonamPs Coin-Op Hits Konami
9 (6) The Great Escape Ocean
10 (4) Space Harrier Elite

(Chart supplied by W.H. Smiths)

Saga Compliment Winner


We received a very large sees the Compliment system as
number of entires for this invaluable to "pioneer the
competition and everyone put unexplored opportunities for
forward valid reasons for why using computers to help my
Saga's Compliment system administration." We hope that
should arrive on their doorstep computerisation via the
Afler careful deliberation we Compliment assists Mr Scott
are awarding the Compliment and look forward to hearing

Nosferatu Winners
system to Mr R. Scott of Stroud, about his progress with the
Gloucestershire; a head master system.
of a large primary school who
Piranha's adventure among Birmingham; M. Radley, Fife; A.
the undead. Nosferatu is on its James, Llanelli; D Thompson,
way to thirty ZX readers. They
are: L. Higgins, Nottingham; M.
Nicholson, Plymouth; R. Finch,
Runcorn; T. Woodward, Wigan;
A. Laleine, London N4; M. Suter,
Bristol; M. O'Connor, Chester-
Coclemasters3 Brainache
Southampton; S. Goodman, field; A. Motin, Leeds: I. McVicar. Brainache. an arcade featuring a combination of
Middlesbrough; G. Irvine. Co Clydebank: E. Chun, Galgate; adventure is the latest solid and vector graphics
Antrim; P. Vlnce, London W4; N. M. Hensel, Neviges, West Ger- release on the Codemasters Both games should be In the
Brownlee, Galashiels; S. Yahn, many; N. Owen, Gt Missenden; budget label, due to be shops as you read this,
Dudley; L Hawker. Newcastle; C C Thomas, Mablethorpe; J. followed by Transmuters, a priced £1.99.
Hill, Wakefield; R. Butl, Lahore, Rimmer, Lllverpool; A. Sae2,
straight arcade game
Pakislan; Lcpl Wagland, BFPO M a d r i d , S p a i n ; S. Burnett,
20; M. Rage, Bridgham; 1 Knight, London N17.

Head Over Here's a couple of screen


shots from Head Over Heels, a

Heels with
new title from Ocean.
Looking a little bit like an

w
Egyptian version of Knight
Ocean Lore, HoH will be available
this month for £7.95.
Pharaoh 'nuff?

^ i f t
m A - >2, ^ i S u

Gremlin Clock Winners


Five Anagram champions Ten runners u p are R.
carry off G r e m l i n Clocks. Thrower, London; B. Carter,
Ingenious displays of letter London E2; PCa Page Liverpool;
juggling came from M. R. Laidlaw, Birmingham; D.
Summers, Morpeth; I. Rogers, Garbutt, Leeds; B. Taylor,
Devizes; R. Wilkinson, Rugby: H. Portsmouth; S. Losch, Essen, W.
CO Williamson, Elgin; A Spall, Germany; S. Wright, Ipswich; D.
London SE7. Among the best Morrison, Aberchirder and C
entries were variations on Fry, Coulsdon, who will receive
Monty on the Run, such as Hunt a copy ot Trailblazer.
Torn Money and Men on Tory
Hunt.

ZX Computing Monthly • April 1987 6


Useful info
dept.
Buying new printer ribbons
all the time can get a bit
Screenshots showing the pricey but if you get in touch
graphic capabilities of with Nick Godwin of Aladdlnk
Gilsoft's Professional you can get your existing
Adventure Writer which is ribbons re-inked more
nearlng completion as this cheaply than having to buy
issue went to press. a new one. Aladdlnk can
arrange to have ribbons of
several different colours re-
inked, and also offer advice
about suppliers etc You can
contact Aladdink on
08907-50965.

Obi-when? kenobi
Long, long ago, in a galaxy nave gotten hold oi the rights 1o gun yet. so you'll just have to
far, tar away — Da-Da1 Roll convert the series of Star Wars wait
credits, cue Darth Vader coin-op games for home com- "You haven't learnt much
(wheeze, gasp, hiss) — "Your puters. Lord knows when they'll young Skywalker, but you ore
powers are weak old m a n . . , " appear, since they're nol due not a Jedi y e t . . . " (wheeze.
All this is just my way of for release until late '87 and gasp. hiss),
letting you know thai Domark programming hasn't even be-

ZX Computing Monthly • April 1987 7


ENTER THE Z88

computer. So, notepad in hand, I machines on show at £275 and


One year after the headed north to witness the £189 each. Both of these got the
Second Coming. thumbs-up In recent issues of ZX,
Amstrad buy-out, Clive After taking a wrong turn and and it seems that a lot of people
finding myself in the Caravan like Citizen printers because fhe
Sinclair re-emerged and Boating Exhibition (that company claim to be selling a
wind-powered disc drive turned printer somewhere in the world
with a new computer out to be a 20ft yacht) I every four minutes.
eventually found my way into Printers apart, the main thrust
at the Which? Halls 4 and 5 of Birmingham's of the show seemed to be into
National Exhibition Centre. the field of desktop publishing.
Computer Show in As you'd expect at a business Amstrad, Commodore, Apple,
exhibition the hardware and soft- Apricot, all the big names were
Birmingham. ware on show tended to be there with desktop packages
functional rather than enter- aimed at turning us all into mini
taining. Everywhere you looked Robert Maxwells. That sort of
B>eing primarily a showcase for there were printers, from technology Is slowly coming
business computers the Which? relatively cheap (under £500) within reach of home computer
show Isn't the sort of event that dot-matrix jobs right up to top of owners (Softek's Artist II and
would get a lot of coverage in the range laser printers that Writer offer 'pagemaker' facilities
ZX, but this year's show would would be out of reach of all but of a sort), but I think we'll have to
include a Press conference at the wealthiest home computer wait for the next generation of
which Sir Clive Sinclair would owners. Citizen were there with, Spectrums before any daily
announce his re-entry into the among others, their LSP-10 and newspapers start rolling out of
computer industry with the 120D models which were our front rooms.
launch of the Z88 portable probably the cheapest The closest that the various

ZX Computing Monthly • April 1987 8


exhibitors got to home has a basic 32K RAM which can which Is updated as work is
computing was with a number be expanded up to 3Mbytes carried out. This is the sort of
of Amiga and Atari ST packages with 32, 128 and 1Mbyte cart- feature that is only available on
that were a bit boring anyway, ridges. The 128K ROM holds the some of the most expensive
although Psion's Chess is worth operating system, word- wordpro machines, so getting it
watching on any machine processing and spreadsheet soft- onto a portable Is quite clever.
Tatung were there plugging the ware, along with a few extra bits After the Press conference I
Einstein 526, but nobody seemed and pieces like a calculator, asked Sir Cllve what happened
to be paying much attention. diary, and a clock/calendar. to Sinclair Research's own flat
Creative Sparks Distribution The Z88 runs BBC Basic screen technology. Had that ever
were there, announcing their 'because it's fast and widely been considered?
new Status label. The first known". The BBC machines are "We looked at it for a long
releases on the label are Quest 6502 based while the Z88 is still time" he told me. "But we
For The Ring and Fortune Teller, Z80 based, but is comparable to couldn't get 80 characters onto
two games for that most popular the BBC's second processor it, and everyone told us they
of home computers, the IBM, but according to Sir Clive, though wanted 80."
a few Status games should BBC programs couldn't run on If the Z88 lives up to its aims
eventually find their way onto the machine because of then Cambridge Computer
the Spectrum. differences In the display. could hove a success on their
The high spot of the morning In addition, while the Z88 hands. The specifications are as
though, was an advertising won't actually run IBM software good as you're likely to get from
video produced by one (what do you expect for 200?) it a portable machine and much
company In which John Cleese does allow you to transfer data cheaper than any of the
attempts to run IBM software on files, such as spreadsheets or competition. I doubt if it'll set the
a dead fish. Well, it was better wordprocesslng files to and from world alight the way the
than watching another load of IBM compatible machines. There Spectrum once did or fall as
printers churning out sales is a built-in RS232 port, and a spectacularly as the QL. On the
figures. modem (£100) will soon be whole It seems to be a fairly
Come 1:30 it was off to the available sound machine, sensibly aimed
Press office for Sir Clive's great The whole shebang runs on at a strong market and should
announcement. The new four penlight batteries, which provide Sir Cllve with a much
machine, It turned out, Is called give 20 hours of 'computing time". needed boost to his commercial
the Z88 and is produced by This means 20 hours of actually credibility.
Cambridge Computer Ltd. a using the machine for process-
new company partly owned by ing information, but when the Silent keyboard
Sinclair Research and with Sir machine is not actually in use
Clive as chairman. the batteries will keep the The only slightly dubious feature
contents of memory intact for of the machine Is that old
Lightweight division about a year so you shouldn't Sinclair favourite, the keyboard.
have to worry about losing vital They wanted a keyboard which
We all knew that it was intended information when the batteries would be "virtually silent" so that
to be a portable business pack up (or for that matter when It could be used In meetings
machine, since that had been you take the batteries out to without rattling away and
announced even before last replace them, since there is a getting on everyone's nerves. So
year's deal with Amstrad. back-up which protects the they've opted for a keyboard
Previous attempts at providing a memory while this is done). moulded out of 'silicon rubber'.
decent amount of computing The display is a form of LCD, The whole thing is moulded out
power in a portable machine called "Supertwlst* — which of a single sheet of this material,
had, according to Sir Clive, means that you don't have to and while it's claimed to be
resulted in compromises in stand upside down and look at good enough for touch typing it
weight resulting in machines the display from the right angle does bring back memories of
weighing in at about a full In order to see it clearly The the old rubbery Spectrum key-
stone The Z88 is smaller than a layout consists of a central board. That's a feature that a lot
sheet of A4 paper (in other display of eight lines of 80 of people will probably be
words it would fit onto this page), characters, and on each side of watching quite closely, though
weighs under two pounds and this there is a window. The left in the brief time that I got my
will cost about £230 including hand window is a menu contain- hands on one It did seem to be
VAT. ing the various operating modes better than the Spectrum board.
There were no machines of the Z88, while on the right is The machine is due for an
available for bench testing, but an interesting feature — a mini- April launch and will Initially be
the specs sounded interesting. It display of the full 64-line page available by mail order (which
prompted one person to ask
"does the 88 refer to the year
when It will arrive'?). It will be
aimed mainly at the business
market, though Sir Cllve added
that there might be an

3 RS232 port for printer


educational use. It was priced,
he said '^so as not to give
anyone a reason for not buying
and micro connection it." So does he see the Z88
Z80 bus for future facilities expansion
creating its own market, as the
ZX81 and Spectrum did, or does
he simply hope to fill a gap in
the already established business
market?
"Well, you always aim at a
market and we do have
Mains adapter port businesses and domestic use In
e X X X Screen contrast control mind, but you do get surprised.
Housing for up to three RAM or F.PROM cartridges Foot raises computer to 12'/! for ease of use For instance the Spectrum went
and tieutng
very games orientated." Which is
about where I came In.

ZX Computing Monthly • April 1987 9


41

SABOTEUR TL
Avenging Angel
Available on Spectrum, Amstrad & Commodore
DURELL sales dept.,
Castle L o d g e Castle Green, Taunton, Somerset, TA1 4 A B R.R.P. £7.95
Telephone (0823) 54489
UM

OR
Ray Elder tackles more technical nightmares

Chip oft the old block You do not say whether you have used ^ ^ Actually ALL QLs are now
the same TV for all these machines and technically obsolete! Seri-
if you have then It may be an unusual ously though there were seve-
Dear Sir, case of Incompalability between the ral versions ol the ROM, each having
Please could you help me new machines and your set. If you have slightly dlflerent features. Unfortunately
with a problem I am having tried them out on different sets then it we do not have machines with ail ver-
with TASWORD 2. I have a Spectrum+ is possible lhai a faulty batch of sions of the ROMs at our disposal so
connected to a Centronics GLP 2 printer machines was supplied to Rochester, cannot speak for all of them. The one
by a ZXprint 3 Interlace and when using but I can assure you that this does not we used accepted the error trapping
Tasword 2 everything works perfectly seem to be a common problem. routines. As this was a non official
except when I use block move or block routine (Sinclair did not claim it in the
copy commands. specs or acknowledge It in the manual)
Both of these commands work I'm afraid you will simply have to
perfectly on the screen but when it accept that it is not available to you.
comes to printing files in which they Opus out of tune Sorry.
have been used all I get is a system
crash. As I mentioned earlier it's only a 11 have a Spectrum 128+2 and
minor problem but infuriating when I I have recently bought an
have a lot of repetitive text that has to ' Opus Discovery. I am unable
be typed out every time. Have you or
any of your readers come across this
to get commands into the Discovery. DISKussion
After five phone calls to Opus who gave
problem before? Any help would be me various checks to do, it still does not Dear Sir,
gratefully appreciated. work. At the present moment I
Yours faithfully, I borrowed a Spectrum + and the own a Spectrum +. Multiface
Richard Boyles Discovery worked a treat. On informing 1, Rotronics Wafadrive & Timex
Opus they suggested that I enter the 2040 printer. Recently I discovered that

H I hardly use these functions


but apart from having a LX86
printer in place of your GLP
our systems are the same As a test I used
these move and copy functions several
command PRINT USR 8, which should
give me 2.2 in the top left hand corner
of the screen. What it gave was:
48K mode 5 M.0:1
128K mode B(*K/,0:1
Rotronics had gone into liquidation
which prompted me to consider anew
form of storage system. Due to some
program incompatibility and the diffi-
culty of using the operating commands
times and then tried a print, with no Opus assured me that it should work on I have been thinking of changing for
problems. both models. It's been five weeks now some time. I decided the Opus system
All t can suggest is thai there may and I'm still not up and working. Could would suit me but now I hear that the
be a corrupted bit of code in your it be a defective I/O port on the com- range is being discontinued. The only
version of Tasword. If you are not using puter? I would appreciate it if you could option seems to be to buy a seperate
the original lape but a backup copy come up with any ideas please. disk drive interface and disk drive, but
then try setting up a new backup copy Yours faithfully, I know relatively little about either
and see if the problem persists. As a last D.F. Hackney except that the one which seems to
resort send me a copy to try on my set offer the most is the Disciple.
up or try it with someone else's system
and if It fails to work then your master
tape has a fault. H You could be righl with the
defective I/O. but I doubt it.
Opus produced a separate
version of Ihe Discovery for the 128.
which essentially had a different ROM.
Could you please tell me which of
the various interfaces and disk drives
would be cheapest, most compatible
with Spectrum commands and Multi-
face 1, and meet my storage needs.
The fact that it worked on a Plus and Finally, as I do not know whether any
that it didn't produce the 2.2 result disk drive and interface combination
Bright eyes seems to indicate that it is the old, 46K would be compatible with the Timex
only, ROM in the Discovery. printer, it would seem a Centronics
Dear Mr. Elder. Unless you bought It secondhand I printer and interface may be needed.
I recently upgraded to a would return It to the shop and take The Kempston E interface has been
128K Spectrum, and I seem to along your computer so they can see highly recommended and I was think-
be having attribute problems. Even at lor themselves lhat it won't work, tf you ing of the Brother HR5 printer.
power up the Sinclair Logo has did buy it secondhand then your only Yours faithfully
unwanted yellow and blue attributes, recourse may be to contact Opus yet K.J. Bryan
which also occur on the pull down again and either get them to look al it
s menu. for you (unlikely In view of their pulling ^ ^ It sounds as though your
I returned my first 128K to Comet who out of the market) or supplying a 128+2 A ^ B needs mirror my own to a
duly gave me a replacement. This ap- ROM. Both of which might cost you great extent, except 1 prob-
peared faulty as well. They obligingly some cash. ably do a lot more wordprocessing,
tried out further 128s and plus 2 and all and I have been using the Technology
had the same problem. So did those in Research Ltd. system lor the past ihree
other shops locally. Could the current years (the same as the Cumana system).
atmosphere conditions be causing the The Beta+ interface has its own built-in
a. problem, have we swapped dot crawl
for a more infuriating display? Please
GkL ERROR error? multiface type "*ave program" option
so you can sell your Multiface to offset
help Dear Sir. the cost, it does work with the TRL
CO though. The TRL also allows you to select
My old Spectrum works perfectly. I'm afraid your QL error
a Yours Sincerely trapping routines won't work the type of disk drive you want to use,
UJ Tony North on mine! I tried them out but got the it will support up to tour 5.25 3.5 or 3"
message "Not implemented at line...." units or a combination of them. I use a
O Atmospheric conditions is a I hope this does not mean I have got 5.25. bul would probably go for the 3.5
< new one on me. but who can some kind of obsolete ROM as my QL if buying nowadays.
say! I have seen and used was bought only recently from Dixons. The operating syntax is quite differ-
some four/five 128s and Plus2s and none Yours sincerely, ent to Sinclair's but once learnt is easy
have had any discolouration problems. Mr. C Hopkin to remember. I converted and run TAS-

12 ZX Computing Monthly • April 1987


LLUA
WORD 2, MASTERFILE and use the SAVE 2 and find it a versatile machine. quandry as to which lo buy, perhaps
option to store several programs, al- Thanking you in advance. you would answer a few questions
though not all are compatible (around Yours sincerely, about the units
80% are OK). The printer/interlace com- David Muir 1. Does the Cheetah have tune
bination sounds good, they are com- sequencer facilities like the Music
patible with the TRL. but then so is the
2040, it's worth the extra though if you
d o any serious writing. I use a Euro-
electronics ZXLprint 3 a n d that also is
a compatible device. Nothing will ever
H The idea of Interfacing is
actually quite simple an inter-
face simply allows instructions
lo be senl from one device to another
In a form that it can understand. There
Machine?
2. Would the Cheetah keyboard be
compatible with the Music Machine
or would the Cheetah MIDI interface
be needed as well?
provide a pertect system; mine suits m e a r e two m a i n p r i n t e r interfaces. 3. With the keyboard attached could
but may not be your cup of tea. Try and Centronics which is a parallel signal either be played polyphonically?
get demonstrations of the units you are sending device, transferring data in I would be grateful for your answers and
interested in before buying and then whole bytes (eight bits), and RS232 if you would tell me which is the better
you "It have some idea of what it can d a which is serial, transferring data one bil buy.
To try and discuss the whole range still at a time Yours faithfully,
available would take several pages of As your printer was ex-BBC it is almost Chris Avery
an article! certainly Centronics and so a suitable
interface is required. The Tasman one
is very good provided you want to use First of all it is only fair to say
it primarily with TASWORD, there are lhat personal preference has
problems it you want to print any a lot to do with the choice
graphics, a n d separote software Is and I stress that I am offering my own
needed. Both the Kempston E a n d the opinion a n d that others may not agree
Interface ZXLprint 3 interfaces have built-in with me.
software and can cope with nearly 1. No
I Dear Mr. Elder every printing situation you are likely to 2. The Cheetah keyboard will connect
I would appreciate your encounter. Both are reasonably easy to directly to the Music Machine without
Iadvice on interfacing a use a n d are highly recommended. further interfaces, via the Machine's
Spectrum+2 with a Star SG-10 printer. MIDI sockets.
The printer has been used by a friend 3. No
who has a BBC and used it with View. In my opinion the Music Machine is a
I have just purchased TaswOfd 2 and much more versatile unit and ihe
find it a reasonably friendly Cheetah keyboard is excellent value tor
wordprocessor. I have just purchased money, however I would suggest that
Tasword 2 and find it a reasonably Spectramusical you consider pruchasing a real synth
friendly wordprocessor. if you want polyphonic capability and
Having obtained the printer, my first Dear Mr. Elder, the CASIO CZ101 is a marvellous mach-
idea was to purchase an interface from I read with great interest ine which can be interfaced to your
Tasman but, having read Alan Davis' your review of the RAM ELEC- computer by any MIDI unit Including
article In the January issue, I am now TRONICS MUSIC MACHINE and being in- the Music M a c h i n e It has very sophisti-
not so sure. Would a Kempston E type terested in home recording I thought cated MIDI implementation. You can
interface be better? I find the whole this was just what Id been waiting for. buy a CZ new tor around two hundred
idea of interfacing very difficult. I am Then I read the review of the Cheetah and fifty pounds or for much less
please with the performance of the Plus sound sampler and I am now in a secondhand.

MAIL O R D E R
ADVERTISING
British Cod* of Advertising Practice
Advertisements in this publication are required to conform to the
British Code of Advertising Practice In respect of mail order
advertisements where money is paid in advance, the code requires
advertisers to fulfil orders within 28 days, unless a longer delivery
period is stated Where goods are returned undamaged within seven
days.Ihe purchaser's money must be refunded Please retain proof of
mm
postage/despatch, as this may be needed

Mall Order Protection Scheme THE ADVANCED SELF CONTAINED GRAPHICS


II you order goods from Mail Order advertisements in this magazine MANIPULATOR FOR 48K & 128K SPECTRUM
and pay by post in advance of delivery. Argus Specialist Publications
U d wiH consider you tor compensation if the Advertiser should become Not just another pretty picture drawer but a vastly
insolvent or bankrupt, provided superior graphics package whose output can be used in
(1) You have not received the goods or had your money returned. adventure games, educational software,
and business software and just about every
(2) You wnte to the Publisher of this publication, summarising the other application you can think of.
situation not earlier than 26 days from the day you sent your order
and not later than two months Irom that day
• Ideal for large scale animation.
Please do not wait until the last moment to inform us When you write,
• Up to 9 9 % screen compression.
we will tell you how to make your claim and what evidence of payment
is required • Can store over 100 screens.
We guarantee to meet claims from readers made in accordance with the • Comprehensive easy t o understand
above procedure as soon as possible after the Advertiser has been instructions.
declared bankrupt or insolvent (up to a limit of £2.000 per annum for • Quick start reference guide.
any one Advertiser so affected and up to £6.000 per annum in respect of
all insolvent Advertisers Claims may be paid for higher amounts, or • Can draw 600 times faster.
when the above procedure has not been complied with, at the
discretion of this publication but we do not guarantee to do so in view of
Ihe need to set some limit to this commitment and to learn quickly of
tf yov h* w tkffKuAy
readers difficulties) Art vjut/ pfjif wHMt vt w
Mi,/ tMtf of fov* M*wf
T h i s guarantee covers only advancepayment sent in direct response to (toekm
an advertisement in this magazine (not. for example, payment made in
response to catalogues etc . received as a result of answering such Summit Software, Units 3-6
advertisements) Classified advertisements are excluded Baileygate Industrial Estate,
Pontefract, West Yorkshire WF8 2LN.
Tel: 0977 797777 Telex: 557994 RR DIST G fax: 0977 790243

ZX Computing Monthly • April 1987 13


P. S. Robson, along with many
others, used POKE 23658,8 to set
CAPS LOCK on and ensure all
input was in capital letters then
used the conversion to
numerical value method.
Norman Strong added to the
discussion by pointing out that
time could be saved by looking
at a short selection of a long
message, perhaps 15 letters, as
this would be enough to see if it
was unintelligible or not.
Mr. P. A. Edwards used seven
lines and suggested that I was
not really trying with my own 23
line effort, and Mark Moody
used loads of REMs as we are
Ray Elder presents for the messages, perhaps the told good programmers should.
two could be combined, a Mr. B. Rumbelow used an
readers' solutions to code/decode option given and interesting two dimensional
the messages presented array with the FN function.
the tirst Project X depending on the option Finally, a mention for the
selected? following readers who produced
programming Tom Moore used the 'chars'
pointer melhod in 14 lines, Kevin
programs of egual merit but I
just couldn't get them all in. and
challenge. Oscroft took 9 lines and Charles a special thanks to John E.
Webb did it in 5 lines. Not that Amphlett who not only sent in
length matters (this isn't an interesting letter pointing out
hen I wrote the first of these shortcuts!). that we were really discussing
articles neither I nor the Editor Talking of length Ron Cavers, CYPHERS and not CODES (a rose
had any idea of the volume of of Chezron Software, sent in a by any other name etc. etc.), but
response we would receive. In one line solution, he also sent in also put forward an idea for a
fact there were so many replies an expanded version which was future Project X topic.
that it has taken me until now to easier to understand. Even that Mentions to: Steven Anthony,
read them all and write this could have been shortened by Ian Howie, S. M. Goodman, Sgt.
follow-up article. changing the third statement of Dave Brooks (I know RAF
To refresh your memories, the the line to LET B$=A$. Bruggen well from around 10
project was to write a program Mr. R, J. Woodham created years ago!), Ciaran Gultnieks
to decode the kind of message both coder and decoder and John Chamberlain.
which has been encoded by programs controlled by menu Small tokens of appreciation
shifting the alphabet. selection and sent a pleasant are on their way to all who got
We had hundreds of solutions, message — coded of course — their progs published and my
all of which were valid, and the Rene Uittenbogaard included a thanks to all who wrote in to me.
general standard of pro- printer option, Lee Corbin Now I must away to start
gramming was so high that turned all the letters into their looking at the programs sent in
picking just one winner proved codes and manipulated them in for the last Project X and begin
impossible. So my solution is to a numerical array. planning Project X Mk3!
print a selection of the best and
to mention those readers whose
letters or programs I particularly Project X solutions
noted. Please do not feel
offended if I missed you out! 1 REM Camiel Devos
S INPUT "Words to decode:
The solutions were essentially
based on one of three ideas, a 10 INPUT "Places to shift 1-25
set of loops shifting the or O -for computer ch
alphabet, resetting the 'chars' oice: ":s
pointer and using the FN 15 IF s=0 THEN LET s=INT (1+R
(unction. In between we had ND*25)
variations In style, user friendli-
20 FOR n=i TO LEN i*
ness and even a reasonably
successful attempt at artificial 25 IF it(n)=" " THEN NEXT n
intelligence. 30 LET i*<n)=CHRi (CODE i«(n>+
s>
Project leaders 35 IF CODE i * <n)>122 THEN
i*<n)=CHR* (CODE i*(n)-26): 60
LET

TO 45
Camlel Devos lives in Belgium, 40 IF CODE i * <n)>90 AND CODE i
has Hercule Poirot as a hero, *(n)-s<91 THEN LET i*(n>=CHR* (
and provided the program with CODE l*(n)-26)
some Al. His idea was to check 45 NEXT n
each word decoded for 50 LET e«=il+" "
impossible letter combinations
X
100 FOR n=l TO LEN 0*
and skip to the next shift if valid. 110 IF et(n)< >" " THEN PRINT e
The rule he uses is that there are *(n) u
never more than four consonants 120 NEXT n
5 together and short words
contain at least one vowel. 130 PRINT AT 20,0;"Just wait. I
uj Ricky Han used the FN to II do my best."i LET
140 IF s>25 THEN PRINT AT 20,0
help him produce a three line ;"This seems impossible to solve
solution. Chris Oliver also used
o
ct the FN to produce a coder and with this decoder.": PAUSE 0:
decoder, however, both his CLS s BO TO 5
programs were identical except 150 LET m=0: LET c=0: LET x*=e*
OL

14 ZX Computing Monthly • April 1987 14


LIMA
160 FOR n=1 TO LEN x* 40 FOR F=1 TO 26: FOR N=1 TO L
170 LET m=m+l: LET c«c + l 60 LET C=CODE A*(N): IF C=32 T
190 IF x*(n)=" " THEN GO TO 22 HEN NEXT N: REM SPACE-CHR* 32
0 65 LET C=C+F: IF C>90 THEN LE
190 LET x*(n)=CHR* (CODE x*(n)+ T G=C—26: REM WORD WRAP
a) 70 LET B*(N)=CHR* C
200 IF CODE x # (n) > 122 THEN LET 80 NEXT N
x*(n)=CHR* (CODE x*(n)-26)j GO 90 PRINT AT 10,0;B*
TO 220 100 BEEP .1,0: PAUSE 50: NEXT F
210 IF CODE x*(n)>90 AND CODE x
* <n)-s<91 THEN LET x*(n)=CHR* ( 1 REM TOM MOORE
CODE x*(n)-26) 10 FOR 1-0 TO 207
220 IF x*(n>="a" OR x*(n)="A" 0 20 POKE 30216+1,PEEK (15880+1)
R x i (n >= "e" OR x*(n)="E" OR x*(n 30 POKE 30424+1,PEEK (15880+1)
)»"i» OR x*<n)="I" OR x*(n)="o" 40 NEXT I
OR x*(n)»"0" OR x*(n)="u" OR xt< 50 INPUT "1. INPUT TEXT IN FUL
n ) •»(_)" OR x* <n) ="y" OR x#(n)="Y" L. 2. USE ONLY CAPITALS
THEN LET c=0 AND SPACES 3. DECODED VERSION 0
230 IF x*(n)=" " AND c=m OR c>4 F THE TEXT IS SHOWN IN FULL,
AND x *(n)< >" " THEN LET s=s+l: OFFSET BY ONE LETTER AT A T
GO TO 140 IME. 4. THE NEW LETTER FO
240 IF x•<n>•" " THEN LET m=0: R * A' IN THE ORIGINAL TEXT IS
LET c»0 GIVEN AT THE BOTTOM LEFT CORNE
250 NEXT n R. 5. PRESS ENTER TO GE
260 PRINT AT 10,0sx*;AT 20,O;"I T THE NEXT VERSION OF THE TE
s this alright ? XT. ";C*
270 INPUT "OK ? y/n "jo* 60 POKE 23607,116
280 IF o*="y" OR o*="Y" THEN G 70 FOR N=25 TO 0 STEP -1
0 TO 300 80 CLS
290 PRINT AT 20,Oj"Sorry, I'll 90 PRINT C*
try again. "i LET s=s+l 100 INPUT "A
s GO TO 140 "; V*
300 PRINT AT 20,0;"You see,it ' s 110 POKE 23606,N*8
easy. Any key to r 120 NEXT N
estart."i PAUSE Os GO TO 5 130 POKE 23607,60
140 STOP
1 REM Ricky Han
10 DEF FN b*(x)=CHR* (n+x-26»( 1 REM Mr.B.Rumbelow
n+x >90)>i POKE 23658,8: INPUT "E 2 REM This proqram also trios
nter coded message. to solve anagrams and
FOR n-1 TO 26: FOR a=l TO L even coded anagrams.
EN ai» IF a*(a)=" " THEN PRINT 10 POKE 23658,8: LET tot=0
" "; s GO TO 30 20 INPUT "Phrase is (NO SPACES
20 PRINT FN b*(CODE a* (a))J ) ";A*! LET 1=LEN A*: DIM z*(4,2
30 NEXT a: PRINT '"Press any k 6)
ev."i PAUSE 0: CLS : NEXT n: STO 30 LET z«(3)<1 TO )=A*
P 40 FOR m=1 TO 2j FOR n»l TO 26
s LET z*(m)<n TO n)=CHR* <n+64>!
1 REM RON CAVERS NEXT n: NEXT m
10 INPUT "Please enter coded t 50 DEF FN f«(A*,A,N>»(A*< TO N
ext. ";M»: LET A«="ABCDEFGHIJKLM -1) AND N>1 ) +A* (A+N-l > + A M N TO A
NOPQRSTUVWXYZ": LET B*= "ABCDEFGH +N-2)+A*(A+N TO )
1JKLMNDP0RSTUVWXYZ": FOR H=1 TO 60 LET N=ll DIM A <1>: DIM B*<1
25s LET B*=B*(2 TO ) +B* < 1 > : FOR -1,1): LET Bt(N)=A*
F=1 TO LEN M*: FOR G=1 TO 26: PR 70 GO SUB 90
INT At(G> AND M * < F ) ( G ) } I NEXT 80 PRINT "THATS IT FOR ";A»: G
G: NEX1 F: PRINT : NEXT H 0 TO 220
90 LET A(N)=1
1 REM LEE CORBIN lOO IF 1 - N H > 2 THEN LET N=N+1:
10 POKE 23658,8: BORDER OJ PA LET B*(N)=FN f*<B*(N-1),A(N-1),
PER 0: INK 7i CLS : INPUT "YOUR N-l): GO SUB 90: GO TO 130
MESSAGE ? ",, LINE A* llO POKE 23692,255
20 DIM Z(LEN «$>: FOR B=1 TO 2 120 LET z*(3)<l TO )=FN 4*<B*<N
6 ),A(N>,N): GO SUB 160
30 FOR A~1 TO LEN A* 130 IF A(N)<1-N+1 THEN LET A(N
40 IF A*(A)»" " THEN LET Z<A> )=A(N)+1: GO TO 100
=32: NEXT A 140 IF N>1 THEN LET N=N-1
50 IF CODE A*(A)-B<;65 THEN LE 150 RETURN
T X-CODE A*(A)-65: LET Z(A)=91-( 160 PRINT INVERSE l ; z * ( 3 X l TO
B-X): GO TO 70 1); INVERSE 0
60 LET Z(A>=CODE A*(A)-B 170 FOR q=l TO 26
70 NEXT A 180 LET r*(2)(l TO )=z*(2)(2 TO
80 PRINT FOR A=1 TO LEN A*: ) (2) ( TO 1)
PRINT CHR* Z(A);: NEXT A 190 FOR k*l TO 1; LET v«(CODE z 15
90 NEXT B t(3)(k TO k))-64: LET z*(4)(k TO
100 PAUSE OJ GO TO 10 k ) * z « < 2 M v TO v): NEXT k
200 PRINT z*(4)(l TO 1),: LET t
1 REM MARK MOODY ot=tot+1: NEXT q
10 POKE 23658,8: REM CAPS LOCK 210 RETURN
20 CLS : INPUT "TYPE IN YOUR M 220 PRINT '*i FOR n=l TO 4: PR1
ESSAGE:- ";A* NT rt(n)(1 TO ): NEXT n: PRINT
30 LET B*=A*: LET L=LEN A* tot;" Combinations": STOP

ZX Computing Monthly • April 1987


LLLU
DISCIPLE Figure 1

DATA
The Poke @ Command
This command allows a value between 0 and 255 to be stored in
the variables area of the disc operating system (GDOS).

John Wase documents POKE @ 0,n (n = 0 to 8) (RBCC) default 7


The border colour change is essentially the sector number when
some new commands reading and writing on the disc. This variable Is ANDed with fhe
sector value, then output to the screen border. If 0 is chosen, no
for the new interface. border colour will occur. If 7 is chosen, all sectors will change
the border colour.
relative newcomer on the POKE @ 1,n (n=40 or 80 + 128) (TRAKS1) default 208
scene, the Disciple, as you This variable holds the number of tracks and whether double or
probably know is a disc single sided for disc drive one.
interface/magic box. One of its
features is that part of the
software loads in from disc on POKE @ 2,n (n=40 or 80 + 128) (TRAKS2) default 208
booting up the system: don't This variable holds the number of tracks and whether double or
worry, it doesn't corrupt your single sided for disc drive two.
program but goes into paged
RAM, a piece of memory which POKE @ 3,n (n = 0 to 255) (STPRAT) default 6
occupies the same location as This variable allows you to set the GDOS for the different step
the Spectrum ROM and can be rates of drives (usually 12 to 30 milliseconds). The step rate is not
"toggled" in and out just the allowed to go lower than six milliseconds.
same as Interface 1 (and that
doesn't lose programs). The P O K E ® 4, n (n = 0 or 1) (ZXPNT) default 0
Disciple has a special If the setting is 0, then GDOS uses the Centronics printer port, if 1,
command to enable you to get then the printer channel is unchanged by SDOS.
straight into that piece of paged
RAM and alter directly the P O K E ® 5, n (n = 0 to 255) (WIDTH) default 80
system variables that were fed in. This variable sets the number of characters allowed per fine
It's the POKE @ command, and is when using LPRINT and LliST with Ihe Centronics printer port.
extremely powerful. Those who
already have Disciple will POKE @ 6,n (n = 0 or 1) (PCODE) default 0
possibly not be aware of this If the setting is 0, then the printer driver looks for attribute codes
command, so I have provided a such as TAB and AT within LPRINT and LLIST commands. If the
full list in Figure 1. For those who setting is 1. then the printer driver outputs directly to the printer
already know about POKE the absolute value of the code 0 to 255. This Is essentia! for
there are some extra commands sending control codes to the printer. E.g:
in this list. So make a photocopy POKE ® 6,1: LPRINT CHRS 27; CHR$ 65: POKE @ 6,0
of the table and keep it with
your Disciple Manual. POKE @ 7,n (n=0 to 255) (LSPCE) default 12
Most of the instructions are This variable sets the printer line feed In increments of n/72 of an
self-explanatory; for Instance. inch during graphics printing.
POKE @ 0,n cuts down the
histrionic border-flash when the P O K E © 8, n (n = 0 to 255) (LFEED) default 1
discs are in use fo more This variable sets the number of line feeds automatically
bearable proportions. Some are executed by the printer driver after a carriage return.
a bit more subtle, though. POKE
@ 1 or 2 are for drives 1 and 2: POKE @ 9,n (n=0 to 255) (LMARG) default 0
POKE @ with 40 or 80 for number This variable sets the number of spaces inserted automatically by
of tracks on single sided discs, the printer driver after a carriage return. It is used for left hand
add 128 to each POKE for margin control.
double sided discs. POKE @ 3
sets the step rate in milliseconds; POKE @ 10,n (n = 0 or 1) (GRAPH) default 1
what the table does not mention If the setting is 1, the printer driver generates the graphic
is that any figure you put in, representation of. and on LPRINT and LLIST statements. If the
either in fhe start-up program or setting is 0, the normal printer character is output.
by POKEing @ 3 has 6 auto-
matically added to it. POKE @ POKE @ 11,n (n = 1 to 64) (NSTAT) default 1
6.1 turns tokens off and is This variable sets the network station number. Be careful not to
essential for setting up Tasword: poke 0.
the extra CHRS can then be
omitted from printer control POKE @ 12,n
commands. POKE @ 12 and 13, (and POKE
(12 for the low order byte and 13 @ 13,n) (n = 0 to 49152) (LSNAP) default 49152
for the high order byte) alter the This variable controls the length of file which the snapshot takes:
length of the snapshotting file, POKE @ 12 with the tow order 256 byte and POKE <§> 13 with the
normally 49512 bytes. So if you high order 256 byfe.
just need to snapshot the screen,
then POKEing with 6192 should POKE ® 14,n
do the trick. (and POKE
£ Finally, if you already have a
Disciple and would like to
@ 15,n) (n = 0 to 65536) (ONERR) default 0
If the setting ts 0, then GDOS returns to the Spectrum on errors

o
which do nof relate to hook codes or GDOS syntax statements. It
contribute useful routines or an address is poked ln1o these two locations, it makes a call
comments of general interest, Indirectly to this address for further synfax checking. Necessary
c/> please send them in to ZX when adding extra commands to the syntax.
5
Computing, marking your
envelopes Disciple.

16 ZX Computing Monthly • April 1987 16


PLAN YOUR
OWN EASTER
SPORTS PROGRAMME!
Arrieru

Handball w
Normally ^? b J n d A mstrad
Spectrum

The R.R.P. of these 3 products


is normally £19.89!

Please send me The Sports Collection @ £9.95 (P&P Free)


Commodore 64 • Spectrum 48 • Amstrad CPC 464 •
Name
Address

The TVlbe -CBM 64, Spearum


Cheques/PO to: Argus Press Software
Scorpion -CBM 64, Spectrum, Victory House, Leicester Place, London WC2H 7NB
Amstrad
Credit Card Hotline: 01-439 0666
Romulus -CBM 64 (Please allow 28 days for delivery) (Limited availability)
<
— j r &vichiy,
/ W P ~ro
f
J jusrsfbrn? wnw rfyxfim \
V&ON. IF
Cortft)TATtc*& Af?e rtiWT,

drawn Vy
i SALE IN 0-007S063HMSG&4
f MTtoCKV&CKFoft /
S f Vi£ Stesaesr o/= J
J^/fef Hato^. jC

HHWiM i
I TV/£ 7Z3 S ^ A ^ E
r H M K - t f o c e 1 /tve A 'fAN-JArry-
Jto-LA LOO" OF A CCHK smtr P l o t *

hfrm A J"
TtANWov CArrXoMPfL&t
EVZRy r1o&£L OF^fr
t\lFb Tt> &BV Fu#r*o?FxfiWP ^mntf/.
His SMCU-ZN &«AtH
fc A Hf/A
X OW! cI
V

JB5i«j
T i ffi e : S t r e n g t h :
12.4-3 S t a m i n a :
LUCK;

FORURRD
TURN RIGHT
TURN RIGHT
O
+PEN DOOR

Figure 1

|W Clyde Bish begins a three part series


showing how you can produce your
own computerised cartoon stripi

T h e medium of the comic strip


/ has always been a popular one. Piccies Table A
Hands up anyone who hasn't
followed the exploits of Dennis Let's start this month with the
the Menace, Batman, Judge illustrations, book at a strip
Dredd, or, for more mature ZXC cartoon and you'll see that It's 6£ 2 £05 1 22 17 96 234
readers, that "strip" heroine, made up of three 'layers'. £6 £54. 0 4.0 30 79 19 197
Jane! In fact, PhD's have been £6 50 0 91 19 £6 79 19
Furthest back is, not surprisingly, 71 £13 197 209 53 0 91
awarded on analyses of the 26
the background. This is usually a 71 £6 215 19 16 251 £09 193
exploits of Asterix and Co. It is fairly simple line drawing with 13 32 ££7 19 26 £54 0 202
also a medium which lends itself various embellishments such as 112 254. 79 19 197 33 0 64
£6 71 £13 17 32 0 £5 16
readily to the computer screen pictures on a wall or flaming 253 £09 19 £6 79 6 0 o
— Melbourne House's Redhawk, torches as in Fig. 1. In front of 19 26 79 19 26 71 19 26
for example — so let's switch on this, often in a multi-layer format C A v' 197 £09 254 0 • 40 39 254
the machinery, and the grey 1 4.0 70 6 6 14 6 197
are the characters. (So we don't 26 13£ 119 19 35 16 £49 213
matter, and see what facilities confuse these characters with 17 £6 0 £5 £09 1^3 13 32
are required. the character symbols we'll be 233 £13 17 64. 0 £5 209 124
printing as embellishments I'll £54 72 56 223 24- 68 6 3
Obviously we need the strip 14. 4 197 26 182 119 19 35
itself, ideally scrolling right to call the former "icons"). Finally 16 £4-9 213 17 29 0 £5 209
left, with the new illustration comes the speech bubble. 193 13 32 238 213 17 128 0
being drawn in the space £5 £09 124. 254. 72 56 £23 A
Bearing this in mind we
a. —

33 6 A
14. 5 197 £6 182
vacated screen right. In addition obviously need a similar system 119 19 35 16 24-9 213 17 28
to the actual picture we will also for a computer strip, each 0 £5 £09 193 13 32 238 213
need captions, and perhaps element taking up as little 17 96 0 25 £09 124 254 72
56 £23 £09 193 13 194. 219 £53
speech bubbles. We'll also need memory space as possible. 19 26 £54- 0 200 17 144 £54
an on-screen input system to a Since a background or icon £37 33 0 91 50 4 91 £05
vertically scrolling communica- may be used more than once in 173 254.62 22 215 62 2 £15
tions window, indications of a story line it would be 53 4 91 215 62 144 215 £01
184 171 24-7 171 £50 170 252 168
strength, stamina etc for an uneconomic to store each £53 165 250 160 £4.7 159 184 159
adventure (or profits, stocks held complete illustration separately. 181 160 179 162 17S 165 179 166
etc for a strategy game) and Instead, we'll hold each element 181 170 164. 171 0 £37 91 0
perhaps a real-time clock and, 91 £6 103 19 26 71 62 175
as a series of bytes In memory, 15£ 111 19 26 71 19 213 £6
in a "Superman'-type strip, a and call them, more or less as 87 62 175 154- 79 £05 214 £54
visual reminder of your persona subroutines, when needed by a £09 19 26 254- O £00 254 1
at any given time. driver routine. 32 £3i 19 26 24. £20 197 £05
4.8 £55 193 17 1 1 120 146
With these requirements I 4-5 4 £1 21 £37 68 71 121
came up with a screen display Let's get the necessary 14-9 4.6 A
29 29 £37 68 79
like that shown In Fig. 1. I machine code on board first. 176 £00 121 184. £29 98 107 34
£ 5 i 4-6 0 56 A
101 107
emphasise that this is just a CLEAR 64935, type in the loader 72 7-*1\ A w" 0 91 95 120 £03
suggestion — you will be writing (Program 1), setting the from and 6 3 Or A. A 125 129 56 3 164 56
the program which uses the strip end values to 64936 and 65375 3
cr
* A *
111 237 91 C. 91 c.'4.
so you must decide on the final
1 A-1A
,*%103 2 3 7 9M 14 0 912 2 7 124
respectively, then RUN and enter • _
— —
125 J. W X 111 197 205 M- w
display format, and the purpose the numbers from Table A, *.cc 3.93 227 3"? 32 ££0 225 £01
1 TA.i c
•Z. _•
of this series is to show you how. reading across each line. Save i£5 £20 192 31 Sc 3 173
(Later in the year I'll be showing the code with: 230 £4.8 4
A < 67 124 —»
t
173 £30 199 1^3 f Q=l
~R
ic* A 4

you a way to convert adventures £30 71 4 6£ £54 I S 16


from the book/magazine format 253 —<T A..1 £6 160 165 J. C' AX?.nA.*

to the computer so if you're SAVE 'UrawCODE' CODE 64936, 129 €* v- 66 66 36 36 36 24


lacking ideas you'll get some 440
help then). and verify.

ZX Computing Monthly • April 1987 19


Drawing of this type of element to be
let's begin with an explanation
ot the background drawing
printed, so In Fig. 1 this would
be '3* as there are two torches
and the mystic symbol block to
6 6
routine. This, remember, is made print. There then follows a series
up of two elements, the line of numbers in blocks of three.
drawing, and the embellish-
ments (torches and mystic
symbols over the door in my
The first of these is the length of
that data block (maximum 255),
which begins at the address
8 9
example screen). The line n by the next two numbers.
iven
drawing data is held as a series
of PLOT or DRAW co-ordinates.
& the sequence:
Each set starts with a PLOT pair 3,7,80,195,10,180,195,6.200.195
and continues with a number of
DRAW pairs. The DRAW co- would print three objects. The
ordinates are absolute, ie. the first is made up of 7 bytes of
actual co-ordinates of the pixels data beginning at 80+195*256= A A
you want to draw to, not offset 50000. The remaining numbers other number is the total number
values as in the Basic DRAW This would translate In a similar way. of icons to print. (For Fig. 1 this
makes inputting values from a b) Icons — As before a starting 0 would be '2' — one for the troll
drawing on pixel paper much means miss out this element. Any and one for the foreground
character). This number is
followed by others in blocks of
five. The first number in each
PROGRAM 1 block is the Print At row, the
second the column, the third
and fourth the address (held as
before) and the fifth is the type
10 FOR f = -from TO end: INPUT i: of icon shape. There are three
POKE f, : PRINT f,i s NEXT f types of Icon available. Type 0 is
three character squares wide by
20 REM alter from S< end number four high, for small characters
like the troll. Type 1 is four wide
as required by five high, and type 2 is a 6x6
grid for close-ups (or two small

easier. When the routine finds a


1 then next pair starts a new 1 2 3
PLOT position. A terminal 0 is 13 14 15
needed to return from the 25 26 27
routine. 37 39
To use this element, the data 49 51
(PLOTS, DRAWS, 1s and 0s) are 61 63
held In a series of bytes slarting 73 75
at a known address, say 50000, 85 87
and the routine is called with a
line such as: 4 5 6
16 17 18
10 POKE 23296, 80: POKE 23297, 28 30
195: RANDOMIZE USR 65197 40 42
The POKEs (into the first two bytes 52 54
of the Printer Buffer) are the low 64 66
and high values of the data start 76 78
address (80+195'256=50000). 88 90
Look at the beginning of Table B
the data we'll use for the 7 8 9
demonstration at the end and 19 20 21
you'll see the 1's which reset the 31 33
PLOT position and the 0 to return. 43 45
The remainder of the 55 57
elements are called with a 67 69
single USR call. Don't try to link 79 81
these routines with the back- 91 93
ground in one single call. The
routine will crash! This call 10 11 12
produces the embellishments, 22 23 24
the icons and the speech 34 36
bubble. The information to 48
control the printing (but not the 46
data itself) is held In a string of 58 60
numbers as follows:— 70 72
82 84
a) Embellishments — A 0 to start 94 95 96
means miss out this element. Any
other number is the total number Figure 2

ZX Computing Monthly • April 1987 20


characters which always appear b) Icon data — The data for
M
Table B
together). Each is printed in such these is the actual bit patterns
a way as not to obliterate the for each screen byte to be used. Background data
background where no icon Each character square on
pixels are being filled. The screen is made up of eight lines 1 /6 175 199 168 2 3 2 168 2 3 2 127
sequence: of eight pixels one below the 199 127 199 168 1 233 168
2.1,4,80.195,0.2,10,180,195,2 other, but held in the computer's 175 1 2 3 2 127 255 1 12 1 199
memory one after the other! To 127 176 1 12 0
would print two icons, the first a make matters worse they are
3x4 block with top left corner at held in a rather strange order. To
row 1, column 4, from data see what I mean enter the line Embellishment data
starting at 50000. I'll leave you to
work out the second. Note that 22 2 23 138 2 30 133
FOR f=16384 TO 18432: POKE f,
this mode only operates within 255: PAUSE 20: NEXT f
the top third of the screen. If the Icon data
bottom of a block comes below and watch the way the screen
row 7 strange things will fills. What this amounts to is, 0 0 0 68 17 0 95 125
happen! apparently, nothing less than 0 15 120 0 0 0 0 84
c) Speech Bubble — Again, 0 confusion! It isn't really. Refer to 21 0 95 253 0 15 120 0
means miss out, otherwise the Fig. 2 and you'll see that you 7 240 0 95 253 61 143 248
first (and only digit) refers to the have to POKE in the bit pattern 0 7 240 0 95
128 15 120
column where the pointer V Is of each byte (using the BIN
function) in the order given for a 253 0 79 249 0 15 120 0
printed. (In Fig. 1 it's at column 8 8 0 95 125 0 15 120
28). The start of such a control 3x4 Icon. (If you're still confused
wait until next month and I'll 0 15 120 0 9 72 0 95
string is POKEd into 64942 (low
byte) and 64943 (high byte) supply an editor program to do 253 0 15 120 0 7 112 0
before calling the routine with the job for you). 16 132 Q 95 125 0 15 120
RANDOMIZE USR 64936. To end, let's pull all the ideas 0 15 120 0 37 210 0 95
together with a grand demon- 253 0 15 120 0 29 92 0
Data stration of the facilities offered.
We'll reproduce the top right It takes the message string m$,
Now to the actual data to which picture from Fig. 1 but to save on adds eight blanks spaces to the
the control string refers. typing we'll Just use one icon, front (to make the bubble start
the troll, and the speech bubble empty) then uses a loop, set to
a) Embellishments — This is held will remain empty (we'll deal the original length of the string
as: with how to fill that later). to print successive sections of
22, row, column, codes of Alter and RUN the loader the new string in the speech
characters to be printed (see program to enter the data from bubble. Pressing SPACE at any
Appx. A of your Spectrum Table B from 50000 to 50131. Enter time during the scroll will restart
manual) resetting with 22, row, lust the numbers, not the text it. Add to It your driver (Program
column whenever a new print lines, those are to help you find 2) and try it out.
position is required. So the data your way around. Now alter the Well, that's stage one in the
string: loader again to enter the can. Watch this space for further
control siring data (Table C) into developments.
22,1,0,48,49,50,22.2.5.65,66 addresses 60000 to 60010.
(which, incidentally, has a We're almost ready to roll, but Table C
length of 11 — you count the 22s we need a line to call up the
as well), would print "012" at row routines. Type In Program 2 and P_torch
1, column 0 and AB" at row 2, RUN for the display. The REMs will
column 5. You can include explain what each part does.
block graphics or any user- Now, what about that empty 1 8 108 195
designed graphics you have speech bubble. There are eight
made (20 are available as A is character squares within it, so P i con
used for the bubble pointer). You provided you only need that
can also include control number of spaces as a
characters (see p.183 in the maximum you could just PRINT 1 o o6 116 195 0
manual), so 16, 2 would set INK AT 1, 23; "text" (like the
to red, 17, 6 would print on "BEGONE!! in Fig. 1). That doesn't
yellow paper, 19, 1 would have help if. as is more usual, you Bubble pointer
the colours bright, and 18, 1 want to display more informa-
would have them flashing. (Try ation. Program 3 will come to
22, row, column, 18, 1, 134, 137 for your aid. It is a basic routine for 28
minor "animation"!) scrolling text through a window.

PROGRAM 2 PROGRAM 3
5 REM drawCODE must be on 50 LET m*="THIS IS AN EXAMPLE
boar d OF SCROLLING IN A SPEECH BUBBLE"
5
10 POKE 23296,80: POKE 23297,1 : LET m=LEN m$: LET m $ = '
95: RANDOMIZE USR 65197: POKE 64 2

o
942,96: POKE 64943,234: RANDOMIZ 60 FOR f=l TO m: PRINT AT 1 ,23
E USR 64936 ; ml <f T0 'f+7): PAUSE 10: IF INKE O
20 REM draw background then Y$=" " THEN GO TO 60
remainder 70 NEXT f z
<
at
ZX Computing Monthly • April 1987 21
5 I - I O R 1
More compact classics from ZXC readers.

Another mixed bag ot programs greeted warmly by all those who


which prove the old saying about purchased a Dlxons 128K/Printer
good things coming in small pack- package, there are still a lot of
ages. This month we start with a problems to solve but this is one Shadow Effect
program which will hopefully less, and so it gets the coveted STAR
slightly ease the burden of ques- CUT award. Screen presentation is a common
tions to Crosswires. preoccupation and this routine
produces an unusual and
It is a program which will be pleasing effect. Gary Franklin of
Canvey Island wrote it and once
the machine code listing has been
48K RS232 entered, run and saved, then it will
shadow anything on the screen
printed with BRIGHT 1
Chris Richards of Huddersfleld
supplies the solution to getting the Experiment with the lines as
printer to work in 48K mode and all suggested to produce your own
you have to do is type in his listing individual effect.
and run It.
Provided no error report is pro- 1 REM 4QK RS232
o
duced, SAVE the code using SAVE •4.
1 REM SHADOW EFFECT
"RS232" CODE 65000,113. To use It 2
make sure you have reloaded It 10 CLEAR 64999 5 CLEAR 639991 R E S T O R E i LET
each time and type RANDOMIZE 20 L E T c"C tot-0
USR 65000 and all subsequent 30 FOR 4=65000 TO 65112 10 FOR x-64000 TO 64210i READ
LPRINTING will be done via the 40 READ a: L E T c=c+a: POKE F , A at POKC *,«» LET tot-tot+PEEK xt
NEXT x
RS232. 50 NEXT 4 20 IF tot 0 2 7 1 8 4 T H E N PRINT t
One problem is that no tine feed 60 I F c<>14262 THEN PRINT AT otj" is wrong! Check d * t « . a i BEE
is sent at the end of a line so you 0 , 0 ; " E R R O R i n DATA": BEEP 3 , - 1 2 P l,0i STOP
will have to set your printer's DIP 70 DATA 4 2 , 7 9 , 9 2 , 2 3 7 , 9 1 , 2 8 , 9 2 , 30 SAVE " S H A D Q W C O D E 6 4 0 0 0 , 2 1 0
switches to produce an automatic 25.43.17.254.253.115.35.114.33.1 50 DATA 243,253,229,293,33,233
,90,6,24,197,6,32, 197,253,126,0,
line feed after a carriage return. If 1 , 0 , 3 4 , 1 7 6 , 9 2 , 2 0 1 : REM End of pa 254,64,56,15,253,126,1,254
this Is not possible then you are rt 1 • 60 DATA 64,220,82,250,253,126,
limited to hand cranking the 00 DATA 2 4 5 , 1 4 , 2 5 3 , 2 2 , 2 5 5 , 3 0 , 1 32,254,64,56,93,253,43,193,16,22
machine at the end of each line 91.66.62.14.237.121.205.75.254.2 8, 193,16,222,253,225,251,201,122
and LLISTing is likely to become a 37,120,230,64,32,247,42,176,92,1 70 DATA 230,3,7,7,7,246.64,103
,107,201,36,124,230,7, 192, 124,21
little messy. 7,2,0,183,237,82,235,241,47,55.6 4 ,8,103, 125, 196,32, 1 11., 2 0 8
The BAUD rate is automatically ,11,243,197 80 DATA 124,198,8,103,238,88,1
set to a default of 9600. If you 90 DATA 2 4 5 , 6 2 , 2 5 4 , 9 8 , 1 0 7 , 1 , 2 5 92,38,0,201,120,254.32,200,253,2
require another setting then one 3,191,210,53*254,230,247,237,121 29,209,19,205,47,250,221,33,191
way is to FORMAT as usual in 128 .24.6,246,8,237,121,24,0,43,124, 90 DATA 250,6,8,62,64,253,190,
33,56,9,6,10,253,190,32,48,2,6,1
mode and make a note of the 181,32.251,0,0,0,241,193,183,31. 2,221,126,0,182,119
values at addresses 23391/2 by 16,218,251,201 100 DATA 2 2 1 , 3 5 , 2 0 5 , 5 8 , 2 5 0 , 1 6 , 2
PEEKing them, and then in 48 mode 100 DATA 6 2 , 1 2 7 , 2 1 9 , 2 5 4 , 3 1 , 2 1 6 , 44 ,201,225,241,245,229,254,24,21
POKE them Into addresses 23728/9. 6 2 , 2 5 4 , 2 1 9 , 2 5 4 , 3 1 , 2 1 6 , 2 0 7 , 12 0,35,250,253,229,209,235,1,32,0
110 DATA 9,235,14,2,221,33,203,
250,205,47,250,6,4,221,126,0,182
,119,221,35,20S,58,250,16
120 DATA 244,253,126,33,254,64,
Stripes 210,35,250,241 ,245,254,32,210,35
, 250, 19,13,32,220, 1 9 5 , 3 5 , 2 5 0
124
Barry Stuart, a resident of Liverpool, The program draws several 125 REM Chang® »hadow data
sent us one of those programs broad stripes across the screen below i f d e s i r e d . V e r t i c a l shade
which falls into the "noMoo-sure- then revolves them vertically at a 8 , l O or 12 p i x e l s depth * 8
what-l-can-use-it-for-buWt-might- speed selected by yourself, very pixels, width.
126
come-in-handy-one-day" cate- pretty and possibly of use to 130 DATA 0,0,128,64,160,80,160,
gory. hypnotists. 80,160,80,160,80
134
1 REM stripes 60 DATA 21 1 ,-254 , 1 , 2, 226 ,16, 254 135 REM Horizontal shading 4
pixels depth * 8 or 16 pixels
2 ,13,32,251,21,40,23,123,60,230 depth.
ir> LET C=<>: FUR l ^32768 TO 328 70 DATA 7,95,1,3,30,16,254,13, 136
68: REAP as POKE l .as LET c=c+a: 32,251,211,254,219,254,47,230 140 DATA 42,21,10,5.128,o4,160,
NExl I BO DATA 31,192,24,230,37.32,21 80
20 IF c<>11633 THEN PRINT "da 2,125,198,7,230,7,229.243,237,11 200 PRINT "Press key for demo"!

Io
PAUSE 0
ta error?": STOP 210 BORDER 6l PAPER 6« INK Oi C
30 INPUT "Speed 1 TO 25b ":s: 90 DATA 176,92,49,0,91,22,6,79 L S t PRINT AT 10,5; BRIGHT 1| IN
POKE 32773,s-1 ,135,J 35, 135,129,103,111,6.16 VERSE 1(" ZX COMPUTING MONTHLY "
40 PAUSE 1: PAUSE 10: RANDOM12 100 DATA 229,229,229,229.16,230 220 FOR X-0 TO 20 STEP 4i PRINT
E USR 32768 . 121 , 6 1 , 30,7,21,32,234,237.123, AT X,41 BRIGHT It PAPER RND»7(

x 50 DATA 175,111,24,52,38,49,12 176


5,60,230,7,11 I,125,95,22,8,118 110 DATA 9 2 . 2 2 5 , 2 5 1 , 1 5 V
INK 9j" FOR THE BEST PROGRAMS' "
250 RESTORE USR 64000
</> 300 NEXT Xl PAUSE 0

22 ZX Computing Monthly • April 1987 22


Biggies 1 REM biqqies
This is a bit of a mystery which I ri
thought I'd include as a challenge jL.
to computer sophisticates. 10 L E T s = 0 : F D R * = 5 0 0 0 0 TO 500
The program enlarges and
prints characters to the screen in a 93: READ a: POKE f , a : LET s=s+a:
2x2 size The documentation was N E X T -f
non-existent but the program pro-
duced a pleasant and I can tell 20 I F s< >9471 THEN PRINT "Dat.
you that changing the DATA of line a e r r o r " : STOP
110 changes the message. A=33,
X=58. 3 0 R A N D O M ! ZjZ U S R 50000
Handy for fast, short headings 100 DATA 1,162,195,33,36,64,17,
but if you want to extend the
message length or change the O , 6 1 , 2 2 9 , 1 0 , 3 8 , 0 , 1 1 1 , 4 1 , 4 1 , 4 1 , 2 5
printed screen position then you'll , 2 3 5 , 2 2 5 , 1 9 7 , 2 2 9 , 6 , 2 , 1 9 7 , 6 , 4 , 1 9 7
have to get your disassemblers out!
,205,138,195,36,205,138,195,36,1
Mini-label 9 , 1 9 3 , 1 6 , 2 4 3 , 1 , 2 2 4 , 7 , 2 3 7 , 6 6 , 1 9 3 ,
16.232.225.35.35.193.3.203.117.1
A. Welsh from Glasgow sent this 9 2 . 2 4 . 2 0 4 . 2 2 9 . 2 6 . 6 . 4 . 2 3 . 2 0 3 . 2 2 . 2
small program to produce a small
label strip on the printer which you 0 3 , 2 2 , 2 0 3 , 7 8 , 4 0 , 2 , 2 0 3 , 1 9 8 , 1 6 , 2 4 3
then cut out and stick to the
cassette or place between the ,35,203,69,32,236,225,201
edge of the cassette insert and the 110 DATA 5 8 , 5 6 , 0 , 3 5 , 4 7 , 4 5 , 4 8 , 5 3
plastic case.
,52,41,46,39
The S F prompt provides
an easy way of formatting the lay-
out of the output line.
1 REM mini label
2
Feedback 1 REM DEC-HEX
2
10 BORDER it INK 7i PAPER It C
LS i LET c*»" A nice feature of this section is the 20 DEF FN ht(n)="012345678VAEC
lively correspondence we get in DEF"<n+l)
20 INPUT "S - response to the programs we print. 30 DEF FN b*(n)=FN h*(INT (n/1
F " i LINE a* HEX/DEC in our February issue drew 6))+FN h*(n-16»INT (n/16>)
30 INPUT "S - a reply from WE. Thomson of 40 INPUT "Decimal value (0-655
F"| LINE bl Aldeburgh, who comments on the 35):";d
40 PRINT c t u t : PRINT » PRINT ingenuity of the previous program
b»i PRINT c* 50 IF d O I N T d OR d<0 OR d>655
50 PRINT AT 12,0! "PRESS P TO II then offers his version at a third of 35 THEN GO TO 40
AKE A PRINTER COPY PRESS R TO T the length! 60 LET hi=INT <d/256): LET 1o=
RV AGAIN" DEC-HEX makes good use of the d-256*hi
60 PAUSE O FN function, one calling the other 70 PRINT d;"(dec)=";lo:",";hi;
70 IF INKEY*="P" OR INKEY*="p" and also employs the technique of "(2-byte dec)="*FN b*(hi);FN b*<
THEN GO TO tO
SO IF INKEY«<>"P" Oft INKEYtO" splitting a program into simple lo)s" (hex > " : GO TO 4<>
p" THEN GO TO 10 steps.
90 L PRINT c*ja$: LPRINT s L.PftI Alan Knight of Bromley writes
NT b*i LPRINT c«! CLS : GO TO 20 that Ben Stragnell's December 64 Revisited
testing zxc routine for producing 64 columns
to a line won't work in 128 mode,
Attributes this is because UDG "u" is used and
the 128 also needs it as a play 2A 7B 5C 11 90 00 19 E5
Another 128K specific program, this token. He continues that the DD El 2A 4B 5C 7E FE D3
one from Settle programmer D.J. assumption that the UDG's are at
Walker changes the colours of the the top of memory suffers when you CO 01 06 00 09 56 23 5E
128's edit screens A useful program use other code In this area and 23 7A FE 40 38 03 16 00
for those who find the defaults a bit have perhaps reiocated the UDGs.
eyestraining. (Or even if you have a 16K 1C 7B FE 16 DO 7E FE 80
The code can be located any- machine). C8 FE 20 D8 E5 D5 18 05
where except in the top page and Finally, should you attempt to Di El 14 18 E3 D6 20 26
the destination address for your print a character with a code of 00 6F 06 03 CB 25 CB 14
code is required to be Input at the less than 32 (by mistake) then the
start of the program. program crashes. The test Ben 10 FA 11 00 3D 19 DD E5
1 REM 128 attributes
made tended to disrupt the stack. Dl 01 08 00 ED BO DD E5
2 However, not being one to merely El 06 08 7E 4F 17 Bl 4F
10 INPUT "Load Address? <49128 offer negative criticism, Alan has
u
; addr provided a rewritten version which 3E 00 C5 06 04 CB 19 CB
40 INPUT "Main Paper "imp,"Ink allows for all these things. We print 19 IF 10 F9 77 CI 23 10
" imi it as HEX dump and you can
50 INPUT "AUK Paper "jap,"Ink replace the code in the December EA Dl D5 7A CB 3A 30 13
"jai
60 LET aux a ai +8*ap
issue with it or enter it with a loader DD E5 El BF 06 08 7E C5
70 LET main»mi+8*mp program to address 30000. It is 154 06 04 CB 3F 10 FC 77 CI
110 RESTORE i FOR n - O TO 23 bytes long.
120 READ ai POKE <addr+n>,a If you replace the old printed
23 10 F3 3E 15 D7 3E 01
150 NEXT n code then you will have to change D7 3E 16 D7 7B D7 7A D7
170 DATA 243,62,23,1,253,127,23
7,121,33,1S,236,54,aux,33,17,236 line 130 to: 3E A2 D7 3E 15 D7 3E 00
,54,main,62,16,237,121,251,201 130 SAVE N$ CODE 30000,154. D7 18 95
180 R A N D O M I Z E USR addr

ZX Computing Monthly • April 1987 23


EXPERT SYSTEMS
Part 3: David Nowotnik (and ZX Computing, of course!)
etc. as well as face-to-face as
means of storing and recalling
those facts. I taught' the
shows how you can teachers, lecturers and tutors. computer those facts by
including that information in
Given facts in this way, our brain
turn your computer into then files them away for future DATA lines In the BASIC
programs. These expert systems
use
an 'expert'. In the expert systems I gave could be taught more facts
through a programmer adding
you last month, I gave those
programs facts, as well as the more DATA lines containing

• t's reassuring to know that


most of us, in our own right, are
experts. It you are working, and
if you've been doing that job for
some time, then you are an
expert. Anyone starling to do the
same job as you should regard
you as an expert, and they
should, if they have any sense,
be tapping your experience to
enable them to become experts
too. And for those who are too
young to be experts, then you
are probably training to
become skilled In one or more
areas; you are the experts of the
future.
If you've been following this
series, then you are learning to
become an 'expert' in expert
systems. At present, i hope that
you regard me as an expert In
this area, because I am able to
pass on to you experience and
knowledge to allow you to gain
some expertise In this area. But,
expert systems are a long way
from my principle area of
expertise, and there are now
many expert system professionals
from whom I could learn a great
deal.
All of which goes to show that
expertise is relative; someone
who knows a little about a
subject will appear an expert to
someone who knows nothing at
all about that area. Experts
should always be learning more
about their subject, to become
better experts. This is even true
for 'high-powered' experts; rules
and procedures will change,
knowledge in any field is
constantly expanding, and all
experts, to maintain their
expertise, must learn these new
rules and knowledge.
The same is also true of
computer expert systems. With
0 the help of a human expert, they
must be capable of learning
z new rules and knowledge to
become better experts, and
1 adjust to changing circum-
stances. How expert systems can
learn is the subject of this, the
2 third part of my expert system
< series.

0
tt
Facts!
One of the principle ways in
0
oc which we learn is simply to take
in facts. Experts give us facts
0 1 through books, TV. newspapers,

24
Fig 1. Learning Example In Serial Decision making
LUI
lOO REMark Stable Expert S y t t M
110 RE hark Learning n n facts 910 LET r <r», 1) -Oi LET r<n, 21-0
120 RE Mark (Serial Decisions) 920 PRINT i PRINT
1 30 RE Mar k 930 INPUT -Enter new question! "it*
140 REMark David Nontnik 940 IF LEN <t«> >40 THEN PRINT s PRINT Too long "t PRINTi BO
ISO REMark February, 1987 TO 930
160 REMark 930 IF t»«"" THEN PRINT t GO TO 930
170 REMark Initialise 960 LET q*(x>-t*i LET l<x)-LEN <t»l
180 Din qS<30,40>i DIM 1 <50) 970 PRINT
190 DIM r <50,211 LET n-Ol RESTORE 9SO INPUT "Enter new answer: "it»
200 FOR 1-1 TO 7 990 IF LEN <t*)>40 THEN PRINTi PRINT " Too long'"i GO TO 970
210 READ p*i LET 1U1-LEN <p»>i LET qS<l)-p» lOOO IF t«-"" THEN GO TO 970
220 FOR J-l TO 2 1010 PRINT
230 READ r <I,j1 1020 PRINT "Is "Jt«!" the yes or no answer to:"
240 ft X I J 1030 LET a*-q«(x)i LET a*-a*<l TO l<*»H PRINT a*
230 LET n-n+1 1040 PRINT
260 tCXT 1 1030 INPUT -Y or N "|k*
270 DATA -Is It a h o w computer?•,2,7 1060 IF k»-"y" OR k»-"Y" THEN GO TO 1lOO
280 DATA "Does it have at least 12SK. Of RAM7",3,6 1070 IF k*-"n" OR k«-"N" THEN GO TO U I O
290 DATA "Has it a built-in tape r e c o r d e r , 3 , 4 1080 GO TO 1030
300 DATA "Spectrum 128",0,0 1090 :
m 310 DATA "Spectrum •2",O t O
320 DATA "Spectrue Plus",0,0
U O O LET r <x,1>-n*lt LET r<x,2>-ni GO TO 1120
1110 LET r<x, 1)-nI LET r(x,2)-n+l
330 DATA -IKM PC",0,0 1120 LET r <n,1)-Oi LET r(n,2)«0
340 i I 130 LET n«n*l
400 CLS 1140 LET q*<nl«t«i LET 14n>-LEN <t«)
410 PRINT - Expert System for Computer"! PRINT " Selection" 1 ISO LET r(n,l)-Oi LET r(n,2>-0
420 PRINT! PRINT! PRINT - Select! "t PRINT I 160 RETurn
430 PRINT - 1. Use the system4 1 170 S
440 PRINT • 2. Expand knowledge base" 2000 REMark Save Knowledqe base
430 PRINT 3. Stop" 2010 PRINT
460 PRINT • "ji INPUT d* 2020 PRINT "Do you want to save the knowledge base?"
470 IF d*-"l" THEN BO SUB SOOs PRINTi BO TO 410 2030 INPUT "<y or n> "»k»
480 IF d«-"2" THEN GO SUB BOOi PRINT: BO TO 410 2040 IF k»-"n- OR k«-"N" THEN STOP
483 IF d*-"3" THEN BO TO 2000 2030 IF NOT <k*-"y" OR k*-"Y") THEN GO TO 2030
490 GO TO 450 3000 REMark OL SAVE DATA routine
300 REPlark Use the expert system 3010 DELETE mdv2 expert base
510 LET x«li PRINT 3020 OPENNfcW #4, mdv2_expert_ba*e
320 LET a*-q*<x>i LET a*-a*<l TO 1 <x ) > 3030 PRINT «4,n
530 PRINT a*; " "i I INPUT k* 3040 FOR 1-1 TO n
540 IF k*-"y- OR k«-"Y" TkCN LET x«r <x , 1 ) I GO TO 360 3050 PRINT •4,q«<l)l PRINT «4,1<1>
330 LET x-r <K ,2) 3060 PRINT «4,r<l,l>! PRINT *4,r<l,2>
360 PRINT 3070 END FOR I
370 IF r <x , 1 > -O THEN GO TO 600 3090 CLOSE 14
380 GO TO 320 3100 STOP
590 i 31 lO 1
600 REMark Give the i n n e r 4000 REMark Spectrum SAVE routine
610 PRINT "The answer is a ";q*<x) 4010 SAVE -Expert 1"! GO TO 400
620 RE Turn 4020 :
630 i 4030 RE Mar k QL LOAD procedure
BOO REMark Teach the system new facts 4040 DEFine PROCedure LD
810 PRINTi PRINT: IF n>48 THEN PRINT "Knowledge base full'i 4050 DIM q« <50,40) ,1 <30> ,r 150,2>
RE Turn 4o6«J OPEN IN »4, edv2^expert base
820 PRINT "First use the system until « get * 4070 INPUT »4,n
830 PRINT *to the end of a branch that you wish" 4080 FOR l-l TO n
840 PRINT -to alter." 4090 INPUT S4,af,b,c,d
830 GO SUB 300 4100 q»<i)-a»: l<l(-b
860 PRINT t PRINT "Do you want to add to this point? <y/n» 4110 r<i,l)-ct r <i,2)»d
870 INPUT k* 4120 END FOR 1
880 IF NOT <k«-',Y"0ft k«-"y") THEN RETurn 4130 CLOSE »4
890 LET n-n»l 4140 GO TO 400
900 LET q«<n>-q*<x>! LET lln)>llx) 4150 END DEFine LD

Information and rules. This Is not Spectrum, then omit lines 3000 to question/answers, so allow for a
particularly convenient; It 3110 and 4030 to the end. reasonable expansion to the
assumes that the expert All the expert systems this seven included (lines 270 to 330
teaching the system new month deal with micro- and fig. 2(a)) in the program. On
knowledge Is also a computers. The idea is that you RUNnlng, once the arrays are set
programmer. Not only has he to specify a set of features, and the up the program's basic menu is
type In DATA lines containing expert system wllf select a shown; a choice of Interrogating
facts, he has to understand how computer for you which meets the knowledge base (1),
the program works, and the your specifications. expanding the knowledge base
structure of the rules. He may For the serial decision (2) or stopping (3) is given. Using
even have to modify or update example, a small knowledge the knowledge base follows
some of the existing rules or base is included, which allows much the same idea as last
some program lines to allow the you to select one of the month's program. You give yes/no
system to work with the new rules Spectrum computers. The answers to each question until
and knowledge decision tree tor this very small an answer is given, then you go
So, why have a computer if It expert system is shown In fig. back to the menu. Before you try
can't do things automatically for 2(a). When you RUN this teaching the knowledge base
you. And that's what the first two program, the knowledge and anything new, try using the
programs this month wilt da One rule arrays are created (line 180) system a few times.
for serial decisions (fig. 1) and and filied (lines 190 to 260). The Once you have the feel of the
one for parallel decisions (fig. 3). questions and answer strings are system, press "2' on the main
Like last month, they were written entered Into array q$ (line 210). menu. Apart from the
on the QL, but tested on both Numeric array 'r' (line 230) is the introductory message (lines 820
Spectrum and QL. They are a rule array which contains the to 840), the first part of adding to
little light on the Interrogation pointers to positions in array q$ the knowledge base Is just like
side; the theory and practise of depending on >es' 0 r 'no' using it. The purpose is to get to
that was covered last month. answers. A zero in the rule array the appropriate part of the
These programs aim to show you Indicates that an answer has knowledge base that you wish to
how to teach facts and rules to been reached. expand.
an expert system. If the diagram in fig. 2(a)
Let's start with the serial Rules looks like an upside-down tree to
you, then that's exactly what it is
decision maker in fig. 1. Type in
the listing as shown if you have The rule and knowledge arrays — a decision tree. And
a QL. If you are using a are dimensioned to 50 rules and something like a real tree, this
M
one 'grows' by spreading new it have built-in microdrives?' get the option to save the
branches from its tips. Once you So, when the message "Enter knowledge base. If you say yes,
reach a tip (ie. an answer), you new question' appears on the then, for the first time, there is a
can replace that answer with a screen, type in the above difference between QL and
question. One answer to that question (with the question Spectrum versions.
question should be the answer mark), then enter the new On the Spectrum, (lines 4000
you have just displaced; the answer, 'QU on request, and to 4020), the program is simply
other answer, for this expert finally, tell the computer whether SAVEd (with all Its data), and set
system, another name of a the answer given Is the yes or no to autorun the next time you
computer. So the question response to the new question. load, without re-dimensioning
should be carefully chosen (by The program then sorts out the the variables.
you, the expert) to discriminate rule and knowledge base (lines You can't do that on the QL.
between the old answer 1100 to 1160) to insert the new so the routine (lines 3000 to 3100)
(computer system) and the new question and two answers in the is used instead. Place a
one. right place. When all that is cartridge in mdv2_ before
Fig. 2b gives you one done in an instant, the program saying y' to 'Do you want to
example. Start from the main returns you to the main menu. save the knowledge base?'. A file
menu, press option '2', then called expert_base is saved on
select yy.'n' to the three Knowledge base mdv2_ with all the data. Next
questions. You'll end up being time you want to use this
told that the answer is a In the same way, you can add knowledge base on the QL, load
Spectrum 128, and the questions further knowledge and rules to the program, and type in LD
"Do you want to add to this the system, up to a maximum of instead of RUN. This activates the
point?" A 'n* reply would take 50. If you had answered 'n' to routine (lines 4030 to 4150) to
you back to the main menu (an the first question "Is it a home load in the data from
escape route if you've taken the computer?'. you would get the expert_base, before you use the
wrong branch); you should reply response "IBM PC". Now, while program.
Y'. So far we have a home that Isn't too far from the truth, It may have occured to you in
computer, with 128K of RAM, I'm sure that those computer using this program that a serial
which does not have a built-in experts amongst you would want approach is probably not the
cassette deck, This fits a to add a great deal more! best way to select a computer.
Spectrum 128; it's also true for a Once you've expanded the You are more likely to have a list
QL, and that's the extra answer knowledge base, the last thing of features that you want, and
that I want to insert at this point. you'll want to do Is lose all that match those against various
So, what yes/no question will work when you turn off your computer profiles for the best fit
differentiate between a QL and computer. So, when you select — in other words, use a parallel
Spectrum 128? I've chosen 'Does 'stop' from the main menu, you approach to decide on your

EXPERT
SYSTEMS

Has it a
built-in tape

Fig. 2a. Decision tree for serial learning example Fig. 2b. Adding a new branch to the tree

ZX Computing Monthly • April 1987 26


preferred computer. So, the next you'll see it has several features
the same as the serial example.
800 to 840), then it will ask you to
enter your yes/no replies to all
urn
teaching program does just that.
Fig.3. contains the listing for The menu is exactly the same. By fifteen questions (lines 850 to
this program. The program can selecting T , you get to try out 860), checking to see that
be entered as listed on the QL. the system, which starts with only exactly the same profile doesn't
On the Spectrum, do not type in four Sinclair computers in its already exist in the rule base
lines 1060 to 1170 and 1220 to knowledge base though there is array (rS). if this is satisfied, then
1370. Also on the Spectrum, the room for fifty. your expert rules are stored in
string joining *&' in lines 2060 This expert system will ask the rule array and the name
and 2070 should be '+'. fifteen questions which I have array (a$).
Just to remind you, in parallel selected to differentiate between Like the serial example, the
decisions you are asked a series various computers (lines 210 to knowledge base can be stored
of questions, and your yes/no 360). I'm sure you computer when the stop option (3) is
replies are coded T and '0', experts can think of many more, selected. Storing (and re-
respectively. This string of zeros but mine should serve as a loading) work In exactly the
and ones is then matched suitable example. So, you will same way as in the serial
against the zeros and ones In always need 15 'y' or 'n' replies learning program example.
the rule base for all possible to elicit a response.
answers. If a perfect match is In teaching the expert system D.I.Y.
found, then the computer should some new computers (option '21
report this. If the match Isn't you are first asked to give the So far, you've had to help your
perfect, the computer should name of the new computer. A expert system every step of the
search for the closest match. check is made to see that the way. In the final example this
In RUNnlng this program, name doesn't already exist (lines month, we'll try and get the

Fig 3. Example Learning Program — Parallel Decisions

lOO RtKark Simple Expert System dOO FOR i-l TO n


110 REMark Learning new facts 810 LET kl=itf < 1 > i LET k*=k*(! TO l>
120 REMar k (Parallel Decision*) 820 IF k*-n» THEN LET p-i
150 REMark 830 NEXT l
140 REMark David Nowotm k 840 PftINT: IF p>0 THEN PRINT "That name already exists"!
150 REMark February, 1987 PftINT: GO TO 510
160 RE Mark BSO PftINT "For " m l ! GO SUB 2000
170 REMark Initialise 860 GO SUB 2120
IttO 0111 f»<15,32): DIM a»(SO,14>i DIM r«<50,15> 870 PRINT : IF pM> THEN PRINT "That profile already exists
190 LET n=Os HE SI TORE as:"i PftINT a*(p>: PRINT: GO TO 510
200 REMark Features 880 LET n=n»I
210 DATA "120K Of RAM or nore" B90 LET r»<n)-t*s LET a*fn>-n*
220 DATA "IBM compatible" 900 PRINT "New item stored": PRINT
2SO DATA "Large selection of gases" 910 GO TO 510
240 DATA "ISO processor" 920 I
250 DATA "Eight-bit processor" lOOO RE Mar i Save Inowledqe Base
260 DATA "Built-in cassette" lOlO PRINT
270 DATA "Built-in RS232 port" 1020 PRINT "Do you want to save the knowledge base?"
290 DATA "Built-in Centronics port" 1030 INPUI "<y or n) "sk*
300 DATA "Built-in Joystick port" 1040 IF k»-"n" OR k*-"N" THEN STOP
310 DATA "RGB output" 1030 IF NOT lk*="y" OR k»="Y") THEN GO TO 1030
320 DATA "Supplied with a monitor" 1060 REMark QL SAVE DATA routine
330 DATA "Supplied with disc drivels!" 1070 DELETE mdv2_expert,base
340 DATA "Supplied with games" 1080 OP£N_N£W »4, mdv2_e>:per t base
350 DATA "Supplied with business programs" 1090 PRINT »4,n
360 DATA "Proper keyboard" IIOO FOR i=l TO 15
370 RF.Mark Answers UIO PRINT *4,f»<il
380 DATA "Spectrum 48k " , "OOl I lOOOOOOOl00" 1120 END FOR 1
390 DATA "Spectrum PIu»","0011lOOOOOOOlOI" 1130 FOR 1*1 TO n
400 DATA -Spectrum 128","101110101lOOlOl" 1140 PftINT *4,a*<l>: PftINT »4,rKi)
410 DATA "Spectrum *2","lOl11 IlOlOOOlOl" 1 ISO END FOft i
420 : 1160 CLOSE «4
430 FOR 1 = 1 TO IS 1170 STOP
440 READ btz f*(i)-b* 1 1 BO :
4SO NEXT i 1190 REMark 5>peetrum SAVE routine
460 FOR 1-1 TO 4 1200 SAVE "Expert 1"! GO TO 500
470 READ 01,ct: l-bl:rlli)-ti: LET n»n + l 1210 t
480 NEXT i 1220 REMark QL LOAD procedure
490 1 1230 BEFine PROCedure LD
500 CLS 1240 DIM f*<IS,32>,a*<SO,14>,rl(5o,15l
514 PRINI " Expert System for Computer Selection" 1250 O P E N I N »4, mdv2_expert_base
520 PftlNTs PRINT: PRINT " Select: ~: PRINT 1260 INPUT *4,n
530 PftINT " 1. Use the system" 1270 FOR 1-1 TO 15
540 PRINI * 2. Expand knowledge base" l?BO INPUT *4,dF
550 PftINT " 3. Stop" 1290 f*<i)-d*
560 PRINT " "ji INPUT d* 1300 END FOft I
570 IF d*="l" THEN GO TO 6tOi PftINT: GO TO SIO 13lO FOR i*l TO n
5BO IF d*-"2" THEN GO TO 7501 PRINT t GO TO 510 1320 INPUT W4,c*,d*
590 IF d»-"3" THEN GO TO lOOO 1330 a*<il=cf: r»<i>«d»
600 GO TO 550 1340 END FOR i
610 ftEMark Use the expert system I3SO CLOSE »4
620 GO SUB 2000: PRINT: GO SUB 2120 1360 GO TO SOO
(9
2
630 IF p>0 THEN PftINT "Perfect Match found, the answer is: 1370 END DEFine LD
PftINT a*(p): PRINT : GO TD 510 2000 ftEMark Interrogate
64O LET t-Ol LET high-O 2010 LET t*=""
650 FOR i-l TO n 2020 PftINT : PftINT "Reply y or n to each question ":
660 LET max=0 PRINT
670 FOR j-1 TO 15
680 IF t*(J)'"I" AND r*li.j>="l" IHfcN LET max=max + l
2030 FOft i-l TO IS
2040 PftINT f*(i)s" "J 2
2
690 NEXT ) 2050 INPUT kf
700 IF max high THEN LET high-fflaxl t-1 2060 IF k»«"Y" OR k»-"y" TIKN LET l*-t*i,"l"{ GO TO 2090
7lO fCXT I
720 IF t-O THEN PRINT "No match found" PftINT: GO TO 510
2070 IF k«-"n" Oft k* = "N" THEN LET t» = l » V O " : GO TO 2090
2080 GO TO 20S0 <
/SO PRINT "Best match is "tatftli PRINT: GO TO SIO 2090 NEXt I
740 t
750 REMark Teach the system new facts
2IOO RETurn
2110 : a
760 PftINT: PRINT: IF n 49 THEN PRINT "knowledge base full"
PftINT: GO TO 310
770 INPUT "Enter computer name ";n*
2120
2130
2140
REMark Find a match
LET p=0
FOR i-l TO n
(9
/BO IF n»«"" THEN GO TO 770 2150 IF t*=r*<i) IHfcN LET p-1 0
790 LET p-0: LET 1= LEN(nf i : IF I >14 THEN PftINT "Name too 2160 NEXT l
long 1 "! GO TO 770 2170 RETurn

27
ZX Computing Monthly • April 1987
expert system to do a bit more response to each of the seven numbers; these are not just
work for itself. The program for features. The computer will make restricted to zeros and ones;
this example is in fig.4. (t again a guess; if the guess is right, you'll get higher numbers, and
uses the parallel decision then the rules are not changed, negative numbers too.
approach, but this time, it tries to but if the guess Is wrong, then Typing in features time and
develop the rule base for itself. the rules are altered, and the time again is rather boring, so
You'll find It's very inefficient, but updated rules are displayed. there is an automatic feature
the program coding will give At this point, some entry to speed things up; option
you an idea how the expert explanation is required as to 3 from the main menu. It selects
system will automatically adjust what is happening during a possible answer at random
its rules — well, almost adjustment of the self-learning (lines 2100 to 2170 — please note
automatically; it still needs a rule array (s). That array is the different structures in line
little help from us! initially filled with zeros (line 410), 2110 depending on which
To keep things fairly simple, that's why the answer was always machine. Spectrum or QL, you
there are just five answers in this the same on the very first test. are using), and feeds the yes/no
self-learning program, with seven When you enter the profile of answers automatically into string
features. Line 180 dimensions any one computer system (lines t$. The computer will then select
several arrays. As before, f$ and 2000 to 2090) a string of ones an answer, as before, using its
a$ contain the names of the and zeros is set up, representing developing rule array (s). As the
features and answers, your sequence of yesyno answers. computer now knows the correct
respectively. The rules are now in In lines 2200 to 2300 every answer (as It selected this itself!),
numeric arrays; array V contains element in that string is It tells you if the answer is right
the rules stored In the program compared with the or wrong, and updates the rule
(the reason for this will become corresponding rule (in array V) array If it is wrong.
apparent in a moment), while for each possible answer. If a Whether you use the manual
the array V is the rule base match is found, then the score or automatic profile entry
which the computer will create (q) is Incremented (line 2260), procedure, you may be
by self-learning. Numeric array and the total for each possible surprised by the number of times
V is used In decision making; if answer stored in numeric array this expert system has to
keeps the score of each possible V*. The highest score indicates 'practise* to pass the test (option
answer when comparing the best fit of the entered profile 1) and get the answer right every
entered features against the rule and the rule base, and this Is time for every item. In teaching
base. how the answer is selected (line an expert system, it is always
When you RUN the program, 2410). much easier to be able to give
you again get a Menu with If the computer's answer is the computer the correct rules to
three options. Option 1 just tests wrong, then you tell it the enter into Its rule base. But self
the self-learning rule base for correct answer (lines 2420 to modification of the rules may
you. It will go through each 2560), and the self-learning rule well be necessary sometimes; for
answer In turn, and enter the array is adjusted. Each rule example, a manufacturer may
stored features from the correct element in the correct answer Is change some of the features of
rule array (r), then gets the Incremented if a 'yes' response one or more of his computers.
computer to make a decision was given to a particular feature Self learning may be the easiest
based on those features using (lines 2770 to 2790). For the way a user, not familiar with the
the rule array it is developing (s). answer given incorreclty (and Inner workings of the system, can
When you first RUN the program, other possible answers which update the rule base to adjust
and select the test option, you'll scored the same as the to these changes.
note that the rule array will Incorrect answer), the rule So far, we have considered all
always select "Spectrum 48K' — it element is decremented by one our examples as capable of
still has a lot to learn! for each feature given 'yes' ' n dealing with yes/no responses
You can start teaching the the profile supplied by you (lines only. What happens If the user
system to allow It to adjust the 2710 to 2760). doesn't know the answer? And
rule array either manually or All that may seem rather what happens If the response
automatically. Option '2' is the complicated, but il you work cannot be as simple as yes or
manual approach. You will be through it a few times, I hope no? The mathematics of our
asked five times (before returning you will start to see the logic of experts systems get a little more
to the main menu) to think of what Is going on. When the rule complex as we consider these
one of the five answers, and array Is printed out on the items in the next part of this
provide the correct yes/no screen, you'll get strings of series.

Fig A. Example of Rule Learning/Modification


370 FOR i-1 TO 5
lOO REHarl: Simple Expert System 380 READ b*i LET a*<i>-b*
110 REMark L e a r m n q neu rules 390 FOR j-I TO 7
120 REMark by Iteration 400 READ ct LET r l l , j l * t
130 RE Mar I 410 LET s(i,j1=0
140 REMark David Nowotnik 420 NEXT J
ISO REMark February, 1907 430 NEXT l
IfcO REMark 440 t
170 REMdrl Initialise 4SO CLS
0 IBO Din f»<7,30>: Dili ,it ! 1 4 1 DIM rl5,7»! Din SI3.7): Din 460 PRINT " Expert Systc - Learning Rules"

z y 15) 470 PRINT! PRINT: PRINT Select:": PRINT


190 RESTORE 48*1 PRINT " 1. Test the knowledge base"
200 REn*rI Features 490 PRINT - 2. Enter profiles "

1
210 DATA "V2&. of RAH" 500 PW1NT " 3. Auto -1 r a m i nq"
220 DATA "Large selection o< gamps" SIO PRINT - "ts INPUT d*
320 IF d»-"l" THEN PRINT t GO TO 560

<
230 DATA "ZBO processor"
240 DATA "Built-in cassette" 530 IF d*»"2" THEN GO TO 640
250 DATA "Built-in RS237 port" 540 IF d*»"3" IkCN SO TO 760
260 DATA "Cones with business programs 55o OO TO 510
270 DATA "Proper keyboard" S60 REHark Te«t the knowledge base
570 FOR fc-1 TO 5
at 280 REMark Answer i

0
290 DATA "Spectrum 4 » " ,0, 1 , I ,0,0,0,0 980 LET t-ki GO SUE) 21201 GO SUB 2200
300 DATA "Spectrum PIu»".O,1,1,0,0,0,1 590 PRINTi PRINT "fly answer Is "«4*<hlgh>
310 DATA "Spectrum 128" , 1 , 1, I .O.O.O, I 600 PRINTi PRINT » Press ENTER to continue"
320 DATA "Spectrum *2",1,1,I,1,0,0,1 610 INPUT d*
O 330 DATA "01",1,O.O.O,I,I,1 620 NEXT Ic

oc 340 FOR 1-1 TO 7


350 READ b*s LET «*<i)=b*
360 NEXT i
630
640
650
GO TO 450
REHark Manual entry of Profiles
FOR tl-l TO 5
a.

28 ZX Computing Monthly • April 1987 28


IRN
MO CLS 2400 REMark Manual Correct
670 GO SUB 2000 2410 PRINT: PRINT "My iniacr is " l a X h t q h l
680 GO SUB 2200 2420 PRINT - Is that right? (y/n> "(
690 BO SUB 2400 2430 INPUT d»: IF d*-"" THEN GO TO 2430
700 GO SUB 2700 24 4t> IF d*(ll»"V" OR d«tl»«"y" THEN LET ok-li RETurn
7IO GO SUB 3000 2450 IF d((I)>"N" OR d»(ll="n" THEN B O TO 2470
720 PRINT: PRINT " P r M 5 ENTER to continue" 24 6 0 GO TO 2430
730 INPUT d• 2470 LET ok-O
740 NEXT h 24 BO PRINT t F-RINT "Which one should It Ue"7 " : PRINT
750 GO TO 450 249U FOR i-l TO 5
760 RtNirk Aiito u l « t profiles 2SO0 PRINT n " -jitlil
770 FOR h-1 TO S 2510 NEXT 1
780 CLS: PRINT "Auto Select Profiles": PRINT 2520 PRINT : PRINT "Which one is i f U - 5 >
790 GO SUB 2IOO 2530 INPUT d»: IF d*-"" THEN GO TO 2530
BOO GU SUB 2200 2540 IF d l l l K ' l " OR df < 1) >"5" THEN GO TO 2530
810 GO SUB 2600 2SSO LET rt- CODE <d*I-4B
820 IF ok THEN GO TO B60 2560 RETurn
830 GO SUB 2600 260C REHark Auto correct
840 GO SUB 2700 26 lO PRINTS PRINI "My answer is 'jatChighM
850 GO SUB 3000 2620 IF h l Q h O s l THEN BO TO 26SO
860 PRINT: PRINI - Prous ENTER to continue" 2630 LET ok-li PRINT ". That's right"
870 IWHJT d» 2640 RETurn
880 NEXT h 2650 LET ok-Oi PRINT That 's w o n q "
BVo GO TO 450 2660 PRINT " l a updating the rules"
2000 REMark Enter profiles 2670 LET rt
20IO LET t " " ! PRINt "Enter y or n to ticli question": PRINT 26SO RETurn
2020 FOR 1«1 TO 7 2700
20S0 PRINT f*(l1|- "; 27 1 O FOR i - l ro 5

2040 INPUT d»: IF THEN GO TO 2040 2720 IF i«rt OR y i i K t o t THEN GO TO 2760


205O IF d*<ll-"V" OR d*(l>="y" THEN LET t»-t*fc"l": GO TO 2 o e o 2730 FOR J - 1 TO 7
2060 IF d*<l>»"N" OR d*(l)-"n- THEN LET t*-t«!."0": GO TO 2080 2740 IF t»< J >-"1" THEN LET *<1 ,j>-»<l,j)-1
2070 GO TO 2040 2750 NEXT J
2OB0 NEXT i 2760 NEXT i
2090 RE Turn 2770 FOR j-1 TO 7
21 OO REMark Auto select profile 2780 IF tt<J)-"l" THEN LET slrt,J>«s<rt,j>+!
2110 LET i- I*RND141 t LET i" 1+ INT <RND »5> o<n Spec true3 2790 NEXT J
2BOO RETurn
2120 PRINT: PRINT a«<i>i" selected."
2130 LET si -ii LET t»-"OOOO0OO- 3000 REMark Print New Rules
2140 FOR J-1 TO 7 3010 FOR l-l TO 5
21SO IF r<sl,j>-"l" THEN LET t » < J >-"1" 3020 LET k * -a* <11 tc" "t LET xS-x*(l TO 1411 PRINT
2160 NEXT j "I

2170 RETurn 3030 FOR j-1 TO 7


2200 REhart Guess1 3u40 IF S<l,J)>-0 THEN PRINT " "I
22lO LET tot-O: LET htgh'l 3030 PRINT S<1,J(1" "I
2220 FOR l•J TO 5 3070 NEXT J
22ZO LET q-O 30BO PRINT
2240 FOR 1»1 TO 7 309V NEXT 1
2260 IF t * ( J l « " l " THEN LET q-q*S<l,J> 3100 RETurn
2270 NEXT J
2280 LET y d l s q : IF q>tot THEN LET tot-q: LET hiQh =1 Pleai e note in line 2110: the line as written is the QL
2290 NEXT i version; for the Spectr-ua, substitute the c o w•and 1n brackets
2300 RETurn (and bold print) in the listing.

iwsiii;
Views on products old and new
in this month's post bag

Hi, Beta!
I was very interested in the
Beta Plus '81 no more review ot the HiSott Compiler
In the February 1987 issue
Could you please print an which arrived today. I bought the
occasional article on the Beta Having read about PC Allen's programme to speed up the calcula-
Plus Interface? Since Ray request for ZX81 hardware, I tions in the Multiple Linear Regression
Elder 's excellent review (DecUan. 85/86) thought I'd drop you a line program from University Software which
I am sure many readers must have about the "Pine Marten" newsletter. I've I use.
bought this system. However I haven't enought replies to send out the second I think some of the points I found may
heard any more about this interface issue ot the newsletter — and PM will be of interest to your readers I tried to
until your review of the Hisoft Compiler include an offer tor a joystick interface compile only the calculation section as
mentioned that the compiler would not adaptor. The adaptor will enable Ihe manual said one could move in
work with the Beta Interface. Even Spectrum joystick interfaces to be used and out of BASIC but this does not apply
mentioning utilities which can be on the ZX81. The newsletter is totally free if the parts left in BASIC use variables
converted to work with Beta would be to contributors (ie. almost anyone who from the compiled section.
helpful. writes in to it). There is now a charge ot The original program used variables
The people at Print 'N Plotter 40p for the newsletter tor those who in DIM statements I had to decide on
(01-403-3622) have been very helpful, can't think of anything to say. Overseas maxima (or these to use numbers in the
and I found their Paint Plus art utility readers may send two IR coupons. DIM statements
converted easily to work with the Beta Since last writing to you I have The other point is not to use byte
Plus and is well worth doing. decided not to produce any more sving ersions (or the compiling. By
Great magazine, could be perfect! software for the ZX81; the HiRes utility replacing P I byte savers and
No threats. I'll keep on buying it. may still be released, work on it has VAL"number" with actual numbers the
Cyril Heywood, been given very low priority so I can't compiled code used about 1.5K less on
London. say when if might be finished. I've sold my printer version of the program. The
only around 20 copies of "War Web" to compiler version uses more bytes than
Some popular pieces ol hard- date and this doesn't justify the cost of the BASIC one as noted by your
ware, such as the Discovery the mailers (96 on the mailing list) or the anonymous reviewer but the speed
disc drive, give rise to their advertising. increase is worth this. With the BASIC
own user groups which are often the I will no longer be advertising ZX81 version result calculation could take up
main source ot information lor inter- games, but I would like to reassure your to fifteen minutes with ten independent
ested users, but as far as we know there readers that I will continue to supply the variables — the compiled version takes
aren't any groups tor the Beta system so
there's not much being written about it.
current range of games tor the ZX81
and "Pine Marten" will continue as long
30 seconds
I have found the option of a C
Maybe there's someone oul there who as people write in. Microdrive backup very useful. Q
runs such a group and would like lo get
in touch with us?
Gary Rowland (Pooler Games),
Dagenham, Essex.
J.F. Osborne.
Huntingdon. Combs. c
ZX Computing Monthly • April 1987 2<
LWJ

thedlSCQPLE
interface for all computers in the them on the entry coupon. Clues
Spectrum range. to the answers can be found In
Cunningly designed to John Wase's Disciple review in
resemble the Interface 1, the last month's ZX and perhaps on
Disciple uses the same raised this page. Or, to avoid educated
connector leaving the guesswork perhaps Rockfort
Spectrum's input and output Products will send you a
Your chance to win the ports free to use. With features brochure If you ring them on the
such as snapshot button number to be found elsewhere
most exciting Spectrum allowing up to 16 snapshot tiles in this issue.
to be saved when working with The first two correct entries
add-on to appear for a double density, the Disciple has picked out of the hat will receive
found favour among serious a Disciple.
very long time Spectrum users since its recent
introduction. The Questions
"•"he Disciple is an immensely We are offering two Disciples 1 How many 48K commercial
versatile multi-purpose interface in this competition. All you have games could save on a double
that functions as a disk, printer, to do is select the right answers sided double density disc using
dual joystick and network to the questions below and ring the Disciple with an 80 track disk
drive?
a) 8.
b) 12.
c) 16.
2. Loading a file from disc with
the Disciple is approximately:
a) 20 times
b) 40 times
cj 60 times
faster than loading the same file
from tape.
3. To copy a screen from a
commercial program to your
printer with the Disciple, you
simply:
a) Press Cap Shift and the
snapshot button.
b) Enter LPRINT.
c) Press P and Snapshot button.
4. Which statement is incorrect?
a) The Disciple uses hook codes
similar to Interface 1.
b) To transfer most commercial
programs from tape or micro-
drives to disc press the snapshot
Disciple Competition button.
Please ring the appropriate letter c) The joystick ports are
Kempston, Interface II and
1. A B C Protek.
2. A B C
3. A B C The competition is open to all
4. A B C ZX readers except employees of
Argus Specialist Publications,
Chase Web, Rockfort Products,
and Miles Gordon Technology.
Name: The editors decision is final and
no correspondence can be
entered into.
Address: Send your entries to: Disciple
a. Competition, ZX Computing
Monthly, No 1 Golden Square,
London W1R 3AB
Send your entries to Disciple Competition, ZX Computing, No 1
o
Please remember to put your
Golden Square. London W1R 3AB address on your entry envelope.

o The closing date for entries is


May 1st 1987.

30 ZX Computing Monthly • April 1987 30


shoot your way through each
mil
building through the basement. floor individually.
A game of ups and You enter through the roof and For some reason, when you
head downwards, though you get to the exit at the bottom of
downs from Quicksilva might find that you have to do a the building, there are some
bit of shuttling up and down as weird colour clashes, but these
you go after all the papers. don't affect the game itself and
Unlike our own secret service you then go on to the start of the
Elevator Action chaps who go up to complete next game.
strangers in the street and offer It's not the fastest, most action
Quicksilva them bags full of official secrets, packed arcade game I've ever
£8.95 the owners of these papers have come across but for some
sensibly arranged for them to be reason it does seem to be a bit
protected by armed guards who addictive (possibly because it is
prowl each floor and come so simple for once — it makes a
tter a series of pretty popping out of the locked, change not to have to read a
unexciting titles it looks like yellow doors at the least great wodge of instructions
Quicksilva are finally starting to convenient moment. When you before getting into the game). It
show signs of life again. Their come face to face with the would be even beter if the
recent Glider Rider wasn't earth- guards you can either run for layout of the building changed
shattering but it did have some the nearest lift, or, If there isn't at the end of each section,
nice touches, and now one around you can kick or fire instead of using the same
Quicksilva have joined the rest at them with your own gun. The building with more doors and
of the industry by turning to trouble here is that the guards guards — as it stands I think the
coversions of successful arcade often manage to get off a few game's life is probably limited
games. shots of their own before they by the number of times that
I've never played the original bite the dust, but if your timing's you're prepared to go over the
coin-op version of Elevator Action up to it you can jump or duck same ground. The game is also
so I don't know how faithful a out of the line of fire. a bit overpriced at £8.95. but if
conversion this is, but after a At the top of the building you want your collection of
slow start it did turn out to be there's just the one lift, and no arcade conversions to be
simple, if undemanding, fun. guards to avoid, but the further complete then Elevator Action is
The game is set inside a tall down you go the more worth a look.
building where all the floors are complicated the
interconnected, both horizontally interconnections become and
and vertically, by numerous lifts the more guards there are
and escalators. On each floor wandering around. Fortunately,
there are a number of doors, once you're in a lift you can
painfed either red or yellow, and control its movements with the
behind the red doors are secret joystick, and this allows you to
papers that you have to collect go straight to the areas with the
before you can leave the red doors, rather than having to

ELEVATOR f >
JL C \

7\
J
S t (•(!( III S « ORE I I CIV >)3
030390 oooauo f;«him:> h i

IE
i i i i i i i i
IfJI I
1 i i i i i i i1 1 B

EI 11
i r r r i T f i ••5
U11J

RANDOM LANDSCAPE
GRAPHICS the production of at least part of Background work
Alan Davis presents a each garphic illustration,
technique for creating perhaps by using a small I don't propose to do more in
number of subroutines to set up this article than to tackle the job
a limited number of of drawing backgrounds,
random adventure backgrounds onto which because this alone generated
0 backgrounds different shapes can be quite enough interesting little
z superimposed. In this way you
could arrange for each location
problems to keep us occupied
for a month! At the outset, I
in your adventure to have some
1
decided it would be a rather
espite the arrival ot the 128K sort of illustration — though neat idea to let the Spectrum's
Spectrum, many of us are still there's a price to pay of course. random generator take over the
s trundling along with our old 48K Inevitably there'd be a certain creation of the picture, and
< machines, and are generally sameness about them, even began (as I so often do) by
fairly content I suspect. Speaking though they might differ in trying out a few simple ideas in
at purely personally, and confining detail. BASIC Listing 1 will show you the
my remarks to the adventure One program which used sort of thing I was aiming for,
O game genre, I don't believe that something like this technique and if you type it in and run it
O the potential of 48K has been was the immensely successful you'll get some idea of the
exhausted yet (or anywhere near "Valhalla", which has been effects that can be achieved
DC
a. it). But having said that, I must
admit that there's one aspect of
given a new lease of life
recently by being released as a
even with these simple routines
(It's ridiculously slow of course,
adventure programming where budget game. Again, speaking but that doesn't matter for the
the limitations of 48K are very moment). The screen shot which
2 evident. I'm talking about
purely for myself. I always felt
that the game itself was slightly should be lurking somewhere
graphics, of course. They gobble less interesting than cold rice about these pages shows an
memory mercilessly, and any pudding, but I must admit that I application of the same
adventure writer is always on the do find the illustrations highly principles, extended to use the
look-out for programming atmospheric So the method entire screen, and with some
o methods which can help to clearly can work, and yet oddly graphics for buildings
111 selve this problem. enough nothing quite like it superimposed to show how the
a. seems to have been attempted ideas could be used in practice.
One possible solution is to use
CO some method of "streamlining" since. Shall we have a go? As you'll see, this little

32 ZX Computing Monthly • April 1987 32


program uses the RND function
M
Listing 1
to determine the operation of
the various PLOT and DRAW
routines, and it's capable of
producing some rather effective 1 DEF FN r(x > = INT (RND*x)
mountains, rippled water, reeds, 2 BORDER 0: INK 0: LET tl=l: GO TO 1000
and so on. But what makes the 7 SEN
system of potential interest to the 8 REM **DRAU RECTANGLE AND FILL WITH BACKGROUND PAPER**
9 REM
adventure programmer is the 1® CLS : PLOT 0.95: DRAW 128.01 DRAU 0.80: PRINT AT 1,17;'PICT
fact that, as you know, the RND URE NUMBER";AT 3,24;n;AT 0.0;
function doesn't actually 15 PRINT PAPER 5,',',',',' PAPER 1,',' PAPER 6.•,•,'» RETURN
produce random numbers at all; 17 REM
it produces pseudo-random 18 REM **DRAU MOUNTAINS**
numbers. This means that we get 19 REM
a strictly predetermined 20 INK 0: LET ht = FN r<24>: LET »x=23: LET nn=0: LET p = FN r<2)
25 FOR 1=0 TO 127s PLOT 1,136: DRAU ®,7+ht
sequence, which repeats itself 30 IF p THEN LET ht=ht*FN r(2>: IF bt>=*x THEN LET p=®= LET
only afler 65536 numbers have ht=«xi LET «n = 1 + FN r < 7 > : GO TO 50
been generated. The starting 40 IF NOT p THEN LET ht=ht-FN r<2>: IF ht<=»in THEN LET p = U
point of the sequence is set by LET ht=»ns LET «x=8+FN r<16)
using RANDOMIZE n, and you'll b0 NEXT l: RETURN
see this used at line 1000. Every 77 REM
time you press a key in response 78 REM **DRAU LAKE**
to the "Next picture?" prompt, 79 REM
80 INK 7: FOR 1=0 TO 49
the value of n is increased so 90 LET x=FN r C125>i LET y=128+FN r(8): PLOT x,y
that the sequence begins next 100 DRAU FN r(4),0: NEXT i: RETURN
time from a different point and 137 REM
produces a different picture. The 138 REH **DRAU REEDS**
changes are most noticeable in 139 REH
the mountain profiles mainly 140 INK 4: FOR 1=0 TO 127: LET »n=FN r(2): LET »x=l+FN r(7)
because these are the most 150 PLOT i,119+an: DRAU 0,BX-bo: NEXT l: RETURN
177 REM
complex shapes (being the ones
178 REM **DRAU SOUGH GROUND SPECKLE**
I spent the most time tinkering 179 REM
with). 180 INK 0! FOR 1=0 TO 49
190 LET x=FN r( 128): LET y»104+FN r<8>: PLOT x.y: NEXT H RETUR
I think you'll see now what I'm N
getting at. If we let n represent 237 REM
the "location number" in our 238 REH **DRAU FOREGROUND GRASS**
adventure, and precede every 239 REM
call to the graphics subroutines 240 INK 4: FOR 1=0 TO 127: PLOT t,98: DRAU 0,FN r(8>: NEXT l
by "RANDOMIZE n", we'll always 250 RETURN
get the same set of background 997 REH
998 REH **HAIN LOOP FOR DRAUING COHPLETE PICTURE**
graphics for the same location, 999 REM
yet the background for each 1000 CLS : RANDOHIZE o: GO SUB 10: REM ** CLEAR RECTANGLE
location will be different. Of 1005 GO SUB 20: REM ** DRAU HOUNTAINS
course you could go much 1010 GO SUB 80: REH ** DRAU LAKE
further than I've done here. 1015 GO SUB 140: REM ** DRAU REEDS
Other subroutines can be 102® GO SUB 180: REH ** DRAU GROUND
added (and called 1025 GO SUB 240: REM ** DRAU GRASS
conditionally on the value of n). 1030 INK 0: PRINT * 1;AT 1.9: FLASH 1 ;"NEXT PICTURE?"
1®40 PAUSE 0: LET n=n+1: GO TO 1000
Just by changing the ink and
paper the lake in the middle
distance can be made to turn memory a table of 256 pseudo- of memory (in fact I used
into a marsh, an ice sheet, a random integers, and then addresses 64744 to 64999
sandy desert, or whatever. extract our random numbers inclusive) and fill each of those
from the tables as and when bytes with a random integer like
Speed trap they're needed? this:
Let me explain in a little more FOR I = 64744 TO 64999: POKE
Unfortunately we still have the detail. First, we reserve 256 bytes I, INT(RND * 255): NEXT I
problem of speed — or rather,
lack of it! Aha, you say. No
problem. PLOT, DRAW, and RND
can easily be coped with in
machine code by making
suitable calls to the ROM. Half
an hour's work with an
assembler, and we're home and
dry. Well, don't let me stop you.
but I'm afraid you'll find the
exercise very disappointing. The
chief snag (there always is one,
isn't there?) is that the normal
Spectrum RND routine is |T i
horrendously slow, and using it
from machine code doesn't f,i
W H WH
actually make much difference. 11:.
We'd better think again.
Strictly speaking, we don't
actually need all the possible
permutations in the RND
sequence for the job in hand.
Nor do we need 65536 different
pictures, come to that. Wouldn't
256 be enough? Well then, why
don't we simply stash away in Just o n e l a n d s c a p e e f f e c t a c h i e v e d with this utility

ZX Computing Monthly • April 1987 33


Now imagine that we have a

. Listing 2 ;
pointer which can be moved
along the table. Whenever we
want a random number we just
collect the entry in the table •HISOFT GENS3M2 ASSEMBLER*
indicated by the current position ZX SPECTRUM
of the pointer and move the
pointer along one notch ready Copyright (C) HISOFT 1983,4
for the next random number All rights reserved
collection (When the pointer
Pass 1 errors: 00
gets to the end of the table, we
simply arrange for it to move 10 *C-
back to the start again). This way 20 ;DRAU, PLOT, And "RND* routines
we can get 256 different pictures 30 *D*
according to the initial position 65000 40 ORG 65000
of the pointer. Of course you'll 50 DRAU
rightly point out that during the 60 ;Thia is the equivalent or DRAU C,B
70
drawing of one complete 65000
80
EXX
65001 PUSH HL
picture the pointer will cycle 65002 90 EXX
many times through the table, 65003 100 LD DE.110101
repeating itself every time. 65006 1 10 CALL »24BA
Indeed it will — but oddly 65009 120 EXX
enough it doesn't matter much 65010 130 POP HL
140
in practice. A hint of regularity in 65011
150
EXX
things like the "grass" or "reeds" 65012
160
RET
graphics will hardly be obtrusive 170
anyway and with more 180
complicated shapes like 190
;Thts is equivalent to PLOT C,B
mountains the use of the 8933 200
PLOT EQU H22E5
random numbers by the graphic 210
220
routines is complex enough to 230
mask almost completely the 246)
RAND
underlying repetitions. The 250
;This replaces contents of A register by INT(RND*A)
; Note that addresses 64744 to 64999 Bust contain
techniques wouldn't suit a 260
; randon integers between 0 and 254 inclusive
statistician — but It'll do for us. 65013
270
LD (VALUE),A; Store A in (VALUE!
280
65016 LD HL,64744; Start of randoa number table
290
Translation 65019
65023
300
LD
LD
DE,(POINT); Current value of pointer
D, 0
310
We're now in a postiton to 65025 320
ADD HL,DE
attempt what we set out to do — 65026 330
LD A, E
that is. to "translate" the slow bits G5027 340
INC A
of our original BASIC program 65028 350 LD (POINT).A; Store next value of pointer
65031 LD A,(HL); Pick up randon integer (r)
into machine code. In order to 65032
360
CALL D2D28; Stack it
do so we need 4 essential 65035
370
380 LD A.255
subroutines, and these are given 65037 390 CALL «2D28; Put 255 on stack
in Listing 2. The first two are just 65040 400 RST 40; Calculator on
the well-known methods of using 6504 1 4 10 DEFB 5; Divide to leave "RND" on stack
the ROM routines for drawing a 65042 420 DEFB 56; Calculator off
line and plotting a point. To get 65043 430 LD A,(VALUE)
65046 CALL H2D28; Put (VALUE) on stack
the equivalent of PLOT x.y we 65049
440
EST 40; Calculator on
450
load the C register with "x". the B 65050 460 DEFB 4; Multiply (VALUE) by *RND"
register with "y" and then CALL 65051 470 DEFB 39; Effectively INT(VALUE*"RND" )
PLOT. To get fhe equivalent of 65052 480 DEFB 56; Calculator off
DRAW x.y we load the B and C 65053 490 CALL #2DD5; Result to A register
registers similarly and then CALL 65056 500 RET
DRAW. 65057 510 POINT DEFB 0
65058 520 VALUE DEFB 0
The interesting stuff comes 530
with the third routine (labelled 540
RAND in Listing 2). i've annotated 550 BKGRND
this in some detail so that all I 560 ; This draws the picture frane, and then prints
570
need to do here is explain how 580
; horizontal stripes of background paper
65059 LD A,2
it's used. It produces the 65061 590 CALL #1601; Select screen for printing
equivalent of INT (RND»x) using 65064 600 LD B, 95
a table of 256 random integers 65066 610 LD C.0
as we discussed above. The 65068 620 CALL PLOT
routine is entered with the A 65071 630 LD B, 0
register holding the value of "x", 65073 640 LD C, 128
650
and on return you'll find the A 65075
65078 660
CALL DRAU
register holding INT (RND«x). In 65080 670
LD B.80
other words, it does much the LD C,0
65082 680
CALL DRAU
same job as the defined 65085 690
LD A, 17
function in Listing 1. You'll need 65087
700
RST 16
to fill the table from BASIC 65088
710
LD A,(PAP 1)
720
yourself of course as I described 65091 730 RST 16
earlier — but once you've done 65092 740 LD B,5; Five rows of paper (PAP1)
that the table can be saved 65094 750 LOOP 1 LD A, 6
along with the rest of the code 65096
65097
760 RST 16
LD A. 13
as a single block. You control 65099
770
RST 16
the starting point of the RAND 65100
780
DJNZ LOOP 1
790
sequence by POKEing 65057 65102 800 LD A. 17
(POINT) with the current location 65104 810 RST 16
number in your adventure — this 65105 820 LD A,(PAP2)
is effectively the "pointer" we 65108 RST 16
were talking about before. 65109 LD B,2; Two rows of paper (PAP2)

ZX Computing Monthly • April 1987 34


6 5 1 11 830 LOOP2 LD A,6
The final subroutine is the one
65113 840 EST 16 labelled BKGRND. This is
65114 850 LD A . 13 completely self-contained, and
65116 860 RST 16 just clears out a rectangle on
65117 670 DJNZ LOOP2 the screen, filling it with suitably
6 5 1 19 880 LD A , 17 coloured strips of paper, and
65121 890 SST 16
drawing a line around it. In fact
65122
65125
900
910
LD
RST
A, ( P A P 3 )
16
it does mainly the same job as
65126 920 LD B.3; Three rows of paper ( P A P 3 ) lines 10/15 in Listing 1. There are
65128 930 LOOPS LD A,6 just two points to make here. First,
65130 940 RST 16 I've arranged for the picture to
65131 950 LD A . 13 take up roughly one quarter of
65133 960 RST 16 the screen, so as to leave plenty
65134 970 DJNZ L00P3 of space for text. Secondly, you'll
65136 980 RET
probably want to fiddle with the
6S137 990 PAP 1 DEPB 5; Cyan
65138 1000 PAP2 DEFB Is Blue
paper colours at some stage,
65139 1010 PAP3 DEFB 6 ; Yellow either from within a program or
just to try out different effects —
Pass 2 errors: 00 and you can do this by poking
different values into 65137/8/9
Table used 152 iron 331 before calling the routine. For

Listing 3
65258 1570 LD (HT),A 65391 227® CALL DRAU
65261 1580 LD A.7 65394 2280 LD A. ( I I )
65263 1590 CALL RAND 65397 2290 INC A
«HIS0FT GENS3H2 ASSEMBLER* 65266 1600 ADD 1 65398 2300 CP 128
ZX SPECTRUM 65268 1610 LD (HN ) ,A 65400 2310 RET Z
65271 1620 XOR A 65401 2320 LD (II).A
Copyright (C) HISOFT 1983,4 65272 1630 LD (PP).A 65404 233® JP L00P6
All rights reserved 65275 1640 RET 2340
65276 1650 SUAP2 LD (HT).A 2350
Pass 1 errors: ®0 65279 1660 LD A, 16 236® GROUND
65281 1670 CALL RAND 65407 237® CALL IN IT
10 *C- 65284 1680 ADD A.8 65410 238® L00P7 LD A, 128
20 iPicture c o m p o n e n t s 65286 1690 LD (MX),A 65412 239® CALL RAND
3 0 *D+ 65289 1700 LD A, 1 65415 2400 LD C. A
65 N E 40 ORG 65140 65291 1710 LD < PP),A 65416 2410 LD A,8
1020 65294 1720 RET 65418 2420 PUSH BC
1030 MNTNS 65295 1730 II DEFB 0 654 19 243® CALL RAND
6514® 1040 C A L L IN1T 65296 1740 PP DEFB 0 65422 2440 POP BC
65143 1050 LD A,24 65297 1750 HT DEFB 0 245®
65423 ADD A, 104
65145 1060 C A L L RAND 65298 1760 MX DEFB 0 65425 246® LD B. A
65148 1070 LD (HT),A 65299 1770 MM 0
DEFB 65426 247® CALL PLOT
65151 1080 LD A, 23 1780 65429 248® LD A,( II I
65153 1090 LD (MX),A 1790 65432 249® INC A
65156 1 100 XOR A 1800 LAKE 65433 2500 CP 5®
65157 11 10 LD <MN>,A 65300 1810 CALL IN IT
1120 65435 2510 RET Z
65160 LD A,2 65303 1820 LOOPS LD A, 125 65436 2520 LD < I I ) ,A
65162 1130 CALL RAND 65305 1830 CALL RAND 65439 2530 JP L00P7
65165 1 140 LD (PP).A 65308 1840 LD C, A 2540
65168 1 1 5 0 L00P4 LD A.( II I 65309 1850 LD A,8 2550
1 160 C, A
65171 LD 65311 1860 PUSH BC 2560 GRASS
1170
65172 LD B. 136 65312 1870 CALL RAND 65442 2570 CALL INIT
65174
1180 CALL PLOT
1190
65315 1880 POP BC 65445 2580 LOOPS LD A,(11 I
65177 XOR A 65316 1890 ADD A. 128 65448 2590 LD C, A
1200 LD C. A
65178 65318 1900 LD B, A 65449 260® LD
1210 B. 96
65179 LD A.< H T ) 65319 1910 CALL PLOT 65451 261® CALL PLOT
1220
65182 ADD A.7 65322 1920 LD A.4 65454 262® LD A,8
1230
65184 LD B, A 65324 1930 CALL RAND 654S6 263® CALL RAND
1240
65185 CALL DRAW 65327 1940 LD C, A 65459 264® LD B, A
1250
65168 LD A,(PPJ 65328 1950 LD B, 0 65460 265® C.0
1260 LD
65191 CP 0 65330 1960 CALL DRAW 65462 266® CALL DRAU
1270
65193 JP NZ, UP
1280 65333 1970 LD A, ( II ) 65465 267® LD A. ( I I )
65196 LD A.2 65336 1980 INC A 65468 2680 INC A
1290
65196
1300
C A L L RAND 65337 1990 CP 50 65469 269® CP 128
65291 LD B, A 65339 2000 RET
1310 Z 6S471 270® RET Z
65202 LD A,(HT)
1320 65340 2010 LD (II).A 65472 271® LD ( II ) ,A
65205 1330 SUB B 65343 2020 JP LOOPS 65475 272® JP LOOPS
65206 1340 LD (HT),A 2030 273®
65209 1350 LD B, A 2040 274®
65210 1360 LD A,(HN) 2050 REEDS 275® INIT
65213 1370 CP B 65346 2060 CALL IN1T 2760 ;Transparent paper
65214 1380 CALL NC,SyAP2 65349 2070 LOOP6 LD A,2 65478 2770 LD A. 248
6S217 1390 CONT LD A.( I I ) 65351 2080 CALL RAND 65480 2780 LD (MASKT
65220 1400 INC A 65354 2090 LD (MN),A 2790 ;Sei counter to zei
65221 1410 CP 128 65357 2100 LD A.7 65483 2800 XOR A
65223 1420 RET Z 65359 2110 CALL RAND 65484 281® LD ( II >.A
65224 1430 LD (II),A 65362 2120 ADD A, 1 65487 282® RET
65227 1440 JP L00P4 65364 2130 LD (MX),A 23696 2830 HASKT EQU 23696
65230 1 4 5 0 UP LD A.2 65367 2140 LD A, ( II ) 8933 284® PLOT EQU 8933
65232 1460 CALL RAND 65370 2150 LD C, A 65000 285® DRAU EQU 6500®
65235 1470 LD B, A 65371 2160 LD A,(HN)
65236 1480 LD A.(HT) 65374 2170 ADD A. 119
65239 1490 ADD A.B 65376 2180 LD B, A
65240 1500 LD (HT),A 65377 2190 CALL PLOT
65243 1510 LD A.(MX) 65380 2200 XOR A
65246 1520 LD B, A 65381 2210 LD C. A
65247 1530 LD A.(HT) 65382 2220 LD A. (MN) 65013 2860 R A N D EQU 65013
65250 1540 CP B 65385 2230 LD B, A
65251 1550 CALL NC.SUAPl 65386 2240 LD A.(MX) Pass 2 e r r o r s : 0 0
65254 1560 JP CONT 65389 2250 SUB B
65257 SUAP1 LD A, B 65390 2260 LD B. A Table used : 278 fro» 367

ZX Computing Monthly • April 1987 35


M example, if you want your 4 will do a demonstration job, much anxiety. Of course these
picture to appear as though cycling through the 256 pictures backgrounds won't do on their
night had fallen you could POKE as you press a key. You'll find own, but arranging a few sub-
65137,1. This would change the that production of the pictures is routines to print up the shapes of
paper for the top 5 strips (the now quite fast enough for the castles, huts, and the like, in
"sky") from cyan to blue. To turn system to be useful — and very blocks of character squares isn't
the "lake" into a "marsh" you considerably faster, in fact, fhan difficult, I have a little designer
might POKE 65138,4 - and so on. we'd have managed if we'd program to deal with this, which
All that now remains to be stuck with the RND routine stores the graphics for buildings
done is to "translate" each of normally used. The price of this in an alternative character set
the separate graphics routines improvement In speed is just the so that they can be printed up
into its assembly language 256 bytes needed to store the using RST 16. But that might be a
equivalent, and I've done this in random number table, which I job tor some future article, and
Listing 3. Although this isn't think you'll agree is a very in the meantime you'll doubtless
annotated (if it was it would take acceptable bargain. have your own ideas about ways
up far more space than it's As you'll see. the graphics of using the random back-
worth) I've stuck as closely as I routines themselves take up very grounds. Couids yours be the first
can to the BASIC in Listing 1 so little memory, and you can adventure to use
that you should be able to afford to add to these without "RANDSCAPING", perhaps . . . ?
follow it without too much
difficulty. In any case you'll
almost certainly want to tinker
with these, adding your own
extra routines and possibly
Listing 4
making the existing ones look 1 REK **BASIC DRIVES P R O G R A M * *
more interesting on screen. If 2 REM
you want to run the whole thing BORDER 0: CLEAR 64743: LOAD ""CODE 65000
4 REH ***SET UP RANDOK NUMBER TABLE**
just as it stands, then simply 5 KEN
assemble Listing 3 at the end of 6 FOR 1=64744 TO 64999: POKE l.INT (255*RND): NEXT 1
Listing 2, leaving out the ORG 7 LET n=0: REM **!NITIALISE COUNTER
65140 Instruction and the PLOT. 8 REK **KAIN LOOP**
DRAW, and RAND label 9 SEN
definitions at the end. 10 LET n=n+l: POKE 65057.n: REM **UPDATE PICTURE C O U N T E R
15 INK CLS : RANDOMIZE USR 65059: REM **BACKCROUND PAPER
20 PRINT AT 1. 17;"PICTURE NUMBER"i AT 3,24;n
Picture demo 30 INK 0: R A N D O M I Z E USS 65140: REM **M0UNTA1NS
35 INK 7: R A N D O M I Z E USR 65300: REM **LAKE
Once you've assembled the 40 INK 4: RANDOMIZE USR 65346: REM **REEDS
code and saved it (and don't 45 INK 0: R A N D O M I Z E USR 65407: REM **GK0UND S P E C K L E
50 INK 4: RANDOM 1ZE USR 65442: REM **GRASS
forget that RND table, whatever 6 0 PRINT *1;AT 1,9; FLASH 1;"NEXT PICTURE?' PAUSE 0
you dol), you'll need a little 70 GO TO 10
BASIC program to drive it. Listing

ARE YOU A BUDDING


PROGRAMMER? |jl
is always looking for top /
•B, Am t A

quality games and utilities for MUTP®,


publication. If you have a top n
notch game or a useful utility for l«PJWk
the Spectrum or QL why not vl/JLL^
send it to us for appraisal on
cassette or microdrive complete
with a listing if possible. (
j
r
M
^ ISr
There is also our new feature \A
Short Cuts to showcase your
practical, novel or imaginative
short routines with cash prizes for
published listings. For longer
programs we pay competitive I
rates, and if you have an idea
for an article or series for ZX —
drop us a line or phone Bryan or
Cliff on 01-437 0626 to talk it over.

36 ZX Computing Monthly • April 1987 36


SPORTS SIMULATION OFFER

S p o r t s simulation fans can pick


up three games for the special
prive of £9.95 in this ZX readers
offer organised in conjuction
with Argus Press Software
The most recent release is
Peter Shllton's Handball
Maradona a football simulation
with a difference as it puts you
In the boots of the goalkeeper
with the challenge of keeping a
clean sheet in practice games
and league matches at a
variety of skill levels.
Nick Faldo*s Open gives you
the run of 900 screens and 18
holes as you play round a
faithful simulation of the course
at Royal St George's. The
package comes complete with
a fully illustrated guide to the
course
American Football is an
animated grid-iron simulation for
one or two players featuring all
the elements of the real game —
passing offense, running,
defence and kicking to create a
blend of on field action and
strategy. Argus Press Software Sports Offer
Now these games are Please send me Handball Maradona. Nick Faldo's Golf and
available by mail order for just American Football.
£9.95 Including postage and 11
packing. Do not send your Name:
cheques or postal orders to the 11
ZX address but to the address on 11
the coupon on this page Make Address: G
cheques and postal orders
payable to Argus Press C/i
Software. I enclose a cheque/postal order for £9.95 including p8tp payable a
But if sports simulations don't to Argus Press Software. u
appeal to you don't despair this
is just the first in a series of
special offers featuring Argus
Send your remittance to: Argus Mall Order (ZX), Units 1&2, C
<
Conlon Developments, Watery Lane, Darwen, Lancashire
Press Software games and
forthcoming offers will feature
BB3 2ET. u
war, space and arcade games.

37
ZX Computing Monthly • April 1987
Fruit m a c h i n e s i m u l a t i o n s 5 1 i 10 I f p e l I 4 0 I [ i « « Somebody somewhere thought
Inevitably lack the excitement it would be a great idea to
of the real thing. On the plus GRHBLE base a game on the trials and
side you can't lose your shirt but H IGIIER « LOUER COl I ECT tribulations of a software distri-
on fhe other hand you're nof 5RKE i- TRKE bution company. With such an
going to walk away with your inspired concept as a starling
pockets bulging with loose point this game was always
change Without the thrill of the going to face an uphill struggle
gamble the simulation Is ulti- to succeed. Nonetheless great
mately — fruitless. That being games can spring out of lack-
said Dizzy Dice manages to be lustre notions — unfortunately
slightly better than most games Wlbstars Isnt one of them.
of this kind so If you want a Wlbstars Is three mini games
harmless Imaginary flutter this .tacked together. Firstly there's a
might be worth a whirl especi- very rudimentary game In
ally at a budget price which you must gef your van
The presentation Is bright under the rlghf chute to receive
and full of activity once the the goods due for despatch.
fruits are rolling. A touch of 05E Secondly there's a brief arcade
diversity is added to the usual section, where your van is
game with the opportunity to displayed from a blrdseye view
gamble your winnings on a rou- Dizzy Dice is about as good going along the road. In front
lette wheel or on the throw of a a game as you'll get in this un- is a van from a rival firm which
dice (guessing whether it will adventurous genre but purists jettisons debris into your path.
be higher or lower than the will notice a glaring Inaccur- All you have to do is avoid the
previous throw). acy. When they are about to run junk thrown at you. The climax
Starting off with $10 you must out of coins, the machine will of the game is a platform and
conveyor belt scene — man-

IJuul)
turn if Into $100 thus breaking suddenly turn benevolent and
the bank. You then move on to give you four fruits in a row and oeuvre your goods up the
try breaking the bank at higher a hefty payout, just to keep you screen, avoid the hazards and
cash limits. In the game you can finally get your goods
to market. As a screen from a
platform game It works reason-
ably well but there's only one.
AGENT
has vast supplies of weedkiller to the mothercraft. That's about
with which you can rid the the extent of the gameplay — Any platform game you could
mention hastarmore screens of
ORANGE galaxy of weeds. Apart from
agriculture there's an element
there's a little bit of everything
but no highly addictive feature at least equal complexity.
A'rrT of trading — on returning to Agent Orange Is a n Wlbstars three games do not
U.9S your home planet you can interesting attempt to try stand up either on their own or
cash In your crops and buy a something a bit different but the when thrown together In this
This is the famous "life" program bigger ship The main action idea of combining "life" with order. A poor release which is
of m u l t i p l y i n g cells trans- however takes place on the arcade action sounds a lot below the standard of much
planted and grafted onto an uncultivated planets where you better than If plays in practice. budget software
arcade game The result is a pilot your tiny ship out of the
farmers Tr> space foray with mother craft and set about
liberal doses of sowing, reaping seeding the surface There are
00 and zapping. alien fighters fo avoid and
destroy and indigenous weeds

1)881)
The aim of the game is to
5 that will choke your harvest,
CiMAM:
establish plantations on alien
planets, there are eight to counteract these threats,
conquer and the final planet harvest your crops and fly back ij i i

ftJMff
i J8St*
s<
o ' y*
• • • •
• *

114

o (00»»<>0<>0<KH <m a

CO
quite a few full-price titles. The
M
trouble Is that the business of
finding all those herbs and
ninaniiiin
things goes on a bit too long, so
that Instead of getting down to
the serious business of trans-
mogrifying each other, you
spend most of the time wan-
Released on yet another ot dering around bits of forest and
Mastertronic's labels (Bulldog) along dead-end pathways look
Feud is a promising looking Ing for flashing flowers. Finding
game thai doesn't quite come the herbs ought to be just the
up with the goods. build-up to the big fight, but as
The plot has possibilities — It is It takes so long that the
you play a wizard named action gets slowed down and
Learic who is involved in a feud drawn out, making the game a
with his brother Leanoric, who lot less addictive than it could
also happens to be a wizard. be SCALE'fC*fRIC
Being wizards their feuding Still, It is very nicely
involves much turning of each presented, and while It's not a |MPH |MPH
other into frogs, blasting with budget classic It Is a fairly
fireballs and the like But before respectable effort.
the spell throwing you both
hove to collect the necessary
herbs and Ingredients to
prepare the spells.
may have been an idea to
Graphically the game Is
very slick. Learic is quite a large SCALEXTRIC
Virgin/Leisure Genius
change the Scaiextric formula
and include a larger Held of
figure very well animated as ne cars, weaving your way through
wanders around in his monk's £9.95 back markers can be just as
habit, and on the whole the
graphics compare well with uuulJ Scaiextric arrives on the
Spectrum as a sophisticated
satisfying as winning.
One area of racing that has
at last got some attention Is
construction set with almost crashing. In most simulations
limitless possibilities for whatever happens In one
designing your own tracks as player mode Its always your
well as 17 pre-set simulated fault and you are eliminated,
Formula 1 circuits. whereas in Scaiextric the rule Is
Constructing a circuit Is that the car approaching from
behind Is always the loser, but
f£L
simplicity Itself with an Icon
driven system and there is the if the difference in speed
option to save the tracks you've between the two colliding cars
built. Racing takes place on a is less than 20 miles an hour

fm
split screen display where you there's no crash — the front car
have the option to race in two is just shunted along the track.

w
player mode or against a com- A good value package only
puter controlled car. There's lacking the competitive edge
also a plan view of the whole that comes from having a grid
circuit which plots your position full of cars racing round the
during a lap — a useful aid track.
jMik&fldlll 1 when trying to anticipafe sharp
bends.
W*1*E • This computer simulation
offers plenty of variety as far as
tracks are concerned but be-
cause every race is just a two
car race the racing action can
become stale very quickly. It

platforms on each of the games


20 screens, and, as 8utch, you
have to leap from platform to
platform, kicking the cage
doors open and enabling the
prisoners to escape to Butch's
helicopter (see, I told you it was
a platform game).
It's wild: It's wacky! It's, no It Isn't, Once all the prisoners have
yes It i s . . . it's a platform game escaped from a screen you
Butch Hard Guy Is. believe It can then start on the next one,
or not, a spoof of the recent but there Is of course a slight
spate ot Ram bo, Commando snag. Each screen Is patrolled
Cobra types of game — In other by Dr. Fu's robot guards, which
words it's just another combat are coated In a poison which
game with a few funny names kills on contact. Not only can
thrown In. Spoofs are meant to these robots kill Butch, they can
be funny, but In this case the also recapture the prisoners
hilarity begins and ends with which means thai he'll have to
the names of Butch himself and go back and rescue them
his opponent, the evil Dr. Tie Fu again unless he's very fast. You
(that II have 'em rolling in the can defend yourself from the
aisles). Once you've recovered robots by either p u n c h i n g
from the rib-spllttlng uproarlous- them, which just makes them sit which made the game so addictive that I particularly
ness of all that you ve got noth- still for a second or two, or a llttTe irritating at times. The wanted to
ing left to do but play the game kicking them, which can blow twenty screens are arranged In
Butch Is an old war veteran them up (but you'll have to gel a fixed order and you'd have to
whose task Is to rescue a num- out of the way or be caught in be amazingly quick-fingered to
ber of other vets who have been the blast). get to the end (and the game
captured by Tie Fu and locked The movement of the robots wont accept Sinclair Interfaces,
up in his castle In the south isn't predictable and I found so if you've got one, or a +2
Pacific The cages that they've that you could attempt to hit then you'll have to use the
been locked in are situated n one of them and still end up keyboard), but the game wasnl
TERRA
Imagine
CRESTA
£7.95

Another arcade conversion


from Imagine, this time of a
space shoot 'em up that re-
minds me a bit of Gargoyle's
Llghtforca You control a space-
ship flying over the scrolling
surface of a planet guarded
(stop me If you've heard this one
before) by wave upon wave of
aliens who will swoop out of the
sky and try to blow you all over
the place Plus, at the same
time as dodging and firing
back at the aliens you've also
got to destroy the weapons silos
on the ground which are add-
ing to the fun by lobbing
bombs into the sky
Needless to say. all this sky-
borne action keeps you very
busy, but as you pick off the silos
you are rewarded with addi-
tional weaponry that helps you
blast your way through to the
final stages of the game where
you'll probably be trashed by a
huge robot-ship
It's all fairly standard shoot
'em up action, professionally tables As a result the graphics of the screen for playing It — as
presented but not exactly ooz- In the small playing area, it stands it looks a bit like you're
ing with originality, for some though reasonably well drawn, only getting halt a game since
reason (probably to keep the are pretty small and require one half of the screen is virtually
conversion as faithful as pos- close attention to keep an eye useless.
sible to the arcade original) the on what's happening. I know it There are no major faults In
playing area occupies only the might mean a less faithful con- Terra Cresla but without a bit
right-hand side of the screen, version, but it might have made more originality it's not likely to
while the rest is occupied by a slightly better game if the pro- take over as anyone's favourite
the Terra Cresta logo and score grammers had used the whole shoot 'em u p

-A " M J When It comes to sports simula- long wait while the machine at once you've accomplished
tions. authenticity can be a the end of the lane sweeps that It becomes very much like
drawback. This ten pin bowling away knocked over pins Auth- top level darts, It's more of a
10th FRAME
US Gold
game replicates the tedious
features of the game while fail-
enticity could certainly have
been sacrificed to avoid the
surprise when you miss than
when you hit the target. Even
£9.95 ing to exploit the excitement of pauses especially as even when you get a strike It's very
the actual gama Tedious real- during the action this game is low key — no flashing lights or
istic features include a painfully still in the slow lane whistles
Controls are keyboard only The animation, such as it is.
and there is no computer oppo- is good and the graphics are
nent so you've either got to be fair and although it will suit
content on improving your own those who are ten pin bowling
score over the three difficulty fanatics the Impulse buyer may
levels or strongarm some friends find It repetitious and over-
into joining in (up to eight priced.
players).
The skill factor comes In
during the aiming and throw-
ing of the ball, direction is
selected with a cursor and
speed and accuracy by testing
your reactions on a moving bar
diagram at the bottom left of
the screen. This indicator also
determines the amount of
"hook" you put on the ball. A
bad error of judgement means
that the ball will generally spin
into the gutter about a third of
the way down the alley.
Mastering the refinements ol
the game takes some time but
BY ALAN DAVIS
FIRST STEPS INTO
•_ast month I described what I

Listing 1
hoped was a painless method of
making the often traumatic
transition from BASIC to machine
code programming. If you've
had a go at it, then I hope It i REM * * * BASIC "MASH" R O U T I N E * * *
proved successful for you — but I 2 REM
8 REM *** DRAW P A T T E R N ***
must confess that I'd feel a little 9 REM
guilty if we just left It at that. 10 C L S : FOR 1=1 TO 96
Those who are left scratching 20 P L O T 127.87: DRAW 8 0 * S I N ( P I * 1 / 4 8 ) , 6 0 * C O S (PI*l/48>
their heads and wondering 30 N E X T 1
"How do I get from here to 3D 3 7 REM
sprite graphics?" might, with 3 8 REM *** PICK UP INK A N D P A P E R C O L O U R S ***
some justification, feel somewhat 3 9 REM
dismayed! So here goes with a 4 0 P R I N T # 1: AT 0 , 0 ; " P a p e r c o l o u r ? (0-7)*
5 0 CO S U B 2 © 0 : LET p a p e r = V A L 1*
second instalment. The 3D sprite 60 P R I N T * 1;AT 0 . 0 ; " I n k c o l o u r ? (0-7>"
graphics are still a bit far off, but 7® G O SUB 2 0 0 : L E T lntc=VAL i»: IF ink=paper T H E N G O T O 7®
I hope we can get a few steps 7 7 REM
nearer without offending the 7 8 REM * * * MOM "MASH" T H E S C R E E N IN T H E C H O S E N C O L O U R S ***
purists too badly. 79 REM
80 FOR 1 = 0 TO 7 6 7

Screen routine 90 POKE 22528+i.ink+8*paper


100 N E X T i
1 10 BORDER p a p e r
What I want to do In this article 120 G O T O 4 0
is to build upon the ground that 197 REM
we cleared in the first one and 198 REM * * * PICK UP A K E Y P R E S S * * *
Introduce a tew new concepts 199 REM
200 P A U S E 0: LET i » = I N K E Y * : IF t*<"0" OR 1*>"7" THEN GO TO 200
(but not too many). In so doing,

o
210 PRINT «1;AT 0,0,,
we'll actually be able to write a 220 RETURN
rather useful little screen
manipulating routine. The
programming won't be elegant,
it won't be economical, and it'll

o
Listing 2 give Toni Baker hysterics — but
It'll be simple (very), and it will
work pretty well. Just to whet
your appetite, take a look at
Listing 1 — or, better still, drag
Use of t h e HL register pair the old Spectrum out of its
to " p o i n t " to an a d d r e s s . corner and spend a couple of
minutes typing it in, When you
RUN It, the program will draw a

a
65368 10 ORG 6 5 3 6 8 pattern on the screen and ask
65368 20 LD H L , 2 2 5 2 8 you to set the PAPER and INK
65371 30 values. If you respond in each
LD A , ( C O L O U R ) case with a number between 0
65374 40 LD ( H L ) , A and 7. the screen will be
65375 50 RET coloured in from top to bottom
in the new PAPER and INK
C
65376 60 COLOUR DEFB 7 colours, leaving the original 2
pattern completely Intact. You've
probably seen this sort of thing
1 before — it's often called a

Listing 3 ^^^M
"wash" routine, and it would be
1 a useful addition to any
graphics designing program <
since the Spectrum doesn't have C
A simple "count ing" loop an inbuilt BASIC command to do
it. The trouble is that, as you may i
ORG 65368
have noticed, it's very s-l-o-wll
We don't have to look far to C
65368 10
find the reason for this snail's c
65368
65370
20
30
L D A, 0
LD (COUNT),A
pace. It lies In lines 80, 90 and
100, where the program loops all
c
65373 40 LOOP LD A , ( C O U N T ) the way through the screen
65376 50 CP 255 attributes area of memory,
poking Into each address the
65378
65379
60
70
RET Z
INC A
appropriate value for the current
choice of INK and PAPER. Since c
there are 768 character squares h
65380
65383
80
90
LD ( C O U N T ) , A
JP LOOP
to be coloured, it's not surprising C
that this takes bit of time.
Wouldn't it be nice if we could
u
65386 100 C O U N T DEFB 0
replace lines 80 to 100 with a G
O

41
ZX Computing Monthly • April 1987
LRU
FIRST STEPS INTO
machine code routine to do the now comes the clever bit, and a COUNT. This is just to make sure
same job instantly? After all, the new Z80 instruction: LD (HL),A. that the counting of the loops
Spectrum's screen attributes area This means "put the number does actually start at zero. At
is just a section of memory like held in the A register into fhe line 40 we enter the loop Itself —
any other (It occupies the 768 byte of memory whose address and I've used the label LOOP to
bytes from address 22528 Is held In the HL register pair." In mark this point in the program;
onwards), and as we know, our case, this results in the we'll see why in a moment. Here
shoving numbers around like this number 7 being stored in we put fhe current contents of
is something that the Z80 is very address 22528. Then, finally, line the COUNT byte into the A
good at. So this is what we're 50 returns us to BASIC register (zero on this first pass, of
going to attempt. Now you might be thinking course), and line 50 then
"but why don't we just use the confronts us with another new
Registers instruction LD (22528),A instead of instruction: CP 255. Think of this
In the previous article we dealt alt this messing about with HL?". as meaning "ComPare the
with the Z80's registers only one But don't worry about that for number in the A register with
at a time, but a single register now — all will be revealed In 255". Now obviously the Z80 can't
can hold only numbers up to due course. Meanwhile, you actually "compare" two numbers
255, and to write our "wash" might like to try out this little in any intelligent sense, but it
routine we'll need to be able to routine for yourself. To do so, can do a simple subtraction of
handle numbers larger than this. assemble the code and return to one from the other — and if the
Fortunately there's a simple BASIC NEW the Spectrum (which result of the subtraction Is zero,
solution. We can store larger will still leave the machine code then clearly the numbers are the
numbers by using TWO registers, intact in the UDG area) and same. So the outcome of the CP
and the Z80 has a large set of enter the command PRINT AT 255 instruction will be
instructions for handling pairs of 0,0!'A" to get the letter "A" in the "remembered" by the Z80 as
registers for just this purpose. Two top left character square. Now either ZERO or NOT ZERO.
registers which are paired type RANDOMIZE USR 65368, (Incidentally, this result is stored
together are the H and L and abracadabra — the "A" will In a single bit of the F register
registers (other common pairings still be there, but in white INK on called the "zero flag", but you
are D/E and B/C). and an black PAPER. Try poking a don't really need to worry about
Instruction for loading the HL different value (8xPAPER+INK) into that here). The contents of the A
pair with a number takes the 65376 (COLOUR), and do register are unchanged by all
form: RANDOMIZE USR 65368 again. It this.
really does work, doesn't it? So I think you'll see that here we
LD HL,515 all we need now is to repeat the have the possibility of
What's actually happening here? process 768 times to change the conditional actions. We can
Well, the number 515 is In fact colours for the whole of the make the program perform one
being split into two separate screen; in other words, we need action in the event of a ZERO
bytes. One of these - the "H"igh a program loop. result, and another If we get NOT
byte — stores multiples of 256, ZERO Which brings us to line 60
and the other — the "L"ow byte Loops — and you can probably guess
— stores whatever remain. So In Forget our present problem for what "RET Z" means: "RETurn if
this case the H register stores the the moment, and let's consider a the result is Zero". In other words,
number 2 (2x256=512) and the L simpler one How can we make if the number held in the byte
register stores 3 (i.e. 515-2x256). the Z80 simply count a specific COUNT turns out to be equal to
It's easy to discover the biggest number of cycles (say 256) and 255, the program will return to
number that can be stored in then "return to BASIC'? In other BASIC On this first pass, of
this way: if both registers contain words, can we write the course, COUNT contains zero — it
255, then we have equivalent of something like: isn't equal to 255. So the
o 255+255x256=65535. However, we program moves on to the next
z don't really need to cope with
this In detail at present; it's
FOR 1=0 TO 255: NEXT I
Well yes we can. There are
instruction, line 70. Here the A
register is increased by 1 (we
enough just to appreciate that dealt with INC A last month),
s any number of 65535 can be
several ways of doing It, in fact
— and Listing 3 is one of them. and then line 80 causes this new

<
loaded into the HL register pair. There are better methods than number to be deposited In
We're now in a position to this one, but this method COUNT. After the first pass, then,

oe
take a look at Listing 2. which is perhaps sticks closer to the COUNT will no longer contain
an assembly program for concepts we already know; zero but 1. Finally, at line 90, we
changing the attributes of the actually, a better equivalent as encounter a "jump" instruction:
first character square on the JP LOOP. This tells the Z80 to go
O a BASIC subroutine would be:
back to the instruction labelled
o
oe
screen (top left hand corner).
We'll be storing the machine 10 LET COUNT=0
20 IF COUNT—25=0 THEN
"LOOP" and carry on from there.

a.
code In the user defined I think you can follow the rest
graphics area, and the ORG RETURN yourself. The program will cycle
directive at line 10 tells the 30 LET COUNT=COUNT+1 round and round, increasing the
assembler to do this. Line 20 40 GOTO 20 contents of COUNT by one each
2 loads the number 22528 (which
is the address for the start of the
What I've done in Listing 3 is to
set up a single byte (COUNT)
time, until eventually it contains
255. When this happens, line 60
attributes area, remember) Into will cause a return to BASIC
which will serve the same
the HL register pair, and line 30 purpose as the counting This is the most complicated
loads the A register with the variable In the little BASIC loop bit of programming we've
O contents of the byte labelled
COLOUR (see line 60, where the
above. The program proper starts
at line 20, by clearing out the
attempted so far, and it's worth
making sure that you understand
111
Q.
defined value of 7 corresponds contents of the A register, and just what's going on before
to white INK and black PAPER). line 30 then dumps the result proceeding further. If you get
CO This much Is fairly obvious — but (zero) into the address labelled lost, refer back to the little 4-line

42 ZX Computing Monthly • April 1987 42


LUIA
MACHINE CODE
BASIC loop counter for help. The use the routine three times in
parallel between that and the succession, with HL initially

Listing 4
assembler program Is very close. containing 22528 for the first run,
Happy? Good — because 22784 (22528+256) for the
we're now very nearly home and second, and 23040 (22784+256)
dry. ff we combine Listing 2 and for the third and final run. But we
Listing 3, with just a very slight don't need to type in the whole
(but crucial) addition, we have a thing three times, because the "Washing" the top third of the
routine (Listing 4) which will Z80 allows us to use the screen •
perform a "wash" over the first equivalent of a BASIC subroutine
256 character squares of the using the CALL instruction. Listing 65368 10 ORG 65368
screen. Lines 20 to 40 set up the 5 — which is, at last, our ultimate 65368 20 LD HL,22528
initial conditions (put first goal — shows how It can be 65371 30 LD A,®
address of attributes area into done fairly painlessly. What I've
HL, and zero the counter) and done here is to take the whole 65373 40 LD (COUNT),A
then the loop is entered. The A of Listing 4 (with the initialisation 65376 50 LOOP LD A,(COLOUR)
register picks up the "colour" of HL removed), and attach the 65379 60 LD (HL) , A
(line 50) and transfers it to the label "WASH" to It - as you can 65380 70 LD A,(COUNT)
address which HL points to (line see at line 90 of Listing 5. This 65383 80 CP 255
60) Then we check the counter now forms a subroutine which 65385 90 RET 2
(lines 70 to 90) increase it by one can be called using CALL WASH.
(line 100) and store the new 65386 100 INC A
The main assembler program 65387 1 10 LD (COUNT),A
count (line 110). Now comes the then becomes the sequence of
crucial addition I mentioned. It's instructions from lines 20 to 80, In 65390 120 INC HL
a new instruction, but you'll which HL Is given the 65391 130 JP LOOP
know exactly what it means: INC appropriate initial value, and 65394 140 COLOUR DEFB 7
HL (iine 120). This increases the the subroutine WASH called 65395 150 COUNT DEFB 0
number held in HL by 1 — so three times before the return to
that HL now "points" to the next BASIC is made at line 80. Just
address in the attributes file. Line one further point may puzzle you
130 causes a jump back to the like, save the machine code
here: why is It that previously the bytes thus produced (SAVE
instruction labelled LOOP, and RET Z Instruction has caused a
the whole process is repeated "wash" CODE 65368,44). NEW the
return to BASIC whereas now it Spectrum (which leaves the
over and over again until 256 no longer does? The short
cycles have been completed, machine code still intact in the
answer — which is all we have UDG area), type In Listing 1
causing a return to BASIC at line space for — is that in this case it
90. again — and just for fun, run it
was preceded by a CALL once more to remind yourself
Can you see now why we instruction, and the Z80 what life used to be like before
used the apparently roundabout "remembers" where to carry on you were a machine code
routine in Listing 2? By storing from after it returns from a wizard. Tedious, eh? Now BREAK,
the current attribute address in subroutine. Incidentally, just as delete lines 80, 90, and 100, and
HL. we can simply "point" the every BASIC subroutine must end add the following BASIC lines:
routine to the next address by with a RETURN sooner or later, so
using the INC HL instruction every machine code subroutine 80 POKE 65410,ink+8*ipaper
repeatedly as we go round the must somewhere terminate with 90 RANDOMIZE USR 65368 36
loop. a RET. Now RUN the program. Wait for
Listing 4 will indeed work — the pattern to be drawn; choose
but of course it will only wash Run your paper colour; hold your
the top third of the screen. What breath . . . then choose the
about the other two thirds? No Now let's make it all work. ink . . , 0
problem. All we need to do is to Assemble Listing 5, and if you Magia
z
1
Listing 5 1 2
<
Complete screen "wash ". a
65368 10 ORG 65368
65392
65395
1 10 LOOP
120
LD A,(COLOUR)
LD (HL),A
(5
65368 20 LD HL,22528 65396 130 LD A,(COUNT) 0
6537 1 30 CALL WASH 65399 140 CP 255
65374 40 LD HL,22784 65401 150 RET Z
65377
65380
50
60
CALL WASH
LD HL,23040
65402
65403
160
170
INC A
LD (COUNT),A s
65383 70 CALL WASH 65406 180 INC HL a
65386 80 RET 65407 190 JP LOOP
65387 90 WASH LD A,0 65410 200 COLOUR DEFB 7
C
w
a
65389 100 LD (COUNT),A 6541 1 210 COUNT DEFB 0

«/!
ZX Computing Monthly • April 1987
mil
Activision's latest casts
the hacker as hero.
HACKER 2 seeing, and sneak your MRU in
unnoticed. You have to check
nilK H L E M I ' i H H V f III I N H H L E H I Pt H C E 3 several things at once, so the
H D H I L E REMOTE U N I T S f HHII' 5 J III T H I N MFSM has four screens.
T H E H I L I T H R V C O M P L E X . f HI H MRU MRS
H E C K E Q U I P P E D U I 1 H H R t Mil T E O P T I C H E Sounds complicated? I've
HNHLVZER ( R n m FDR THE E X P R E S S simplified it considerably!
P U R P O S E OE CRT H E R I HE INTELLIGENCE. Hacker 2 Is an extremely
complex piece of software; It's
difficult too, and challenging,
though not especially
Intellectual. Quick thinking and
intelligent mapping are
required. What makes it so
unusual is the incredible
R E H n V E R C O P V OE T H E D O C U H I N I HHRRED attention to detail. For example,
"CLASSIFIED* F R O M T H E V R t l l . T HMO you have to set the vertical hold
DELIVER IT TO DOR HEFMT U R I I I N G HI on each of the TV screens. The
THE E N T R H M C E . P I E C E S OE THE MHOLT'S video simulation is so authentic
C D H H I H R T I O N HRF H I D D E N I N H I I L I HE
CRHINETS. T H E R E C E S S C O D E I D O N E OF you even get noise bars when
I ME C R H I N C T S I S ' R E D /*. you fast forward. And the CIA
(RETURN)! manual Is convincingly
confusing (not that I've ever seen
a CIA manual). Real efforts have
The MFSM Is linked by satellite to been made with this game to
create realism: something very
Hacker 2: The CIA's central computer, which is
rare with British software.
connected by modem to your
Doomsday Papers computer. On your screen you The few animated graphics
Activision see a mock-up of the MFSM. are adequate rather than
£9.99 Security at the base is not so stunning (slightly chunky);
slack that MRUs can wander otherwise Hacker 2 Is perfectly
cassette labelled Actisource, around undetected. Guards executed. Patience Is required,
an incomprehensible technical patrol the corridors, and there but It does pay off. Instability is
manual and no instructions are thirty-eight security cameras questionable, but I reckon this
would not seem the obvious scattered around. Two electronic will provide value for money for
beginnings for a great game monitors flick through these most people. Activision's
But to my great surprise, these successively, checking that no Spectrum conversions are
ingredients make Hacker 2 one unidentified objects are in the usually lacklustre aflairs
of the most sophisticated picture. With the MFSM, you can (remember the lamentable
releases I have played for ages. view what any of the 38 Ghostbusters?), so congratula-
It's American, of course. cameras see. what either tions are in order; at last they
In this game's prequel, you monitor is registering, or a plan have created a winner!
hacked your way through of the Immediate area
numerous obstacles to prove surrounding the MRU. The clever
yourself one of the world's finest bit is, the MFSM also Includes 38
hackers, but your endeavours video channels. If you
did not go unnoticed. Loading synchronise correctly, you can
the Actisource tape, you log on bypass a camera with a
to what seems a normal enough recording of what it should be
Micronet style service — until tne
menu is interrupted by a
message from the CIA! As the
leading expert on breaking
security systems, they have a
mission for you. The Russians
have developed a simple but
devastating plan to topple the
US government (trust those
scheming commies). The details
are enclosed in a document —
'The Doomsday Paper" (sort of
thing the Ruskies would call T (.?» - ERM I IV*
such devious plans). Your task is
to retrieve these papers from the

g
military complex in Siberia
(where else? As you may have
guessed, I do not entirely
approve of the typically
paranoid American scenario).
How can you do this, if you're
sitting in front of a screen back
home? Via the miracles of
modern technology, that's how.

o
UJ
Hidden within the base are three
Mobile Remote Units (MRUs,
droids at your disposal), and the
Q. Multi-Function-Switching Matrix
(MFSM), which controls the MRUs.
</>

44 ZX Computing Monthly • April 1987 44


MM
Now you can invite
Little Computer People
to take up residence in
your 128.

do nothing and just watch him


(yes, him, Hve yet to hear of any
sightings of LCP-esses which, by
implication, gives rise to all sorts
ot Interesting questions) wander
around, or you can send
messages or perform various
actions via the keyboard.
Left to himself, Drew seemed
perfectly happy to go about the
house cooking, listening to his
stereo, tinkering with his
computer or even doing
aerobics. You can sit and watch
for ages and your ICP will get
on with things on his own.
Watching this is a bit like
playing with worry beads —
ultimately pointless, but quite
calming somehow.
However, like all intelligent
beings, your LCP has certain
needs which have to be met —
food and drink have to be
supplied by you, via the
keyboard, and when he gets a
bit or lonely it's up to you to
cheer him up as best you can
(perhaps by playing cards or
anagrams with him).
There are certain actions
which you can always rely upon,
such as giving him a new book
or record to play, but there is
enough scope within the
program to allow you to
experiment and discover how
best to get on with your LCP just
as you would do with any other
person.
Remember though, that if you
neglect your ICP he's likely to go
green and take to his bead with
a terminal cause of the sulks, so
it's your responsibility to look
created a small home inside it, after him.
little Computer People empty and just waiting for Little Computer People is
someone to come along and thoroughly ingenious and a
Activision live inside. genuine oddity. It's an
£9.95 When you load your own entertainment of sorts, though it's
(128 only) "house' Into your 128 or Plus Two not a game. In a way It can
you are first of all presented with almost be described as the
a notepad into which you enter computer equivalent of
Originally sighted inside the your name, the date, and time of background music, except that it
Commodore 64 it now appears day. This, and other information offers you the opportunity to get
that the Little Computer People about your LCP is continually involved with what's going on. It
have started to crop up in other updated and carried over from can't be recommended to a
places as well, namely 128K session to session. specific audience in the same
versions ot the Spectrum Once we had gotten our own way that an adventure or
(apparently there's not enough Plus Two loaded up, we all found arcade game can be, but if
room inside the 48K models — ourselves sitting In front of the you've got a 128 or Plus 2 why
they may be Little Computer Spectrum, staring at the empty not say hello to a Little
People but they're not that little). house on the screen. After a Computer Person sometime. Who
But what are these little couple of minutes a small head knows, it could be the start of a
beings (ICPs as they are stuck its way around the front beautiful friendship.
sometimes called?). The first LCPs door, then an LCP entered to
were observed by American give the place the once over.
programmer, David Crane, who This was Drew, a cool looking
had suspected the presence of LCP sporting sunglasses and
tiny human beings within his bow tie, who proceeded to take
computer for some time when up residence (accompanied by
he created what he called a his Little Computer Dog). Once
'house on a cassette'. Loading your LCP is in, you've got a
this cassette into the machine choice: you can sit back and
scrambled letters of "Ranarama" the start of each game you are
Amphibian daring in back to the original word This is placed randomly somewhere on
a reflex test that calls for a keen a level — go through a door
the dungeon as eye and good co-ordination and the room you enter lights
with the joystick On each up As you progress round,
Hewson unveil a successive level the time limit is locate a "glyph of seeing"
lessened The style of lettering which will enable you to get a
sprawling magical epic can make it difficult to view of the entire level (but only
distinguish the letters at first but those rooms you've been in will
one quickly gets accustomed. If show up). On this map you may
you are in any way dyslexic be able to locate hidden doors.
however this part of the game In the dungeons themselves
could present an insoluble hidden doors can be found by
Ranarama puzzle. taking advantage of a neat
Hewson If you succeed in sorting out visual touch — figures peek their
£7.95 the letters in time, the action heads through the walls for a
fraction of a second revealing
reverts to the main screen where
the warlock has disappeared to where a door is placed.
be replaced by hovering runes As you would expect the
anarama follows the exploits which you must collect quickly dungeons are packed with
ol a rather luckless sorcerer's before Ihey vanish Amassing various nasties like serpents,
apprentice whose experiments these runes Is essential as they dwarf warriors and hideous
with the potions have can be converted into magic insects which require different
transformed him into a frog. The powers Inserted in fhe floors of levels of firepower to be
one advantage of his new found chambers are hieroglyphs with destroyed. These will all drain
form is that he avoids being a variety of functions — head for your energy but there is a floor
destroyed by an invasion of evil the "Glyph of Sorcery" and once glyph which can be activated
warlocks. As Mervyn you must try activated you can scroll through to clear a room of creatures. This
to wreak revenge on the the spells which are available to glyph is disposable so you can
warlocks and steal their magic. you with the runes you have. only use it once. Perhaps a
One each of eight levels ther Some spells offer powers that greater problem, are the
are 12 wizards to confront in won't come into effect until a magical weapons like spinning
combat. Once you've located a later level At you only have two swords and munching mouthes
warlock and hopped in his path lives it's best to concentrate on which make life especially
you are transferred to a sub obtaining spells that will get you difficult as they are impervious
game where bottle commences. beyond your present level. to attack. You con however
Adding sub games as an extra destroy the generators that
to the main action has become create them.
something of a Hewson Even if you have managed to
trademark in such games as Each of the eight levels contains light up all the rooms on a level
Paradrold, Quazatron and between 50 to 100 rooms and a you may not have found all the
Firelord and here we are faced very simple but effective system wizards, defeating atl twelve is
with an anagram game where makes the usual meandering essential to progress and as they
you must rearrange the round a lot more enjoyable. At pop up where they feel like it
you will need to save some of
your runes to purchase the spell
thai will reveal their location.
Panorama is a highly
accomplished example of
games programming with just
the right degree of zapping and
strategy. There are obvious
comparisons with Gauntlet and
other arcade adventures but
Ranarama has a character all
ils own as well as having all the
necessities — it's fast and furious
with a vast area and most
importantly it's very playable
and once you've got your
bearings, very addictive indeed.
MJ

The most authentic golf


simulation the
Spectrum has ever
seen.

S p o r t s simulations have been


In the doldrums recently so the
arrival of Leaderboard (a chart-
topping Commodore game) on
the Spectrum is cause tor
celebration especially as It's in
a different league to any
existing golf game.

authentic touch familiar to poor


putters occurs when you putt too
hard but on the right line and
the ball hops over the rim of the
hole
Graphically, leaderboard Is
excellent with fill-in' block
colours and a smoothly
animated playing figure The
perspective of the ball in flight
as it swings through the air is
most convincing and golf buffs
will uncover a lot of small details
that have been overlooked by
previous golfing games — such
as hitting the flag in the hole
from an approach shot.
Leaderboard is an exception-
ally good simulation which will
be lapped up by anyone with
an Interest in golf and by those
who enjoy a well put together
game.
The ultimate accolade for a
sporting simulation would be
that it was preferable to playing
the game itself and although
leaderboard can't quite
manage that, It's a very close
The list of options is high responsiveness to subtle thing.
undoubtedly Impressive — there changes in your play. Select the

i
are four 18 hole courses to play wrong club or apply too much
on plus a practice driving slice and you pay dearly as
range. Up to four players can your score threatens to expand
take part in a round and there off the scoreboard. On a lot of
are three levels of difficulty, holes, water hazards dominate
novice amateur and profes- and if this was real life you'd be
sional (where subtle shifts in spending a fortune in lost balls.
wind direction affect the flight of Pinpoint accuracy is essential all
the ball). Each player has a the way down to the hole. You

OSTIilt
choice of club (from an are kept up to date with the
o
III
available 14) and can adjust the
power, slice and hook in his shot
exact distance to the hole, even
down to the last few Inches so
by timing the drive against a that even a tap in can be a
Q. problem especially as most
</>
moving bar display.
The joy of the game Is the greens have a vicious slope. An H I T
THE DISC
COLU
John Wase presents another
selection of useful routines for
Discovery owners.
S ome months ago, a for two files. Line 2 creates a Since there are plenty of streams
correspondent was asking about random access file with a available, Chris finds it sensible
random access files and how to record length of four: that is to reserve some for writing to
handle them. He thought that three digits, plus one for the and others for reading from files.
perhaps the best solution was to ENTER used as a separator and Chris also warns, too, of using
set up a relatively short file of automatically inserted each CLEAR*: whilst uselui on
key numbers to be used as an time we print # to the fila This occasions for closing all streams,
index to manipulate larger files. gives 999 of these records plus it does what it says. Thus, it
When I wrote back, I pointed out an extra two at the end which clears out everything in all open
that this was a general disc are used as slots for storing streams, doing a Paul Daniels on
filing problem rather than a counters. Line 3 creates a further the record you were trying to
Discovery problem, but that he file of record lenght 63 (plus one send to the tile. So in routine
was on the right track. Now for the separator): because - 1 is "find", line 690, CLEAR # could
here's a short program that stipulated for the file size. It uses be used, but In the "delete
Illustrates the principle perfectly. one half of the space available record" routine which moves
on the disc, which is why the key-numbers in the index file,
index file was created first. Next, each stream must be closed
The Dreaded Telephone the positions used for storing the (line 760) to send the latest r$ to
List! counters are primed (lines the file.
As Chris says, this is a good The manual does not mention
Yes it is; once again I've got a illustration of the method that if you POINT # n;x and "x" Is
telephone list. This is by Chris Discovery uses to write to a not a valid number, you get the
Oliver of Barton-under- random access file. This part of "nonsense in Basic" report. And
Needwood, and took my eye the program is then no longer unless you are a very fast reader,
because It illustrated beautifully needed. you will need to control the
random access filing. It was scrolling when printing the
clear, It had clear contents of a file to the screen. A
accompanying noted and it Listing 2
The first thing this program simple variable is used in the
came with a disc. So let's look at "list-all" and "scroll" routines of
the program. Chris uses two must do is fetch the the example program.
random access files, a main current values of the counters
record file holding names, before manipulating or adding
addresses and numbers, and a further records, and this is done Improvements
file of key numbers, used as an In lines 70-90 which illustrate
index. The index number-keys clearly the method of reading The example program has been
must be filed as string arrays, from a random access file. And deliberately kept simple.
dimensioned so that, as in all this now covers the basis of the Improvements could include use
random access flies, each entry program; the rest is merely of subroutines for reading from
in a particular file is the same manipulation. or writing to random access files
length as the others. As Chris says, there are one or and use of an "inserting search"
two things mentioned only routine instead of the simple
briefly in the Opus manual progressive search could speed
Listing 1 which are worth emphasizing. things up. In addition, the crude
This program creates Firstly, you cannot get a stream "change record" routine could
and reserves space on the disc to flow in two ways at once. be replaced with an editing
routine, and an "Add-More?
option in the add item routine
would be helpful. Use of
Listing 1 machine code Insert and find
routines and/or the RAM disc
1 REM First croats the two R&ndon-Access Files:- Main file "directory" holds (particularly the big 128K one)
nwoi and phone nuabers; each record oan total up to 63 character*;
Index-file "index'' to hold nuabers up to three digits lorm i.e. 1 to 999
would also make things run
PLUS separators ! faster. Finally, I had a glitch in
2 OPEN *6,"'•"; J; "index RND4, 1001: CLOSE «6 the discs (which got an attack of
3 OPEN M ; "»"; 1; "directory'RND64, -1: CLOSE «4
4 REM The last two positions in the index file ( 1000 & 1001 > are reserved perpetual motion) or something
for counters (not dal*ations) and need prininf with Zeroes. while the program was running:
5 OPEN «7;"•-;1;"index RHD4
6 POINT «7;1000: PRINT 97,"000-
all innocent, I RAN it again. That
7 POINT *7;1001: PRINT »7;"000-: CLOSE «7 loses the files; this could be
e CLOSE »7: STOP avoided by having listing 1 as
9 REM ••«**«•«•**«•«•••«•»»**««•*»••*«»*•»»»*«•**•««•»***••«»««»*«•«•»•«*
an autorunnlng subroutine

ZX Computing Monthly • April 1987 49


jumped over in later program
repeats. Nevertheless, the
program works, works
satisfactorily and illustrates well
Listing 2
10 CLS PRINT "LOADING ""TELEPHONE DIRECTORY
random access files. 20 DEF FN Ct(it)=CHRt (CODE i»-(32»[CODE it>90)>>: REM Fool the computer into
thinking that you are entering CAPITALS, whether you a m or not.
30 DIM ft(63): DIH rt(3); REM tor 1 to 990 records, up to 63 characters each
40 LET retnnn-380 LET find=600: LET inaert=900: LET li«lt:999. LET duff=2100
An Alternative 50 GO SUB (000: REM load message strings
69 REM Fetch record-total and nnd-of-file values
"rectot" (stored at 10t» on the Index file) = No. of valid records in index,
Chris writes that he has used "filend" (stored at 1001 on index file) = No. of records on the file, includ
machine code to reduce the six ing deleted onea!
70 OPEN <6;"»";1;"index RND4
minutes of John Bennett's BASIC 60 POINT 116:1000; INPUT i6;r$: LET rectot=VAL rt
screen dump, but does not know 90 POINT S6,1001: INPUT «6;rt: LET filend=VAL rt: CLOSE «6
95 IF rectot =0 THEN CLS : PRINT "1 New file ! (to records yet entered. ""x«:
how to pass non-characters to GO TO 210
the printer without returning to a 99 REH
BASIC LPRINT statement. He 100 REM CONTROL LOOP
101 REM
would also like to know the 110 CLS : GO SUB 800 REM Print-menu
addresses of the ports used and 120 IF INKEYt="" THEM GO TO 120
130 LET it=FN Ct(INKEYt)
how to initialise them. Can 140 IF it—"A" THEN GO TO 200
anyone help him? 150 IF it="L" THEN GO TO 300
160 IF it="F" THEN GO TO 400
Several other readers' 170 IF it="C" THEN GO TO 500
comments might also be of 180 IF lts"D" THEN GO TO 700
interest. For instance, David 165 IF it-"Q THEN STOP
190 GO TO 120
Calow of Worksop mentions that 199 REM
if he SAVEs a program to disc as 200 REM ADD-ITEM ROUTINE
201 REM
follows: 205 CLS : PRINT AT S.2;x*
210 DIM ft(63): INPUT Enter Name : -;t»" Phone No. ";nt:
SAVE • 1;"name??" LINE 10 REM :" DIM " clears r t for new Input
212 LET It^LEN LET ln=LEN n t : IF lt<l OR ln<l THEN GO TO 210
and when he gets to the 214 IF lt>31 OR ln>21 THEN GO TO duff
question marks, changes the ink f
216 IF CODE t$(1)<65 OR OODE tt(l)>122 OR nt(l)s" " THEN LET error=l: GO TO duf
to 7 and adds, instead, a couple 216 FOR n=l TO It: LET ft(n):t»(n): NEXT n
of letters before changing the 220 IF CODE nt(1)<47 OR CODE n*(l)>56 OR nt(l)=" " THEN LET error=2: GO TO duff
225 CLS : PRINT st REM Saving message.
ink back to 0, then this protects 230 FOR n=42 TO 41+LEN nt: LET ft(n)=nt<n-41): NEXT n
the program. He says that you 240 LET ft(33 TO 41)="Tel. No. -
250 LET qt = ft LET qt(lt+l TO U + l ) = "»": LET qt< ln*42 TO ln*42)= t
must have line 10 autorun or the 260 GO SUB insert
computer won't accept it. If you 265 OPEN «S;"•";1;"directory RND64: REM Us i rig strews 4 & 6 for reading FROM
try and load by typing in the files and odd numbered streams 1 1 7 for writing TO files.
270 POINT 05;filend: PRINT «5;ft
visible name after a CAT, you 275 CLOSE »5
merely get the "file not found" 260 OPEN »7; • "; 1index"RND4
265 POINT 07,1000 PRINT S7;STRt reotot: REM Update pointers
error. It also prevents accidental 290 POINT S7.1001 PRINT »7; STRt filend: REM see Line 69
erasure, perhaps even more 295 CLOSE S7: GO TO 110
important. Oh, and if you suffer 299 REM
300 REM LIST-ALL ROUTINE
from amnesia, then just change 301 REM
paper to another colour before 305 CLS : LET scro)l=7' REM Need to control scrolling or whole file is dumped
310 OPEN «4. • ; 1; "directory RND64: OPEN MS: "m" ; 1; "index RND4
you CAT, and all is revealed. 320 LET pntr=l
330 POINT «6;pntr: INPUT «6;r»: POINT »4;VAL rt
RAM Chip 335 IF pntr>scroIl THEN GO SUB 1500
340 INPUT M ; f t
350 PRINT f t "
A query from a computer club 355 LET potr=pntr*l
concerned 5.25 inch drives. Is it 360 IF pntrCrectot THEN GO TO 330
370 CLEAR *
possible to run two of these 379 REM RETURN TO MENU SUBroutine "ret«en"
drives from a Discovery unit, and 360 PRINT »1; K"" for Menu
390 IF FN Ct(INKKYt)<>' M" THEN GO TO 390
what is the RAM chip? The answr 395 GO TO 110
is that the RAM chip is pretty "399 REM
400 REM SEARCH ROUTINES
standard and not difficult to get; 401 REM
it is an IC 6116 chip, and yes, 410 INPUT AT 22,0;AT 5.0; "Please type in nsid OR number""that you are looking
you can run two 5.25 inch drives for ? " " ;i•
420 LET pntr=l: GO SUB find
if you so wish; don't forget to 440 LET pntr=pntr*l
unplug the 3.5" original 450 IF pntr<rectot*l THEN GO SUB find«25 GO TO 440
460 IF found^0 THEN CLS PRINT kt.at" BRIGHT I; it REM kan't find nessage
Discovery drive from the printed 470 PRINT "et: REM end of search message
circuit board. Mr D. D. M. Cherry 460 GO TO retaen
of Fort Gale, Umtata, Rep. of 499 REM
500 REM CHANGE-RECORD ROUTINE
Transkei, asks similar questions 501 REM
and also asks about disc drive 505 LET dt= Change": INPUT AT 22.0;AT 5.0;'Please type in name OR number"*"that
you wish to change ? "'';it
specifications. Almost any 510 LET pntr^l: GO SUB find
modern disc drive will do, but it 515 IF found-0 THEN GO TO 535
needs to be Schugart- 517 PRINT AT 5.0; "Do you wish to:-""TAB 14;d»;" this ?~"TAB 14; "Look for siai
,ar ?"
compatible and you need to 520 LET wt=FN ct(INKEYt)
add a power supply unit if it 525 IF wt< >"C" AND vt< >"D" AND wt<>"L" THEN GO TO 520
530 IF wto'L" THEN GO TO 720: REM ..so slip Into the Delete routine!
hasn't got one. 532 LET found =0
535 LET pntr=pntr*l
550 IF at: another " THEM CLS : PRINT BRIGHT l;lt;at;it
Errors 555 IF pntr>rectot THEN GO TO 460: REM end of search
560 GO SUB find'25
B Domb of Wettingen, 570 GO TO 515
5 9 9 REM
Switzerland, mentioned that he 600 REM SUBroutine find"
had read my comments about 601 REM
610 CLS : LET offset=0; LET found=0
disc I/O errors in the December

o
615 PRINT BRIGHT l.lt.it REH looking message
issue. He had had continual 619 REH test char/num Input
errors of this sort, and noticed 620
625
IF lt< 1 )<":' THEN LET o f f s e t s
OPEN *4;"•";1;"directory"RND64 OPEN »6;"n";1;"index RND4
that they often appeared 630 POINT *6. pntr INPUT *6;rt: POINT S4.VAL rt
o through interference from other 635
640
INPUT »4.ft
FOR <1=1 TO LEN it
M peripherals, for Instance 645 IF FN ct(ft(q+offset))<>FN ct(i»(q)> THEN CLEAR * RETURN
switching off a printer. He 650 NEXT q
5 recommends that if you are 660 LET found=l: LET at-"another "

50 ZX Computing Monthly • April 1987 50


670 PRINT -f*'' not appear, and valuable
M
690 CLEAR RETURN information could be lost.
699 REM
700 REM DELETE-RECORD ROUTINE
701
705
REM
l.ET dt-"Delete"
Alphacom problem
710 INPUT AT 22,0;AT 5,0;"Please type in nane OR number that you wish to Dele
te ? "'';i$ Sgt McMenzie of BFPO 42 says
715
720
GO TO 510: REM go and look for it first!
OPEN *6;"o ';1:"index'RND4 OPEN 17;"a";1;"index'RND4 he has trouble with an
725 LET rectotrrectot-1 Alphacom printer and Discovery,
730
740
FOR x-pntr TO rectot
POINT »6;x+l! INPUT *6;rS POINT *7;x: PRINT *7;rt
and asks if this is due to
750 NEXT x Discovery's port being non-
755 POINT *7;1000: PRINT B7;STK$ rectot: REM remember to store adjusted value standard. The answer is that the
760
770
CLOSE »7: CLOSE «6: REM Don't use CLEAR » hers!!
IF v»=C" THEN CLS : PRINT f i; AT 17,0;o»: GO TO 210: RKM old record deleted Alphacom is non-standard, some
bo add now version. models more than others, but
780 CLS PRINT zt: REM zapped message !
790 GO TO retmen
that they all contain their own
799 REM comic way of interpreting the
600 REM PRINT-HENU SUBroutine signals from the Spectrum and
001 REM * *
810 IF filend=limit THEN PRINT AT 10, 10; "FILE FULL": STOP the Discovery interferes with this.
820 PRINT AT 2,8;" OPTIONS " So, you can't use both effectively
830 PRINT AT 5,0; "Add a new entry, " " "Change an existing entry.
alphabetical order)"" "Find a name OR number"" "Delete an entry."
List all (in together.
840 PRINT »1; INK 1;" Records on File : ";rectot'"Space remains for : ~;tlioit
-ftlend)
860 LET a»="": REM reset var "another" Figure 2.
890 RETURN
899 REM
900 REM SUBroutine " i n s e r t " REM Adjusts the index so that records appear
901 REM to be filed in alphabetical order, so
reducing recall time when listing. i REM AMSTRAO (XiP 20001 qraphic dumper
10 REM first, load server, for dunp
905 OPEN «4; b ;1;"directory RND64 REM read from main file 330 OPEN a3l"B"
910 LET pntr=rectot: LET ractot=raetot+1: IF rectot=l THEN GO TO 950 160 LET It.CHRl 27*"J-»CMR» 20
915 OPEN *6; "•"; 1; "index RND4 : REM read from index file 370 INPUT "double strike? V/Ni"(S»
917 POINT sfl;pntr: INPUT «6;r* ISO LET «t«l»ta»*-V">*<5*--y">
918 CLOSE *6 400 INPUT "width (1 to 7)
920 POINT »4;VAL r»: INPUT »4;(t* 4 IO INPUT -neiqht <l,2,4,B»"(h
925 LET el = l: REM pointer to element within arrays & file records. 420 (WE 23239,h
930 IF FN e*<q»(el)>>FN ct(g*<el>) THEN GO TO 950 430 POKE 23238.w
935 IF FN C»(q»(el) > =FN c$((f»(el)> THEN GO TO 970 4 40F0« *-»73 TO O STEP -a/h
940 OPEN »?:"•";!: "Index"RND4 REM write to index file 430 LPRIN1 lf+CHRI 13l
942 POINT <7;pntr +1: PRINT *7;rJ 460 FOR t-1 TO St
470 LPR1NT CKRf 27+"J">CHft« 2.CMR* 13|
943 CLOSE S7 4fiO POKE 23261 , f
945 LET pntr=pntr-l: IF pntr>0 THEN GO TO 915 490
950 LET fi1 nnd=fi1end•1 300 [PRINT CMRi 27*"7"*CHR» OtCHR» w|
955 OPEN *7;;1;"index"RHD4 : REM write to index file 3lO R ANDOM1ZE USR 60243
NEXT I
967 POINT »7;pntr*l: LET r*=STR* filend. PRINT *7;r» 320 NEXT
958 CLOSE «7 330 STOP I
960 CLOSE «4: RETURN 360 SAVE »1| "duinpw" LINE 9999
970 LET el=el+l 370 SAVE nli-di.inperCODe "CODE 60243,93
975 IF q»(el )<>••»; THEN GO TO 930 380 STOP
980 LET rectot=reetot-l
995 CLOSE «4
600
CLEAR 602441LOAD oil"dumperCODE -CODE 60243,9-
990 GO TO 2000. REM input same as a record on file !
999 REM
1000 REM MESSAGES
1001 REM
1020 LET k$" SORRY - Can't find *'
1030 LET e$="**«»»**« END OF SEARCH **«»»«»»*" LLISTing UDGs
1040 LET 1*= Looking for "
1050 LET z*="Zap ! - Entry now Deleted"
1060 LET 6$='Storing new information An anonymous reader from New
Please wait 1"
1070 LET o»="01d ontry above is now deleted. Type in the new t'
Milton, Hants, mentions that
1090 LET xj= Add new entry.-" Discovery's printer port has an
1095 RETURN irritating habit, namely that of
1099 REM
1500 REM SCROLL SUBroutinn sending question marks instead
1501 REM of user-defined graphics: he
1510 PRINT SI;"Scroll ?": PAUSE 0
1520 IF FN c*(INKEY»>= N THEN CLOSE «4: GO TO 110
points out that a program by our
1530 LET scroll=ocrol1+7 own Ray Elder (ZX, Apr/May 1984,
1550 RETURN p53), originally written for the old
1599 REM
2000 REM IDENTICAL RECORDS !?• Kempston interface works
2001 REM equally well with Discovery. Here
2010 CLS : PRINT g»' '"
2020 CLOSE A 4
Already on file !!" it is, again (Figure 1); it merely
2030 GO TO retraen replacs all the user defined
2099 REM
2100 REM ERRONEOUS (duff) ENTRY
graphics with appropriate let^rs,
2101 REM
2110 CLS : PRINT AT 8,3;"Sorry ! Entry Error
2120 IF lt>31 THEN PRINT "t$'"Too lohg.": GO TO 2020
2130 IF In>21 THEN PRINT 'nJ'-Too long.": GO TO 2020
2140 IF errorst THEN PRINT " Please type NAME first": GO TO retmen Dump to an Amstrad
2150 IF error=2 THEN PRINT ''"Please use numbers !": GO TO retmen
2190 GO TO 2020 Tim Andrews of Bromley has sent
in a program to send a dump to
plagued like he was, and He also mentions that he can an Amstrad DMP 2000, In the
sending your Discovery to Opus often get rid of this error by BASIC listing (Figure 2), line 360
merely costs you postage but FORMATting an empty disc, but sets up the line feed, and line
does not alleviate the problem, warns you to make sure that it is 470 increments this by a small
try switching on Discovery last. empty, because 'destroy?" will amount. Line 490 sets the printer
for quadruple density graphics
Figure 1. UDG Search and replace.
and also to prepare to print
256»w the number of graphic
lines. The code is shown in LL

Ic
10 CLEAR USR • » * - t l ! LET a-'-'SR A","3J',"3C",•IB","17-,-7E-,-FE" Figure 3. Tim says that due to his
•a'-aos PRINT -Cod* located at ,•OE",-30*,•lO","FE",-OD*,-2S",• relative inexperience, he only
•(•""US* b/ RAND0WI2E 0»-."FE*,-22*,-ZB","OF",•23','A7 used the BC, HL and A registers;
USR *|a *,'ED',*42*,*D0*1"09*,•16*.*EB*
70 FOR 1 TO a»3S! READ a*: p 110 DATA •33',•J3-,-23",*Z3'P-Z it could perhaps have been
OKF l , < C' ODE ••(11-49 <7 AND **I 3*,•IS",-Fl-23-, *^E»,-FE-,'22" shorter otherwise. He also asks
II)•»•It>»!««(CODE *•<&> 48-17 a ,-28',-EB",'DA',•90","je*,'Fa',*
ND »a<2>>•»•! ) ! NEXT I D6" ,-IS-, - 30' , T2", 'C6-, -3a-, "77 about peripherals, being scared </3
100 DATft-ED*,-4B-, *4B*. "SC. *2 • ,* 18*,'ED* to use his SPECDRUM in case
everything blew up. It should be

ZX Computing Monthly • April 1987 51


LLUJ
all right, particularly it one is Figure 3. Assembly listing for screen dumps.
using a 48K Spectrum, as the 60243 210C5A LO HL, 23260 60291 10FD DJNZ 60290
power supply is ample even for 60248 36O0 LO (HL > ,000 60293 E601 AND OOl
a 128 and most peripherals, 602S0 21DE3A LO HL,23262 60293 21DB3A LO HL, 23239
60233
provided that there is no clash, AO 233
3600
3E01
LD
LD
(HL),000
A.OOl
60298
60299
46
210E3A
LD
LD
B,(HL >
23262
particularly over the NMI line AO 237 21 DBSA LD HL.23239 60302 F3 PUSH AF
which is not continued through 60260 46 LD 8,(HL) 60303 86 ADD A,(HL)
60261
the Opus port. 60263
OEIO
CB09
LD
RRC
C.016
C
60304 77
60305 caoe
LD
RRC
(HL),A
(HL)
60265 B8 CP B 60307 Fl HOP AF
Auto-run select 60266
60260
20O4
CBOQ
JR
HRC B
Z,60272 60308
603 IO
1 OF 9
Cl
DJNZ
POP
60302
BC
60270 18F7 JR 60263 60311 lODB DJNZ 60273
60272 41 LD
And last, I shall break my rule of 60273 C3
B.C
PUSH BC
60313
60313
3E03
CDOl16
LD
CALL
A.0Q3
03633
not publishing any more CAT 60274 21DD3A LD HL.23261 60318 21DA3A LD HL,23238
routines, because this is one with 60277 7E l?D A,(HL) 60321 46 LD B,(HL)
a difference. You remember Mr. 6027B 90 SUB B 60322 cs PUSH BC
60279 47 LD B, A 60323 3ADC3A LD A,(23262)
Nutting's program, Supercat, in 60200 21DC3A LD HL,23260 60326 D7 «sr 016
last October's ZX Computing? 602B3
602B4
4E LD C,(HL) 60327 Cl POP BC
CDAA22 CALL 09874
Well, by using his "catc" CODE 60287 47 LD B,A
60328
60330
lOfS
21DC3A
DJNZ
LO
60322
HL,23260
and modifying the BASIC Alan 6028B 04 INC B 60333 34 INC (ML>
Harper has made a loader so 6O209
60290
7E LD A,(HL) 60334 20AA JR NZ .60230
07 RLCA C9
simple that even his child of five 60336 RtT

can use it. The BASIC listed in Figure 4. Auto-run program.


Figure 4, is saved as "run" LINE 170 IF t y p * > 0 T H E N L E T n * ( n ) - m «
9999. When run, the program 2
1 REM
REM AUTO RUN SELECT
I LET n-n+1
automatically lists ail the BASIC 3 REM 2 2 0 L E T a - t i L E T • - • + 1 6 ) L E T i«
programs on the disc anfJ 4 REM BY ALAN HARPER 1+10» 0 0 T O 60
300 CLS • PRINT "DISC N A M E |I
assigns a number to each: 3
6
REM
DIM n « ( 3 0 , 1 0 )
F O R • • 6 2 0 0 6 T O 6 2 0 1 3 ) P R I N T BR I
entering the number of the 10 L E T 0»1 I P O K E £ 4 9 9 0 , 0
G M T 1 ; C H R S P E E K «jt N E X T 11 P R 1 N
required program then loads It. 20 RANDOM I Z E - U 9 T 64900
T ) PRINT ! PRINT
303 FOR q-1 T O n-1
Neat and effective. 30
PEEK
DEF FN •(x)"PEEK (x+«>+236*
<«+x+l)
3 1 0 P R I N T P A P E R It INK 6 | q i P A P
ER 7 | INK 0 | ' • " j n S i Q ) ,
40 CLS t PRINT A T 10,9|"PLEASE
WAIT " 320 N E X T q

Tailpiece 30 LET • • 6 2 0 1 6 ) LET 1*63800


33 LET n-1
3 3 0 I N P U T " R U N W h i c h or>* ? ' (U
331 IF u>Cft-lX T H E N 0 0 T O 3 3 0
60 L E T » - F N »< 4 ) 333 CLS
Opus have clearly abandoned 93 LET • 3 4 0 L O A D *1 |r»»(u)
the Discovery, but we will 1 0 0 IF » - 6 3 3 3 3 T H E N 0 0 T O 3 0 0 9000 STOP
9100 SAVE *1|"c»tc"C0DE 64900,10
continue to keep this column 110 FOR p » » + 6 T O «+13l LET
• + C H R S P E E K pi N E X T p 0
going as long as there Is 130 LET t»«l LET j LET typ#= 9110 S(WE *lj*run* LINE 9999
sufficient Interest. Keep the PEEK • 9996 STOP
9999 CLEAR 61999: PRINT "MACHINE
programs coming. See you next 1 4 0 IF m t ( 1
TO 220
TO 3)»Ton* THEN 60
C O D E IS L O A D I N G ' ) L O A D Mt'catc
month. •CODE ) GO TO 1

M ost advertisements are legal, decent, honest and truthful.


A few are not, and, like you, we want them stopped.
If you would like to know more about how to make com-
plaints, please send for our booklet: The Dos and Don'ts of
Complaining: It's free.
The Advertising Standards Authority.
We're here to put it right.1
ASA Ltd.. Dept. Z. Brook House.Torrington Place. London WCIE 7HN.
/
This snace is donated in (he interests of high standards of advertising.
ZX Computing Monthly April 1987
MU
NHFLIGHT
Tony Hetherington takes
a spin in four of the
latest Spectrum flight
TOP GUN
Ocean
simulators.
£7.95

Gomes based on top films have change weapons while reading machine guns can cause you
often been top flops but this the instruments that report your problems as they can overheat
high flyer is set to reverse the speed, altitude, attitude and jam before you can score
trend and is soaring up the (climbing or descending) and enough hits to destroy him.
chart as a game in its own right. plot your opponents position on The two player game is a
You star in the game that pits your radar. Luckily, these simple head to head contest
you in a high speed aerial duel displays are easy to read even where both players have a stock
against either a human when travelling at speed as of three planes. The last plane
opponent or a series of that's the way this game's flying wins the contest.
computer opponents. The action played. Against the computer your
takes place on a vertical split The contest begins as both three planes (or lives) must
screen display with vector fighters take-off from their tackle a series of computer
graphics representing the F14 respective carriers and head pilots that increase In skill. You
tomcat fighters. I found the straight for each other. Thanks to don't score any points, just
vertical split screen displays the simple flight controls you survive to fight the next level or
worked exceptionally well and can concentrate on the combat group of three fighters. The first
made the game a lot easier and decisions on whether to two levels are relatively easy as
than the normal horizontal atfack with your machine guns the enemy mainly attacks with
display (one player's screen on or fire a sidewinder homing it's machine guns and fall easy
top of the other's), particularly for missile. A missile will wipe out prey to your sidewinders but
players hunched either side of your opponent in a single shot from then on it gets a lot harder
the keyboard. You can of course but you will have to keep him in as you face a succession of
use joysticks if you have them your sights while your missile missile firing goes. To win you
but single stick owners may opt systems lock on. To add to your will really have to be Top Gun,
for the keyboard to make the problems and also your
battles fair. If you're up against chances of survival you can also
the computer you'll need all the fire a flare to distract enemy fire
help you can get. but since you can only select
Control of the F14s is a mixture one system at a time you have
of the standard climb, bank and to anticipate your opponent's
dive controls with additional actions almost before he knows
keys to control the throttle and them himself. Even the simple

,. , A B
HI i l l J IL )j I
NHFUIGHT
ACE OF ACES
US Gold
£9.95

I I V
tEfiLIfl
or
RflSTEHPHn
o x

PARIS o
ma

AC1S
-

UW
"No 8ritish aircraft will ever punches up the mission's tactical
bomb Berlin" was the claim of map that plots the relative
Luftwaffe chief Herman Goering. positons of you, the target(s), any
Now. thanks to US Gold, you can bad weather that can make
join the ranks of RAF Mosquito flying even more hazardous and,
pilots that not only bombed ot course, the dangerous Me109
Berlin but also trounced trains, fighters. Once you reach your
pummelled planes, sank target (on a bombing mission)
submarines and even scored it's all up to the skill, accuracy
victories against the dreaded and timing of the bombardier.
V-1 buzz bombs. Opening the bomb doors will
Your game begins in the hopefully reveal the target that
briefing room with your possible can be destroyed by your
targets marked on the Squadron bombs. This screen is also used
Leader's blackboard. You to dump empty fuel tanks to
choose whichever ones you like, lighten the load and to switch
go on a practise mission or the forward gunner (pilot screen)
attempt the Ace of Aces from cannon to rockets.
grandslam and go for the lot. Naturally each mission is
However before you can bomb different and requires specialist
submarines and trains while tools, so you can customise your
fighting Me109s, London bound weapons load before you set off
bombers and V-1s you'll need to adding extra bombs, rockets or
learn how to fly this highly cannon ammunition and extra
versatile fighter bomber. fuel tanks for longer flights.
The mechanics of flying are To finish your training you
similar to those experienced by should fly a few practise
Lancaster bomber pilots in the missions to tune up your timing
excellent Dambusters gome and as you bomb the train (taking
consists of a series of screens care to hit only the carriages
each with their own set of that don't contain POWs) and
controls. The plane is steered submarines before they dive to
from the pilot's screen that shows safety.
the view through the front of the In the real bombing mission it
aircraft as well as instruments to is vital that you get everything
monitor the plane's height, right as you only get one
speed and course and direction chance. The ideal approach is
and height of any enemy at tOOmph at anything under
"bandits The Mosquito has two 1,000 feet but this might not be
Rolls Royce engines that are always possible if you've been
controlled directly from the port damaged by Me109 attack.
and starboard engineer controls. After the raid get back to
These monitor the throttle and blighty in time for another
boost given to each engine and mission. Your performance is
also contain a fire extinguisher based on a points system with
in case the engines overheat. high scores awarded for getting
There are also flaps and landing back as well as for targets hit
gear controls that can be used and even bombs, fuel and
in evasive tactics as they'll rockets saved.
cause a sudden loss of speed After a few successful sorties
although you don't need them to you'll be ready for a double
land or take-off as the computer mission, perhaps defending
does that for you. London against V-1 and bomber
attacks until finally you go for
On course the grandslam and become one
Selecting the navigator's screen of the Ace of Aces.

—,—r-^^-


(c -i]

- 4 - 4
ACROJET

More high flying antics as man


and machine are again driven
to their limits, only this time it's a
battle against the clock since
you're competing in an
airbourne decathlon — ten
events that require supreme
control of your BD5J 200mph jet
aircraft if you are to take the
championship and enter the
hall of fame. Before you write
your name into the record books
you'll have to learn how to fly.
This Is undoubtedly the most
difficult of this month's simulators
to keep off the ground let alone
trying to compete in the
acrobatic events. This Isn't made
any easier when you consider
that the instructions were written
for the Commodore 64 with a
brief and extremely vague
errata sheet to explain the
Spectrum keys! "Use joystick with
Interface 2 or keys 6,7,8,9,0 for
controlling plane" guarantees
initial disaster flights as you sort
out the controls, and it also rules If flying is still more luck than your engine you lose points but
out the most popular joystick judgement then you should quit if you don't you might lose your
interfaces. now and be grateful for the plane.
The screen display is custom points you've already got Luckily you're awarded points
built for sport flying and because the next event involves even if you don't finish the
contains a bank of instruments cutting a 3" ribbon strung course so even beginners can
and a 3D view that also Includes between two poles. To show that compete with each other.
your aircraft as it swoops and wasn't a fluke you have to cut Up to now I've perfected my
banks around the circuit. A plan more ribbons while flying upside own events including the crosh-
of the course which also down, then in the ribbon roll you at-the-end-of-the-runway. the
doubles as a radar combines must cut one ribbon, roll over smash-into-the-pylon and
with a compass to keep you on and cut another without freestyle-plummet. It'll take a lot
course as you navigate your catching your wings on the more practise before I can take
way around the hazards. ground. If that was too easy why on Mlcroprose's own Major Bill
The first event is a relatively not try the under ribbon low Stealey.
simple task to circle four pylons level race, the loop and Cuban
before returning to the eight which contains everything
landing/take-off strip In the you've risked so far and the
Slalom race things are a tittle insane spot landing in which
trickier as you have to circle the you must deliberately stall your
same pylons but in a set order engine at 2000ft then land with
and in the correct direction. pinpoint accuracy. If you turn on

most of the game In front of your


gunslghts!
DEEP STRIKE The screen shows your view
Durell over the scrolling landscape
£9.95 and your controls that are
dominated by two propellers
which show the deteriorating
condition of your plane and
World War I dogfights were your bomber, and a pointer that
extremely hazardous with pfanes keeps you on course
often shooting off their own The best results seem to be
propellers in the heat of the achieved if you fly so that you
action. Add to that the fire just below the bomber's
unreliability of such flimsy undercarriage but be prepared
aircraft and you realise the to move out to intercept enemy
danger of the mission you've fighters and gun down barrage
been sent on. Your mission is to balloons before they destroy
fight off hordes of Red Barons, your bomber. As each bomber is
Black Barons and Blue Maxes to destroyed another takes its
protect the bombers that fly in place until you either get a
front of you. chance to bomb your main
This aerial convoy has its own target (the enemy fuel dump) or
problems in that you have to you're left on your own to take
drop the bombs while trying not out as many of their planes as
to shoot the bomber that spends you can before they get you.
MEMORM

PROGRAM
Ton! Baker shows how ^ nee upon a time, when I was M—, MR (etc) functions of the
a lot younger than I am now, I more expensive version. It
to squeeze some extra was privileged enough to own seemed that the Internal
a calculator. It wasn't anything hardware of the two calculators
memory out of 16 and flash, you understand, because was Identical, but they were
calculators had only just come put into two different external
onto the market — but it was cases so that they could sell at
48K Spectrums. good enough for me at the two different prices for differing
time. It did add and subtract, sections of the market. I
multiply and divide. All very suppose It must have been
PROGRAM simple stuff. I grant you, but fun
at the time
cheaper for them to do that
than to produce two entirely
A friend of mine also had a different machines.
10 CLEAR 3 2 7 6 7
calculator. This was a more With that little anecdote in
20 LET X = 3 2 7 6 8 expensive version. It was made mind, we return to the present.
3 0 FOR 1=0 T O 14 by the same company, but was Calculators have long gone
40 LET C = 0 the next one up In the range. It out of fashion — today,
5 0 FOR J=1 T O 6 had an extra column of buttons computers are In thing. I
60 R E A D A on the right, and was coloured began to wonder, however,
70 POKE X,A black instead of white The whether what was true of
8 0 LET X=X + 1 extra buttons were things like calculators in the early days,
90 LET C = C + A M+, M—, MR and so on — all might also be true of
100 NEXT J
memory functions, allowing you computers now. Could it be
to store and recall numbers possible that Inside the various
110 R E A D A and so on. Then, one day, different boxes there was
120 IF A O C T H E N P R I N T 'ERROR while we were playing a basically one, and only one,
N LINE 10*1+160: STOP casual game of throwing-
calculators-around-the-room (as
type of Spectrum?
C
Literally speaking, of course,
2
130 NEXT I
140 R A N D O M I Z E USR 3 2 7 8 6 children do), the case of my this cannot be true. The IN ports

£
150 STOP prized calculator came apart, seem to give different results for
160 DATA 2 2 , 0 , 0 , 1 7 , 7 , 1 6 , 6 2
revealing a panel of little different issues of Spectrum, but
rubber buttons on one half, the central problem remains. It
170 DATA 3 , 6 5 , 8 0 , 8 2 , 7 3 , 7 6 , 3 7 9
180 DATA 3 2 , 7 0 , 7 9 , 7 9 , 7 6 , 3 2 , 3 6 8
and a grid of wires on the
other half. It became
is not possible that the
advanced features of the
2
<
190 DATA 6 2 , 2 , 2 0 5 , 1 , 2 2 , 1 , 2 9 3 immediately apparent to me Spectrum 128 (extra memory,
200 DATA 7 , 0 , 1 7 , 0 , 1 2 8 , 2 0 5 , 3 5 7 that pushing down one of the full screen editor, and so on)
210 DATA 6 0 , 3 2 , 6 , 6 4 , 1 9 7 , 1 , 3 6 0 rubber buttons would make a
are and have always been,
220 DATA 1 1 , 0 , 1 7 , 7 , 1 2 8 , 2 0 5 , 3 6 8 contact between a vertical
wire and a horizontal wire, and
available on the old 48K and <S
16K Spectrums?
230 DATA 6 0 , 3 2 , 1 9 3 , 1 6 , 2 4 3 , 1 7 , 5 6
hence register the key
It turns out that is in fact the
G
depression. It was then that (
240 DATA 3 , 7 , 2 0 5 , 8 4 , 3 1 , 2 1 0 , 5 4 0 noticed an inconsistency — case. Both 16K and 48K
250 DATA 1 2 3 , 2 7 , 1 1 8 , 1 1 8 , 2 0 , 2 0 3 , there were more vertical wires machines, have in fact already
09 than there were columns of got 128K of RAM built in -
260 DATA 1 5 4 , 2 8 , 2 0 3 , 1 5 5 , 2 1 3 , 1 2 2 keys, giving an extra six
though accessing it has not
possible contacts. been easy. On the Spectrum
875 128, outputtlng a byte to port
270 DATA 205,155,34,230,248,179 7FFD was sufficient to page in
1051 Surprise surprise! the extra memory. On the 48K
57
280 DATA
290 DATA
33,0,88,17,1,88,227
1,255,2,119,237,176,79
Imagine my surprise when, with
the case still open, I pressed
on the extra contacts to see
and 16K machines this Is not so
It is possible however, to
devise a machine code
cU
300 DATA 209,24,219,0,0,0,452 what happened — only to find
that they performed the M+,
program which will give
genuine access to the extra
a
c/i

ZX Computing Monthly • April 1987


zzzz/ RAM and ROM memory. Such a before you are presented with Spectrum 128 is locked up In a
program Is included In this the main 128 menu. A cyan bar software data-storage system
article It is a BASIC program outlines the first item on the called silicon disc, or RAMdisc
with the machine code held in menu, TAPE LOADER. Ignore this It is worthwhile getting hold of
DATA statements. The BASIC for the moment. Using the an Instruction book, for the
program — essentially a CURSOR DOWN function (CAPS- simple reason that without it
machine code loader, will SHIFT/6 if you don't have a you won't know how to access
POKE the machine code into Spectrum + with a separate the extra memory in 128 BASIC
memory and then, by means of CURSOR-DOWN key) move the
a USR statement, run the cyan bar to the second item,
machine code itself. The last
item In each DATA statement Is
128 BASIC and your machine Is M/C
every bit as good as the 128
a checksum to ensure that the itself. How the machine code
line has been typed in I would like to stress at this program works Is surprisingly
correctly. If the checksum does point that the program will simple. As has been previously
not match with the rest of the convert a Spectrum to a stated, an output to port 7FFD
row then an error message is Spectrum 128 by software alone is not sufficient. The
generated, indicating the line means alone! This is important, Spectrum contains two new
number at which the DATA was because it means that the registers, which to my
incorrect. guarantee Is not Invalidated! knowledge have never been
Once the program has been Of course the main problem properly exploited. They are
typed In, with each DATA with converting a Spectrum by referred to as "Alternative
statement error free, then the this means, is that it doesn't Programming Registers", and it
program may be RUN. There supply an instruction book. It is Is the first of these (APR1 for
will be a short delay whilst the not within the scope of this short) which discriminates
machine code is loaded into article to give detailed between the various different
memory, and then the information on 128 BASIG and hardware models of the
computer will, effectively, turn furthermore, neither Sinclair nor Spectrum. Access to the chip is
itself into a Spectrum 128, and Amstrad will provide an by a complex sequence of OUT
will remain so until the power is instruction book without Instructions. This sequence is
switched off. supplying a computer as well. performed automatically by all
The only thing I can suggest is Spectrums whenever the
Reset that you find a friend who's got machine is either switched on
a Spectrum 128, and borrow or reset, so that the machine
The eflect of running this their instruction book. If you knows what kind of Spectrum
program Is equivalent to don't know anyone who owns a it's supposed to be.
pressing the RESET button on a Spectrum 128 then It might be I'll leave it to you now to
normal Spectrum 128. The worth your while joining a actually load In the program
screen goes black with a white local computer club. Most of and try It out. Good luck, and
border for a few seconds the extra memory In a I'll see you again next month.

Its easy to TIDYBINDERS


complain about SIMPLE, SMART

advertisements. AND T I D Y

But which ones?


£5.20 (including postage
and packing)
B u i l d up you W h i c h
Video reference library and
be s u r e of laying your hand
quickly on your back i s s u e s
Every week millions of advertisements
of W h i c h Video by filing
appear in print, on posters or in the cinema. them in a T i d y b i n d e r ,
Most of them comply with the rules designed to hold 12 i s s u e s
contained in the British Code of Advertising and smartly blocked with the
W h i c h Video logo.
Practice.
But some of them break the rules and A S P Readers Services, PO Box 35.
Wolsey House, Wolsey Road,
warrant your complaints. Heme) Hempstead, Herts HP2 4 S S
If you're not sure about which ones they (0442-41221)
are. however, drop us a line and we'll send you / " O r d e r Form T)TComputing"~
an abridged copy of the Advertising Cxxle. Please supply binder(s) for year(s)

/
Then, if an advertisement bothers I enclose £ (please make cheque payable to ASP Ltd)
Name
you, you'll be justified in bothering us.
The Advertising Standards Authority. Address

If an advertisement is wrong, were here to put it right.


.Date.
ASA Dd.Dept 2 Brook House.Tomngton Place. London W C I E 7 H N PIMM charge my Acc«»v B*rcl»ytf d' Account No
f-'*
Out re i s ippfopnttt vri* l
vf^l I I I I I T T T T H

58 ZX Computing Monthly • April 1987 58


URN
Z X C ON TACTS DIRECTORY
i
Who to call if you want
your Spectrum
repaired... the latest
game... a new
peripheral... it's all in
this indispensable
contacts guide

ES-efore we start talking


telephone numbers a brief word
about the services which are
available through ZX. We try to
provide as full a service to our
readers as possible and to get
the most from us follow the
guidelines that are outlined
here.

Back Issues
Back issues are handled by a
company called Infonet, Times
House 179 The Mariowes, Heme!
Hempstead. Herts HP1 1B& It you
have missed an issue copies
may stiff be available from
Infonet, price £1.5G+50p towards
postage and packing. Copies
ore stili available for all ZX
Computing Monthlies but copies
of the former bl-monthty issues
are stricly limited.
Intonet: 0442 48435

Subscriptions
All matters relating to
subscriptions are handled by
Infonet. If you want to subscribe
at a special discount price (£3 Listing problems, etc...
off the usual annual sub price)
refer to the subscriptions savings Although we attempt to be as
department at the end of this accurate as possible mistakes
directory, but hurry as this offer do periodically occur. If you
ends on April 30th 1987. have a problem with a listing or
an article please write to us
Photocopies rather than phoning. If a
Future services
mistake has been spotted then
If you want to get hold of an we wilt send you a correction In the near future we hope to
article from a past ZX there is a sheet, if not we'll do our best to launch a Software Service
photocopy service available, help If you wish to correspond offering ZX readers the chance
price £1.50 per article. Send with a contributor over a to purchase tapes of series that
requests to the Golden Square problem with an article write c/o have appeared in ZX. This is still
address marking your envelope ZX Computing, marking your in planning stage but if there
clearly "Photocopy service". envelope clearly with the are listings or series from ZX that
Cheques payable to ASP contributors name. In all cases you would particularly like to
Limited. please enclose a SAE and mark buy in tape form drop us a line,
your envelope clearly with an we'd like to hear from you — it
Binders indication of It's content, le the could help to decide the first O
ZX Binders are available, price title of the listing. It's simply few releases.
£5.20 inc p&p from ASP Readers
Sen/ices, PO Box 35. Wolsey
easier to process that way and
you will receive a reply sooner. Bryan Ralph, Editor, a
We try to be prompt in ui
House, Wolsey Road, Hemel
a
Hempstead, Herts HP2 4SS. 0442
41221. Cheques payable to ASP
Limited.
responding to letters but please
understand if you suffer a delay
in receiving a reply.
ZX Computing Monthly, No1
Golden Square, London W1R
3AB (01 437 0626).

ZX Computing Monthly • April 1987 59
REPAIRS
When your Spectrum
decides to go on the
blink who do you turn
to? ZX focuses on
professional repair
companies.
• f you're one of the people
who got a Spectrum this
Christmas then It's quite likely
that you're still at the stage
where you're totally Infatuated
with the thing. Well It's time I put
a stop to that.
It's one of those inevitable
facts of life that your home
computer, like any other house-
hold gadget, may one day blow
a gasket and leave you In the
lurch just when you need It.
That's why we've listed all those
repair companies In this issue
But just what are the frailties that
the Spectrum Is heir to?
We spoke to some repair
services and it seems that alt
sorts of things have happened to
machines at one time or
another, from the fairly common
cup of coffee getting knocked
over them, to a TV aerial getting
struck by lightning and the
shock going right through the
Spectrum where It blew out
every circuit in the machine.

Self-inflicted problems
However, acts of God apart, it
does seem that a lot of what
goes with Spectrums Is, as one
company totd us, "mostly self-
Inflicted". There are certain
problems, such as keys ceasing
to function, that just crop up on the C64." As a result, the the left-hand side, this matches
from time to time and they're Spectrum doesn't have some of up with a little bar on any
plain bad luck, but there is one the safeguards that are built Into interface that is designed for use
cardinal sin that you can and more expensive computers and with the machine. This is the
should always avoid. Never plug other types of electrical alignment key, a fairly cheap
anything into, or remove appliance, and there are no way of ensuring that the proper
anything from, the Spectrum's 'buffers' protecting the chips, electrical connection Is made
peripheral port while the power which are the heart of any when using any peripherals).
is switched on. computer, from the raw
I know that sounds a bit eiectrtcal supply. On the other Having a go
obvious but everyone we spoke hand, as Barry Clayton added,
to agreed that 'misuse of the "because it's a low-cost machine Then there is what's known as
edge connector" is still the it's that much easier to repair, so "amateurs having a go" The
number one cause of dead it's a case of swings and Quantum repair service told us
o
Spectrums. Barry Clayton of roundabouts." that quite a lot of things go
Microfare In Bristol told us: Another similar problem that wrong the moment people start
"There are some problems
o
can be avoided is when the to take the cover off the
that are very Spectrum specific alignment key on an Interface machine. "Don't touch it — a
They're caused mainly because falts out, causing a bad computer In complexity is 5/6
UJ the Spectrum was built down a connection when the interface is times more complex than a car
tt tow-cost specification. It's often ptugged In (If you look at the engine and there's very few
things that could be avoided by Spectrum's edge connector people who could take one
Q having a fuse here or there, as you'll see a little notch cut out of apart."

60 ZX Computing Monthly • April 1987 60


Specialist

RIS PAIR
Contact Nicola Baty on 0 1 - 4 3 7 0 6 9 9
Guide

QUANTUM
ELECTRONIC SERVICES COMPUTER RELIABILITY COMPUTER REPAIRS
We are the experts, having serviced Sinclair computers
SINCLAIR SERVICE CENTRE
We have the spares for repairs to:
CENTRE Since the introduction of the ZX80
Don't waste money on estimates — we repair Sinclair
S P E C T R U M / O L . MICRODRIVE. INTERFACE t . Dear Computer Owner, computers al price quoted (inclusive parts, labour,
* Fast repair service postage. VAT. irrespective of fault No hidden charges)
Given the choice would you prefer to have Repairs guaranteed lor 3 months.
» Free estimates
• White you wait service available in most cases your computer repaired inside an hour, Spectrum C18.75 inc part*
Please phone first and have it sent back to you the same day. ZX81 £11 50 Inc parts
OB IF YOU WANT TO DO IT YOURSELF! 16 KRam £9 95 inc parts
4164 Memory £1.90 probably running the risk ot it breaking Microdrive £15 95 inc parts
4116 Memory £0.99 down again with the same or similar fault Interface 1-11 £16,75 inc parts
280 A CPU £2 9S also
AH price* include VAT. Please add £1.00 p * p within 24 hrs of receipt, BBC £22 00 + parts
Electron £19 95 + parts
OUANTUM or would you prefer to wait a little XK Memory Expansion Kit £15 95
33 City Arcade. Coventry. CV1 3HX.
Phone: Coventry (0203) 24632 longer and have your computer go Computer ffe'ai'en please pAone lor
through our unique validation and Spec<»l T'td& Price
Call or send with cheque or P O
rigorous environmental heat soak tests, T.V. S E R V I C E S O F CAMBRIDGE L T D .
which highlights any hidden weaknesses French's Road. Cambridge, CB4 3NP
COMPUTER REPAIRS within your c o m p u t e r , therefore,
increasing the computers
Tel: 0223 311371

Spectrum, Commodore. Amstrad, R E L I A B I L I T Y AND L I F E


Acorn. BBC etc. EXPECTANCY? MICROPOWER
Fixed charge repairs on all makes
Please ring for details
The decision is yours! We are sure that it NORTHWOOD H O U S E
will be a R E L I A B L E one.
NORTH S T R E E T
MCE S E R V I C E S Spectrum 48K all faults £19.95
16K to 48K upgrade £24.95 L E E D S L S 7 2AA
33 Albert Street, Mansfield, 48K to 48K+ £29.95
Authorised Servicing
Spectrum *2 £22.00 mln
NottsNG181EA Amstrad £22.00 mln & Repair Centre
T E L : 0623 653512 Commodore £24.00 mln
T E L : (0532) 458800

A
Send computer only + cheque to:
B Y T E S N' B Y T E S MSTRAD
CORN
TAR I
Block 14, Holden Way Donlbristle
FIXED PRICE Ind E s t . , Dunfermline, Fife, Scotland
SPECTRUM KY11 5JW
REPAIRS
£19.95 all inclusive
Telephone: 0383 824576 SPEAK/EASY COMPUTER
Bring this ad for £1.00 discount
Note all computers carry a tlx month warranty
SERVICES
Open 6 days a week
Do not post — please phone us
ALL REPAIRS T O
0332 365280 SPECTRUM COMPUTERS
COMPUTER SPARES • 3 month full waranty
FIRST BYTE COMPUTERS Stockistsof full range of Sinclair parts • Fast reliable repairs by fully
10 Main Centre, London Road, Trade CounterOpen qualified engineers
Derby DE1 2PE. Mon-Sat9.30am.-5pm.
• Open 6 days a week
P.V. T U B E S • Late nights Tuesday
SPECTRUM REPAIRS 104 Abbey Street, Accrington, & Fridays up to 8pm
Lanes B B 5 1EE. • Trade repair enquiries
£14.95 inclusive ol labour, parts and p 4 p
Fast, reliable service by qualified engs . average repair
24 hri. 3 month guarantee.
Tel: 0254 390936 welcome
For help or advice ring Telex: 635562 Griffin G
H. S. C O M P U T E R S E R V I C E S , (For P.V.) 141 Merry Street, Motherwell,
Unit 2, T h e Orchard, Warton, Preston. Strathclyde ML1 1JP.
Lancashire PR4 18E. Tel: (0772) 632686
Tel: 0698 53609

NOBLES COMPUTER
WHY NOT SPECTRUM REPAIRS
ADVERTISE IN OUR REPAIRS * All repairs carry a 4 month guarantee.
From £3-£19 incl all parts, labour * Free estimates,
NEWEST SECTION and 3 m o n t h Guarantee
Phone tor special postal rates
* 7 days a week, 24 hour answering
service.
+ ADVERTISE YOUR MICRO F A R E NOBLES
REPAIR SERVICE? 296 Gloucester Road, Horfield, 14-17 Eastern Esplanade,
Southend-on-Sea, Essex.
Bristol
01-437 0699 Tel: 0272 46575 Tel: (0702) 63377/8

61
M example, you always chose the that they're OK "if treated
same key as the lire* key in properly."
REPAIRS arcade shoot "em ups) then you So, despite the poor
could literally wear the reputation that Sinclair
membrane out. This led to the machines had for reliability in
large market In add-on their early days, the repair
keyboards. When people getting companies seem to agree with
their machines repaired Sir Olive's own claims that much
decided that for a few pounds of the problem was due to the
Keyboard problems crop up extra they might as well go the wear and tear inflicted on the
from time to time; and the whole hog and buy themselves machines by their owners
quality of the keyboard was an entirely new board. ("butchered" was the word one
always one of the things that That about covers the company used), rather than
Sinclair machines were criticsed problems to which the Spectrum poor quality control. The
for in the past. Instead of using is especially prone. Peripherals Spectrum may not have that
'proper' typewriter style like the microdrive and Interface many safeguards built into it,
keyboards, Sinclair opted for a 1 are a different kettle of fish and any mass produced item
cheaper, pressure sensitive mem- altogether, although some of will throw up faulty units from
brane. The trouble with that was you might be surprised to hear time to time, but as long as you
that if you constantly chose a that repair services don't seem don't blow It up yourself your
particular key that got used to have too much trouble with Spectrum should stand you in
more than the others (if, for these, the general view being good stead for years to come

The edge connector: the most vulnerable part of your Spectrum

UK Repair Services GATWICK COMPUTERS 0293-26240 NORTH DEVON MICRO CENTRE


0271-44260
AB COMPUTERS AND GAZTEK COMPUTERS 0379-52327
VIC ODENS 01-403-1988
ELECTRONICS 01-568-7149
H.S. COMPUTER SERVICES
VIDEO VAULT 061-236-0376
ACE SURE 0613-398266 0772-632686
ONE STEP BEYOND 0603-663796
I.T. WESTERN ELECTRONICS
BULLRING COMPUTERS 0225-705017 PEAK 0429-233199
0746-266839 MANCOMP LTD 0612-241888 PROMPT 01-836-7166
MCE. SERVICES 0623-31202 QUANTUM 0203-24632
G. BUNCE AND SON 0628-661696
CAPITAL COMPUTER SERVICES MtCROCITY 0203-382049 R.A. ELECTRONICS 0502-66289
0222-461801
SCREEN SCENE 0242-528979
MICROFARE 0272-46575
CHILTERN COMPUTER CENTRE
0582-455684 SPEAKEASY COMPUTERS0698-53609
MICROMEND 0733-241718
SPECTRUM HOSPITAL 0602-751153
COMPUTER HOSPITAL 0964-43354 MICRO POWER LTD. 0532-458800
TECHNIFORM SERVICES
DIMENSION COMPUTERS MICROSEN 0236-737110 0934-843460
0533-57479
THETFORD MICROS 0276-66266
MICRO SERV 0236-737110
FIRST BYTE 0332-365280 TV SERVICES OF CAMBRIDGE
MICROTRIX 0204-398176 0223-311371
4MAT COMPUTING 0772-561952 MICROWORKSHOP 0612-054974 ZEDEM COMPUTERS 0234-213645

ZX Computing Monthly • April 1987


W1A
HARDWARE &
PERIPHERALS
Where to find the right
add-ons and
accessories.
ADAPT ELECTRONICS 01-504-2840
Ordinary 48K versions of the
Spectrum don't have an RGB
output that allows you to plug it
into a monitor, so if you want to
use one you'll need Adept's RGB
Interface.

ADVANCED MEMORY SYSTEMS


0925-413502
Makers of the AMX Mouse.

CHEETAH 0222 777337


Joysticks, interfaces, connectors,
you name it. Cheetah make it.
But they are best known for their
range of musical add-ons such
as the SpecDrum, Sound
Sampler and their new MK5 Midi
Keyboard.
Sir Clive's new 288 portable
CLASSIFIED PRODUCTS
0325-313131
Suppliers of ait sorts of cables TECHNOLOGY RESEARCH
and extension leads. 01-816-3547

DEAN ELECTRONICS 0344-885661 TRANSFORM 01-658-6350 Where are they now?


Probably the only suppliers of Transform don't actually produce
thermal paper for the Aphacom anything themselves, but they AMSTRAD CONSUMER
32 printer. are one of the best suppliers of ELECTRONICS 0277-228888
printers, monitors, utilities and They changed the face of the
KEMPSTON DATA 0908-690018 such like, and they are also one Spectrum with the 128+2, will
As well as producing Just about of the few places that can still they change direction with the
every sort of interface that your supply microdrlve cartridges. +3?
Spectrum is ever likely to need,
they also do a neat little mouse. TROJAN 0792-205491 CAMBRIDGE COMPUTERS
Makers of one of the better 0223-312216
RAM ELECTRONICS 0252-850031 Spectrum lightpens. Followers of Sir Ctive will
Ram started out by making joy- undoubtedly want this number
stick Interfaces but they've VIDEO VAULT 061-236-0376 now that he's re-emerged with
recently branched out with the General repairs company, who the new 288 portable which will
impressive RamWrite printer also supply the Sinclair's initially be available by mail
interface (with built-in word- Spectrum* upgrade kit and the order only.
processor) and the Music old DK'tronics keyboard —
Machine Midi interface that neither of which are generally
doubles as a sound sampler available these days.
and drum synth.

ROCKFORD PRODUCTS
01-203-0191
Newcomers to the Spectrum
market with their Disciple unit
which is a combination disc,
Joystick and networking
interface

ROMANTIC ROBOT 01-200-8870


Producers of the Multiface One
unit and now the Mutiface 128.
g
SAGA SYSTEMS 04862-22978
Have the add-on keyboard
a
market cornered with a whole
O
range of keyboards at different U I
prices. They also do a nice line
in printers and wordprocessing
equipment. The Spectrum 128+2 a
ZX Computing Monthly • April 1987 63
SOFTWARE
A directory of British
software house contact
numbers.

ACT1VISION (H-431-1101
The UK offshoot of a large
American outfit, so most of their
stuff is conversions of C64 games
such as Ballblazer, Hacker and
their all-time biggy, Ghostbusters.
ADDICTIVE 0202-296404
ALU G ATA 0742-755796
ADVANCE SOFTWARE
0279*412441
New software house made
impressive debut with Hardball
ARGUS PRESS SOFTWARE
0742-755796
Software conglomerate that
makes a habit out of swallowing
up smaller companies^.
Quicksilva, Lothlorien. Bug Byte
and A ' n F are all members of
the APS stable.
ARIOLASOFT CH-836-3411
BUBBLEBUS 0732-355962 CODEMASTERS 0295-68426
Promising new budget label
CCS 01-658-0763 formed by ex Mastertronlc
Strategy/Wargames aren'f programmers.
articularly big business In the
uiK market, but CCS have CRL 01-985-2391
managed to specialise In them Emerged last year as purveyor of
without going bust. Their latest good quality adventures such as
release, Vulcan is reviewed the Bogglt and Dracula.
elsewhere this Issue.
CSD 0252-522200
DOMARK 01-947-5626
Masters of the licencing deal,
Domark have been responsible
for such software classics as
Friday The 13th, View To A Kili
and the Christmas success,
Trivial Pursuit.

DURELL 0823-54489

THE EDGE 01-831-1801


ELECTRIC DREAMS 0703-229694
Another outfit that's fond of
licencing deals, Electric Dreams
tend to concentrate on fifm tie-
ins (Back To The Future, Howard
The Duck, etc), though only the
recent Aliens really did justice to
the original film.

ELITE 0922-55852
FTL 021-5572981
The arcade label launched by
Gargoyle Games who had
previously concentrated on
adventure games. There's only
been one FTL release so far, the
cracking lightforce, but there's
more to come.

ZX Computing Monthly • April 1987 64


GARGOYLE GAMES 0215-572981
GILSOFT 0446-732765
Gilsoft's entire reputation and
business is based on the success
of their adventure creating
system, The Quill, which has
spawned a whole mini-industry
of budget adventures. The Quill's
getting a bit old now, so watch
out tor the arrival of the new
Professional Writing System.

GREMLIN 0742-753423
The software house that Monty
Mole built
HEWSON 0235-832939
Andrew Hewson's outfit has buift
up a solid reputation based on
ood games. The latest Is Steve
?urner's Runarama.
Tu
MASTERTRONIC 01-377-6880 PALACE 01-278-0751
HI SOFT 0525-718181 The UK's top budget software A subsidiary of the Palace Films/
Latest product is the ZX Basic house, so successful In fact that Video outfit, Palace have tended
Compiler. they've just gone and bought to stick to a small number of
out the once proud . . .
INCENTIVE 0734-591678
Makers of the Graphic Adventure MELBOURNE HOUSE 01-943-3911
8 ood releases such as the
auldron games and the recent
Antiriad, though they may be
Creator. expanding in the future.
MIKROGEN 0344-427317
LEVEL 9 0734-595759 PIRANHA 01-836-6633
With no competition in sight, MICROSPHERE 01-883-9411 An offshoot of the MacMillans
Level 9 are our top adventure publishing company. Best game
company. Their Middle Earth MIRRORSOFT 01-377-4837 to date Is the quirky Trapdoor.
and Silicon Dream trilogies are
landmarks in the field. These OCEAN 0619-803488 PSS 020-3667556
days they're spreading their High output of coin op
wings by doing link-ups with conversions and spin-offs. SOFTWARE PROJECTS
other companies, such as Knight Notable games recently, Cobra 051-4289393
Ore, due from Ralnbird in April. and Great Escape. Since making Matthew Smith's
fortune with Manic Miner and
Jet Set Willy, they've had what is
kindly referred to as a 'low
profile,' though their Dragon Lair
conversions show that there's life
In them yet.
TASMAN 0532-438301
Makers of multifarious Tas —
utilities such as Tas Copy, Tas
Print, but most notably Tasword
now in its third incarnation.
TELECOMSOFT 01-240-8838
Telecomsoft Is the little bit of
British Telecom that owns or
markets Odin, Beyond, Firebird
and Ralnbird {who are con-
veniently profiled in this Issue).
U.S. GOLD 021-3563388
Close runners to Ocean in the
big league. U.S. Gold have got a
variety of labels under their
wing. Including marketing deals
with Vortex, Ultimate and
Adventuresott, as well as a
seemingly endless store of U.S.
software waiting to be converted
onto the Spectrum.

VIRGIN 01-834*8341
The software arm of the Branson
empire Last year snapped up
Leisure Genius and thereby the
rights to titles such as Scrabble,
Monopoly and Scalextric.

ZX Computing Monthly • April 1987 65


SUBSCRIPTION SAVINGS FOR YOU!

Take advantage of these fantastic money saving subscription offers to these


magazines. Hurry, this amazing offer is for a limited period only.
UNITED KINGDOM OVERSEAS
(Accelerated surface post)
Normal Price Sale Price Please Tick Normal Price Sale Price Please Tick
• •
mw
A&B Computing £18.00 £20.80
Computer Gamer £13.00 • £17.20 •

iJ^eer •
£13.00
m^etr
Your Commodore j£2+r6tT £17.20
£12.00 • •
n £14.40
ZX Computing Monthly
Citizens' Band £44jrSKT £13.52 £17.60 •
Ham Radio Today £14.40 • £16.80 •
Electronics Digest £J4r3CT £ 8.30 • t U r W £11.20 •
Electronics Today International X18rKT £14.40 • £18.00 •
Video Today Lx&w £13.52 • mrecr £16.80 •
£13.52 • •
awa
Which Video? r9CT £2+r0Cr £16.80
Photography jDSrttT £12.00 • £16.00 •
Photoplay £14.32 • £17.20 •
Clocks £30r60" £24.64 • £28.00 •
Woodworker tS&rSV £13.52 • U^QfT £16.80 •
Popular Crafts £14.32 • P A r t t £17.20 •
Winemaker & Brewer iX&Kr £10.96 • iXhm £13.60 •
Aeromodeller £20.08 • £23.20 •
Military Modelling r £13.00 • £16.80 •
Model Boats j^rKT £13.00 • £16.00 •
Radio Control Model Cars ilSrKT £14.00 • £17.20 •
Model Engineer i m t r £22.00 • £26.00 •
Radio Control Boat Modeller £ 7.50 • £ 9.20 •
RC M &E pj^etr £12.00 • Ufrecr £16.00 •
Radio ControJ Scale Aircraft
Quarterly L ^ x r £ 8.00 • HMtf £ 9.20 •
• •
tioar
Radio Modeller p. £13.00 m & r £16.00

D^eer •
Sea Classic International £ 9.00 mr50- £10.00
Scale Models International £13.00 • £2&M £16.00 •
Your Model Railway £12.00 • £20.00 •
(Offer ends 30th April 1987)
Please commence my subscription(s) with the issue.
I enclose my cheque/posttJ order for £ made payable to Argus Specialist Publications ltd
or debit £ from my Access/Barclaycard No. I I I I I 1 1 I I I I I 1 I I 1~~)
vaJid from to Signature

Name
Address

Send this form w i t h your remittance to: Subscriptions Savings Offer (S.087)
ISFOSETLTD.. Times House, 179 The Martou es, Heme! Hempstead, Herts. HPI IBB.
ZZZzM
Brian Becket looks at
the latest QL software.

Z X Microfairs continue to microdrive and works with an wires plus the typewriter-like
showcase new products unexpended QL but is designed keyboard. You just take off the
although it seems as if there are to take advantage of disc, RAM old QL top. slot in the new LED
less visitors each time. The only discs, and so on if you have the wires (the keyboard comes with
advantage to come out of this is facilities. The Front Page is a clear instruction sheet) and
the relative ease of walking designed to offer a reasonably the new keyboard tails. After
around to see what's on offer powerful desk-top publishing at replacing the screws, you're
without all the pushing and a bargain basement price to ready to go. It's an impressive
shoving through hordes of those who want to produce their product and a good bargain.
games nuts. There wasn't much own news letters, handouts or There's no soldering to worry
new in the way of the QL either whatever. about — the only tool you need
at the most recent Microfair, but GAP'S MD had read my QL is a small Phillips-head
any news Is good news these obituary a few months back and screwdriver — and the result
days and it is impressive how told me that — while he would gives you a QL with a keyboard
new products keeping coming defend to the death my right to of professional quality- The main
despite Amstrad having officially say it — I ought to be taken out drawback I found with Sir Clive's
sealed the coffin. and shot. He had noted a keyboard was the tendency to
Digital Precision worked all growing QL enthusiasm among hit two keys at the same time but
night and had the long-awaited church groups, school groups Schdn's replacement avoids this
Turbo-charge, son-of-Super- and such like and I pointed out and you can type with an ease
charge mega-compiler out on that this could be due to the that's a pleasure by comparison.
the day. Although my review fact that the QL had reached The board's layout is exactly the
copy arrived a day or so after rock-bottom prices in the last tew same (the function keys are in
the show, I am sadly unable to months. This combined with red but the rest is in the black
say much more about Turbo some of the truly excellent that we all know and love) and
than I said last month as
unfortunately I was sent the
wrong si2e disc.
I did. however, get Digital's

Q I COLUMN
final benchmarks Tor Turbo and
can pass them on as hot-off-the-
presses news. According to
Digital, average speed-up
factors for compiled code are:
(1) Integer benchmarks x84 for
Turbo compared to x41 for
Supercharge, (2) floating point
benchmarks x H 7 for Turbo
compared to x7.2 for
Supercharge. Digital's estimates
for its competitor QLiberator are software available (including the the board is compatible with all
x11.2 and x4.1 respectively. For a Front Page) makes the QL an peripherals and software.
"Superbasic long program attractive proposition to low-
(Project Planner), Digital's budget groups and others QL casino
estimates are QLiberator x7, outside the IBM life-style. At the
Supercharge x12 and Turbo- end of the day. he forgave me (I If you fancy running a small
charge x45. For comparing think) for being a journalist — casino for your family,
compiler speeds. Digital takes especially after I said that I was neighbours and anybody with a
QLiberator as x1 and puts fully behind all small QL few quid to lose, Pyramid has
Supercharge at x1.7 and Turbo companies and users — and we just released Super Croupier at
at x2.3. Digital was over the parted as friends. But the QL is £15. You play against the QL but
moon about the results and — dead and — unless somebody there's nothing stopping you from
up to the lost minute — the pulls off a minor miracle with letting the computer be the
programmers and designers Amstrad. it's going to stay that House backed up by your cash
didn't know how good a product way. This doesn't mean that the but this would be illegal and —
they had developed. They machine won't be useful to a lot as QL owners are an honest lot
expected Turbo to be as fast or of people for a long time or that — the point is of academic
faster then Supercharge but it's pointless to produce any interest only. There are six games
confessed to pure delight when more new QL products but only on the program: roulette,
the results came in. Turbo looks that it's out of the race in the blackjack, baccarat, carta +
an excellent piece of software marketplace. alta, poker and slot machine.
and the company deserves Personally, I like the Poker and
every success with it. Speaking of new products, the
keyboard stakes are getting the Baccarat because I've never
hotter. There was one selling for had any luck with Blackjack or
Making headlines around £50 at the Microfair. It Roulette in real casinos.
Baccarat is a very enjoyable
just gives the old keys a better
The Front Page is not just the feel and frankly I don't think it's game (it can also be a costly
title of a classic play and a worth £50 so I don't plan to say one) and it's nice to have a
good movie but also a package any more about it. Schon has computer program to play
of QL software offering desk-top won the race to get their first against. It's a very good
publishing for a mere £22.50. and its replacement boards are package (you even get Snoopy
Produced by GAP Software, the now available. They sell for just running around the screen to
help out) and well worth the
O
Fronl Page is a no-frills program over £40 and you get a new QL
that is fully menu-driven and housing with a new set of LED money. O
enables the user to produce text
and graphic layouts freely and
easily. It comes on one 0

ZX Computing Monthly • April 1987 67


IM good Line Renumber
program is, without doubt, one 10 REM
ot the most useful programs that
anyone could wish to add to 20 REM * * HEX LOADER *+
their collection. However, the 40 REM X I X K X X X M K M X X K X X X X X K M X X X
problem with most utilities is that
they demand a fixed position in 50 CLEAR 59999
memory, and usually require a 60 FOR F = 6 0 0 0 0 TO 6 1 1 4 0 STEP 8
small BASIC program to operate 70 ^PRINT F|
them. This is not the case with
this program — because it can 80 LET C H E C K - 0
be loaded to any convenient 90 INrUT "Enter bytes:"J LINF
position in memory at any time: HS
it also contains routines to tell
Itself where it is located in 100 IF LEN H » < > 1 6 THEN PRINT •
memory, and to renumber its Error in length": BEEP .2,0: GO
own variables accordingly. It TO 7 0
also has its own input routines,
dispensing with the need for a 110 P R I N T TAB 8jH*i
BASIC control program.
The routines In the main part
of the program have been
designed to cater for every
Imaginable situation: all forms of
GOTO, GOSUB RUN, RESTORE and
SAVE . . . LINE statements can be A programming utility
renumbered (including
microdrive), even when In from Kenneth Baker.
complex conditional form.
Add to this the data for

various captions, and the chosen) and, if everything is in instantly that the same address
original renumber routine, which order, a prompt will appear in has been used for all three
is a mere thirty-three bytes in the lower part of the screen commands: this is permissible in
length, grows into a somewhat requesting you to: ENTER this case because the first
larger 1140 bytes! STARTING LINE, STEP SIZE instruction in the program has
Before we can go any further, This requires you to enter two the same code as the RAMTOP
however, it will be necessary to values separated by a comma, marker. LD, A,N. RAMTOP can of
enter the HEX LOADER program followed by ENTER. The values course be set at any address
and the machine code. The entered must be such that the you desire, provided that it is
LOADER program has been STEP SIZE is not greater than the somewhere below the
designed to ensure that the STARTING LINE, although the two concerned.
process of entering the machine can be equal. Otherwise you
code is error-free, rejecting any can enter any values you like — Display file
lines that are not correctly 1,1 - 999,99 _ 9000.2 eta If you
entered, or in the wrong order. type in rubbish, illegal values, or It was mentioned earlier that this
The HEX CODE Is arranged in ENTER with no values at all, the program could be entered
127 lines of eleven pairs, fhe first system will automatically use the anywhere — It can also be
nine pairs represent the actual values 10,10. stored in the Display File (at
machine code instructions, whilst Directly the renumbering address 19000) in cases where
the last two pairs contain a process has been completed (in renumbering Is an afterthought,
checksum of the values in the a fraction of a second with an or where you only intend to use
particular line. If any other the program once. You will not
0
average program) the program need to use the CLEAR
method of input is used you title will appear on the screen, command with this method, but
z should remember to ignore
these last two pairs.
where it will remain until a key is
pressed. The only restrictions you must use CLS first, so try:

1 Each line o1 eleven pairs


should be entered as a
concerning the use of the
program are that the first line of
CLS
LOAD " " CODE 19000
< continuous string, with one
space between each pair. The
a program to be renumbered
must contain a REM statement,
RANDOMIZE USR 19000
and the program wilt execute in
lines are listed in convenient and corresponding addresses
the normal way. You will have to
BC blocks to assist with their
location during input. The
must exist for any commands
involving line numbers: a reload the program each time
you use this method, as the
address to be inserted in Line 4 statement like GOTO 100 would
O program will vanish directly you
o of the hex loader must be the be ignored if Line 100 does not
location at which you have exist. enter a command, but the
ot decided to enter the machine method does have many
Normally, assuming that the advantages — principally that,
code, say 60000 for 48 K program is safely stored on because CLEAR is not used, all
a machines. Line 5 sets RAMTOP to cassette, it can be loaded to of the variables are left intact,
one less than this address. When any position in memory by using and you are not left with the
loading has finished the the following sequence: unwanted renumber program in
program should be saved on the computer once it has
tape by using: SAVE "renumber" 1. Choose a suitable address
CODE 60000, 1140. 2. CLEAR address performed its brief task.
3. LOAD " " CODE address If you do ever wish to remove
You can now experiment witt 4. Make sure that first line of the code from the computer, the
O the program by renumbering th program is a REM following command is
uj 5. RANDOMIZE USR address suggested:
a. HEX LOADER program. Use
6. ENTER STARTING LINE, STEP SIZE
v> RANDOMIZE USR 60000 (or
whatever address you have Machine code buffs will detect
FOR N=address TO
address+1140: POKE n,0: NEXT n

68 ZX Computing Monthly • April 1987


120 FOR G=1 TO 8 K/9)
130 LET B Y T E = 1 6 * ( C O D E H * < l > - 4 8 - 7 7 0 IF D I G I T O V A L C * T H E N PRIN
(7 AND H * ( l ) > " 9 " > ) + ( C O D E H « < 2 ) - 4 T "Error in s t r i n g - input agai n
8 - ( 7 A N D H*(2> >'9») ) •S BEEP .2,-12: G O TO 7 0
140 POKE F - 1 + G , B Y T E 230 NEXT F
150 LET C H E C K = C H E C K + B Y T E * G 240 PRINT F L A S H l;"READY T A P E
160 LET H » = H » ( 3 TO ) FOR S A V I N G "
170 N E X T G 250 S A V E " r e n u m b e r " C O D E 6 0 0 0 0 , 1
180 INPUT "Enter check digit:"; 140
LINE C * 260 CLS
190 IF LEN C*<>1 THEN GO TO 18 270 PRINT F L A S H 1 ? " R E A D Y TAPE
0 TO V E R I F Y "
200 PRINT TAB 2 7 ? " > "?C* 280 VERIFY "renumber"CODE 60000
210 LET D I G I T = C H E C K - 9 * I N T <CHEC ,1140

renumber.
saaan
3FFF?1003B36F123
3 6 r 3 ? 3 3 6 C 9 C D003B
)
»
2
7
603R4
6039?
7 3 t RT>03AFCF 1 7FFF
FC7R391607010000
»
1
3
4
6076B
60776
2BBE70FC237323D3
5E2356E5EB160059
> 0
> 0
isaa i<i 1 1 1000A7FD57IB34 ) 3 60400 7FFFFC7R 1 3H3F360 > 3 60784 A7FD573BI9FBF172 > 5
A0074 000000006B6BB05A > 6 6M4MR 69*0*97979|07PB6 1 0 6079? 7B73DIEI23232323 > 1
A0037 IC024EAA00130000 > 7 604 1 6 004F09444PF1ni73 1 7 60800 73737FFE7AC24AEC ) 5
0304B0I30080ia«a ) 3 60474 1RF673I37R06FD43 1 R 60B0R 737FFF2B280CFE0D > 0
A004R P0AD0000C63A80F0 1 7 6 0 4 **7 lirFC 1 RI)9F043nFFfI ) R 60816 CA46ECFE3ACA4AEC 1 7
A0ff*6 0C004 70080CC4C0I > 4 60440 7AnCErFn3Rt»FFCA7 1 7 60874 18EE237EFE0ECA84 ) 1
60064 8D00R19900001F«a ) 0 6044R Fn3?3«1?7tDCFC11 > 7 60837 ECFE0DCA46ECFE3A } t
AM7? R07700007A038074 > 7 60436 I1FFC.3F0A7773 1 71.3 » A 60840 CA4AEC18ED2A333C »2
A00R0 0001A000B1990000 > 7 60464 3F007 7 1718F777DC 1 3 60848 ED4BDCECED3BDFEC > 7
A««RR 0R000I196C000600 ) 3 60477 FC 7 A 0 F F C A F R F 7 R F 4 > 4 60856 EB09EB424B702371 > 7
6009A 80 1 70000060080F5 1 6 60480 7A333C1807737373 > 7 60864 735E23562319ED5B 1 0
A0104 6 7 R 1 0 F 7 6 F 3 1 1 IR00 > 3 604RR 7373737FF3FH3R4R » 0 60872 4BSCA7EDS2300319 ) 8
A01 12 19E3C 1E1 1 1 D 3 0 0 1 9 > 6 60496 3CA7FD37FI I»?A!)Fn 0 60880 18E2C90000000000 > 8
A0170 F5111D00A7ED32EB > 3 60904 FF0n?6FAFE0F?8E3 > 5 60868 0000000000000000 ) 0
A017R F13FtCF5D50A5703 » 3 6031? FFFC7810FEED780C 1 0 60896 3C00000000000000 »6
0A".F03rB7ACPPA?8 > 7 60370 FFF77B0BFFCA7B04 ) 4 60904 0000000000000000 ) 0
60144 03A7ED37I80119D1 > 3 60378 FFF370D6737FFF0F > 3 60912 000000401000007C > 5
6013? F30A0376006F19EB > B 60336 7B0AFF0D7BCBFF3A ) 7 60920 0000000020000000 ) 7
60160 F17373772BF13D70 1 3 60344 78CB1BF0737323F3 > 1 60928 42183C3C08004400 1 6
601 6R OA7A333C06042310 > 3 60392 3E2336D3D3E11B1E > 2 60936 0000001040007C00 ) 1
601 76 FD7FFFFA287A181C > 5 60360 3E04A7110A00ED32 ) 7 60944 2000004000783842 J 2
60IR4 4F4F 204 1 4 3544 94F > 0 6036B 3810115A00ED3238 ) 0 60952 3878446820381C00 } 6
60192 4E 3 A 0 D 4 6 4 9 9 2 9 3 S 4 1 4 60376 0A118403ED523804 ) 6 60960 9928424218004838 1 3
60700 CAC3EA53S4413445 > 3 60384 18033D3D3DC9CD90 > 1 60968 7878383840004 238 ) 2
60708 4D4S4ES42118EB06 ) 6 60592 EC08D12A333C0100 ) 3 60976 28381C4030444442 1 2
60216 1C7ED72310FB183A > 7 60600 00037E23BA20047E ) 0 60984 444444543C44 2000 ) 2
60224 08F3C D9CF BF10871 > 7 60608 BB281823055E2356 »8 60992 A108423C28007044 ) 1
6023? D3FD11C0500607C5 > 2 60616 2319E3A7ED3B4B3C ) 4 61000 4444441078007C04 } 1
60240 D30604C3D306707F ) 1 60624 E D 5 2 E 1 D 1 3 BE306E1 » 1 61008 3 0 4 4 2 0 4 0 1 0 4 4 787C »3
60240 12D51412D1132310 > 2 60632 C34AEC210000110A ) 5 61016 784444S4227B2000 ) 2
60236 F6D11414C110ECD1 60640 0019087BBI20FAAF 61024 A1083E4248004878 > 3
60264 06701310FDC110DF } 1 60648 EBE1732372D3F5FR J 3 61032 444478104400423C
60272 71C05A0640367223 » 3 60656 CD90ECE1D t 2B7B7B > 8 61010 3078P040I0444044 > 5
60200 10F B010000C 3 3 D 1 F > 8 60664 2B4 7 0 8 4 F B 8 2 8 1 A D S > 7 61048 4044445422402000 > 6
60788 494F303334703334 ) 1 60672 C51600S9A7ED9242 1 3 61056 990802427E004440 ) 5
60796 4152347D4C494E45 } 3 60680 C0EB19C1D1C5D548 »5 6 1064 4 4 4 4 4 0 1 0 4 4 0 0 4 244 ) 6
60104 2020333443302033 ) 1 6068B 0600CD5316EB23D1 > 6 61072 2840207E38443C42 ) 1
6031? 60696
} >
493A430D7180FB06 > 6 C1C5782B10FDE5C1 5 6 1080 3C4438543C3C2000 0
60370 1C7ED773I0FB7I00 1 7 6 0 704 D3E1E3FE04280AFE > 3 61088 423E3C3C0800423C 1 8
6037ft 3BF3F3060036W073 > 1 60712 032B0CFE02280E18 ) 1 61096 44443C0C44007C3C } 5
60336 1 0FBF1CnnF133A0B 1 7 60720 1211E803CD4BE D11 > 7 61 104 243C200000000000 I 0
60344 3CFF0D7R0CFF7C7R 1 3 60728 6400C D 4 B E D 1 1 0 A 0 0 ) 3 6111? 0000000000000000 ) 9
603*7 0RFF303BEFFF3A30 > 3 60736 C04BE0110100CD4B 1 6 61 120 JC00000000000000 > 6
60360 FAF3T371010I1101 » 7 60744 ED18«EAFED523803 ) 6 61128 0000000000000000 > 0
60360 aar l>R30-*F 1 F 1 F F 0 D > 0 60752 3C18F919C6300203 ) 3 61 136 000000007A535C01 1 1
60376 7R09F3O7F1063077 ) 3 60760 C9D1C5E1C1E53E0D } 1

ZX Computing Monthly • April 1987 69


kt

tack n l c g

\nic5
Part 3: Toni Baker
goes wandering
into some 3D
10 RANDOMIZE FN G (— 10 ,10,10, 10
,1,1 ,40,33402)
landscapes. 20 STOP
elcome to the final part of this 30 DEF FN G < X,X, X , X ,XX,,X , X=u
)
series. Take a look at the screen
dump included in this article — SR 3 3380
this is just one possible output of
the program listed here. As you Figure 1.
can see, it has a number of
interesting properties. Firstly, it is Rule one — the subroutine must Such a subroutine may be
a three-dimensional graph. assume that on entry the placed at any address, and
Specifically it is a graph of the calculator stack is empty, therefore It Is possible to contain
function. containing no entries a library of such functions in
whatsoever. memory simultaneously.
Z= SIN(R) Rule two — you are allowed to Once such a function
Where R = SQR(X2+Y2) make use of calculator subroutine exists in memory, it is
memories MO to M3, but then easy to draw the graph of
The function, as well as the memories M4 upwards are it. Figure One shows the BASIC
boundaries and scales of the strictly out of bounds, and program required to draw the
graph, can be easily changed. must not be corrupted. screen Image shown. More
The program is therefore Rule three — sixteen memories generally, Figure Two shows the
capable of handling almost any altogether are used by the BASIC line required to draw any
three-dimentional graph. There main program, numbered MO graph; it is a use of the BASIC
are of course restrictions on what to MF. You will need to read function FN G, requiring eight
Is possible. The function must be at least two of them — parameters. The last of these
of the form Z=f(X,Y) - that is to memory ME contains the parameters must be the address
say, there must exist an variable X, and memory MF of the machine code subroutine
algorithm to convert given contains the variable Y. Your for calculating the Z values,
values of X and Y to a single algorithm must read these Figure Two explains the purpose
value of Z. memories whenever X and Y of each of the eight parameters,
But notice something else are required. with reference to Figure Three.
about the graph. Hidden detail
really is hidden. Anything which
falls behind a peak or ridge is
hidden from view, and is not yS A. ^.
drawn on the screen. Of course .«'. x x >.
— this isn't a true hidden line .<x ." x j t X _xrj K . x
algorithm. It cannot draw solid
figures — it is restricted to
drawing one very special kind of
three dimensional landscape, a
^pgx \A W W >V
graph of a function of X and Y.
The last subroutine in the
machine code listing {the part
labelled DEMO FN at address N S ^ ^ ^ ^ ^ & I Z / / \ / \ ». i K ^ - K A W ^
827A) is not actually part of the
main program at all. It is merely
the algorithm for calculating Z,
given X and Y. for the function Z=
3 SIN(R)/R (with R = SQRfX^2)). % t \
You can replace, or supplement,
this subroutine with similar
functions of your own, providing
you follow the RULES, which I
shall now explain: An example of the 3D landscape! that the program generates.

ZX Computing Monthly • April 1987 70


Figure 2.

DEF FN G(X,X,X,XfX,X,X,X) = USR 33380

RANDOKIZE FN G(X 1,Y1,X2,Y2,XH,YH,ZscalefFNaddr)

FNaddr = address of machine code subroutine

to calculate Z values of function,

Zscale = factor by which Z coordinates are

to be multiplied.

See Figure Three.

a UT tt

Listing
tl G_D>_CC«7_1 ncall hi dravT
JA aba AKtdravT)
m ncall H3 AfC(dn«T!,draiJI
iik aba AIStdnvrl.AICtdradl)

0J aubtract AS«dt»»T)-JlkJ<dr»Jt)
v> It tan A»(<l™wT)< AtO(dnw«)T
•KV, uy.
duel iui< W.HV
<Mi 1100 0000 junp tn>*,i>_«ll_OOIfr_? wuap I f lln* horlaontal-lan.

a g_n.cr feST 10 Svitch u l e u l i t o r on. B0 n«ii n R9,dn>A

u recall "4 pi*u tl ncall f 1

n r»c.i 1 ploU.plotY CO • t o r o no (MOja ruflbor of point* to plot).

w «fric.k \l\cr u l c u l l t « off. (-** If lln* go*a

casis CALL >DM.rr_TC_* A i - plot f CMrdiut*. Of Kim M . d w i

« R JtJ W 3Uch till* valMt CI • t o r . >1 (Mt contain* t r A n . v * n * di*n).

CIi»?9 cut JDO),F._TC_A A i . plot X c m d l M t * . 03 Mm XV

•Tt C,3_II._C;iT J«p if I coort too biff. a r.cAll W W.lincX

Id? „TI K,i_H_5*IT . ' w p [ f K coord ntqitin. ti ncall '> HV,lln*X.tin*Y

il U 1,1 L l . plot X c i M r t l m t * . a •ton B { j - f o r v a M c^ord of laat plot).

16*0 10 H.H) NLl p o i n t ! t o *fttrjr In c o l u m Ub;«f 0} <«im W.llam

ri POP u A t . plot Y caordlnat*. cj •ton v) [rjl- t r a n a v t r * * c o o r i of laat plot)

CO Hi" IB Mllurn i f T coord norcatlve. or M m M»


)«M VH C,C_Pt_KU Junp I f Y coord mcta t o o b i f f . (i ncall M

(ISO CP to CO n c a l l TO

J* e.c_a_ca Junp u n l o u t coord t o o b i f f . v> dlvld*

S_PL_>M
o
)BT LD A,FT A l - FT t o l l f o t l "Abo*. *cr.*n*. CI aten n <»1ia rails).

» CP (HI) M M m HI
yet c w.dia^T

Z
M >rtum i f p o i n t t o bo p l o t t e d BO n e a l l TO
1. •hidden". J» andc.lr Smtcn c a l « l a t « r off.

S t o r t mw n l m for tM* colwi. 00 K0P

s
77
47 10 H,A CWM0 CALL ? S K , n _ 7 0 _ A A i * rt>inb*r of polnta t o plot.

LS C.L n ;_»_LOOP HSi X A) (tjt1«

s<
4* C, B i » p l o t coortuutn. itiek ,nd i l T a c t i o n ,

K IK 1 icot Ji w,c_si_»ac »ufip I f 1 1 M t o t . dr.wn Ivnarlv,

CJIV3 CALL *Z,fJE5,PLCr_3tr» P l o t p o i n t u n : . . . above Hmn. tt K3T M Switch c a l c u l a t o r w.

« *CT M a n , O rrca.l W RV.IIMT

rt C_H._«tT K r A> Ha Lane* IB* i t i g k . AI conat or* itV, 1 lnat, 1


« *«r M m . Of
tj
aM
n u l l FJ
•Minor. 1
*»,lln»r*1.lln*T
a
a
CdW
r j T 79 tv4,lo-T
11
or
recall
•M
M t l , 1 l n * r « 1,1 l i w T . n t 1 o
H», H n . r . i , 1 i r ^ T . r a t 1 o
O
» c_js_ccirr_5 O
oc
r.c*ll rt to-K,to-T,plott juip forward).
ej •lor* {F-J B t n r . . U n o T , .plotT). a H3T 2* S w i t c h c a l c u l a t o r on.
03 nMnct 13 racall » KV, N»r
Cl •TON ML ( V I .1 n r . . J r » v f , • T d l a p f o r MAW), AI coent art* HV, 1 l n * P , l a
01 nchuit 4lMl,t»4 0} •ubtract •r.iiMV-t
tl W,lln*r-1,llMT
2
£4 mat) K« d n W T , t o - K , pi otX rtcall "J
M •tor* W (R *tor** llMl, .plutx). tl ncall H KV,! ln*r-1, 1IMI, nt lo
0) •IMIHI OJ aubtract Iff, 1 lnaT-1, l l n ^ N r a t l o
co s t m n (K eton* I n r i , - X d i . p f o r tRAV), E> C_=B_CC«T_) •tor* t t ( y j i - now t r * j i * v * r a * p l o t poaltlon).
07 or ) r . w « t » f > <* i r w T i i O f e> • t o r t US t f l " - n*w t n J w v a r * . p l o t poaltlon).
COM i rv., V_C ' Junp u n l H B both dlip'.AC«Mnta i*ro. ot l l M l HT.lln*r*1
JS « ( « > • o*w forward p l o t poaltlon).

O
•ndcalc •tor* »
M SIT Itiun, C4 •ton M (J44i. now forward p l o t poaltlon).

ui
a.
oo

ZX Computing Monthly • April 1987 71


U11J
0! Mitt in CWNl CALL 9IBt.S_Cl.afl Cel ar coail m Labi*.
>1 dupc l at* HV.KT 01^000 Lt SC.0WJ BCt* no of Ofo l o reqd Tor reoiorl**.
0007 Juap lrue.C_;*_CaifT_4 {Jupp If Una horllonlal-teh). rj •37 JO Croat* roo* for iteaorlea.
u recall HI w.piotr a U D£,HL KLi point* to a*aorj iero.
B MAIL KV.plotP.plotT muse L> (w).ia. Store In •/•Lee variable.
C4 •lor* N4 n*v plot X coordn i ate). cEi 4* Ul C.41 BCe l 0041.
at 4*l*ta OT.pl etr 09 A30 HL.K KLl polntit to eeaory n.
« •Lor* (*>la new plot Y coordn i ate). a »» Sl.ffl. point* to neaor ep.
0? Mm HT 0174 LB C.74
J* •wtich cac l ua
l tor off. JAW ID n..(3TVBni) KLl point* t.i'fj cac
l ua
l tor atack.
cmcei CALL aC
i O.C_P.C
lT Plot natt pon i t Oft lint. Lin Coot top *ev*n tieaa froa cac l ual tor
CI POP BC ataci Into wuiiH rt to IC.
oj BSC * Bi- no of reoalnin* point* to plot. 1> me a
Ci K J»W LB (3>KBia),IL riaaov* thfe** iter* from cacl atack.
»0J Jh t.O_a_i OJl 7 Junp If oil point. plottad. 11 POP ML KLl* eutroutin* addrcaa.
n POP 1> 2*ro riHI* direction of lint. rrtiY- LV (RgOOT),HL Store In irpWT) temporarily.
1BW C_»_U»P Looptar«t« da rwfellpoint*. CP Ot ?8 Swtich on tha calculator.
a nST !»
07 4ltltt A
! ?C •ti 4*L* 2*/a*(}) m/setn 5)
X •ndcaol (aa u c® j4 x)
F1 KP AT Bka
l nc* th* (tuck. » reoell MB ?5*/9»(J )Ji!
latun. B> recoil M
•MS SIBl 01 •vHnct
JOI OBO O.jLKA» Li W.,6000 HL J ptfe to let bjrtt of eou l an ublt. K recoil Iff
itotw U> DC.S001 HE) pt> to ?nd byt* of colon Ifetlo. (7 refill P7
WfK© LS !CC
. Cf> Ki» lorifth of col tatle. l*a* on*. o» •uMrsct 2M/S4R( J) .X7-K1 .YJ-T1
70 u («.).> Dowt rim brto. OF •44 W/S#( J). (X ?-X 1 1)
LDB fte**t raaan l Lnc 1tL*h. 0) divide ))*((if-«0»<«-ri)))
W RET Mull. CD fetor* JO (N*eofy »Q contan i a XYSCA1I).
0? dee l te
CUT. *t«l 19 recoil m 77
aW G_ccxv.-Jr m *,<*»«*•) MLs- ad-rlea* or functo i n nbroatIn*. CT •tore » (HaMry rr contan
i * 7, «Y?).
CUPCK CALL >6JC.CALL_J WF Coll thi* tufnrttMi to dee l te
W P3T J« 1 EB C_L00P_Yt recoil * II
K PtWlt IC Z.£*oal* CI •tor* It HE contan
i * X. .").
04 •uliiflir «• (oZOZfCfetl). » dee l te
a CKil) P8 t'.I} » tndcec l SwLlcn cacl ual tor off.
R9 ml) H) cac4»t CALL «C l 4,G_PLOr_)0 Plot fir«t pon i t no cure*.
or lU !• ,X»*77 a (EST 78 Svitoh cac l ual tor on.
IX null rr l>,X?e7?,X vz c_iocrjit recoil rx X
a retull N I" .W*7».1.7 IA recall KA X.XI
Of <41 Z'.IJ.YJ.I.Y 0) •utdroct HI
oj MMrtd i«,(M4T7)-{*«r) CI •tore XE (D*cr*nent X vau l e Ur XI).
CD null :*S X',(j»«T7)-<x*T)jnr*cfei* a> recoil Hi X.XI
04 •luiilji z',UX7.r?Mx.r)>«r«ai* OJ nlitnrt Ml
Of •M l'.{{X}.YJ)-(X.Y»«IY»cal» * It lero I<*1T
i: unit half r.((x?«v7).<x..r))«*7*cai*, i/i 0008 Jwp lry*,C_SXIT_l Jnap If X now e l an than 11.
» 1M r«((x;.r})-(i*r))«'rfecfei*>t/7 » endcoc l Swtich cac l ual tor off.
71 IK rlotY CIZM1 CALL B1L0,G_»AVK)_JD Da rw ne*t **4ii*nt of turn.
n recall plctY.i; a «3T 1» Swtich cac l ual tor an.
K7 recall n pletr.li.YI )jri u
j ap C_LC«PJt1 Juap back to contn i ue drawlni curve.
0) hjMratl »iotr,x;-ri tr 3_oir_t recall 1* r
•I IKill >1 ptotY.if-ri.i D recall »
If null u piotY.u-ri,*,r 0) •ubtract T-YI
oj •attract pictf,i?-Yi.*-r C» •ton rf (Dacr*a*nt * vaw l * Of YI).
0! htlnd piotr.(j?»*i)-<x-Y) 17 recall K7 r,ti
0) ovMnct T-T1
574) 4lk <tata JJi( J} plotY.(W-TlM*-r).S(*(5) * It tero T*rit
(41 » IJ W 4J) 30 net T>.T17
04 mltipiy pH.lY,{(«?-Yt)-{*-T))*Slif( J) oov true C_L00P_T1 (Loop back if T (till la rar<»).
sr. I*C*ll « i,iDtY,((77-Tt i-(n-Y))«3»>i[ 5 ;.rr>e«:»
o 04 ^uiiipir
n
coewi
ndcae
CALL BU
l
l .C.CLUUt
Swtich cac
Ce
l ua
l tor off.
l ar eolun taba l a^ani.
Z A? eaMt half •lotY,'(IP-TtM»-T))*S^( ?)"TT»e»lt
.1/7
n
EB
H37 79
recall MB
Swtich cac
12
l ua
l tor en.

s or
J7
•44
lilt
plotY,( (*?-T1 H*-T)
• 1/2
plotT.ploU
5)HT»cie Ct
w
E9
•tor* Mf
dee l te
retail fl
(H*aor ratwurn* x. aX2).

5 01 *c
i ha*v* ploU.plotY 0 •Lor* HP (Mtaory n* contan
i * 7. -Y?).
< J« anducl 9>lt«h illnlitnr off. 01 dee l te
on « SET Mun. )• eodcae l Swtich cac l ual tor off.
CSC4I CALL SIC4,C_rtOT_J> l Plot t IreL pon i t on cure*.
cue aC i4 17 «ST 7> dwtich cac l ual tor «.
O CW*'
ff
S_ftOT_)S CALL. B1?»C
MT ?B
, _CCWW7 Cfec l ofleto FlOt coordtnoM
plMl.plotT
l . u
a
0_U0P_Y» recall 1¥
recall 4
7
Y.YB
O C5
0?
•I on
Mitt
(PH ccntfeu
po l tx
il plot*). OJ
CP
•gptract
•tor* IV
7-TH
(Decreaenl 7 valu* bp YI).
tt
a. C4
H
J*
•lor* K4
4*1*1*
(IMi caiUlu plotX),
a»llch cac l ual tor off.
V
0J
v>
recall K7
•obtract
It uro
7.71
7-71
T<717
co
j cei JP 9!00,C,_PLOT Jufep to plot point. 000* u
j ep Lrve.c_oiT_7 <Juap if 7 now l**e than 71).
2 JO eftSeae l Swtich cac l ua
l tor off.
cnc 4ix EAUMI CAU «ID0,G_IKAir0_!t> Pa
r w nefet B^fwanl of curve.
ctwi CALL «I?N,;_cc«VI>rc CiltvliU ai¥_T0 cocrtlmtM. 0 ur » Swtich cac l ua
l tor on.
CKWI CALL 91»,C_IRAVro IfM th* lino. J*' u
j ap S_tC0PJTI June La£k to contn i ue drawn
i g curve.
C3S41* CALL t* pnur korj mnd< n; c_«irt_» recall "E X
8P7BII jp »c,t«7».n3an_L Cmintt VUf report if *o. u recall n x.xx
O e» NSR rthtnlw return. 0) •abtraot
•tor* fS
X-XI
(Decreaent X vau l e t? XI}.
iii B ojaits
eft; BIDD
MB n. Stock aubroutn
l * *44re»*t.
CI
A recall its X.XI
o.
</>
72 ZX Computing Monthly • April 1987 72
urn
aubtract H I ft BOB_m nsrr » Switch c a l c u l a t o r HI.
«J
It «*ro *<J1f IS r a t a l 1 YS. X
5*
» • not I >411 31 dupllcat* t.x

OCT Jaap lnii,C_LOOFJL? (Loop tack I f K ( t i l l la rtrjt 04 mlllpljr t*


lo ; r«» M i l t :ur»»!. 0 rocall IT

J* *ndc*lc Switch c a l c u l a t o r off. )1 dvpl l c a t * I'.T.T

LD HL.RXBCT 04 nltlply J?.!*


jjt>sy; LS ( t o n ) , I K R f s t f f v calculator hmtIh. CF •M

RET k*t«r». M *ir

)l dupl i e a t * 1,1
OHG rtt<i4 JO t#ro
m_aio U> H L , ( B D 4 i a ) HLi p t l t o u i * r d*f|n*4 FK r e c o r d * . cooa ,'uap t r u * . : r _ E a » (Junp I f K-O),

2S sue to. ji dupllcat* it, n

IJ IDC KL HLi p o i n t * t o n * i t triwnt. if •la

C»*5J CALL ?JW,3T*C*_W f w h W^HMnt onto c a l c u l a t o r ittct. ot •ichonff*

7t is MttO » 41*14*

» ISC HL HLi p o i n t * t o n n t mort. •ndcalc Suiteh c a l c u l a t o r off.


I EC cf ic c? Mr R*t*r*.

jar} J* Loop t . c « u n t i l a l l arfiit on c a l c * t k + o wr it

CP»1« c m i*y?,n»5_iirr? M u function *ubroutin* addir**!. 03 4*1*1*


to L i H.J 11 ccnat en* 1

» LO L,C Ml I * f u n c t i o n * u t r o u t l n * addr***. ( . 1 1 * 1 1 of S I » | » J / » * * k 0),


C33D1 jp 3tM,c_5Ria Jurp t o d m end. 5* indcalc Switch c a l c u l a t o r off.
CHC » 7 * e» W k*tmm.

Figure 3.

which explains six of them full width of the screen ensuring parallel to the Y axis are drawn.
diagramatically. maximum possible resolution. In each case the lines (or to be
Figure Three in fact shows a All you actually have to worry more precise, curves) are drawn
bare grid, without a function about is the range of values from front to back. It is because
imposed on it. (You could argue allowed by X, and the range of the curves are drawn in this
of course that it shows a graph values allowed by Y. In this order that the elimination of
of the function Z = 0, but that program the X values range hidden detail is possible.
would be trivial). This grid is from X1 to X2, In steps of XH. If any part of a line falls
converted into a 3D graph (such while the Y values range from Y1 behind already existing detail,
as the one whose screen dump to Y2 in steps of YH, so you don't then the hidden part must not
is shown) by elevating (or necessarily have to start at the be drawn. By working from front
perhaps lowering) each point on origin (although of course you to back this decision is easy to
the grid by the Z value can if you want to). make. If a line Is intended to be
calculated for that point. The drawn above all other parallel
grid will therefore "warp" into a lines, then the line will be visible,
three dimensional graph. Algorithms and must be drawn. On the
Although the scale for the Z other hand, if a line is intended
axis must be included by hand Let's have a look at the main to be drawn below any of the
as one of the parameters for FN program itself, and see how its parallel lines, then it is hidden
G. the scales for the X and Y algorithm works. The first thing to and must not be drawn.
axes are worked out note is that the graph is drawn In practice, however, whole
automatically by the program. in two passes. In pass one the lines are not always either
The scales are chosen so that lines parallel to the X axis are completely above, or completely
the graph fits exactly across the drawn, and in pass two the lines below, other detail. In practice

teen nica
ZX Computing Monthly • April 1987 73
UW
only po/t of a line must be coordinates are held in coordinates plotX and plotY from
drawn, this means that the DRAW memories M4 and M5). It the graph coordinates X, Y and
algorithm in the ROM is no good compares the coordinates given Z, using an isometric projection
to us, and we must rewrite one of with the column table, in the algorithm similar to that in Port
our own. The decision process of manner described above, and Two of this series. On exit, the
whether an individual dot PLOTs the point only if it is not screen coordinates plotX, plotY,
composing part of a line is to hidden. are left on the calculator stack.
be plotted or not Is still, however, The second subroutine Is In that order.
tremendously easy. G DRAWTO (address 8128). This Then we have the subroutine
What we do is to construct a is my own version of the DRAW G PLOT 3D (address 81C4),
table, at address 8000h, of 100h algorithm. It will draw a line which is used to plot the
bytes. Each entry in the table beginning at the point whose endpoints of the lines. On entry
corresponds to a pixel-column screen coordinates are held in the graph coordinates X,Y must
from the screen. Whenever we memories M4 and M5, and be stored in memories ME and
plot, or attempt to plot, a point ending at the point whose MF. The subroutine will convert
in the screen, then we must screen coordinates are at the these to screen coordinates
examine the table enfry top of the calculator stack, in before attempting to plot the
corresponding to the column the order X,Y. Instead of actually point.
number of the point. The table plotting each point on the line, G DRAWTO 3D (address
contains the height, In pixels, of however, it will subject each 81 DO) is very similar. It takes the
the uppermost plotted point on point to the G^PLOT algorithm graph coordinates X and Y from
the screen in the given column. above, to decide whether or not memories ME and MF, and
If the point to be plotted lies it is hidden. converts them to screen
above this point then it may be Next we have a nice easy coordinates, and then proceeds
safely plotted and the table subroutine, G__CLEAR (address to draw a line from sceen
entry updated. If the point to be 818B). All this does is to empty coordinates M4,M5 to the point
plotted lies below this point then the column table ready for each calculated, hiding any points
it is hidden, and should not be pass. which need to be hidden. The
plotted. If we now take a look at The next subroutine is called subroutine also tests whether or
the machine code itself, we G_CONVERT (address 8189). Its not BREAK is pressed, so that you
shall see this algorithm in detail. purpose is to convert three- can break out the program
I shall explain the workings of dimensional graph coordinates before it's finished by pressing
each subroutine as we come fo to two-dimentional screen BREAK or CAPS-SHIFT/SPACE.
It. coordinates. It takes the graph The subroutine G GRID
coordinates X and Y from (address 81DD) is the main
Routines memories ME and MF algorithm for drawing the grid. It
respectively, calculates the is in three parts. The first part is
The first subroutine is called graph coordinate Z using the concerned with initialisation. It
G PLOT (address 8100). This Is subroutine provided by the user, creates the sixteen memories
the subroutine which attempts to and will then proceed to required by the program and
PLOT a point (whose screen calculate the screen Initialises memories M6 to MD.
The values for M6 to MC are
taken from the calculator stack,
and are the first seven
parameters supplied by FN G.
Figure Four The value for MD has to be
calculated, and this is done
These are the calculator memories used by the program. Note that the here. The final two parts are the
first six of these variables are multi-purpose, so that different variables first and second pass of grid
are stored there at different times. drawing. On each pass an outer
Any line-segment drawn by the program is defined as being either loop varies Y (or X) for each
"horlzontal-ish' or 'vertical-ish", depending on its slope, for "horizontal- curve, whilst an inner loop varies
ish" lines, the FORWARD coordinate is always the X coordinate, and the X (or Y) for different point along
TRANSVERSE coordinate is always the Y coordinate. For "vertical-ish" that curve. Finally, the calculator
lines the reverse Is true, with the FORWARD coordinate being the Y memories are restored to
0 coordinate, and the TRANSVERSE coordinate being the X coordinate. normal. Note that on entry HL
must contain the function
Z
1
subroutine address.
MO drawX DRAW displacement in X direction.
dispF DRAW displacement in forward direction. The final subroutine in the
M1 drawY DRAW displacement in Y direction. program is called FN__GRID
s< dispT
ratio
DRAW displacement in transverse direction.
The ration dispT/dispF.
(address 8264), and it is this
subroutine which transfers the
parameters supplies by FN G
M2 lineX X coordinate of next point on line.
Forward coordinate of nex point on line. onto the calculator stack (and
QC lineF the last one Into HL) before
o
M3 lineY Y coordinate of next point on line.
lineT Transverse coordinate of next point on line. leaping into G GRID to draw

o the actual graph.

at
M4 plotX X coordinate of point to PLOT,
plotF Forward coordinate of point to PLOT. The subroutine DEMO FN
M5 plotY Y coordinate of point to PLOT. (address 827A7 is not a part of
plotT Transverse coordinate of point to PLOT. the main program, ft is, rather,
a M6 X1 Lower bound for X (see Figure 3). an example program, intended
M7 Y1 Lower bound for Y (see Figure 3). to be replaced by your own
2 Upper bound for X (see Figure 3). efforts, as described earlier.
M8 X2
M9 Y2 Upper bound for Y (see Figure 3). This program concludes the
MA HX Step size dividing X axis (see Figure 3). TECHNICAL GRAPHICS series. We
MB YH Step size dividing Y axis (see Figure 3). shall give graphics a break, for
MC Zscale Amount by which Z coords must be multiplied. a while, but graphics enthusiasts
o
III
MD XYscale Half of amount by which X and Y
coordinates must be multiplied.
have no fear. A new series
entitled 3D-GRAPHICS Is planned
for the not-too-distant future. Until
a. ME X General X coordinate (3D). then, there'll be some surprises.
MF Y General Y coordinate (3D).
CO Good programming everyone.

74 ZX Computing Monthly • April 1987


Lettahead+/Dumpy
Bradway Software
£B.50/£9.00
•Recently, Carol Brooksbank
gave some beautiful examples
of screen dumps, posters and
tickets, with hints on how to
produce them (ZX, Feb 87). One
of the difficulties of this sort of
thing is that you need a good
collection of dump routines to fit
your printer/interface combin- you with this and allow you to hensive library of short routines a
ation. As there are lots of merge one SCREENS with range of stand-alone, relocat-
interfaces and printers, you can another. able machine-code screen-
be left with quite a problem to A strength and a weakness of dump programs which will suit
get your masterpiece printed, the program is that a large your printer/interface
sometimes soluble, it's true, but amount is in BASIC which means combination. Dumpy allows you
only if you are prepared to that it is very user friendly to choose between normal or
spend a lot of time. (although system errors have not sideways dumps, plain or
Bradway Software have been been trapped), readily adapted, shaded dumps, and there is a
producing programs that are. and, most important of ail, can whole range of widths, heights
literally, just the ticket. Two be restarted on crashing without and printer densities to choose
programs, in particular, sort out losing the picture. It also means from. In addition, one can
virtually all these sorts of that cursor movement, erasing specify an area of screen and
problems, enabling you to and printing to the screen are use an auto-start to skip over
product a variety of machine all fairly slow, and one would blank lines at the start or finish
code dumps in an enormous not want to use this program for of the picture.
range of printer/interface printing out many pages of If you have done something
combinations. fancy text. silly like trying to locate the
Letta-head plus is designed The best feature is the way the machine code in the middle of
primarily to allow you to print program will deal with a huge the BASIC program area, a large
letterheads, labels or small range of printer/Interface black warning appears on
tickets. A special feature lets you combinations. In addition there screen, but you are still allowed
produce labels, three in a row if are hints and tips for dealing to proceed: in other words it is
necessary, and a variant of this with "not quite Epson-standard" designed both for the nincom-
gives you ready-outlined printers including the Brother poop and those who blind us
cassette labels. and Centronics GLP. and even with science. Finally, you get the
Cassette, microdrive or Opus the "not nearly Epson-standard" option of saving the code
disc versions of the programs are Smith Corona Fastext 80, for and/or testing it, for which a
available for an additional which a special machine code coloured screen is loaded.
£1.50. Typical of the care taken patch is included. All in all, I Again, this program has been
to cover all combinations is the found this to be a utility program carefully put together with a
inclusion of a Wafadrive version which has had a great deal of comprehensive 12-page hand-
on side B of the cassette; this is thought put into it, is very well book neatly printed in stiff card
because the Wafadrive uses documented and, within its covers and including a helpline
much more of the Spectrum limitations, does what it was for those in need.
RAM for its system variables, intended to do with a minimum Both programs are available
buflers and directories than a of user-hassle, and I would from Bradway Software on
microdrive, and it was therefore recommend it. cassette at £8.50 for Dumpy 3
impossible to include the Unlike lettahead. Dumpy does and £9.00 for lettahead+. micro-
Wafadrive printer interface not have built-in type fonts and drive cartridges or Opus discs
version within the main program. design capabilities. What it does £1.50 extra, including post and
The program itself comes with is to assemble from its compre- packing.
a choice of five assorted print
styles already available, and a
further twenty replacements = c u r r e n t s t a t u s
which can be selected from a
menu and loaded: or you can
load in your own favourite fonts h i Lde r bay I n t e r face 1
or use a font-editing/designing K e m p s t o n H^KW&IMIfltf
program (also supplied) to
create your own designs. The T a s m a n z x L P r i n t I I I
program enables you to print to Mo r e x cent d K ' t r on i c s
any part of the screen in one of Opus RamPage
these lonts, put a box round if.
invert an area, scroll any part of 5 1 2 8 R S 2 3 2 I n d e s c o mp
the screen in any direction
(grand if you want to centre a r r i a g e r e t u r n code I
things), invert or erase an area
and put in a grid to help i n e f e e d code
planning. The art subroutines are rograrn L i n e f e e d s IMI1II
pretty rudimentary (plot, draw, (ON to p r i n t >1 L a b e l w i d e ! )
arc, circle and rapid fill); this is
not a substitute for a graphics
program, nor was it intended to b a c k - u p copy
be so. Any SCREENS from such a
program can, however, be
loaded, edited and used as
part of the display: a scratch- e s i g n a v e at mdv
pad/memory is provided to help e ad i n g e Load r a s e md v
n t e r faces F i Le on t s
[ ® f i l to qui Re Load DG
ZX Computing Monthly • April 1987 75
AND
CHANNELS
This month, Ton! Baker As with microdrive files,
RAMdisc files must be CLOSEd
The RAMdisc memory itself Is
primarily organised by the
once all the data has been CATALOGUE, which is an index to
opens up a new printed to. or input from, the file. all files saved in RAMdisc. The
If a WRITE file is not closed then CATALOGUE resides in RAM page
channel to the 128's some or all of the data may be seven. It is effectively a stack,
lost, as it will not be cleared which begins at address 7EBFF
RAMdisc facility. from a special buffer. If a READ and grows downwards, with
file Is not closed then the each entry taking twenty bytes.
consequences are less serious, Figure Two shows the meanings
however, each RAMdisc channel of these twenty bytes, with IX
T his is the final part in the requires more than VaK, which pointing to the first of these
Streams and Channels series, may only be reclaimed by bytes. At the end of the
and this Is an article for people closing the file. You should catalogue stack is a twenty byte
who own either a Spectrum 128 always close such a file once "End-of-catalogue" marker, only
or a Spectrum 128 +2. This you have finished with it. three bytes of which are used.
month's new channel introduces Once a file has been The system variable (SFNEXT)
SERIAL FILES to the 128K opened, it will appear In the points to this marker, and is
machines. RAMdisc catalogue, which you effectively the stack-pointer for
People who have Interface can verify by typing CAT! in this catalogue stack.
Ones and Microdrlves will BASIC It Is impossible to LOAD a So long as we keep the
already be used to serial flies RAMdisc serial file using a LOAD catalogue in its required format,
on microdrive cartridge. In this command, however it is possible we can manipulate the RAMdisc
case you open a microdrive file to ERASE a RAMdisc serial file in organisation itself from machine
either as a READ file (if the file the usual manner, by entering code. This is the aim of this
already exists on microdrive) or ERASE! "filename". You should issue's program.
a WRITE file (In which case the never ERASE a RAMdisc serial file The RAMdisc files themselves
file must be created on micro- which is still in use (ie. which still begin in RAM page 1. and grow
drive). Vou can print text to a has a stream attached to it). The upwards through RAM pages 3.
WRITE file, and then CLOSE and machine code program does In 4, 6 and 7 (care is taken to
OPEN It (so that it becomes a fact protect itself from this ensure that RAMdisc files do not
READ file) and you may then eventually, so such an error collide with the catalogue
input your text as either strings would not be fatal, however — stack). To avoid any problems
or numbers into a BASIC you will certainly get spurious with this strange page-
variable. results if you break this ruie. numbering, all addresses in
RAMdisc are "page-coded". This
means that one register will hold
RAMdisc Silicon disc o page-code, while another
register-pair will hold an actual
The key to how the machine physical address. These page
RAMdisc files work In exactly the code program works Is the codes are 0, 1, 2, 3 and 4
same way, except that you don't manipulation of the memory sequentially for RAMdisc files,
need an Interface One. When organisation known as the with page-code 5 being the
you first OPEN a RAMdisc file for silicon disc, or RAMdisc, which is conventional notation for normal
writing, a file with a given name normally used to save programs, (48K) RAM.
Is created on the Spectrum's data, or machine code for as
so-called "silicon disc'. Text or long as the machine is switched
numbers may then be printed on. RAMdisc files are much Channel (R'
into this file. Once the channel is faster than microdrive files, but We shall catl our new channel
closed no more printing to the the whole of RAMdisc is erased "R", which stands for RAMdisc
fife Is possible. The file may, when the machine is switched serial-file. This is not to be
however, be re-OPENed as a off. RAMdisc serial files will, of confused with the ROM's internal
read-file. In which case whatever course, suffer from precisely "R" channel, which is used for
is in the file may be input into a these advantages and inserting bytes into normal (48K)
BASIC variable. disadvantages. dynamic RAM.

ZX Computing Monthly • April 1987 76


IM
R :hannel INFORMATION BLOCK

IX + 00: R_0UT Address of RAMdisc file output routine (=B92B).


IX + 02: R_IN Address of RAMdisc file input routine (=B7D4).
IX + 04: R_NAME Name of channel (= "R").
K + 05: R_IDEN New channel identifier (= 12J4h).
IX + 07: R_CL0SE Address of RAMdisc file close routine (= B96O).
DC + 09: R_LEN Length of channel information block (» 021B).
IX + OB: R_CHBYTE Pointer into buffer.
IX + OD: R_CHREC Record number within file.
IX + OE: R_CHNAME Filename.
IX + 18: R_CHFLAG Various flags, defined as follows:
Bits 7 to 2: Not used.
Bit •• Set if End-Of-File at end of record, reset otherwise.
Bit 0 e
• Reset for a REAL file; set for a WRITE file.
IX + 19: R_RECLEN Length of record within buffer.
IX + 1B: R_BUF* ER Buffer storing current record.

Figure 1

lnternal-channel:'R" is quite the location of a RAMdisc file is R OPEN. Four additional entry
interesting in fact. It is not constant — it may move points are Included, labelled
permanently attached to stream either If another file is erased, or OPEN 4, OPEN __5, CL0SE_4
minus-once, so to use it from If more bytes are inserted into and CLOSERS. Calling OPEN_4
machine code all you have to another RAMdisc serial file. This will open a RAMdisc serial file
do is select stream minus-one as means that the file has to be re- called "FILE1" and attach if to
the current stream (by loading A located every time we wish to stream four. Similarly, calling
with FF and calling address read or write into It. To save time OPEN 5 will open a RAMdisc
1601h). It is Impossible to use we make use of a temporary serial file called "FILE2" and
from BASIC Prior to selecting butter virtually all of the time. attach It to stream five. The
stream minus-one the system Figure One shows the actual routines CLOSE_4 and CLOSE_5
variable K_CUR must be made organisation of the channel will of course close these new
to point somewhere into information block for our R channels.
dynamic RAM. Printing to stream channel. Note that R_CHREC This means that the new
FF will then Insert characters into R RECLEN, and bit one of channel may easily be used in
dynamic memory at the point R CHFLAG are used only If the BASIC Take a look at Figure
indicated by (K_CUR). file is a READ file The remaining Three It contains a BASIC
Our new channel is also variables are used for both types program which demonstrates the
called "R". but its use is much of file. RAMdisc serial files at work, first
more exciting — and of course it To interface with BASIC an as WRITE files, then as READ files.
MAY be used from BASIC example machine code Try it — you may be surprised at
We require a channel program is appended to the how fast it all works*
information block over Y2K in end. Essentially, a RAMdisc serial Of course you won't always
size. Most of this is in fact a huge file may be opened by loading want your tiles to be called
0200h byte buffer. For reasons of the A register with the stream "FILE1" or "FILE2". and you won't
speed, the buffer is used most of number of the stream to be always want to use streams four
the time, with RAMdisc itself only opened, whilst the actual or five. That Is why the more
being accessed once the end filename is stored in the system general entry point R_OPEN Is
of the buffer is reached. It is of variable N_STR1 at address included, which, as has already
course important to realise that 5B67, and then calling the label been stated, requires that A

CATALOGUE INDEX INFORMATION

IX + 00: SFJiAME Filename.


IX + OA: Sf_START Page-coded address of start of file.
IX + 0D: SF_LEN Total number of bytes in file, including header info.
IX + 10: SF_END Page-coded address of byte beyond end of file.
IX + 13: SF_FLAG Reset unless catalogue information incomplete,
(ie reset normally).

Figure 2

ZX Computing Monthly • April 1987


STfcSAMS 1000 REM WRITE FILE DEMO

AND
1010 RANDOMIZE USR 47713: REM OPEN #4, "R__FILE1"
1020 RANDOMIZE USR 47720: REM OPEN #5,"R_JILE2"
1030 FOR I - 1 TO 512

CHANNELS
1040 INPUT HUNT I
1050 PRH7T #4;2»I
1060 PRINT #5?I*I
1070 NEXT I
contains the stream number, 1080 RANDOMIZE USR 47736: REM CLOSE -#4
and (N STR1) contains the
filename (with trailing spaces if 1090 RANDOMIZE USR 47740: REM CLOSE *5
required). You will have to write 1100 REM READ FILE DEMO
your own machine code to
patch any other combination 1110 RANDOMIZE USR 47713: REM OPEN #4,nR_.FILE1"
into BASIC, utilising this routine.
The potential for streams and 1120 RANDOMIZE USR 47720: REM OPEN #5,"R_ FILE2"
channels is limitless. It is
theoretically possible, for 1130 FOR I = 1 TO 512
instance, to have a channel 1140 INPUT #4;A
which utilises a RANDOM
ACCESS FILE, or INDEXED FILE, in 1150 INPUT #5;B
RAMdisc — though the program
would have to be much more 1160 PRINT A,B
complicated. I have shown you
enough of the potential use for 1170 NEXT I
streams and channels to whet
your appetite a little, and there I 1180 RANDOMIZE USR 47736: REM CLOSE #4
shall leave you. If demand is 1190 RANDOMIZE USR 47740: REM CLOSE #5
high enough, I may return with
more. Good programming 1200 STOP
everyone, and may the force be
with you.
Figure 3

EKRATUK
In OPEN_NEW at address B06D (Streams and Channels Part Two, January Issue, page 68)
there is an instruction missing. The instruction is POP BC (hex code C1). It should
be the eleventh instruction of the routine, occurring between OR C and JB Z,0PEN_NEW_2.
Sorry about that.

Figure 4
0
z Th» fall <mlnf are VKtcrri roulir... in th* Sp*ctrunf* ft CM 0, Hot Ice that {Mr, .rr two ce KFT ; Solum If uliv etandard

1
PAJ*.
alternative such T«Vor tables, on. for th* Spectrum and on* for I he Thle I* c YIA Bit 6.K
because Ih* two nctilnes r*ve different KCfto. It tlx *<* of Ih* I* clwi^ at *4» CO Feturn unl**« KL ha* croaaad

<
HIT SI
lnd*fin*t. point In the fvtur*, th«n it will bt n*c***ary to r*wrlt* tua ub)> furth*r. a w* toundry.
CV4 SRT 6,11 Correct addraa* in HL.
CMS HFC (S|Hlna 11» only) 0) asc > Docr*c*nt pax* cod*,
CJACOJ V_Bi!M> J7 C^J£ J.rt.ntt* an orrar report, C? r<rr Return.
CJtiK 1C44 ChMfe cumnl Mf ]«x*.
CJJ71C Y_*Q1CAT
at ejrjie T_SfACE
JT 1C97
JP ICt)
Create r*w entry In catalogue.
Ensure enough (pace in UHlic area.
The following subroutine works a Ml U » a glorlfl.4 L'JM instruction. which works la
HAM lac area a* well aa In standard wtory. It* action la l*.r**foldt (1) JwrfNnt SSL
O CJUlO
OJ61D
JP 1D1?
JF 1356
FlM ctll'.Mw entry for fllaaua,
Tidy up last oatal<«we entrr.
And BHL'f (?) Load one byte irow addraaa (PHL) to addraae (BHL')t (9) If ML la not
aqual to CDI than to atap (t),
O CDC KPC (Spectrin 1?s • 1 only) CFC B71A
oe
a.
v^tjatcp JP G*n*rat* an error report, CDO07 CAM B70E,OK_teL Dacrennrt addraoa In EHL,
CJ9J1C JP »C*J Chance current UK pace. V} ax

2
CJKIC T^KKWCAT JF 1CH6 Create new entry In catalogue. C0007 CALL S70S, DCC_5HL >•• rar*nt ;**t-eo<Jad addraaa In BHL*.
C5i?ia T_3P»CE JF 101} Knnutr* enough apaca In RAWlec area. w ni
CJJ110 Y_FIKS JF 1831 Find catalogue entry far fllenaae. Tfl L0 A,B Ai« pacing code of KB Of addraa*.
C)T1U> 7 JF 107} Tidy up laat catalogue entry. cmK CALL KJT,V_f*3t iW* in tta raw wnorjf ma*
7S LD A.iML) Ai* tyt* to lead.
The re»t of the prorru will tie the sane, whichever version of the Spactnui you Have. 11 PUS* A> 3Urk this tyta,
The following aubroutlne will decrement a p*4*~c0ded address held In radiatar-trlplet rHL. W n
78 LD A,» A la i coda of TO addraaa.
O IT ate irroe carse CALL afT,7_PV.R P»*a In th* 70 wnory pa«a.
i n It II EC HL rerent HL. Ft POP AT i i t tyt# to
7® LO A,B A I- pa.:* cod*.
o. c» os
77
»
LS (HL).A
an
Load tyta into wiwry aa raquirad.

(A

78 ZX Computing Monthly • April 1987 78


Mi
/

7 R 7HAX5 £.2 IS 1,1


»9 Dl ae Dpi* ler^th of record,
Ala [Uelftg Odd* of rscr addr*a*. POP
CP C CI ret Be BC1 is 2O0h * record nur.ber « 1.
J* *i,o_iHix}n» Loop bock If not squsl to th* SCSI )OP IX IXi point* to channel Info area.
U0TJ1J
:«.<irj. cod* or th* limiting addr***. LB (ntjHCLIOO.t
nr.? SBC KL.D8 3*t aero fix If addren* * Halt, sniu LD (*_SECLti. Store e
l ngth of record.
i» ADD XL,DC (ADD HI,HE d»* not »rr»rt aero flat)St*5 PUSH IX
JO El JR m% i sa
i> Loop bar* unless Unit ha* be*n El PCP HL HL'i point* to ctenn*l Irj- r«*t lco.
reached. OUBOO LD 8C.001*
e» Rilun, FT) ADD HLD .C HL'I ponl ta to
th* R-cnannel kuffar.
?-«. r«t subroutn
i e will cac
l ua
l te th* pagec
-oded adiress whci h la EC byt** further 19 A.II HL. jt HL': point* to byte following
on (run AKL. It aaeunrs that BC 1* av l aya l*a* than 40C0h. current record.
OoOi LC f l- <n, signalling "stanlard SAJT.
CFC K7)A y> AX Vse nornal r*gi*i*r*.
09 ADD_AHL.BC ADD HL, BC n
I creomnt KL bp BC fcyte*. xcBisaE IKS t.(R_CHHAG) Signal "Hot end of fit* block*.
cp 05 08 a APA , >>
C8 Eiir z latum if using standard RAK. DO i r HC P*tjm unlsa* end of fil* bo l ck.
CBT4 BIT T,N BCChXlCE 38T 1,(H_CKJUC)
Signal -bid of fll* block*.
co ••IT KZ Return une l a* p*gs boundry crossed. C9 irnr Rftan.
ewe ser T.H
CV4 sa 6,H •Jorecl addrvaa in ML. mi* aubroutn
i * actually aaae
l n* the R-chann*l tulfer In pr*paratol n for us* with a
« r«c i n
I crement page cod*. READ channe.l Hot* that it call* the R_7*A«3iT» aubrowtn
i * fro* label iHii ff_> in
09 AST Hoturn. order to dmal with th* lero oa*e. when tra buffer la to be consd i ered empty.
Tins *utrout in* vi 11 search far th* 111* v*»*e name it specified in tit* channal OK. B7C<i
Informato
i n area. In th* RAWa I c catao l gs*. giving an error If the file dove not exist. C D 5&W »
_ A3SC
I « CALL mS,*_KATCH natch boffer with KANa li c oetnent.
On *itt IX will pon i t to th* catao l gue sr.'.ry. CWOW CALL !CJ0,1_l rRAX3T3W Copy tyt** into buff*r.
DDJ6CBOO «_BUrV_EX IT LB (R_CRirrE).00
CM C B747 DB560COO Ul (R_CHIf7K),00 R*aet pon i ter Into buffer.
VSP, tocH rx C9 HE Return.
It POP ML KLl point* to chann*l Information.
cwsoo IB (CO . OOE There now follow* th* IK1VT rojtln* for channal R, It a i oa l tea IHr'.T fr«i IWKtl and
09 ADD PI.SC KLl point* to file dea*l with each accordn i gy
l.
OKA LO CO .A tC is l*ngth ot fllenam Iln|,
lbTJB LD DSl point* to ayete* variable. CK S764
BK Lon Copy flltniM Into irstea variable, ? A )
B W LD HL,(HUt_SP> KLl point* to error return addreaa.
CSX»*t C A LL »70».T_rj * H flhl catao l gue entry for thla na*a. it LD t,(HL)
» >HT SI Return if f11* eilata, with IX ») MI C HL
pon i tn
i g to catao l gue entry, LD 11,(10.) K l . e r r o r return address.

CBCt CALL KFc,v_tnRC)i Generate error mesage 7 17110 LD KL. I07>, BJ_ttKCR
n jfjp 1} "h Pll* doe* not Bill'. 17 AKD A
StC KL.K
TV* nest irjbr^jlln* la desg i ned to natch up the bufTer for R-ehannel with tli* JP M.R_l«!Er if dean il g with lNI!>-rl.
corespondn i g rs.'lcn of KAHa l e nmvttry. 7h* *ubrpulln* will e l ave BHL pon i g to th* SD7MW
i tn IB 3p.(»m_sp) Ce l ar MChn l e stack as far aa
Ilnl tyt* twyond th* A l' Ma l c umt, cut pon i t in,- to (he atart of th* MMM i nefrerH. return Iron ISIlTtiA rout in*.
and ML' pon i tn
i g to th* flrat byt* beyond the corespondn i g regoi n In the R-cnamel It POP HI
buffer. It will aa l o agl nal whether or not thia la an end-of-flle bo l ck. It require* tl FLIP HL
that U Initially polntl to the channel InfonMtlon bo l ck. LD (ac-;_sr),KL Reao l re nornal error r.lum addree*
CDOM ; R_«ICT_LOOP CALL B»0).R_I«ttr Input a alngl* character into A.
CMC M >
FEOS CP 00
KO R_»TCH IUOH IX Stack channel Info addreaa. c e RET I Return If character la **nt*r-.
LS l,(«_CltB) IX»577» HT T.(ILAr:jC)
» WSR A1 Stack record nupber to natch. 7007 JR M,»_IIPW_? Jwi If don i g IKiV7 LIKE.
CD477F7 CALL B 7 4 7 . H H D _ H L E IX t points to oatalogu* entry. rsM CP M
CI POP K BI* record number. ?C0) JX Ui,R_IKPV._? Junp une l ea chr la "qvolio".
cieo SLA > B I - record IWWT cwyir CALL *l«,ADD_CHA*_l R*giat*r quote* twice.
otot L9 C , 0 1 PC[- JOjh • record nuaber . 1. c»wr i ro'V CALL 0r8,iA0D_C«A*_t Insert ctarace l r Into IfflJtf area.
}T SCP 19i » J R R_im JTL00P L o o ;
) b a r
k to Input rset of string.
0* tx AT.AT* Signal 'Old of ril* block*. The following rout In* input* a single characote*r a
frn R-chann«l and return* It in th*
me. B OD LD L,<S7_LEX)
A reglater.
DOTTCI ID H,(SP_LT»»1)
CBS BfO l !
ID A.(S_l.ra-l) AHLI- length of fil* (17 bit).
C»»}> R_IKKE7 CALL iaie is RO* 0.
0
DDTIDP
A RD A LD NL(
7A JA 4
* tH£7ADm)
A7
KM?
M O
SBC ML, BC
SBC A , C
A
O AMI i- length of renalnder of file.
»
li POSH BL
ax
Stack return aUrsss m RCX 0.
z
AL6
rttsK K
1
AT
n
J» K.R_r_»0_ECF Junp If UiJl part of AHL 1* non-sero. »
SOOS
ItSH W
1101W LD DL.0201
WKH SL Sa
l ck alternative reglater a*t.
m>
19
SIC HL.36
ADD KL. I S
c,R_r_ncr Jwp If AHL Lea* than OJOI h.
asoAiijc
DSC»184«
LD tX,{CTHCHL)
HT 0.{«_CKrL4fl)
IXI pon
l ta to channel Information. 2
<
>904
7«0d JR z,»_iwrr_? Juap If thla 1* a READ rile.
a
R_RJ*i_B» HLis i*ngth of record (o?aofa nu).
JIOOW LD HL.0700
CVQU R_fllRCIt CALL KFC,T_H
I >C8 Genera*l report cede,

0
oe Bt Al.U1 Signal *Rot and of fit* block*.
ID i--rr id "b Vrong fll* type*.
EE J<,HL Den^th of r*enrit. DMXDB R_I«EF_J LD I,{R_CH»fTr)
LD t,((jim7t.i) DEi* poetlo
l n of n*xt byt* to mad.
O
DDCKQA LD T) SWCC
LD K,( J_.r:ir T.i)
oc
DDMOB
DOT HOC i9 To?) AHllw eirid address H start of fll*. DDCRNIE (IT l,(it_CRrLMS)
CDUR7 CALL R7;A(ADD_ANL.X 7B0T
AHLlw cod*d addras* or RA>^lac **r**«Tt JR 2,H_I(K£>R_SLO Junp unless thl* I* an ECT bo
l ck.
/I.3H K otack acch s r*cord nwater • 1. ntcif LD L,(h_RECL») Q.
2
C5
D> lUSti DE .tack length ol record. snttu LD KLte e
l ngth of curent record.
U H. JH ML A7 AJfi A
ftSN Af Stack gage-Coded addres* of *e -r*n1. fflH SRC HL. ~JL
4} LD B.D 2004 ;R H2.R_IWiKf_-.LAD Jwp une l e* ws have e
r ached the
4T LD C,K ICIS length of r*cord. *nl of th* (EOF) record.
C&5AB7 CALL F7W.13C>_Aia, tc AMI. paw-coded add reps of fcyl* ctr;i6 CALL BtrC,V_Bl>i> Cenerate error report
following RAHLIM oej^ent. 07 jUS 07
47
n
AT
LD
rep At
LS C, A
ML I- this addreaa. Il S^ S_«lKar_h£AD HISK IX
D
EL
011100
Kt HI
LD CI .OOB
l
•e an or rit**.
KLl point* to channel information.
O
Ui
DL PCP DE CDEls pa^e^odad addrtea of segnent. 0? AM HL.BC Qa
D9 AM "as alt*rnatlv* r*gl*t*r*. 19 ADO KL. KLtt p
Hi points
l ta to
on tobuffer.
nest byte to read.
CO

ZX Computing Monthly • April 1987 79


mu
7t LO 4,(10.) At- Ignt which m m •»! retain. W7M» L O (sr_3T4»r),i
n PUSH a 0P740B L0 [ s r _ S T 4 « T » l ) , I

u I K Be Increment pointer. C0770C 10 (SP_3IART»?) ,4 Stor* n*w a t a r i a4dr*a* of fll*.


KT7J0B ID (R_CHKfT*).I n PC3R BC
WT770C L0 (R_CHFTTSal),D Stor* increnented pointer. 011400 L0 BC.00I4
DIE 1) too? ADD IX.BC Hi point* t o lnd*i f o r M i l fll*.
ti sec o Cl POP RC M i l a petition of l n H r l 1 on.
2006 JR XZ,ll_lMtCr_KIT Juap u o l w d i f f e r t o be renewed. 007*10 LD (ST_I>D),L
BDJ40B i«c (t.cncj Incr***nt m a r t n*t*r, 007411 L0 ( S r _ D I D . l ) , I
CLC^iFT CALL STC%R_lSS10» A**lcn And r * * * t b u f f n . 00771? LO (5P_D&.?:,4 Star* n*w and addr a** f o r M i l fll*.
n iutrr_a IT ror u 4 i * byl* J u l r**d f r c * b u f f e r . 1406 Jf R_l»_L00P Loop back to da*l with thla f l l a .
>7 scr Sot UCIT, *o that M B I * work* Bit HDD *_m_FO0«B L0 L , ( 3 » _ L 4 » )
properly. D&40I LO l , ( 9 _ L J B . l }
it »_1H0OT_«*1T POP KL DD7K1P LD 4 , ( S F _ L a ^ 2 ) AXLia pravlou* lanffth of fll*.
it POP DC O a te.KL
Cl POP BC « a (SF),RL
w on Paalor* * l t * r n * t l e * r * c l * t * r a . IP U 0I.IL DCi- nobar of kgrt** Inaartad.
n HIT POP n. KL i - return *44r*«* lata ROIt 0> 1? 4DC R L , »
»54*B LO (RCTonO.m. Stor* In kyttca warlabl*. CBX> AtC 4,00 AXLi- n*w lanfth of fll*.
cyxr>B JP "iBOO.SUlP FA** In ROK 1 And r t l w n . 007*00 LD (SP_IJ»),L
DD740I LD (SP_LO.l),L
Th* rvn t a u b m t l M In i i i l m l lo ln**rt addltlonii l byte* into on already a t i t l i n c »770» LO (3F_L8B*2),4 Stor* n*w l m ( 1 h of f l l * .
r t ) * * l o r * 4 l a R4Nloc L r j f l l » which n**d to b* aow*4 In order to aako rooa f o r tlv*a* 74 LD 4,R I l - pa4*-cod* of point of lnoortlos.
* i t r * brtvi Mill to* mo *0»*4. and r*-lad**«d to aoceaodat*. Th* *ubrouti»* • how Id a* 43 LD B,D
*nl*r*d with AKL c « i t * l n l n g th* pa4f-cod*d eddraee * t which to l a » * r t tb* tort**, and 41 LD C . I BCi* miabtr of fayta* l a * * r t * d .
BC containing the ouabaIT OF BJRLH to INAERL. n FOF ML AELi. p*4*-<od*d oddr*** of point
at which Eqrt*a vara lna*rt*d.
OK » : > » c? R£T Rat arm.
C5 •_HUm0QK PUS! BC Stack n i a t n ot tqrtoa to l n * « r t .
B POSH ML Th* following awbroutln* w i l l tranaf*r tha contont* of lha R channel bu/far into lha
Ti IV SK IP Stack page coded ad4reee at corra*pooling HJLKdlac f l l * .
which t o l n * * r t .
AT x « * 4 i * 00| Carry f l a < r * * * t . ORG B8F?
tl LD 1.4 004BOP *_STO>I LD C, (RjCHVfTt)
if LD L.4 AKli- tare. DD440C LD i,(R_cianrTB»i) BCia Hh*Mr of hylaa in b i f f H .
ID4? SBC KL, BC : It* PS3H a Stack addraoa of R chunal I n f o ,
» SBC 4,4 AHL Una* Do. of bytaa t * l a * * r t . n PUSH BC Staca w e a r of h f t a i In b v f f a r .
cioir? C4LL B70S,*_SPAC4 Kneuxe enough rooa f a r *xtra bytaa. C 547*7 CALL B747.n«D_riLX Oil point* t o f l l * anlrr 1B c a t .
rt FOP TR EI POP sc K i a nun bar of bjrt** In buffar.
n POP KL AILia addree* at which t o l»*rt. DOhHO LD I . ( s r _ i » )
a Rip BC BC i - auabar of tgrt** t o l a * a r t . 006611 LD l , ( 9 _ D Q a 1 )
« TO SI BC
00711? LD A , ( 3 » _ D H » ? j AHLl- p*4a co4*d addraaa of f l r a t
r> IVSS 8L
byt* b*yond *nd of fll*.
r* POSH AT
cay » CALL W f k_HAIB100H l M * r t a n n f h rooa f o r oontoat*
« w ID 4,04
of bMffar.
cvnb CALL B&PT,T_rUI Salacl p*4* ccnt*Lal«c « A t a l o 0 4 .
00C1 POP n K l point* t o ch*na*L Inforaallon,
BOftBB LD a , ( s p _ m * T ) S i point* to ' M of o a f la4«.
CDMI7 CALL R7 5A,ALL_AKL. BC AKLi point* on* bgn* beyond th*
B»SQ» LD L , ( » _ S T 4 * T )
lost of th* n*w bytaa.
DUMB LO I.(ap_9T(Jrt-l)
BD7HX LD *,(SP_STU(T.?) l H l > p*4*-cod*4 *4draaa of f l r * l
« FVSII BC Stack huab*r of bytaa In buffer.
47 LD I , A BKLia addr of l e a l new Byte a 1.
apaxa Vyta in kA Its lac araa. »
sa ML' l * addr of l e a l new byte e 1.
n PUSH IP 1DS5 TOSB N
Ti PCSH KL Stack tbla aiaraaa. r POP HL HLi* *ddr**a of channel lnfonatlon.
c w C4LL RR^,UD_4N,AC 4 & i - pua_cod*d addr**a of f l r * t onioo LB BC.001B
M M I K hyla Whc
ih will r*aaln afara
O) ADO KL, K HLi polat* t o a l e r t of buffer.
aftar mart kytaa ara Loaartad. CL POP BC BCi- nuaber of bytee In W ! e r .
47 LD B,4 BM.la t h l * aid ra aa.
» m i ia 3twk addr*** of a l e r t of k u f f * r .
09 DCX EEL'la t h l * addraaa. KL i point* t o byta b*yoa* b u f f e r .
0> ADO RL.BC
11 POP N 01 POP D> 041 point* t o a l e r t af b a f f * r .
Cl POP BC KKLi pi* t o 1«t apar* bpt* ( o l 4 ) . oiOJM LO RC.OW) ML and COC now p*4*-c[Mled addr*****
N POP IP cojoi? CALL B7J0,R_7«4»aBi_; Conr W a r into KAIHlac area.
01 FOP DC 4 0 t i - tddr*** at which t o l a a a r t . U 4,1 41. OJ.
o
74
47 LB C,4 c m , , t i l t , , , * t which t o laaart.
CVPB6 CALL B6RR,T_PALI Ft^a In no real IUK.
»
z
ma si CJCMT7 JP »7CB,R_BWT_DTIT Raeat pointer into Oaf f a r and return
ri PUSH a Stack ihia aOdraaa.
CDJOF? CALL »TJO,*_T5UU«3FBI_J Kowa bytaa which naad to ba aowod. O
l W COMth* out put routln*. who** Job I t I* t o print the character *tor*d In th* 4

S
s
J1B4
CWRTO
CL
LD 4,04
CALL B6»,t_PAtI
POP TC
S * l * c l pa^* c o n t a i n ! ^ c a t a l o f u * .
ra^lalar t o as R chanu l ( 1 * t o *tor* I t f l r a l l y la Ih* b a f f * r , and * l t l a * t « l j r la a
I4M41*0 f l l * ) .
ac Kit
< 01
H> BOA
POP CE
U L,(SL_STAJTJ) x
Butt- poaltlca of
AKLra prwloo*
inaortloo.
(p*4*-Cod*d) Addr of
CDOO*B CALL * BOO, SWAP
LB HL, (RTTADM)
P*6* In RCVI O,

DM40I LO I,(37_STA*T.l) a R A M I K t i l * ( o r a n t *par* byto) » /TOR HL Stack retain U l n a i lata Ron 0.


ot KI

O
DD7X0C LO A.(S7_9TA*T.2) which aay haw* b**a *or*d. 09
>6 CP B C5 PUSS BC
v>
O
jcc J1 C . R _ » _ F « n » Jimp I f f i l e *4dr*a* pracaod* R S I Dt
point of l n * * r t l a e . B res* KL Stack a l t a m a t l w * r*4latar eel.
tt DM S K XL, CC LCT?AM*C u> a x e m e n . )
KT «,(i.cvu;)
Hi point* to Channel Information.

a.
400 KL,DC nc*i»44
JR c,R_m_Fouiai Juap If f l ) * addroa* pracaada C414BB JP Z.M1B,ll_tMC* Error If t h l * 1* e RIAB f i l e .
point of lanrtln. OD^BOB LD I,|I.CNRA)

S II
»
FJ
A 01,KL
u ISF),KL
H BE. HL DCi* ouKtar of hyta* ln*arl*d.
DD!40C

11
LD 0,(»_CKIM>L)
TON A
POT KL
Dtia nunbar of byte* In kuffer.

KLi point* t o channel Information.


1» OL XL,* 011(00 LD BC.0C1B
09 ABB KL,BC KLl polnla t o alert of b u f f e r .
est SB7 7. * I» ADD H..DK KL: point a ta n n t a para byte.

o
III
CEF4
JC
a *J»_A:II»
SET 6,H
IRC 4
n -K.IC.
AULi- M . addraa* of f l l * .
TT
U
ELTtCB
LD (A),A
ISC 01
LD ( 4 v C H n T t ) , t
Stor* brie l a b u f f e r .
3*1- new no. of tytee In buffer.

a O
a
B
a
(SF).KL
DC, HL S t i * poalllcn of IA**rtlo4.
D0720C
li
LD ( * _ c K j r r t a i ) . o
OK 0
Stor* new no. of chr* In buffer.

CO

80 ZX Computing Monthly • April 1987 80


«
ccrzw
DK D
ir bu/ltr 1* now rail, Ihm a»;ty
n POP AT A l a atraaa rtaabar.
urn
CUl t,BBP?,H_SK»II e«t*Dt» Into K I N I H fH*>
OS a 1P.AP' I 1 1 * atraaa nruabar.

n m a AT Stark tha l a r o t'.a|, atileh d*taralnaa


IT fiaaat carry,
A
JFRSiBM.ii.iiiart^iattT
* Jv* to n i l routln*.
what ha r t h l * la A BSAS or M t l T t M l * .
CJMM
w LD » , • » • Ala nana of t h l a channal (•»").
011>02 LD ac.oeii DC 1* l a n f t h of channal I n f o block.
•a*t *a nava til* routlca to CLOCK aa 1 channal. All that la H<HHI7 hara 1* that tha 11D4*7 LD Mt, *T64,R_I«SVR D T I * addraaa of lapat r o u t l n * .
Wtar contanta ba l«aorad (lUl fll*) or (tort* In UNLK (WITT till). )1tW) LD KL, H L a d d r a a a of output routlna.
DM ttc«9 LD N , B » 0 , S _ C L O & T I l i a addraaa of oloaa routln*.
etc 1W40 OMBO «4RR ie/LMn B o t D , o i t x _ nV
cut. SKX.yjif
Croat* channal I n f o n a t l o a block.
CBOOli i m in Hon o.
TEN FV3I 01
awi LD XL,(RETAD«) TT POP HL KLI polnta t o channal lnforaatlon.
15 RESH KL Stack rtturn add ra* • lata Mil 0. 010*00 LD K . 0 0 0 D
ice) tVSH IX Slack ptr to chinMl laTonatldb. « ADD MLD
,C te.1 polnta t a warlabla R_CK>TTt.
JiJW UJ m.,(a»_sp) HL: pti to m « Htun tJinM, TO LD ( • . ) , •
v> POSH ML St AC A thll point AT. n a
l c u.
i\rvrr LD KL.nri 70 LD { H L ) , B Raaat RJZKBITS.
» ADO m.sp RLt* SP ilnu In. ij I K XL
mv* LB (Dtt.SP), XL 3»t on trrw ntun idtrw. 70 LD ( X L ) , B •aoot R _ C W E .

H0C(T»4fc BIT o,(«_c*njc) »J IRC KL


WD CALL *Z,DBTJ,K_SrcM ir tnia i* • «rrc flla, torn u at M,n. 1*1 point* t o R_CmAME.
Mrl; tuff or cntnti Into UN lac. LD EL,)BA7,«_9T»1 HLL point* t o f 1 l*AaA* ( l a a n .
POP HL KBi thl* 1* Aloe tha m m point s n LS C.OA BCi. lanfth of f l l a n a a a ( t a n ) .
t rc» any tmn that aar tai nao LDO Copy f l l a n a a * I n t o ehannvl I n f o *
occarad durlnc It^STOE. rt POP AP Ratrlawa t a r o f l * # .
«5W Ui (Dm_sp),«L Paatora arror polotar to nnatl. 21109 JI *,i_oP_Mimt Juap I f thla la t o ba a MIITf fll*.
ami POP ix Baatoro Oaml Info polntor. DfiCltKM K B 0,;>_CXTLAC) SLJRA] - T h l * 1* a BEAD f t l * * .
21W7 • CC B I T LD KL.?T)B CDC) IT CALL *70,«_I»!GI Aaalpi b a f f a r t n a RAMloc fll*.
« •U XL1 I* ?7)a to praraol craah. 1M0 71 » _ 0 P _ « t I T Juap ta a l t routlna.
CJJW J? IT Juap to alt routla*. m e n set »_0P_V«T« 3TT O . O . C D U C ) Slcnal T h l a la a M i t t flla*.
CDOTTT CAU I70«,*_MH:AT Craata naw catalo^ua ant r f .
It Laat wa naaa tha routln* to On an * chuMl. OA antry th* A r*(l*t*r aat contain i\rrrr LD XL.PTTP
tha atraaa nuabar to whl:h tha Elamil la to ba attachad, and tha tan-tqrta ayalaa TC LD 1 , 1 AXLia alnaa ona.
aarlabla »_3TSt au*t contain tna rilanaaa ot tha RHD or HUTI rila to ta epanad. 11 tha CDOMTT CALL *70»,»_3PACI Ibaura aaau^h rooa f o r oca hyta.
fllanaaa la laaa than tan character* Loaf than It ahculd b* followad by tralllni apacaa. 5»M LD 1 , 0 4
CVTDb CALL D M 7 , T _ P K I Salact paca contatninc c a t a l o c a a .
(K B»M DDbmi LD L , ( 9 r _ 9 T i r r )
CD005I CALL )BOO,SWLP ti> m ten a. SDiMI LD « , ( S T _ S T A K . 1 )

Ji)i)» ID I .(RETAIMO IDTEOC LD 4 , ( » _ 3 I A R T a i ) AXLI* i * * a codad addraaa of flrat

n IRK* XL Stack ratura aAdraaa Into RC« 0. ' apar* byta l a R A M l a c .

n ivas AT Stack atraaa malar. RASS AP Stack f a 4 * - c o d * .

»w UI L . T Ai» naaa of thla chawal (-»-), ctrnt CALL > £ n , T _ P l b l Salact pa<a containlr^ f l r a t

ctwr CALL H 9 4 Saarch for an ariatii* H channal. • par* kyta l a RAW l a c .


JS C,*_CP_C* Juap If noaa found.
QUI) POSH DT
n POP AP AKLL polnta t o 1*t a para syta,

•t WP n. KLi point* ta channal Inforaatlan not LD ( K L ) , 0 4 St o r * Od aa t y p a - o f - f l l a coda.

for alraad? ailatlnA R channal. 010100 LD «C,0001

0*0800 LD tC.OOCK CDJABT? CAU BC AMLI. pa^aacodad addra*a of now

o» A SO KL.PC ULi point* to f•«' ' a• for f l r a t apara byta in U f d l K .

alraady aalatlnc R chaimal. W LD £,A •HLi- t h l * addraaa.

I14T)» LB at.»_JIH T at I polnta to Intanlad fll )B04 LD 1 , 0 4

for thl* ehann«l. cirm CALL «6PT,T_P1C* S*lact pa«a c o n t a l n l n l catalocua.

LD ,IOA 1|« lanfth of fllanaaaa. DDT) 10 LD ( 9 _ T I D J . L _


li LD 1,(K) D674* 1 LD ( S P _ B f t . t ) , R

t) IK OS DC7J1J ID (»_»>}).I Siora addraa* of and of fll*.

n CP (XL) C»SB7 C A U B70B,V_CA1\*D Tldjr up c a t a l o f u a antry.

»> :ac n. LD 4 , 0 )

nob j* n.i_arjm Ju>p if fll*n*a*a ara dlffarant. o m ( CAU B6PT,T_P4C( Salact a o r t a l RAH.

ton tun «_0F_tu>i ?aat all tan charadtara of fllaoaa* C5»!» t_op_mt JP B941 ,R_0C_KIT Juap t o t i l t routlna.

If fllanaaaa ara Idantleal than


CVCH CALL Hrc.T_mic« Cmnti arror raport
jat x> Pll* alraadj ax lata*.
o
JO And f i n a l Lr V* t a v i tha routlnaa which l a t a « r a t a tha R chaanal with BASIC. I t a u ara
1SV R_0IJIE»T LD D.-R" Dl* naaa of thl* channal (*»•).
z
only aiaj.pla routlna* , and you ra/ of e ouraa ravrl t a thaa t o your own a p a o l f l o a t l o n j .
CCUK CUl »AJl Saaroh for nast axlatlnc * chajsna), C M J M I oia*I atraaa f o u r t o a a a r l a l f l l a Ballad r i l X l j 0 P I » _ ) a l l l opan atraaa f l a a

JOIt Jl nc,«_op_Loap Loop back If on* found. t o a a a r l a l f 11a o a l l * d P I L V l CL0U_d v l l l cloaa atraoa f o u r i and CLOSE_) w i l l cloaa

Saarch for U M I K fll* vlth


s
atraaa f l » a
csoeir C1U »TOB,*_«ID (Ivan naaa, JC IMD

Stack tha laro fla«.


<
4idf«C4))1 NUI.I Ufflt PI L i t
n (
241 itPCSS kt
z,*_of_ec«T Javp If ao fll* found (l* It thl* tatoxaoto M7lt f l r a a^acaa •aaa cf f l r a t flla.

1* ta ba a WITI fill), KIWI))! PI LX_7 jkjy riLtz


DStSCA U) l.O_3tl>rr) »2CK>»20 W H f l a a apacaa *aaa of aaoond f l l a .

DSbtOS
usret
ID «,0_STABTa1)
U i,(»_3TUrT.J) IIIi* paca-<odad addraaa of f 1 la
J»4 0PW_4 LD 1 , 0 4 11- atraaa auabar.
ae
O
714DRA LB B . , R I L ^ _ L RLi polnta t o f l l a a a a * .
vlth 41 van oaaa. 1*0) Juarp t o opan * t r a a a .
CAU KTT,T_PA£I
o
CWT* Salaat coatalnl^ flrat byta )•» LB 1 . 0 ) l i a atraaa n w b a r .
or thl* fll*. LD E . . F I L I _ ? KLi polnta t o f l t a o a a * .

Tt LS l.(IL) Ala tjrp*-of>flla cod*. «4T)» 0) LD DK.R^Sn t D>i point* t a ayalaa v a r l a b l a .

rm* CP 04 010400 LD BC.OOC* BCi> laocth of f l l a n a a * (tan).

:css

}«» «_0?_C0«T
J% K.J_0P_QmCF.

LD 1 , 0 )
Cl»a arror aaloaa thla la a PEAD
fll*.
OBO
CVMW
)«04 CL0SI_l
UP
J? RJfl»,»_o™i
LD 1 , 0 4
COP7 f l l a n a a a I n t o ayataa warlabla.
Juap t o opan channol.
11* atraaa nuabar.
ae
nmt CAU »IT,¥_PASI Pa«a in poraal RAH, tsc:
LS 1 , 0 )
S
n POP IP Ratrlava aaro fla4> )») CU»»_) l i a atraaa Quabar.

o* E ir.ir Stora la 1'. cyxxi JP SOOO.CLOSI.NM Juap t o clooa c h a m a l .

o
S T R E A M S AND CHANNELS CL </)

ZX Computing Monthly • April 1987 81


gHgJBJ ' V P
Gordon Hamlett reports
from the front . . .
T h e number of wargames
available for the home
computer has escalated
considerably over the last
couple of years. There are
several reasons why the micro
version of a game is succeeding
whereas Its traditional boxed
game' counterpart had only
limited appeal.
The obvious benefit that a
I
micro offers is that you don't
need a second person if you
want to play a game. Then,
there is no need to set up
thousands of counters on a
board or work out combat
results from a set of complicated
tables. The drudgery is all
handled for you. On the debit
side, computer wargames are
not yet as sophisticated as their
original counterparts although they are the only troops who appeal more to the novice
the balance is shifting and, as I can attack from a distance and Beware though! To al! intents
will point out later, there are should be used very much in hit- and purposes, Samurai is the
certain advantages In play- and-run tactics. same game as Swords of Bane
ability to be gained on the Samurai Is by far the simplest from CCS and it is probably not
micro. of the three games and will worth getting both.
Three games have appeared Bottto of Britain
for the Spectrum in recent weeks
and all three offer the budding
strategist something different. Tne
first of these games is Samurai
from CRL (£9.95). This is a one
player game with three different
scenarios and three difficulty
levels.
You take the side of a small
band of warriors, trying to wipe
out an enemy force of assorted
temple guards. The game is icon
driven and starts with you
selecting your initial forces. You
CO have so many points to "spend'
i n
and each type of warrior costs a
varying amount. There are four
s< types to choose from — Ashlgari
or lightly armoured troops, the
traditional Japanese warrior the
Samurai, a mounted Samurai
0

1
and the deadly Ninja.
The mechanics of the game
are very simple and are
basically move and fight, Ninjas
must be carefully managed as
Moving forward a few
hundred years brings us to 1940
The gameplay depends on
you making a lot of very fast
debriefing mode, several
Mi
historical 'what-lf' variations and
and PSS's Battle of Britain (£8.95). decisions. As the German forces no need to reload any data
Hitler had commanded Goering, start to appear, you must after every game (necessary on
his head of the Luftwaffe, to scramble squadrons to intercept the 48K Spectrum due to
I destroy the RAF prior to a them. After combat or a memory restrictions).
planned invasion of Britain. Due prolonged patrol, a squadron One feature not available on
to the RAF's meagre resources, must be landed in order that it board war games for obvious
just about any tactic would have can refuel and reload. Failure to reasons is that of hidden
worked provided the Germans monitor the status of your movement by the enemy. Enemy
had maintained it. In practice, squadrons will result in them units are only discovered literally
Goering decided that his becoming dispersed and un- when you bump into them. There
methods weren't working and so available to you for a period of are several ways of moving your
switched his forces to nighl time. Airfields closing because troops. Normal movement,
bombing major cities. of the weather add to your assault and travel. Assault
Horrendous though the blitz was, problems. means that a unit will go all out
there was no way it was ever to gain its objective whereas

i
Again, a fairly simple game
going to destroy the British to play but as any one who has travel is very defensive — you
planes for the simple reason that ever tried to Juggle will tell you, can move only along roads (at
the Spitfires and Hurricanes it is very easy to throw a lot of double speed) but are very
never flew at night! balls up into the air at once. It is vulnerable to attack. You can
There are three main a different matter to keep them also choose to hold a position
scenarios for you to try. The fhere or fortify it.
ai training game gets you used to Terrain plays an important
commanding the forces at your part in the game. Not only does
disposal by simulating a light it affect the rate of movement,
raid. In Blitzkrieg, the Germans but also how well a unit can
throw everything they have at The final game this month is attack from or defend a position.
you but only for a period of one Vulcan (£8.95) from CCS. This Combat is decided by many
day. Finally, there is the much simulates the Tunisian campaign factors including the strength of
longer campaign which is of 1942-43 and is by far the most a unit, how well it is supplied
played over thirty days. There detailed of the three games on and the weather. Supplying your
are also optional arcade offer. Control however remains units is a vital element in your
sequences in which you can try straightforward and is all menu strategy and you should also
shooting down Messerschmldts driven. make good use of any air power
from the comfort of your own There are five different that you have, either to deliver
mess room. If you choose this scenarios designed to last an air strike or reconnoitre as
option, how well you do in your anywhere from half an hour to you try to discover the enemy's
own personal combat directly sixteen hours. You can choose to positions.
affects the outcome of a play either the Axis or the Allied Vulcan is very well presented
particular battle. This Is fine for forces and the game can be with an excellent instruction
arcade fans but those of you played against either a booklet giving players hints and
only interested in the strategy computer or human opponent. the historical background to the
elements should leave well The 128 version offers several campaign. Highly recommen-
alone. other options including a ded to serious strategists.
Vutcan Vulcan

Sattt* of Britain

Samurai
CO

2
<
O
at

t
Peter Sweasey having decided categorising games is packaging adds greatly to the
a bit futile anyway — so I atmosphere of an adventure,
some problems pigeon reviewed It here and is standard with games from
Talking of France's finest, Infocom (the world's leading
holing this month's tnfogrames have a very interest- adventure writers — unfortu-
ing product fined up for release nately only for disc based
unusual adventures. soon. Murder On The High Seas machines), and quite common
is a complex adventure among American companies.
featuring 40 characters, includ- But Spectrum adventures have
F u n n y old month: none ot the ing suspects to question, but virtually never seen anything like
games for review is entirely what especially appeals to me it. The closest attempt was the
conventional. Imagination — is the packaging. Included with original release of Valkyrie 17,
another cheapie from prolific the game will be evidence — where you were given some
author Peter Torrance — is four such as cartridge cases, hair, documents, a stylish badge and
mini-games in one — yet is the newspaper cuttings, ink — which audio messages, containing
closest to conventional. you can examine when It's Information vital to the game's
The Growing Pains Of Adrian referred to in fhe game Such completion. Runestone nas a
Mole is another Level 9 multi-
choice adventure In the past
these have been bought to us
from Mosaic, but this time the
ame comes courtesy of
ichard Branson's Virgin Games
— Mosaic billed as "producers",
t hope this continues as a
partnership; while Mosaic have
been responsible for some
commendably unusual
licencing deals over the past
few years, their advertising has
been far too subtle for the
games to achieve the high sales
they deserved.
Third curiosity is The Inherit-
ance from the cross-Channel
software invaders at Infogrames.
It is so hard to classify, I almost
reviewed It elsewhere in the
magazine. But while It's not
straight adventure (no text Input,
a
<
nor much to read), nor is It really
an arcade game (no finger-
reactions needed). In the end. I tnfogram*K providing tho clues

84 ZX Computing Monthly • April 1987 84


map and short story, while special comic). Let's hope program's more complicated
Rainbird's recent adventures Infogrames set a trend . . . functions, guides on how to use
included short novels, but these Users of the Graphic the program best and notes on
are nowhere near as exciting as Adventure Creator will be some of Its foibles.
what Infocom normally offers interested to learn that Incentive There's also a short but
(with their recent release Leather has published The GAC Adven- excellent introduction on how to
Goddesses of Phobos, for ture Writers Handbook" as a write a good adventure,
example, a scratch and sniff supplement to the manual. It covering similar points to the
card was enclosed, for reference resembles a club fanzine but ones I often expound on these
at certain points In the game, contains useful Information: there very pages. The handbook costs
along with 3D glasses to read a are clearer explanations of the £1.25 from the Incentive address.

E L P L I N E
about (though how it doesn't go same game: to steal the lamb,
all soggy Is unexplained). The just take it, then give the butcher
keypad combination, incident- that small lead box from the
Starting this month with ally. is 8875. There's no need to bedroom safe (you know, the
RamJam's highly recommended unlock the doors in the Roman one with the glowing stuff in it).
but tricky Terror* of Ttantoss. villa, indeed there's no need to Simon also asks for help with
Both Mike Putpher and Keith enter ft, at least not to complete about a squillion other
White are being foxed by the the game. adventures, so here we go. In
Fangiizard. Simply follow your Andrew McMaster wishes to Project X. The Microman he
country code: CLOSE GATE pass the television camera in cannot escape the car: CLIMB
behind you. To catch the dog, Seabase Delta. You need to SEAT BELT, WIND HANDLE and OUT
Keith, you must PART the brothers. throw a pancake at it! How do (take the lighter first). In Dracula
Make one take the sack to the you make a pancake, you cry? Part TWo (I nope you're over 15.
side of the Temple, and PUT You'll need the hen's egg (blow Simon) progress from the first
SACK INTO HOLE. Then make the a chewing gum bubble to wake location is obtained like this:
other enter the temple, CLOSE the poultry), and the bowl, which LOOK AROUND, LOOK OLD
DOOR and attempt to CATCH is on the conveyor belt if I WOMAN and LOOK EYES. Take
DOG. The mutt should run remember rightly. Examine the what she offers you, but hide it.
through the hole in the wall — kitchen shelf and take the flour In The Final Mission, Simon wants
straight into the sackl As for the from It, then open the fridge to to avoid the slime. In fact,
well, SHINE LANTERN down it to find the milk. MAKE PANCAKE, dealing with the green stuff will
see the rungs. Get Lobo to fetch COOK PANCAKE, GET PANCAKE solve you another problem If you
the Temple door, and drop It (how you manage to carry it prepare properly. Take the straw
down the well. When Scam around without It falling to bits (from the northern corner of the
climbs down he will find it has or sticking to your hands Is not large cell) and use it to fill the
broken into planks, which can explained — realism Is not a one inch gap at the bottom of
be used to build a bridge strong point in this game). the door. Making sure you have
across the river. the soap (from south of the great
Marcus Beer wishes to kill pillared hall), go to the chamber
Zzzz is not the sort of noise Stripe in that anarchic with the rising, damp breeze,
you should make when reading adventure, Gremlins, having and head up into the cubby
this column, but it is the title of a already blown up the store As hole Walt until you hear a
somewhat unplayable Master- the gas exploded, the not-so- splintering sound, then DROP
tronlc cheapie. Miss L. V. Burton cute one should have rushed SOAR Not only will the slime
from Clapton cannot board the away and knocked you over. So have been cleaned up. but it
bus having passed the FOLLOW STRIPE and he'll lead will have smashed the door for
crocodile, even though she has you to the swimming pool. You you! As for the native woman in
the bus stop sign. A question of should have drained this earlier, Espionage Island (a game
precision vocabulary, I suspect. so when Stripe dived In to repro- banned oy W.H. Smith for one of
ERECT SIGN. STOP BUS and GIVE duce he will have knocked Its responses!), you must give her
MONEY. himself out. GET the unconscious the beads.
Stephen Lawrence cannot fiend, head UP then go east.
find the magic soissors or the Dawn will break — and you Simon asks many more m
key In part three of Bored Of The know how gremlins hate light questions, but space is runnliTg
Rings. ENTER FORGES to find the . . . To rescue Antman in The out, so we'll save those for next
latter, while the former are found Hulk, first PLUG EARS, HOLD NOSE time.
In the bar, W from the headless and CLOSE EYES. Then GET ANTS,
statue (you'll have to kill the north twice to the underground
Kremlins first). room, go through the crack and Peter Sweasey for Poet
they will attack Uttron. As for Laureate
Dead End Quest Valkyrie 17, If you go to the
Carpathians In the taxi, you
'If you're stuck in a game
And your hair's all torn out
Neil Talbott Is flummoxed by won't be able to pass the guard. Then remember my name;
Melbourne House's rather good However, where to really go in Just give me a shout!
Morton's Quest (or is it Master- the taxi, Is answered by solving Fill In the coupon
tronic's now?). In the deserted the other problem Marcus asks It's as easy as pie
beach he wants to stay under- about — how to use the
telescope. You need to INSERT Send It to Mindplay (well you try
water. Head out and CLIMB INTO thinking of a rhyme for 'coupon!
boat, go down and, as you RINGPULL in the slot, then TURN
TELESCOPE for your destination. And to solve I will try."
suspected, you'll find an
aqualung. Then, to prevent suffo- (The ringputl comes from the
can in the fountain — kill the fish (Er, I think you better stick to
cation, N,N,N.SE,U,SE,D,N,E and reviewing, Sweasey — Ed).
FILL AQUALUNG. Progress in this with the liquid).
Philistine! A few rules: British
sector will find you the spray correspondents, please enclose
paint you need in the future: Gremlin Gripes a stamped, addressed envelope
you'll also find someone who if you want a personal reply
wants that newspaper you asked Help for Simon Fuller with the rather than wait some months for

ZX Computing Monthly • April 1987 85


the magazine to come out. If
you are writing from abroad, just
enclose an envelope — I'll add
the postage. I try to respond
within two months but I can take
longer (on the other hand, you Title:
might receive an immediate
reply). I ONLY DEAL WITH Company:
ADVENTURES. Not arcade games;
nor technical problems (write to
Crosswires about those); nor Problem:
arcade adventures (Gargoyle
games Included, not even
Heavy on The Magick). Please
put the name of the game
you're writing about on the back
of the envelope. And PLEASE
don't write letters asking for
general solutions — I just don't I can help solve:
have time to write these out for
everyone. (They can be
obtained, however, from good Nome:.
adventure clubs). Finally, I don't
advise you write to me with Level
9 problems. Their hintsheets are Address:
really much better than anything
I could offer, so any Level 9
questions come way down my
list of priorities. for publishing rights is: Mindplay, many other magazines solve
The address for problems, ZX Computing, No 1 Golden your problems like this AND keep
critical appreciations and offers Square. London W1R 3AR How you culturally entertained?

rating); or you could try to do As 1 just hinted, the major


the opposite! problem with the transition from
THE GROWING PAINS I don't think you'll under-
stand this game if you know
book to game is that due to
memory restrictions, the text is
OF ADRIAN MOLE nothing about Adrian Mole, as
there's no explanation In the
severely pruned. This means
many of the Utile observations
Virgin instructions about who the are lost, along with much of the
£9.95 characters you'll encounter are detail (such as letters); yet it was
You don't have to be a Mole this detail which I liked so much
fanatic to appreciate the game with the book. You could read
Like the first Mole game (pub- 'O' Levels approaching, and is though; I'm certainly not, yet I the book while playing the
lished some time ago), this has set around 1982-3, the time of enjoyed It. game but that seems a point-
been programmed by Level 9 the Falklands war. I think fans of the book will less exercise I can't help feeling
and Is In a very similar style (the The game is in four loads, enjoy the game due to the this project should never have
one also used tor The Archers). each dealing with several chance to make Adrian act been attempted on cassette —
Just in case you've been spend- months of Ade's life. Excerpts differently Irom the way he does disc should have been used
ing the past tew years with your from his diary scroll up (there on page. However, this means (even if a Spectrum version was
head In a bucket, Adrian Mole are some graphics, but they're programmer Pele Austin has thus made impossible), and the
Is an angst-ridden teenager well down to Level 9's abomin- had to add totally new situ- complete book transferred.
who thinks he's a trendy able standard, abstract beyond ations (ihe results of different One of the problems with
Intellectual (in lact he's naive belief and best turned off) until, choices); unfortunalely some of The Archers game was contra-
and, frankly, square), has after certain situations, you must these are not at all In the style dicting storylines — a character
squabbling. unemployed choose one of three options as of the book. What really you had sent away would
parents and loves precocious to what Adrian can da This may annoyed me was his total dis- immediately reappear. This
Pandora. The phenomenally well have the effect of causing regard for the book's scrupulous doesn't happen with Adrian

s
successful books (which more options to appear, as a period setting (it is a diary, after Mole mostly because few ol the
spawned high-rating television whole sub-plot Is pursued. The all). I wasnt very far from decisions are ol long term
series) were in diary format aim is to make Adrian as Adrian's age in 1982, so I was Importance If this game was
(which the game retains). The popular as possible (there's a quite nostalgic ot Sue Towns- more sophisticated, one
Growing Pains sees Adrian with p e r c e n t a g e score a n d a end's references to events such decision could utterly alter the
as the start of breakfast tele- rest of the adventure, parts of
vision (setting the alarm extra the plot being made com-
early!). Then it's ruined with a pletely unleasible. Again, a
reference to Dirty Den (East- possibility if disc had been
Enders began in 1985 for good- used.
ness sake!); or giving the option
As with The Archery Growing
to see Jaws or Superman at the
5 cinema (both were films of the
Pains has questionable dura-
bility, since after playing several
seventies that wouldn't have
times you'll have seen all it has
been playing in 1982). Mr Austin
to offer. The game is a fun exten-
should have done what all
sion of Ihe books, and should
good authors do — research
offer some entertainment. But I
what he's writing about. I was
feel that because it was impos-
also puzzled at some ol the
sible to do full justice to the
changes he made to Sue
original text (ie print It all), the
Townsend's original text. While
T h u r s d a y F e b r u a r y 1 1 h . project should not have been
tight memory obviously
fi b i <3 t i f J c aide i o r in y in o t h r prevents the computer version
attempted.
• od i y . I t h ;» t a - ' h f i" t e i. d
P O; I C j f d . b e i n g identical, in some
C h o o s e o ne o f i h t • o I i o »•• i n <3 tor instances Pete Austin has
r<i e : changed little details — like
1* i g r i o r c i t JB i t . 13 no*. who said what, or a person's
i d df £ s ed t o (l) €' j reactions — yet not made the
^ > h i dt i t 1" r 0 fti in y f a t h »7 1 , diary enlry noticeably shorter.
3 > t h row i t awa . Why? What gives Mr Austin Ihe
Q
< right to tamper with what many
feel is a modern classic?

86 ZX Computing Monthly • April 1987 86


adventure ("Lords of Half Past INVENTORY - virtually inexcus-
Nine") and a platform arcade able). and what you can do is
IMAGINATION
Firebird
game — draws you into the
screen. (A recap for the con-
limited — largely, only those
actions necessary to complete
fused: this Is four mini-adven- the game emofe a response,
£1.99 tures in one). Pinching your arm which I've said countless times
brings you back to reality. before is poor adventuring. But
In an age where single not only are you unable to do
games are using several loads much, the messages which tell
in order to provide more game- you so are aggravating and
play. several games in a single long winded, along the lines of
load seemed a stiange Idea. "Well you can IMAGINE that . . .
Necessity of memory means but you can't do it."
each has only a handful of Like Torrance's Apache
locations What prevents me Gold, reviewed last month, this
from utterly slating Imagination .Is GACed - and I still think
is that you are not supposed to Quilled games are far superior.
play each game as an indi- The graphics are mostly dull
vidual adventure, rather move and do not enhance the game
constantly between them, In the least Of course they
taking objects from one 'game' might seem better if the presen-

W
to anolher. This gives the prob- tation was not so dire. Glaring
lem solving an engaging new white background wilh black,
angle. normal Speclrum lettering (so
Otherwise, Imagination is the CAPITALS stand out even
unsatisfactory. It's WRITTEN by more), and sloppy looking input
Peter TORRANCE (Seabase Delta lines. GACed games also have
etc) which means the return OF more sluggish response times
those IRRITATINGLY random and scrolling.
CAPITAL letters in the TEXT. It Imagination is cheap and
bears all fhe other hallmarks of fun to solve — but it's truly primi-
his adventures, most notably a tive. Surely Spectrum adven-
sort of childish feel, as if were tures can be more sophisti-
written by a twelve year old: cated than this — even at
simplistic text, laughably un- budget price?
With a title like that. Firebird are The game starts with you subtle clues, generally weak
setting themselves up for sitting in front of your compuler; humour. But Imagination also
criticism. Indeed, I was going to you insert an unlabelled disc features the other Torrance
start this review by telling you (somewhat unlikely with the trademark; entertaining and
how utterly devoid this product Spectrum but never mind) pur- sometimes ingenious puzzles.
is of any original and creative chased from a bargain box Then again, this plus point may
thought — but then I discovered and are presented with a be outweighed for you by a
an endearing and unique choice of four games. Choos- number of further faults The
feature, which made the title a ing one of these — a space vocabulary seems painfully
little more justified than I first adventure, war game ("Raid small (and there are no single
thought. Over Margale"), a fantasy letter abbreviations for LOOK or

all well drawn in cartoon style, required to sit there and do


who utter stilted dialogue (the nothing for over a minute. The
THE INHERITANCE
Infogrames
translation from French shows,
unfortunately); their mouths are
game system (ie the roving
cursor) has great potential —
animated — Impressively — to but sadly The Inheritance
£9.95 show this. There's very little text doesn't use It. Nice try.
except their captions.
The Inheritance has many
Things are looking bleak for three Is in Las Vegas itself, where genuinely original touches,
penniless Peter when suddenly, you can participate in several and is cleverly designed. Un-
a letter arrives; his aunt has gambling games (fruit fortunately, fhe gameplay is
made him sole heir to her vast machines, craps, etc) in your weak. The characters' mouths
fortune. However, to gain it. he quest for the magic million. take ages to recite speeches
must make a million dollars in Control is via a roving (and you've already read countless
Las Vegas in a single night. In sometimes flickering) cursor. times before, so you become
game one of this three-parter, With this you can pick up bored. The tasks are mostly
you must escape your apart- objects, open doors and move. repetitive a n d tedious —
ment block, having first satisfied This gives an endearing sense especially making the money
the numerous fellow inhabitants of real exploration. The in the final part (the gambling
who want the return of items you graphics are large, colourful machines are entirely based on
borrowed from them. Part two is and generally rather good. You luck — hardly enthralling tests
sei at the airport, while part encounter various characters, of skill). At some points you are

ZX Computing Monthly • April 1987 87


ZX COMPUTING
F U L L C R E D I T F A C I L I T I E S F O R A C C E S S AND B A R C L A Y C A R D
Lineage: 48p per word. (VAT inclusive)
Semi display: £9.50 per single column centimetre +
^ J
01 - 437 0699
V A T . Ring for information on series bookings/
discounts (minimum 2.5cm). Send your requirements to:
All advertisements in this section must be prepaid.
N I C O L A BATY
Advertisements are accepted subject to the terms and conditions ASP Ltd., 1 Golden Square,
printed on the advertisement rate card (available on request). London W1

UTILITIES

NEW TAPE UTILITY 9


This program gives a tape back-up of moat software. Even convert* most jerky
loaders to normal for reliable loading. Manage* very long program* (even 51kl|, fail
loaders, etc. etc. State type of Spectrum when ordering (Salt. 128k etc). [ 6 9 9 on tape
f£4 99 If updating)

BASIC • they mow and «h**th*r they wili wrap around o r .


A* l**i th* po**f and io**d O* m#ctwn* cod* *i«h tht bounce if they hrt th* *dg» You tan *no tall it to '.
NEW TRANSFER PACK 3 - FOR TAPE TO DRIVE
•**» of BASIC By adding ov«r 40 n«w cunvi land! 10 stplodt. continue or clop it It collide! with wm*
VOur normal H s d w b w t you c i r now M i l y Croat* thing And once programmed H won't need altering. ; A software system t o convert m e n y TAPE based program* to your DRIVE (no matter
V i c t n j l i r gansei end v c c l l l i M k u with w , lltlt* n w.11 *'*H th* old « n t * . find th* new poction. • what Type) + OTHER UT1UT1E5 Most jerky program* are EASiLV converted to drive.
t « o f l Upto 16 ditt*r*nl WINDOWS can Da craatad •mmala. draw the new iprit*. detect if tut. and do • Pack ha* at le«*t 7 prog ram* I Opus/Beta owner* add £1 for OPTIONAL extra program.
at any pobMin and any u » on rh* *cr«*n. from a what*wr necceaary automatically arid with unbtiew State TYPE of Spectrum t n a m e of DRIVE w h e n ordering leg 126k and Microdrive).
vngli charKlif Kjupt to th* who** icr**n Thaw •til* UMII Th*r* a>« also many oth*r command! ' D I M on TAPE OR f 1 2 . M on m / d n v * cartridge (C6 if updating I
windwn can than b* FILLED with any colour of which wil' improve th* tound or .nhanca the graphic ; INFORMATION SHEETS - CI each - appro* B transfers of popular program* per sheet
or pipe'.il can bt SCROLLED by stlnbutsi. tucfc m SOUND and WHITENOiSf a double poka ; - needs TP3. U p to N o 2S available SPECIAL OFFER - N o * 1 20 only £4 SO
p..« by pi»*< or l>v character iquire in any direction and peek, • FILL command, a MOVf command to '•
you can alto WRAP II to anything going otl on* Mftt mow block! of cod* or fill via of RAM with * u l I
MICftOTRANS - for m/drlve (o m/drive back-up + tape to drive (inc headerle**) - doe*
of th* wnndow spp**ri on th* oppo*it* lid*, you can number, you can d-tebi* BREAK or jump to any line ; not convert program*. Include* MICROTAPE and RUN program*. ONLY C3 on TAPE
•ho make the content) o< th* w m k i m stoavty FADE number if in ERROR occur, Thar* n dao • buttl m • C4.50 on Cart. For any Spectrum
away, or deer or fm it with any CMFU or UDG" th* TOOLKIT with RENUMBER.DELETE REMOVE. I CODE COMPRESSOR - O SO
powbiliiwt ait md<*u and th* command! 10 M*y to DISPLAY Mock* ol memory OnHE X.DEC and: Overseas: add £1 Europe. £2 others each product. SA£ lor detail*.
uM To lOOll downward* window ngmhr 5 than you You Can *4o add your own command! and routin*! ' NO RISK! - ALL P R O G R A M S CARRY O U R M O N E Y BACK G U A R A N T E E (not u p d a t e s I
limply type 1 SCROLL d 5 and II It don* el a to run along with BASIC • Wheilher you are writing ;
tplit second Than than are th* 16 multicoloured gamai. adventure! or ublltm BASIC e wi« r*d*c«iy •
Hi rewluTion animated ipr.cn wtuch era four l e w •n<r*aa* the quality. ipew) and presentation of any '.
th* normal udg n m T h a i * eat b* prmt*d to any part program All th* command* * • *»tr*amly Hind* IP ;
LERM. DEPT ZX2. 11 BEACONSFIELO CLOSE.
o' th* icr**n. and can mote al 31 d<ft*r*nt assdi. in iM, Mid ar* tvp*d in with the normal BASIC program ;
HI p*tt#"ii contrfMoully or only whanyou program iin** Th* program it compete*** with interface I . ; WHITLEY BAY NE25 9UW (Tel: 091-2533615)
them to mow*. You can d*f.n* th# window in which Microdrive! Kamptton Joyttck Interlace* '.

tffliTt ntcir.uia
SPRITE DESIGNER . 1[ _ ]
Th* moat adwncad on the market, and th* ***•*«t ; ! v PRINTER
to IM Altar aaaily drawing your fprit* using a BX ;'v THECOST;BASIC + £IO
ACCESSORIES
magnification you can mirror, rotate. wwart. scroll, ®
clear i*w and recall inetantly, it ewn thowi you the '.•',•', the other programs £6 Each SERVICES
iprite* at they i n normal a n and animated OR
T H E P R O G R A M M E R S PACK FABRIC RIBBON RE-INKING MAKE S O M E S P E C T R U M C e N C e
Thn allow* you to dump any part or all th* town to All four program! two 'Introductory Otter* S i m p l e C o m p u t e r C o n t r o l l e r tor
• Sinclair or Epwn compauw* prints'. Ih* w w o £1.50 Machinery and Models using your Sinclair
Spectrum
dump can b* normal, wn*r|*d.or ihaded with a ;X; catsettes in a large video box S e n d r i b b o n * e p r e p a y m e n t to: A little black boa which plugs into the
different frey K*l* for **ch colour.-ncfuding all
the BRIGHT colour, W Half Price O N L Y £14.00 A L A D D I N K , (Dept Z X C ) . eipension socket of any Spectrum and
4 Hurkur Crescent, Eyemouth, enebles you to drrve two small to medium
stepper motors [up to 2 A MPs per phase)
E Berwfckthlre. TD14 SAP. Of up to 6 DC motor*, relays, lamps or any
I I _ F cCOLUMN
i DISPLAY Tel: 06907 50965 other DC device
Simple lo Program and built by an engin-
The program t*u you print up to 64 chant*™ o n X * See ' N E W S ' ZX A p r i l 1967
Al at* program an rm+1 m4 pcvad •ach and rwry tin*, including the bottom rwo Hrwa ;X;I eering firm for It* own use You can use it
wrthm 24 hourt If ye* haw any uwng th* normal PRINT command!. AT m ) TAB ;.';X for CNC turning, milling or coordinate
«j*ra*phoi»:021 55S6S64 It will print iingl* l*n*ri. m m y , graphc* and CHRl, X;*; drilling.
you can twn LIST in 61 cfiarstsri. You can ml• X v Reliable Prototype stilt running atter three
Pleaa* maka cNsfmt or postal artsn normal 31 column and 64 column t*it you can *Wn JftJ years use
LI 0 . 0 J . 4 1 I I I I R I I I I I M . haw UDGS k M tar information p*g*t wordpro £ X We provide Interface instructions
H M m , Waal HMaafe M l o*aaoo. dautiaan. account* progrom, etc It can b* software, hints and examples Price £ l ? S
M 0 H pay TRANS CASH Mo 43236 0701. UMd With inc carriage and VAT Power supplies and
naHly from BASIC*
Stepper Motors available We win be
pleased to quote for larger units
mm&. P R PRODUCTS. PARK MILL.
HOBSON STREET, MACCLESFIELD,
WANTED CHESHIRE SK11 BSE.

UTILITIES Tel: (0625) 22BQ0

W A N T E D : Y O U R non working
BRADWAY SOFTWARE (ZX) C o m m o d o r e Computers a n d
equipment for cash Ring D M R
LETTA-HEA0 P I U S The m o i l vaiwltl* Spectrum ulility program few doiigning and printing Electronics, Bradford. ( 0 2 7 4 )
bu«ifle*9 and perionai stationery, receipt!, letterheads labels poster*, etc Create the design 882892
on screen using inbuilt graphics or load any S C R E E N S from an arts package add tail from the R I N G 01-437 0699 F O R
library of ?Sdi«er*ni fonts, select the required output formal and print all the copies you need
Price only M.B0 D E T A I L S OF O U R
DUMPY 1 Fast becoming the de facto standard screendump program producing all the screen
dumps you will ever need tor your Spectrum No need to understand assembler DUMPY'S code SERIES DISCOUNTS
GENERATOR creates the screendump relocates it and saves it rvady tor use in your programs
Over 1000 dif<ere«i sire, shape and density screendumps. anywhere in BAM' Puce less than l p
per dump" EB 50
U N - O - T Y P E Add Style 10 your written word. Pnnt Out On any wordproceiaor Me on tape
microdrrve or disc in high denstly NLO in a choice of 25 fonts, or turn you' Spectrum into a full
WYSIWYG electronic typewriter superb for addressing envelopes, filling in forms or writing RACING SERVICES
short notes Price IB SO.
ASTRUM • NEW!* The very best ZBOaisembier and monitor package for the Z60assembler and SOFTWARE
monitnor package lor the Spectrum Eiceedingty versatile powerful and easy to use. Fu«
wordprocessor Style editor Unlimited source code. Assembly using microdnves or the Opus
Discovery Command dnven moniior with multiple breakpoints Single Stepping slow run etc
Price t t 3 SO (itate mtcrodnve of Opus
TO ADVERTISE STOP
DISC MANAGER NEWEST* A brand new utility tor users ol the Discovery drives: Full disc
sector editor and tile mangaement program; Erase, rename copy goups Of tiles. Examine, IN OUR N E W E S T PLAYING GAMES
modify and understand disc directory information; E«amine modify and recover damaged Us* ytw compute to m*t money Tivn your hobby
date Price I10.S0 including 3 % ' disc only
Bradway Software programs drive moil (currently 16 different) Interfaces Lett*.Head. Dumpy
SECTION RING into I homa baud ram Full and part 1m*
apportwtist 10 Cltli * on ties trsnmdous market
6 Lln-O-Type reoui'e an Epson compatible printer and are compatible with Microdrrve
Wafadrrvn & Disc Prices are (or cassettes include full Instruction and P&P within Europe,
please add C2 CO per program worldwide an mail postage Ci SO lor microdrive cartridge or disc
NICOLA BATY High sarrmgi twity poiubi* Open to any mateui
mao unr and gmtr Wms tar frva detail
Send for further details'
ON Westlink Promotions
108 George Street
(ZX)

33 Conalan Avenue, Sheffield S17 4PG 01-437 0699 Edinburgh EH2 4LH.
WARNING NOTICE
Advertisements placed in t h i s magazine are to be in strict compliance with our standard conditions (copies of which
conditions are available on request) and on the clear understanding that the advertiser warrants that h i s
advertisement(s) does not infringe any copyright or condition of sale of any interested party in the advertised
product.
Further, the advertiser indemnifies the proprietors of t h i s magazine in respect of costs, damages, or any other claims
brought against them as a result of legal action arising from the publication of the advertisement.
Any breach of these terms or the said conditions may result in prosecution of the advertiser by the proprietors.

SOFTWARE
HUMPHREY SOFTWARE FORTRAN 77S COMPILER for
TWO PROGRAMS
WD Software 4 8 K Spectrum for just C15 Send
F O R T H E QL: c h e q u e to Mira Software 24 H o m e
SUPER HANDICAP; The connoisseur
racing program that wilt pay tor iisell JOSS base £13 Close. Kibwortb. Leics LE8 OJT Or
Full Instructions and Forget that tedious, t ime-consuming syntaii i Just move the cursor and p r e s s S P A C E tor ail write for further information.
recommendations y o u ' tile command! C u r s o r keys or your loystick allow you l o access microdrives l u p t o S )
ONLY £9.98. and lloppy discs (as many as our interface allows) w t h up to ISO files on each! Scroll and
SEEK 1 FIND: Try to sink your print directories COPY, D E L E T E or P R I N T any liie. select T V or Monitor mode Before
opponents ships before he gets yours, LOAOing ot R U N n . n g any program Y o u only use the keyboard l o s e t the D A T E ot label a
but watch Out tor the mines' One or two device when F O R M A T t i n g Easy l o use with P s i o n and other software No s i l l y icons l o
i e » ' n - J O S S will T E L L you what it s going to do1 Programmer s toolkit and mass copy ing>
players, many features printing utilities also Supplied Specify microdrive-onfy. Mictopef iphe»al or C;ST- ST
ONLY £3.99
SPECIAL OFFER
compatible disc versions TERMS &
Ref QL7 bate £7
BOTH PROGRAMS AT ONLY £11.95
INCL. 1300 useful O l references with A R C H I V E 2 sea/ch/ptmt program T o o long lor l u s t one CONDITIONS
cartridge s o if you have R e l O L S |ust pay 2 and enlra media cost l o update
HUMPHREY SOFTWARE
Mdv Exlentlon Cable £5.50
8 Richard Anderten Court. Eight inches long. allows addition of entra microdrives l o your O t T w i s t it l o put their s l o t s
Monton Road, London SE14 5EJ. facing you CLASSIFIED ADVERTISING
F O R T H E OL: S P E C T R U M ; BBC; E L E C T R O N T E R M S Si C O N D I T I O N S
WO " o n * Tutor bate £4 Our terms f w new advertisers I term dupley
Written 10 teach amateurs, now used by professionals too' Absolute beginner. Of and lineegel are strictly pro forme paym*nl|
stretching you'Speed to 18wpm. you w o n t f i n d anything with morehelplul features What unlit satisfactory reference can bo taken up
else can of I or 100 random sentences as wetl as all the b a s i c s ' Disc version unsuitable for leadudmg recognised atfcrertismg agencies)
CHCZRON SOFTWARE BBC B* Cheques end P O s should tie crosted and
(Dept. J 0 3 I 605 Loughborough Road mede parable lo A R G U S SPECIALIST
Blrstall L E I C E S T E R L € 4 4HJ FOR T H E S P E C T R U M :
f U B U C A F t O N S L T D and lent together w i t h
B O N A B A N N E R — Programmers' Unleash
WorDllnder (Mlcrodrive/dl»c only) bate £8 the advertisement 10:
the power ot s t r i n g graphics on your For C H E A T I N G at crosswords F i n d s m-sa-ng letters, solves, anagrms 13.000 word " T h * C l a s s i f i e d Dept .
Spectrum Create title pages. tent adven- vocabulary, so s long to share a cartridge 10-letter word ending in A T E ? N o problem No 1 GoMtn S q u i i * .
ture graphics, program headers etc. that Tradewlnd bate £3 London W 1 R 3 A B
print instantly from Basic or machine Thai a ar* no l e n t i u r t e n t n i i lor can.
code S a i l t n g l r a d m g strategy game w i l n graphic s u r p r i s e s
Jersey Quest bate £3
cellaion* Advertise/nenis arrtvtng too late tor
a particular i s s u e wei be inserted >n the
At just £3 SO why hesitate 1 — If Our demo
Te>t adventure i n t>me Background o l Jersey folklore from Stone Age to Bergerac following i s s u * u n i o n accompanied by
program d o e s n l convince fhat B O N A -
i n s t r u c t o r * to I he Contrary It i s t h * re*,
B A N N E R » useful to you J U S T R E T U R N For export: pontitxlitv of l h * advertiser to ensure thai the
T H E W H O L E PACKAGE F O R A F U L L O L hardware and software from many sources Ask for list/quotation f i r s t in»*rtion of every tenet 4 published
REFUND"
ORDERING ADD COST OF MEDIUM. POSTAGE £1 OUTSIDE EUROPE. correctly, and corrections m u s i b* notified i n
Mdv or $.25" floppy • £2 3.5" floppy £4 Cassette £0 l i m * for I ha second i n * * i l a n o l h e r v . i t * I he
p u b l i s h e r ! w i l l not accept any liability or offer
Payment anv reduction m charges
B y ACCESS/Eurocard,'Master Card or S T E R L I N G ( U K b a n k cheques. Eurocheques, drafts AN advertising sale* are subtect to Govern.
or I n t e r n a t i o n a l G I R O ) . T o m « n t Regulations concerning VAT
QL/SPECTRUM UTILITIES! W D Software (ZX), Hilltop, St. Mary. Jertery. C.I. t*l: (0534) 81392 Advert i s e r s are ' e t p e n t ^ i * tor complying wah
the variousiegel requirements inforcaeg The
Wide range of business/practical Trede 0 * s c r v t n n Act seidficrimmrtionecifc
programs available. SAE/IRC for the b u s m e n advertisements Idisctosurel
details (state Micro). SO Micro- fuK Ttrmf A CamUlWil
ort»er 197 T
of A&vftiimg
systems (ZX) PO Box 24. Hitchin, erai/aVe on reeuesr
Herts

Lineage rate: 48p per word {VAT inc.)Minimum £7.20.


Semi display: £9 50 per single column centimetre + VAT. Minimum size 2cm. No reimbursements for cancellations.
All ads must be pre-paid.
Write your advert in BLOCK CAPITALS in the grid below, ticking the section you wish it to appear under. INCLUDING
YOUR NAME AND ADDRESS IN THE WORD COUNT and send it to: ZX COMPUTING, ADVERTISEMENT
DEPARTMENT, NO: 1 GOLDEN SQUARE, LONDON W1R 3AB.

REPAIHS • SOFTWARE • UTILITIES • FOR SALE • ACCESSORIES • OTHERWISE PLEASE STATE

CLASSIFIED COUPON Name


I
ALL CLASSIFIED ADVERTISEMENTS MUST BE PRE-PAID. Address
THERE ARE NO REIMBURSEMENTS FOR CANCELLATIONS. I
I enclose my Cheque/Postal Order for £ lor...... POST CODE I
insertions, made payable to Argus Specialist Publications. _ _
(Oelete as necessary) t-J
I
DAYTIME TEL NO. I
P L E A S E D E B I T MY A C C E S S / B A R C L A Y C A R D NO
Signature Date
Q I I ll M I
EXPIRY
£ FOR INSERTIONS DATE ..

"FYOLTDO N O T W I S H " T O C U T YOUR MAGAZINE, P H O T O C O P Y T H I S FORM


was obviously there to produce reach a docking bay requires a
When you've crammed an upgraded version steady hand on the joystick.
appropriate to the wide open Tau Ceti requires dedication
a whole planet into ASK spaces ot the 128's memory. It s to be enjoyed to the full, but the
pleasing to report that CRL have shoot-em-up element supplies
what more can you do done a good job in upgrading enough instant gratification to
the original with a bigger game- pull you into the game proper, tt
for the 128 version? play area on the planet surface, you like games that you can
improved graphics, more become thoroughly absorbed
atmospheric pictures of building in, Tau Ceti fits the bill and if you
Tau Ceti (The Special interiors and a lot more are a new Spectrum 128 owner
Edition) information available at sites like it's a must. Whether the
the library and time vault. enhancements make it worth-
CRL For those unfamiliar with the while buying a 128 version if you
£9.95 48K version, Tau Ceti is a already have the 48K game is
128/+2 only sophisticated shoot-em-up of debatable and depends mainly
great complexity calling for a on how enthralled you were by
degree of strategy along with the original. Tau Ceti, The
some determined zapping The Special Edition, more than
Owners of the 128 and +2 have plot centres on Gal Corps efforts justifies its £9.95 price tag and
waited in vain for the torrent of to recolonise Tau Ceti III. You as gives a foretaste of what this
gomes that were going to take piiot of a "skimmer" spacecraft virtually unexplored machine
advantage of all that extra must shut down the fusion may be able to do when
memory. Games for the 128 only reactor in the capital city pushed to its limits.
have been few and far between Centralis. Pitted against you are
and "enhanced" versions of 48K all manner of robot controlled
games have often been dis- defence systems.
appointing, applying cosmetic The action takes place on
graphic touches but not really and above the planet surface. If
exploiting the memory increase. you can successfully dock with
With Tau Ceti, a game that a building you can gain access
seemed to cram an enormous to valuable information; flying
amount into 48K, the potential your craft through an airlock to
THE OFFICIAL

FOOTBALL
T h i s new up-dated version of last season's best
selling official FA Cup Football incorporates
every league club's form for the 1986 season as
well as new manager's questions to test your
judgement.
FA Cup Football 87 is a text based simulation
of the FA Competition that allows you to take
10 teams to success. You make decisions about
tactics during play and answer which
contribute to your teams victories.

The game has been developed with the full


endorsement of the Football Association and
the form that gives such realistic results has
been provided by sports writer Tony Williams
(author of the Official FA League and Non-
League Directories).

Available for Spectrum 48/128, Commodore


64/128, and Amstrad CPC computers. All
versions are on cassette only and cost £7.95.
Available from all good software shops from 24
February 1987 or directly from Virgin Games.

Spectrum 48/128 £7.95 •



C o m m o d o r e 64/128 £7.95

Amstrad CPC £7.95
Please lick the version you require and send this tear-off
io: V i r g i n G a m e s Mail O r d e r , 2/4 V e r n o n Yard,
Portobello R o a d . L o n d o n W 1 1 2 D X .
Make cheques or crossed postal orders payable t o V i r g i n
G a m e s Limited. Please do not post notes or coins.

NAME
ADDRESS

M O N E Y ENCLOSED
GRANGE
THE GAME

Victory House, Available for Spectrum,


Leicester Place,
London, WC2H7NB. Commodore 64
and Amstrad: £9.95
\rnux Prrv.
SofiHiint.nwp
Telephone 01 -439 0666
u i d i i y e run t y r n n n e a m o n o enterprises Ltd

You might also like