You are on page 1of 92

~mm

1
II
AN ARGUS SPECIALIST PUBLICATION FEBRUARY 1987 £1.50

FOR ALL SINCLAIR USERS

!//
W im
'JflflffHtth
m.

% i I MENU

xpert Systems

Discovery Routines

C r a s h p r o o f ing your
Programs

Ad v a n c e d Art Studio/
The Artist R eview e

A
S^fcONA Mrs

• mi m
MEAT ARCADE
GAMES ffOftlHE
HUCEOFOIC
m Voted.«DEST COMPILATION OF THE YEAR'
_

o
o
o
o
Q
© FOR THE C16 micro C2tiIiEff£3l

I
•-—-I
o

COIN-OP HITS
SPECTRlJMCOMMODORCAM$»TRADC16BBC
CASSETTE DISK

£ 9 * 9 5 1 U
« g ™ 1 4- '9 95 5
Screen shots taken from various computer formats

Imagine Software (1984) Limited, 6 Central Street. Manchester M 2 SNS.Telephone: 061-834 3 9 3 9 Telex: 6 6 9 9 7 7
Ortn
l bue
i d <n Fnn«by Cknn f'Jntr Trlrphont 9>-t?-7144 OKntoutf-d in Gwnury
i byftosfiwirfTee
l phon* 2101.70040

REGULARS FEATURES
UJ
NEWS: Opus halts Discovery Disc drive production. ilLUMiMATOP Adding decorative touches to
4 Illuminated text.
12
ACROSS THE POND: U.S. news.
18 THE FRIENDLY PROGRAMMER: Crashproof programming
by Alan Davis.
20
DISCOVERY COLUMN: More routines sent In by
Discovery owners.
24 THAT'S THE TICKET: Carol Brooksbank on the creative
use of screen dumps.
28
QlL COLUMN: The latesl on the QL*s survival course.
35
EXPERT SYSTEMS Can you give your Spectrum or QL
Artificial Intelllaence.
CROSSWIRE: Readers' technical problems.
49 32

A BACKWARD GLANCE AT UTILITIES Alan Davit


SHORT CUTS: Readers' prize-winning routines.
assesses the long term performance of some
50 established utilities.
36
CROSSFIRE: Letters page.
71
FIRST STEPS IN MACHINE CODE: Some of our regular
writers tell how they started learning machine code.
RANDOM MEMORY: Programming advice from Clyde
Bish. 52
72
STREAMS AND CHANNELS: Ton! Baker continues to
PAGE $1: More from the last outpost of the 81 with Ray explore the windows channel.
Elder. 75
81

TECHNICAL GRAPHICS: A look at elementary 3D


COMPETITIONS graphics with Toni Baker.
78

DEATH OR GLORY: CPUs latest space epic Is Up for


grabs.
17

FOOTBALL FORTUNES: Win a copy of C D S * new


football game.
t
31

PROGRAMMING PROJECTS 'M l •


SPECWORD The second part of our mega word-pro
program.
42

KINGDOM O f K U U : An adventure to type In on the


Spectrum.
60 Aliens (54)

S
PULL DOWN MENUS: Tonl Baker shows how you too can
add flash menus to your programs!
66

SOFTWARE REVIEWS
SPECTRUM: Aliens, Stargllder, Marble Madness
. . . Short reviews begin . . .
38

MINDPLAY: CRL's Dracula and The Colour of Magic


among this month's releases*
56

UPGRADE ART: New versions of The Artist and Art


Studio reviewed.
85 Starglider (46)

3 ZX Computing Monthly * February 1987


*w * s
Opus axe Macho Man
Discovery
Opus hove ceased
production o( Discovery Disc
Drives for the Spectrum. A
spokesman for Opus said. "It's
purely a commercial decision.
We are now getting involved in
larger more lucrative markets
such as IBM and these are
taking up all our available
resources We shall of course still
be giving technical support to
existing owners."
Opus say they have no
further stocks available
although some dealers may
have limited supplies. An
estimated 15,000 Discovery
Drives have been sold since its
introduction.
It is not known whether
another company is to step in
and continue production of the
Discovery.

Dan Dare
Winners
The lirst prize winners ot the
Dan Dare comptition are
Maurizio Cunningham Brown C.Womack. Northalerton; Advance Software are to follow up their Hardball conversion
from Henley in Arden and Gerry G.Shimmings, St Leonards; with two new titles. Indoor Sports is another conversion — a
Galloway of Liverpool. They R.Jones, Belfast; I.McVicar. collection of Darts, Ten Pin Bowling, Blow Hockey and Ping Pong
receive a copy of Virgins Dan Clydebank; G.Darlington, Liver- all on a single tape — and is due out in February for £8.95
Dare book. The Man Who Drew pool. Butch Hardguy is meant to be a sort of Ram bo spoof in which
Tomorrow, the lite story ot Dan the aforementioned Butch has to free loads of POWs from cells
Dare's original illustrator Frank
Colossus 4
on 20 different screens. The price of Butchness is £7.95.
Hampson.
A further 25 entrants win a
copy of the game.
They are:
Chess Colossus 4 Chess program. Bambrugge. Belgium; John
R.Douglas. Mostellssveit,
Iceland; Paul Sullivan, BFPO 43; winners They are;
Rob Ramshaw, Tynemouth;
Jim Feltham, Morden; Mark
Cliflon, London SE3: CS.Evans
BFPO 45; S.Deering, London E1;
N.P Powley, Kings Lynn; J.JCarr,
Richard Hockey. London E18: Chess seems to be a
BAtkinson, Darlington; T.Yau. popular pastime among ZX Teeger, London NW6; D.French. Cambridge; G.Havenhand,
Cardlfl; A.Hawscroft, Manches- readers juding from the large Margate: Mike Looseley, Har- Sheffield; Brian Taylor,
ter; QOrunsun, Stoke; M. Kemp, number of entries for our mondsworth; P.Lanft, Bad Vllbe, Scunthorpe; J.Scherphuis,
Wesferham; N.AImond, Coven- Colossus 4 Chess competition. W.Germany; Paul Hargreaves, Boschen Duin, The Netherlands;
try; E.Bennet, SW11; T.Miller, Almost without excepllon every Brendford: De Meester Bart. R. Addiesee, Leicester.
Staines: RDodsley. Nottingham; enlrant deduced the correct
DJ-Morgan. Swansea; BHerwig, solution to the chess problem — Editor: Bryan Ralph
Kortenburg, Belgium; A.Siddal. whites move was King C7—C8. Assistant Editor: Cliff Joseph
Chesterfield; M.Watson, Darwen, Now 20 winners will be able
TWitt, Galhampton; L.Voort. to wile away the long winter Consultant Editor: Ray Elder
Leiden, Holland: CRenders, evening locked in intellectual Advertising Manager: John McGarry
Farnham; P. Marl, Chester; combat with CDS's excellent
Design: Argus Design
Printed by Chose Web. Esiwer. Plymouth. A.S.P. Advertising and Editorial
Advertisement Copy Conlrolet: Andy Selwood
No. 1 Golden Square, London W1R 3AB 01-437-0626
Distributee) by Argus Press Sales and Distribution Lid, 12-18 Raul Street. London EC2A 4JS

ZX Computing Monthly is published on the tourth Friday ot each month. Subscription rates cn be obtained <rom ZX Subscription], inlonet. limes House.
179 the Marlowev Hemel Hempsieod. Hem HPS1 1B6
The contents ol this publication, including all articles, designs, plans, drawings and other intellectual property rights herein belong to Argus Specialist
Publications Limited. All rights conferred by the law ot Copyright and other intellectual property rights and by virtue ol international copyright conventions
ore specifically reserved to Argus Specialist Publications limited and any reproduction requires the prior written consent ol the company
Argus Specialist Publications Limited tW 7

4 ZX Computing Monthly * February 1987


Ocean's trio
As well as their heavily hyped Christmas biggies, like
Cobra and Top Gun, Ocean have also lined up a few
other games with a bit less accompanying lanfare.
Legend of Kage is yet another martial arts type smash
'em up, while Double Take Is an odd sounding game
involving cyclotrons and alternate dimensions and, of
course, a healthy dose of violence. Then there's the coin-
op conversion that we've all been waiting tor . . . Donkey
Kong. Call me a cynic, but I cant help thinking they've
missed the boat with that one.

Spectrum Games Top Ten


1 ( 7) Trivial Pursuit Domark
2 ( 1) Computer Hits 3 Beau Jolly
3 ( ) Gauntlet US Gold
4 ( ) Aliens Electric Dreams
5 ( 6) The Great Escape Ocean
6 ( 3) Paperboy Elite
7 ( ) Space Harriers Elite
8 ( ) Cobra Ocean
9
10
(
(
)
4)
Konami's Coin OP Hits
Infiltrator
Imagine
US Gold Trivial Pursuit
(Chart supplied by W.H. Smith) Robert Burgess of Rotherham Robert was not destined to
battled bravely In the tinals of carry oft the £10,000 solid gold
Domarks Golden Trivia Chal- Trivial Pursuit Set he did take
lenge, held in London. As ZX's home the new Genus 2 Edition
War in Orbit representative, Robert, narrowly
missed getting Into the last six
of the game as a runners up
prize.
by the odd wedge. Although
Quicksllva's latest game, Defcom, is all about the
American Strategic Defence Initiative (SDI). The game

ZX B MX
has the orbiting weapons system taken over by invading
aliens who decide to use it for their own purposes. Only
you, in the role of heroic Nick Diamond can save the
Earth, assuming that you've got £6.95 to spare to get you We probably shouldn't admit It but the Commodore
started.
version of BMX Simulator released by budget software house
Codemasters was one of our recent iunchtime favourites.
Imagine then the breathless anticipation with which we
await the arrival ot the Spectrum version. With a track full
ot ramps, banks, whoops and burns there are all sorts of
possibilities for cycle mayhem and all you need to Join in
is £1.99.

Sounds familiar
Masfertronic have got a new have to guide your cute
?iame lined up called
erminus. It's a massive
arcade adventure with lots
little sprite past lots of traps
and aliens and (stop me if
you've heard this before...)
and lots of screens and you

ENEMy CLOSE TO
SINGLE LRSER
DOUBLE LASER
RQCKET^LflUNCH
GRRPE SHOT
SCORE ON O f f
V D U ON OFF

HI 66286
The Battle of Britain
Alternative The PSS Wargamers series
marches ever onwards with
forces against the deadly
Hun' strategy game with a
the sky' type), so it may well
appeal to more than just the
Budget the release of Battle of
Britain. This manages to
few flight simulator style
arcade sequences (of the
usual wargame following.
combine a deploy your 'blow the deadly Hun out of
Yet another budget software
label has launched itself
onto the market, in the
shape of Alternative
Software. Their first two
offerings, priced at £1.99 are
Howzat! (a cricket game,
would you believe) and
Henry's Hoard, a 50 screen
platform game. We havent
actually seen the games
yet, but the cassette inlays
look n i c e . . .

Round
the bend
Okay, hands up all the
overgrown kids who used to
have a Scalextric kit? Well
you can indulge in some
computerised nostalgia with
Scalextric on your
Spectrum, courtesy of
Leisure GeniusWlrgin. the
game costs £9.95

Into the hive


The Hive is a little task is to destroy the Queen
something that Firebird are of the Hive. The game is
preparing for the New Year. being written by the Torus
Set inside a hive where your team (of Gyron fame).

HACKER I
I k M u s t y ftptrs
atunrai
Starlight
Greyfell — The Legend of
Norman, is the first release by a
new full price software house
called Starlight. Norman is a
humble cat in a world entirely
inhabited by animal characters
such as Potbeliius, the dog
landlord. Blotto, the drunk
rabbit and Willy the pig police-
man. Dissatisfied with his un-
eventlul life Norman sets off to
defeal the evil Moron, a ruler
who has been making life hell
for the denizens ot the mena-
gerie kingdom.

All this and Hacker two! More war


The Doomsday papers is the subtitle ol the sequel to Yet another WWII battle zone gets the wargame
Activlsion's earlier Hacker game. This time you're playing for
00 really big stakes as Ihe CIA has asked you to save the entire
treatment. CCS have come up with Vulcan, which
reproduces the Tunisian campaign of World War II. The
planet from the Russians You've got to do a bit of computerised
£ spying and hack your way into the computer In a Siberian
game Is for 1 or 2 players and allows you to control
either Allied or Axis forces and comes packed with all
security complex. sorts of maps and photos, and a big video box for £9.95.
The Doomsday Papers retails at £9. 95.

6 ZX Computing Monthly * February 1987


corn
SINCLAIR
QUALITY APPROVED REPAIR CENTRE
IgOTD r r f K C D
HOW TO CETYOURSPECTRUM REPAIRED FORONLY £19.95
SPECIAL OFFER! SPECIAL OFFER!
not upgrade »Our ordn i ary Spectum into Why not upga r de rev 1M Spectrum to i «<
ttw tant«t« D* Tronits tvptwnter trvDoard ^•or«itr«js£17 95 m 'jji^gvat |MM|M|
fo» onv
i £31.50 n i cu
l dni g nrang VAt jno if you *Ot»d • W us <0 *it ttie mr Kf
rrtum post jno packn ig
Normal e
r commended reta« ortce wu ws<swous£19 95»t>cn>s
£49 95 Getxacpment prated j tum inouvvt ence to cow
0« Tromcste* an costs inr ufling return
iV wis £7 SO
IK ludino POSt 1 ! i] i * 1 ful< 'ifT >
rQ njtructom
•acmng sooo**o *<tr Fvfv m
Itwt 1 and 5 only
U p d a t e Y o u r R u b b e r Keyboard^
t o a New Spectrum+
Fitted for only £31.90 • £1 50 post s paomg
(Also D.I v Kit available for oniv £24.95 Mw
• £i 50 post & pacmngi "
Your Spectrum repaired and upgraded to
a spectrum Pius for special offer once of
£50.00 complete
Same day service LIMITED OFFER

TEN • REPAIR SERVICE


While vou wait service including * Fivetopgamesworth£J9OOforyouto
computer spare parts over the counter enjoy and play with every spectrum repair
aii computers fully overhauled ana fully • We repair Commodore 64 s, Vic 20 s
tested Before return Commodore 16 sand Pius J s
Fully insured for the return journey * The most up to date test equipment i
Fixed low price of £19.95 including post developed by us to fully test and find ail
packing and VAT iNot a between price faults within your computer
of really up to £50 00 which some of our • Keyboard repairs Spectrum rubber key
competitors are quoting! boards only £8 95
Qiscounts for schools and colleges » 5 month written guarantee onall repairs
BEST SERVICE - BEST PRICES / / ,
ARE YOU ANOTHER CUSTOMER - fed up
waiting weeks f o r your estimate?
Need your computer repaired fast? Then send it now to the Number One Repair
Company in the U.K.. or call In and see us at our fully equipped 2 500 square foot workshop
with all the latest test equipment available You are more than welcome
we will repair your computer while you wait and help you with any of your technical problems
Commodore computers repaired for only £55 oo Please note we gove you a 100% low fixed
price of £19.95 whicn includes return post and packing VAT not a between price like some
other Repair companies offer We don t ask you to send a cheque in for the maximum amount and
shock you with repair bills £50 upwards Don t forget we are Amstrad aproved for quality and
speed don t risk your computer to any other unauthorised repair centre wedont Just repair the. » 3 1SPECIAL O F F E R !
fault and send your computer back we give your computer a - Giifi SOOT • RJCNd Fire Joystick jna
interface comp^-tr outfit toorma
OVERHAUL W I T H EVERY REPAIR WE DO:- tttommpryiM fetjii once 1*9 rf Spectrum replacement
power transformer
we correct colour, sound. Keyboard, Check the loading and saving chip. Put new feet on 0* tynvCI 6 5tXnciud«rig DID suitable for all makes
tne base if required check for full memory, check ail sockets including ear mike and replace JOVltitfc *V*H*0at * It*rm£10 95fc of computer t9 95
plu4jmerf«C« MM»Ot* M tfD«K4t* 1 plus £1 50 p S p
where needed All for an Inclusive price of £19.95 Including VAT, all parts. Insurance and post
and packing No hidden extras whatsoever we don t have to boast too much about our
service as we have thousands of customers from all over the world highly delighted with our Spectrum k e y b o a r d
sen/ice A first class reputation for speed and accuracy Don t forget we also now have a membranes
Service Branch in Manchester City Centre for while you wait sen/ice
£5.50 plus £1 50 p & p
SPECTRUM SPARES COMMODORE SPARES
Spectrum Plus spare
7006 CPU 900 6576-C I A 1900 keyboard membranes
4116 Rams 100 6510-Processor 19 00

D.I.Y.
7TX 650 0 60 6581-SlCJCtlip
ZTX21S 0 60 1900 £ 1 2 . 9 0 p!us£1.50 p & p
Power Suoptv Transformers «« 906114-House Keeper 1900
LLA6C001 16 SO 9017?S-Graonic Rom 1900 zx 81 membranes
Rom 16 SO 901226- Basic Rom 1900
CORNER k eyooaro memorane
Spectrum
*eyOoard memorane
S50
901227- Kernai Rom
6S69-VI C
1900
1900
£5.00 plus £1 5 0 p & p

12 90 4164 Rams-Memory
We regret we cannot 5 00
Spectrum P* us mem Drarve
show an the components Metai Templates S SO Power Supply
available Just give us a keyboard Wats S SO Transformers
can ana we can quote you ZMimemorane S00 AiiourpricesmciuOrvAT but please add
over the phone delivery Service Manual [JO 00 n SOoneacnwde* to cover post
by 1st class post pic ding and handling c harges
VIDEOVAULT HEALTH WARNING!!! Commodore
Sending your computer to any other Repair Centre can seriously Damage Its Health replacement p o w e r
transformer £29 00

fuuv
repaired
attested,
ON MOST
ADVANCED
, TEST
EOUIPMEHT I Street west, Clossop. Derbyshire SK13 8HJ
140 High
IN EUROPE'
Tel: 04574-66555/67761 Head office & access orders, queeries,
Manchester 061- 236 0376 while you wait repair centre only.
c copyright Videovauit Ltd NO 682121
Arcade action in the You begin the game with 1000 Unfortunately, the spells that
energy units that are drained at you find have a random effect
necromancers dungeon an alarming rate whenever a when they are cast. Sometimes a
nasty gets near you. Luckily this spell may wipe out a screenful
can be topped up by collecting of nasties but others may only
as the magical flak piles of food that are strewn stun them for a short time or just
around the dungeon (usually on disorienatate them.
flies... the wrong side of an army of Even if you've wiped them out
dungeon denizens). you must move quickly as they'll
Keys, magic and treasure can quickly be replaced as more
Dandy also be found and are essential are generated.
Electric Dreams to your survival. If things get really tough and
The keys are used to open the your energy plummets you can
£9.95 doors that would otherwise block trade treasure for energy that
your path but since there are might keep you going long
• = ifteen dungeons packed with less keys than doors, care must enough to find some more food.
spectres, necromancers and be taken to use them only on Dandy must be played at a
assorted nasties lie in wait for the doors that are important and frantic pace otherwise you will
those brave enought to enter. lead to treasure or the way out. be constantly overrun with
Taking the role of Thor, who Quite often a room has several nasties. This will mean that you
can be joined by Sheba doors all leading to dead ends will make mistakes such as using
(controlled by a second player) when the correct route is a key on the door you were
you must hack and zap your through a teleport pad that trying fo avoid letting loose a
way through rooms, jumps you to a similar pad in an horde of monsters that begin to
passageways and stairways to adjacent room. chase you.
get to the treasure. Use the valuable keys on Complete a set of dungeons
Dandy may seem an odd dead end doors and you won't and you'll be awarded a clue
name for a massive, magical, have enough to reach the stairs but you'll need to survive all of
arcade adventure but it is that lead to the next level. them to get all three clues fo
named after an original game Pressing the fire button hurls a solve the game.
that later became known as hail of blasts at the nasties in I'm not sure of the point of
Gauntlet. your line of fire. One hit is these clues that are thrown in
Only a fraction of each enough to take out most almost as an afterthought but
dungeon level is shown on the dungeon dwellers but the perhaps when the riddle is
sceen at any one time which necromancers need 4 hits fo kill solved it will make more sense.
flip to the next section when you them. The worst to shift are the But before then I've got a few
move off the edge of the screen. spectres not only because they more spectres to trash!
This lack of gradual scrolling need more hits to kill them but
means that you often rush into also they can drift through walls
situations you'd rather avoid like that block the others. If you don't
a horde of necromancers. get them, they'll certainly get 1-4 :t
Immediately below the you.
dungeon display is a scroll There can be as many as <
indicating the present levels of thirty or more critters coming at
energy and number of keys, you so even one shot nasties
treasure and spells for each become a big problem. The
player. answer lies in magic

8 ZX Computing Monthly * February 1987


Four top notoh games
for the price ot one
UU
from Durell

Big 4
Durell
£9.95
F o u r of Durell's best known
games are now available in a
single twin cassette pack. Now
for the price of one game you
can fly a deadly Lynx helicopter
in Combat Lynx, drive a Turbo
Esprit in a city centre car chase,
infiltrate an enemy security base
in Saboteur and disable an anti-
matter plant in Critical Mass.

Combat Lynx
The action begins on the launch
pad as you arm your combat
Lynx helicopter for the mission
ahead. Your job is to protect
and terry troops between a
maximum of six bases (depends
on game level) while fighting the
planes, helicopters, tanks and
gun emplacements of the
enemy forces.
Through your controls you
must plot the positions of the
bases and the approaching
forces and defend the ones most
at risk while keeping the others
fully supplied.
This isn't an easy game to Saboteur trouble attempt to destroy your
learn with over 30 key controls to rocket propelled hovercraft. This
perfect but it is still one of the As a change ot pace Saboteur is protected by a force field that
best combat flight simulators. has you creeping around a is weakened by any collisions
warehouse that the villains are with the rocks that strewn the
Turbo Esprit using as a central security surface or by enemy fire. If this
station. Your mission as an ace gives way your ship dramatically
Driving your Lotus Turbo Esprit mercenary is to infiltrate the explodes around you leaving
around one of four city centres warehouse and find a disk that you hovering above a pile of
at 150mph isn't easy especially contains the names of all the rubble.
when you're supposed to be the rebel leaders. If you're lucky you can hover
good guy and avoid mowing Naturally you're an expert to a replacement pod and get
down pedestrians and other martial artist as the game was another ship to continue your
drivers. Meanwhile the bad guys released when kung fu games mission. If you're unlucky you'll
are operating a drugs ring and ruled. be eaten by one of the Dune
you must tind and catch the Now it is looking a little dated style giant worms that rear out of
armoured supply car and the but has survived mainly due to the planet to chomp you.
four pick-up cars before the hit the size of the warehouse you Should you manage to reach
cars find you. must explore and the choice of the base you then have to find a
Unfortunately, you must stop at weapons you can find and use way in past the fused mines,
traffic lights and observe other on the patrolling guards. The disorientation clouds and
driving laws while the drug guards also have dogs that protective wall before you can
dealers will shoot anyone in an constantly snap ot your heels have a shot at the energy
attempt to get away. and drain your energy. concentrator to clos down the
Tracking down your targets is Eventually you should make reactor.
easy using the scanner that your way to the roof where a Each game separately is well
reports their position which you helicopter waits to rescue you. worth playing with; my favourite
can follow on your map but look being Combat Lynx and Critical
out for warnings about hit cars Critical Mass Mass but with four hits tor the
approaching you. These try to price of one, it just has to be a
gun you down from behind so if My pick of the bunch is Critical monster hit.
you get a warning you'll need to Mass that gives you just ten
perform a speedy manoeuvre to hours aametime to travel
get behind them! through the five zones to reach
An excellent car chase game the power plant before it
but don't be surprised if your explodes.
penalties (for crashing, running Naturally this isn't going to be
lights, shooting innocent people) easy as the enemy that invaded
are greater than your score. the planet and caused all the
R.R.P. £9.95

Spectrum & Amstrad


available November 20th
Commodore 64
available January 20th
Trade enquiries to Centresoft
on 021 3 S 6 3388
Sales dept..
Castle Lodge, Castle Green,
T a u n t o n , Somerset T A 1 4 A B
England T*i*phon«|oui|S44«9itwn
m

• v-1

O V
V v

1 ' _

v-y—\

Spectrum In October, A m s t r a d in November, C o m m o d o r e 6 4 in December

Sales d e p t . .
Castle L o d g e , Castle Green,
T a u n t o n , Somerset T A I 4 A B
England rctcphon* (omjj s«m * s«m

software getting harder


OGVfXJytJO
•O|ou are standiT)9 by the
^ a n c i e w t s t o w e g a t e w a y o f a
ruined a b b e y . Co t b e
s o u t h e a s t tbe dark leat'y
m a s s e s o£ t r e e s are
silhouetted ayainst tbe
r i S i T ) 9 pi o o?), w h i l e t o t b e
n o r t h a broad track winds
i t s way t o w a r d s t h e h i l l s .
f S ^ b e r e i s at) o l d , weathered
^PiDscriPtvot) carved i n t o a
J > j larye slab set into the
wal I .

You exajtriue t h e inscription,


Which reads: H E K E L I E CHE
B O U E S OF CUCHIiEKC, ABBOC OF
B A U K S F I E L I > . DXSCCJttB C H E H
HOC, L E S C Y E P E I t l S H .

Illuminator at work, showing one possible form of decoraflon

Exploring the possibilities of the


Illuminator program
with Alan Davies

I
i

• -

* -
' - • • •-• ; • * • • —
elcome back to ZX
IM
Computing's Anglo-Saxon
department. It you've been i S i S t h e t o p W i T l d O W i f o r
dabbling with the Illuminator 'location descriptions. It
program from last month's
article you should now be the
occupies the screen from row
possessor of the following items: one to row twelve inclusive.

I
(a) 26 large initial letter shapes Cbe decorated border is two
stored in 832 bytes; (b) a character squares wide on
redesigned "normal" character icb. s ide .
set stored in 768 bytes; and very >acb fresb printing UP bere
probably (c) spots before the _ is done witb tbe initial
eyes! Never mind — this month capital illuminated. You
we'll make all your tribulations
worthwhile, so put yourself in a
£S>need to cbeck tbat aour text
>$> is_not too lona of course 1

i
suitably medieval frame of mind,
and let's get down to the serious
business of churning out an CbiS is tbe bottom window
Illuminated masterpiece or for printing new information
two. as tbe adventure proceeds.
What we need, of course, is It occupies rows fourteen to
Listing 1 — this is the assembler twenty inclusive. Mote tbat
program which we'll be using to
print our strings of text. If you
capitals are normal* -tbousb
don't have an assembler, you of course tbesi need not be.
O C ^ O B - ^ O O
can use Listing 2 instead. This
BASIC program will poke in the Screen dump of demo program
code for you and save it to
microdrive — but you can Did It work? (If it didn't, you'll attribute (normally zero).
change line 50 to an ordinary need to go back and check 65230 (INKC) can be POKEd with
SAVE command if you're working carefully through your saved any number 0-7 to set the INK.
with tape. The code is stored copy one byte at a time, 65231 (PAPC) can be POKEd with
from 64800 onwards, and Is 518 comparing it with Listing 2.) By any number 0-7 to set the PAPER.
bytes long. Before you can use It, the way. If perchance the first Then there are two addresses
you need both the bytes for the letter of zS is In lower case you which set left and right margins:-
illuminated capitals, and those won't get a crash — you'll Just 65232 (TAB) contains the width of
for your redesigned "normal" get a Targe square of rubbish the left hand margin.
characters residing in memory printed on screen where the 65233 (TAB2) contains the width
from 62976 onwards, and 64000 illuminated capital should be. ot the right hand margin.
onwards, respectively (i.e. exactly So if, for instance, you POKE
as saved by the Illuminator 65232,2: POKE 65233,1 then your
program last month.) Don't forget text will be printed with a
to lower RAMTOP before loading Text effects maximum line length of 29
in the three sections of code; characters, inset 2 character
CLEAR 62975 is what you want. What else can it do for us? Well, squares from the left, and
[When all the various parts are quite a lot. There are several leaving a one character square
in memory, you'll probably find it addresses which can usefully be margin on the right. This gives
convenient to save a copy of the poked to produce a variety of great power to your illuminating
whole lot together as a single effects, and these are as follows: elbow, because it means you
code block of 2342 bytes from (the labels correspond to those can set up a decorated border
62976 onwards.) in the assembly listing.) of any width on both sides of
To try It out, enter the First, there are three addresses your text, and the text will not
following command:- whose contents govern the overprint it.
CLS: LET z$="Any old bit of text attributes of the illuminated There's one address whose
will do as long as the first letter capitals:- contents control the printing
Is In upper case.": LET m = U $ R 65229 (BRTC) can be POKEd with mode:-
64800. 1 or 0 to change the BRIGHT 65234 (ILLUM) can be POKEd
with either 0 or 1 where 1
corresponds to illuminated
capital printing, and 0 gives
"normal printing, i.e. the
Illuminated initials are switched
off.

Flexibility
Is that all? No, there's more (after
all, I did promise you a utility
that was flexible!) Lurking among
the code is a simple but
effective "window clearing
facility which can be called at
USR 65250. This will clear the
screen between any two
specified lines, and you control
it using these addresses:-
65235 (TOP) contains the number
of the top line to be cleared.
65236 (BOT) contains the number
of the bottom line to be cleared.
So If, for example, you want to
clear a window between lines 1
Figure 1 and 12 inclusive, then POKE

13 ZX Computing Monthly * February 1987


uw
I
rL 1 151IIiIU
L Ictii n1 M
64973
64976
64979
64982
870
880
890
900
LD
LD
LD
RES
HL.(TCRS)
(CHRS),HL
A,< PFLG)
0. A
65176 1840
1850
65179 1860
65180 1870
END
JP

INC
LD
DE
NC.SPACE

A. E
tHISOFT CENS3M2 ASSEMBLES* 64984 910 LD (PFLG),A 65181 1880 LD (STEP),A
ZX SPECTRUM 64987 920 LD A. 19 65184 1890 RET
Copyright (C) HI SOFT 1983.4 64989 930 RST 16 1900 SPACE
All rifchts reserved 64990 940 LD A,(BRTC ) 65185 1910 INC HL
64993 950 RST 16 65186 1920 LD A.(HL)
P&S3 1 errors; 00 64994 960 LD A, 16 65167 1930 CP 32
64996 970 RST 16 65189 1940 JP NZ.DECR
10 »D+ 64997 980 LD A, (INKC) 65192 1950 JP END
20 *C- 65000 990 RST 16 1960 DECR
646O0 30 ORG 64800 65001 1000 LD A, 17 65195 1970 DEC DE
40 IN1T 65003 1010 RST 16 65196 1980 DEC HL
648O0 50 xor A 65004 1020 LD A,(PAPC ) 65197 1990 DEC HL
64801 60 LD (DONE).A 65007 1030 RST 16 65198 2000 JP LOOP
64804 70 LD HL.63744 65008 1040 LD A,(PART) 2010 INSET
64807 80 LD (CHRS).HL 6501 1 1050 RST 16 65201 2020 LD A, (TAB)
64810 90 LD A,(TAB) 65012 1060 LD HL.63744 65204 2030 AGAIN CP 0
64813 100 LD HL.TAB2 65015 1070 LD (CHRS),HL 65206 2040 RET Z
64816 1 10 ADD A.(HL) 65018 1080 LD A,(PART) 2050
64817 120 LD B, A 65021 1090 INC A 65207 2060 DEC A
64818 130 LD A. 29 65022 1 100 LD (PART),A 65208 2070 PUSH AF
64820 140 SUB B 65025 1 1 10 RET 65209 2080 LD A,(PFLG)
64821 150 LD (LINE),A 1 120SCAN 65212 2090 SET 0. A
64824 160 LD A. 1 65026 1 130 LD A,(DONE) 65214 2100 LD (PFLG).A
64826 170 LD (ONE).A 65029 1 140 CP 1 65217 2110 LD A, 255
64829 180 LD A.2 65031 1 150 RET Z 65219 2120 LD (HSKT),A
64831 190 CALL it 1601 65032 1 160 LD A,(ONE) 65222 2130 LD A, 32
64834 200 LD HL,(VARS) 65035 1 170 CP 0 65224 2140 RST 16
210 NEXT 65037 1 180 CALL Z, INSET 65225 2150 POP AF
64837 220 LD A.(HL) 65040 1 190 CALL CHECK 65226 2160 JP AGAIN
64838 230 CP 90 65043 1200 CP 1 23627 2170 VARS EQU • 5C4B
64840 240 JP Z.FND1 65045 1210 JP Z,PRINT 23606 2180 CHRS EOU 23606
64843 250 CALL SEARCH 65048 1220 CALL CHOP 6584 2190 SEARCH EQU H19B8
64846 260 EX DE.HL 65051 1230 CALL PRINT 23697 2200 PFLG EOU 23697
64847 270 JP NEXT 65054 1240 LD HL.(STRT) 23696 2210 KSKT EQU 23696
280 FND1 65057 1250 LD DE.(STEP) 3405 2220 TEHPS EQU M0D4D
64850 290 LD A,(ILLUH) 65061 1260 LD D, 0 65229 2230 BRTC DEFB 0
64853 300 CP 0 65063 1270 ADD HL, DE 65230 2240 INKC DEFB 0
64855 310 JP Z.FND2 65064 1280 LD (STRT).HL 65231 2250 PAPC DEFB 7
64858 320 INC HL 65067 1290 LD A.(STEP) 65232 2260 TAB DEFB 0
64859 330 LD A,(HL) 65070 1300 LD B, A 65233 2270 TAB2 DEFB 0
64860 340 DEC A 65071 1310 LD A,(LEN) 65234 2280 ILLUH DEFB 1
64861 350 LD (LEN),A 65074 1320 SUB B 65235 2290 TOP DEFB 0
64864 360 INC HL 65075 1330 LD (LEN),A 65236 2300 BOT DEFB 21
64865 370 INC HL 1340 REPT 65237 2310 LEN DEFB 0
64866 380 LD A.(HL) 65078 1350 LD HL.(STRTI 65238 2320 STEP DEFB 0
64867 390 LD (CAP),A 65081 1360 LD A,(HL) 65239 2330 STRT DEFW 0
64870 400 INC HL 65082 1370 CP 32 65241 2340 CAP DEFB e
64871 410 LD (STRT).HL 65084 1380 JP NZ.MORE? 65242 2350 TCRS DEFU 62720
64874 420 LD A,(CAP) 65067 1390 INC HL 65244 2360 PART DEFB 0
64877 430 SUB 65 65086 1400 LD (STRT),HL 65245 2370 LINE DEFW 0
64879 440 CP 23 65091 1410 LD A.(LEN) 65247 2360 ONE DEFB 0
64881 450 CALL NC,SWAP 65094 1420 DEC A 65246 2390 DONE DEFB 0
64884 460 ADD A, A 65095 1430 LD (LEN),A 65249 2400 NUK DEFB 0
64885 470 ADD A. A 65098 1440 JP REPT 24 10 CLEAR
64886 480 ADD A, 32 1450 MORE 0 65250 2420 LD A.(BOT)
64888 490 LD (PART),A 65101 1460 LD A.(ONE) 65253 2430 INC A
64891 500 CALL INSET 65104 1470 CP 1 65254 2440 LD (BOT).A
64894 510 CALL PCAP 65106 1480 RET Z 65257 2450 LD A.2
64897 520 CALL PCAP 65107 1490 JP SCAN 65259 2460 CALL It 1601
64900 530 CALL SCAN 1500 CHECK 65262 2470 CALL TEHPS

o
64903 540 CALL INSET 651 10 1510 LD A,(LINE) 65265 2460 LD A.32
64906 550 CALL PCAP 65113 1520 ADD A.2 65267 2490 LD HL,TAB
64909 560 CALL PCAP 65115 1530 LD B. A 6S270 2500 SUB (HL)
64912 570 LD A,(DONE) 65271 2510 LD HL.TAB2
: Z 64915 580 CP 1
65116 1540
65119 1550
LD
CP
A,(LEN)
B 65274 2520 SUB (HL)
64917 590 CALL Z.NEULN 65120 1560 JP C,SHORT 65275 2530 LD (NUK),A
2 64920 600
610 NORM
CALL SCAN 65123 1570 XOR A 65276 2540
2550 LOO PC
LD A,(TOP)
65124 1580 RET
< 64923
64924
620
630
XOK
LD
A
(ONE).A
1590 SHORT 65281 2560
65282 2570
PUSH
LD
AF
A, 22
65125 1600 LD A,(LEN)
64927 640 LD A.(LINE) 65128 1610 LD (STEP),A 65284 2580 RST 16
64930 650 ADD A,2 65131 1620 LD A, 1 65285 2590 POP AF

0
64932 660 LD (LINE),A 65133 1630 LD (DONE),A 65286 2600 PUSH AF
64935 670 CALL SCAN 65136 1640 RET 65287 2610 RST 16
64938 680 LD HL.62720 1650 PRINT 65268 2620 LD A,(TAB)
o 64941
64944
690
700
LD
RET
(TCRS).HL 65137 1660
65140 1670
CALL
LD
TEHPS
A,(PFLG)
65291 2630
65292 2640
RST
LD
16
A,(NUN)
710 FND2 65143 1680 RES 0, A 65295 2650 LD B, A
64945 720 INC HL 65145 1690 LD (PFLG),A 65296 2660 COHT LD A. 32
64946 730 LD A,(HL) 65148 1700 LD DE.(STRT) 65298 2670 RST 16
64947 740 LD (LEN),A 65152 1710 LD BC,(STEP) 65299 2660 DJNZ CONT
64950 750 INC HL 65156 1720 LD B, 0 65301 2690 POP AF
64951 760 INC HL 65158 1730 CALL • 203C 65302 2700 INC A
64952 770 LD (STRT).HL 65161 1740 NEULN LD A, 13 65303 2710 LD HL,BOT
64955 780 LD HL.63744 65306 2720 CP (HL)

5
65163 1750 RST 16
64958 790 LD (CHRS),HL 65164 1760 RET 65307 2730 JP C,LOOPC
64961 600 JP NORM 1770 CHOP 65310 2740 LD A.(BOT)
810 SWAP 65165 1780 LD HL.(STRT) 65313 2750 DEC A
64964 820 SUB 24 65166 1790 LD DE,(LINE) 65314 2760 LD (BOT).A
Ui 64966 830 LD HL.63488 65172 1800 ADD HL, DE 65317 2770 RET
a 64969
64972
840
850
LD
RET
(TCRS),HL 1810 LOOP Pass !2 errors: 00
w 860 PCAP
65173 1820
65174 1830
LD
CP
A,(HL)
31 Table used : 546 froa 600

14 ZX Computing Monthly * February 1987


65235,1: POKE 65236,12: LET
m=USR 65250 will do It. Note
that the routine takes into
account your left and right hand
margins (set by TAB and TAB2)
and consequently clears only 1® DATA 175,50,224,254,33,0,249,34,54,92
the space within them. 20 DATA 58,208,254,33,209,254,134,71,62,29
Just one more point, 30 DATA 144,50,221,254,62,1,50,223,254,62
concerning colours. The INK and 40 DATA 2,205,1,22,42,75,92,126,254,90
PAPER for both the main text 50 DATA 202,82,253,205,184,25,235,195,69,253
printing and screen clearing are 60 DATA 58.210,254,254,0,202,177,253,35,126
established by whatever 70 DATA 61,50,213,254,35,35,126,50,217,254
permanent INK and PAPER you 80 DATA 35,34,215,254,58,217,254,214,65,254
set from BASIC No other action 90 DATA 23,212,196,253,135,135,198,32,50,220
on your part is needed. 100 DATA 254,205,177,254,205,205,253,205,205,253
You're now in a position to 110 DATA 205,2,254,205,177,254,205,205,253,205
print more or less what you like, 120 DATA 205,253,58,224,254,254,1,204,137,254
where you like, however you like
— and then rub it all out again. 130 DATA 205,2,254,175,50,223,254,58,221,254
The only limitation on what you 140 DATA 198,2,50,221,254,205,2,254,33,0
print is that LEN zS must be less 150 DATA 245,34,218,254,201,35,126,50,213,254
than 255 — though of course 160 DATA 35,35,34,215,254,33,0,249,34,54
there's nothing to prevent you 170 DATA 92,195,155,253,214,24,33,0,248,34
from printing longer chunks of 180 DATA 218,254,201,42,218,254,34,54,92,58
text provided you do It in bits, 190 DATA 145,92,203, 135,50, 145,92,62, 19,215
calling the routine to print each 200 DATA 58,205,254,215,62,16,215,58,206,254
chunk separately. 210 DATA 215,62,17,215,58,207,254,215,58,220
So much for the bread and 220 DATA 254,215,33,0,249,34,54,92,58,220
butter; now for the jam. The point 230 DATA 254,60,50,220,254,201,58,224,254.254
of this exercise, you'll recall, is to 240 DATA 1,200,58,223,254,254,0,204,177,254
try to produce an effect similar 2 5 0 DATA 205,86,254,254,1,202,113,254,205,141
1o Illuminated manuscript which
could be used to improve the 260 DATA 254,205,113,254,42,215,254,237,91,214
presentation of a text adventure. 270 DATA 254,22,0,25,34,215,254,58,214,254
It's fairly obvious, I think, that the 280 DATA 71,58,213,254,144,50,213,254,42,215
effectiveness of the idea will 290 DATA 254,126,254,32,194,77,254,35,34,215
largely depend on the 300 DATA 254,58,213,254,61,50,213,254,195,54
decoration you put around the 310 DATA 254,58,223,254,254,1,200,195,2,254
text, in addition to the text and 320 DATA 58,221,254,198,2,71,58,213,254,184
initials themselves. There are 330 DATA 218,101,254,175,201,58,213,254,50,214
many possible approaches to 340 DATA 254,62,1,50,224,254,201,205,77,13
this, and the illustrations 350 DATA 58,145,92,203,135,50,145,92,237,91
scattered around this and last 360 DATA 215,254,237,75,214,254,6,0,205,60
month's article may give you a
few ideas to get you started. 370 DATA 32,62,13,215,201,42,215,254,237,91
380 DATA 221,254,25,126,254,31,210,161,254,19
390 DATA 123,50,214,254,201,35,126,254,32,194
400 DATA 171,254,195,155,254,27,43,43,195,149
Decoration 410 DATA 254,58,208,254,254,0,200,61,245,58
One possibility which seems 420 DATA 145,92,203,199,50,145,92,62,255,50
promising Is simply to make the 430 DATA 144,92,62,32,215,241,195,180,254,0
TV screen look like an old piece 440 DATA 0,7,0,0,1,0,21,0,0,0
of parchment. Half an hour's 450 DATA 0,0,0,245,0,0,0.0,0,0
work with Melbourne Draw (or 460 DATA 58,212,254,60,50,212,254,62,2,205
similar utility) will provide a 470 DATA 1,22,205,77,13,62,32,33,208,254
suitably "ragged" edge to the 480 DATA 150,33,209,254,150,50,225,254,58,211
screen — and you can then 490 DATA 254,245,62,22,215,241,245,215,58,208
load this in as a SCREENS and 500 DATA 254,215,58,225,254,71,62,32,215,16
print your text onto it (POKEing 510 DATA 251,241,60,33,212,254,190,218,1,255
appropriate values for left and
520 DATA 58,212,254,61,50,212,254,201,0,0
right margins before you start.)
The BASIC "CLS" command must 600>CLEAR 64799:LET 3=0:RESTORE
be avoided of course, as it 610 FOR 1=64800 TO 65317
would wipe out all your 620 READ x: POKE i,x: LET s=s+x
decoration, but that's no 630 NEXT i
problem since you can do all
your screen clearing selectively 640 IF s<>74487 THEN PRINT AT 10. 10;"ERROR! !": STOP
using the USR 65250 call. 650 SAVE * " > M ; " 1 1 lua'CODE 64800,518
Another approach, either
instead of or In addition to the makes an attractive way of variations ot it — Is very
above, is to make use of the fact dividing blocks of text. commonly used in Anglo-Saxon
that many items in the full If you're a stickler for illumination.) All you need to do
character set are not likely to be authenticity, and want to try to is design 4 characters to the
needed, and to redefine these mimic some of the features shapes enclosed in boxes In
as suitably decorative shapes for found on actual Anglo Saxon Figure 1 - I chose CHRS 94/95
use either alone or In manuscripts, you might like to try and 126/127 for this. Then just
combination. If you look back at the poor man's version of the PRINT CHRS 94; CHRS 95 all the
Figure 1 in last month's article, "knotted tracery" type of way down the left hand side of
for example, you'll see that I decoration which I used in one the screen, and CHRS 126; CHRS
redesigned CHRS 91-93. and of the Illustrations here, and 127 down the right hand side —
CHR$ 123-125 to produce a which is shown in enlarged but don't forget to set both
"scroll" effect when they're detail in Figure 1. (This margins 2 character squares
printed in sequence, which interweaving line motif — or wide. (I found it desirable to

15 ZX Computing Monthly * February 1987


rim
Listing 3 small number of BASIC
subroutines to define your
windows, set the print position
7 REM etc — and I've offered some
8 REM *** CLEAR TOP WINDOW *** help here in the shape of Listing
9 REM 3. If you type fhls In and save It
10 POKE 65235,1: POKE 65236,12: LET M=USR 65250: PRINT AT 1,0; to auto-run from line 8000, it will
11 RETURN give you a simple demonstration
17 REM of the effects that can be
18 REM *** CLEAR BOTTOM WINDOW *** achieved.
19 REM The four relevant subroutines
20 POKE 65235,14: POKE 65236,20: LET H=USR 65250: PRINT AT 14, in Listing 3 are as follows:
0; GOSUB 10: This sets top and
21 RETURN bottom limits of the upper
47 REM window (screen lines 1-12
48 REM *** PRINT Z» WITH ILLUMINATED INITIAL *** inclusive), clears It, and resets
49 REM the PRINT position to the start of
50 LET inkc=2+1 NT (4*RND): POKE 65234,1: POKE 65230,inkc: POKE line 1.
65231,papc GOSUB 20: This sets top and
51 LET n=USR 64800 bottom limits of the lower
52 RETURN window (screen lines 14-20
57 REM inclusive), clears it, and resets
58 REM *** PRINT Z* WITH NORMAL INITIAL *** the PRINT position to the start of
59 REH line 14.
60 POKE 65234,0: INK 5: LET H=USR 64800: INK 6 GOSUB 50: This chooses a
61 RETURN random INK colour for the
7997 REM illuminated capitals, selects
7998 REH *** LOAD H/C AND LETTER SHAPES %%% "Illuminated Initial" mode, and
7999 REM prints the text held in zS at the
8000 CLEAR 59999: LOAD * " n " ; 1 1 1 1 urn"CODE : LOAD *"a";1; "chars :a current PRINT position.
-CODE : LOAD *'»";1;"capitals:a"CODE GOSUB 60: This selects "normal"
8007 REH printing of zS and shows how the
8008 REH *** PERHANENT INK/PAPER *** colour of the text can be
8009 REH changed by altering the
8010 PAPER 0: INK 6: BORDER 0: CLS permanent INK colour. Again,
8018 REM *** LEFT/RIGHT BORDERS 2 CHR SQUARES WIDE #** printing Is done from the current
8020 POKE 65232,2: POKE 65233,2 PRINT position.
8027 REH By arranging things in this
8028 REM *#* INK/PAPER FOR INITIALS *** way it becomes possible to do
8029 REM anything you like within the two
8030 LET inkc=2: LET papc=0 windows. If you use GOSUB 50 or
8037 REM GOSUB 60 alone, printing will
8038 REH *** PERHANENT SCREEN DECORATION **# begin on the line following the
8039 REM last line printed, so that several
8040 LET x*=CHR» 16+CHR* 4+CHRS 64+CHR* 16+CHRS 3+CHR» 91+CHR* 9 successive strings of text can be
2+CHR* 93+CHR* 123+CHR* 124+CHR» 125+CHRS 16+CHR* 4+CHR* 64 printed within the same window.
8050 POKE 23606,0: POKE 23607,249: FOR 1=0 TO 21: PRINT INK 5;C Alternatively, by preceeding the
HR» 94;CHRS 95;AT l,30;CHR* 126;CHR* 127: NEXT H PRINT AT 0,12; text printing with a GOSUB 10 or
x*;AT 0,3;x*;AT 0,2l;x»;AT 13,3;x»;AT 13,12;x*;AT 13,21;x*;AT 21 GOSUB 20, you can clear out a
,3;x*;AT 21,12;x*;AT 21,21 ;x* window and reset the PRINT
8057 REH position within It.
8058 REH **# DEHONSTRATI ON *** Lines 8040/50, by the way. set
8059 REH up the screen decoration and
8060 LET z»="This is the top window, for location descriptions. will only produce a sensible
It occupies the screen from row one to row twelve inclusive. The display if you've defined your
decorated border is two character squares wide on each side." character set to include the
8070 GO SUB 10: GO SUB 50: GO SUB 9000 'Scroll" and "knotted tracery''
8080 LET z*="Each fresh printing up here is done with the initia motifs (see Figure 1 In last
1 capital illuminated. You need to check that your text is not t month's article). If you haven't,
oo long of course ! just replace those CHR$ numbers
8090 GO SUB 50: GO SUB 9000 above 90 by CHR$ 42 (asterisk).
8100 LET z»="This is the bottom window for printing new infornat The result won't look very pretty,
ion as the adventure proceeds." but will still enable you to run
8110 GO SUB 20: GO SUB 60: GO SUB 9000 the demonstration.
8120 LET z • ="It occupies rows fourteen to twenty inclusive. Note Once you've seen what the
that capitals are normal, though of course they need not be." demonstration does — following
8130 GO SUB 60: GO SUB 9000 the listing so that you see why it
8140 GO SUB 10: GO SUB 9000 does It — you're all set. If you're
8150 GO SUB 20: GO SUB 9000 thinking of writing an adventure,
8160 GO TO 8060 rather than just using it as a
9000 PRINT »1;AT 1,10; FLASH 1 •PRESS A KEY': PAUSE 0: PRINT tt1; general display facility, then you
AT 1,0,,: RETURN might like to be reminded that
the machine code and data are
have a decent blank gap — adventure, then you'll need to positioned in memory so that
half a character square — operate with several "windows" you can, if you wish, use the
between the border decoration — one for location descriptions, Venturespeak command
and the text, or things begin to one for program responses, and analyser (see the October-
look rather cluttered.) another (perhaps the bottom two December issues of ZXC).
lines) for displaying the player's Otherwise It's over to you. and all
Windows Input. The most convenient that remains Is for me to say that
If you're going to use this as a approach is to Incorporate the I hope you find the
display method for a text machine code calls within a experience illuminating?

16 ZX Computing Monthly * February 1987


BULLDOZING AT THE
SPEED
There are thirty copies
of CRL's new
destruction derby in
space to be won

^ e a t h or Glory from CRL is not


so much a shoot 'em up as a
smash 'em up. You take the
controls of a space 'dozer which
keeps the interstellar highways
clear of meteorites and cosmic
debris. But when an invading
alien fleet threatens your home
planet you are called upon to
do battle. As your space "dozer is
unarmed your only option is to
ram your enemies into
submission.

Cosmic quiz
All you have to do to get your
hands on a copy ot Death or
Glory is answer three simple out-
of-this-world questions.

1) When did man first set foot


on the moon?
a) 1971
b) 1973
c) 1969
2) Mercury is the nearest planet
to the sun, Venus is the
second nearest. Which is the
third nearest?
a) Mars
b) Earth
c) Saturn

3) What is the speed of light?


a) 186,000 miles per second
b) 1,000,000 miles an hour
Death or Glory Competition
1
c) 750.000 miles a minute The answers to the cosmic questions are,

How to Enter 1)

Write your answers on the 2)


coupon provided and send your
entry to Death or Glory 3)
Competition. ZX Computing
Monthly, No 1 Golden Square, Name:
London W1R 3AH
The competition is open to all Address:
readers of ZX except employees
ot Argus Specialist Publications,
Chase Web and CRL. The
editor's decision is final and no Q.
correspondence can be entered
into. Please remember to write Send your entry to Death or Glory Competition. ZX Computing, No 1

L J
your answers on the back of O
your entry envelope. The closing Golden Square, London W1R 3Aa
date is Friday March 6th. O
related computer show ever was
held in Cincinnati. Ohio It
originally started out as a

iABHBSj
proposed gathering of Sinclair
owners in the midwest — but
soon grew to proportions never
envisioned by its organizers.
Dealers from all parts of this
country and Canada rented
space and the original display
area had to be doubled. What
originally was supposed to be a
local get-together attracted
visitors from every section of both
countries as well. For two days In

iPONDI
May you would have thought
that Sinclair computers were as
popular here as they were in the
United Kingdom.
If there was any doubt that
even the ZX-81/TS 1000/TS
computers were still in use by
the faithful, they were puf to rest
during the exhibition. We knew
that the T/S 2068 was still in use,
but the interest in the ZX-81
computers surprised us all.
Once again, however, the QL
Mark Fendrick looks For a while, it looked as If found itself at the forefront of
some life was going to be Interest. Just a few weeks prior to
back at '86 breathed Into the American the show two announcements
Sinclair marketplace. As dealers changed the direction of the
here have we been and started to sell the QL. we saw marketplace as we knew it; the
where are we going as far as Sinclair once again personally sale of Sinclair's computer
the Sinclair community in involved in North America business to Amstrad and the
America is concerned? As we distributing an actively purchase of the entire Sinclair
start a new year, It appears as if produced computer. We had North American stock by A+
1987 will be a very trying time. hoped that this was what we Computer Response, Although
last year started out with had been waiting for and that no word had been officially
hope on the horizon as the Sinclair would now take Its place given by Amstrad. It was (and
newest member of the Sinclair amongst the recognised still is) generally believed that
product line was becoming computers in the United States. they will not Introduce current or
readily available. Although the We had high hopes for the QL future Sinclair computers into the
QL had been around for a which had originally been North American marketplace.
number of months, it previously priced at $499.00 but was now Amstrad itself will not even
had only been handled by selling for $299.00. A matching answer questions about Its future
Sinclair USA and American printer and RGB monitor were in America.
Express, and unless you had an also available (bearing the But in the afterglow of this
American Express card, Sinclair [Sinclair QL logo) and a Incredibly uplifting weekend,
was the only supplier. By package containing all three — good things were once again
January however, the ^ as well as the Psion suite of predicted for the Sinclair
established Sinclair dealers programs — cost only marketplace in North America.
were . n o w being permitted $795 00. Quite a bargain A+ Computer Response was
for a lot of computer. going to set up a network of
authorized dealers and actually
advertise the QL. For a while It
looked as if we were finally
going to come Into our own. At
one point there were seventeen

CO
5

CO

18 ZX Computing Monthly * February 1987


authorized dealers and print Talker, and some of the more the front of the computer. One of
advertising started to appear. unsual ones are quite inventive. I the features of this unit which
But, after a few months the have seen one routine for makes it popular is the lithium
advertising started to disappear ARCHIVE which makes use of the battery onboard. By continually
and displeasure has started to Talker for Interactive session! supplying power to the RAM
be heard from the authorized During a particularly long chips, this board offers non-
dealers A+ has started to offer search, one company has volatile memory. Programs
merchandise direct to the public programmed ARCHIVE to and/or data are immediately
in conflict with the original verbally call and inform when available upon power-up
understandings with the the search has been completed, without the need to load from
authorized dealers, as well as eliminating the need for the any outside source.
introducing QL kits for well under businessman to sit and stare at
the price of a completely a blank screen while the search CP/M
assembled QL (The kits do not is being completed.
come with either the Psion suite Although a bit strange Speaking of mass storage
or a user's manual). Although sounding, by copying the QUILL devices, as reported a few fe
the authorized dealers carry the file to SER2 (with the QL Talker months ago,
•a< CP/M* compatibility
kits as well, the price of a full QL connected) I have heard this was Introduced for the T/S 2068
— assembled and with the column being read to me. Any during the year. Combining their
software and users' manual — is file can be read in this manner, long standing design in floppy
now as low as $209.00. although it should be text only disk interfaces for both the T/S
New products are starting to to avoid control codes and the 1000 and T/S 2068, AERCO has
appear for the QL, a few of like. opened up the world of popular
which have been developed Software and hardware for the CP/M software for the T/S 2068
here in the States, but the T/S 2068 (the American version of user. Once the most utilized
majority of which must still be the ZX Spectrum) is still being operating system, there Is a
imported from the UK. The first produced as well, and 1986 saw great deal of CP/M software
Americon piece of QL hardware its share in this area as well. A available — both professional
has made its appearance in the look at some hardware comes (such as Wordstar) and public
shape of the QL Talker. first. When the ZX-81 was domain. Any CP/M program in
introduced, one of the main Morrow format will now be able
QL Talker criticisms was its small amount of to run on the T/S 2068.
memory. The onboard 1K which Developments for the T/S 1000
The Ql Talker, as the name came with the ZX-81 was have not completely
implies, Is a speech synthesizer. increased to 2K when Timex disappeared either, and in 1986
Unlike some earlier devices for Introduced the American version a handful of products still made
the ZX-81 and T/S 2068 — the T/S 1000. This was later their way to market for these
computers, this one requires just increased to 16K onboard In computers. Graphics,
the device itself — no additional 1983 when the T/S 1500 was telecommunications and
hardware (such as an amplifier introduced. When personal extended BASIC were the top
and speaker) or software. They computers first appeared on the attention getters In 1986. Even
are all built into the device in scene. 16K RAM was considered the T/S 1500 — which never had
the form in which it Is massive. Even the 1K and 2K a chance to make its mark in
purchased. All you have to do to which the earlier computers the general scheme of things —
set up the Talker is connect it to carried was an achievement. had software developed
the serial port, open a channel Consider the fact that even an specifically for it. This takes the
to that port and print to it. It's unexpanded ZX-81 is more form of a high resolution
that simple. Once that is done, powerful than EMIAC — the first dungeon game by the name of
the QL Talker then reads the computer which caused city Dungeon of Ymlr. It contains 24K
string(s) sent to it, goes to its lights to dim each time It was of machine code which creates
built-in dictionary for the proper used! But even if you used a nine levels, sixteen types of
sounds and produces the right ZX-81 you were still able to monsters, fourteen objects and
words (nearly all of the time). expand your computer. The most six spells. Thanks to built-in
Although there are occasions popular expansions in those routines you can save games in
when you will have to spell days came from Memotech, and progress and load them back In
some words phonetically, the QL for about $200.00 you could seventy seconds. Various versions
Talker produces the proper expand your $99.00 computer to are available depending on
sounds more often than any a full 64K. And if that were not what hardware setup you have.
synthesizer software that I have enough for you, a system was There continued to be a large
previously encountered. available with which you could demand for Spectrum software
There are many uses for the further expand your ZX-81 to one due to the continued popularity
megabyte! Of course this would of various Spectrum Emulators.
cost over $1,000.00 and you However, while ZX-81 software
could buy a true business runs fine on T/S 1000's and T/S
computer for that price. But 1500's, and Spectrum software is
when the T/S 2068 was finally compatible with Spectrum
released, it came with 72k built emulated T/S 2068's, the QL -
in, an claimed the ability to be with Its JSU ROM - still has to
expanded to one megabyte rely on modifications to British
without a lot of expensive software before 100%
hardware. In fact, all you would compatibility is achieved.
need would be the actual
memory chips properly Where will 1987 take us? It's
conflgurd as the bank switching hard to say. After all. many
capability was already resident observers (myself included) have
in the computer. But no T/S 2068 prematurely written the Sinclair
memory expansion was computers' obituary in the past.
planned, and until 1986 none While things are not as bright as
were developed. they were in January, 1986, the
North American Sinclair faithful
This T/S 2068 compatible have the tendency to confound
memory expansion takes the the pundits. Hopefully 1987 will
form of a command cartridge not prove the exception to what
and as such fits into the port on has happened In the past.

19 ZX Computing Monthly * February 1987


The Friendly
Programmer Weak links
Usually, the friendliness of a
program isn't determined by
ingenious programming. Rather,
it depends on the programmer
painstakingly searching for
did manage It in the end, and possible weak points and
When someone else's he settled down to read. After anticipating potential errors in
hed read a couple of chapters, such a way that they're
program crashes on his fingers accidentally turned rendered harmless to the
two pages over instead of one. program — and by implication,
you it's "bad Now the designer of the book harmless to the user. From our
hadn't anticipated that anyone present point of view, the danger
programming" but could do such a silly thing — so points will occur at places in a
the page-opening mechanism program where some kind of
when your own jammed, and the book snapped input is needed from the user
shut. "Oh well, my fault" said Sid, and It's predominantly this area
program crashes who philosophically. (It took him that we'll be looking at In this
another 14 minutes to get it article.
can you blame? User open again.) This time he took On the whole, the friendliest
great care not to turn two pages way of getting input from the
friendliness begins at at a time, but after a while he user is probably to present him
just couldn't resist trying to sneak with a menu of options, and ask
home as Alan Davis a look at the last page to see if him for a single prod at the
it really was the butler who did it keyboard to make his selection.
explains... — and at that point all the This automatically puts a limit
pages fell out to the silly things he might try to
Now I know that this is an odd do, and has the great
et's begin with a tall story, but way to begin an article on advantage of being easy to
one with a moral. It's called "The Spectrum programming. But understand, tt also means that
Shape of Things to Come?" . . . substitute "software" for "book", our task of error-trapping is
Sid had just bought a book, and I think you'll see what I'm made very straightforward.
and on arriving home he curled getting at. We've all bought (and Listing 1 is the sort of routine
up in his favourite armchair to perhaps — heaven forbid! — one might use here. It presents a
enjoy it. Unfortunately It was one even written) programs which choice of three actions (pointless
of those new-fangled books fitted were poorly error-trapped, ones, here — but this is only an
with a complicated anti-piracy crashing without warning as the example) determined by
device to defeat photo-copiers, result of an injudicious key-press; pressing key 1, 2, or 3 — and is
and so It took him a quarter ot we're all distressingly familiar about as simple to operate as
an hour to get It open. Still, he with those barbaric "protection" any program could be. In fact,
methods which hang up the short of pressing BREAK, the user
l machine when you press BREAK; simply can't crash the program
Listing 1 and of course the monstrous
LENSLOK has found no difficulty
at all in achieving a place in
— because line 40 rejects every
keypress except the three
allowable ones.
1 REM ***SIMPLE MENU ROUTINE the top ten list of contributors to Wherever it's appropriate a
2 REM
0 the misery of mankind. menu-driven utility program gets
z 3 REM
10 CLS : PRINT AT 8, 11; "OPTION
Only one person suffers from
all this; the user of the program.
my vote every time. But
programming (like life, alas)
S";AT 10,5;" I : Do somethxng"*TAB In principle, there's no reason often presents us with
s 5;"2: Do something else"* TAB 5; why he shouldn't find using a circumstances which can't be
< "3: Do something different"
20 PRINT #1;AT 0,8; INVERSE 1
computer program almost as
straightforward as reading a
tackled in quite the way we
might like. Sometimes a single
"PLEASE SELECT. . . " book, but the fact is that many key-press menu just won't do,
ot 30 PAUSE 0: LET i»=INKEYS
40 IF i$<"l" OR i$>'3" THEN
programs give him a rough ride.
So I thought It might be a good
and this is generally the point at
which our program's
o 0 TO 30 idea if we tried to find a few "friendliness" can start to

o 50 BEEP .1,30 ways of making life easier for acquire rough edges. I can't
60 GO SUB 100*VAL it him when writing our own cover all eventualities, of course
programs. The keyword, then, is — it'd take a lifetime! Bui we can
a 70 GO TO 10
100 CLS : PRINT AT 10, 4;" I * ve d "friendly"! and friendliness is
a
Listing 2
one something" always worth striving for. no
110 GO TO 310 matter what kind of program
5 20® CLS : PRINT AT 10, 2 ; * I ' ve d you're writing. It doesn't even
matter If the program is a utility t REM ** *SIMPLE INPUT ROUTINE
one something else" 2 REM
being written only for your own
210 GO TO 310 use — because we all make 3 REM
300 CLS : PRINT AT 10,2;"I've d mistakes; and the last thing you 19 INPUT "How a&ny uould you 1
one something different" ike?"*x
want is a poorly crash-proofed
O 310 GO SUB 500 utility which leaves you in a
20 IF X>50 THEN PRINT "Sorry,
that's too «any."• CO TO 10
i n 320 PAUSE 0: RETURN mess after maybe hours of work,
a.
30 PRINT "OK. You have ";x;" o
500 PRINT fl 1 ;AT 0,8; INVERSE just because you pressed the bject " ; "s" AND x< >1
w
"PRESS A KEY...": RETURN wrong key by accident. 40 GO TO 10

20 ZX Computing Monthly * February 1987


hand, if all is well, line 540 This works by reading the system

Listing 3 assigns the correct value to x,


and Bob's your uncle.
This isn't a bad solution to our
variable LAST-K, which stores fhe
code of the last newly pressed
key. If this is non-zero, indicating
1 REH *«*ERROR-TRAPPEI> INPUT
2 REH problem, in fact — and you may a keypress, then the error-
3 REH well consider It good enough. trapping checks are called one
1® INPUT "Hou aany uould you 1 But it's by no means perfect, after another so that only a valid
tke?" LINE z$: GO SUB 500 because the INPUT command keypress is accepted. The
2® IF fail THEN PRINT "Nunber routine also looks after the
s only, pleaso.*: GO TO 10 still has a couple of nasty tricks
30 IF x>50 THEN PRINT "Sorry, up Its sleeve. Try pressing CAPS printing of digits to the screen,
that's too aany.": GO TO 10 SHIFT/6, for example. and the deleting process. The
40 PRINT "OK. you have ":xi" o Alternatively, type In lots of actual input is stored In a series
bject";"s" AND x<>1
numbers — say a couple of rows. of up to 5 bytes starting at
50 GO TO 10 address STORE.
500 LET fat 1=0: IF z»="" THEN Oops! So unless you have a
LET fai1=1: RETURN quaint fondness for the "STOP in A simple machine code
510 FOR i=l TO LEN z9 INPUT" and "Number too big" program like this will need a
520 IF z»ll)<"0" OR zS(il>"9" T error reports, it looks as though short BASIC subroutine to drive It
HEN LET fall=l» RETURN we'll have to continue our — such as the one I've given in
530 NEXT i Listing 6. If you want to try this
540 LET x=VAL z* search for the ultimate in
550 RETURN friendly input routines. out for yourself you'll need the
Obviously, to improve matters machine code residing in
learn a good deal by taking further, we'll have to abandon memory at 65000 — don't forget
one specific example and the INPUT command altogether, to CLEAR 64999 beforehand. This
delving into it thoroughly — and simulate a similar new BASIC/machine code
because it's really the thinking command of our own which combination will behave in
process underlying this which is allows the program to intercept every way like Listing 4, except
important, rather tnan the every character as It's typed. This that all trace of keyboard
example itself. could be tackled in several sluggishness has disappeared,
The example I've chosen is ways, and Listing 4 is one of together with the added bonus
one which commonly arises In them. The main bulk of the error- that even BREAK is disabled
programs of many types, trapping is done in line 20; during the period where an
namely, where the program because we're reading the input is being requested. There Is
requires a number (which may keyboard using INKEYS, we can absolutely nothing at all that the
be several digits long) to be examine each keypress as it user can do which will cause a
entered by the user, we'll restrict comes, and ignore It if it isn't crash. Error-trapping is complete,
the discussion to integers, here either a number (CHRS 48 — and the only improvement in the
— and let's also add the CHRS 57), ENTER (CHRS 13), or way of friendliness would be to
arbitrary condition that for some DELETE (CHRS 12). This still leaves include more detailed prompt
reason peculiar to the situation quite a lot to be done, though. messages on screen.
the number mustn't exceed 50. The variable " I " keeps count of As I said earlier, it's the
This Is just the kind of thing the number of valid characters general process Involved which
which could arise in a typical typed, so that line 30 can is Important, rather than the
programming situation. prevent the user attempting to details; and I hope that the
On the face of it, Listing 2 ENTER or DELETE a non-existent method of progressively isolating
would appear to be a number. Line 70 solves the the problems and then solving
straightforward answer to the problem of the "Number too them is clear from the examples
problem. It uses the simple big" error by limiting the I've used here. The extent to
BASIC "INPUT" command to number of digits that can be which you go will largely
assign a value to "x", checks to typed to 5. Line 80 builds up the depend on how likely it is that
see whether the value entered Is string z$ one character at a
permissible (x mustn't exceed 50,
remember), and prints an
appropriate comment. It works,
time, and when ENTER is pressed,
line 90 extracts the value of x (i.e
VAL z$) that we need. (Line 500,
Listing 4
of course; but as a piece of by the way, is the DELETE 1 REH #**CUST0M INPUT ROUTINE
"friendly programming" It's a subroutine.) 2 REH
dead loss because there are so 3 REH
many possible ways of crashing
It. Just for starters, try entering a
Although there are alternative
lines of approach, this seems to
be about as far as you could go
10
1;AT
LET z*=" ': LET i=0: PRINT tt
0,0;"Hou many uould you lik 0
letter, or several letters, or even in BASIC. It's as crash-proof as the e?" Z
i
(since there's nothing to stop you) menu routine in Listing 1, in that 20 PRINT #1;AT 1,i PAUSE
something like VAL z$! only BREAK will defeat it. If you 0: LET i*=INKEY*: LET k=C0DE i»:
Gruesome Isn't it?
s<
type it in and try it. though, you IF (k<48 OR k>57) AND k<>13 AND
may notice a marginal k < > 12 THEN GO TO 20
Improving input sluggishness in fhe keyboard 30 IF NOT i AND (k = 13 OR fc=12>
response. It's only very slight, but
What can we do to improve should you wish to add extra
THEN GO TO 20
40 BEEP .05,30 oc
matters? Well, a solution which checks between each keypress
(for some other specific
50 IF k=12 THEN GO SUB 500: G O
O
sorts out the major difficulties Is 0 TO 20
given In Listing 3. We're still application) it could become 60 IF k= 13 THEN PRINT HI;AT 0
using the INPUT command — but irritating. The problem arises of ,0, , • * GO TO 80
*
now we're picking up the entry course because the more work 70 IF i =5 THEN GO TO 20
not as a number, x. but as a you ask the program to do CL
80 PRINT 81;AT 1 ,i;i$ ; : LET z$
string, z$. This gives more power between each keypress, the
=z*+i»: LET 1=1+1: GO TO 20
to our elbow, because we can longer it will take to do it. 5
90 LET x = VAL z»: IF x>50 THEN
now add a little error checking The only comprehensive PRINT "Sorry, that's too many!
subroutine (lines 500-550). This solution to this is to read the
rejects the input If the entry Is keyboard and do all the
: GO TO 10
100 PRINT "OK You have
oc
either an empty string, or If any "between keypresses" error
of the characters are not pure checking in machine code, bject" ;"s" AND x< > 1
numbers between 0 and 9, and returning to BASIC only when the 1 10 GO TO 10 O
i n
a.
returns to the user with an input Is ENTERed. One way of 500 LET i=i-l LET z$=z$( TO LE
appropriate comment and a tackling this is the assembler N z»-l>: PRINT tt 1 ;AT 1,ii" R
repeat request. On fhe other program I've given in Listing 5. ETURN </>

21 ZX Computing Monthly * February 1987


Listing 5 Listing 6
i REM ***CUSTOM INPUT ROUTINE *HIS0FT G E N S 3 H 2 ASSEMBLER*
(MACHINE CODE VERSION) ZX SPECTRUH
2 REM
3 REM Copyright (C> HIS0FT 1983,4
10 LET poi nt=65136: LET store= All rights reserved
65139
2® PRINT M1;AT 0,0;-Hou many u Pass 1 errors: 00
ould you like?"
3 0 L E T «=USR 65000 10 * D +
40 PRINT *L;AT 0,0.,.. 20 *C-
50 LET z » A * * s FOR i=store TO 3 30 ; Assembler program to input up to 5 digit number
tore- L + PEEK point: LET z»=z$ + CHR 40
» PEEK it NEXT it LET X=VAL Z» 50
60 IF x > 5 0 T H E N PRINT "Sorry, 6500® 60 ORG 65000
that's too aanyl*: GO TO 20 65000 70 XOR A
7 0 PRINT "OK. You have •;*;• o
65001 80 LD (POINT).A; Reset the store pointer
b ) « C f i " 3 " AND XOL 65004
90 GO TO 20 90 CALL #1601; Open channel to lower screen
65007 100 START CALL PROMPT
65010 1 10 XOF A
others will use your program, of
6501 1 120 LD (LAST K),A ;Reset system variable LAST
course — and it will also 65014 130 INPUT LD A,(LAST_K)
depend on how familiar with 65017 140 CP 0
computers they're likely to be! 65019 150 JP Z,INPUT; Wait for a key-press
People can do very odd things 65022 160 CP 12
when they're desperate.... and 65024 170 JP Z,DELETE
It's up to the programmer to 65027 180 CP 13
safeguard the inexperienced 65029 190 JP Z.ENTER
user from himselt. 65032 200 CP 58
65034 21® JP NC,START
Protection 65037 220 CP 48
65039 230 JP C,START; Only numbers get past here
I can't leave the subject of 65042 24® LD (CHR),A; Temporarily store character
friendliness without saying a 65045 250 LD A,(POINT)
word about "protection". Some 65048 260 CP 5
65050 270 JP NC,START; Abort if more than 5 digits
people do seem to get
65053 280 LD HL,STORE
obsessive about this sometimes, 65056 290 LD DE,(POINT)
and don't regard a program as 65060 300 LD D, 0
finished until they've 65062 310 ADD HL.DE; HL now points to correct addre
incorporated all the BREAK 65063 320 LD A,(CHR)
disabling tricks they can muster. 65066 330 LD (HL),A; Put character code into store
If the result simply means that 65067 340 CALL PRINT
BREAK is Ignored, then fine; this 65070 350 LD A, E
in itself protects the user from 65071 360 INC A
stopping the program and 65072 37® LD (POINT),A; New pointer position
getting into a mess. But If 65075 380 JP START; Back for another key-press
pressing BREAK causes the 390
6S078 400 PROMPT CALL SETPOS
machine to hang up, or a 65081 4 10 LD A. 6 2
system reset, then surely this is 65083 420 RST 16; Print a "prompt" symbol
the very opposite of friendly 65084 430 RET
programming! Furthermore, such 44®
methods are actually gulte 65085 450 PRINT CALL SETPOS
pointless. They certainly won't 65088 460 LD A,(CHR)
make your program uncopyable. 65091 470 RST 16; Print current character
and if all you're worried about is 65092 480 RET
to keep prying eyes from your 490
code, then it stands to reason 65093 500 SETPOS LD A. 2 2
that anyone who's capable of 65095 510 SST 16
65096 520 LD A, 1
understanding your program in 65098 530 RST 16
the first place will have no 65099 540 LD A, (POINT)
difficulty in making short work of 65102 550 RST 16; Sane as PRINT «®; AT 1,(POINT);
your protection scheme! The 65103 560 RET
moral? Think twice before you 570
plant a bomb in your 65104 580 DELETE LD A,(POINT)
program... 65107 590 CP 0
65109 600 JP Z,START; Abort if nothing typed yet
I'm aware of course that 65112 610 CALL SETPOS
writing an article like this is 65115 620 LD A, 3 2
rather tike putting a gun to my 651 17 630 RST 16; Print a space over the old prompt
own head, because It's almost 651 18 640 LD A.(POINT)
certain that someone will now 65121 650 DEQ A
closely examine all my 65122 660 LD (POINT).A; Move pointer back one note
programming examples in 65125 670 JP START; Back for another key-press
previous articles to see if I take 680
my own advice. But I'm happy to 65128 69® ENTER LD A,(POINT)
65131 700 CP 0
take the risk. A bit of egg on my 65133 710 JP Z.START; Abort if nothing typed yet
face won't do any harm, and If 65136 720 RET ;Back to BASIC
the result Is an increase in the 65137 730 CHR DEFB Temporary store for character code
total amount of programming 65138 740 POINT DEFB 0; Stores current pointer position
friendliness in the world, then I 65139 750 STORE DEFS 5; Reserves 5 bytes to store digits
guess it's worth it. 23560 760 LAST K EOU 23560
Letters on the subject should
be sent to the editor — Pass 2 errors: 00
preferably with BREAK disabled
</> and fitted with LENSLOK. Table used 147 from 300

22 ZX Computing Monthly * February 1987


HI 50PT BASIC
C O M P I
evaluations of string variables
E
dependent on the number of
R
Hisoft Basic Compiler (eg. VAL xS) is not allowed and 'real' number calculations
arrays of three or more needed and use of the
HiSoft dimensions cannot be used. PLOT/DRAW functions. By
£15.95 There are also a few system specifying integer and positive
commands which are not integer variables at the start by
allowed but these can be using the directive REM: INT
isoft are a company famous overcome due to the compiler's variable, list the speed increase
for their Devpac assembler ability to move in and out of is optimised.
which is the assembler all others BASIC selectively, these are such Error messages are clear,
are measured by. They are not a commands as LOAD, SAVE. NEW detailed in the manual and are
prolific producer of software, but eta produced on either of the first
usually when they do market Although supplied on tape two of the three passes the
something it Is of a very high there are instructions for making program makes.
standard. a Microdrive or disk backup My next test was to try and
Now BASIC as we all know, is copy, a considerate and useful find a BASIC program on tape
useful for learning to program option. (all mine being kept on the
and is tolerable in some The compiler has sixteen inoperable disk drive) eventually
applications where speed is not directives although often only I found a couple and of course
essential. To get an arcade type one or two may be required the first included a DIM A(2,4,3)
of program to run at a and these are used by adding Instruction which is not allowed.
reasonable speed on the REM: lines before the start of the The next was a copy of an
Spectrum you need to program code to be compiled. earlier ZXC listing called
in machine code and that takes Platform Jack, a rather slow
One compilation Is initiated
a fair bit of serious study. jump game. It compiled after
then all relevent info is provided,
Alternatives are to use a including entry points if the three attempts when I had to
special language such as White program was split Into sections, make minor amendments to RUN
Lightning or to get a compiler to and at the end the start and statements and gave a speed
change BASIC into machine length of code for saving to increase of about 20 times!
code. tape etc is given. Completely unplayable without
The latter has been attempted the addition of some delay
with reasonable success by PSS loops.
with MCODER 1, 2 & 3. the last Out of the four other games I
being an excellent compiler On Test experienced no problems and
with few disadvantages, the all gave an impressive gain in
biggest being the compiled First the 50 page manual speed. I did find that in general
code is not relocatable and It is deserves d congratulatory the code produced tended to
not possible to combine several mention. I took it away and read equal or become slightly longer
routines compiled separately. it and due to its step by step than the original and this meant
BLAST on the other hand was a examples I understood It without that in practical terms around
disaster and its name aptly any problem and felt confident 11K to 15K was compilable in
mirrored its purchaser's when I went back to the one go. For really long programs
expletives. computer. then it may be possible to break
My first difficulty came when I them into smaller units and
Floating point loaded the program and tried compile to specific addresses. A
to convert it to run on my disk special facility to compile DATA
drive system, it wouldn't! Then I and program separately is built
The HiSoft compiler is a full tried running It direct from tape,
floating point (copes with into the program.
It locked up!
decimals as well as integers, ie, I am proud to note that ZXC is
whole numbers), compiler for all Only when I disconnected my credited at the end of the
the Spectrum variants. The code drive would It work, now the manual for allowing the use of
itself occupies around 11K. problem is that I am using a TRL one of Toni Baker's published
HISott claim this means that Beta interface and it is obviously routines for the 128 keypad
programs up to 30K can be Incompatible with it, I assume simulator.
compiled in one operation, 128 that the Disk drive they refer to in Probably the most versatile
and PLUS 2 owners have a the manual Is the Opus eneral purpose compiler on
Discovery which is compatible
slightly modified operating
with the microdrive system. A bit K
the market it has a little more
system which takes advantage of flexibility than PSS' Mcoder 3
some of the capabilities of the of a disappointment. which must be its nearest rival.
machines. The program was now working It could certainly produce
and the short demos/examples commercial quality programs of
The compiler code is located
worked perfectly and some types, but to produce that
low in memory between the
Impressively. This is the only state-of-the-art graphic arcade
system variables and the
compiler I know which can masterpiece is unlikely without
microdrive map area. Memory
handle Sinclair's computed custom written machine code
maps of the program's
GOTO and GOSUB features. routines.
requirements are given in the
manual. If you're serious about your
Limitations are few and are computing then this Is the
unlikely to be restrictive unless Speed limits program you've been waiting for,
you require them for a specific as close as anyone is likely to
programming purpose. These The speed increase was variable get to an easy to use, most
are that no expressions are but this is explained, and features supported compiler for
allowed in DATA statements, reasonably so. as being the Spectrum computers.

23 ZX Computing Monthly * February 1987


THE DISC
COLUM
John Wase presents another
selection of useful routines for
Discovery owners.
T he first routine this month is a programs, data files, pieces of the approximate number of CAT
neat little COPY routine from code, etc; (32 + 110 « 16 = 1792 sectors needed for storing the
John Bennett, who lives near bytes = 1.75K = 7 sectors). The number of files indicated by the
Bedford, that enables you to fourth byte in the first of those value contained in f; this is then
dump a screen to a printer. CAT sectors contains a value POKEd inlo the machine code
Funny. I was asking for this sort of equal to the number of the last routine. Then. In line 120. the disc
thing only in last month's sector used by the CAT file is FORMATted with the name, f$.
column, and before it's even (normally extending from seclor plus the number of files which
printed, here it is! The program 0 through to the end of sector 6: can be saved. RANDOMIZE USR
(Figure 1) is short, easily typed so the normal value is 6. 65080 calls the machine code
in, and it works!. Line 30 indicating 7 sectors). However, by routine (Figure 4), and, to finish
connects stream 3 to the printer Inserting another value in this off. a CAT confirms the filename,
driver software in the Opus port. 4th byte, we can extend the the number of files available,
Line 100 switches the printer number of sectors in the CAT file and the memory left for the
spacing to 8/72" (you might up to a maximum of 43. This programmer.
need to adjust this for your allows us to store a miximum of
printer) and 120 switches the 676 files in the CAT file in
printer to graphics mode. Line addition to the first 32 bytes Code
140 does the plotting for one which contain the disc name The machine code in Figure 4
pass of the print head and line and formatting information. This, has comments alongside each
160 a line feed. The spacing is in turn, leaves us 676 sectors. As step and is pretty self-
returned to normal in line 180 It is not possible to store more explanatory. It loads the
and line 190 closes the stream. than one program file or selected sector from the disc
And there it is, complete with a what-have-you on a sector, the into the Spectrum's RAM, starting
SAVE routine at the end. Figure 2 maximum number ot programs, at address 65110 (see assembly
is a picture from my old tape of etc, which can be stored is 67. listing, line 14), having first
Lunar Jetman produced by this just equal to the maximum loaded HL with the number of
routine. Although it was number of files in the CAT file, the CAT sector required; in this
originally written for a Shinwa and probably enough for most case, the first sector, number zero
CP80, it works fine on my Epson people. (line 12). The number of CAT
FX80, too The only problem Is, as sectors required is poked' into
John says, that it's rather slow: address 65114 (line 3) and the
some machine code might The program sector is saved back to the disc:
come in useful. How about it. finally (last line) the Spectrum
folks? To alter the magic byte, the ROM is paged back in with a
program listed in Figure 3 first ot return to BASIC
Morefiles all needs to wipe the disc clean
with a FORMAT command. So Fastload
Steven Nutting of Histon, of don't use this program on a disc
"supercat" fame has sent in a which contains valuable This program, by Neil Hewitt of
program which took my eye. This routines. Next, the program loads Coventry is one of a whole
is another program for playing in sector 0, alters this byte, and clutch of loader-programs
with the CATalogue file, saves this sector back to where it and/or catalogue programs
somewhat more explicit than the belongs. which I have received lately,
very short BASIC routine which I Lines 10 to 30 set up the 40 several of which you've already
o published a month or two ago,
and it includes a bit of machine
byte machine code routine,
protected by CLEAR 65069 in line
seen. I therefore have to be

o
rather selective. Although it has
code to speed things up a litte. 10. Lines 40 to 60 ask you to some limitations, Neil's program
There are 719 sectors on each INPUT the drive number, check stood out because of the
disc numbered 0 to 718, and that this is reasonable, and then Impressive presentation; the 128
each sector can hold 256 bytes POKEs it Into the machine code style windows. In particular, are
of CAT or program Information. routine. Lines 70 to 80 ask for the most attractive.
The CAT file uses the first seven disc name; f$ contains seven
sectors (numbered 0 to 6). The letters, the maximum number
Fastlist
o remainder of the disc available
for use is laid out as follows: the
allowed by this routine. Next, in
lines 90 to 100, you are asked to
o
M
disc formatting information and
disc name use the first 32 bytes,
and each subsequent file uses
INPUT the number of files, f,
which you need to save on the
disc: this number is also
The program in Figure 5 is all in
BASIC Type it in. using graphics
A in place of the question marks
16 bytes. This means that there is checked to see if It is in line 9993 and save It as "run",
Q room for information on 110 reasonable. Line 110 works out auto running from line 1. It

24 ZX Computing Monthly * February 1987


allows you to LOAD programs, appetite. Figures 6 and 7 show the code-length of the files. Files
LM
ERASE files, gives you an screen dumps of two of the beginning with CHRS 0 to hide
extended CAT. COPY files, and so menus, the LOAD menu (blue them in the catalogue printout
on. The menu bar will (see background) and the show up here with a question
Figures 6 and 7). appear at the MISCELLANEOUS menu (green mark at the beginning of the
top of the screen with the first background). You leave a menu filename: a LOAD and ERASE
option (LOAD), flashing. The by pressing Q to quit — the only option Is provided to deal with
cursor keys move the choice prompt not on-screen, so take these, too (in these options, only
along the menu bar highlighting heed. the name, without the question
each option in turn. The The options are mark, should be entered).
required option is selected by straightforward — you can load, The COPY section is a bit
ENTER. ZERO or DELETE. A pull- or load and run programs or limited, using as It does the
down type menu then appears, code, or erase any file, and rather limited MOVE command;
selections being made just as there is a miscellaneous section so it will only COPY individual
on the 128 menus. To whet your which includes various resets. programs and not the whole
Figure 1 Figure 2

1 REM OPUSCOPYs JOHN B E N N E T T


5 BORDER Is PAPER 6: C L S
10 REM O P U S C O P Y / S H I N W A C P 8 0
20 PRINT AT 5 , 8 ; " O P U S PRINTER
COPY ROUTINE 1986": P R I N T *'
30 OPEN # 3 ; " b "
35 PRINT
Set your printer up first then
LOAD your p i c t u r e or S C R E E N * .
The printer Mi 1 1 start up
automatically after 15 seconds.
It will then take about six
minutes to print a full s c r e e n "
40 INPUT "ENTER TITLE OF S C R E E
N TO LOAD ";N*
45 PRINT #1j AT 1,0;" Load f r o

JULTBB^B^TE
m Tape or D i s c ? <T/D> PAUSE 0
50 IF I N K E Y * - " d H OR INKEY*="D"
THEN GO TO 70
55 IF I N K E Y # < > " t " A N D INKEY«<>
"T" AND INKEY*<>"d" A N D INKEY*^>
"D" THEN GO TO 4 5 Figure 3
60 LOAD N * S C R E E N * : GO TO lOO
70 L O A D » 1 ; N * S C R E E N *
90 REM Copy 5 REM 30 IF d<l OR d>2 THEN GO TO 40
•»»M 0 R E F I L E S « « 60 POKE 63103,d
100 LPRINT C H R * 2 7 ; " A " ; C H R * 8; BY STEVEN NUTTING
110 FOR H = 1 7 5 TO 7 S T E P - 8 70 INPUT "Filename <max 7 lett
•ri)i LINE f*
120 LPRINT C H R * 2 7 j " K " ; C H R * 0;C 10 CLEAR 63069! LET c-Oi FOR a BO IF LEN f*<l OR LEN f»>7 THE
HR* 1; •65070 TO 63109t READ nt POKE a, N 60 TO 70
130 FOR W = 0 TO 2 5 5 m LET c-c+ni NEXT a 90 INPUT "Number of files (1-6
140 LPRINT C H R * (128»P0INT (W,H 20 IF c< >3237 THEN PRINT "Delta 76) i"|f
)+64*P0INT <W,H-l)+32»POINT <W,H Error" 100 IF f<l OR f >676 THEN GO TO
-2)+16*P0INT <W,H-3>+8*P0INT (M, 30 DATA 6,2,205,38,254,62,42,3 90
H-4) + 4 » P 0 INT (W,H-5)+2»P0INT <14, 0,90,234,6,0,197,203,8,23,6,0,24 H O LET «-<f +2>• 16/2361 POKE 63
H-6)+P0INT (W,H-7>>; 7,18,34,81,234,330,0,17,86,234,1 076,INT •
ISO NEXT W 4,0,193,62,1,205,0,0,193,72,23 120 FORMAT djf«+STR* fI RANDOMI
40 INPUT "Drive (1 or 2)t "jd ZE USR 63070t CAT d
160 LPRINT C H R * 10
170 NEXT H
1B0 LPRINT C H R * 2
190 CLOSE #3 The catalogue section is quite disc between discs of two
200 STOP versatile: It is printed in three different sizes. Those who might
9996 STOP columns so that It doesn't easily run up against this problem
9997 SAVE "opuscopy" L I N E 1 go off-screen (we had two last should use a program like Jose
9998 STOP month, but I guess three is the Pedro's "opuscat". In spite of this
9999 SAVE * 1 j"opuscopy" L I N E 1 limit with Sinclair's Rom lettering) (and it's easy for me to be
and there is an option to print critical) this program is really
Figure 4
DISSMQLV of addresses 65870-65189 (40 bytes)

ORC 658 78
6SB78 806,002 LD 1.2 jtfsed by Discovery ROM to sjy load in sector.
€9072 28S.58.2S4 CALL 1 u d u v r ;Load or Save sector depend in) on value of the 1 rey.
65875 862,880
65877 858,898,254
LD ft,0
LD (65114),*
;Poke 65114 eith the nuaber of Cat teeters used to hold f i l e data (no in A re*) O
65880 886,888
65882 137
LI 1,8
load save : PUSH BC
;Used
;Save
by Discovery RON to say save sector.
1 r e i for later use
O
65883 20S.888.823 CALL 5896 ;Call Discovery Roe in.
65886 886.888 LD B,0 ;Find froa Discovery* Lookup Tables the I/O Read A Write routine.
65888 247 RST 130 jlken Load HL mth the address.
65889 818 DEFB 18
65838 834.881,254 LD (idd).KL ;Poke the Address in the loadsect routine.

o
65833 833.888.888 LD KL.0 ;LD HL,sector no 0 (The start of the CAT sectors).
65896 817,886,254 LD DC.6S110 ;Lead sector at address 65110.
6S899 914,808 LD C,8 ;Load in 256 bytes.
65101 193 POP BC ;Retrieve the > r e i that uas saved,if 1=2 then load sector of i f B=fl then save.
65182 862.881 LD A,1 iSelect drive 1. o
65194 285 DEFB 285 ; T k i s eould turn out to be CALL nn M

o
65105 868,666 DEFU 8
65107 195,072.823 JP S968 ;Block SDtCLADS ROM back in and RET t« Basic.

25 ZX Computing Monthly * February 1987


very neat, and for a mere BASIC itself. It is written tor a single about these code dump
job packs in a lot ol features drive disc: for drive 2 you merely programs, then, and some larger
and presents them very nicely. have to alter line 30. The listing size dumps, too. with pretty
Try it! Figure 8 is short and to the shading? And don't forget the
point. When you type in line 130, random access facility. Several
capital N. capital S and capital of our readers have had
Rename R should all be in inverse video, difficulties with filing programs,
this gives a very neat and so how about a good, well
This is a neat little routine from professional presentation. documented one of your own?
Tom Nicholson of Motherwell Finally, please can I appeal Keep them coming in. See you
which will rename either files to you to submit programs on next month.
stored on disc or even the disc tape or preferably on disc. How
Figure S
1 DIM «i» < i , 3 2 ) UT " E x e c u t e A d d r : " | e i LOAD » d r i v 0 8100
2 D i n w K 5 , 2 ) t DIM d* ( 5 , 2 ) : D e;n*CODE : RANDOMIZE USR e BOO? I F INCEY*<>"" THEN GO TO BO
IM p « C S , l ) l DIM l * t 3 , l > : DIM 1*< 1030 INPUT "Namet " ; LINE n « : LUA 07
S , 3 2 » : DIM r * ( 5 , 1 9 , 3 0 > : D i n y * <3 D * d r i v e ; C H R * O+n* BOOB GO TO BOOl
, 2 ) 1 DIM x * < 5 , 2 > 2000 60 TO 2 0 0 0 • op 11 on • 10 B009 PRINT AT x , y ; PAPER VAL p * <
3 LET l e n g - O s LET f a c t o r » l 2 0 1 0 INPUT "Names"; LINE n*s E R A w n ) i INK VAL i * ( M n > | " " j c * < wn, en
4 LET b f = " r u n " t REM BOOT NAME S E d r i v e ; n * : GO SUB BOOOt GO TO , 1 TO VAL w * ( w n ) > i RETURN
5 DIM d * « 3 , 2 > : DIM w * < 5 , 2 » BO BlOO LET o p t l o n = e n : RETURN
7 LE T d r u e « l 2020 INPUT "Name:"! LINE n«i ERA 9200 LET x=t
8 FOR f - O TO READ at POt E SE drive;CHR* O+n*: GO SUB BOOO: 9201 FOR f - l TO 20s PRINT AT f , 0
USR " a " * f , a : NEXT f t DATA 2 3 3 , 2 3 GO TO eo ; q * < 1 , 1 TO >: NEXT f
4,252,240.240,224,J92,128 3000 GO TO 3000+optLon*lO 9220 LET c o l - O : LET 1«2
l O DIM ) i ( S , l ) l DIM p * < 3 , 1 > : D 3O10 LET d r i v e - i t GO SUB 9200: G 9230 CLOSE » 3 : OPEN » 5 ; " CAT " ; d
IM x * < 3 , 2 ) t DIM y * < 3 , 2 > t DIM 1*< O SUB 9990: GC1 SUB BOOOl GO TO 8 r i veRND1A,110
5 , 3 0 > i DIM c « < 3 , 1 0 , 3 0 > 0 9240 FOR f - l TO M O
20 FOR 1 = 1 TO 5 : READ p* ( » ) , « » 3020 LET drive-2! GO SUB 9200: G 92SO LET a-CODE INKEV*«S
(f),w*<f>,df(f>,xt<f>,yt<f),l*<f 0 SUB 9990: GO SUB BOOOt GO TO B 9260 LET b'CODE 1NKEY«»5
>t FOR g » l TO < VAL d * ( f > > - 3 t RE A 0 9270 LET l e n - « * 2 3 & * f >
D c * ( f , g > t NEXT g j NEXT f 3070 L E T d r i v e - I : L E T l e n g - 1 : L E 92BO LET a-CODE IMCEVttS
TO DATA " 5 " , " 0 " , " I B " , " 7 " , " 2 " , " T f a c t o r = 2 : GO S U B 9200: G O S U B 9 2 9 0 LET b-CODE 1NKEV*«3
I " , " L o a d Menu","Load P r o q r « « " , " L 9 9 9 0 : G O S U B B O O O : I E T leng°>0: L 9 3 0 0 LET s t r t - a + 2 5 6 * b
oad C o d e " , " L e w d Code Run" , "Loa ET f a c t o r = 1 : G O TO BO 9310 LET a - C O D f INKEV««3
d Hidden F i l e " "040 L E T d n v e » 2 i L E T l e n g - 1 : L E
9320 LET b - C O D E INKEY«»5
31 DATA " 4 " , - 0 - , " 1 9 " , - 3 - , " 2 " , " T f ac t o r « 2 : G O S U B 9 2 0 0 : G O S U B
9330 LET e n d " 4 * 2 S 6 * b
4","Erase Menu","Erair F i l e " , " E r 9 9 9 0 : G O S U B BOOOs L E T l e n g - O : L
9340 LET a* = t FOR g - 1 TO l O l L
a w H i d d e n Ft l e " E T f a c t o r * ! : G O TO B O
ET a-CODE INKEV*«5( LET a « - a « * C H
32 DATA " 3 " , " O " , " 1 7 " , " 7 " , " 2 " , " 4000 G O T O 4 D O O * o p t I o n » L O
R* a : NEXT g
12","Cat Menu","Cat D r i v e l " , " C a 4010 INPUT "Name of F i l e ! " ! LINE
93SO I F J>20 THEN LET l - 2 l LET c
t D r i v e 2 " , "Cat t t. L e n g t h s " , "Ca nts INPUT "New Name:"; LINE k*:
ol-Col+11: I F c o l > 2 3 THEN PRINT
t 2 * Lengths" MOVE 1 i n f T O 2 ; n f : G O S U B &XK):
• O j " M o r e ? - t GO SUB 9390
33 DATA " 4 " , " O " , " 1 8 " , " 7 " , " 2 " , " GO TO BO
93AO IF end—63333 THEN GO TO 3 0
12","Copy Menu","Copy D r i v e 1 t o 4020 I N P U T "Name of F i l e : " ; LINE
9370 PRINT AT l , c o l | a * i IF l e n g -
2 " , " C o p y D r i v e 1 t o I " , " C o p y Dl n * t INPUT "New N a m e : " : LINE tr«:
I THEN PRINT AT 1 * 1 , c o l J BRIGHT
%c 1 t o 2 " , " C o p y D l » c 1 t o 1" MOVf I i n f TO 3 t n » : GO S U B BOOO:
I I " » " i <236« < e n d - s t r t > ) + < l e n - l > - 3
34 DATA " 4 " , " 0 " , " 1 3 " , " 8 " , " 2 " , " GO TO 9 0
9380 LET l » l » f a c t o r : NEXT f
13","Mlsc","Reset System-,"Reset 4030 MOVE " d " ; I TO " d " t 2 : GO SUP 9390 I F l N K £ y « = " n " THEN FOR f « l
D r i v e s " , " S e t IF1 M a p - , " B o o t P r o 60001 GO TO BO TO 21t PRINT AT 4 , 0 | q « < l , l TO ) :
gra»","Change Drlve" 4040 MOVF " d " i 1 TO " d " ( 3 : GO PUB
NEXT f t GO SUB 9 9 9 0 : GO TO BO
40 PRINT AT 0 , 0 | INVERSE 1 t " L o BOO'"": GO TO BO 9391 IF I N K E Y * - " y - THEN FOR q - 1
ad : E r a s e I Cat i Copy t M i s c " M O O GO TO 5 0 0 0 • op t 1 o n • 10 TO 211 PRINT AT q . O t q f d . l TO >1
49 LET o p t - 1 5010 RANDOMIZE USR 0
NEXT qs LET l - 2 t LET c o l - O t NEX
5 0 PRINT AT O.Ot INVERSE 1 J " L o 5020 RANDOMIZE USR 1 4 0 / 0 : GO SUB
T •
ad ! E r a s e i C a t ! Copy * M i s c " I 80001 GO TO 80 9400 GO TO 9390
RESTORE 6O1 FOR f » l TO o p t s REA 5030 RANDOMIZE USR 4007: GO SUB VYttT S 1 W
D y , o » : NEXT f t PRINT AT O . y ; FL BOOO: GO TO BO 99BB LET f=wnt LET w-VAL w«C+):
ASH 1 ; oS 3040 LOAD » l ; b f LET d-VAL d * ( f > - t : LET x=VAL x*<
51 I F INfcEV*-"" THEN GO TO 31 5030 INPUT " D r i v e N u m b e r t " t d r i v e f ) : LET y«VAL y * < f )
32 I F INKEY*-CHR* 9 AND o p t < 3 t GO SUB BOOOl GO TO 8 0 99B9 RETURN
THEN LE? o p t - O p t + 1 BOOO LET e n " I : LET u p l * V A L x*<wn 9990 GO SUB 998B: LET f - w n : LET
5 3 I F INKEY«-CHR* 8 AND o p t > l >•21 LET l w l - C V A L x • < h o ) * VAL d*< p«VAL p « ( « ) t PRINT AT x . y j PAPER
THEN LET Opt = O p t - 1 w n ) > - 2 s LET K « u p l I LET y»VAL y»< p ; INf VAL l * ( f 1 ; INVERSE l ; q * <
54 IF I N K E Y » - " 0 " OR INKEY«-CHR HO ) 1 , 1 TO m*1)s FOR r = x * l TO x * d : P
« 13 OR INKEY*-CHR* 12 THEN GO T BOOl PRINT AT x , y | PAPER 0( INf RINT AT z , y ) PAPER p ; q l < l , l TO w
0 70 VAI p * <wn>; BRIGHT 1 | " " ; c » < w n , e + 1 ) : NEXT z
55 GO TO SO n , 1 TO VAL l«nl) 9992 OVER O: INK VAI i * < f H PAPE
60 DATA 0 , " L o a d " , 6 , " E r a s e B002 IF I Nf E Y*=" " THEN GO TO BOO R 71 PLOT < y » B ) - l , l 7 5 - ( x * 8 ) • I : D
1 4 , " Cat " , 2 0 , " Copy - , 2 7 , " Mtsc 2 RAW C M * I > * B + I , 0 : DRAW O , ((d»l>«
B003 GO SUB B009t IF I N f T Y I - C H R * 8 ) - I : DRAW - ( ( w * l ) « B * 1 > , O i DRAW
70 LET w n > o p t l GO SUB 9 9 9 0 : GO 11 AND x up1 OR I N f E V * - " 6 " AND O, « ( d » I ) * B > *1
SUB 9 0 0 0 k f u p l THEN LET * - x - 1: LET e n = e n - 999"". F*R I NT PAPER 7{ INt VAI. i « ( f
BO LET l e n q - O t LET f a c t o r - I t G 1 >; INVERSE 1;AT x , y * l ; l * 4 f , l TO
O SUB wn"1OOOi FOR f - 2 TO 2 0 : PR BOO4 IF IN* EY* = " q " THEN FOR f - l w-21:AT X , < y * w - 4 ) J INVERSE Oj IN
INT AT f , 0 ; q * < l , l TO >t NEXT f : TO 21S PRINT AT f , 0 j " f Ot PAPER 2 | " " J " ; INf 2s PAPER 6
GO TO 5 0 - t NEXT f z !"*?"t INf 6 : PAPER 4 J "~>" | INf 4 ;
lOOO GO TO 1 0 0 0 * o p t 1 o n * l O GO TO 5 0 PAPER S j " - 7 " ; INf S ; PAPER Oj
l O l O INPUT " P r o g r a m N*mel"J LINE BOOS IF INKEY4-CHR* 10 AND X < l M l 9994 FOR I - I TO d - 2 : PRINT PAPER
n t i LOAD * d r i v e j n * OR 1N*EY*="7" AND K ' I M I THEN LE VAL p * < f > ; AT x + z + 1 , y + I { c « t f ,2 , I
1020 INPUT " N a m e : " ; L I N E n«s L0A T x - x + l t LET e n - e n + 1 TO w - 2 » : NEXT z

o D »drIve;n«C0DE 0')t)h IF 1NKEV* = "0" OR I N f E Y * CHR 9995 RETURN


1030 INPUT "Name: " ; L I N E n»t INP » 13 OR IN*EV*=CHR* 12 THIN GO T

o

Figure 6
L. o a d E r a s e I C a t C o p y I M i s c

M e n u j
r -A
L o a d P r o c r a m
O L_ O a d O d E;
o
-
L_ o a d C O d E: &! R u ri
v> l_ o a d H i d d t n F i l e

a
26 ZX Computing Monthly * February 1987
Figure 7

I
•Load I E r a s e I c a t 1 Cop Mi
im S c
I

Mi s c WtKr it- A

R €:£•€:; t I H i i i v e s
iiliaiiiiiiiiiiiliiiiip M a p
11111 ? ? ? 1 LI^Y ? ? W^Hl ? ^ ^ H i i ? 1U ? M i ? =1 y^Si
iiH i ii; li^vcii 1 liii iiilfifisfiillii;; i y i ci in
C h a n g e D l i l l l i l i l l l l l l l l

Figure 8

5 REM 110 IF n<-9 THEN PRINT " ";Nf" 200 INPUT "New Name : ";nS
•••RENAME PROGRAM*•• "j; PRINT a*(7 TO 16) s LET k-ls 210 POINT «4;y
•••TOM NICHOLSON"* NEXT n 220 FOR +=>1 TO t>
10 BORDER 1J PAPER 5s BRIGHT 1 120 PRINT " "in;" "j s PRINT a*( 230 LET a((4)-lNKEY««4
: INK 0: CLS 7 TO 16)t NEXT n 240 NEXT *
20 LET A»l« LET B=15: LET K = 2 130 INPUT <" ReName=(1,2, et 250 FOR f=l TO 10
30 CLOSE #4: OPEN «4;" CAT 1 c.) N=Next page S=Stop R=Re-St 260 IF f<=LEN n» THEN PRINT *4i
HMD 16 art ")} LINE y* n*<f > |
40 FOR n-a TO b 140 IF CODE y*=78 OR CODE y*=11 270 IF f>LEN n* THEN PRINT •4;"
50 POINT #4; n 0 THEN GO TO 320 «.t
60 DIM a$(16) ISO IF CODE y*=B3 OR CODE y*=l1 280 NEXT i
70 FOR f-l TO 16 5 THEN STOP 290 IF y>15 THEN CLS s GO TO 30
BO LET a*If>=INKEY*»4 160 IF CODE y*=B2 OR CODE y*=11 300 CLS i IF k=l AND a<16 THEN
90 NEXT i 4 THEN GO TO 10 LET k-2: GO TO 30
100 IF CODE a* (k)=255 OR CODE a 170 IF y*="» THEN GO TO 130 310 STOP
»(k)"229 THEN PRINT *" "j INVERS 180 IF CODE y*(l)<48 OR CODE yS 320 CLS : LET a=a+15: LET b«b+l
E ljn-1} INVERSE Oj" IS THE LAST (11>57 THEN GO TO 130 5; GO TO 30
FILE ON DISC.": GO TO 130 190 LET y-VAL y«

DISCS
AT LOW PRICES Its easy to
IN P L A S T I C L I B R A R Y C A S E S

ALL DISKS ARE LIFETIME GUARANTEED, COME WITH HUB RING


complain about
advertisements.
AND WRITE/PROTECT AS WELL AS LABELS & ENVELOPES
5.25" 10 3.5" 10
DSSD £7.99 S S 135tpi £15.95

But which ones?


DSDD <«<p.) £9.99 DS 135tpi £19.95

BULK DISCS AT CRAZY PRICES


5.25" 25 100 250
DS 96tpr £14.99 £49.99 £119.99 Every week millions of advertisements
3.5" 25 100 250 appear in print, on posters or in the cinema.
DS 135tpi £39.99 £149.99 £369.99 Most of them comply with the rules
contained in the British Code of Advertising
Epson printers at sensible discounts
FX85 £399.95 LQ1000 £699.95 Practice.
FX105 £489.95 JX 80 (col) £399.95 But s i m e of them break the rules and
LQ800 £499.95 HI 80 (plotter) £349.95 warrant your complaints.
Colour Monitors. Massive Discounts If you're not sure about which ones they
Philips 8M7502 (Green) £79.99 are, however, drop us a line and we'll send you

/
Philips BM7522 (Amber) £89.99 an abridged copy of the Advertising Gxle.
Philips 8501 (Med-res Colour) £199.99
Philips 8533 (Hi-res Colour) Then, if an advertisement bothers
£269.99
JUST DISKS you. you'll be justified in bothering us.
18. CRESCENT WAY, GREEN ST. GREEN, The Advertising Standards Authority. _
If an advertisement is wrong, were here to put it right.
ORPINGTON, KENT BR6 9LS
Tel: 0689 61947 ASA Ltd.Dept 2 Brook House.Tomngton Place. London W O E 7HN
D All prices include VATandPSP
J This space is donated in rhe interests of high standards of advertising

27 ZX Computing Monthly * February 1987


[Ill]

<TBbITeT
C THB> <
<

GfierJBT
modes. This makes it possible to A commercial graphics
Carol Brooksbank with change the proportions of the program can be a great help. I
screen dump in printing, subtly use Softechnics' The Artist, but,
advice on using screen altering the width of the image again, any similar package will
on the paper. Obviously the do, or you can use a light pen
dumps in a more more facitites of this sort you or even BASIC or Spectrum block
have, the more versatile you can graphics.
versatile way be, but the most Important thing Unless you are lucky (or rich)
is to be really familiar with your enough to own a cotour-jet
interface/printer, to know just printer, your printouts are going
what it can and cannot do. to be in black and white, so
^ v e r y club should have among Figure 1
its members a Spectrum owner
o with a printer capable of screen
z dumps. Why? Because the
Spectrum can take care of all 5T LUKE'S CHURCH

CHOIR
the printing of tickets, posters,
s notepaper headed with the club
logo — in fact, virtually all of the
s
< printing requirements can be
handled cheaply and quickly
by someone with a bit of

o
imagination and a screen dump

SUPPER
or two.

o There is such a choice of


printer/interface combinations
oc these days that it is Impossible
to say that any one is better
o . than all the others. I use the
Wafadrive Centronics interface I K THE
with the Rotronics screen dump
program Draw DX-85. and an
C H U R C
Epson RX80F/T printer. The OH
Wafadrive Draw program has the
great advantage of offering S a t u r d a y
three sizes of screen dump, and 2 n d
O it also allows you, by poking
N o v e m b e r
ui values into the program, to take
Q. advantage of the Epson's 7 . 3 0 R ,Ki . TICKET £2.30
CO variable bit-image graphics

28 ZX Computing Monthly * February 1987


¥

always work in black and white


on the screen, and keep It
simple. Fussy graphics may gain
gasps of admiration on the
screen. They usually look a
jumbled mess on paper.
You need to know whether
your screen dump gives a true
or distorted reproduction, and
the easiest way to find out is to
draw a circle on screen and
make a screen dump. Is it still a
circle? If not, you will have to
allow tor the distortion in your
designs. The choristers in the
Choir Supper poster have round
heads on screen, but the
distortion in the screen dump
gives a more pleasing
proportion on paper (Figure 1).
in the Laughter and Tears poster,
the tape reels had to be round,
so they are egg-shaped on
screen (Figure 2) You must either
take advantage of the distortion MUSIC i SPOKE* » 0 R P . QUIZ 4 P R I Z E S .
or compensate for it. Remember SOMETHING TO SUIT ALL TASTES,
that it is the effect on paper that
matters, and make plenty of test
dumps as you go along. i n T n c

llltUIIHMLT IIIMIH
Multiple dumps
There is no need to limit yourself
ON
to one screen dump per poster.
Figures 1 and 2 each consist of U E D N E S D f l Y , A P R I L 9TH
three. In figure 1, the lettering Is
one dump in size 3, and the RT
cartoons of choristers singing
and eating are each a separate 7 . 30F H ^

(
dump in size 1. In figure 2, two
size 3 dumps one above the
other make an A4 poster, with
the gramophone, size 1, PLOUGHMRN'S SUPPER
superimposed. If you have the
facility for different sizes, small
detailed sections are often more
successful if they are drawn full
size on the screen and reduced Tickets £1 (EARNERS) 6 O p . (NON-EARNERS)
in the printing. The Laughter and AVAILABLE FROtl SHEILA BANHAft ANO CAROL BROOKSBANti
Tears tickets were produced by
printing the poster screens side IN RID OF T H E H E A T I N G FUND
by side, in size 1, on thin card,
(Figure 3). The main motif is used
again, size 1, as a logo on the
programmes. (Figure 4). Juggling Figure 2 If you are using more than
with the sizes and positions In one dump It is vital to align the 0
this way lets you produce a
number ot related printed items,
paper properly for each one.
Find something on the printer z
using only one or two screen which you can use as a
designs. Figure 3 reference point — I use the
numbered bar which presses
1
against the paper — and find s<
out where this falls on the first
dump when the second one is
in the correct place on the

jniEMl
IM Tnc paper. You will have to
o
o
nit (IIIMAII T it mm experiment until you get the
ON effect you want, but once you
ill! «l UFOHCSDRY, APRIL 911 have it, write the position of your
oc
«T
7 . 30»«
marker down. Then, when you
do your print run, you will know a.
how to line the paper up.
PLOUGHMAN'S SUPPER My program for printing a
poster run looks something like
2
T i C H M £1 H M u l SOP ItM-tMKt: I
this:
«ni< t sr«» m . «nz i rtim. •OMlMtl 'W Mill HHU aw muiiiHi 10 LOAD " p o s M " SCREENS
IMCTDIfc (• Mil HI USUI. IN ftID OF T H E H E A T I N G FUND 20 POKE 23296,3
30
40
GOSUB 1000
PAUSE 0 O
50 LOAD "post 2 " SCREENS UJ
60 GOSUB 1000 a.
70 PAUSE 0 oo

29 ZX Computing Monthly * February 1987


llllJ
80 LOAD "post 3 " SCREENS
90 POKE 23296,1
100 GOSUB 1000
110 STOP
1000 FOR X = 1 TO 10
1010 DRAW *
1020 OPEN# * 3 . " C "
1030 LPRINT CHR$ (12);
1040 CLOSE# • 3
1050 NEXT x
1060 RETURN
Lines 20 and 90 set the dump
size.
Lines 40 and 70 allow me to put
the paper through again,
aligned (or the next dump.
Lines 1000 to 1060 are the
subroutine which prints the
required number of copies. PROGRAMME
Line 1010 Is the Wafadrive screen
dump command.
Lines 1020 - 1040 send a form
feed to the printer.
Lettering is very Important In
most printing work. The Artist
offers a number of type face*
and the overlay' option allows
you to enlarge, reduce or
change fhe proportions of the
design. However, I find that this
Figure 4
option Is not really accurate
enough for lettering, because
distortions are sometimes dump. I have not tried it yet, but walk the dog. go to the pub or
introduced which may vary it sounds promising. do the Times crossword.
between instances of the same For tickets, card can be used Any club church or group
letter, so I have developed my if your printer accepts cut paper, which needs printing, especially
own machine code program but my Epson will only accept for fund raising, will find your
which replaces each pixel In very thin card. Anything as thick services invaluable. If you have
the original letter by a block of as a postcard sticks in the roller a small business, printing your
pixels in a specified size. If you I have managed to find some own stationery with your logo
have to use the enlarge option very light weight card in A4 size and heading will not only save
In a graphics package, you may which it will handle, and I can money, but also avoid disaster
have to tidy the lettering up, print three tickets on each sheet. when you find you have almost
because differences between Investigations at your local run out of some vital form, and
letters in your poster will stand stationer or art shop will have not ordered a fresh supply.
out like a sore thumb. The probably turn up something Once you have the design
shading effect in the Laughter similar. screen, the Spectrum can run
and Tears poster is obtained by logos for headed notepaper the new ones off in no time. You
hollowing out the letters, leaving are the easiest of all. Once you do not need to be an artistic
just the outline of each one, then have your design screen, simply genius. Simple designs are often
using the graphics package fill' run a box of paper through the more effective than elaborate
option to fill each letter with a printer making a small screen ones. Nexl time your club is
texture. dump at the top of each sheet. having a function, try designing
Experiment with type faces to There is very good quality tractor a few tickets or posters and
make sure they still 'work' In the feed paper around — my showing them round. You will
0 size you plan. The Artist gothic
font looks fine on screen or in
favourite is Blue Chip — so you
can write a FOR-NEXT loop with
find it is great fun to do them
anyway, but don't blame me if
Z size 1, but enlarged too much it a screen dump and a form-feed, you never have any spare time

i
is terrible. (Figure 5). set the thing going and leave ft afterwards, because you are
to print the whole box while you always in demand as a printer.
Colour
s< Figure 5

Even with a monochrome printer,


there are tricks you can use to
oc make your posters more eye-
O catching. Printing on coloured
paper can be effective, but your
O printer will need a cut paper
feeder, because I have never
oc come across tractor feed paper
o . in colours. Ribbons are available
in more than one colour for
5 some printers. For the Epson, my
local dealer stocks red and blue
as well as black, and the
cartridges are easily changed,
so the dumps can be in different
colours. I was Interested to see a
O review In the November ZXC of a
Ul new program — Poster Machine
CL — which lets you produce large
</> posters In sections from a screen

30 ZX Computing Monthly * February 1987


/

BECOME A FORTUNE
HUKTER!
Have you got what it
takes to suffer the
ft slings and arrows of
outrageous football
fortunes? Prove your
footballing knowledge
in our quiz and you
could carry off CDS's
new football game.
& r i a n Clough's Football Fortunes
puts you in the managerial
hotseat and confronts you with
the problems that face real life
club supremos, such as injuries
to star players, cash (low crises
and team selection.
Football Fortunes Is an
absorbing blend of computer
and board game and your Soccer posers Who are the current holders
of the World Cup?
success depends on building up
a strong team. Your players are There are 15 copies of Brian 2) Which was the last team to
represented by cards bearing Clough's Football Fortunes to be win the League and FA Cup
the names of welt known won and all you have to do is double?
footballers. Each footballer has a answer three simple footballing 3) Who is the manager of
"star rating". The bigger your questions. Barcelona?
total team star rating the better
your form.
You can dabble in the The competition is open to all and no correspondence can be
transfer market and try to pick readers of ZX except employees entered into. Please remember
up highly rated players by of Argus Specialist Pub'ications, to write your answers on the
bargaining with your opponents. Chase Web and CDS. back of your entry envelope. The
However even if you assemble a The editor's decision is final closing date is March 6th.
brilliant team there are enough
pitfalls built into the game to
guarantee that you can't be sure Football Fortunes Competition
of victory until the proverbial
final whistle.
The answers are,
Above all Football Fortunes is
designed to be a sociable
game (for 2 to 5 players) and it's D
up to you whether the tactics
used to win league and cup 2)
honours will be hard but fair" or
studded with "professional" fouls. 3)
The game will have an instant Name:
appeal for the soccer fraternity
but you don't have to be a Address:
football fanatic to enjoy it.

How to Enter
Write your answers on the
coupon provided and send your
entries to Football Fortunes
Send your entry to Football Fortunes Competition. ZX Computing, No 2
Competition. ZX Computing
Monthly. No 1 Golden Square,
1 Golden Square, London W1R 3AR O
London W1R 3AB O
31 ZX Computing Monthly * February 1987
t
EXPERT SYSTEMS
into a computer program is just graduate is experience.
Would you accept one branch of Al programs Experience is that ability to
which achieve this are called judge what knowledge and
advice from your 'Expert Systems', and, believe it or information is necessary to make
not, expert systems are already a decision, and what
computer? David in use in science and Industry. importance to attach to various
It's only a matter of time before pieces of information.
Nowotnik introduces a they'll be entering our homes.
new series that will
They will be our personal bank Advice
manager'. They will also give us
advice on a variety of subjects; We don't become experts simply
show how the health, education and law, to by reading books on a subject.
name a few. All we have is knowledge; we
principles of expert need to develop experience to
systems can be applied The Turing Test use that knowledge to make
decisions. We may read a text
The concept of Al and expert book on. say, stocks and shares,
to the Spectrum and systems has been with us for but we still need to go to an
some time. Even before advisor to find the best time to
QL. electronic computers were on sell our British Telecom, TSB, or
the scene, concepts of Al were British Gas shares. But buy and
being considered. Alan Turing, sell shares only a few times you
few years ago, a popular whose tragic story is now the soon start to gain the
series of TV advertisements for subject of a West End play, gave experience necessary to make
one of the major banks had the his name in 1936 to the Turing your own decisions on
theme of a personal' bank Test. The ultimate test of Al would transactions.
manager living in a customer's be tor a human to sit at a So, an exert system has to be
wardrobe. Do you remember it? terminal and not know whether more than Just a database;
These advertisements tried to put he was communicating with more than a 'book' of
across the idea that bank another human or a computer. knowledge. Many readers will
managers (of that particular Later, in tne 1V6US, scientists be using databases on their
chain) were more approachable worked on the idea of the Sinclair micros. In using your
for financial advice that 'General Problem Solver! the database, you are providing
commonly envisaged. Despite ultimate computer system which yourself with information. You
that advertisement, bank had the intellectual capability make the decisions on which
managers continue to seem as to solve all problems. While this information to retrieve, and you
distant as before. But before very wonderful idea failed, this work make judgements and decisions
much longer, many homes gave rise to some of the on the data presented, on the
could really find a personal principles used in the 1970s and basis that you know and
financial adviser In the '80s to generate programs which understand the importance of
wardrobe, or somewhere more were able to capture and utilise the information, and its
convenient in the home. That human knowledge and relevance in making a decision.
advisor could be their own experience. In the expert system, it is the
personal computer; a computer Development is still going on; computer program which selects
with human-like expertise. the Japanese have made great the information and makes
For years, one principle strides forward in Al with their judgements according to rules
direction of computer science work in the development of the presented to it. These rules are
has been the development of fifth generation computer. One the same as a human expert
programs which mimic in some of the alms was to develop would apply, sometimes sub-
way human behaviour. The field systems which have that most consciously. To produce an
generally is called artificial human of qualities — common expert system a specialist called
intelligence; Al for short. Popular sense. The sheer complexity of a knowledge engineer will
science fiction has predicted that problem has been interview an expert to extract
what Al might be achieving for relegated to the next generation those rules from him, so that they
us in the future. Computers with of computer systems! can be built into a computer
intelligence equalling or To understand how an expert program alongside the
surpassing that of humans has system works one has to analyse database.
been the subject of several how experts work. Human It is perhaps a little
popular movies and TV series; experts have a wide knowledge misleading to liken the
remember HAL in 2001* - R2D2 of their subject. But knowledge is knowledge built into an expert
and C3P0 in 'Star Wars' - ORAC just one part of being an expert. system to a database. It is more
of Blake's 7 — KITT in 'Knight For example, there must be a usual to link that knowledge in
Rider? All these are computer good reason for a company to some way to the rules. There are
systems which perform tasks such pay a senior accountant more many different ways of building
as give advice, assist, Inform, than a recently qualified an expert system, but one of the
plan, forecast, and diagnose. graduate accountant. The most common is the rule based
Naturally, computers have not graduate should have a system (RBS). Here rules, very
yet achieved the level of broader and fuller knowledge of much like IF . . . THEN statements
sophistication represented in accountancy than his senior of BASIC form an integral part of
futurist fiction, but computer colleague. The senior man the knowledge base
programs have been developed, certainly will not have the same But to determine which rules
and will continue to be knowledge of up-to-date should apply to a particular
developed, which begin to methods and techniques as the problem, another section of
approach this level of Al. The graduate. But what the senior program has to be added; this is
ability to place human expertise man has over and above the called the inference engine.

33 ZX Computing Monthly * February 1987


EXPERT SYSTEMS rules is important If the field of
expertise can undergo change
— if the rules which govern
decisions can change.
Think of if as an Index of rules; a fashion to provide degrees of For business, expert systems
database in which the rules are uncertainty on various outcomes. have a logical place. For
stored, as well as features of the For example, a stockbroker instance, staff losses, particularly
rules. As in a database, the will make a judgement based at senior levels, can result in
fields in which these features are on knowledge and experience major problems. Place that
stored can be searched, and on whether a share price will expertise on a computer, and
particular records (rules) rise or fall. There is uncertainty in the replacement to the
selected and applied to any the judgement, but an departed member of staff will
problem in question. experienced man should be have a good basis for
The final part of the expert able to pick most likely stocks to continuing from where the
system has to be the human rise or fall. previous Incumbent left off.
interface. Just like dealing with a In the milk producer example, Certain company experts, for
human expert, the expert system if, say, 98% of milk produced example accountants, are
must determine what it is comes from cows, then there will frequently called on to give
expected to achieve (its goal), be a 98% certainty on the rule 'if advice. They may not always be
then ask the right questions to It produces milk then It is a cow' readily accessible to those
provide itself with the information being correct. In expert systems, wanting advice. Place their
to match against its knowlege statistics can be used to expertise Into an expert system.
base. It has to be able to combine the probabilities from That program can be copied
explain its conclusion In a form various rules more precisely than many times over, and distributed
which any non-expert user can the human expert in predicting to the people that need if. This,
understand, and it must be able an outcome. In building the hopefully, doesn't mean that
to explain why It reached a expert system, the expert, in human experts can be replaced
particular conclusion. many cases, must provide a once they have committed all to
certainty factor with each rule. an expert system, just that they
Diagnosis The computer will then will be called on when
calculate very precisely the necessary. After all, common
All that is a lot to ask of a 'dumb' overall probability in coming to sense is still necessary in many
computer, and It is little wonder a decision. Of course, what it still cases.
that expert systems can take lacks is common sense!
thousands of man hours to As I said at the beginning, it Experts at home
develop Most of the early won't be too long before expert
systems were custom built. The systems will become available But what about home users?
earliest system of any on home computers. Arguably, Probably the ordinary man at
significance was called MYCIN. they have arrived already. home is more in need of expert
Developed In 1976, it contained Digital Precision have recently systems that the man in a
over 400 rules and provided announced the Better Basic business environment. Frequently,
advice to doctors on the Expert System' for the QL. At the he doesn't know who to
diagnosis and appropriate time of writing, no review of this approach to get advice. The
antibiotic treatment of blood product has appeared, so there recent surge of Interest in share
bacterial diseases. While this is no confirmation of the ownership with the British
program was a milestone in supplier's claims. But. it appears Telecom, TSB and British Gas
expert system, it also provided that this program will share issues has increased
important lessons in user automatically scan a dramatically the number of
friendliness and in the treatment SuperBASIC program and people in this country owning
of uncertainty. improve Its style and correct shares. Filling in the forms to
Normally, an IF . . . THEN rule mistakes. The human equivalent acquire shares was easy. But
will provide a certain result if a would be the expert how do you dispose of them,
condition is met. In BASIC a line programmer who corrects the and when, and what of other
IF x = 1 THEN LET b=2 efforts of a novice. Because of shares? And where do you go tor
will always cause b to become the complexity of the problem, advice on such matters? I
2 whenever x=1. That is fine in Digital Precision's product wouldn't be surprised if an
mathematics, but what of real deserves to call itself an expert expert system for this application
life. Say you had an expert system — if it works as promised. appears soon — for house
system in which you wanted to purchase and the diagnosis of
determine the species of a farm Shells simple ailments can't be long
animal. Then: away either. There's a market
IF it produces milk THEN it Is a Writing a custom-built expert there for any budding
cow system from scratch does require entrepreneur!
might be one rule. In most cases an enormous amount of effort. To Hopefully, you have reached
this would be correct, but goats simplify matters, there are this point with something of an
could also be milk producers. So programs recently available for understanding of the nature of
V) there is a chance that 'if it business microcomputers which expert systems, and the basics of
produces milk it is not a cow". form the basis of an expert how fhey work. If you want to
s There is some uncertainty in the system. These programs are take that knowledge a bit
UJ rule. Most human experts in called 'shells'. In most shells, you, further, then over the next few
making decisions have to deal the 'expert' provide the rules months I'll be explaining the
in with uncertainty. It is rare that all
the information necessary to
and, perhaps, the certainty
factors. In others, the program
principles in a little more detail
with simple examples for you to

&
make a certain prediction of an learns by example. You provide type in and try on your
CO outcome. Human experts will the outcome and the factors Spectrums and QLs. LISP and
deal with such uncertainty in an which influenced the outcome, PROLOG are the more popular
empirical way. They will, and the system builds rules programming languages of Al.
unconsciously, be applying based upon these observations. but it is surprising what can be
iii probabilities to rules (gained This is very much like the way a achieved in BASIC Well,
a. from experience or knowledge), human expert will have built his hopefully you will be pleasantly
X and combining these
probabilities in some logical
expertise. The ability for an
expert system to be taught new
surprised over the next few
months!

34 ZX Computing Monthly * February 1987


QL news from Brian expansion slots. If you prefer, you game) involving a seek-and-
will be able to buy the keyboard destroy missin against a well-
Beckett by itself for £99.95 which is fitted protected underground
with a special interface slotting computer complex. The game is
into the processor socket and very involved, entertaining and a
T H E LAST ZX microfair of the fully user installable without real challenge. I suspect most
year was held on 13 December dragging out the soldering iron. QL owners have some extra
and you might be forgiven for This just gives you another memory by now (or are about to
thinking that it was the Spectrum peripheral hanging out of the get some as there are more and
that was terminally ill rather than old black box but it's a lovely more bargains about) and
the QL. For a pre-Xmas fair, keyboard and well worth designing games demanding it
hardly anybody was there considering. enables the programmer to
(maybe no one's giving presents Buying the full upgrade kit. create truly involved and highly
this year) and virtually all the however, will turn your very own sophisticated packages.
Spectrum stuff had been seen quantum leap into something If you don't like copy-
before. A very notable exception that looks like an IBM and — protected mlcrodrives that won't
is Prehistoric Adventure (£9.99) with some added Internal let you fully duplicate the master
from Crusader Computing. It's memory — it should even (which, with those ever
an adventure game which takes behave like one save for the fact temperamental microdrives. is a
the hero "Ohio' (remind you of that neither God nor ABC constant worry), Compware has
anybody?) from Stonehenge into Elekronic can make it IBM released Copycat at £10.99. It
a prehistoric world on search of compatible. Remember that will duplicate the master of
the elixir of life. He faces various diehard QL owners will soon be many old QL favourites and Is
pitfalls and dangers including faced with hordes of boring sold under the strict condition
loads of unfriendly dinosaurs. It's people bragging about their that it will not be used for any
a very good and well designed new Amstrad PCs and from what illegal purpose (so behave
game and you get a free I have seen so far this upgrade yourself).
dinosaur poster that's very nicely kit should give plenty of scope If your Ql has at least an extra
done and — If you find the for putting them in their place. 256K RAM (and you have a
going too tough — you can When the kit becomes available. spare £25 left over from
send off for a hint sheet. I will report in greater detail. Christmas), get Taskmaster from
Sector Software. It's a
multitasking program which
enables you (with sufficient RAM)
to run all four Psion programs at
the same time. The program
contains a facility for backing
up, copying and ediling files
and a calculator which enables
the user to enter results directly
into the particular program from
which it was called. The idea is
Apart from this and a couple Raider II to set the QL separate tasks, eg.
of other Spectrum games, the file sorting and printer driving,
show pretty much belonged to I would like to send my special which the machine carries out
the poor old QL. The big news thanks to the long suffering staff at the same time. It Is also
for you quantum leapers out of Microdeal who were forced to possible to use Superbasic while
there is up-coming keyboards for endure my nine-year-old multitasking with Taskmaster. It is
those sick and tired of trying to endlessly playing the firm's new a very sophisticated package
do serious work on your original QL game Stone Raider II at the and as long as you have
black box. The Schdn QL company's Microfair stand. This enough memory it's possible to
keyboard due for release is the game Microdeal promised use it to multitask up to nine
around Christmas wilt sell at us for Christmas and (as my son programs at one time. If you use
£54.95 and just slots in to can testify) it's a good one with your QL and Psion packages for
replace Sinclair's original. So it's lots of things to block, kill or complex and serious work,
compatible with all existing otherwise frustrate you in your Taskmaster Is an unquestionable
peripherals and the prototype collecting of hexogems. It sells bargain.
that I played with had a good for £19.95 and sadly it looks to
professional feel to it. Apart from be the last QL game from
the function keys (which are in Microdeal unless somebody
Liberator
red), the replacement board is comes up with a real winner. It's I also picked up a Liberator (£60)
in good-old-QL-matching basic also likely to be Microdeal's last Superbasic compiler from
black and the overall result is a ZX Microfair since, like Liberation Software which Is
QL that takes on an Amstrad-like everybody else's, their stand aiming to take on Supercharge
appearance. wasn't very busy this time around in a big way. A factor of eight Is
But for those of you who want and the QL is not longer a described as "typical" for the
to fool your friends into thinking profitable area of the games speed-up in run-times for
you've tossed the old QL out and market. programs compiled with
bought something in the IBM Another good new QL game Liberator, and with large
price range, those devilishly is Tank Busters (£14.95) from programs factors of up to 50 are
clever West Germans at ABC Stellasoft. The object is to claimed. It's a well-designed
Elektronic are preparing to recapture the island of Stanley package with a good manual
release a QL upgrade kit from the invading forces of one and the program has an
consisting of a fully separate General "Galtlhairy" in a series assembler inierface to support
IBM-format. XT-style. 83-key of tank battles. As tank Superbasic extensions,
keyboard and a box for the commander you track and procedures and functions written
main board. The kit will sell at destroy the enemy by means of in assembly language. If
£210 and will be available in the a sophisticated radar and an you have an unextended QL.
UK from Digital Precision. For Intelligent gunsight. The graphics large programs may be
your £210, you'll get the and weapons simulation look compiled in stages. I don't have
keyboard, the mainboard box. good. Omega (£14.95) is a 3D enough space to report
two 3.5 disc drives (or one 3.5 arcade adventure coming on Liberator's other features this
and one hard disc drive), a two mlcrodrives (your QL needs month but I will report more next
genuine on-off switch and two some extra memory to run the time.

35 ZX Computing Monthly * February 1987


A BACKWARD
Some __ „
utilities Compilers
only show ^ G R A P H I C One of the great temptations for
the BASIC programmer is the
their true A D V < = n TUftC? idea that a BASIC Compiler
could give him some of the
colours after advantages of machine code
RCrATOr^ i without the hassle of learning it.
a like many others, I tried it — and
it didn't come off. At the time
when I was interested there were
long period really, I think, only two such
utilities under consideration — a
of use. "floating point" compiler by
SOFTEKpnd MCODER 2, by PSS.
Alan Davis The Softek program was rather
more versatile, but realy offered
reflects only a small improvement in
speed compared with BASIC
on the and so I opted for MCODER,
which only handled integers but
strengths offered a very considerable
advance in speed of execution,
and Frankly, it proved more trouble
than it was worth, and I never
weaknesses did write a complete program of
any kind using it. The utility itself
of some does its job excellently — but
since the number of BASIC
established commands it can handle is
limited, you really have to write
products. your program specifically with
"•"he world of computing — as in the long term (some have the compiler's limitations
we all know — is a continually become nearly as valuable as constantly in mind. Generally, I
changing one. Hardly a month my right arm, whereas others found that this meant writing
goes by without the languish in a corner, unused very inefficiently. Memory was
appearance on the software and gathering dust). rapidly gobbled up which —
scene of several new utility Just how useful this exercise coupled with the memory
programs of one kind or another might be depends of course on occupied by the compiler itself
— and most of these are the context. So let me say at the — precluded the writing of a
reveiwed pretty thoroughly in outset that virtually all my own really large, full scale program
magazines like ZXC In this way use of the Spectrum falls into and greatly limited the scope of
we're all kept up to date with one of three categories: what could be done. On the
new utilities, and get a good whole, I'd say that you'd be
idea of how useful to us they're (1) Adventure games much better spending your
likely to be. Yet in some ways the (2) Word-processing money on a decent book on
reviewer's situation is artificial. (3) Scientific work, mainly machine code.
Because of the pressure of copy involving statistical
deadlines, and the sometimes computations. Graphics
inevitable delays in the arrival of
review samples, a reviewer may This does mean that if your My other "golden oldie" Is
have only a few days to assess a interest lies mainly in programs Melbourne Draw, and it's still the
program before writing his like, say, the Argus "Arcade only commercial graphics utility
comments on it. Creator" then I can't help Also I that I use. Of course there are
Fortunately ZXC is blessed tend to find my programming much more sophisticated screen
with a group ot excellent needs are often best served by designers around these days —
reviewers whose advice is writing specifically designed the Rainbird "Art Studio" for
indispensible — but the fact utilities myself for whatever job is example makes Melbourne
remains that in many cases in hand. That way you do get Draw look very primitive indeed.
some of the strengths (and exactly what you want, rather But in fact, all I ever needed
weaknesses) of a utility program than someone else's idea of from this sort of utility (and my
only emerge after extended use what you MIGHT want. Even so, requirements haven't changed)
over a long period of time. And that still leaves me with quite a was a sketchpad for trying out
so I'd like to try an experiment in few commercial utilities to ideas on-screen, and for
this article, of glancing back comment on. So let's start by designing the occasional
over several years of Spectrum looking at a couple of golden loading screen. For this, the
programming to see just how oldies. One has become program is excellent. It offers full
some of the utilities I've indispensible, and the other control of the cursor in 8
personally used have performed proved a waste of time. directions, a fill routine, two

36 ZX Computing Monthly * February 1987


scales of screen magnification,
and — Importantly — a This is an example of text printed vtth the CUALITAS
switchable character square "piazza" font. Four other fonts are available. as u e l t as a font
grid which enables you to editor for designing particular characters or a vhole new s?cf.
anticipate and solve attribute
problems in your finished T h i s is a n e x a m p l e o f t e x t p r i n t e d w i t h t h e QUAL1TAS
design. "clarion" font. Note t h a t t h i s is a proportional font which
Much of its appeal lies in the gives a m u c h more a t t r a c t i v e a p p e a r a n c e t o y o u r page.
fact that It's so very simple to
use and so easy to customise if Two example* of copy using Qualltas
you want to extend its facilities
for some special purpose. No days. I've written one full-length copy was suitable only tor your
gimmicks, no frills — just a good pure text adventure with it, own use. Now that I have a full
solid workhorse that I've grown to which was great fun to do; but size printer, however, Tasword has
depend upon. since my adventuring Interests joined the elite group of
are inextricably concerned with indispensiblesl I've taken a look
Assemblers developing interactive recently at both "The Writer"
characters, the Quill doesn't and "The Last Word" (two of its
One utility which no really give me enough scope for rivals) but I see no reason to
programmer can do without is of what I want to do. Please note change. Although these two offer
course an assembler. At the time that I'm not knocking it; faced more extensive facilities, I don't
when I was looking for one, with superb Quilled programs personally need the extras
HISOFT'S "DEVPAC was almost like the St. Bride's "Snow Queen" ("mailmerge", for example) —
universally acknowledged as the (which gets my vote for the most and I found both of them,
best, and I've found it an delightful adventure of 1986) I'd particularly "The Writer", rather
immensely powerful tool which I be foolish to do so. It's just a cumbersome to use. Perhaps I've
use more than any other case of horses for courses. just used Tasword for too long.
program. The package contains Incentive's Graphic Adventure
two microdrive compatible Creator is perhaps a classic Qualitas
programs — an assembler and example of why an article like
disassembler/monitor which can this may be of value — and I'll But this brings me to my most
be loaded in separately The be very glad to have some recently acquired utility — which
latter contains a debugging feedback from readers on this. alone gives me an excellent
facility which enables you to When I first saw this program on reason for sticking with Tasword.
single-step through a machine release. I was overwhelmed by In October's ZX Carol Brooksbank
code program, with the contents the sheer power of it — and I still reviewed "QUALITAS" a program
ot registers displayed and am. But there's a snag; a snag, from Seven Stars Publishing
continually updated on screen moreover, that only becomes which is designed for use with
- incredibly useful when you're apparent after an extended Tasword to produce a variety of
trying lo hunt down that period of trying to write a full near-letter-quality fonts on a dot
inlractable bug which has length adventure with it. The matrix printer. Now I was already
eluded you. I've now used this problem is memory, or rather , quite content with the NLQ of my
package so much that handling lack of it. Amstrad DMP 2000, but a facility
it is almost second nature, and After some considerable time to switch fonts, and even design
I'm therefore unlikely to change and thought, I developed an them, sounded pretty useful. So I
to another — but I do have adventure plot of some parted with my 7-95, installed
certain reservations about its complexity which seemed QUALITAS (which is very simple)
user-friendliness. The manual is admirably suited to the GAG and proceeded to boggle at
very comprehensive but can be and set to work. A fortnight later the results. Frankly, if someone
somewhat confusing if you're just I abandoned the attempt in had told me that this kind of
making a start on machine despair. I had a few not- quality was possible on a cheap
code (as I was when I bought it). particularly-complicated dot matrix printer, I'd have
Editing facilities are extensive, graphics, about 15 locations, a laughed at them. Gone for ever
but rather cumbersome, and if fully operational beginning to is that rather mechanical,
does take some time to become the adventure . . . and only 5K "computerised" appearance
used to the system. This left to finish it! Obviously this was which my friends complain of in
complexity may well slow down a hopeless situation. It could be my letters. The price you pay for
the progress of a beginner, and solved of course by writing the the beauty of the result is a
if I were starting again from game in several separate rather slower printing speed —
scralch, I think I'd be taking a modules, but I seemed to be but who cares? If you have a dot
close look at systems with more able to get so little into a single matrix printer and Tasword, then
friendly editing facilities like module that the whole thing was rest assured that this is one utility
Seven Stars' "GENER 80/Moder likely to become impossibly whose purchase you certainly
80" cumbersome. This must, I think, will not regret! (But do check
put a very big question mark with Seven Stars on printer
Adventure Makers against the suitability of the GAC compatibility first, at 34 Squirrel
Rise, Marlow, Bucks, SL7 3PN).
for anyone who wants to publish
I doubt if there's an adventure- adventures as opposed to Well, there you are. A motley
writer in the land who hasn't had writing them merely for fun, and bunch of utilities, some of which
a dabble with either "The Quill", I'll be very interested to hear have mode a pretty major
or the more recent 'Graphics how others have fared with the impact on my programming life,
Adventure Creator" — or both! program. one way or another. It you've
A great deal of praise has been had lengthy experience of
heaped upon the Quill over the Word Processors others, or if you disagree with my
years, even though some of the assessments of any of these, then
adventures written with it have So much, then for adventure why not drop Bryan, the editor, a
been disappointing, and this is utilities. What about word- line and let us all know? There
quite right. If you can't write a processing? Well, even when my must be a great deal of this kind

S Dod traditional adventure with


e Quill, then probably you
can't write a good adventure,
only printer was a Seikosha GP
50 (which is a sort of dot matrix
equivalent of the old ZX printer),
of experience among the
readers of ZXC and here's an
excellent way of pooling it
full stop! However, I must admit I found Tasword 2 extremely together so that we can all
that it isn't a program I use these useful, even though the final benefit. What do you think?

37 ZX Computing Monthly * February 1987


Ml
• A . /trf*
ORBIX THE
BREAKTHRU
US Gold TERRORBALL
£8.99 Streetwise
£8.95
The first of the US Gold coin-op A bouncing laser firing ball
conversions is Dalo East's called Orbix is the hero of the
Breoklhru starring an acrobatic debut game from Domark's
van! new arcade game label.
This van is described as the Orblx bounces and blasts
world's mosl sophisticated his way through a four way
armed vehicle that must drive scrolling landscape in search
400 miles across hostile territory of the components of a lost
to retrieve your county's revo- spacecraft, rebuild it, find it's
lutionary new fighter and re- crew and let them escape!
store world peace. The ship crashed on Horca,
Ahead of you lies four stages a planet infested with insecli-
in which you must run the vores and droids that now gang
gauntlet of (lame throwers, hel- up on you.
icopters. tanks; jeeps, mines and Their touch drains your
enemy troops that can take out (more leaping) while battling energy but this can be re-
your sophisticated vehicle with with missile firing trucks, then placed by chomping their re-
a single shot! across a prairie through a city mains once you've fried them
The first stage is a charge until finally you breakthru to the with your laser.

IjuuI)
through the mountains hurdling airfield when you can run for a As the game continues your
rockfalls In a single leap (Yes plane and a final getaway. quest is constantly interrupted
this van can jump!). Next you've A jumping, shooting, by Ihe need to replenish your
got to cross a broken bridge leaping arcade hit. energy which has been
drained by almost constant
attack.
Orbix is also supplied with a
is one of several areas where extremely hard to avoid once series of maps that are almost
Prodigy Is rather original. It near you, and instead of dimin-
PRODIGY
Electric Dreams
combines various gameplay
elements to create a unique
ishing your energy, collision
sends you back to the nearest
entirely unused since the on
screen scanners guide you
around the screen.
£7.99 "feel". teleporter or the start, whichever
is nearest. This is unbelievably I found the controls irritating
The graphics are nicely (rotate lefl'right and forward)
defined and detailed in the 3D frustrating, and matters are not
helped by the awkward (and and would preler a more direct
"Prodigy is a game which Knight Lore style; furthermore, system particularly to steer
demands compassion" claims they scroll rather than flick not redeflnable) key combina-
tion. If you persevere then this through the iondscape of fac-
the packaging. Compassion? between locations, remarkably tories. palm trees, towers and
Yes, "(raid so, not just shooting smoolhly. There are four distinc- game has numerous nice feat-
ures and puzzles to offer — but bubbling holes. Despite this, it's
things. You are Solo a synthetic tive zones (fire, vegetation, tech- a good debut by a new label
man, and as well as escaping nical and ice), each with its for most people il is initially loo
offputting. and a new programmer.
from the Machine Sorcerers own graphics. A nice louch is
nightmare maze (packed full ot the way Solo slides In the ice
genetic mutants), you must zone. The moving part of the
guide the human baby Nejo to screen Is irritatingly small,
safety. Walk slowly enough for it however. Sound is certainly
to follow, wash it in the showers unmissable: loud noises which
you'll find, give tt milk by are astonishingly coming from
zapping the chef- All together Speclrum. if not tuneful.
now: aaaahlibleuch! (delete as Prodigy is marred, for me. by
applicable). This subjeci matter its difficulty. The mutants are
W.A.R. is saved from the avoiding walls thai will destroy
W.A.R. obscurity ol being yet another
shoot "em up by the inclusion of TERRA you.
Built into the landscape are
Martech
£7.95
a separate advanced version
on the other side of the tape COGNITA squares or zones thai have a
varying effect on you. Some
and the ability to trade hard Code Masters speed you up or slow you down,
Fast action games seem to be earned points to improve your £1.99 give you extra lives and lop up
making a comeback led, un- ship your fuel tanks but some are
doubtedly by the long awaited The Captains version, as it's This is one of the first batch of time shifts that relurn you to
conversion of Hewsons Uridium. known, is fought over o giant games from a new budget soft- screen one. Irritating,
In it's original C64 format, circuit board that is protected ware tiouse — Code Masters particularly If you've reached
WA R. was litlle more than an by incredibly violent alien The company was created screen 98!
Uridium clone but it has ships In this advanced test your by the Darlings who made their The action is fast and furious
changed dramatically during slandard ship won't last very name through budget kings with the sound of the laser
it's conversion. long. Maslertronlc and are now sounding like a gunshot from a
The action takes place in a By trading points you can going it alone. spaghetti western.
tiny window with the rest of the actually add to your fire power This game is aclually written My only complaint Is that
screen there to add atmos- and buy extra lasers, more by Non Terraqueous author you must select your joystick or
phere. weapons and even a bonus Stephen Curtis and is a fasl keyboard option before every
In this window your laser ship. This might just save you. It action shoot-em-up featuring game. Pressing the lire button
firing fighter must blast the saved the game. great graphics, addictive returns you to keyboard mode!
assembled aliens and destroy action and amazing sound.
a scrolling spaceship back- The plot is tenuous* involving
ground. a robot's revenge on a team of
As you clear these levels you mining engineers who must
advance along the tubular
space station illustrated on the
game's cover. GOOD escape a hostile landscape
while being attacked by hordes
of aliens.
During the game you musl
fly your ship through a hundred
screens of alien landscapes

^ .. ^ L-V ,V ^ w I

IpVf K > \ n B m I I I !
t
jli Jt g

™ I Mi 3 ^JIP; s pipi
> « L-v i
f§ m
jtJLJL.
Vl * ' VMIUMMI'

I I K B
r 11 II v' - •

W A.
H H N H I
1$: Wk
,..J E l L.-t.. L.L..
1,1)13
m m MfSS;
decidedly easier than using a M i t
180
Mastertronlc — MAD range
joystick. A scoreboard on the
lefl ol Ihe b.oard chalks up your ^ • B Q J D D u H u i l i B M u f l l B i l
scores as each arrow thuds
£2.99 (hopefully) into the board.
Should you achieve a maxi-
Up fo the oche comes yet mum 180, the computer greets
another darts game. Through lo you a rousing rendition of 'one
the quarter finals of Ihe cham- hundred ana eighty' although
pionship knockout, you go into speech synthesis being what il
the draw with such giants of the Is on the Spectrum, It comes
arrows as Delboy Des, Sureshot out as more of a hissed
Sidney (a real gas). Belly Bill "nuh-nuh-nuh-neh-neh".
and Limp Wrist Larry. Then it's time to sit back,
The game is 501 straight in. slurp your beer and light
double out, played over the another fag as your opponenl
best ol three legs although ihe has his three shots. The scene
computer sometimes cuts this lo switches lo a sideways view ol
one leg for no obvious reason the pub as Mega Mick or who-
that I can see save that It is ever takes his ga The blurb says
always the computer that has to watch out lor animated
happened to win that particu- action in the background bul
lar leg. You always get to throw all this seems to consist of is the
lirst, a decided tactical advan- barmaid sliding a pint along
tage and one thai is crucial in the bar to a customer and a
the final against Jammy Jim small dog relieving itself
who throws nine dart finishes as against a chair leg.
regular as clockwork (seven Other options in the game
ireble twenlies. treble nineteen include a practice facility in a
and double twelve). version of round the clock and
When it is your turn to throw, the chance lo play against a
a large hand appears in front fellow human should the pubs
of the board, shaking so much, be shut. 180 is not one ol
you can see why darls players Masterlronic's better offerings
have lo keep knocking back and I found it slightly surprising
the pints. Movement round the that they decided to bring it out
screen is diagonal to put you on their more expensive MAD
even lurlher off your aim. range Like most of my darts, 180
Keyboard operation is is way off target.
#/
KING'S KEEP
Firebird
£1.99

The country is ruled by a tyrant.


The peasants know it. The mer-
chants know it. What makes the
fact that you know it even
harder to bear is that King
Harold the Heartless, as he has
become known, is your lather.
Suspecting that your loyalties
lie with the people ralher than
him, he has had you impris-
oned in the depths of his castle
Can you escape and help to
overthrow your father the
despot or will you suffer his
domination like the rest ot the
populace?
Like many arcade adven-
tures being released at the
moment. King's Keep has heavy
platform game overtones Dot-
ted around the castle are
various bits ol furniture and
brick wall that can. by means
of a prodigious leap, be
reached thus allowing you
access to other parts of the
castle. There is also a fair
amount of objects to be
collected on your travels and
people to talk ta blocking the entrance to an- sal to obey results In an instant
Pressing the "5" key brings up other part of the castle it would game over message.
a list of additional commands seem prudent to try and find it The game, if nothing too
available to you. These range In the hope that he will let you original or stunning lo look at is
from talking to someone giving pass, Certain areas of the castle quite playable and if you enjoy
them something or manipulat- are marked with an 'F'. This the collect-the-objects-and-
ing a previously acquired item.
For example the crazy old man
has lost his necklace. As he is.
means that you are forbidden
to enter them until a certain task
has been accomplished. Refu-
solve-the-puzzles type ol game,
then King's Keep is not bad
value tor money. GGGI)
/ormitf.i
D O C T O R U H f l T !

After a heavy intergalactlc


party where the supplies of
Neuro Cardial cocktails have
taken a bit of a battering, the
lour Doctors, What, When, Why
and Where ore all suffering
from various degrees of a hang-
over. What is even worse is that
they all lost in four different
places deep within the space
time continuum. Can they sort

£ things out using their Trydis? This


is beginning to sound like a
spoof on a well known TV char-
acter. Who?' you ask. Correct',
everyone replies
The four Doctors have got to
try and reach the Jelly Baby ot
Infinite Wisdom and Ultimate
Knowledge who is stuck away
in ihe Tower of Darabur some-
where. The first problem is to try
and gel the Doctors reassem-
s< bled in one spot and quite
tricky this proves lo be. Why is in
What's laboratory ond is the
only Doctor with access to a key
0 to allow him to enter and use
the Trydis. Each Doctor can
carry and use up to Ihree
articles at any given time There
is a row of buttons in each Trydis major source of energy loss. the point ot all this? WHERE is
Pressing a button tele ports you Each ot Ihe Doctors can be their dictionary so that they can
lo a specific location. summoned as and when you learn how to spell 'transcen-
Each Doctor has only a want them. But be warned, tt dental' properly? WHEN will CRL

o limited amount ot strength,


depicted by a jelly baby being
nibbled away in Ihe bottom
one of the Doctors dies, your
quest Is effectively over so abort
that particular game and start
realise that they can't get away
with releasing poor quality, lull
price games? And WHY didn't
right hand corner ot the screen. again. they consign this load of
a.
v> Collisions with the nasiies,
including a Dalek. are the
As a game. Doctor What
raises several questions: WHAT is
rubbish to that great Jelly Baby
in the Sky a long time ago?
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
A&B Computing X24r60" £18.00 • L2&W £20.80 •
Computer Gamer £16-90" £13.00 • LZhW £17.20 •
Your Commodore tl&^CT £13.00 • £24r5tf £17.20 •
ZX Computing Monthly ix&tfr £12.00 • £14.40 •
Citizens' Band LX&W £13.52 • £17.60 •
Ham Radio Today £14.40 • m^cr £16.80 •
Electronics Digest £-Ur30 £ 8.30 • £14r0O- £11.20 •
£18rt0* £14.40 • £22-50" £18.00 •
Video Today £13.52 • m^tr £16.80 •
Which Video? £16-00" £13.52 • p^etr £16.80 •
Photography £12.00 OA^tr £16.00 •
Photoplay £17-50" £14.32 • £24-50" £17.20 •
Clocks £24.64 • £28.00 •
Woodworker m^cr £13.52 • iix^r £16.80 •
Popular Crafts iM^xr £14.32 • 124^50" £17.20 •
Winemaker & Brewer £13rW £10.96 • iXhotr £13.60 •
Aeromodeller £20.08 • £2^60" £23.20 •
Military Modelling n&tfr £13.00 • m^o- £16.80 •
Model Boats U&rW £13.00 • £16.00 •
Radio Control Model Cars £14.00 • £24-50" £17.20 •
Model Engineer £2Jr4tr £22.00 • £32-50" £26.00 •
Radio Control Boat Modeller IJ&tfr £ 7.50 • £14-50" £ 9.20 •
RC M & E £1&r6T £12.00 • £20-00" £16.00 •
Radio Control Scale Aircraft
Quarterly tJ&KT £ 8.00 • £14r50 £ 9.20 •
Radio Modeller £16r+0~ £13.00 • £16.00 •
Sea Classic International UOrae- £ 9.00 • £12r50 £10.00 •
Scale Models International £13.00 • £2&00 £16.00 •
Your Model Railway Lx&m' £12.00 • £2&r60* £20.00 •
(Offer ends 30th April 1987)
Please commence my subscriptions) with the issue,
I enclose my cheque/postal order for £ made payable to Argus Specialist Publications Ltd
or debit i from my Access/Barclaycard No I I I I I I I I I II 1 1 I I I I
valid from to Signature

Name . .
Address

Send this form w i t h your remittance to: Subscriptions Savings Offer (S.087)
ISFOSETLTD.. Times House. /'9 The Mar louts. Heme! Hempstead. Herts. HPI IBB.
uw
Part two ot a menu
driven wordprocessor SPECWORD
tor both 48 and 128
Spectrums by Stuart
Nichols.
48/128
• n last months article you

Listing 1 received the Basic program.


Now it's time to begin the
machine code section.
Using the HEXLOADER/
1 REM **•*•*•#**•*••* HEXDUMP dual purpose program
2 REN •• HCXLOADER •> enter the machine code as
3 REM ***»*•**<•*•»»*
4 REN HEXDUMP LIST 2.
9 PAPER •*! INK 0: CIS t PRINT AT 7,7|'l. HEXLOADER'S PRINT AT 9,7l'2. MCHOunP Remember to reset ramtop to
-(AT t9,2l*Pla»aa MlfCt option I or 2"
* LET **-IMKEY«t IF i0<>'f AND lt<>'2> THEN GO TO 6 start address-1 before running
7 IF a»-*2* THCN 00 TO 1000 this hexioader (ie after clear
10 DEF FN all"INT (y/t6) 33535 as a direct command for
70 DEF FN btl-y-FN , l l i u
30 DEF FN cll-INT (•/256I list 2).
MF FN d(l-«-FN c(>»796 The last byte in each line is
90 DEF FN •tlalMT <t/296>
60 DCF FN «(l-t-FN r l l f T I i the checksum byte, this being
70 DEF FN 9(a»,b("C0DC .»•(b t-48-7» (CODE a*ib>>97> the sum of the previous 8 bytes
80 DEF FN h(a*)*l6«FN 9 i«t, I I >FN modulo 256. The code should be
ve DEF FN c»(>-CH(*» CFN i()He"?»ltN HDflXCHM (FN b ()••!••?» (FN b(>>9)>
100 PAPER 7: INK 0t CLS entered one LINE at a time as a
I 10 LET r»--0- block of 18 characters (8 bytes +
120 PRINT AT 11,71 FLASH I I'REM SET CAPS LOCK'jAT 13,31"HAVE VOU CLEARED MEHORr
checksum) WITH NO SPACES
130 INPUT 'Start addraaa (DECIMAL) *ladr BETWEEN THE CHARACTERS. To end
135 LET ba9'adr the Hexioader program enter ZZ
140 PAPER 7: INK 0: CLS
190 CLS t LET i-adr after the checksum byte. This
160 PRINT « can be done after any line in
180 INPUT >8 bytaa • CM*. Mbl
190 IF b0-"' THCN 00 TO 180 the dump and a printout of the
200 IF b^-'ZZ' THEN OO TO 450 number of bytes entered will be
210 LET i l ' i t r given (allowing you to save the
270 LET la'LEN b»: IF INT lla/2)*20la THEN PRINT O ' dd no. of chra. «|J GO TO
41« block 'so far") and the last
230 IF la-I8 THEN OO TO 250 address, you will then be able to
240 IF b*(|*-t TO l O ' Z Z ' THEN PRINT 'No • ZZ 1 urklr »U 00 TO 410
290 FOR a-l TO la-2: IF ft»(a)<'0" OR b»(a>>*F- THEN PRINT -Invalid chr. *): GO continue entering code from
TO 410 where you left off
260 IF b«(al«,A- AND b»(«t>"9* THEN PRINT 'Invalid chr. 't: 00 TO 410
270 NEXT a The HEXLOADER program will
280 LET <-0 error trap any incorrect line
290 FOR hoi TO 6
300 LET a*-b«< TO 2)t LET b*-b«<3 TO > inputs and prompt you to re
310 IF t)»«'ZZ* THEN LET k»9: LET r»«b»: LET b«*a«: 00 TO 360 enter wrongly keyed in lines.
370 PRINT a*|* *1 SAVE this block of code as
330 LET p»FN h«tl
340 LET i> a*p " c o d e r CODE 33536,9407
390 POKE adr,p: LET adr-adr+1 Next month's article contains
360 NEXT k
370 LET y»FN d(tt PRINT - | FN c t l l l V l t t the final part of the Machine
360 LET a»-b» Code and the full operating
3"»0 IF y-FN hta*t THEN 0 0 TO 430
400 PRINT 'Chackaui* "I manual for Specword.
410 PRINT 'error -ra ant BEEP .25,5: BEEP .5,2: LET adr-ml
470 GO TO 160
430 BEEP .1,20

0
440 IF r0O'ZZ' THEN 00 TO 190
430 PRINT •PROGRAM TERN1 HATED"
460 PRINT "Addraa* atari • 'Iba? Listing 2
z
470 PRINT -Addraaa and - Madr-1
480 PRINT "Lanqth of coda • *|adr-ba9
490 STOP
z x s p it c l r u m HEXDUMP
SPECWt DRD 4 8 / M 2 8 K L I S T 2
5 900 REM
910 REM
33336
33344
C 3 97 8A C3 0A BA
8C C3 D4 8C C 3 0A
C3
8A
7F
C3
ED
C9
920 REM l l l l l l l l l l l l l l l l l l l l l l 33332 9 7 84 C3 13 8 3 C3 21
2
<
930 REM •« HEXOUNPC ' WCXSUH «»
940 REM t t l t t t H t l H H H f t H K
33360
33368
F 3 21 0 0 8 0 1 I 0 1
0 0 01 3 6 81 ED B0
80
21
03
01
01
CF
27
F7
950 REM 33376 81 36 C 3 1 1 3F 0 3 23 73 E3
1000 PAPER 7: INK 0: CLS t LET p-0 33384 2 3 72 3E 60 ED 4 7 ED 3E D2
et 1010 INPUT "(S)craan OR IPIrlntlr ? "Iq» 33392 21 6C 8 3 36 0 0 FB C9 F3 FD

6
' J i 0 g E3 D3 6 3 F 3 3A 0 8 4F
1020 IF q»-*P' OR a»-*p' THEN LET pal: 00 TO 1040 sc 61
1030 IF q«(>'S- AND qVO'a* THCN SEEP .9,2: 00 TO 1010 33608
33616
FD CB 01 6E 2 8 17
01 AE 21 A2 8 2 ED
FD
5B
CB
6C
36
A8
1040 INPUT -Froa addrtt* < DEC1MAL1 'l»t
O
33624 8 3 7B FE 4 0 2 8 0 7 13 19 97
1050 INPUT 'To addraaa (DECIMAL) 'land 33632 ED 3 3 6C 8 3 71 F 1 CI Dl 23
1060 PAPER 7: INK 0: CLS 33640 E l C3 3 8 0 0 0 0 0 0 F3 3E 00
et 1070 FOR *-at TO and STEP 0
1090 LET y-FN Cflt IF p THCN LPRINT x|• "It OO TO 1100
33648
33636
3F ED 4 7 ED 3 6 FB
2 0 C0 21 C0 8 3 01
CV
31
1 1
00
OB
76
a. 1069 PRINT «|* • 33664 ED B0 21 9F 8 3 1 1 00 C0 B1
1100 LET <-0 33672 01 I F 0 0 ED B0 FD CB 30 B3
1110 FOR 1-0 TO 7 33680 9E 21 91 8 2 34 3D 36 00 B9
1120 IF *»*>and THEN LET 1-8: OO TO 1150 33669 13 01 I F 0 0 ED B0 C9 21 BA
2 1130 LET y-PEEK taaal; LCT t-t»y
1140 IF p THEN LPRINT FN c*lll* 'It GO TO 1150
33696
33704
33712
C0 4F C0 3F C0 3F
C0 0 0 0 0 0 0 0 0 0 0
F 8 00 00 0 0 00 00
C0
00
0F
30
00
07
ID
ce

1149 PRINT FN c«ll|' "I 33770 0 3 00 00 « 0 00 00 00 00 03
1150 NEXT I 33728 0 0 0D 0D 0D 0 0 0D 0D 0D 68
1159 LET y-FN fI) 33736 0D 0 D 0D 0D 0 0 0D 00 00 68
1160 IF p THEN LPRINT 1*- 'IFN c«tl|t 00 TO 1170 33744 0 0 0D F F 6 6 7 2 6 3 64 FF B9
1169 PRINT - JFN C0III 33732 FF FF F F FF FF FF 0D 0D 14

o 1170 IF >«>>and THEN 00 TO 1210


1160 IF p THEN LPRINT : 00 TO 1200
1190 PRINT
33760
33768
F F F F D4 E3 F 8 F4
EE E4 FF FF 0 0 0D
FF
0D
C3
0D
67
04
III 1200 NEXT >
33776
33784
FF D4 0F F F FF F F
F F FF F F D9 1 B 2D
F4
01
12
FF
E3
IE
Q. 1210 !F p THEN LPRINT -ZZ't STOP 33792 F 9 1 B 2D 0 0 F F CV 1 B 43 69

CO 1770 PRINT -ZZ-

42 ZX Computing Monthly * February 1987


UIIA
33000 FF FF E9 IB 46 FF FF CF 13 34816 21 00 00 22 0C C0 22 0E 3F 33832 SB 0E C0 19 23 22 79 8C SC
33808 IB 47 F F FF EF IB 48 FF B1 34824 C0 2A 04 C0 2 3 22 04 C0 B7 33840 3E 01 32 78 8C CD SB BS 25
33816 FF 00 IB 3 3 00 FF F0 IB 47 34832 22 06 C0 CO 91 89 CD 3B F7 33848 2A 06 C0 ED 4B 79 BC 78 AS
33824 FF C7 IB 33 01 FF 87 34840 89 C9 2A 04 C0 7E FE 0D C9 33836 B1 28 03 3E 00 ED B1 2B F2
34 FF
33832 34 FF FF CB 8E 34049 28 IF 23 22 04 C0 CD 71 BE 33864 22 04 C0 ED SB 06 C0 A7 9B
E7 IB IB 3 7
33840 E8 IB 37 00 34836 89 3A 0E C0 FE IC 20 0A 03 33872 ED 32 22 7B BC 6D SB 70 20
01 FF FF CA 23
33848 IB 30 FF FF EA IB 3 2 FF 7F 34864 2A 0C C0 23 22 0C C0 C3 CA 33880 SC ED 32 30 03 CD 83 8 6 D6
33856 I B 31 FF F F EB I B 34872 83 8 7 3C 32 0E C0 C3 BB 94 33888 18 07 ED 33 0C C0 2 2 06 3B
FF CB 1A
33864 F F CC IB 38 FF FF 34880 87 23 7E 3C CB CD SB 88 DC 33896 C0 CD 32 SB C3 83 8 7 FE IS
32 FF 4D
33872 39 FF FF D6 0A FF ID 34888 2A 04 C0 23
22 04 C0 CD C4 33904 77 C2 1C SA 00 00 00 01 60
33880
EC
FF F 6 FF FF FF FF C2 B2 34896 83 86 CD 91
89 CO 3 8 89
Al 33912 03 00 C3 4D SA 2A 06 C0 8D
3388B E2 I B 3 1 30 34904 C3 83 FB 33920 CD 68 96 76 3C C8 CO Al AB
IB 31 8E FF 97 87 2A 00 C0 CD 77
33896 FF F F EE 14 34912 27 33928 CC
FF CE 0E F F DA 89 22 0 0 C0 2A 0 6 ca co 89 3A 78 8C A7 20 14 2A
33936 4»
33904 FF F F FF CD IB 3 3 0 1 FF 3A 34920 77 88 22 06 C0 2A 0 2 C0 03 0C C0 22 7D 9C ED SB 06
62
33912 ED IB 33 00 FF 0 5 IB 34 80 34928 CD 77 8 8 22 02 C0 C9 7E F7
33944 C0 19 23 22 79 8C 3E 01
IF
33920 33 FF F F 2A 6B 34936 33932 32 78 8C CD EB 89 18 90
FF F F F 3 IB 23 FE 0D CB 3E 0D 0 t FF 41 36
33928 BE 2 8 2 3 CB 34944 33960 00 14 00 00 00 00 00 2A
4B 3C 3E 3 9 14 FF ED B 1 C9 2A 04 C0 2B 7F
33968 82
33936 3E 23 3 6 19 34932 4F SC 11 0F 00 19 11 8D
33944
6E 20 0 9 2 3 76 20 0 8 23
A9
34960
7E FE 0D 28 44 CD 9 3 88 DF
33976 SB
23 18 EF CB B9 CD S I 89 18 23 E3 ED SB 4 1 8C 73 23 72 C9 FS 3A FF
33932 34968 33984 OB
CB 7E 29 FB 1 1 06 00 1 9 9C
34976
08 C0 EB A7 ED 3 2 44 4D 2A
33992
BF CB 47 CC C0 8C Fl 01
SA
33960
18 £ 0 CB 7E 28 11
F6 13 83
34984
Dl 6 2 6B 23 ED B0 IB ED 66 36000
BF E3 CS 03 IE 0E F5 CO
SA
33968 23 46 E 1 34 IF D2 00 00 EO 50 CB
00 19 1 8 D 6 23 4E 33 08 C0 2A 04 C0 2B 22 36
36008 41
33976 34992 3A 38 F4 Fl F3 05 03 ED
22 F 0 84 ED 43 84
F2 EO 29 04 C0 2A 02 C0 2B 22 02 FF
36016 DD
33984
33992
3B 04 ee 13 2A 94
F0 03 A3 33000
33008
C0 C9 3A 0E C0 A7 28 07 67
36024
79
FE
CI
0D
ED
C0
39
3E
1C
0A
ED 39
18 D8 00
FB
03
ED 4B F 2 94 23 1A13 BE BC 3D 32 0E C0 C3 SB 8 7 3C 06
3400* 28 0 3 F 6 20 BE 08
20 0B 34 33016
0C C0 2B 22 0C C0 C 3
2A
83 2B 36032
01 BF E3 3E 81 ED 7 9 36
FF
34008 33024 36040 BF CB C7
78 B1 7 0 F 0 01 18
0A 01 FD 87 2B 7E 3C C8 2A 0 0 C0 IE 0F ED 79 3A FF C8
34016 33032 36048 0 3 CD 01
13 1A FE FF 20 C3
DE 62 4D CD 6 8 86 22 00 C0 2A 06 CO
360S6
32 FF BF C9 3E
34024 33040 80 F 6 FF 28
SB ED 3 3 04 C0 0A
C3 BA E6 C0 CD 6 8 8 6 22 06 C0 2A 36064
16 2A IF 93 7E 87
34032 33048
C0 7E 01 00 1 I 84
FA C3 91 04 C0 2B CD 9 3 88 CD 83 29
36072
2A FE C0 02 EE 90 FE IB 4E
34P40 33036
34048 6F SB 10 0 7 1 1 02 16 0B 43 33064 86 CD 3 2 SB CD Al 89 C3 CA
36080
28 16 FE 19 28 IE FE 60 F9
06 70 3 2 4 9 4 7 4 8 54 20 C4 83 8 7 6F 2 6 0 0 2 9 29 29 1A 36088
20 02 3E 91 FE 7F 20 0 2 90
34036 33072 3E 60 D7 7E FE
4D 41 5 2 4 7 4 9 4E 20 33 31 33080 1 1 00 AF 19 EB 21 0 0 40 23 36096 00 28 03 29
34064
34072 43 34 20 21 3F C0 2 2 IF 1A 35088 09 1A 77 13 24 7C E6 07 3A 36104 23 18 09 23 22 IF 8 3 01 FE
34080 83 3E 12 32 ED 9C C9 3F 88 35096 20 F 7 C9 3E AF 32 37 SC 92 3 6 1 12 01 00 C9 01 00 00 C9 21 BS
ED 8C CO 0C DF 67 91 36 25 CD 07 9 1 CD 83
34089 FF 3E I E 3 2 33104 18 0A 21 6 A SC CB 9E 21 93 36120
A7 28 FA
34096 90 22 IF 83 ED 3B 0 8 C0 66 3 3 1 12 6D 91 3 6 24 3E 0 2 CD 01 66 36128 EB 83
FE 08 CA
21 67 91 32
34104 A7 ED 5 2 30 0E 2A I F 83 F2 33120 16 21 00 3 8 0 1 I F 00 11 C0 36136 36 24 SD 8A FE 0F
7E FE 0D CB 70 09 CA 83 8F FE 0B CA CA 84
341 12 01 00 0 0 2B 33128 01 3 8 3 6 4 7 ED B0 CD 74 B4 36144
0A CA DO
34120 03 18 F 8 01 F F F F C9
9 2 CD 4 8
CD
BB
A6
3E
33136 9B CD C6 Aft IB 06 00 00 F4 36132 90 FE
8F FE 39
90 FE 3 8 03
D8
34128 43 9 2 CD 6A 35144 00 00 00 00 00 00 3A 19 53 36160 CA F2 CA FD 8F
B5 CA I C 8A DC CA 69 90 FE 3 5 CA EE
34 136 2A 80 9 2 7C 33132 C0 CD 9B 22 CO SB 8 9 21 IC 36168 FE 30
ED 3B 04 C0 E3 FE 36 CA 82 9 2 FE DC
34144 2A 08 C0 E3 35160 6C 89 11 38 91 01 03 00 F8 36176 47 83 AE 91 FE
34132 A"? ED 3 2 22 13 9 3 E l E3 74 33168 ED B0 C9 21 67 89 1 1 31 D9 36184 37 CA 05 CA 96 AB
31 CA A9
34 160 ED 3B 9 0 9 2 19 2 2 0 8 C0 5D 35176 91 01 03 00 ED B0 C9 30 20 36192 93 FE 86 FE 3 2 EB
34 I 6 8 ED E l ED 4B 13 9 3 0 3 ED 9A 33194 30 30 30 31 30 3 0 30 30 81 36200 CA ED
86 FE 33 CA 3 6 87 13
90 21 7C 80 ED
34 1 - 6 BS
C0
CD 0C 9 0
ED 4B 8 0
2 3 ED 3B 04
6A
33192
33200
31 21 33 91 7E
2B
3C FE
18 F 3
3A 2A
3A
36208
36216
CB
ED
EF
B1
20 18 11 01 08 00
07
34 184 9 2 ED B0 C3 20 03 36 30 77 DA 8A 79 07 00 19
34192 19 8 A AF 32 4 2 9 2 21 79 33208 B8 36224 7E C3 61 64
00 C9 2t 53 91 76 3 0 FE 2F 73 70
34200 01 2 2 40 9 2 2A 3C 9 2 FE 35216 43 36232 7E 39
1 1 20 03 36 39 2B 18 F 3 77 73 64 66 67 SB SD 7F
34208 90 81 0 1 0 0 0 1 ED B0 Dl 33224 CC 36240 12 6F
21 C9 21 5F 91 7E 3C FE 3A 7C 5C 7B 7D FE 6F 20
34216 90 81 01 00 01 3E 19 33232 3A 36248 74
ED 37 20 03 36 30 2B 18 F S 77 21 10 C0 CB C6 2 1 11 C0
34224 B1 7 0 0 3 3E 35240 C2 36236 DE
01 32 4 2 92 IB C9 21 5F 91 7E 3 0 FE 2F CB CE 21 76 91 36 24 C3
34232 1 1 90
9 1 A7 ED 3 2 2 2 40 6A 33248 20 03 36 39 2B 18 F S 77 43 36264 1C 8A FE 69 2 0 12 21 10 70
34240 92 2A A4 33236 C9 2A 04 C0 2B 7E FE 00 6B 36272 C0 CB 86 21 11 C0 CB 86 3C
3C 9 2 ED 3B 4 0 92
34248 19 44
4D 2A 04 C0 A7 EO 2C 33264 28 1A 3A 0E C0 A7 20 09 1A 36280
21 76 91 36 23 C 3 IC 8A EC
34236 42 C3 33272 CD 74 81 8 9 C3 83 36288 DD
44 4D E l ED 5B 3C FD 86 CD E4 FE 71 20 29 CD 9D 91 2A
34264 92 ED
B0 2 1 90 8 1 ED 4B 99 33280 87 3D 32 0E C0 22 04 C0 AA 36296
0C C0 ED 3B 0E C0 19 22 ID
34272 40 92 33288 2B 7E 3C CB 36304 IB
ED B0 3A 4 2 9 2 A7 24 CD 81 89 C9 4D 12 C0 ED SB 14 C0 7A B3
34280 28 B2 33296 CD EB 89 CD 36312 4C
CD 0C 9 0 2 2 04 C0 29 23 22 04 C0 17 CA 1C 8A A7 ED 3 2 DA IC
36320
34288
C3 10 8A F 3 3A 6C 8 3 A7 20 33304 93 86 CD Al 89 CD 3 2 SB SA SA 21 00 00 22 12 C0 CD 6C
34296
28 14 21 A2 8 2 2 3 7E ED 0F 33312 C3 83 87 2A 00 C0 CD 69 EC 36328
8D 91 C 3 1C BA FE 72 28 IF
34304 33320 2A 06 C0 CD 36336 31
4B 6C 8 3 0B ED 4 3 6C 83 64 86 22 00 C0 23
36344
F 0 C3 6 2 SE ED SB 06 C0
34312 16 33328
34320 03 34 3D 2 3 ED B0 FB A7
33336
68 86 22 06 C0 2A 02 C0 C2
36332
2A 04 C0 A7 6D 3 2 63 ED A6
CB FE 0 6 C0 3A 6A 5C EE 7A CD 68 86 22 02 C0 C9 CD 33 SB 12 C0 A7 ED 3 2 30 06 31
33344 36360
34328
08 32 6A 5C 3A 6 0 9 1 EE 26 33332
77 83 CD 13 89 CD 18 83 CB 36368
E l ED SB 12 C0 EB A7 ED 7A
34336 43
01 32 6 D 9 1 76 CD 0 7 91 0C CD 72 90 CD 83 8 6 CD 32 A4 3 2 CD 2 1 86 1 8 10 Dl 7C
34344
16 C 9 21 6 0 3A ED 5B 0E 12 33360
88 CD 83 87 CD 22 86 CD A4
36376
BS 29 0B 2A 06 CO ED SB 20
34332 33368 36384 A7
C0 19 3A 1 1 C0 7 7 C9 21 43
33376 07 91 CD EB 83 A7 2 8 FA 9E 36392
12 C0 19 22 04 C0 C3 13
34360
60 3A ED 5B 0E C0 19 EO D6 33384 CB 7F 20 F6 CD 2F 8 6 FE E0 36400
8A 7C BS C8 6 3 3E 20 CD 93
34368
34376 4B 18 C0 71 C9 2A 0C C0
33 33392 0A 20 03 CD DF SB 18 E4 62 36408
3E 8 7 A7 20 03 El C3
36
2A 04 C0 6 7 9B CD 2B AA
34384 23 2 2 0C CB
CO 71 8 9
23
22 33400 FE 08 20 03 CD 4 0 8C 18 EC 36416
E8 2 1 0E
39 BE 18
22 04 C0 C9 21 DB 21 78 BC 36 0 0 FE 07 3B C0 7E IC CA 39
97 36424
34392
0E C0 7E FE IC 28 0B 34
CO
33408
20 0C 01 00 00 CD 6E 83 EB 36432
3D 8 6 34 2A 04 23 22 2A
34400 22 04 C0 C3 33416
34408 2A 04 C0 23 BA 33424 21 AC 83 36 00 C9 FE 0F 1C 36440 04 C0 C9 21 63 36 23 FD
6B 8 7 CD 3D 83 87 CA 4B 8E 18 1 1 2A 04 C0 BA CD 0 7 9 1 CD EB A7 28 71
34416 8 6 C3 6F 33432 36448
2B 01 FF 0D ED
34424 ?B FF 3E
C0 2B
BD 33440 01 FF FF 3E 00 ED B1 2B 13 36456 FA 21 6 3 91 36 FE 03 6C
34432 B9 2 3 23 C9 2A 0C E9 33448 22 04 C0 C3 EC SD FE 04 24 36464 CA 9F 9 3 21 7A 86 01 34 3A
22 0C C0 2A 2B 22 38 FC CA 03 87 FE 0 3 CA 53 00 ED B1 C2 38 A7 II 33 83
34440 04 C0 29 33436 36472
ED 3B
34448 04 C0 C9 2A 04 C0 C3 33464 90 93 FE 20 30 SC FE 0D ES 36480 0 0 19 7E A7 CA 1C SA C3 71
34436 06 C0 A7 ED 32 E3 1 1 IC BE 35472 20 33 21 10 C0 CB 4 6 20 77 36488 DA 8A 41 61 42 62 43 63 50
34464 00 ED 3 2 38 0 9 2 2 0C C0 6E 33480 0F CD F2 87 CA 6 7 SB 2A 3B 36496 44 64 4 3 63 46 66 47 67 AC
344 72 ED 3 3 0E C0 E l C9 E 1 22 BB 33488 12 C0 CD 21 8E C3 13 8A AE 36504 48 6 8 4 9 69 4A 6A 4B 6B CC
34480 0E C0 21 0 0 0 0 2 2 0C C0 DD 33496 2A 06 C0 CD 77 8 8 7E 3C 76 36312 4C 6C 4 0 6D 4E 6E 4F 6F EC
34498 C9 CD D9 8 6 21 91 8 2 01 2A 33304 3E 0D 28 E3 CD SB 8 8 2A 32 36320 30 70 31 71 32 72 33 73 0C
34496 20 00 ED B1 2 8 2 0 21 91 B9 33312 06 C0 CD 77 88 2B 22 04 E3 36328 34 74 3 5 73 3 6 76 37 77 2C
34304 82 01 2 0 0 0 AF ED B1 20 10 33320 C0 CD 91 99 C3 EC 8D FE El 36336 3 8 78 3 9 79 3A 7A 96 96 A2
34312 13 26 3A 0 1 8 7 77 3E 01 B8 33328 0E CA 0F 8D FE 0C 2 0 06 A4 36344 C2 E2 9A 9A 97 97 93 93 30
34320 CD 9B 22 0 6 0A 76 10 FD ID 33336 CD 84 1C 8A FE 09 48 36332 9C 9C C7 E7 C8 EB C9 E9 48
88 C3
34328 3A 19 C0 CD 9B 22 C 3 IC 7C 33344 20 06 89 C3 IC 8A 96 36360 CA EA CB EB CC EC CD ED DC
CD B1
34336 8A 2A 0E C0 ED 3B 0C C0 96 33332 FE 09 CD 1A B8 C3 3F 36368 CE EE CF EF 00 F 0 86 96 46
20 06
34344 19 ?C A7 28 0 3 E l 18 EE 4E 33360 1C 8A C0 CB 46 20 CB 36376 9D 9D 9F 9F D4 F4 03 F3 0A
34332 7D 32 01 8 7 C9 CD 09 86 2C 33368 23 F3
21
2A
10
0C C0 ED SB 0E 66 36584 06 F6 9 8 98 96 9E 09 F9 0A
34360 21 91 82 01 20 00 ED B1 F3 33376 ED SB 14 C0 7A B3 22 36392 9 9 9 9 FE 63 2 0 29 CO A9 34
C0 19 93
34368 70 DC ?B 3 6 0 0 3E 02 18 BS 33394 28 06 A7 ED 32 CA 16 8F 36600 91 2A 0C C0 ED SB 0E C0 9D
34376 C7 00 00 CD D9 8 6 3C 32 61 33392 Fl CD 3E 87 A7 CA 6 7 BB 06 36608 19 22 14 C0 ED SB 12 C0 29
34384 01 8 7 28 C A 01 20 00 21 BC 33600 CD 4C 86 C3 1C SA FS 2A 27
3 6 6 16 A7 6 0 3 2 DA 0 3 8F 7C BS 83
34392 91 82 ED B1 CA IC 8 7 3A 38 33608 0C C0 ED SB 0E C0 19 ED E8
36624 C 2 IC SA 21 00 00 22 14 BF
34600 01 8 7 IB EA 2A 0 6 C0 01 7B 33616 5B 14 C0 7A B3 28 09 A7 34
36632 C0 CD 9 9 91 C3 IC BA FE ID
34608 FF FF 3E 0 0 ED B1 2B 22 34 33624 ED 32 20 04 El C3 F4 84 7F
36640 74 28 F 0 C3 CS 8F Fl FE 92
36648 C3 89 8A
34616 04 C0 ED 3B 0 6 C0 A7 ED 66 35632 Fl 2A 04 C0 4F 7E FE 0D B7
36636
20 20 0 3 3E 00
CD SE 87
66
34624 32 ED 3B 01 8 7 E3 A7 ED 98 33640 79 28 B6 71 CD 4C 86 C3 2A 3 2 6C 9F 3E 01 IE
34632 0B E l EB A7 ED 33648 89 2A 0C 36664 16 C0 CB 23
32 30 32 3F 1C 8A CD SB C0 4D A7 CA 6 7 8B 21 C0
34640 33636 36672 ED SB C9
34648
CD 21 8E C3 13 8A C I 7C 19
33664
ED SB 0E C0 19 7C BS CS 28 36680
4 6 28 13 2A 14 44 40 2A
34636
BS CA 13 SA 2A 0 6 C0 19 23
33672
E3 CD 71 99 El 2B 18 FS CS 36689
12 C0 A7 ED 3 2 B9 28 23 73
22 04 C0 C 3 13 8A CD 91 A4 2A 04 C0 ED SB 3C 9 2 A7 AB 36696
04 C0 3E 20 ED A7 CA 67 IS
34664 33680
83 3E 04 C3 CB 86 ED 3B IE
33688
ED 52 D8 2A 04 C0 ED SB 4D 36704
36 0D CD F2 87 69
346"*2 04 ce 2A 0 8 C0 4F 2 3 7C A4 3E 92 A7 ED 32 00 E l C3 2A 36712
8B 2A 12 C0 CD 21 8E 2A 2D
34690
34688
B5 ca 79 A7 E 3 EO 3 2 44 05
33696
35704
IC 8A 1 1 C6 8B 18 08 1 1 39 36720
04 C0 7E 3D 28 0 3 23 18 ES
4D El 22 0 8 C0 34 3D 2B F4 94 SB 18 03 SB D5 38 F 9 3A AC 8F 77 23 22 04 EE
34696 33712 1 1 AD 36728
ED B8 12 2A 0 2 C0 2 3 22 E8 3E 02 CO 01 01 19 0F C0 C3 13 8A 7A 23 36 00 00
34704 35720 16 Dl 36736
34712
02 C0 C9 1 1 20 4 0 2 A 00 26 33729 00 CD 3C 20 06 64 76 10 19 36744
2 3 22 04 C0 22 06 C0 2A IB
34720
C0 18 06 1 16 0 3 0 2A 06 CF 33736 FD 21 3F C0 01 C0 3F 3E SB 36732 0 0 C0 CD 77 8 8 22 00 C0 6E
C0 D3 ED 4 B 0C C0 7 8 B1 C2 B1 C2 0A 8A 2B 36 36 CD 91 8 9 18 CC 2A 06 C0 BB
01 ED 36760
10 07 413 1 502
34728 28 08 35744 0A SA 13
34736
3E 0D ED B1 0F 21 48 33732 20 C3 Al 36768 01 F F FF 36 0 0 EO B1 2B
34744 28 3A 0E 20 7E 2 3 F 3 06 2C 33760 16 0B 06 20 20 34
8 38 36776 2 2 04 C0 ED SB 06 C0 A7 9B
34732 08 E3 D3 D3 2 6 0 0 6F 29 33 33768 54 20 4 6 4 9 4C 43 20 46 FA 36784 6D 3 2 ED 3B 14 C0 7A B3 88
34760 29 29 ED SB 36 3C 19 Dl 16 33776 33 4C 4C 2 0 20 10 07 1 1 35 36792 28 20 E S A7 ED 3 2 30 0A 40
34768 7E 12 23 14 10 FA D l El 83 33784 02 16 0B 06
4F 4D
20 4E 4F 20 06 36800 61 EB A7 60 3 2 CD 21 86 2E
34776 1C F1 FE 0 0 2 8 16 0D 20 83 33792 32 4F 20 46 4F 32 44 3680B 18 10 01 7C BS 2 8 0B 2A 87
34784 DB CD 7C 8 8 D l 3E 20 83 3E 33800 20 43
4F 3 0 39 20 10 07 92 3 6 9 16 06 C0 ED SB 14 C0 19 22 ID
34792 3F 20 BE 7A C6 0 8 3 7 FE DA 33909 1 1 02 216 0B
0 4E
06 20 37 4F 00 36824 04 C0 C3 13 8A F6 6B 20 AD
34800 38 C8 18 B3 79 3D 28 EC B7 33816 32 44 4F 34 20 49 10 36932 1 2 2 1 71 91 36
23 21 16 C7
34808 0E 08 EB 4 7 E3 36 0 0 23 86 33824 4E 20 34 4 3 38 34 20 2A FD 36840 C0 CB C6 21 11
C0 CB A6 B4
10 FB El 24 0 0 2 0 F4 EB 1C 06 C0 CD 7 7 88 7E 3C CB 14 C3 IC SA FE 6A
C2 15 9 3 3B
18 DA CD SE
8 7 A7 C8 2A 30 CD 91 8 9 3A 78 8C A7 20 EC 21 71 9 1 36 24
21 16 C0 74
00 C0 CD 77 CB 8 6 21 11 C0
88 22 0 0 C0 6E 14 2A 0C C0 22 70 8C ED 22 CB 6 6 C3 B7

43 ZX Computing Monthly * February 1987


1111J
36848 1C 8A CD ID 9 0 CD 83 87 F7 37864 73 62 6C 6 3 20 77 69 64 0C 38990 7 2 74 20 20 20
36856 3E 18 C3 DA 8A CD 10 90 F2 20 2 0 20 A6
37872 74 68 20 16 04 02 14 01 2D 38888 20 20 2 0 20 16 03 02 20 BO
36864 CD 83 87 3E 19 C3 DA 8A 33 37880 39 14 00 73 6E 64 63 72 8B 38896 44 4F 3 7 4E 20 20 20 20 B8
36872 3E 19 18 02 3E 18 21 3F 27 37888 6C 69 6E 63 20 20 20 14 IC
C9 38904 20 3A 20 45 66 64 20 20 Dl
36880 C0 01 C I 3F ED B 1 2B 33 37896 01 33 14 0 0 69 74 61 6C 14
90 38912 2 0 20 20 20 20 20 20 20 00
36888 CD 08 90 18 0 3 CD 0C E9 37904 69 63 73 20 20 20 20 20 DF
36896 ED 5B 08 C0 A7 E3 ED 32 DB 38920 20 20 16 06 02 20 32 49 19
37912 20 16 05 02 14 01 49 14 AF 39928 4 7 48 34 20 20 20 20 3A 9D
36904 E l D0 A7 ED SB 06 C0 ES 4B 37920 00 63 6D 70 68 61 73 69 E7
06 38936 20 32 69 67 68 74 20 20 5E
36912 ED 32 30 03 1 B ED 33 D3 37928 73 63 64 20 20 14 01 4F E0 38944 6D 61 72 67 69
36920 C0 E l E3 ED SB 04 €0 A7 39 66 20 20 BE
37936 14 00 64 6F 73 62 6C 65 8F 38932 16 07 0? 70 4C 43 46 34 6A
36928 ED 32 30 03 IB ED 33 04 D3 37944 20 73 74 72 69 6B 63 16 C8 38960 2 0 20 20 20 20 3A 20 4C 46
36936 C0 Dl 2A 08 C0 A7 ED 32 69 37932 06 02 14 01 47 14 00 73 EB
36944 44 4D 62 6B 39 38968 63 66 74 20 20 20 6D 6t 6D
23 ED B0 1 B 37960 73 62 73 63 72 69 70 74 6C 38976 7 2 67 6 9 66 20 04
36932 ED 3 3 08 C0 CD 72 90 CD A4 20 1 3 01
37968 20 20 20 14 01 30 14 00 D9 38984 11 03 16 08 02 20 20 20 96
36960 93 86 CD 32 9B CD 83 87 6A 37976 73 73 70 63 72 73 63 72 77
90 30992 31 20 3C 3D 20 20 33 45 C2
36968 C9 CD 1 D 90 CD 18 C3 7B 37984 69 70 74 20 20 16 07 02 AC 39000 34 20 6C
19 8A CD 4F 99 2A 04 C0 36 65 66 74 20 20 SF
36976 37992 14 01 4A 14 00 31 2F 38 0B 39008 6D 61 72 67 69 66 20 20 BE
36984 3E »D 2B BE 20 FC 23 22 93 38000 74 68 20 73 70 61 63 63 0B 16 09 02
36992 06 C0 1 1 3F C0 A7 eo 32 BC 39016 20 20 20 45 20 E6
K M 20 14 01 4B 14 00 37 2F FA 39024 36 3D 20 20 3 3 43 34 20 C7
3">000 28 19 44 4D 6B 11 00 00 CE 38016 37 32 66 64 20 73 70 61 9F 39032 72 69 6 7 60 74 20 60 0C
61
37008 36 0D BE 20 01 13 23 0B 6B 38024 63 63 20 16 08 02 14 01 ID 39040 72 67 69 6E 20 20 16 0A 10
37016 78 B 1 20 F4 ED 33 0A C0 47 38032 4C 14 00 70 61 70 6 3 72 76 39048 02 20 2 0 20 52 20 3C 20 30
37024 CD B3 90 2 A 06 C0 06 13 IB 38040 20 73 63 6E 73 6F 72 20 DA
37032 3E 0D 2B BE 20 FC 10 FA 5A
39036 5 2 43 3 3 43 54 20 6C 63 74
38048 6F 6E 2F 6F 66 66 20 20 87 39064 66 74 20 20 6D 61 72 67 CI
3~*040 23 22 00 C0 C9 7A B3 C8 C3 38056 20 20 20 20 20 16 09 02 CI 39072 6 9 66 20 20 16 0B 02 20 SA
37048 21 3 f 91 7E 3C FE 3A 20 23 38064 14 01 36 14 00 6C 69 6E C2 39080 20 20 54 20 3E A9
37036 03 36 30 2B IS F3 77 IB 33 20 32 43
38072 63 20 6 6 63 63 64 20 6F A8 39088 3 3 43 34 20 72 69 67 60 B6
37064 18 EB 2A 04 C0 01 00 40 32 38080 6E 2F 6F 66 66 20 20 20 36 39096 74 20 6D 61 72 6 7 69 66 12
37072 3E FF ED B9 2 3 23 23 22 6E 38088 20 20 20 20 20 20 20 16 Fd 39104 2 0 20 13 01 1 1
37080 04 C0 C3 10 8 A 21 3F C0 4 1 06 16 0C 8D
38096 0A 02 14 01 42 14 00 63 DP 3 9 1 12 02 49 3A 49 66 73 63 72 86
37008 01 00 40 3E FF ED B t 2B 47 38104 6F 6C 73 6D 6E 20 77 69 26 391 20 74 20 6D 6F 64
37096 2B 22 04 C0 18 EC E3 21 1 B 63 20 20 79
38112 64 74 68 20 42 3D 31 34 44 39 1 20 1 1 04 43 3A 37 6F 72 64 2E
37104 F I 83 01 96 0 0 ED B 1 20 C9 38120 32 2F 62 3D 38 30 20 20 A8 39136 20 63 6F 73 66 74 16 0D 6C
37H2 09 7E FE FF 28 04 07 23 AA 38128 20 16 0B 0 2 14 01 4E 14 BA 39144 02 1 1 06 4F 3A 4F 76 65 cc
3712» 18 F7 E l 23 C3 DC 8C 21 3F 38136 00 64 6F 73 62 6C 63 20 9B 39152 72 70 72 6E 74 20 6D 6F 32
37128 20 00 1 1 00 40 01 4D 91 30 38144 77 69 64 74 68 20 31 20 91 39160 64 6 3 1 1 04 37 3A 37 6F 33
37136 C3 E3 D3 0A 26 00 6F 29 47 38132 6C 69 66 6 3 20 6F 66 6C 1 1 39168 72 64 20 66 6 9 66 64 20 B7
37144 29 29 1 1 00 B6 19 E3 03 IA 39160 79 20 20 16 0C 02 14 01 F2 391 76 16 0E 02 1 1 06 4B 3 A 57 19
37132 0A 26 0 0 6F 29 29 29 19 33 38168 4D 14 00 73 66 69 64 69 7A 39184 6F 72 64
0A 77 77 72 61 70 20 IF
37160 EB C 1 E l E3 1A ED FA 38176 72 63 63 74 69 6F 6E 61 33 39 192 4F 4E 20 20 1 1 04 20 20 32
37168 6F 13 0 3 24 7C E6 07 20 32 38184 6C 20 70 72 69 66 74 69 22 39200 20 20 20 20 20 ? 0 20 20 00
37176 F3 D l 13 CB 42 28 04 3E 4E 38192 6E 67 20 20 20 13 01 1 1 SA 39208 20 20 16
37184 0 7 82 3 7 E l
Of 0 2 1 1 06 4A C8
CI 03 03 2B B3 38200 06 16 0D 02 14 01 20 33 B3 39216 3A 57 6F 72 64 77 72 61 20
37192 7C BS 20 C4 C 9 43 4F 4C BC 38208 30 30 43 3 2 20 6 3 61 73 86 39224 ~>0 20 4F 46 46 04 A0
37200 7A 30 30 30 2A 20 1 1
31 32 4C A3 38216 63 20 4F 4E 20 3A 20 6C 00 39232 20 20 20 20 20 20 20 20 00
37208 49 4E 3A 30 30 30 30 34 C5 38224 6F 77 63 72 20 6F 66 66 18 39740 20 29 20 20 1 6 10 0 2 B9
1 1
37216 2A 47 4D 24 2A 43 4D 24 C2 38232 20 FF 14 01 13 01 1 1 00 39 39248 0 2 14 01 20 20 39 2F 6E 4D
37224 2A 43 4 1 30 33 24 2A 37 F6 38240 10 02 7F 1 1 02 10 06 7F 39 39236 65 ^8 74 20 70 61 6 7 63 0E
3^232 3 7 24 2A 49 4E 33 23 2A DE 38248 1 1 06 10 04 7F 1 1 04 10 CF 39264
37240 20 3A 20 20 4E 2F 72 63 EE
4C I D 41 I2 3A 30 30 30 F6 38236 03 7F 1 1 03 10 00 7F FF 20 39777 74 75 72 6E 20 20 FF 13 1 B
37248 30 30 2A 3 2 4D 4 1 52 3A F6 38264 10 00 1 1 07 20 14 00 FF SB 3>»280 01 14 01 16 02 0 2 20 48 98
37236 30 30 30 30 30 21 ?D 91 IF 38272 36 02 CD 01 16 21 AC 93 84 39288 45 4C 30 2D 43 78 74 20 SF
37264 0 6 03 36 30 23 10 FB C9 68 3B280 CD 9F 93 CD A7 9 3 21 C9 F4 39296 6D 6F 64 65 20 63 6F 6E 03
37272 2t 19 91 18 F3 1 1 7D 91 64 38288 93 CD 9F 95 CD EB 83 28 F9 39304 74 2E 20 FF 13 00 1 1 04 E9
37280 21 31 "»l 01 03 00 ED B0 A6 38296 FB CD 74 9B C3 4B 86 F 1
7E 39312 10 00 16 03 0 2 20 20 20 9B
37288 C9 1 1 08 91 i e F2 CD 0C D6 38304 FE FF C8 D7 23 18 F8 21 F0
9 0 CD 32 92 8A 39320 20 20 20 20 34 41 42 20 77
37296 D2 IC 22 BB 38312 36 3C 36 08 ES 21 3A 93 C3 39328 20 43 6F 6D 6D 61 6E 64 DF
37304 3C 92 CD 08 90 CD 32 92 C4 30320 CD 9F 93 61 36 00 21 78 B1 73 20 20
39336 20 20 20 20 20 33
37312 D2 1C 8A 22 3E 92 ED SB B2 38328 93 CD 9F 93 C9 13 01 14 87 39344 16 04 0 2 13 01 20 4B 65 00
37320 3C 92 A7 ED 32 DA IC 8A 34 38336 01 16 0 2 02 20 48 43 4C 14 39332 79 20 31 20 20 20 3A 20 84
37328 7C A7 20 0D 83 3D 20 09 3B 38344 30 2D 74 63 78 74 20 20 82 39360 3 3 43 34 20 74 61 62 20 63
37336 CD ID 90 CD 18 90 C3 19 CB 38332 20 20 20 20 20 20 20 20 00 39368 20 20 20 20 20 20 20 20 00
37344 8A ED 3B 3E 92 2A 08 C0 94 38360 20 FF 13 01 1 1 06 16 03 63 393">6 16 03 02 20 4B 63 79 20 86
37332 A7 ED 32 44 4D 2A 3E 92 71 38368 02 20 20 20 20 20 20 20 E2 39334 32 20 20 20 3A 20 52 45 83
37360 23 ED 3B 3C 92 ED 80 IB F1 38376 20 20 20 20 20 20 20 20 00 30392 3 3 43 34 20 74 61 62 20 63
37368 EB 22 08 C0 2A 04 C0 ED B0 38384 20 20 20 20 20 20 20 20 00 39400 20 20 20 20 20 20 16 06 DC
37376 3B 3C 92 A 7 ED 3 2 38 27 6E 38392 20 20 20 20 14 01 11 03 AB 39409 0 2 20 4 B 63 79 20 33 20 BE
37384 2A 04 C0 ED SB 3E 92 A7 AD 38400 16 04 0 2 41 32 32 4F 37 A7 394 16 20 20 3A 20 32 43 33 45 C9
37392 ED 3 2 30 03 2A 3C 92 18 84 38408 33 2E 2E 26 26 14 00 63 82 39424 34 20 41 4C 4C 20 74 61 42
3"'400 10 2A 04 C0 ED 3B 3E 92 16 38416 73 72 7 3 6F 72 20 63 6F 2D
A7 ED 32 ED 92 39432 62 73 20 20 16 07 02 13 47
37408 3B 3C 19 13 38424 66 74 72 6F 6C 73 20 20 E2 39440 0 0 1 1 03 20 20 20 2 0 20 B6
37416 2B 22 04 C0 C 3 10 SA C3 31 38432 14 01 16 05 02 44 43 4C 07 39448 20 42 4C 4F 43 4 B 20 20
19 8A ED SB CB
37424 08 C0 A7 E3 3F 38440 43 34 43 2E 2E 26 2E 14 AA 39436 4 3 6F 6D 6D 61 6E 64 73 32
37432 ED 32 E l C9 00 00 00 00 E9 30448 00 64 63 6C 63 74 6 3 20 93 39464 20 20 20 20 20 20 13 01 D4
37440 00 00 00 21 00 00 22 80 C3 30456 63 68 61 72 61 63 74 63 3B 39472 16 08 02 20 4B 63 7 9 20 89
37448 92 CD 0C 9 0 CD 32 92 00 3C 38464 72 20 14 00 16 06 02 20 64 39400 38 20 20 20 3A 20 33 43 BA
37436 2 2 3C 92 CD 08 90 CD 32 34 38472 20 20 20 20 20 20 20 20 00 39488 54 20 6 2 6C 6F 63 68 20 9F
37464 92 D0 22 3E 92 A7 ED SB 43 38480 20 14 00 62 63 60 69 6E 3A 39496 73 74 61 72 74 20 1 6 09 6D
37472 3C 92 ED 32 D8 2B 22 80 B2 38488 64 20 63 73 72 73 6F 72 22 39304 02 20 4 B 6 3 79 20 39 20 C4
37480 92 C9 ED 3B 08 C0 21 FF 8B 38496 20 20 20 20 14 01 16 07 B2 39312 20 20 3A 20 33 43 34 20 A6
37403 FF A7 ED 32 ED 3B 30 92 3F 38304 02 34 32 3 3 43 20 36 49 01 39320 6 2 6C 6F 6 3 6B 20 6 3 6E FE
37496 A7 ED 32 D0 E l C3 6C 9B 31 38312 44 43 4F 14 00 66 63 70 37 39320 64 20 20 20 16 0A 02 20 06
37304 0 0 00 CD 43 9 2 2A 80 92 DE 38320 74 20 54 41 42 20 70 6F 6A 39336 4B 65 79 20 30 20 20 20 D9
37312 7C B3 CA 1C SA 23 23 22 09 38328 73 69 74 69 6F 66 14 01 AB 39344 3A 20 5 2 4 3 33 43 34 20 FD
37320 8 0 92 2 A 04 C0 ED SB 3C 84 39336 16 08 02 4 9 46 36 26 20 SB 39332 6 2 6C 6F 6 3 6B 73 20 20 BE
37328 92 A7 ED 32 CA IC 8A 38 20 38344 36 49 44 43 4F 14 0 0 48 D3 39S60 20 20 16 0B 02 20 4B 63 33
37336 10 2A 04 C0 ED SB 3E 92 16 38332 43 4C 30 20 74 63 78 74 D3 39368 79 20 33 20 20 20 3A 20 80
37344 A7 ED 32 DA 1C SA C3 9A B3 38560 20 20 20 20 20 20 20 20 00 39376 43 4F 30 59 20 62 6 C 6F 98
37332 8 3 AF 32 42 92 21 00 01 3C 38368 14 01 16 09 02 47 32 41 10 39504 6 3 6B 20 20 20 20 20 20 0E
37360 22 40 92 2A 3E 92 11 90 8F 38376 30 48 49 43 33 2E 26 14 E7 39392 16 0C 02 20 4B 63 79 20 8D
37360 8 2 01 00 01 ED B8 21 90 DA 38384 00 70 72 69 6E 74 63 72 04 39600 36 20 20 20 3A 20 4D 4F ec
37376 82 01 00 01 3E 18 ED B9 80 38392 20 63 6F 6E 74 72 6F 6C 21 39608 3 6 43 20 62 6C 6F 63 6B C6
37384 20 03 3E 01 32 42 92 1 1 7B 38600 73 20 14 01 16 0A 02 43 0F 39616 20 20 20 20 20 20 16 00 63
37392 90 02 EB A7 ED 32 22 40 43 38600 39 54 2E 20 4D 4F 44 45 IF 39624 02 20 4B 63 79 20 3 7 20 C2
37600 9 2 2A 3E 92 E3 ED SB 40 F9 38616 26 14 00 74 63 78 74 20 27 39632 20 20 3A 20 44 43 4C 45 B4
37608 92 A7 ED 32 E5 ED 4B 04 99 38624 66 6F 72 6D 61 74 20 20 C9 39640 54 4 3 20 62 6C 6F 63 6B C4
37616 C0 A7 ED 42 44 4D 03 El 0B 38632 20 20 20 20 14 01 16 0B B6 39649 20 20 20 20 16 0E 02 1 1 B7
37624 01 ED B8 21 90 82 ED 4B El 38640 02 43 44 49 34 26 2E 2E B2 39636 06 20 20 20 20 20 20 20 E6
37632 40 92 ED B8 3A 42 92 A7 2C 38648 2E 26 26 14 00 72 63 74 69 39664 20 20 20 20 20 20 20 20 00
37640 28 B 1 CD 0C 90 22 04 C0 28 38636 73 72 66 20 74 6F 20 4D C3 39672 20 20 20 20 20 20 20 20 00
37648 C3 10 8A 00 00 FE 63 C2 80 38664 43 4E 3 3 20 20 ?0 14 00 SC 39680 20 20 20 20 16 0F 0 2 20 C7
37636 3F 8C IE 00 01 00 00 21 0B 38672 1 1 06 16 0C 02 20 46 6F 10 39688 20 20 20 20 20 20 20 20 00
37664 3F C0 7£ FE FF 20 13 FE BS 39680 72 20 47 32 4 1 30 48 49 4D 39696 20 20 20 20 20 20 20 20 00
37672 21 30 03 IE 00 23 18 F2 A1 38688 43 33 2F 43 26 4D 4F 44 18 39704 20 20 20 20 20 20 20 20 00
37600 FE 81 30 F 7 7B 3D 28 F3 7B 38696 43 20 48 43 4C 36 20 20 CE 39712 20 20 16 10 02 14 01 59 06
37688 03 1C 18 F 1 ED 43 38 93 43 38704 16 0D 02 20 20 73 63 6C A9 39720 2F 3 0 72 63 76 69 6F 73 19
37696 1 1 3A 93 01 43 00 CD 3C 4B 38712 65 63 74 2 0 4B 43 39 20 63 39720 73 20 70 6 1 67 63 20 3A 6A
37704 20 ED 4B 38 93 CD IB 1A 43 38770 26 20 49 4E 36 2E 20 36 D7 39736 20 20 4E 2F 72 65 74 75 7D
37712 CD EB 83 28 FB C3 0A 8A B7 38728 49 44 43 4F 20 20 16 06 95 39744 72 66 FF 3E 02 CD 01 16 03
37720 00 00 10 07 1 1 00 16 06 44 38736 02 1 4 01 20 20 20 50 72 39 39732 21 0B 97 CD 9F 93 CD A7 B8
37728 0 9 20 20 20 20 20 20 20 E9 38744 63 73 73 20 43 4E 54 43 97 39760 95 21 A8 97 CD 9F 9 5 CD C3
37736 20 20 20 20 20 16 07 09 C6 30732 32 20 66 6F 72 20 34 43 72 39768 EB 8 3 28 FB FE 46 28 0F 13
37744 20 37 6F 72 64 20 43 6F 8E 38760 38 34 20 20 20 ? 0 FF 3E 69 39776 FE 6E 28 0A F6 39 28 26 4B
37732 73 6E 74 20 16 08 09 20 BE 38768 02 CD 01 16 21 BD 9 3 CD 26 39794 F6 79 28 2A 18 E9 CD 74 0B
37760 20 20 20 20 20 20 20 20 00 38776 9F 93 CD A7 93 21 DA 95 CD 39792 9B C3 0F 0D 21 20 3 8 01 94
37768 20 20 20 L 6 09 09 20 20 C8 38784 CD 9F 93 CD EB 83 28 FB 61 39800 DF 0 2 1 1 21 3 0 3A 17 C0 ?C
37776 2 0 ?0 20 20 20 20 20 20 00 38792 C3 0A 8A 13 01 14 01 16 96 39809 77 ED B0 21 60 3A 01 IF 0F
37784 20 20 16 08 0D 3D 3D 3D 22 38900 02 02 20 48 43 4C 50 20 7A 39816 00 1 1 61 5A 3A 18 C0 77 33
37792 3D 3D CA 6F 97 30 CA 43 94 38808 43 78 74 20 6D 6F 64 63 F6 39824 ED B0 CD 83 87 C9 3E 02 7D
37000 9B C3 80 93 13 01 14 01 9C 3881 6 20 20 20 20 20 20 20 FF DF 39832 CD 01 16 21 6F 99 CD 9F 79
37808 16 02 02 20 48 43 4C 30 63 38824 13 00 1 1 04 10 00 16 03 31 39840 95 CD A7 93 21 8C 9 9 CD B1
37816 2D 67 72 61 70 68 69 63 0B 38832 02 20 41 32 32 4F 3 7 33 00 39848 9F 9 5 CD EB 8 3 28 FB FE 92
37824 73 20 20 20 20 20 20 20 33 38840 70 70 20 20 20 47 6F 74 CA 39836 4E 28 BB FE 66 28 B7 FE 7A
37832 FF 1 1 06 13 01 14 01 16 33 M M ! 6F 20 74 63 78 74 3A 2D BB 39864 39 28 88 FE 79 28 84 10 44
37840 0 3 02 34 14 00 63 6F 6D AC 38836 20 70 20 20 04 02 39872 E9 3E 02 CD 01 16 2 1 09 07
16 13 AF
37848 70 72 63 73 73 63 64 20 16 38864 01 20 33 30 20 20 20 20 46 39880 9B CD 9F 95 CD A7 9 3 21 C6
37836 20 14 01 48 14 00 64 6F 64 38877 70 70 2 0 3A 20 53 74 61 E2 39808 F3 98 CD 9F 93 CD A7 9^ 9A

44 ZX Computing Monthly * February 1987


39896 C9 16 03 03 13 01 14 01 10 40912 74 20 20 20 20 20 20 20 34 41928 73 20 20 20 20 20 20 FF 32
39904 20 37 6F 72 64 20 66 69 AB 40920 20 20 16 0B 07 20 20 20 C8 41936 3E 02 CD 01 16 21 DC A3 C4
39912 6E 64 20 20 20 20 20 20 92 40928 43 41 34 21 20 20 20 20 79 41944 CD 9F 93 C9 14 01 13 01 F3
39920 20 20 20 20 FF 13 01 1 1 A4 40936 20 2• 20 20 20 16 0C 07 C9 4 1932 16 13 00 20 49 6E 76 61 D9
39928 06 16 06 03 14 00 20 43 9E 40944 20 20 20 43 73 73 74 6F 6E 4 1 960 6C 69 64 20 34 69 74 6C F6
39936 6E 74 63 72 20 63 68 61 03 40932 6D 69 7A 63 20 20 20 70 33 41968 63 20 20 20 20 20 20 20 43
39944 72 61 63 74 63 72 73 20 14 40960 FF 3E 02 CD 01 16 21 16 3A 41976 20 20 20 20 20 FF 3E 02 DF
39932 69 6E 20 6C 6F 77 63 72 20 40968 A0 CD 9F 95 CD A7 93 21 CB 41984 CD 01 1621 0A A4 CD 9F IF
39960 1« 07 03 20 63 61 73 63 DC 40976 28 A0 CD 9F 93 C9 13 01 A6 41992 93 C9 14 01 13 01 16 13 B2
39968 20 74 6F 20 66 69 6E 64 C4 40984 14 01 16 03 07 20 43 72 0C 42000 00 20 44 6F 63 73 60 63 7D
39976 20 77 6F 72 64 73 20 69 D8 40992 65 61 74 63 20 20 20 FF FE 42008 6E 74 20 40 53 33 34 20 6B
39984 6E 20 20 20 20 16 08 03 0F 4 1000 13 01 14 00 16 06 07 20 68 42016 68 61 76 63 20 61 20 6E B3
39992 20 63 69 74 68 63 72 20 CI 41008 20 20 43 6F 6E 74 69 6E AB 42024 61 60 63 FF 3E 02 CD 01 40
40000 73 70 70 63 72 20 6F 72 2D 4 1016 73 63 20 20 20 20 20 16 90 42032 16 21 38 A4 CD 9F 93 C9 DD
40008 20 6C 6F 77 63 72 20 20 89 41024 07 07 20 20 20 43 78 69 94 42040 14 01 13 01 16 13 00 20 74
40016 20 70 16 09 03 20 63 61 46 4 1032 74 20 20 20 20 20 20 20 S4 42048 33 70 65 63 77 6F 72 64 47
40024 73 63 2E 20 4F 72 20 73 7C 4 1040 20 20 FF 3E 02 CD 01 16 63 42036 20 34 38 2F 2B 20 20 20 46
40032 73 63 20 33 30 30 43 32 84 4 1048 21 68 A0 CD 9F 93 CD A7 9E 42064 20 20 20 20 20 20 20 20 00
40040 20 63 61 73 63 20 20 16 1 2 4 1036 93 21 7A A0 CD 9F 93 C9 9A 42072 20 FF 3£ 02 CD 01 16 21 64
40048 CA 03 20 74 6F 20 66 69 FF 4 1064 13 01 14 01 16 03 07 20 AB 42080 66 A4 CD 9F 93 C9 14 01 E9
40036 6E 64 20 33 30 30 43 92 7E 4 1072 4C 6F 61 64 20 20 20 20 00 42088 13 01 16 13 00 20 43 61 03
40064 20 63 61 73 63 20 77 6F C2 4 1080 20 FF 13 01 14 00 16 06 63 42096 74 61 6C 6F 67 73 63 20 11
40072 72 64 73 2E 16 06 03 20 BB 4 1088 07 20 20 20 34 61 70 63 F1 42104 6F 66 20 32 41 4D 21 20 16
40080 20 20 20 20 20 20 20 20 00 41096 20 20 20 20 20 20 20 20 00 4 2 1 12 46 69 6C 63 73 20 20 FF 32
M M 20 20 20 20 20 20 20 20 00 4 1 1 04 20 16 07 07 20 20 20 32 F6 42120 3E 02 CD 01 16 21 94 A4 70
4 0096 20 20 20 20 20 20 20 20 00 41112 41 4C 21 20 20 20 20 20 4F 42128 CD 9F 93 C9 14 01 13 01 F3
40104 20 16 0C 03 20 30 72 63 ec 41 120 20 20 20 20 16 08 07 20 C3 421 36 16 13 00 20 30 72 63 73 E3
401 12 73 73 20 43 4E 34 43 32 84 4 1 128 20 20 43 78 69 74 20 20 1A 42144 73 20 61 6E 79 20 6B 65 CB
401 20 20 74 6F 20 66 69 6E 64 C4 41 136 20 20 20 20 20 20 20 FF DF 42132 79 20 20 20 20 20 20 20 39
401 28 20 6C 61 73 74 20 16 00 17 4 1 144 3E 02 CD 01 16 21 CD A0 B2 42160 20 20 20 20 20 FF 3E 02 DF
40136 03 20 77 6F 72 64 20 73 72 41 132 CD 9F 93 CD A7 93 21 OF 0A 42168 CD 01 1621 C2 A4 CO 9F 07
40144 63 61 72 63 68 63 64 20 EC 4 1 160 A0 CD 9F 95 C9 13 01 14 92 42176 93 C9 14 01 1 3 01 16 Id B2
40132 66 6F 72 2E 20 20 20 20 F3 41 168 01 16 03 07 20 33 61 76 6D 4 2 184 00 20 30 72 69 6E 74 65 92
40160 20 20 20 16 13 00 13 01 9F 4 1 176 65 20 20 20 20 20 FF 13 17 42192 72 20 6E 6F 77 20 69 6E DD
40169 14 01 20 43 6E 74 65 72 33 41 184 01 14 00 16 06 07 20 20 78 42200 69 74 69 61 6C 69 73 63 34
40176 20 77 6F 72 64 20 6F 72 DO 4 1 192 20 34 61 70 63 20 20 20 0A 42208 64 20 20 FF 3E 02 CD 01 Bl
40184 20 70 68 72 61 73 63 20 C3 4 1200 20 20 20 20 20 20 16 07 OD 42216 16 21 F0 A4 CO 9F 93 C9 93
40192 20 20 20 20 FF 3E B2 CD 8C 4 1208 07 20 20 20 32 41 4D 21 68 42224 14 01 13 01 16 13 00 20 74
40200 01 16 21 1A 90 CO 9F 93 F0 41216 20 20 20 20 20 20 20 20 00 42232 54 69 74 6C 63 20 66 6F F7
40208 CD A7 93 21 32 9D CD 9F 63 4 1224 20 16 08 07 20 20 20 32 F7 42240 72 20 4C 6F 61 64 69 6E E9
40216 93 C9 14 01 13 01 16 03 A2 41232 63 74 69 74 6C 63 20 20 C7 42248 67 20 3F 20 20 20 20 20 66
40224 05 20 43 73 73 74 6F 60 A0 4 1240 20 20 20 20 16 09 07 20 C6 42236 FF 3E 02 CD 01 16 21 ID 61
40232 69 7A 63 20 20 20 20 20 E8 4 1248 20 20 30 72 6F 67 72 61 AB 42264 A5 CD 9F 95 C9 14 01 13 97
40240 20 FF 14 00 16 06 03 20 74 41236 6D 20 20 20 20 20 20 16 43 42272 01 16 13 00 20 36 65 72 79
40248 54 63 70 74 20 76 61 6C 08 41264 0A 07 20 20 20 43 78 69 97 42280 69 66 79 20 3F 20 3C 39 3C
40236 73 63 20 20 20 20 20 20 9A 41272 74 20 20 20 20 20 20 20 34 42288 3E 3C 4E 3E 20 20 20 20 86
40264 20 20 20 20 20 16 07 03 C2 41280 20 20 FF 3E 02 CD 01 16 63 42296 20 20 20 20 20 FF 3E 02 DF
40272 20 37 69 6E 64 6F 77 20 BB 41288 21 38 A1 CD 9F 93 CD A7 8F 42304 CD 01 16 21 4A A3 CD 9F 60
40280 76 61 6C 73 63 20 20 20 70 41296 95 21 6A At CD 9F 93 C9 8B 42312 93 C9 14 01 1 3 01 16 15 B2
40288 20 20 20 20 20 20 16 08 DE 4 1 304 13 01 14 01 16 03 07 20 6B 42320 00 20 36 63 72 69 66 79 93
40296 03 20 42 6F 72 64 63 72 83 41312 30 72 69 6E 74 20 20 20 6D 42328 20 4F 2E 4B 2E 20 20 20 76
40304 20 76 61 6C 73 63 20 20 70 4 1 320 20 FF 13 01 14 00 16 06 63 42336 20 20 20 20 20 20 20 20 00
40312 20 20 20 20 20 20 20 16 F6 41328 07 20 20 20 41 6C 6C 20 A0 42344 20 20 FF 3E 02 CD 01 16 63
40320 09 03 20 60 20 73 69 67 F1 41336 74 63 78 74 20 20 20 20 43 42332 21 77 A3 CD 9F 93 C9 14 1 B
40328 6E 20 63 6F 64 63 20 20 69 41344 20 16 07 07 20 20 20 42 E6 42360 01 13 0] 16 13 00 20 30 B0
40336 20 20 20 20 20 20 20 20 00 4 1332 6C 6F 63 6B 20 20 20 20 29 42368 ~*2 69 6E 74 63 72 20 4F 03
40344 16 0A 03 20 43 78 69 74 DF 41360 20 20 20 20 16 0B 07 20 C3 42376 4E 20 4C 49 4E 43 3F 20 F3
40332 20 20 20 20 20 20 20 20 00 4 1368 20 20 46 6F 72 60 61 74 A9 42384 3C 43 4E 54 43 32 3E FF F7
40360 20 20 20 20 20 20 20 20 00 41376 20 20 20 20 20 20 20 16 F6 42392 3E 02 CD 01 16 21 A4 A3 BE
40368 20 FF 3E 02 CD 01 16 21 64 4 1384 09 07 20 20 20 43 6F 64 86 42400 CD «»F 93 C9 14 01 13 01 F3
40376 C7 9D CD 9F 93 CD A7 93 6E 41392 63 73 20 20 20 20 20 20 98 42408 16 13 00 20 50 72 65 73 E3
40384 21 E3 9D CD 9F 93 C9 13 80 4 1400 20 20 16 0A 07 20 20 20 C7 42416 73 20 43 4E 34 43 32 20 31
40392 01 14 01 16 03 02 20 46 97 41408 49 6E 69 74 69 61 6C 69 33 42424 74 6F 20 63 6F 6t 74 69 20
40400 6F 72 6D 61 74 20 20 20 83 41416 73 63 20 20 20 16 0B 07 60 42432 6E 73 63 20 FF 3E 02 CD 74
40408 20 20 20 20 20 20 20 20 00 41424 20 20 20 43 78 69 74 20 1A 42440 01 16 21 D1 A5 CD 9F 93 AF
40416 20 20 20 20 FF 14 00 13 A6 4 1432 20 20 20 20 20 20 20 20 00 42448 C9 14 01 13 0 1 16 13 00 10
40424 01 16 04 02 20 4C 69 6E 60 4 1440 FF 3E 02 CD 01 16 21 F6 3A 42436 20 4E 6F 74 20 61 76 61 A9
40432 63 73 20 70 63 72 20 70 CF 4 1448 A1 CD 9F 93 CD A7 93 21 CC 42464 69 6C 61 62 6C 63 20 69 F2
40440 61 67 63 20 20 20 20 20 CD 41436 08 A2 CD 9F 93 C9 14 01 89 42472 6E 20 34 38 4B 20 6D 6F 4 1
40448 20 20 20 20 20 20 20 20 00 4 1464 13 01 16 02 07 20 43 6F 03 42480 64 65 FF 3E 02 CD 01 16 EC
40436 16 03 02 20 33 70 61 63 C4 4 1472 64 63 73 20 20 20 20 FF BB 42488 21 FF A3 CD 9F 95 C9 14 A3
40464 63 73 20 62 63 74 77 63 0F 14 00 13 01 07 20 68 42496 01 13 01 16 13 00 20 44 A4
4 1480 16 03
40472 63 6E 20 6C 69 6E 63 73 0E 41488 20 20 20 20 20 42 2F 2F 40 •ir 6F 63 73 6D 65 AE 74 20 1 B
40400 20 20 20 20 20 20 20 16 F6 4 1496 62 20 20 20 20 20 20 16 38 42312 74 69 74 6C 63 20 3F 20 Al
40488 06 02 20 4D 61 72 67 69 18 4 1304 04 07 20 20 20 20 20 20 CB 42320 20 20 20 20 20 20 20 20 00
40496 6E 20 20 20 20 2 0 2 0 20 4E 4 1312 47 2F 2F 67 20 20 20 20 8C 42328 FF 3E 02 CD 01 16 21 36 7F
40304 20 20 20 20 20 20 20 20 00 20 20 16 03 07 20 20 20 C2 42336 A6 CD 9F 95 FD CB 01 6E DE
4 1320
40312 20 20 2 0 20 20 20 16 0 7 DD 20 20 20 48 2F 2F 68 20 8E 42344 FD CB 01 6E 28 FA FD CB 21
41328
40520 02 20 3 3 74 61 7 2 74 20 S0 20 20 20 20 16 06 07 C3 42332 01 AE C9 1 1 07 10 0 1 16 B7
41336 20
40328 61 74 20 70 61 6 7 6 3 20 B2 49 2F 38 42360 03 07 33 50 43 43 37 4F DD
41544 20 20 20 20 20 20
40336 4E 6F 2E 2 0 20 2 0 20 20 86 2F 69 20 20 20 20 20 20 38 42368 32 44 70 20 34 38 2F 2B 9C
41532
40344 20 20 20 20 20 16 0 8 02 C0 42376 2F 31 32 38 16 07 07 20 0E
4 1360 16 07 07 20 20 20 20 20 C4
40352 20 50 61 67 63 2 0 4E 6F 7A 2F 6A 20 20 92 42384 20 37 6F 72 64 20 30 72 9E
41368 20 4A 2F 20
40360 2E 20 6 1 74 20 34 4F 3 0 36 20 20 20 16 08 07 20 20 C3 42392 6F 63 63 73 73 6F 72 20 IE
41376
40368 20 20 20 20 20 2 0 20 2 0 00 2F 94 42600 20 16 09 07 20 20 20 36 FC
41384 20 20 20 20 4B 2F 6B
40376 20 20 20 20 16 0 9 0 2 20 CI 20 20 20 20 16 09 DF 42608 63 72 73 69 6F 6E 20 20 D0
41392 20 20
40384 50 61 67 65 20 4E 6F 2E 88 4 1600 07 20 20 20 20 20 20 4C 13 42616 31 2E 31 20 20 20 16 0B 1 1
40392 20 61 74 2 0 42 4F 34 2E 28 2F 2F 6C 20 20 20 20 20 6A 42624 03 7F 20 33 74 •'S 61 72 B3
4 1608
M 4 H 20 20 20 20 20 2 0 20 20 00 4 1616 20 16 0A 07 20 20 20 20 C7 42632 74 20 4E 69 63 68 6F 6C F 1
40608 20 20 20 16 0A 0 2 20 37 F9 2F 2F 20 98 42640 6C 73 20 31 39 38 36 FF D6
4 1624 20 20 4D 6D 20
40616 61 69 74 2 0 62 6 3 74 7 7 10 20 20 20 20 16 0B 07 20 C8 42648 3E 02 CO 01 16 21 A4 A6 9F
4 1632
40624 63 63 6E 2 0 70 61 6 7 6 3 F3 4E 2F 2F 4C 42636 CD 9F 93 C9 14 01 13 01 F3
4 1640 20 20 20 20 20
40632 73 20 20 2 0 20 2 0 20 20 33 4 1648 6E 20 20 20 20 20 20 16 44 42664 16 15 00 20 4E 6F 20 74 9C
40640 20 20 16 0B 02 20 4 1 7 3 39 4 1636 0C 07 20 20 20 20 20 20 D3 42672 63 78 74 20 66 69 6C 63 11
40648 74 6F 2 0 6C 69 6E 6S 2 0 CE 41664 4F 2F 2F 6F 20 20 20 20 9C 42680 20 74 6F 20 45 44 49 54 49
40636 66 63 6 3 64 20 2 0 20 20 14 20 20 16 0D 07 20 20 20 CA 42688 20 20 20 20 20 FF 3A 10 E9
4 1672
40664 20 20 20 20 20 2 0 20 20 00 41680 20 20 20 50 2F 2F 70 20 9E 42696 C0 EE 01 C6 24 32 '6 91 D2
40672 20 16 0C 0 2 20 4 3 78 6 9 8A 4 1 688 20 20 20 20 20 16 0E 07 CB 42704 3A 16 C0 C6 24 32 71 91 2E
40680 74 20 20 20 20 20 20 2 0 34 4 1 696 20 20 20 20 20 20 34 2F 43 42712 3A 6A 3C E6 08 CB 3F CB C3
40688 20 20 2 0 20 20 20 2 0 2 0 00 4 1 704 2F 74 20 20 20 20 20 20 63 42720 3F CB 3F C6 24 32 6D 91 63
40696 20 20 20 20 20 20 2 0 20 00 41712 16 0F 07 20 20 20 20 20 CC 42728 21 70 91 06 03 36 30 23 C3
4fl v-s FF 3E 0 2 CD 01 16 21 10 34 4 1720 20 33 2F 2F 73 20 20 20 A8 42736 10 FB 21 88 91 06 05 36 86
40712 9F CD 9F 9 3 CD A7 9 3 C9 72 4172B 20 20 20 16 10 07 20 20 CD 42744 30 23 10 FB ED 4B 12 C0 66
40720 16 13 0 0 13 01 14 01 11 63 4 1736 20 20 20 20 36 2F 2F 76 AA 42732 78 B1 28 17 03 21 81 91 9E
40728 07 10 00 2 0 33 70 6 3 6 3 C2 41744 20 20 20 20 20 20 16 1 1 E7 42760 78 B1 28 0F 7E 3C FE 3A 32
W73* 77 6F 72 64 20 31 3 2 36 77 41732 07 20 20 20 20 20 20 39 20 42768 20 03 36 30 2B 18 F3 77 3A
40744 20 20 20 20 20 20 20 20 00 41760 2F 2F 79 20 20 20 20 20 77 42776 08 18 EA ED 4B 14 C0 78 91
40732 20 20 20 20 20 F F 3E 0 2 DF 41768 20 16 12 07 20 20 20 20 CF 42784 B1 C6 03 21 8C 91 78 B1 E3
40760 CO 01 16 CD A7 9 3 C9 01 B7 41776 20 20 43 78 69 74 20 20 1A 42792 C8 7E 3C FE 3A 20 03 36 13
40768 00 00 3A 48 00 F t 6E C0 B1 41784 20 20 20 20 FF 3E 02 CD QC 4 2800 30 2B 18 F3 77 0B 18 EB ED
40776 3A 3B 3C CB 67 ce 0 3 C9 97 41792 01 16 21 52 A3 CD 9F 93 2E 4 2808 FE 31 C2 1C BA 21 00 40 F8
40784 3E 02 CD 01 16 21 6 3 9F 49 4 1800 CD A7 93 21 64 A3 CD 9F 9D 42816 1 1 01 40 01 FF 17 36 00 9F
40792 CD 9F 9 5 CD A7 93 21 7 7 A2 41808 95 C9 14 01 13 01 16 03 A2 42824 EO B0 ED 38 00 C0 IB 21 £1
40800 9F CD 9F 9 3 C9 14 01 13 91 41816 07 20 43 61 73 63 20 20 E3 42832 20 41 E3 06 20 CO AC A7 ec
40808 01 16 03 07 20 44 6F 6 3 39 41824 20 20 20 FF 14 00 13 01 87 42840 28 0? CB FE CD AC A7 28 3B
40816 73 6D 6 3 6E 74 20 FF 13 3B 4 1832 16 06 07 20 20 20 53 70 48 42848 02 CB EE CD AC A7 28 02 03
40824 01 14 0 0 16 06 0 7 2 0 20 78 4 1840 70 63 72 20 20 20 20 20 E7 42836 CB DE CD AC A7 28 02 CB BE
40832 20 43 72 63 61 74 6 3 20 94 4 1848 20 20 20 16 07 07 20 20 C4 42864 CE 23 10 El El 70 C6 20 26
4HG40 20 20 20 20 20 20 16 0 7 DD 41836 20 4C 6F 77 63 72 20 20 69 42872 6F 20 D7 7C C6 08 67 FE 13
40848 07 20 20 20 4C 6F 61 64 E7 41864 20 20 20 20 20 20 16 08 DE 42880 39 20 CF 21 00 41 1 1 00 BB
40836 20 20 20 20 20 20 20 20 00 41872 07 20 20 20 43 78 69 74 01 42888 42 01 FF 02 ED B0 21 00 02
40864 20 16 0 8 07 20 20 2 0 3 3 F8 4 1880 20 20 20 20 20 20 20 20 00 42896 49 1 1 00 4A 01 FF 02 ED 93
40872 61 76 63 2 0 20 20 2 0 20 DC 41888 20 FF 3E 02 CD 01 16 21 64 42904 B0 21 00 3 1 1 1 00 32 01 66
W N 20 20 20 2 0 16 0 9 0 7 20 C6 4 1896 AE A3 CD 9F 93 C9 14 01 30 42912 FF 02 ED 6 0 CD EB 83 28 03
40888 20 20 30 72 69 6E 74 20 60 4 1904 13 01 16 13 00 20 34 6F 22 42920 FB C3 0A 8A 13 1A FE 80 FD
40896 20 20 20 2 0 20 2 0 2 0 16 F6 4 1912 6F 20 6D 61 6E 79 20 63 C7 42928 30 FA FE 0D 28 03 FE 20 80
40904 0A 07 20 2 0 20 4 3 64 6 9 83 41920 68 61 72 61 63 74 63 72 4A 42936 38 F2 C9 E l 18 86 FF - A1

45 ZX Computing Monthly * February 1987


r
r

A classic game from Rainbfrd

Starglider
Rain bird
£14.95

EALTH WARNING: DON'T MESS


WITH NOVENIA" was the message
!
written on the side of the deadly
Sentinels that destroyed anything
that threatened the peace
loving people on the planet
below.
The invading Egrons learnt this
to their cost as they lost
countless ships to the fleet
mangling defences. If the
Sentinels didn't like the look of
something that something
rapidly became scrap.
Unfortunately the peace
loving Novenians were also
conservationists and modified
the Sentinels to let the Starglider
birds migrate without being fried
in the process. So when the
Egrons sent a Starglider shaped
fleet to attack Novenia the
Sentinels let them in.
Now you play two teenage
heroes who have found a
prototype AGAV (airborne
ground attack vehicle) and set
off to defeat the Egrons who now
use Novenia's defences against
you!
The full plot that leads to this
improbable situation is
described in a 64 page novella
that accompanies the tape
containing both 48K and 128K
versions as well as a playguide
that Introduces the AGAV's
£
LU controls, a keyguide to show you
which buttons to use and poster
of your AGAV. Not bad, even for
£14.951 That's twice the average
III cost of a Spectrum game but
02 Starglider is no ordinary game.

Stomp and walk


Graphically it will be compared
<
o
to Elite as it features the same 30
vector line graphics that
tanks that trundle across the
planet's surface with your
missile launchers that greet you
with a hall of homing missiles,
represent the tanks, walkers, "Saphlre II" quadpulse laser but the Star Wars inspired walkers
stampers, missile launchers and at only 20 points each you'll and stomping stompers that can
Stargliders of the defence forces soon be looking for bigger prey only be destroyed by a well
that now home in on you. but since even these tanks fire guided missile and the
Your mission is simply to get ship wrecking missiles they must Stargliders that fly with a
them before they get you. be taken seriously. graceful flap of their
There's no great strategic aim Using your scanner set in the mechanical wings and can
o
LU
to the game except to amass as
many points as possible and so
middle of your control panel you
can track the movement and
deliver a killing laser bolt.
wreak revenge on the dreaded postion of the enemy defences. In the silo
Q. Ergons. After a few practise missions
CO At first you'll tackle the light you'll be able to take on the All this takes its toll on your fuel,
laser power, shields and meagre energy to continue your game.
missile supply but luckily you Starglider was written for q
can use some of the planet's Rainbird by 3D experts, Realtime
installations. Docking with an Software (3D Starstrike) and it's L m t /
Alliance space station repair silo their best game yet. It was
will bring a welcome breather originally released on the Atari i i MM
as well as repairs and even a ST which is almost identical to
special mission. To refuel you the 128K Spectrum version with
y v
must fly at low level between the Its impressive music and
twin towers of the plasma energy digitised speech! The 48K version
station and run along its lines has the same action packed
and pull out when you reach gameplay but without these V5>f I J
the third single tower and you added features. A must for all
will have absorbed enough Spectrum owners.
Melbourne House
release a 'customise a
ooin-op classic*
package.

Marble Madness
Construction Set
Melbourne House
£8.95
orble Madness, the coin-op
game was an original that like
all good ideas has spawned
numerous clone games In the
same vein. Gyroscope
(Melbourne House) and
Spindizzy (Electric Dreams) have
already appeared and the
official Marble Madness game
was released on the C64 But
what of the Spectrum?
Implementation problems
mean that a pure conversion is
out of the question. So if you are
going to have to change the clock when you reach the easier, or just different. You can
game a bit, why not change it a bottom of the screen, and any also test screens, and save/load
lot? The Melbourne House bonuses that you have picked the entire game to tape.
conversion, whilst retaining all of up on your trip down. Otherwise This selection of the program
the spirit and playability of the the game is very simitar to makes the whole game that
original game, also has a lot of Marble Madness in layout and much more interesting, long
extras (and very few omissions). ail the fine detail, like the after Commodore 64 owners will
So much extra has been broken ball being brushed up. is have completed the original
crammed in that you soon forget all there. game, Spectrum owners will be
about the graphical differences The construction part of the designing better and more
with the original. game lets you edit the screens fiendish screens for one another.
The game is based on rolling as much as memory will allow. The best Implementation that
a marbfe down an isometric 3D- The editing system is remarkably could have been made of this
ish landscape that has holes, simple, and fully icon driven with well thought out game.
slippery areas, barriers, lifts, a two-thirds scale representation
drains, conveyor belts, vacuum of the screen that you are
cleaners, slime monsters, enemy working on with the rest of the
marbles, bonus areas, acid, and screen taken up with the Icons
of course the goal — which is and chunks of isometric building
the object of al! your efforts. In blocks to manipulate. So you
the Melbourne House variant of can move your joystick around
the game some of these and edit any screens that you
hindrances are missing — but it want, to make them harder (!),
doesn't seem to help you any.
Also the level system Is worked
out rather differently. Each level
is composed ot a static screen.
Instead of smooth scrolling a
long level up, the screen stays
stationary and shifts up when
£
<
you get to the bottom. After
eleven of these screens you go
back to the beginning and start
again, but taking your time
O bonus with you.
The timing system works in a
similar way to the original, you
start with a certain time limit in
which to get to the bottom of the
first screen. If you get to the
bottom of the screen before time
then your remaining amount
O gets added to your time for the
ui next screen.
CL Scoring is assessed on how
CO much time you have left on your
CR
Advice from Ray Elder on protecting programs and
disabling the break key in this month's technical helpline.
The following Utile program
Program Protection should do the trick, LOAD It
GE(> =) 03 37
Subtract GTO
30
NOT
Dear Sir, and RUN it and one problem NE«>) 03 30 30
• ^ • I am very fond of making solved: Note the program SAVEs the Subtract NOT NOT
games which compel the code and this needs to be loaded into GT(>) 03 36
player to do some thinking to succeed. your program using a line such as Subtract LT0
But I hove one problem. I already know CLEAR address-1: LOAD " " CODE LT (< ) 03 37
how to stop my programs from being address: RANDOMIZE USR address Subtract GTO
broken into while loading or during the 10 DATA 33,15,0,9,34,176,92,235,42, EQ (=) 03 30
game, but I do not know how to over- 61,92,115,35,114,201 Subtract NOT
come the problem ot breaking in while 15 DATA 58,58,92,60,40,2,254,9,202,3,
INPUTing variables, i.e. 10 INPUT a 19,33,68,92,203,126 There are two other instructions
All the user has to do is to type in a 20 DATA 40,11,58,71,92,6,119,42,69,92, which you may find useful and they
whole lot of a's or any other letter and 34,66,92,33,0,0 both need a single value on the
the program will stop with a "2:Variable 25 DATA 124,50,113,92,34,11,92,42,176, calculator stack, they are:
not found" report and thus leaving the 92,22,942,66,92, GEO (>=01 36 30
program open to hackers. 30 DATA 195,158,27 LT0 NOT
Please could you help me 40 CLEAR 65399:FOR 1=65400 TO LE0(<=0) 37 30
overcome this problem. 65463: READ a: POKE Ifl: NEXT I GTO NOT
Yours sincerely 45 SAVE "BREAK" CODE 65400,64 Using these saves a byte or two and
Peter Harrison. Harare, Zimbabwe. 50 RANDOMIZE USR 65400 you do not have to leave the calculator
mode
Well the most simple solution Yours faithfully
is to use a temporary string Ray Reeves, Harlow.
input instead of a numerical
variable and lo validate it before
converting It to numerical. Suggested
lines are: Hints & Tips
10 INPUT LINE a$: IF a$= " " THEN GO Finally, a couple of useful hints
TO 10 and tips from readers
20 LET flaq=1: FOR 1=1 TO LEN a$: IF Dear Sir, Dear Sir,
a$(|)<uO,rORa$(l) >"9"THEN LETtlag=0 Many thanks to Toni Baker tor
30 NEXT I: IF NOT tlag THEN GO TO 10 explaining why the conditional oper- •
40 LET a-VAL a$ ators would not work on the Spectrum I recently purchased a Star
This is still vulnerable, and of course (Machine Code Calculator Pt3. Sept). I Gemini 10xi printer and ZX
the POKEs that are usually used to had no idea that the code should also L PRINT 3 to use with Tasword 3.
cause the Spectrum to crash have to be be in the B' register. Just as other readers, I found that the
lurned off to prevent the computer from However I did manage to get printer control characters ruined the
locking up around this at the time by substituting right justification. I hove corrected this
A solution would be to use INKEYS Instructions which are independent ot by incorporating code 32 in the control
which doesn't effect the 'protection' that the B register, fhese are: code sequences when customising Tas-
causes a crash on using the INPUT lines word. This code makes the printer print
of the screen, In this case try using Ihe LE(<=) 03 36 30 a space whilst effecting whatever
following code. Note that the screen Subtract LTO NOT change in printer mode you require.
postion 0.0: can be any position of your I hope this will help other readers.
choice. P.F. Green, Rotterdam.
10 LET a $ = " "
12 LETt$=INKEY$: IF t $ = " " THEN GO TO
12
13 IF CODE IS—13 THEN GO TO 40
14 IF t$ < "0" OR t$ > "9" THEN GO TO
12
15 LET a$=a$+t$
20 PRINT AT 0,0^3$
30 IF INKEYS < > " " THEN GO TO 30
40 LET a=VAL a$

Bad Breaks
I Dear Sir,
You have often said that It
l/s possible to disable the
break key, how about telling us (relative)
newcomers how to do this My brother
bet me he could crash any of my
programs and this would be a useful
way of eliminating one way of him
aomg so.
Robert Giles

49 ZX Computing Monthly * February 1987


Sl-I
The page where small
1 BORDER it PAPER 1: INK 7! C
is beautiful!
LS
hen we printed BL J. Kamphuis' 10 DATA 5 8 , 0 , 2 5 0 , 2 4 5 , 6 , 4 , 2 0 3 , 6
HEX/DEC converter In the
October issue I commented on 3,16,252,205,28,250,50,0,250,241
the fact that it only handled ,230,15,205,28,250,50,1,250,201,
numbers 0 to 255 and suggested
that you may like to extend it to 198,48,254,58,216,198,7, 201
cover the usual range 0-65535.
Several readers rose to the 20 FOR +=64002 TO 64035: R E A D
challenge, but by far the most
original is this effort from Mr. A. a: POKE f,a: NEXT -f
Welsh. 110 PRINT : INPUT "Dec Value ?
"f e
HEX/DEC
112 IF e=0 THEN PRINT ej: PRIN
This program uses a trick with T TAB 7(* HEX.=0000";: P R I N T TAB
the RANDOMIZE statement. If the
command RANDOMIZE 32678 Is 20J"DEC.=0": GO TO 110
entered (hen the two byte
equivalent is stored in the system 115 R A N D O M I Z E e
variables called SEED at
addresses 23670 and 23671. 120 POKE 64000,PEEK 23671
tf we then PEEK them and feed 130 R A N D O M I Z E USR 6 4 0 0 2
them into the original routine
one after the other then the 140 R A N D O M I Z E e
conversion is achieved. Also
Included are the two values of 160 LET a=PEEK 64000: LET b = P E E
these addresses in decimal form
and these are printed in the K 64001: POKE 64000,PEEK 2 3 6 7 0 :
machine code structure LOW
byte/HIGH byte, you could of R A N D O M I Z E USR 64002: LET c=PEEK
course rearrange this if you 64000: LET d«=PEEK 64001
prefer.
However, all good ideas 170 R A N D O M I Z E e
usually have at least one
drawback and the main one 2 0 0 PRINT ef: PRINT T A B 7;• HEX
with using this system Is that .="|CHR* ajCHR* b f C H R C c J C H R * d?
RANDOMIZE 0 causes the
number to be placed in SEED to 205 IF e<*255 THEN P R I N T TAB 2
be completely random,
although we probably all know 0» -DEC. • • {PEEK 23670: GO TO 110
that 0 In decimal is 0000 in HEX
50, just for cosmetic purposes 210 PRINT TAB 20| "DEC.=•5 PEEK 2
the program also includes a line 36701CHR* 44|PEEK 23671
to trap input of 0 and to deal
with it separately. 300 GO TO 110

1 REM Short 2
10 INPUT "Address for storage: Font
M a : LET b=15616: FOR f = a TO a+7
This routine is yet another
68: POKE 16384,PEEK b: FOR g=0 T variation on the 'thicker'
CO O 7: IF POINT (g,175> THEN LET character set fonts that you all
seem so keen on producing, we
g«g+l: PLOT g,175 include this one because It uses
a different approach to that of
20 NEXT g: POKE f,PEEK 16384:
O LET b»b+l: NEXT POKE 23606,a-
most other programs of this type
and is Interesting to compare
& 256*INT (a/256): POKE 23607,INT
with the more usual approach.
This one was supplied by

o
Peter Zoetway of the
*a/256)-l: CLEAR a-l: FOR f=32 T Netherlands.
z O 128: PRINT CHR* ff: NEXT f
cn

50 ZX Computing Monthly * February 1987


\ Big copy
Scroller 1 REM Short 3
m
\
Last month we published a Giant 5 CLEAR 29999
Copy program, this month we Another one from Holland, this 10 FOR (<=30000 TO 30033: READ
present a copy routine that is time from Paul van Duljn. This is d: POKE k,d: NEXT k
not so large but, due to the a versatile screen scrolling
shading effect produces a program which operates on the 20 DATA 62,0,8,205,60,117,8,61
printout which would grace most top seven lines of the screen. The 30 DATA 183,32,247,201,33,0,64
computer room walls. program is located at address
The program works with the 30000 and before use you need 4 0 DATA 224,0,0,0,6,32,203,30
usual ZX type of printer, Sinclair, to set up exactly the way in 5 0 DATA 35,16,251,25,62,72,188
Alphacom, TS2048 or GP50s and which it operates by using the , 200
prints in four sections which following POKES:
60 DATA 24,240
have to be glued together.
Our thanks to Jean-Pierre POKE 30021, l e n g t h _ o f _ t h e _ 70 PRINT "ZX COMPUTING ZX COMP
Overbeek, yet another reader line (max 32 characters) UTING ZX COM1234567890ABCDEFGHIJ
from Holland. POKE 300001,8'PEEK 30021 KLMNOPBRSTUV
1 REM Short 3 POKE 30002,256—PEEK 30021 100 PAUSE 100
10 CLEAR 49999: LET adr-30000 POKE 30013,start position__of_ 110 LET START-USR 30000
20 LET «-10: LET b-111 LET c-1 line (0=0,0 and 255=7,31)
111
2: LET d-13: LET e-14: LET f-15
Paul suggests, and I found it to 120 REM POKE 30001,NUMBER_OF_TI
30 FOR tj-100 TO 200 STEP 10: P
EAD n»,tot be true, that the best way Is to MES_TO SCROLL_BY_ONE_PIXEL_TO_TH
40 LET w-16*VAL s*ti>+VAl a*(2 completely fill the screen lines 0 E_RIGHT (256-COMPLETE LINE WIPE)
) to 7 with some characters and 121
30 POKE adr,w: LET adr-adr+l: then experiment by poking the 130 REM POKE 30013,START_OF_LIN
LET tot-tot-H above addresses with various
60 LET «*-•*( 3 TO ) : IF • • < > " E (0-0,0 AND 255-7,31)
numbers before calling the
THEN GO TO 40 routine with LET l = U S R 30000 131
70 IF tot<>0 THEN PRINT ' E r r o 140 REM POKE 30016,256-PEEK 300
r In I In* *iq: STOP 21
80 NEXT q Calendar
90 LOAD "SCREEN* : RANDOMIZE 141
USR 30000: GO TO 90 With the New Year upon us this 150 REM POKE 30021,TOTAL_NO_OF_
100 DATA *3»003239c33a37c33238c program from old hand Robert CHARS (32 MAX)
33a38c34*3a39c347c3*3cd89c4fIcl3 Glavis is most appropriate, it
*0B323dc3»37»323cc32f773a39c3473 produces a unique calendar
a58c34+c3f3cd4b*,6133
110 DATA *c4f lel7««607323aq37M made up of SCREENS, either your
638cb3*cb3fcb3*323bc3e33a3cc34<f0 own designs or using those of 1 REM SHORT 4
608cb40cc»7e3cb79cd0ac4cb2110t2c commercial programs. 10 DATA 5,6.1,1,2,3,4.1,6,7,1
179c6083238c 3e1•,£721 As there are twelve months in
20 DATA "JANUARY",31,"FEBRUARY
120 DATA *233a3dc33<l323dc5c26f c the year you will need twelve
33«39c33c3239c3+»C0C 233c 3060a 4 3c screenS pictures, PLUS an extra ",28+LEAP,"MARCH",31,"APRIL",30,
3cdcd0rc1f110f73a37c3c6403257c5+ one for the title page telling you "MAY",31,"JUNE",30,"JULY",31,"AU
»00c 230c 3c d c Be 4 • , 6783 it's a calendar or wishing Happy GUST",31,"SEPTEMBER",30,"OCTOBER
130 DATA *c9«3c33a3*c33ct»21cat New Year etc The program can •,31,"NOVEMBER",30,"DECEMBER",31
dc3 f mIc*02c4323*c3c111c 93»81c 3f be used for years from 1987 to
7c3cdcd0»3*01c3f7c33a3bc3cal3c43 30 INPUT "WHICH YEAR? "JY: IF
1995.
•3ac3c 3*3d d 2169',7623 A good idea is to get all Y<1987 OR Y>1995 THEN GO TO 30
140 DATA "c447f P00c a26c4110400d thirteen pictures on one tape 40 RESTORE 10: FOR F-l TO (Y-l
d 19101c 21 < i3 a 3a 3»c 306004 f 09060 4 7then simply start and stop the 986): READ X: NEXT F: LET LEAP=0
•cb27cb27cbZ7cb27dd3600bZ77dd231
120001 91 0* apI c1",3019 tape each time the program I IF X< >INT X THEN LET LEAP=i:
130 DATA *c9cb39cb39cb3978eb3(c requests and searches for the LET X-INT X
b3fCb3f2100381 1 200047* <*00ca67c4 1 next picture. 50 CLS J PRINT "LOADING FRONT
9|»» d09c90f0f0»0f0a050a030c01040 Many Happy New Years . . .
PICTURE-START TAPE"
301 040206080208*, 3342
160 DATA '000800020000040000000 60 LOAD ""SCREEN* : COPY : LPR
00000210040dd21b8c4cb39cb39cb391 INT •»••
6003919780608cb7fc2«9c4dd23dd23c 70 RESTORE 20: FOR F=1 TO 12:
3b4c4dd3600dd23*,4330 READ M*,M: LET M*=M*+"*"+(STR* Y
170 DATA *dd3»00I9dd231710e6c91
00008000080004000200400020001001 ) <3 TO 4> : LPRINT " "
608010018210040cb41cadac4cb3*c3d 8 0 CLS : PRINT "LOADING "|M*»"
cc4cb26230b78b1•,3817 PICTURE"
100 DATA *c2d0e413c2c«c406002H 90 LOAD ""SCREEN* : PLOT 0,0:
f 3778cb3fcb3* 772310f 721003936472
310*b21003a78cb3fcb3i 77230478* e0 DRAW 0,175: DRAW 255,0: DRAW 0,-
0c 200C32M* 3836*, 3338 175: COPY
190 DATA *00dd2137c32100390»20d 100 CLS : PRINT AT 1,16-(LEN M*
d 3600dd230608cb7»c«2ac3367823cb2 /2)|M*''*'* " S M T W T
2104 40d79+»00c21cc3c977440000344
400003634000034 * , 4324 JANUARY'87 F S"
200 DATA *2a232«372a237400072aa 110 LET PX-9: LET PY=(X*3)+4: F
4000278a40003a8a4- , 1076 OR G-l TO M: PRINT AT PX,PY-(1 A
5 M T u T F 5 ND G>9)(G: LET PY=PY+3: IF PY>25
THEN LET PY-7: LET PX-PX+2
1 2 3 120 NEXT G: LET X-INT (PY-4J/3
A 5 'ft e 9 10 130 PLOT 0,153: DRAW 255,0: PLO
11 12 13 14. 15 16 17 T 0,175: DRAW 0,-175: DRAW 255,0
13 1® 20 21 22 23 24. : DRAW 0,175
23 26 27 2? 29 30 31 140 COPY : NEXT F

987

L
FIRST STEPS IN
MACHINE CODE
Do you want to learn Machine Code? ZX
regulars tell how they set about mastering M/C
Ray Elder worked, my biggest effort being (Hewson Consultants). Webb D.
a cricket game of some 4K of "Supercharge Your Spectrum"
• first experienced the joys of machine code all hand (Melbourne House) and S.
computing with a £30 Atari VCS assembled (I couldn't afford an Webb's "Practical Spectrum M/C
cartridge which gave 62 BYTES of assembler). Programming" (Virgin) (which
programmable memory, just So, advice to anyone puts routines into context via a
enough to write a simple embarking on this venture. Get a game and demonstrates that
workable quadratic equation good grounding in BASIC first there is no such thing as a big
solving program in a strange especially of the operations of program. Only a collection of
mnemonic type of code. PEEK and POKE. Buy a book little ones!) I still use the first title
The next step was to purchase which is written in the style mentioned as a reminder of
a secondhand ZX81 including which you find readable, Toni what certain op-codes will do.
16K rampack and a couple of Baker's "Mastering Machine I also disassemble routines
books for £70. I well remember Code on Your Spectrum" is the (e.g. MCODER III) to see how
the joy of writing the simple equivalent to my first book but it other writers have gone about it.
soundless, black and white takes some slow careful reading. It is essential to have an
block graphics wonders of that Ian Logan's book Is also good assembler. Working with just the
era, and also opening the but check out a good bookshop decimal or hex equivalents is
"Mastering Machine Code on with a variety of titles for one useless.
your ZX81' book by Toni Baker. which suits vou. Most of all it is essential to
I also remember closing it Persevere. Buy an assembler, have a good working
after being completely they'll save you much time and knowledge of the Spectrum
bamboozled by Ihe first three frustration. I use the Picturesque firmwear (D FILE. System
pages — Hex numbers and one, it suits my needs, and start Variables etc) as all routines
memory locations! small, convert small,routines operate on these. A ramble
After about four months of from a larger program first and through the ROM is useful,
mastering the easy but buitd it up into a collection of picking up useful routines,
intriguing instruction manual routines which can be called ofterall why rewrite ones that are
(remember LET EGGS=12 and from one master routine. already there?
finding the square root of an If you have developed your Don't try for the sky too early.
EGG?), I was forced by a programming on a modular or Start with short routines to test
rampant Pancreas to spend a structured basis then the out instructions like the JR
few weeks in hospital. My wife transition to machine code will condition, displ. ones., until
brought in all my computer be an easier one to make. I was you're familiar with what they
books, I was well and truly a notorious spaghetti can do. Remember that what is
hooked by then, and the only programmer and I suffered until I in BC returns to the screen so
one I hadn't yet managed to learnt to plan and simplify. you can arrange for this to hold
o read, due to memories of my first
abortive attempt, was the Toni
I wish you w e l l . . . a suitable figure to tell you
whether you ve jumped or not.
z Baker one. Finally, remember that M/C is
Sheer boredom drove me to not the be all and end all of
5 open it again and. with my Clyde Bish programming. Many v. good
slightly greater experience. I programs only use M/C where
< found some areas actually There are, I think, two necessary, e.g. "The Forest".
made a strange kind of sense... approaches to learning M/G I've "Tasword" and the recent super
I actually read the book from tried both and it will be obvious series by Alan Davis.
ot cover to cover twice and in the from what follows which was best
process found a new awareness for me.
O and excitement developing. You must appreciate that Z80
O When I was discharged ! Assembler is as much a Carol Brooksbank
hurried to try out this new language as Basic, Pascal,
ot knowledge by entering the first French and German. Thinking It should be 'How I started to
a. program. back to learning one of the learn machine code,' because I
It didn't work. latter, I didn't learn isolated don't think I shall ever know all
However I was now words out of context, but learnt there is to know about it, and I
determined to succeed and to use them in phrases I applied am certainly still learning now.
corrected the misprints and tried the same logic to Assembler. About three years ago it
again, this time success. I looked at simple routines became clear that a lot of what
I purchased Ian Logan's book (rather than learnt lists of op- I wanted to do with the
on ZX81 machine code and my codes and what each would do) Spectrum was impossible in
O knowledge deepened, I read all via books that explained what BASIC so I looked for a book
III the articles I could find but most was happening, e.g. Hewson 8i about machine code. Toni
a importantly I wrote, rewrote and Hardman's "40 Best Machine Baker's "Mastering Machine
</> rewrote again code until it Code Routines for the Spectrum" Code on your ZX Spectrum"

52 ZX Computing Monthly * February 1987


(Interface), had just been Programming" (Interface), took a book which builds on this
published and that was the one me a stage further, and I now principle. All 40 routines are
I bought. It is written in a style find Rodney Zaks' "Programming analysed by the authors; they do
the beginner can understand, the Z80" (Sybex) invaluable. all the hard work for you!
and yet goes pretty deeply into I have learned all I know If you are not a member of a
the subject. Toni's printers had about machne code from books, local user group, then join one!
made quite a lot of mistakes in and although I now have quite Most groups will have a wide
the early copies, and an errata a collection of books on the range of abilities amongst their
sheet was produced. I decided subject, those are the ones I members. You'll find beginners
to see how far I could get before would grab if there was a fire. like yourself; I found talking over
I had to send for it. In fact. I machine code problems with a
never did send for it. I soon group can be very helpful (and
discovered that the listings with it's particularly good for your
the mistakes were the ones David Nowotnik confidence in your own abilities
which really made me study. when you can start to pass on
You cannot get away with typing I found BASIC on the ZX81 was advice). And, of course, in a user
in the listing and going on to marvellous until I wanted to work group there'll be experts at hand
the next chapter without at more than a plodding pace; to help you as well.
bothering to understand what then Z80 machine code Incidentally, I now find the
you are doing if you have to became a necessity. My first Zaks books a very useful
trace a printing error and put it thought was to go for one of the reference text.
right before the program will all embracing reference texts; I And that's how I learnt
work. You really have to work chose "Programming the Z80" by machine code!
and grasp the logic and the Rodney Zaks. That I found so
procedures of the program. heavy going, I almost gave up
Toni's book is still the most Fortunately, about the same
important in my library. I have time, Toni Baker brought out her Toni Baker
lost count of the number of times book "Mastering Machine Code Like many other people, my first
I have been stuck over on your ZX81". That was my ever experience of home
something in one of my own salvation. Easy to read, logically computers was the good old
programs, and have found some building up knowledge, with Sinclair ZX80. This, in case you've
hint or explanation In Mastering example routines to try all forgotten what it was (or never
machine code' which has shown through the book. The Spectrum knew in the first place), was a
the way forward. Once I started equivalent of this book Is Just as white plastic doorwedge-shaped
to write programs, Ian Logan's good. slither about six inches square
"Understanding Your Spectrum" Analysing, and discovering for with a tiny keyboard printed on
and "The Complete Spectrum yourself how other people's its surface. It had only 1K of RAM
ROM Disassembly" by Ian Logan machine code routines work is altogether — although you
and Frank O'Hara (both an excellent way of learning. "40 could upgrade this to 4K by
Melbourne House) became Best Machine Code Routines tor plugging a little white box into
essential. William Nitschke's the ZX Spectrum" by John the back. The ROM, believe it or
"Advanced Z80 Machine Code Hardman and Andrew Hewson is not, fitted into 4K. The ZX80 knew
nothing about integers greater
than 32677, and decimals were
R A C _T_ I C A L a complete mystery to it. If you
can't remember the old ZX80
ISPECTRUM take a trip to the Science
MACH
E II N E Museum — you'll find one there.
The ZX80 did, however, have a
redeeming feature. Three
keywords which I didn't
• P R O G R A M M I N G understand. Nobody I spoke to
knew what they were or what
they did. The words were PEEK.
POKE and USR. PEEK and POKE
seemed to do nothing except
cause abject confusion, and the
?°Mst purpose of USR seemed to be to
invariably crash the machine. So
I got hold of a copy of Rodney
JtOUTlHES Zak's book on the Z80 chip.
Before long I worked out that if
TftUM you POKEd into consecutive
'»rmri„ addresses the codes for Z80
instructions, and then did USR of
the first address — the machine
didn't crash!
Before long I was finding out
the best places to put machine
code — I'd got it all sussed out
- and then DISASTER! The ZX81
came out and I had to learn
things all over again. The
Spectrum came out and the
same thing happened. Now at
last I think I'm beginning to get
the hang of the Spectrum, t use
Dr Ian Logan and Dr Frank
O'Hara's book (The Cpmplete
Spectrum ROM Disassembly) like
Jehovah's Witnesses use the
Bible. And the rest, as the saying
goes, is mystery

53 ZX Computing Monthly * February 1987


A
Head biting, gut
ripping, face hugging,
people shredding...

Aliens
Electric Dreams
£7.95
M
l ^ i p l e y , the sole survivor of the
crew of the Nostromo that was
chomped by a single Alien in
the original film, now reluctantly
leads an assault on a base
packed with alien eggs, warrior, Cv i -
<1
> iv
>
.*
face huggers and queens. Their
mission is genocide!
The target is a human colony
that was built on the remote
W b

%
planet containing the alien
eggs. The Aliens wiped them out, \ ; • 1
now they're after y o u . . .

i *
You command a team of six
troopers led by Ripley which
includes Gorman, a space V L
marine. Hicks who is noted for
fast reactions, the android
Bishop, the tough Vasquez and
Burke (the Company man). Each
is armed with an alien-frying
smartgun that can take out a
warrior with a single shot at its
head (or three to its body) and is
also useful for blasting doors Acid complex. I also found it useful to
open or sealing them by taking blast the doors and the locks to
out the lock mechanism. mark a route through the maze
Each crew member must be Aliens can still be deadly even for the rest of the team to follow,
ordered separately either by once you've kitted them as they since you haven't got time to ask
issuing commands (e.g. 5N , can leave impassable pools of directions when you're being
move north five rooms) or by acid in front of important doors chased by aliens.
direct joystick control. I found and bio-mechanical growth all Some rooms have special
this to be the better, although over the walls. This must be significance, such as the
slower, method as you could cleared otherwise it will spread armoury which automatically
ferry your crew room by room with disastrous effects. The air recharges your smart guns, the
through the deadly maze of ducts will become infested with control and generator rooms
corridors. If you find an alien (or alien eggs and soon you'll be that must be defended and the
an alien finds you) you'd better swamped with face huggers. Queen's chamber that must be
be quick before its jaws get you. Besides if it fakes control of the taken to win the game.
You're given a fighting chance generators you'll be plunged This is not an easy game to
as a proximity alarm warns of a into darkness and a hopeless play as it demands almost total
nearby alien. situation. concentration coupled with a
If a crew member is attacked The screen display shows the steady fire button finger and a
while you're controlling someone view ot one of your crew as well cool nerve. One slip could cost
else then the aliens will try to as their gun sight. Underneath you your entire mission.
take them over. This is that is a picture of that team Very few games have such
represented by a health bar. member, their current atmosphere that compel you to
which is normally green, fuming ammunition level and a display return for more and more until
yellow. You can save them if you for each human showing their you finally succeed. Aliens is an
can get to them and kill the current state of health and the excellent game based on a
alien before the bar turns number of the room they're in. superb film and is undoubtedly
purple. Panicking at this stage These numbers are essential to the best licensed game yet
can cost you your entire crew! find your way through the produced.
w*
IIjAJ*)

> .1 ilvl lMl I

^ I

Ml
VII'illIK /

I OiUWi'OO ]

'Hi*

RIPLEV
001 HICKS I

G n n m n n

H I C M 5
010 0 0 0 0 0 3 0 0

t?. . *
>

i V i
F-]

P
ery short introduction this exactly well known, is he?) Now their current Quill utilities with
month because there's a lot to fit that's something Ocean would The Press text compressor, which
in. You see. at the time of writing, never dream of . . . contains numerous other
the Christmas rush is in full But enough of these desirable features.
swing, so lots of games have deranged ramblings, on with my CRL emerged as a major —
come in for review. Four major and very successful — adventure
ones — all of them high quality publisher by bringing us games
— are reviewed in depth here. Picks of '86 from Delta 4 and Saint Brides.
Among them, Dracula is the first Level 9 showed off their stunning
game ever to be given a rating 1986. A good year for Spectrum new parser in Price of Magik
by the British Board of Film adventuring? Now we're into '87 and Worm In Paradise, but
Classification. CRL obtained this that question bears looking at. persisted with their abominable
as much for publicity as It was the year in which the graphics. At the end of the year
concern for the country's youth I Quill became perfectly there was a flurry of licensing
would think. Very young children acceptable for writing full deals, ranging from Asimov to
might find it distressing, but I priced adventures with, thanks to The Archers; previously this
doubt they'd understand the the astonishing chart success of practice had been confined
language. There's certainly Delta 4's games. A new mostly to arcade games.
nothing corrupting to, say, over adventure utility. Incentive's I did not feel, however, there
twelves; but such is the stupidity Graphic Adventure Creator, was one game which really
of Britain's rating system, if a arrived to rave reviews. It has so stood out, and I feel Spectrum
something is deemed unsuitable far failed to spawn the number adventures are not as good as
for three year olds, it's banned of games that The Quill has they could be. Although the
from fourteen year olds as well. been doing, and looks set to be general standard from
Also The Colour of Magic, a knocked off its temporary mainstream software houses is
licensing deal which would pedestal by Gilsoft's retaliation, high and more consistent
seem to have been motivated a super-Quill' called the nowadays, the last year has
a by the suitability of the siory for Professional Adventure Writer.
Gilsoft also continued their
lacked sparkle. Like arcade
games a year or so ago.
<
a game rather than to cash in
on the title (Terry Pratchett isn't admirable policy of improving adventures have become slick

56 ZX Computing Monthly * February 1987


but not innovative. The licensing steeped In atmosphere. For a here, my dear Watson" replied
deals have provided some good laugh, try using the words the brilliant detective, still staring
much needed originality from a BOGGIT. BORED and DELTA 4 in intently at the copy of ZX
market I feared was running out part 2." Computing. 'And I know the
of ideas. Very few budget 2. Terrors of Ttantoss (Ariolasoft, culprit — Peter Sweasey!" Both
adventures have reached the £9.95): Never played this one men turned round to face the
high quality of some of their myself, but RamJam (of Twice Shy startled adventure columnist
arcade counterparts. And still and Valkyrie 17 fame) wrote it, so huddling in the corner.
NO-ONE — to my utmost it must be good. According to "Very well, I admit it:'
frustration — packages Spectrum John, "this would have ousted stammered Sweasey. "But I can
adventures properly, something Boggit from the top spot bar for explain. Sorry dear readers.
I'll complain about In more the BREAK bug. A different There are several reasons for its
detail next month. approach to adventuring, with disappearance. I've had half the
What have been the good the ability to choose one of time I usually do to write this
games of '86? Well, this is my top three possible ways to carry out month's column, but twice the
five: most acts, and some very tough amount of quality releases to
puzzles. I loved the way you review. I've already used up all
1. The Bogglt (CRL. £7.95): Very could select which brother to my space and much of my time
silly, slick, extremely enjoyable, carry out an action." with the reviews and picks of '86.
from Delta 4. 3. Very Big Cave Adventure Since it's only two weeks since I
2. TWice Shy (Mosaic, £9.95): The (CRL, £7.95): "A parody of the wrote the last helpline, not that
most polished game of the year very FIRST adventure but done in many letters have reached me,
with many of the features I like a wicked way by the girls of St and many of those which have
most in adventures Still need to Brides. Some very involved required me fo go back to
read the book though. puzzles only spoilt by the check the original game, which
3. HRH (8th Day, £6.95): Surprise attempts to make the user feel as I've already explained I didn't
of the year was this amusing as though he was not quite in have time to do. But fear not,
Quilled satire from a minor control of the game." next issue it will return. And in
budget house. A much-needed 4. Rebel Planet (Adventuresoft the meantime, all those who
breath of fresh air with lots to do. via US Gold. £9.95): "A vast have written will receive
4. Jewels of Darkness (Rainbird. improvement over the criminally personal replies as usual, so no-
£14.95): Despite my reservations, bugged Questprobe 3 that Al one has fo wait too long."
you get many weeks of released prior to this. Full of nice "Could you help me? There
adventuring for your money. surprises — who would have are some cases I cannot solve,"
5. Souls of Darkon (Bug Byte, thought that singing to a crag begun Holmes. "Like how to start
£2.99): Another professional snapper could prove Bugsy. How to avoid instant
game with a great atmosphere, beneficial?" death in Kayleth. Then there's
interesting problems but fussy 5. Aftershock (Interceptor, £9.95): Dracula, Hunchback. The
vocabulary. Makes the top five "Would have been higher but for Boggit ..
because it's so cheap. the 80% price increase "Stop!" cried Sweasey. "Of
Only two other budget games compared to Interceptor's last course I can help. Just fill in the
are worthy of a mention; release. However, the artwork of coupon printed here and send It
Seabase Delta which is an Terry Greer nearly made up for to Mindplay. ZX Computing, No
enjoyable adventure let down in that" 1 Golden Square. London
other areas, and John Wilson's Both myself and John W1R 3AB."
Everyday Tale, a Hobbit spoof deemed Bugsy (CRL, £7.95) A few rules: British
with fun puzzles at only £1.99. worthy of a mention. He feels it correspondents, please enclose
Write to me for details about this "a great idea spoilt by lack of a stamped, addressed envelope
or HRH. puzzles." while I feel If was good if you want a personal reply
Talking of John Wilson, I asked fun but lacking that certain rather than wait some months for
Rochdale's master adventurer — something to make it "mega*. the magazine to come out. It
and much valued contributor fo Still, enough looking back. you are writing from abroad, just
Mindplay — what his favourite Let's hope 1987 brings some enclose an envelope — I'll add
games of the year are. His top exciting products. the postage. I try to respond
five reads very differently to within two months but I can take
mine, not least because we longer (on the other hand, you
have different tastes; he might receive an immediate
preferring what I call 'puzzle' The Case of the Missing reply). I only deal with

?. The Boggit: No difference Helpline


ames: adventures. Not arcade games;
nor technical adventures
"Preposterous. Holmes! Helplines (Gargoyle games included, not
here however. Says John: "It had don't just vanish!" bumbled the even Heavy on The Magick).
fo be this, for the sheer amount ever-affable Watson. Finally, please put the name of
of pleasure it gave me. Not the "That would seem to be the game you're writing about
best Fergus McNeil has ever exactly what has happened on the back of the envelope.
written, but full of humour and

THE COLOUR is that to fully appreciate this


game, I get the impression that
OF MAGIC to have read the book helps.
Doing so might also make the
Piranha/Delta 4
£9.95 gome easier.
Rincewind is a rather useless
Er, have you read The Colour of magician, who knows only one
Magic? Na me neither. I want to spell, which he cannot pro-
after playing this Unfortunately, duce. He lives on Discworld,
I couldn't get it from any of my which is carried by four gar-
numerous local bookshops or gantuan elephants on the back
libraries I will order a copy, but of a turtle. And he's broke. So he
the book should have been T h f i n n was q u i e t . Thick, oak can hardly believe his luck
supplied with the game, or at d e a n s a r c h e d l o w o v e r h e a d and when Twoflower, Discworld's first
least an optional, book/game t h e t h i n J a y e r o f what niyht tourist, offers him a vast sum of
package should have been o n c e h a v e 6eer> s t r a w underfoot money to be his guide.
available. The reason I'm sugypsted that i t m<»ht hide Rincewind is the only person
getting so worked up about this r>ore t h a n j u s t t h e f l o o r beneath who can speak Twoflower's
i t .
C n open doorway was s e t i n the
lddershins uaJ), 6eside a
ZX Computing Monthly •flight of worn s t e p s which led
Hore...
language, being an excellent and the scythe over one There's loads to be read (though sequence ot events. So you
translator. But guiding the blun- shoulder was another clue"). EXAMINE is disappointing), and spend time wandering about
dering tourist — who is quickly Death (he has to visit wizards many amusing little occuren- looking tor which action to per-
kidnapped — is not easy. You personally for them to die) was ces, like the Iconograph com- form . . . somehow, whilst I
must also cope with his expecting me to be somewhere plaining he's out ot film enjoyed the descriptions, I felt I
luggage, which propels itself completely different. His system because we took too many wanted more lo do.
using hundreds of tiny feet and has been screwed up, and he's pictures at the Whore Pits. The Because of this, I don't feel
will viciously protect its master none too pleased about it graphics are much better than COM is Delia 4's best. However,
and his iconograph, which is Another problem . . . in any other Quilled game — since there are tour parts, there's
like a camera but contains a Because It's based on Terry Delta 4 don't get the acclaim lots to see and be entertained
miniature imp who paints very Pratchett's book, COMB has a they deserve in this area — and by: which means good value
quickly. diflerent style humour to Delta for the first time ever in Quilled tor money.
This marvellously silly — and 4's normal unsubtle farce and product, they do not scroll up
original — story is just the slart. spoofery. It's more gentle, and with the text.
Having unsuccessfully tried to comes largely trom the strange- However, I fell distressingly
escape the city with Twoflower's ness ot Discworld and the Two- out of control during COM. To
advance fee. I, as Rincewind, flower's naivity. progress with the game, It
encountered Death himself ("it In some other respects this would seem you must perform
had to be Death. The empty bears the tomiliar hallmarks of individual actions in the right
sockets were a dead' giveaway previous Delta 4 successes. place which trigger off a whole

DRACULA (15)
CRL * '
£0.95

Horror has never been treated


properly In adventure games.
Instead ot attempting lo build
up atmosphere, or shock, most
authors abuse the genre by
making camp jokes or mixing
up various legends (for
example having vampires and
werewolves in Ihe same game);
either that, or the game is really
cliched.
How relreshing and wel-
come Dracula Is. By taking the
story seriously, and sticking
closely to the original Bram
Sloker novel, instead of the silly
Hollywood version, this game
comes closer than any I have
played to being quite spine-
chilling. It isn't frightening — I
don't see how a series of
characters on screen could be
— but the horror elements can
be appreciated.
There are three separate
games, which can be played
independently though the nar-
rative Hows through Ihem. In
'The First Night', you are Jon-
athan Harker, a young solicitor
visiting a client in Transylvania
who has purchased a house in
England, and wishes to bring
with him some local soil. The
game concerns your troubled
night at The Golden Krone
Hotel, the last stop over of your
journey. Arrival' finds you realis-
ing that you are a prisoner at
Castle Dracula, and in danger!
Your lask is escape In The Hunt'
you play a different character.
Doctor Seward, a psychiatrist
who receives a peculiar letter
about the 'undead' from his
triend John Harker. But he has
problems of his own: an inmate Then we have the graphics. perhaps suitable in style. Is Despite these niggles. I
trom his asylum Is behaving Although the game is Quilled, difficult to read and entirely enjoyed Dracula a great deal.
murderously. Little does Seward CRL have wisely avoided upper case; some of the mount- It really does feel like participat-
know lhat the normally sub- having split screen location ing dread is lost because you ing in a novel; furthermore, it
dued Renfield is under the in- graphics, clumsily and slowly are straining to read the text. must be the closest conversion
fluence of . . . Dracula! drawn with the Illustrator; their The choice of colours — yellow fro another medium the Spec-
The game has reams of des- crudeness would make a on blue — Is not very suitable. trum has ever seen. Consider-
cription, some ol the longest I mockery of the game's atmos- There's no ram save/load in a ing the subject matter, this
have seen. Evocatively written, phere Instead, when a frighten- game where death occurs should be a Monster Hit, but isn't
it creates a suitable atmos- ing evenl occurs, a keypress more frequently than others, quite stunning enough. Great
phere. You anticipate in fear causes the screen to go black and the vocabulary is oc- value and strongly .ecom-
until, suddenly, the shock and, in the middle, a small casionally too limited. Worst of mended nonetheless.
moments of terror (well, sup- graphic appears to illustrate all, In a game with this much
posedly) occur. On the first nighl the event. But what graphics! text, are the instances ot poor
you have an apparition. "... he Very high resolution and quality punctuation, spelling and
has no face!! Just raw, burned (they look digitised), they are proof-reading. "Transilvania" for
flesh!! . . . the apparition drips suitably gruesome in subject goodness sake! And surely
fetid blood onto my (ace — evil matter and genuinely effective. someone at CRL must know the
exudes trom every pore ot its The game has flaws. First is difference between "it's" and
vile being." the character set which, though "Its".

58 ZX Computing Monthly * February 1987


DODGY tomed to. For example, the two-
some point out how the pet

GEEZERS shop is stocked with animal


food made from other animals,
KAYLETH
US Gold/Adventu resoft
Melbourne House and show us "groups of rosy U . 9 9 (48K)
faced children playing with
spent fuel rods" at the nuclear
So then me old china, will ver waste dump. This is not a Although Adventuresoft. this and down, a hover-pad spins
latest Lever/Jones comedy be a criticism — in fact it's admirable game's authors, are not exactly and so on. This is novel and
nice little earner for Melbourne of Lever/Jones to try something ine same as the late Adventure quite well done, though some-
ouse? You've just finished your different from the new well International, the two com- times too jerky. It also causes
stay at one of Her Majesty's trodden silly style — but don't panies are related, and Kayleth the typing speed to slow down
hotels, which you were sent lo expect a laugh a minute. Un- is visually similar to Al's output. dramatically.
because someone grassed less, thai is, you find cockney What pleasantly surprised me is Normally, graphics of this
about your part in the Long language funny. Melbourne that Kayleth is much better than standard mean low quality
Dltton Spaghetti Caper. Now House expect us to — "there's Al's games, which were always description and adventure but
you want to pull off a big job to lots of catchy phrases for the too close to Scott Adams' poor I'm glad to say this is not the
set you up in the Costa Brava for kids to pick up' waffles the PR style for my liking. case in Kayleth. While text is not
life; and you can have your blurb patronisingly — but it isn't The plot Is good, being up to Level 9 standard, it isn't
revenge in the process. In part used nearly as entertainingly as based on a story from Isaac Asi- ridiculously brief either. There
one of this multi-loader, you ihe Chicago style in that other mov's Science Fiction Maga- are pleasing touches like one
must recruit your gang from the criminal comedy. Bugsy zine. The Zyroneans were an of four random responses lo
local, Easl End lowlife — very Time plays an Important
colourful characters they are part in the game: it changes
too In the second part, you through morning, afternoon,
have to pull off the caper itself. evening, night and the days ol
The game was developed the week. Certain locations will
on the Quill but has been re- only be accessible at certain
programmed'. In contrast to times — so no shopping after
when Melbourne House have dark. The actual adventure has
done this in the past. Dodgy a different style to previous
Geezers does look very different Lever/Jones successes There's
to your average Quilled game. less to solve Instead, a lot would
A noticeable improvement are seem to depend on being in
the few but high quality, instant, the right place (not easy — the
cartoon graphics. However, the place is a labyrinth) at the right
input routine has been badly time having done Ihe right
programmed, and infuriatingly thing earlier on.
repeats letters several times if You a r e deep i n T w i n P e r i l f o r e s t . T h e r e
As such, Dodgy Geezers Is i s a t r a i l t o the U e s t . S t a n d i n g before
you type at speed. My copy is not particularly satisfying to you, snapping i t s c l a w - l i k e mandibles, i s
bugged — you cannot load play. The text doesn'1 liven the a huge two headed H o k k i P a y !
trom tape — which must be cor- game up much, being some-
rected before this Is released. what sparse; and an unrespon-
And the instructions say you sive EXAMINE falls to enhance
can use IT and THEN com- bare locations. Dodgy Geezers
mands; this Is untrue. All not the has an original plot and tries
quality expected from Mel- something different, but I don't
bourne House. think it's entirely successful. P r e s s any Key t o continue.

advanced, peaceful civilis- lyping HELP (they all mean no,


ation until the arrival of the but the variety Is welcome!)
awesome being Kayleth and Vocabulary is friendly enough,
his obsessional craving for and the parser is multi-word! It
Chromazin. Kaylelh enslaves has sophisticated features, in-
the Zyroneans using his android cluding use of IT and THEM in
armies. You, a loyal Zyronean, sentences RAM LOAD and SAVE,
had planned to liberate your GET,'DROP ALL, and best of all,
planet when you were cap- BOM — Back One Move, a use-
tured. When you regain con- lul feature which even Level 9
sciousness, you're strapped lo a didn't include in their lost
conveyor bell, heading slowly release.
but surely towards some Also notable was the Preview
menacing steel claws. You option given at the start of the
remember nothing. game, which shows the player
Like many ol Al's games, Kay- some of the locations he will
leth sets you right in at the deep encounler. Helpful if you're not
rou see the b u r l y f i g u r e of 8 u i t e t - p r o o f end with this predicament. Your good enough to reach them
George, who i s a l s o being r e l e a s e d today. method of escape, and other when playing for real!
George says: "You know, you and me oughta events early on in the game, There are some fun puzzles
90 s t r a i g h t from now on. I don't mind lead you to discover something and the game is commend-
s a y i n ' I ' v e had enough o ' be i n ' in chokey. rather alarming about yourself. ably logical so reasonably
Tell yer wot. YOU bin good ter me i n s i d e . You are a . . . bul I mustn't give easy (what I have seen so far.
Here's the phone number of a mate o ' mine the plot away! anyway). I was very impressed
The graphics are really high with Kayleth; it offers a good
quality; Al's always were the game lor the occasional ad-
besf on the Spectrum and these venturer due to its graphics and
carry on the tradilion admir- logicality, while the hardened
ably. They are instant, high reso- player will appreciate its soph-
lution, colourful and detailed. isticated features and enjoy-
The Lever/Jones team All ol the numerous locations able plot. Very narrowly misses
gained a good repulatlon with are illustrated, an impressive Monster Hit status
their wonderful satire Hamp- achievement since the
stead, and the spoof Terromo- graphics are not notably repe-
linos I think fans of these two titive (although many are sym-
games will be slightly dis- metrical, which presumably
appointed with Dodgy Geezers helps). An added bonus is
The humour is not so farcical 1 occasional animation. Yes. the
nor obvious. The game is true steel claws grab at you while
satire, which means It's less emitting drops of liquid, the
funny than we've grown accus- Mokki Ray's two heads move up

59 ZX Computing Monthly * February 1987


KINGDOM OF MILL

BY JEREMY WILLIAMS

Travelling back in time


\ \
in search of the lost
crystal, you finally
track it down to a /
castle in the mysterious
Kingdom of K u l l . . .
T h e s a n d s- t o p s a n d o u e n t e r the
dense v e g e t a t i o n , Lboking ahead
y o u c a n s e e a «: i e a r i n g
Listing 1
This is the Basic loader program,
which also contains instructions J I I ( I I
for the game. Type this in and
SAVE it with the command: SAVE
I I J t ) i
"Kingdom" LINE 1. r-
Listing 2
The main game listing. Once L
you've typed it all in, you should r
SAVE it onto tape immediately
after listing one, using the
command: SAVE "King" LINE 1.
Then when you want to play the
game you just rewind the tape
and load using LOAD " " and the T h e r e a r e fe w p a ts s i ri t e
game will autorun. .i u n g e

60 ZX Computing Monthly * February 1987


[ Listing 1 ] Listing 2
1 REM J . D . W I L L I A M S 1984
620 RESTORE 9850t FOR n - 2 TO 13
l READ WS: IF v*-W* THEN
1000-M 100*n>
GO TD

6 3 0 NEXT n
0>LET v-PEEK 23613tPOKE 23613 10 LET s«10: LET xy-Ol LET K - 0 640 PRINT "I do not know tha ve
,v-2t POKE 23609,50«POKE 23638,81 : LET H*»"": BORDER Ol PAPER 7i rb "|v$t GO TO 8 0 0
PAPER 6tBORDER 2lCLS iPRINT AT 1 INK Ol CLS t PRINT AT 10,10t"Ple 8 1 0 LET N-INT <RND*7)+3t IF E»(
3,10)FLASH ljBRIGHT ljINK 7|PAPE a s s wait"! LET u=0t LET p»0t LET N)-"DEAD-BODY" THEN GO TO 500
R 3|"STOP TAPE"lLET st-20t DIM e(10,3>: DIM d < 2 0 , 4 ) 8 2 0 LET m-INT (RND*3)-l! LET f -
Kingdom of Kull t DIM a*(10,9)i DIM dt(20,9) INT <RND«3)-1
20 PRINT AT 1,Bf"KINGDOM DP KU 830 LET E(N,1)=EIN,1)+m A N D E(n
10 FOR n - 2 4 TO 1 STEP -It BEEP LL"! LET X-2t LET Y-7 , 1 ) 0 0 AND e<n,2)<>llt LET E(N,2
.1,10 30 RESTORE 9830t FOR F»1 TO 10 >-e(N,2)+f AND e(n,2)<>0 AND e(n
20 INK li PRINT AT 5,0|a*<n TO t READ G«t LET Ef(F)-G*: NEXT F ,2)011
)» NEXT n 40 FOR F-l TO 20t READ G*t LET
850 IF e (N, 1 ) -m-x A N D e<N,2)-F«
30 PRINT AT 10,7| Jtrenty Wl 1 D*(F)-G»: NEXT F
y AND ffl<>0 OR E(N,1)-m-X A N D E(N
150 RESTORE 9BOO: FOR N«1 TO 10
llama" ,2)-f-Y A N D f<>0 THEN PRINT "Th
: FOR M-l TO 3l READ F
40 PRINT * 1 | " D D you want instr e "s e*(N)|" leaves"! LET R-0
160 LET e(N,M)«F
uctiona ?" 860 IF e(N,1)-x A N D e(N,2)-y AN
170 NEXT Mt NEXT N
30 IF INKEYS-"" THEN GO TO 30 D m O O OR E (N, 1) —X AND E(N,2)-Y
180 FOR N-l TO 20t FOR M»1 TO 4
60INKEY*-"N" THEN 0 0 TO 1000 t READ F A N D f O O THEN PRINT "Tha "|e*(N
70 BEEP .3,Ot CLS i PRINT AT 2 )|" enters"! LET R-N
,2|"Nafir, in escaping p r u o n e r B70 GO TO 500
from the 28th century was 200 NEXT M: NEXT N 1110 IF a-eoo AND d(9.4)-l THEN
p i n i n g through time whan he 2 1 0 GO SUB 9999: PRINT AT 21,Ot GO TO 2600
dropped a bticon, in the form i POKE 23692,233! LET g»-"LOOK " 1120 PRINT "You have a rough nig
of* crystal, mending out vital t LET K-Ol GO TO 442
ht but sleep soundly"! LET st»st
information to tniny gal ax lea. 4 0 0 LET N—xi LET M-y +3
He M » caught while re-enter i 410 LET Y-Y+<g*(l)«"S" A N D SS-1 1140 LET s-m-lt IF s<-0 THEN GO
ngreal time and was questioned.H )+(2 AND g*(ll-"D" AND dd-l)-<g« TO 1150
e gave the time-zone and also th (1} — " N " AND n n » 1 ) - ( 2 AND g*(l)=" 1145 PRINT "You wake late in tha
• place The caatle in th U" A N D uu»l)> LET x-x+<g»<1)="E" morning"! GO TO BOO
""Kingdom of K u l l A N D ee -1) - (g • (1) = " W " A N D w w = 1 ) 1150 LET I — I NT (RND»7)+3i IF e»(
80 PRINT *1|"Press any key to 440 IF N-x AND M-y THEN PRINT I)-"DEAD-BODY" THEN GO TO 1145
continue ?"i PAUSE Ot CLS "The way "tg*|" is blocked": GO 1160 LET a<I,l>-xt LET a(I,2)»yi
TO 8 0 0 PRINT "You are awakened by a th
90 BEEP .5,0i C L S t PRIN1 AT 2
442 LET A-<100*x)+(10»y)t CLS umping «nd the " ; e * ( l > : " enters
,2;"You, Morner a 28th century
4 4 3 GO SUB 9999 S GO SUB 7000+A+ He seas you and attacks'"! GO
historian have been sent back
Ut INK Oi PAPER 7: PRINT AT 13,0
intime to destroy the crystal.Yo TO 1240
u must seek the c a s t l e of Kull
tO* 1200 FOR 1-1 TO lOl IF t»<I,l)-x
443 PAUSE Ot GO SUB 909Ot PRINT
where the king keeps the cryat A N D e ( 1 , 2 ) - y THEN GO TO 1 2 2 0
"You see-"
alcollecting items and using the 1210 NEXT Ii LET 1 - 0 ! PRINT "Ihe
430 GO SUB 9 9 0 0
m to help you on your journey. 460 IF a-890 THEN GO TO 4000 re la nobody to kill": GO TO BOO
When you have found the cryst 472 IF a - 6 2 0 OR a - 9 2 0 THEN GO 1 2 2 0 IF s* a*(I) THEN PRINT st
alyou must return to your own ti TO 3000 I"is not here"! GO TO BOO
meusing one of the objects.You 480 GO TO 3 0 0 1 2 4 0 LET V=10: LEI z«I+Si IF 1=1
will not have long before the 5 0 0 POKE 23692,233t PRINT t LET OR 1=2 THEN LET Z - 1 5
crystal explodes so be ready. ST-ST-.2t LET sk-<9-p>+3»<d<1,4 126C LET m»RND*5: LET f-RND»5l L
And beware, some items have mo )-l)t IF a t < 0 THEN GO TO 9 5 0 0 ET sk-sk+m: LET : = : + f
rethan one use..." 510 IF R>2 AND R N D > . 8 THEN PRI 1265 IF sk >z THEN LET V-V-2i PR
100 PRINT HO;"Do you wish to kn NT "Tha "|••(R)|" attacks you"! INT "You slash him violently"
ow the words that the program LET I-Rt GO TO 1240 1270 IF sks z + 4 THEN GO TO 12B5
takes ?"i PAUSE Ol IF INKEY»«"N" 520 LET o»-""l LET s»-""t INPUT 1 2 7 5 PRINT "With one swipe you c
THEN GO TO 130 "-"I LINE g* leave his head"
llO BEEP .3,0l C L S s PRINT AT 1 530 IF g*-"" OR g*-"WAlT" THEN 1277 LET eI(I)-"DEAD-BODY"t IF a
, lOj"WORD LIST"(AT 1,10» OVER It PRINT "You are waiting."i GO TO ( 1 , 3 ) 0 0 THEN GO TO 2500
" "t PRINT AT 3,0|"OPEN 800 1280 IF I-R THEN LET R-Ot LET I
(object) CLOSE 5 4 0 IF g*-"!" THEN LET gS-h» •0
<ob ject >"jAT 6,0;"TAKE (ob 550 LET H*-G#l LET g*-g«*" " 1281 GO TD 800
ject > DROP <ob 5 5 3 IF g*-"L00K " THEN G D TO 4 1285 IF sk<z A N D sk>-l-3 THEN L
jact >")AT 9,0|"GIVE (person) 42 ET st—st—1t PRINT "Ha stabs you"
(object) ASK (person) 556 IF g»-"0N " THEN LET u-Ot 1290 IF sk<z-3 THEN LET at-st-2
FOR (object >"iAT 12,0)"EXAMINE ( GO TO 5 0 0 ! PRINT "His sword gashes your c
object)"j AT 14,0)"SLEEP -refresh 557 IF g*-"OFF " THEN LET u-5t hast"
s you,very useful"|AT 16,0|"KILL GO TO 500 1295 IF s t < 0 THEN PRINT "You ar
(parson) -Don't get too 5 3 8 IF g*-"SLEEP " THEN GO TO e killed by tha u |E*(I)t GO TO 9
carried away"|AT 1 1100 500
9,0|"HOW -strength and inventory 3 6 0 IF g*(l)-"N" OR g*(l>-"S" 0 1310 GO SUB 4200
" I AT 21,0|"WAIT" R G»(1)-"W" OR G* < 1)-"E" AND G»< 1330 LET z«=z-fl LET sk-sk-mt IF
ISO PAUSE Ot BEEP .3,0l CLS I P 2) < >"X " AND G * < 2 ) 0 " A " OR G* (1) » V < 0 THEN PRINT "He slips to the
HINT AT 1 t 7 | " S o m e apaclal things "U" OR G*(1>-"D" AND G*(2)< >"R" ground, dead"t GO TO 1277
you should know... THEN GO TO 400 1340 INPUT INKEY*="Y"1 GO TO 126
• BORDER O
562 IF g*-"PAUSE " THEN
160 PRINT AT 3,3|"QUIT -gives c 2t PAUSE Ot BEEP .5,20t BORDER 1400 IF LEN g«<M+5 THEN PRINT "
hoica of aaving 7t GO TO 500 Ask for what?"t GO TO 8 0 0
present gama"|AT B , 5 p " L 0 A D -load 364 IF g»-"QUIT " THEN 1405 LET o * = g * ( m + 5 TO )
GO TD 2 1410 IF LEN o*<9 THEN LET O*«O*
s a saved game back 200
into c o m p u t e r A T 11,3|"! -r 5 6 5 IF g*-"LOAD " THEN ": GO TO 1410
epeats last command 1 * GO TO 8 1415 FOR n-l TO lOl IF s*-e*(n>
500
163 PRINT AT 14,3|"Soma antranc 366 IF gS—"HOW " THEN A N D a(n,1)-x AND e(n,2)-y THEN
GO TO 17 GO TO 1430
as may be locked and need t 00
o be opened with something, 3 7 0 FOR n-l TO 8t IF g*(n)-" 1420 NEXT nt PRINT s*t" la not h
eg t- " OPEN DOOR THEN GO TO 3BO era"! GO TO 8 0 0
WITH KEY""" 5 7 5 NEXT Nl PRINT "WHAT ??"t GO 1430 FOR m-l TO lOt IF o*-d*(m)
166 PRINT AT 19,11"Graphics can TO 8 0 0 AND e(n,3)«m THEN GO TO 1450
be turned ON / OFF" 3 8 0 LET v*-g*(l TO n - l ) 1440 NEXT Mt PRINT "Tha "|«*j" d
170 PRINT ttl | "Press any key to 390 IF LEN g#<-n THEN PRINT v» •es not have a "|o*t GO TO 800
continue"! PAUSE Ot IF INKEY*-"" t" what?"t GO TO 5 0 0 1450 IF R N D > , 3 THEN GO TO 1470
" THEN SAVE "KINGDOM" LINE 0 6 0 0 FOR m-n+1 TO n+9t IF G#(M)« 1460 PRINT "The "|»I|" will not
1000 CLS t PRINT AT 3,0j"When th " " THEN GO TO 6 1 0 give it to you"! GO TO 8 0 0
a program has loaded, andyou are 605 NEXT Ml PRINT "WHAT ??"t GO 1470 PRINT "Tha ";s*|" gives you
shown the picture, pressa kay t TO 500 tha "I oft LET e ( n , 3 ) - 0
o be given the exits and informa 610 LET s*«gf (n* 1 TO m-l) 1480 LET K-K+lt LET d(ffl,4)-lt G D
tion."t LET V - P E E K 23613l POKE 2 6 1 5 IF LEN s*<9 THEN LET »*=s* TO 9 0 0
3613,v+2t BEEP l,0t PRINT AT 20, 1500 IF a-870 OR a - 9 9 0 OR a-lOOO
"t GO TO 615
10|"Start tape" THEN GO SUB 2700
617 IF v * ( 2 ) - " X " AND s*(4)-"G"
8400 LOAD "KING" 1510 FOR n-l 1 TO 20l IF s * O d * < n
THEN LET xy-1

61 ZX Computing Monthly * February 1987


> THEN NEXT ni PRINT "You c a n t is u n b e a r a b l e but you eat it": of f !!"i BO TO 9300
open the "|S*l GO TO 6 0 0 LET st-st+4i GO TO B O O 3 0 2 0 PRINT "But you light your 1
1320 FOR n-11 TO 20i IF d(n,l)-x 2 1 1 0 IF s « C 2 ) - " 0 " A N D d<2,4)«l T antern and the path is clear")
A N D d(n,2)-y THEN G O TO 1340 HEN LET d ( 2 , 4 ) - 0 : PRINT "You ea G O TO BOO
1330 NEXT ni PRINT "There Isn't t quickly"! LET st-st+7: G O TO B 3100 PAPER 7l INK Ot PRINT AT 13
• "»•»)" here"• GO TO BOO 00 ,0t0*t P A U S E Ot LET ••—"You slip
1340 IF d(n,4> >1 THEN PRINT "Th 2120 IF s*(2>-"0" A N D D(7,4>-1 T and bang your head, Strangel
• "|d« (n)|" II already open"t GO HEN LET d (7,4)-Ot PRINT "You ea y, when you awal* you are in d
TO 8 0 0 t heartily"! LET *t«st+9i GO TO ifferent surroundlngs"t P R I N T AT
1330 PRINT "You open the "|S»|". BOO 13,0)0*1 IF a - 1 1 0 THEN LET K-3
I n n d e Is I IF d ( n , 3 ) " 0 THEN 2130 LET k-k+ll IF s » < 2 > < > " 0 " A N t LET y-2
PRINT "nothing"i GO TO 1370 D » * ( 2 > < > " I " THEN PRINT "You ca 3 1 1 0 IF a - 4 7 0 THEN LET *-3t LET
1360 LET m-d(n,3)t PRINT "the "| n't eat "is*t GO TO 8 0 0 y-10
d*(m)r LET D<N,4)-li LET D ( m , 3 > - 2 1 4 0 PRINT "You haven't got any 3 1 3 0 P A U B E 0) 6 0 TO 442
Oi LET d < n , 3 ) - 0 "|l*l GO TO 8 0 0 4 0 0 0 P A U S E Ot PAPER Ol CLS • IF
1370 IF a - 9 9 0 OR a - 2 3 0 OR a - l O O O 2 2 0 0 P R I N T "Save g a m e (y/n) ?"i D(3,4)-1 A N D XY-1 THEN P R I N T "Y
OR a - B 7 0 THEN PRINT "You c«n n PAUSE Ol IF INKEY*-"N" THEN GO ou rember the button in'your r
ow go TO 2 2 3 0 ing and p r e s s It.Instantly you a
1372 IF A - 2 3 0 THEN LET NN-ll PR 2220 DIM F(3)l LET F(l)-Xt LET F re back In your own tine where y
INT "North" (2>-Yi LET F(3)-STl S A V E "KINGDA ou arrive to a h e r o ' s w e l c o m e " )
1 3 7 J A - 1 0 0 0 OR a - B 7 0 THEN LET ee TA" DATA D O t SAVE " - " DATA E O l GO TO 4 0 3 0
-li PRINT "East" S A V E " - " DATA F O i S A V E " - " DAT 4 0 1 0 P R I N T "You don't know how t
1374 IF a - 9 9 0 THEN LET MW*1I PR A D*()t S A V E DATA E * O i GO T o return to your own time and
INT "West" 0 300 lie you are thinking the crystal
1380 GO TO 8 0 0 2 2 3 0 IF INKEY*-"" THEN B O TO 40 e x p l o d e s " ! 6 0 TO 9 3 0 0
1600 FOR n-11 TO 20s IF s * O d * ( n 30 4 0 3 0 FOR f - 1 0 TO 30 STEP 2i BEEP
) THEN NEXT nt PRINT "You can't 2 2 6 0 G O TO 2 2 3 0 .03, F i BEEP .02,0i N E X T F
c l o s e a "|s*: GO TO BOO 2 3 0 0 FOR n-1 TO 20t IF s*-d«tn> 4 0 4 0 PAUSE Oi CLS ) PAPER 3I GO
1610 FOR n-11 TO 20i IF d(n,l)-x A N D d (n,1>-x A N D d<n,2)-y THEN SUB 99901 LET l-6i. GO S U B 9930l
A N D d(n,2)-y THEN GO TO 1620 RESTORE 2330+ni READ g*t PRINT " PAPER li INK 2i FOR f - 7 TO 14) P
1613 NEXT nt PRINT "There isn't The "js«|" is "ig»« GO TO 8 0 0 RINT AT f,3|" "i NEXT fi PLO
a "|>*|" here") GO TO BOO 2 3 1 0 NEXT ni PRINT "The " t s * j " i s T 24,36! DRAW 0,64t DRAW 40,Ol D
1620 IF d ( n , 4 ) - 0 THEN PRINT "Th n't her*"i GO TO 6 0 0 RAW 0,-641 DRAW -40,Ol FOR f-1 T
e " i d* (n) I " is already closed": 2331 DATA "sharp" 0 6t PLOT 38+f,I20i DRAW 6,0,-PI
GO TO BOO 2 3 3 2 DATA "delicious" ) NEXT *
1630 PRINT "You c l o t * the ";s»t 2 3 3 3 DATA "strong" 4041 FOR f—29 TO 6 0 STEP 20l PLO
LET d(n,4)-0t GO TO BOO 2 3 3 4 DATA "small" T f.lOO) DRAW 10,0) D R A W 0,lOi D
1700 PRINT "You are •feeling "(<" 2 3 3 3 DATA "fit for a king,and yo R A W -10,Ol DRAW 0,-10i NEXT f
very strong" A N D st>-20)tI"mtron u notice a small button set on 4042 FOR g - 1 2 0 TO 2 O 0 STEP 80t F
g" A N D s t > - 1 3 A N D st<20);C"healt t h * side" OR f - 0 TO IB STEP 3i PLOT g + f , 7 0
hy" A N D s t > - 1 0 A N D st<13)I("weak 2 3 3 6 DATA "dry" t DRAW 0,70l NEXT ft NEXT g
" A N D s t > - 3 A N D st<10)|<"very we 2338 DATA "smelly" 4 0 4 3 DRAW 10,10t DRAW -120,Oi DR
ak" A N D st<3> 2339 DATA "sturdy, and comfor AW 10,-10l DRAW 100,0) PLOT 120,
1710 PRINT "'You h a v e : - " ' table to lie in" 70) DRAW 18,Oi PLOT 200,70i DRAW
1720 FOR n-1 TO lOt IF d(n,4)-l 2 3 6 0 DATA "useful" 18,0
THEN P R I N T TAB ll("The "jd*(n> 2373 DATA "nothing special" 4030 LET m — 2 0 l LET n-20l P R I N T
1730 N E X T ni GO SUB 4200i GO TO 2 4 0 0 LET WW-It PRINT "The King o # l | " D o you wish to try again 7
800 f Kul1 accepts your gift and i 4 0 6 0 IF m - - 2 0 THEN FOR f-m TO n
1800 FOR N-1 TO lOi IF S * - D # ( N ) n return g i v e s you some food" +1
A N D D(N,1)-X A N D D<N,2)-Y THEN 1 LET d(7,4)-1i LET D(3,4)-Oi PR 4 0 6 3 IF m-20 THEN FOR f-m TO n+
GO TO 1B20 INT "He o r d e r s his g u a r d s to let 1 STEP -1
1810 NEXT ni PRINT "The "t*t[" i you pass west"! LET E < l , 3 > - 5 ) G 4 0 7 0 IF INKEY*-' - Y" THEN GO TO 1
s not here"i BO TO 8 0 0 0 TO 8 0 0 4 0 6 0 IF INKEY«-"N" THEN RANDOMI
1820 IF K - 3 THEN PRINT "You can 2 4 3 0 PRINT "The Bear is d e l i g h t e ZE USR 0
r
t carry the "|s»t GO TO 8 0 0 d with your gift and as he moves 4 0 9 0 BEEP .2,ft N E X T f
1830 PRINT "You take the ";s«: L you n o t i c e an opening leading n 4 0 9 3 LET n — n i LET m--m
ET d <n,1)-Oi LET d<n,2)-0i LET d orth"t LET nn-lt G O TO B O O 4 1 0 0 GO TO 4060
(n,4)-1i LET K-K+li GO TO BOO 2300 PRINT "You search the d e a d - 4 2 0 0 LET P - t - 2 A N D ST >20)-Ml AND
1900 FOR n-1 TO lOi IF s»-d«(n) body and find a "|d«(e<i,3>> B T < 1 3 ) + ( 2 A N D B T < 1 0 ) • ( 2 A N D ST<
AND d(n,4)-l THEN GO TO 1920 2310 LET d(e<l,3),4>-li LET e(i, 3)1 R E T U R N
1910 NEXT ni PRINT "You haven t 3)-0« GO TO BOO 7 1 1 0 BORDER Oi PAPER Oi BO SUB 9
got a "|«*i"to drop"i GO TO 8 0 2 6 0 0 LET K-K-lt P R I N T "You fall 990
0 asleep in the boat, Youawake som 7 1 1 3 LET Q » - " T h e h o l e Is too dar
1920 PRINT "You drop the " n i l L ewhere high up in the mountains k to see."i GO TO 3 1 0 0
ET d<n,l>-xi LET d(n,2)-yi LET d !"l PAUSE Ot LET d(9,4)-0i LET 7 1 2 0 GO BUB 7427
(n,4)-0i LET k-k-li GO TO BOO x-3l LET y-Bt GO TO 4 4 2 7 1 2 3 LET 0 * — " Y o u are in a b a r * r
2 0 0 0 IF LEN g * < - m * 2 THEN PRINT 2 7 0 0 IF LEN g*^-M-<-a THEN LET o* OOA"i LET 88-It RETURN
"Give "i»»i" what?"i GO TO BOO •g*(m+6 TO )t GO TO 2 7 2 0 7 1 3 0 BORDER 2i PAPER 2i 6 0 SUB 9
2 0 0 3 LET o*-g»(m+l TO > 2 7 0 3 IF a - 8 7 0 THEN PRINT "The c 990» PLOT 40,130i DRAW 10,-40,2/
2 0 1 0 IF LEN ol'9 THEN LET o*«o» urtain burns your h*ndt"i LET st -PIi D R A W 40,0,2/—PIi DRAW - 3 , 2 0
"t BO TO 2 0 1 0 -st-3 i DRAW - 4 3 , 4 0 , - P I / 2
2013 FUR n-1 TO lOi IF o«-*d«(n> 2710 PRINT "You cannot open this 7 1 3 3 LET NN-lt LET Q*-"You are 1
A N D d<n,4)-l THEN QO TO 2 0 3 0 entrance"! GO TO BOO n a well furnished room"t RETURN
2020 NEXT ni PRINT "You don't ha 2720 IF LEN 0 X 9 THEN LET 0*-0t 7 1 4 0 LET PAPER Si 6 0 SUB 99
ve a o f t o glve"i GO TO 80 "i 6 0 TO 2720 90i 6 0 SUB 9930i INK Ol FOR f-1
0 2730 FOR n-1 TO lOi IF o * - d * < n ) TO 8i PLOT 0,100+fi DRAW 70,-Si
2030 FOR m-1 TO lOi IF s*-e*<m> THEN GO TO 2730 D R A W 60,Ol DRAW 60,4i DRAW 63,-3
A N D e f m , 1 ) - x A N D e(<n,2)-y THEN 2740 NEXT n: PRINT "You c a n t op i NEXT f
GO TO 2030 en a door with a "|o*t GO TO 7141 PLOT 73,93i DRAW -20,-30i P
2 0 4 0 NEXT mi PRINT s*: " is not h 800 LOT 70,83) DRAW 3,-10i PLOT 200,
ere"i GO TO 8 0 0 2730 IF d ( n , 4 > - 0 THEN PRINT "Yo 97i DRAW - 1 0 , - 2 0 ) DRAW 3,-10) PL
2 0 3 0 IF a - 1 0 9 0 A N D o * ( 4 ) - " G " A N D u, are not carrying a "|o#: GO TO OT 193,70) DRAW - 3 , - 3
s * ( l ) - " K " THEN GO TO 2 4 0 0 800 7 1 4 3 PAPER 7l INK Ol PRINT AT IS
2 0 6 0 PRINT "You g i v e the "|»*i" 2760 IF a - 8 7 0 A N D o * ( 3 ) - " P " THEN ,0»*You C r o s s the m o u n t a i n s to t
the "io»: PRINT "The " J S » J " says RETURN he other side. A steep ravine
""Thank you"""i IF e ( m , 3 > < > 0 OR 2770 IF a - 9 9 0 A N D o » ( l ) - " K " THEN m a d e s l 1 p p e r y by the rain bars yo
RND<* . 23 THEN PRINT "The ";s»>" RETURN ur path."
doesn't want lt"'"and g i v e s it 2780 IF a - l O O O A N D o* ( TO 3)-*'BO 7146 PRINT "You attempt to cro*
back"i GO TO 8 0 0 N" THEN RETURN s it "
2 0 7 0 LET K-K-l: LET e < m , 3 ) - n : LE 2790 GO TO 2 7 1 0 7147 PAUSE Oi PAPER 2i CLS I PAU
T d(n,4)-0 3 0 0 0 PRINT "It is dark in the fo SE 8I PAPER 7) C L S ) PRINT AT 13
2080 IF a - 1 2 0 A N D o S ( 3 ) - " S " A N D rest"I INPUT INKEY*="Y"t IF d < 1 0 ,0|"You slip on a wet rockland
s * ( l ) » " B " THEN GO TO 2430 ,4)-1 THEN GO TO 3 0 2 0 plummet down to the rocks
2090 GO TO 8 0 0 3 0 1 0 PRINT "You s t u m b l e around h beneath") BEEP l,-40i 60 TO
2100 LET k-k-li IF S # < 2 >-"I" THE elplessly and an unknown e n e m y 9300
N LET d(8,4)=0i PRINT "The fish c o m e s up and c h o p s your head 7 1 3 0 F*APER Oi INK 7i BORDER Ol G

62 ZX Computing Monthly * February 1987


0 SUB 99901 PLOT 100,120I DRAW 2
3,-3,Pit DRAW 30,2,P11 DRAW 23,0
,PIi DRAW 30,13,PIi DRAW -20,20,
PIi DR&W -30,-3,PtI DRAW -28,4,P
7208 PLOT 120,901 DRAW 30,20,Pit
DRAW -30,-3,-PI
7209 RETURN
7211 RESTORE 7210t FOR f-1 TO 3i
233,36i DRAW - 4 0 , 2 0
7361 FDR f-1 TO 230 STEP 40l PLO
T f,70+«RND*20>i DRAW 30,0,-PIi
NEXT fi FOR g - 1 0 TO 20 STEP lOt
mi
1 READ n,mi PLOT n,mt DRAW - 2 0 , 4 0 FOR f-g TO 230-<30-g) STEP 40i P
7131 DRAW -20,-3,Pit DRAW -23,0, ,2/PIt PLOT n,mi DRAW 10,30,2/-P LOT f,70+<g«3>+<RND*20)t DRAW 30
Pit DRAW 12,-28,PI It PLOT n, mi DRAW -30,40,2/Pli P ,0,-PIi NEXT ft NEXT g
7132 PLOT 127,lOBi DRAW -13,-I3i LOT n.mi DRAW 13,20,2/-PIt NEXT 7362 FOR f-1 TO lOi CIRCLE 148,1
DRAW 3,0l DRAW -13,-13t DRAW 1, f 00,ft CIRCLE 147,100,fi NEXT f
Ol DRAW 16,16i DRAW -3,0l DRAW 1 7213 PRINT AT 13,0)"You advance 7363 LET ss-lt LET ww-lt LET Q«-
3,13 carefully across themarsh but be "Vour path is blocked by a pile
7133 LET SS-li LET NN—1i LET Q*« fore you are halfwayyou start to of rocks , You search for a way
"Up »bov> the valley a gigntlc •Ink down slowly...You try to s through and find a tunnel
mtorm coma* into vlew , You ere top yourself but there Is not leading south"i RETURN
•eon drenched to the mkin"i LET hlng you can do i GO TO 93OO 7370 BORDER 4i PAPER 4i GO SUB 9
st-st-li RETURN 7219 DATA 30,70,130,80,200,100,1 990i INK Oi CIRCLE 128,116,39
7160 BORDER It PAPER 7t INK Ot G 30,120,80,110 7371 PLOT 173,130! DRAW -23,-90,
0 SUB 9990i LET i-2t GO SUB 9930 7220 GO SUB 8098 Pl/1.3
7161 INK Ot PLOT 128,1001 DRAW 6 7223 LET Q*-"The door locks and 7372 PLOT 140,120: DRAW -63,20,2
4,33,.3/-PIi DRAW 63,23,.9/PIt P you find yourself in a room /PIi PLOT 130,1331 DRAW -60,23,2
LOT 128,100i DRAW -128,73,.3«-PI with a table"! LET ww-li RETURN /PIi PLOT 133,931 DRAW -63,23,2/
7162 PLOT 128,1001 DRAW -30,-44, 7230 GO BUB 8068 PI
.3»P11 PLOT 128,lOOt DRAW 13,-44 7233 LET q#-"The path stops by a 7373 LET nn-li LET »s«li LET ee-
,.4»P1 house"! LET ee-li RETURN li LET Q*-"You continue on down
7163 LET NN-lt LET SS-lt LET EE- 7243 GO SUB 72461 LET ee-li RETU the tunnel,To the south there is
11 LET Q*-"You are on a narrow m RN a shallow alcove"i RETURN
indlng paththat leads down to * 7246 BORDER Ol PAPER Ol GO SUB 9 7380 BORDER 4i PAPER 4t INK Oi G
dim valley"i RETURN 990i LET q*-"lt is dark and you 0 SUB 99901 P L O T 80,56t DRAW 0,6
7170 BORDER 4j PAPER 3t GO SUB 9 must feel your way around"! R 8l DRAW 100,0,-PIi DRAW 0,-68
990i LET i-6s GO SUB 9930t PLOT ETURN 7381 IF d <3,1>-3 AND d(3,2)-8 AN
127,36: DRAW 0,64i DRAW -127,0: 7253 LET nn-li LET ee-lt GO SUB D d 13,4>-0 THEN FOR f-1 TO 6 ST
FOR n-7 TO 14l PRINT AT n,Oj PAP 72461 RETURN EP 5t PLOT 128,80+fi DRAW 23,-20
ER 0|" "j NEXT n 7260 PLOT 128,901 DRAW -100,30,. ,PIi DRAW -10,30,Pit DRAW 0,-23,
7171 PRINT AT 9,3) PAPER 2|" 4#-PIi DRAW -28,33,2/PIi PLOT 12 Pli DRAW 3,15,PIi DRAW 0,-10,PIt
AT 10,3)" " ) AT 9,11]'* " ; AT 10, 8,90l DRAW 40,30,.4*PIi DRAW 80, DRAW 0,5,PIt NEXT f
lit" "I INK Ol PLOT 32,88i DRAW 33,.4»PI 7383 LET ee-ll PAPER 7i INK Ol P
0,13: DRAW -l,Ot DRAW 0,-13: PL 7261 GO SUB 7266 RINT AT 13,0)"There is not much
OT 96,88: DRAW 0,13: DRAW -1,0: 7263 LET ee-li LET ww-li LET G»- to see apart from the solid roc
DRAM 0,-13 "You are walking along the botto k w a l l • IF d(3,1>-3 AND d(3,2>
7172 PLOT 24,96: DRAW 80,0I DRAW mof a dim valley filled with - 8 THEN PRINT " and a rope whi
0,-1: DRAW -80,0 PRINT AT 14,16 trees"! RETURN ch is lying on the floor"
1 PAPER 4 J " •• | AT 7266 PLOT 128,901 DRAW -40,-34,2 7386 LET 0*-""i GO TO 443
13,16)" INK 4i /Pit PLOT 128,901 DRAW 40,-34,2/ 7390 GO SUB 7391i GO TO 7393
FOR f-1 TO 8t PLOT 128,63+fi DR -PIi RETURN 7391 PAPER 41 GO SUB 99901 PLOT
AW 127,23,2/PI: NEXT f 7270 BORDER 6t PAPER 6i GO SUB 9 48,36i DRAW 0,79i DRAW 20,20,PIl
7173 PRINT AT 12,26j PAPER 4: •• 990t PLOT 0,1161 DRAW 240,-39,2/ DRAW 20,20,PIi PLOT 208,36i DRA
"|AT 11,29j" "|AT 10,31 PIl PLOT 233,1301 DRAW -163,-33, W 0,79i DRAW -20,20,-PIi DRAW - 2
"I INK 0 3/PIi LET i-3i GO SUB 9930 0,20,-Pit PLOT 230,1331 DRAW 20,
7173 LET ee-ll LET NN-lt LET 7273 LET ss-li LET ww-li LET Q«- 20,PIl PLOT 24,133i DRAW -20,20,
"You are outside a derelict hut "You are standing in a lonely -PI
In the middle of nowhere"! RETU wasteland. Far,far,far away to 7392 FOR N-5 TO 14i PRINT AT N,3
RN the East a great forest stands" | PAPER 0|" AT N,26)" "l N
7180 GO SUB 7186 l RETURN EXT Ni PLOT 48,56i DRAW 30,lOOi
7183 INK Ol LET ss-li LET dd-li 7280 BORDER 6t PAPER 6| GO SUB 9 PLOT 208,361 DRAW -30,100t RETUR
LET Q*-"You are at the top of th 990l LET I-3i GO SUB 9930: N
e tree, the climb was hard but t 7281 INK Ol PLOT 0,36: DRAW 128, 7393 LET ww-li LET SB-It LET QS-
he view is lovely": LET st=st—It O,-PI/21 DRAW 127,0,-PI/3i PLOT "The sand stops and you enter th
RETURN 60,83l DRAW 193,30,-PI/4i PLOT 8 edense vegetation. Looking ahead
7186 BORDER 3t PAPER 3I GO SUB 9 8,lOOl DRAW -88.10.PI/2 you can see a clearing"! RETURN
990i LET i-6i GO SUB 9930» 7283 LET NN-li LET SS-ll LET Q«- 7400 GO SUB 7406
7187 INK 4: FOR f-1 TO 8t PLOT 0 "You are in a desert. The sand 7401 PLOT 0,104i DRAW 20,-20,-PI
, B6-fI DRAW 100,-10,3/-P11 DRAW stretches on as far as you can t DRAW 20,-10,-PIi DRAW 20,-20,-
73,3,2/-PIi DRAW 80,3,-3/PIi NEX see in all directions"! RETURN Plt
T ft PRINT AT 13,0| PAPER 4)" 7290 BORDER 6: PAPER 6i GO SUB 9 7404 PLOT 100,361 DRAW -60,30i P
")A 990: LET I»2t GO SUB 9930 LOT 130,36! DRAW - 1 1 0 , 3 0
T 12,0|" "1 AT 12,14) 7291 PLOT 0,70i DRAW 120,-4,-(2/ 7403 LET NN-ll LET WW-It LET Q«-
"(AT 11,1)" PI)l PLOT 90,36: DRAW 160,100,2/ "There are few paths In the
")AT 11,23)" ")AT PIl PLOT 200,110! DRAW -130,-31, Jungle"! RETURN
10,23)" 3/PI 7406 BORDER 4I PAPER 4i GO SUB 9
718B PRINT AT 11,3) INK 0) PAPER 7293 LET nn-lt LET ee-lt LET 0*- 990i LET 1 —6i GO SUB 9950l INK O
4)" AT 13,25)" "You trudge on wearily, the sand 1 FOR f-80 TO 200 STEP 40! PLOT
still goes on and on"t RETURN f — 1,104i DRAW 0,301 DRAW -10,10,
7IB9 RETURN 7300 GO SUB 7688 -PIi DRAW 10,10,-PIi DRAW 9,0,-P
7190 GO SUB 7186 7301 INK Oi PLOT 0,90: DRAW 100, II DRAW 10,-10,-Pit DRAW -10,-10
7193 PAPER 7t PAUSE Ot FOR f-1 T lOi DRAW 30,-3i DRAW 103,lOi ,-Pli DRAW 0,-30i NEXT f
0 30t PRINT I INPUT lNKEY«-"y"t 7303 LET ee-1: LET ww-li LET Q«- 7407 FOR f - 1 0 TO 25 STEP 5t FOR
NEXT ft PRINT "A grassy moor stretches out in n-1 TO 4t PRINT AT 4+n,f| PAPER
7193 INK Ot PAPER 7: PRINT AT 13 front of you"! RETURN 0)" "l NEXT ni NEXT fi RETURN
,0|"lf you have come up a tree t 7310 GO SUB 7391 7410 PAPER 6: GO SUB 9990I LET i
he only way back is down. You ft 7313 LET q*»"Ahead the trees sto -2i GO SUB 993011 PLOT 25,145i D
tep out into empty space, fall a p and there is a clearing"! LET RAW 30,Ol DRAW 0,30l DRAW -30,Ol
nd crack your skull"t GO TO 930 WW-1t LET ss-ll RETURN DRAW 0,-30l
0 7320 GO SUB 7406 7411 INK Oi P L O T 0,100i DRAW 233
7200 GO SUB 7206 7323 LET ss-lt LET nn-li LET q«- ,Ol DRAW 0,-2t DRAW -233,Ot DRAW
7203 LET uu-lt LET EE-1: LET Q*= "You are in a patch of trees"! R 0,2i PLOT 130,56t DRAW 0,75l PL
"You are underneath a massive ETURN OT 165,361 DRAW 0,75l FOR f - 1 0 T
tree. It has branches everywher 7330 BORDER 4i PAPER 4i GO SUB 9 0 70 STEP lOt PLOT 150,36+fi DRA
•and looks reasonably easy to 990I GO SUB 7266 M lS.Ol NEXT *
climb."t RETURN 7333 LET q*-"You are on a rough 7412 PLOT 5,1lOi DRAW 10,Ol PLOT
7206 BORDER 4: PAPER 4i GO SUB 9 track"i LET WW-li LET nn-li RETU 23,1061 DRAW 20,5i PLOT 50,120t
990i LET i-2i GO SUB 9930t RN DRAW -10,-5i PLOT 7 3 , H O t DRAW
7207 INK Ot PLOT 100,36: DRAW O, 7343 LET ee-li LET ss-lt GO SUB 10,-2i PLOT 90,115t DRAW 6,-ll P
119i PLOT 133,361 DRAW 0,119i PL 7246i RETURN LOT 125,108: DRAW 13,4: PLOT 130
OT 120,123l DRAW -40,30,-PI tlx D 7333 LET ww-li GO SUB 72461 RETU ,100i DRAW 8,41 PLOT 170,114i DR
RAM 40,-20,Pl/2i PLOT 100,129: 0 RN AW 10,-4t PLOT 190,1201 DRAW 16,
VER It DRAW 0,3t PLOT 133,76t DR 7360 BORDER Ol PAPER 7i GO SUB 9 -4t PLOT 230,130! DRAW 17,-5l PL
AW 0.8i OVER 0 990: PLOT 0,36: DRAW 40.20: PLOT OT 240,114: DRAW - 1 3 , - 3

63 ZX Computing Monthly * February 1987


uw
74IS LET dd-lt LET Q«-"You climb
tht ladder and -find a comfort
able bed in the hay.Youcan see t
7375 00 SUB 7230i LET as-Ot RETU
RN
7580 BORDER 4t PAPER St GO SUB 9
a path to the south"1 RETURN
7680 00 SUB 7668
7681 PLOT 0,36t DRAW 255,50t DRA
he evening sun through a window" 990t LET i-6l 00 SUB 9950i INK 4 W -70,-501
1 RETURN 7581 PRINT AT 6,lj" 7683 LET Q*-"The path benda righ
7420 60 SUB 7427 "|AT 6,11|" "t t"l L E T ee—11 LET ss-li RETURN
7425 LET » > l : » * l i LET Q»-"You AT 6,211" " 7688 BORDER 4t PAPER 4t GO SUB 9
are inside the barn.There imnoth 7582 PRINT AT 7,0)" 990t LET I-61 60 SUB 9930t INK 0
lng In it but hay"t RETURN t RETURN
7427 BORDER 6: PAPER 6: GO SUB 9 7690 OO SUB 7809
990i PLOT 40,56i DRAW 0,74i DRAW 7695 LET 88-li LET EE-881 LET WW
—40,45t PLOT 213,361 DRAW 0,74: -88t LET NN-881 LET q»-"The rive
DRAW 40,45i DRAW -40,-45i DRAW r Is shallower and offers t
-173,Ot FOR F=40 TO 200 STEP 19i ho chance to cross to a path on
PLOT F,130t DRAW 0,-74t NEXT Fl the other aide"! RETURN
RETURN 7383 FOR f-1 TO 4t PLOT 0,122-fl 7700 BORDER 4i PAPER 4t GO SUB 9
7430 BORDER 2« PAPER 5i GO SUB 9 DRAW 80,0,2/-PIt DRAW 70,0,3/-P 990t LET i-61 GO BUB 9950t INK 0
990 It DRAW 105,0,1.6/-Plt NEXT f I PLOT 0,130t DRAW 73,0,-2/PI/2i
7431 PLOT 40,36i DRAW 0,70i DRAW 75Q4 SO SUB 7588 DRAW BO,10,2/-PX t DRAW 93,-3,3/
75,48t DRAW 73,-48t DRAW 0,-70i 7585 LET nn-lt LET q*-"You get o -PI
PLOT 80,36i DRAW 0,60l DRAW 40, ut of the boat and 1ookaround,Ya 7701 INK Si FOR f-l TO 13t PLOT
Ol DRAW 0,-60l PLOT 80,36I DRAW ur view from the mountain 0,70+fi DRAW 100,3,2/PI1 DRAH IS
30,lOi DRAW 0,30 looks down onto the castle"! 0,-10,2/—PI 1 NeXT f
7432 FOR +-8 TO 24 STEP 8i PLOT RETURN 770S LET ee-ll LET ww-lt LET nn-
80++,1161 DRAW 0,-(60-(f/4>)+3t 7588 PRINT AT 7,16l PAPER 4| INK lt LET q*-"The river grows bigge
NEXT f 2| " " jAT 8,16|" r and bigger as you walk to
7433 FOR + - 1 0 TO 30 STEP lOt PLO "|AT 9,16»" ward* it"i RETURN
T 80,36+*i DRAW 30,10t NEXT f "I AT 10,161" 7713 60 BUB 7930+Ut LET 0*-"You
7434 PLOT 130,36i DRAW O,0O( PLO "|AT 10,20t PAPER Oj" "|AT 9,2 are In a forest clearing"! LET n
T 140,361 DRAW 0,80) FOR f-10 TO Oi" "t RETURN n-Ol RETURN
70 STEP lOi PLOT 130,36++t DRAW 7590 BORDER 4t PAPER 5t GO SUB 9 7720 GO SUB 7406t GO SUB 7681
lO,0: NEXT ft PLOT 143,130i DRA 990l LET i-61 GO SUB 9950t INK 4 772S LET q«-"The woodland path t
W -30,0l DRAW 0,20l DRAW 30,Ot D t PLOT 0,170t DRAW 40,-40,2/PIt urna right"1 LET as-lt LET nn-lt
RAW 0,-20 INK It DRAW 170,Ol INK 4: DRAW 4 LET ww-li LET ee-Oi RETURN
7435 LET WW-lt LET NN-WWi LET UU O,40,2/PIt INK 1 7730 GO SUB 7406t GO SUB 7781
•WWi LET SS-WWt LET Q f ' V o u are 7591 FOR f —40 TO 210 STEP lOt PL 7733 LET q*-"The woodland path t
outside a barn made of wood"i R OT f,130t DRAW -5,-70,1.5/-PII N urn* left"! LET ee-li LET ss-li
ETURN EXT ft FOR f - 5 0 TO 200 STEP 20t RETURN
7440 GO SUB 72461 GO SUB 7266 PLOT f,i301 DRAW (RND*20>-10,-<1 7743 60 TO 7630+U
7445 LET nn-lt LET ss-NNt LET ee 0+ <RND»10> > t PLOT f+ I0,57t DRAW 7730 60 BUB 7406
-NNt LET q*-"It la still dark bu (RND»20)—lO,20+(RND*10)I PLOT f+ 775S LET WW-li LET ee-li GO SUB
t you can make out a faint pa 5,1ISt DRAW (RND»20>-10,-(20+(RN 7736« RETURN
th"t RETURN D*10>)t NEXT f 7758 LET q»-"Thls deep in the fo
7433 GO SUB 7246t LET ee-1i LET 7595 LET ee-li LET q*-"Your way reat there are no paths, only
ww—1x RETURN is blocked by a giant waterfall t r m " 1 RETURN
7465 LET nn-lt LET ee-NNt GO SUB ."1 RETURN 7760 -GO SUB 7930
7246i RETURN 7600 BORDER 7i PAPER 5t GO SUB 9 7765 LET SS-Ot LET WW-lt LET q«-
7470 BORDER Ot PAPER Ot GO SUB 9 990: LET i-6t GO SUB 9950t INK 1 "In a clearing you find a chest
990i INK 7i CIRCLE 128,116,39 t GO SUB 7606 lying on the floor"! LET nn-lt
7473 LET Q*-"The tunnel is darke 7601 GO SUB 7608 LET ee-1t RETURN
r now and youcannot even see the 7602 PLOT 75,89i DRAW 180,0t PLO 7775 GO TO 7680+u
walls "» GO TO 3100 T 24,89t DRAW -24,0 7780 PAPER 4t 60 BUB 9990
7480 BORDER Ol PAPER Ol GO SUB 9 7605 LET ee-11 LET q»-"You are 1 77B1 PLOT 255,561 DRAW -253,50t
990i CIRCLE 128,116,39i PLOT 128 n the midst of a quiet woodmans DRAW IOO,-50
, 1 16 village.The houaes are of a stra 7785 LET q*-"The path benda left
74B5 LET SS-li LET q»-"The tunne nge type made of bamboosticks"1 "L LET nn-l! LET MM-It RETURN
1 continues.A spot of light far RETURN 7790 BORDER It PAPER It GO SUB 9
away raises your hopes"I RETURN 7606 PLOT 75,56t D R A H 0,40t DRAW 9901 LET i-61 00 SUB 9950)
10,Ot DRAW -70,Ot DRAW 35,30t D 7791 INK 5t PLOT SO,56i DRAW 78,
7490 BORDER 0« PAPER Ot 00 SUB 9 RAW 35,-30t DRAW 0,-1t DRAW -70, 50,2/PIt PLOT BO,561 DRAW 48,50,
990i CIRCLE 128,116,59i FOR f-1 Oi DRAW 10,Oi DRAW 0,-39t PLOT 4 2/PIi PLOT 110,561 DRAW 18,50,2/
TO 3i CIRCLE 128,116,ft CIRCLE 1 0,561 DRAW 0,20t DRAW 20,0,-PI 1 Pit PLOT 146,36t DRAW -18,30,-2/
29,116,ft NEXT f DRAW 0,-20i RETURN Pit PLOT 176,S6t DRAW -48,50,-2/
7495 LET nn-lt LET ss-NNt LET 0* 7608 FOR f-100 TO 220 STEP 40t P Pit PLOT 206,56t DRAW -78,50,-2/

0
-"The tunnel still goes on, but LOT f,90l DRAW 0,15t DRAW -3,0t PI

z
now the light la much nearer"i DRAW 10,10t DRAW 10,-10t DRAW -1 7793 INK Ot PAPER 7i PRINT AT 13
RETURN 6,Ot DRAW 13,Oi DRAW 0,-15t PLOT ,0|"You attempt to wade the rive
7500 BORDER 4> PAPER 4i GO SUB 9 f +5,90t DRAW 0,5t DRAW 4,0,-Pit r...but half-way through the cur
990l LET i-6i GO SUB 9930l INK 0 DRAW 0,-5t NEXT ft RETURN rantgets too strong and you are

1 l PLOT 50,56t DRAW 205,60,-PI/2t


PLOT 1,120t DRAW 73,-30,-PI/4
7620 GO SUB 7960
7625 LET 0*-"Th* woodland path 1
swept away to your and."1 60
TO 9500

s< 7505 LET ee-li LET q»-"You come


out of the tunnel and
ed by the iun"i RETURN
are dazzl
eada straightahead"! LET NN-0: L
ET ee-ll RETURN
7800 60 SUB 7809
7801 INK Ot IF d(9,1>-7 AND d(9,
2)-10 AND d(9,4)—0 THEN PLOT 75
7630 GO SUB 7406
7510 GO SUB 7688i PLOT 0,lOOi DR 7635 LET q*-"You are on the outs ,90i DRAW 100,-10,PI/2t DRAW -10
DC AW 150,10,-PI/5i DRAW 100,5,-PI/
6 ,
klrta of *
LET nn-li RETURN
forest"t LET ee-lt 0,10i DRAW 90,2i DRAW 10,-12i FO
R f-1 TO St PLOT 7S+(f«10),90-f 1
O 7513 LET q*-"Grass goes on for m 7640 GO SUB 7930i PLOT 128,100i DRAW 3,-<10+(f »2)+2)1 NEXT fl P

o
DC
ilea to the north so you decide
to go back't LET as-lt RETURN
7320 00 SUB 74061 PLOT 0,80l DRA
DRAW 0,-44t PLOT 42,90i DRAW 0,-
34t1 PLOT 84,97i DRAW 0,-41t PLO
T 213,90i DRAW 0,-34t PLOT 171,9
LOT 7S,89i DRAW 100,-10,PI/2l FO
R f —9 TO 6 STEP -ll PLOT 75+(f»l
0>,90-fi DRAW 5,-(50-(f»5>It NEX
W 50,-1Oi DRAW 73,3t DRAW 125,-1 71 DRAW 0,-41 T f
0 7645 PRINT AT 15,0)"You fall dow 7602 IF d(9,l>—13 AND d(9,2)-9 A
7323 LET q»-"A grassy bank leads n a primitive but effective an ND d(9,4)-0 THEN FOR f-1 TO 100
up to a forest"! LET nn-lt intal trap and land on a stake" 1 STEP lOt PLOT 75+f,90-(f/10)1 D
LET ee-1i RETURN GO TO 9300 RAW (90-f)+(f/10),0t NEXT ft PLO
7330 GO SUB 7246t LET q*-"It is 7650 GO SUB 7406 T 174,82i PLOT 1 4 0 , 9 H DRAW 23,0
a little lighter here"! LET aa-1 7655 GO SUB 7758t LET nn-lt LET 1 DRAW 2,-4t DRAW 1,0
t RETURN ss-lt RETURN 7803 LET EE-It LET WW-lt LET q«-
7345 GO SUB 7246t LET nn-lt LET 7660 00 SUB 7406 "You are by the side of a fast

o
as-It RETURN 7665 LET q»-"The trees are begin river, To the east there is a
7333 GO TO 7545 ning to thin out and you can see great castle"! RETURN
7360 00 SUB 75301 LET ww-li RETU a path ahead"! LET it-li LET ee 7809 LET 1-61 PAPER 5: GO SUB 99
UJ
a.
RN -li RETURN 901 00 SUB 9950! INK It FOR f-1
7565 GO SUB 7330l LET ww-li RETU 7673 00 SUB 7930+ui LET q«-"The TO 8: PLOT 0,100+ft DRAW 70,-5t
c/> RN forest ends and you clearly see DRAW 60,Ol DRAW 60,10l DRAW 63,-

64 ZX Computing Monthly * February 1987


3» NEXT ft RETURN 8030 GO SUB 7688: PLOT 0,100i DR +139,961 DRAW 0,7i NEXT ft RETUR
7610 GO SUB 7206 AW 250,-20,-PI/4! PLOT 255,130i N
7815 LET Q«="A in«tnve tree *tan DRAW -150,-13,PI/3 B100 PAPER Oi GO SUB 9990
ds before you"! LET ss-lt RETURN 8035 GO SUB 805B: RETURN 8103 LET ww—1t LET q*-"Tha room
8040 GO SUB 7688i PLOT 0,100i DR 1* dark but you c*n smell a b
7823 GO SUB 7720+ul LET ee-li LE AW 128,30,-PI/5i DRAW 127,10,-PI ody"! RETURN
T ww-Qi RETURN /4: GO SUB 7388 8500 LET U-Ol LOAD "" DATA D D I
7835 GO SUB 7730+ui LET **-0i RE 8045 GO SUB 8038I RETURN I LOAD "" DATA E()t LOAD "" DATA F
TURN BOSO GO SUB 7688I PLOT 0,B0l DRA ()l LOAD "" DATA D*()t LOAD "" D
7845 GO SUB 7630+ui LET ww-li RE W 255,-24,-PI/5 ATA E*()i LET X-F(l)i LET Y-F<2>
TURN BOSS GO SUB 8058: RETURN l LET 8T-F(3)l GO TO 442
7850 GO SUB 74061 GO SUB 7606 8058 LET aa-li LET nn-li LET ww- 8870 GO SUB 7688I PLOT 0,56t DRA
7835 LET q*-"You are In a c l e a n li LET q*-"To the south tha gras W 128,601 DRAW 127,-60
ng with a house"i LET ww-li L ay banks still go on and on"t 8875 LET q*-"The path l*ads stra
ET *s-1i RETURN RETURN lght e a s f t LET nn-li LET **-li
7860 GO SUB 7391 B060 GO SUB 806B LET ww—1i RETURN
7865 LET q»-"You see a clearing 8065 LET ss-Ot GO SUB 8038: RETU 8950 GO SUB 7780+u
through the trees"! LET s*-lt L RN 9500 PAUSE Ot INK Oi PAPER 7t CL
ET ww-lt RETURN 8068 GO SUB 7688i PLOT 40,56l DR S i BEEP l,-10i BEEP .5,0i BEEP
AW 0,50t DRAW 150,Ot DRAW -73,40 .25,-151 BEEP 1,-25i PRINT "Your
7873 GO SUB 7960+Ui LET 0*-Q*+"
t DRAW -75,-40i PLOT 190,56i DRA adventure ends here": GO TO 405
into a curtain which is blocking
the way east"! LET **-0t RETURN W 0,30 0
8069 PLOT 60,56t DRAW 0,30t DRAW 9800 DATA 10,9,7,1,2,0,4,9,0,5,3
7880 PAPER 4i INK 0» GO SUB 9990 20,0l DRAW 0,-30i RETURN ,0,7,1,0,5,6,0,1,10,0,10,6,0,3,9
7883 LET dd-li LET q»-"Green lea 8075 GO SUB 7680+ut LET ea-Ot LE ,0,lO,10,4
v*a surround you and you can o T ww—1i RETURN 9810 DATA 1,7,1,0,4,2,1,0,3,8,0,
M y go down"! RETURN 6080 BORDER 2t INK 2l PAPER 4t G 0,10,10,1,0,1,3,1,0,9,3,0,0,10,8
7890 BORDER Ol PAPER Oi GO SUB 9 0 SUB 99901 ,1,0,5,8,0,0,7,10,0,0,5,10,1,0,1
990l RESTORE 7890 8081 PLOT 33,56: DRAW 0,100l DRA ,3,5,0,7,6,0,0,4,2,2,0,2,2,0,0,8
7891 PLOT 40,110l DRAW 0,-40f DR W -5,Oi DRAW 33,Oi DRAW -5,0i DR ,7,0,0,9,9,0,0,9,10,0,0,5,10,10,
AW 2,-2i DRAW 2,2i DRAW 0,39i DR AW 0,-30t FOR f - 6 0 TO 190 STEP 2 0,1,7,1,0,2,3,0,0
AW 60,-10i DRAW 0,-40i DRAW 2,-2 01 PLOT f,126l DRAW 10,Oi DRAW 0 9830 DATA "KING","BEAR","GOBLIN"
l DRAW 2,2i DRAW 0,40l DRAW 60,1 ,10i DRAW 10,Ot DRAW 0,-10t NEXT ,"GOBLIN","WOOD-ELF","DWARF","EL
Ol DRAW 0,-40i DRAW 2,-2t DRAW 2 4 F","EAGLE","TROLL","GUARDIAN"
,2l DRAW 0,40i DRAW -65,15l DRAW 8082 DRAW 10,Ot DRAW 0,30i DRAW 9840 DATA "SWORD","FOOD","ROPE",
-5,Oi DRAW 35,Oi DRAW -5,0t DRAW "KEY","RING","BONE","FOOD","FISH
-68,-15
0,-100t PLOT 30,156t DRAW 0,4t ","BOAT","LANTERN","CUPBOARD","C
7892 FOR f-40 TO 100 STEP 5I PLO
FOR f-30 TO 60 STEP lOl PLOT f.l HEST","CHEST","CHEST","CURTAIN",
T t,110-<<f-40>/3>i DRAW 0,-3i N
60i DRAW 0,5l DRAW 5,0l DRAW 0,- "DOOR","DOOR","DOOR","DOOR","DOO
EXT ft FOR f-llO TO 165 STEP 5i
3l DRAW 5,0] NEXT ft OVER It PLO R"
PLOT t,97+<<f-103>/3>I DRAW 0,-3
l NEXT f T 70,160: DRAW -5,0t OVER Ot PLO 9830 DATA " K I L L " " A S K " , " O P E N "
7893 FOR g-1 TO lOl FOR f*l TO 7 T 65,1601 DRAW 0,-4 ,"CLOSE","","TAKE","DROP","GIVE"
I INK ft PLOT 103,103! DRAW 10,1 8083 PLOT 205,136: DRAW 0,4t FOR ,"EAT","","EXAMINE"
3i DRAW -10,IS: DRAW ~10,-13t DR f-205 TO 235 STEP lOl PLOT f,16 9B90 LET i*-("EAST," AND ee-l>+(
AW 10,-131 DRAW 0,30i PLOT 115,1 Ot DRAW 0,5t DRAW 5,0t DRAW 0,-5 "WEST," AND ww-1>•<"NORTH," AND
201 DRAW -20,0l NEXT ft NEXT g t DRAW 5,Ot NEXT ft OVER ll PLOT nn-1 > +• < "SOUTH, " AND aa-1>•<"UP,"
7894 FOR f-l TO 7i READ n.rnt BEE 245,1601 DRAW -5,0i OVER Ol PLO AND uu—1)•<"DOWN,* AND dd-l)i P
P n,mi NEXT f T 240,160t DRAW 0,-4 RINT '"ax i ta- M |i*t RETURN
7893 PRINT AT 15,0»"You h«v« re* 8084 FOR f - 7 3 TO 203 STEP 20t PL 9900 LET R-Oi FOR n-l TO lOt IF
OT f,103l DRAW 0,10l DRAW 3,0,-P a(n,1>-x AND a(n,2)-y THEN INPU
ched your aim But you ir«n
It DRAW 0,-10: DRAW -5,0| NEXT f T INKEY*-"y"t PRINT TAB 9i"the "
't safe yet.You set th* crystal
t PLOT 110,561 DRAW 0,25l DRAW 3 ta*(n)t IF E « ( N X > " D E A D - B 0 D Y " TH
to explod*.You must now return t
6,0,-Pit DRAW 0,-25l FOR f-115 T EN LET R-N
0 your own tlm*"i GO TO 4000
0 128 STEP Si PLOT f,56t DRAW 0, 9910 NEXT n
7899 DATA .2,3,.2,3,.2,3,.2,10,.
2,10,.2,10,1,20 (<f/10)•8>-33t NEXT fi OVER It P 9920 FOR m-1 TO lOt IF d C m . D - X
7900 GO SUB 7206 LOT 123,991 PLOT 123,lOOl PLOT 1 AND D(M,2)-Y AND D(M,4)-0 AND D(
7903 LET uu-ll LET ww-li LET q»- 25,101t OVER Oi GO TO 8086 M,3)-0 THEN INPUT INKEY>—"y"t P
"You are under a giant tree"! RE 8065 LET nn-lt LET ww-lt LET ss- RINT TAB 9("the "|D»<M>
TURN lt LET q*-"You are standing out* 9923 NEXT M
7925 80 SUB 7720+ui LET NN-Oi RE Ida the King s palaca"t RETUR 9 9 3 0 FOR m-11 TO 20i IF d(m,l)-X
TURN N AND D <M,2)-Y THEN INPUT INKEY*
7930 80 SUB 7406i PLOT 0,80t DRA 8086 FOR f-130 TO 140 STEP 3t PL »"y"i PRINT TAB 9|"tha "|D«(M>
W 233,0,-PI/5 OT 270-f,56i DRAW 0,<(f/10)*6)-6 9933 NEXT Ml INPUT INKEY»-"Y"| P
7933 LET q«-"In th* forest clear 6t NEXT fi OVER ll PLOT 130,100l RINT TAB 9|"nothing apacial"
lng you find th* *k*l*ton of a w PLOT 130,1011 PLOT 130,1021 OVE 9940 RETURN
arrlor"t LET nn-li LET **-lt LET R O 9930 INK it CIRCLE 40,160,10
11 RETURN 8089 GO TO 8083 9935 FOR n-l TO 8i PLOT 3l,15S+n
7940 00 SUB 78431 RETURN 8090 GO SUB 6098 i DRAW 18,Ot NEXT n
7933 GO SUB 7780+ui LET ss-li RE 8091 INK Ot FOR f —39 TO 149 STEP 9960 FOR n-l TO Si PLOT 31+n+l,l
TURN lOl FOR g-1 TO 3i PLOT ffg,95t 63+nt DRAW 18-(n*2),0t NEXT n
7960 GO SUB 7688i PLOT 0,36i DRA DRAW 3,-St DRAW 5,3i NEXT gt NEX 9963 FOR n-l TO 5t PLOT 31+n+l,l
W 128,601 DRAW 127,-60 T f 36-ni DRAW 18-<na2),0l NEXT n
7965 LET q»-"Th* path leads atra 8092 FOR f-42 TO 162 STEP 29t PL 9970 PLOT 34,153l PLOT 38,169t D
ight on"! LET as-It LET nn-lt LE OT f,105i DRAW -2,0l DRAW 0,2t D RAW 5,0
T ww-11 RETURN RAW 2,0t DRAW 0,5t DRAW -3,5t DR 9975 PLOT 34,167! PLOT 33,165t
7970 GO SUB 7680i PLOT 100,77i D AW 12,Oi DRAW -3,-Si DRAW 0,-5i RAW 5,5
RAW -100,40i DRAW 60,-50i DRAW 2,0l DRAW 0,-2l DRAW -4,0l 9980 PLOT 33,1661 PLOT 32,164
7975 LET qf-"A fork in the path NEXT f 9983 RETURN
leads north"! LET EE-li LET WW-1 8093 PLOT 200,90i DRAW 0,-25i DR 9990 FOR n-O TO 14t INK 9! PRINT
1 LET NN-li LET SS-Ol RETURN AW -1,0t DRAW 0,25i DRAW -25,10: AT n,0|"
7983 LET q«-"You are in tha King DRAW 0,-25i DRAW -l,0i DRAW 0,2 "l NEXT nt RETURN
s orchard"! LET *a-li RETURN 5i DRAW 25,lOt DRAW 0,30t DRAW 2 9999 LET nn-SIN PIi LET a*-NNi L
7990 PAPER Oi GO SUB 9990i PLOT 3,-10,-PIl DRAW 0,-55l DRAW -1,0 ET aa-NNi LET dd-NNt LET ww-NNt
70,361 DRAW —30,70,PI/41 DRAW - 3 1 DRAW 0,25t DRAW -25,10t DRAW 2 LET uu-NNt RETURN
0,-70,PI/4i CIRCLE 60,80,2 5,-10i DRAW -25,-10

KINGDOM
7993 LET SS-1l GO SUB 7997l LET B095 LET NN-li LET q«-"You ara i
q»-q»«-" wast hara"i RETURN naida tha King'* palaceln the ba
7997 LET q»-"Th*r* la nothing bu nquetlng hall.Seated ona tall ch
t a locked door on tha "i RETU air thara la a grand old man"i
RN RETURN
8000 PAPER Oi GO SUB 9990i PLOT 8098 BORDER 3i PAPER 2i GO SUB 9

OF KULL
240,361 DRAW -30,70,PI/4i DRAW - 990i INK Oi PRINT AT 9,3|"
30,-70,PI/4i CIRCLE 230,80,2 "i FOR f
BOOS LET NN-li GO SUB 7997i LET - 5 0 TO 145 STEP 90! FOR g-1 TO 6
q*-q«+" east her*"i RETURN i PLOT f+g,lOOt DRAW 0,-40i NEXT
8023 GO TO 7310+u gl NEXT ft FOR f-l TO 3l PLOT f

65 ZX Computing Monthly * February 1987


IfUJ
pulldown
T h i s article is all about pull-
down menus. Specifically, about
MENU still, we must first of all decide
where to put it.
how you can use them In BASIC What I propose to do in this
(with the aid of a morsel of article is to provide a
machine code of course). Before comprehensive machine code
I start, let's begin with some program with access points to
definitions. make most of its functions
A menu Is something you available to BASIC If this is done
normally get in restaurants, then it means that nested menus
which lists the different choices and information panels may be
of food available to you. created and recalled using only
Computers, however, can't eat simple BASIC statements.
anything except chips. For this Essentially, the menu idea is a
reason computer menus are very simple one. PUSHIng a
allowed to list not only food, but menu consists of (1) storing the
in fact anything that It's possible Toni Baker shows how contents of the screen portion
to list at all. When a menu which lies underneath the
appears on the screen, what to give your programs proposed menu position; (2)
you see is a list of choices. printing a list, with a title and a
Usually this list is headed with a that 'state of the art' pretty border, at the designated
title. The computer will then wait position; and (3) providing some
until you're ready to order. You look, with this routine means of allowing the user to
make your selection and then, choose one of the options.
once the computer has carried for creating pull-down Alternatively we may wish to
out whatever tasks it's been told use step (1) only, or steps (1) and
to, the menu will disappear from menus. (2) only, to allow for a variety of
the screen. Whatever was types of information panel, as
underneath the menu will these. When all tasks are well as just the standard kind of
reappear and the screen will be complete you will see the menus menu.
as it was before the menu disappearing, precisely in The reverse process, that of
appeared. reverse order — each time POPping a menu, has only one
leaving the screen exactly as it step; the contents of the screen
Nests was before the particular menu underneath the menu must be
appeared. When the final (le restored. This will cause the
Sometimes you see menus first) menu disappears the menu or information panel to
happening in nests. When this screen Is as it was to begin with. disappear from the screen.
happens lots of birds start This suggests some sort of
chirping for worms and things. STACK, because the first menu in Obscure RAM
On the screen you may witness becomes the last menu out. We
one menu or Information panel are familiar with at least three For this program, I have decided
appearing on top of a previous stacks already — the machine to use a little-known and
menu. Furthermore, you may stack, the calculator stack, and seldom-used region of RAM in
then get even more menus the GOSUB stack. If we wish to which to store the stack of panel
layering themselves on top of create yet another kind of stack information. It is possible to store

Bit 7
set

i
High
I
Low x
I
v
V Low

V
I
High

v
1

Size of
11 Low
I
v
High

Length of
Print Print Panel Contents of screen
position coordinates position panel underneath panel panel info

— Inverse/over flags

- Attribute mask
- Attribute size

Length of
panel info

Figure 1. Stock entry diagram.

66 ZX Computing Monthly * February 1987


information BETWEEN the BASIC lo cleoi menu slack entirely
program and the variables area. RANDOMIZE USR MCLEAB
This region has the following to create information panel - _
advantages: (1) It Is impossible RANDOMIZE USA PANIl: PRINT * [control j * height , width
for the stack to grow too big —
To cieote menu panel (without choice)
error 4, Out of memory will RANDOMISE USR MPANEL: PRINT * [control 7) ' itrlng * , string '
occur If too much memory is
To create menu panel, and allow chpice oi oplions
asked for; (2) it will not overwrite LET variable = USR MENU: PRINT ' ( c o n l r o l j j ' string * . tiring '
any machine code (or in fact
anything); and (3) the To undo a menu or information panel
RANDOMIZE USR MCNUOFF
information will not be erased Or
by the ROM between BASIC LET variable = USR MENUOFF
tlhe lotter cose will ossign the variable with 0 II ihe menu slack it
statements (as the workspace now empty, or with 1 otherwite)
would be).
"control " may be either At y-coordinote. i-coord mate
My new stack grows upwards. PAPER colour
Figure one shows a single stack INK colour
BRIGHT status
entry diagramatically. Note that FLASH status
each stack entry may be of
variable length. As you can see ' [[ ] ' meons optional, but may be repeated'
from the diagram the print * I I * meant at least one must be included, more repeats
position and attribute colours are optional"
are also stacked, so that when Figure 2. New command! (or manipulating menus.
the menu disappears printing
may continue as normal. Back to BASIC the menus. Each feature is
The first two bytes of demonstrated at least once. Try
information store the address on let's look at the BASIC now. How it — it's very interesting.
the screen of the current print does it operate? Figure two lists You can use the BASIC
position. Note that this address is the five new statements which statements in your own
stored HIGH BYTE FIRST. This is are allowed. Note that the programs. As a guide — you can
unusual in Spectrum machine middle three have rather CREATE a menu with the LET X =
code, but is done for a good complicated syntaxes. To begin USR MENU: statement, followed
reason. Remember that to the with each of the three by "PRINT" and a list of strings.
left (in the diagram) of the panel statements is in two parts, You don'f have to use X of
information is the BASIC program separated by a colon. The course — any variable will do
itself. The RUN and LIST second part always begins From then on, In the BASIC
commands must know where to "PRINT" - but this is not a PRINT program, this menu will be on
stop — it would not do if the statement — it just looks like one. the screen, and X will be
panel information somehow got You may follow the word PRINT assigned with 1 if the first item
confused with program. The first by an optional number of on the list was chosen, 2 if the
byte beyond the BASIC program controls, which may specify the second item on the list was
must be in the range 40 to FF, so colour of the menu (eg PAPER 6); chosen, and so on. To remove
as to distinguish it from a or the position of the menu (eg this menu from the screen you
program line. Putting the high AT8.8;). In the case of USR PANEL should use RANDOMIZE USR
byte first ensures this. you then have to specify the size MENUOFF Alternatively, it may
Notice also that the very last of the panel — first the height, be the case that X has been
byte of panel information has bit then the width, separated by a assigned with zero — if this is so
7 set. This too is for a reason. The comma. In the remaining two it means that the menu has
machine code program must be cases (USR MPANEL and USR been abandoned, and has
able to tell whether or not the MENU) you have to supply a list already been removed from the
panel stack is empty. If, directly of strings. The first one is the title, screen.
below the variables area, it finds and the rest are the choices From a user's point of view,
a byte with bit 7 set. then the available on the menu. when you are confronted with a
stack is non-empty. Note that if You don't have to specify the menu you must manipulate the
the stack WERE in fact empty menu size once the strings are bar cursor to the appropriate
then the byte directly below the listed. The machine code will choice using the UP and DOWN
variables area would be OD work that out for itself (ie height cursor keys, and then press ENTER
(enter) which of course has bit = number of strings + 1; width when the cursor is in the right
seven reset. Once the principle = maximum length of string + place. Alternatively, to abandon
of the panel Information stack is 2). Although the syntax looks the menu altogether, just press
understood, the rest of the complicated at first glance, in DELETE.
algorithm is boringly straight- fact it's remarkably easy once Well, that's all from me for this
forward. There's a lot of it, but this you're used to it. article. All this talk about menus
is because there is lots of work to Figure Three is an example has made me hungry. Excuse
do — not because of any BASIC program. It doesn't do me while I make myself a
untoward complexity. very much, apart from show off microfych supper.

1 LKt ICLM3 • tto 1* r run turocma u» m x y r


l LMT Fin - 5)460 190 a m
; LTT n u n . . 5544) ?oo UXSOIGZI 391 KHXS.1 FHIWr IT i,4l M m 6i " :IW*TAIT TU tdC
4 UT not - JJ4«T J10 picsi o, no si o
i L«r xnnrcjT • )3W 110RMDOKISranwtrwrr
6 Finn 7i i* Oi T ?)0 BFTTWI
7 < I A N N tun KTLUJI *» U W M 3 Hsu Puna.! miirr ti>w hi ),JO
IO URR I • OSN msr> r»I»R »IG»T II*»«NR,-wcscan«*,-FAEIK*/Gs*, Jto m « t n )
**JCW0BT4!B*, "ICTCMTRCIUTOB" WO IT!IT -tvtntr »[»'••-
K> ir l-Q THD STOP JJ)0 KDT i
30 go sn «»»i J40 PLOT 0,171
to uiacnix oar ntaxm iV>NUN I»,oi I N o.-zjt 3U« -iw.ot BUM o,?)
» 00 to to yu>m v r IT i.ii ruax li -DOTT nunc!*
too LIT T . BS» !®rth m m kt 1,41 HfW »» 'K«msm,-JHU*Jtr",-F-I»V**T", 370 oi pnusi a
• W E N - , -»N«IF, •MT", •Jinn-, • n w , w w r , -SEITDOT*. -OCTOMS-. 3*0 nucaqzi DSD HDfucrT
•»CTO®H<",*MCT»«<* 390 t u t

Figure 3. Example Bade program.

67 ZX Computing Monthly * February 1987


HEJ
400 L*T T • U9t "W mini AT x,4i upm ti •KODOfr?", • KIT* ,-HUCTBI*,'cnniL* I) IK DL
410 If T - o Txxa HCrvim 0400 LD 1,00 BCl- IU4UI of canal, la agaaraa.
4iC IT T . 7 TKBI I M t i D S I HBTC i tHiWT AT IoY,«i (iPB* 5i -mr.'iai'T-.'Tirs*, 7* LD A,(XL) Ai" holftal of panal, 1* iquno.
•JTF•i i i i run uxocMizi ran mrxm PAIGE Ol PICSt 0 »J IK IL HLi polata to pravioaa data fro- acr.
4)0 tuuiBcrazz m<<xr r> RSI At Stack hot(ht of pual lo - m m .
440 Birw •7 ADD 4,4
2000 CL141 >7747 •7 ADD 4,4
2010 IC4S - a m - COM 87 4SD 4,4 41* holcM of panal Is pliolo.
!«0 CO TO 1 o> iua ts Slack panol addraaa althln ocmn,
m L00f_t ran si Stack addraoa of ptial row to roatoro.
cac sooo « RGB BC Stack width of panal*
90909090 Kjf*c_rxs JUTP 90 90 90 90 DID um Paatoro on* pltol row of porto).
90909090 OT 90 90 90 90 DtllnllM far traphie-A. CI POP BC Kiw width of panal.
0909090) t i n » 09 09 09 VI POP EX Dlt* oddrwaa of row Jaat raatorod.
09090909 not w 09 09 09 M l a l t l n for «r>)Ali-l, a Ct DE.SL
90909090 Mrt 90 90 90 90 CDJ4S0 CALL •OU.DOW^t
9TS0WIT M l t l l l o i for fraphlc-C. a rx m.m. Mi* *44r*ao of sort row to raatora.
09090909 W I 09 09 09 09 JD BK 4
WOWlfT P9 Oi oi rr DtfUklllM for frtpnlc-D. 2CT2 Raatora all plxala to ponol.
ocoooooo :(7! OO 00 00 00 D1 POP I I Bi> addrooa of ftrat row.
pxoooarr W T rr oo oo IT Dirialllit for graphic-!. O CI 111, XL
0000 IIIBL_LOI COV 0000 CD)«0 CALL «©50,ATn»_AD!»
0000 T*«L_ASNI asm oooo o n si. HL tti> addrwao of flrat attrltata row.
00 PMB^TTPI m s oo n POP AT Ai" holaht of panal la o^aaroa.
00 tKTl 00 c> D_P_l00f_7 nsit BC Stack width of panol.
oooc 3T»V OOCC 3y*tea w l i h i M uhI ty procra*. K FTTSH 31 Stack i d l m i of attrltata row.
c;tc LSD Pool TO aart attrlkwt* row.
CMC (0J0 i) Mi" addr of attr raw Jaat raatorad.
tc LS A.H A :• hl|h port Of KltH tddHM, otMoo LD K.OOW
UD W Identify K i m third. 09 ADD HL, BC HLi- KUTOM of aaat attrltata raw.
IR Ml D D 31, KL SCO addraaa of aart attrlldta row.
IF Hi r POP M. Hi point* lato panol laforaatloa.
TR ni At* acraaa IJUrt iMb«r, CT POPBC BCl. width of panol.
m 5» 59 EK 4
47 LD H.A M.I- corroopending attribute addrooa. ?A»T n «,»_P_UKW_7 Hootr.ro all attrltataa to panol.
C9 ur PI POP KL ID.I polata la atari at panal Info.
ct POP K BCl* looiflh of janol lofgnilloa.
CK NO JT A»I9 CALL 19«,BKUIH_? Raolala aoauij uaad by fmnol info.
rs KVW_I POSH AT LD ( I U U I . H I lootofa Tarlahloa-araa polntor.
94 IK • Pronaa within charactrr oqaaro. KIT « FT Boo*t tho aars f U | .
TC LD 4.1 c» KWT Botm.
K07 US 07
?OOA J» I2,KV»_l_tirT J nap If ( U l la the can*. <JC «ow
T» ID A,I CS4SOO WK_CLI4M CALL 'TUTT ludt Oaataek t c ^ o l panol. If 00* Ml*t*.
0470 UO 1,10 tart TTT Odaln If thara war ka aora.
67 LD L,4 Proaua* Croatia acrooa third*. CittOb JP 0041,CU Cloar tho aero op, aa* rot um.
»04 j i c.oo«_i_ixrT Juwp If W l la It* caao.
K LD 4,11 ac NCT
wot 3CB M m.rua P03I 4P Stack r—talrod attribute colaara.
n
47 13 R, A •net ba with la acrooa third. 7» LD 4,1 4l* ratulrod oolfht of fanal.
M Dcwt_i_nuT KIP AT •2 4D0 4.1 4i* aarliM lino mobor of paaol.
C9 HIT hlua. WOE J» C.IP.BIKII .-imp If fraator tliaa 75)4.
«19 CP 19
.sr. S04D WOE K.t^Mll Juap If hoi cm off of aaraaa.
lutoc TKSTIMjm LD FO,(TlM) KLi polota lo vartablaa aro. . 79 LD 4,C 41- raqui rod width It paaal.
n CAT IE. ILi point* lo top e4 panal atack. •J ASH 4,1 4i- aaklaM oolunn lonatai of panal.
cm ITf 7,<HL) 5404 C,KP_BD1<» Jaop 1/ rrootor than 7554.
csm FBI cp n
CB KB t M l i n If paaal otaek oopty. WS ;uap onlooo width t* aff of acroaa.
44 LB 1,(0.) 904 ir.md K77 oe/BTl 04 Bo port ) - Cut of aoroan.
A •jtc m, Ci mjsunij PV3I BC Stack oloo of tntondad pwol.
41 LD C,(HL) ICio lotirlh of pun: lnfonatlos. » nisi di Stack pool11 oa of Intended poaol.
C5 WSH DC Stack l««lh of pan*: laforaalln. 110900 LD »,0009 Mi* no of brtaa needed par chr a*r.
« IK K, 4} LD l,D
I) IK KL IELI point• to TarLabloa arao. «• LD L, 1 •Li* haltlit of intend*d pone] .
U AID A CTS? A CALL 7AT9, «n.7_KL_I« Ml- HI • Da
•D42 3BC HI,BC SLi polirta to panal LhforaaHon, » LD t,C > ! • width of inland ad panel.
15 NM N Stack thta addroao. cam CALL 2AN,ICLT_N._V Mi- auahar of brtee needed for
5* LS MB-) aoraaa inforaatlen far whole panol.
» IPC XL L«D5 LD K,0D

51 LD M « . ) pmlou print poo It Ion. T» 4DD KL, Dl Mi* leatfth of rasalrod paaal info.
« NC *L 72taS0 LS (P4«B._LN),IL Store l U i taactti.
05J«D5C LD ( T ^ C C ) , M loatoro prtflow prlot poo 11Ion. 44 LD M
if LD MM.) 4D LD C,l BCi* length of nqatr*4,panol lafo.
« IK KL LD ML,(mOC) Mi polnto to atari of procraa or**.
LD 6.(H.) t*i« praoloua print eoordinatoo. «5 RSI M Stank Ihlo addraaa.
I) IK M. tunc LD XL.(TAJI3) Mi potato to atari of warlafela* area.
m>a»yc LD (J_r08»),D« Rootoro prvrlooa prlat eandlwtH, 2 774*0 LD (PuB._4ixa),n. Store I hie aa addraao af panel lafa.
5i LD M M ) B:> prarleua IttrltaU hyto. 71 cot n. Mi potato to tap of panel etack.
»J IK n. » N S I BC

5* LD »,(*) Di« fffarlooa Attribute M>« CB»M CALL 1615,hAU_ROGH Ibu rooa far panal 1 nT nno 11 da.
i) IK HI. et IW K
ttM*mc LD (4TT»_P).!« Soatc.ro prorlM tltilbolt eoloara n D ai.in. Mi polata to panaltlaato byte
nftwrse LD ( ATt*_T ), DC ood trwWftrMl aaaK. of now roan.
71 LD l.(RL) At- pravtoaa : ititu. Tt LD (IL).C
») IK IL « IK IL
LS ftoatoro IlfnsVOttX atotaa. 70 LE (K},1 Store laadh af paaol tafe.
M ID M"-> CVI 3«T 7,(B.) Sat hit 7 to *1«»1 "ataak not oaptp".
IK S. n POP HL HL I - addroaa of procroa araa.
LS D,(KL) DC I- addroaa otthta oorooa of panot. 771?5C U (mX).KL Raatora eyotew war table.
» IK A 7424*0 LD IL, [ P4BQ._40A ) ILi* addraaa of now rooa.
41 LD C,(RL) Ci- width of panal, la aqvaraa. m»4 LD 5t, [ W_CC) DCi* current print peal11 on.

68 ZX Computing Monthly * February 1987


71 LD («•).» LB ».(«) Via crliloal addraaa af atrinf,
J9 lie HL » IK KL
7J LB («,).* Hon In pull ilia, «f LD ».(lfcj Bia lafiKtn af atrUf.
19 IK m » UC HL
IB Bt,{S_PC3«) »!• cufrtrt prlBte«rtlMt«. » IK KL
7) LB (n.),t H W LB (*_fflOi pta to nit atrlK4 paraaa.
« tic KL W W LB iL,(vmra) HL i pta ta aad ot lr»aula UP).
7? LB (IL).B Stan la pwl U(«tla, SBC
n £K KL >»oc JI c.jLmno_i .'nap If addraaa aftar IfHUI MP.
KDJBBVC it, DK.<ITTI_P) DKi- current IttrlWtl brt> 1 auk. 11UK LB I L / P T M ^ I S N ) HLi- addr at wMa» lllfa waa laaartad.
TJ LB {•.),! K J IK XL, IS
»J I K HL ym Ju| If allraaa tala* panal lafa.
77 LB (KL),B Stan la [anal laforaatlon. H I M LB R,,(PMV._LB; HL iw laafth af panal lifgralln.
« IK IB. i» IBS HL,«
W W LB 1,<P_FL»S) li« currant [inv^/t^n atataa. a N IC.NL Ml. naw addraaa af atrlnf.
77 LB (KL),I Steal In [anal Information. 01 IK B Bi- lancth of atria*, ptaa ana.
»J IK HL 1*01 iuap forward.
IB 1,Ot it io_eai_Loor LB l.(BS) 11* naat chr f m ttrlfd.
PUSH HL i> IK IE DCl polnta to aall Chr.
CDOUt ait noi,ciu_opn 3alact ilrni 1 (tlx icr«n]. n H3T 10 Prist tha tiancUi.
r TOP KL OB CE C Bacraaaat nwnbwr ot a^uaraa lafl.
CI K'l K Ki- poaltloa ot paaal. icri ITT^CLFL^HTTT UZL ic_cm_Loap Print whala of atria*.
RASH la Stack polntar Into (anal lWo. oc IK C Cl- nuabar of a^uaraa laft. plua ma.
B
CLBKH cm. IT_»_C PRLLFT IT B,C|
I»J j» IE_sic_ARR Jwap forward.
a O EL.HI CBi* IDDRTH vlthln K H M of fanal. L«_»PC_LOOP LB 1,'apaca*
N PCP HL HL I palnta lata futl 1 n/o. tn H3T 10 Print a as*ca.
79 LB <«.).• OB IO_3PC_llUT OK C
») IK KL jori RT KI,W_«PC_UX)P Print all naalnliv apacaa.
n LB (B.),B Stow term addr la )u»l lafa. Dt PCP ES
« IK ML CI POP BC

ET rep k BCt- alia of (vai, C> IB


71 LD (HL).C
» IK «L CRT, Silt
70 LB ( « . ) , > Stare la panel laforaitlea.
r» ia_rn«i RISK IP Stack naulrad attrlkuta tijrta.
15 IK HL PUSH DE Stack petition ot panal.
V)
a U BC.KL Bi- addreee at which U alar* lata
i% LB l.B It* aalaT of alrlnca awpplla4.
f rem ecreani KL 1- eareen addraaa. nsi if Stack nuabar of atrlajca.
n
rt POP if li* ntilnl attrlbete byte.
ntyjc LB K,(siraa) KL i pa lata ta Ml ot calculator at*.
i} NUI XL
LD 31,0000 DC>> aaallaat nunbar paaatbla.
110000
if LB 1,4
IB HW_W0P as HL
2»00 LB R.OO
0t LD B.(HL)
H*BK LB (lTni_P>,«.
il CSC KL
JHT5C LB (ITNJD.B. Sat required aolc*n. BCiw lan^th of atrinc.
it LB «.(•.}
LB (P_FTJC),I Ilao Ml enm 0| IHTDUt Oi
» DK HL
•> POP KL Ala eereett addraaa af paaal. » JSC HL
1* IB A.l li- Ulibt of panel In aiuaraa.
21 :*C HL
MM LB >,00 BCiw Width ot penal la equeraa. HLt- laaitK af lanoat alrln* ao far.
D s at,HL
P} PWB IP Stuk balfht ot penal in a^yaraa.
17 1HD 1
•7 UC 1,1 9K HL, BC
EM?
•7 ino i,i 1BD KL, BC

•7 1X3 1,1 It- halfH of {anal la plxela. yxa JI K,»»_»niij» Jaap If KL craatar tnaa BC.
B rose hl Slack addreea at flrat row. LB B,B
to
R K_P_LOOP_1 HT5H HL 3teck eddraaa of paw. LB L,C HL i- lanftb of lonfaat atrlni ao far.
v>
« RCSM BC
a »KP_3TWJ» a is, XL B.1 polata lata calculator alack.
KK in Store cna raw of peaal. asc i
JB
CI POP BC
JH n,wp_u»p Scan all atrlaca.
2 OK
11 POP IL HL I * addraaa of raw Juat alared. 12 1KB B
CtMM CUL «0Ji.Bna_i KL I-feldrwaaof aait raw ta alara. net jr C,»>>_»*<• Error if lai^th fir than
5B 3K 1 4> 19 c,i Cl- aailaua alrln* lancth.
10M JH B.»_P_U»P_I Stora all aeraan Infonailon far panal CB79 BIT 7,C
n POP HL HLia addraaa of flrat raw. 2 SO? ;» :.io>i_nsc Juap If laa«t>> laaa llu <1N.
CD5M0 CALL »SO,imr_ixt» HLia addraaa of flrat atlrilato raw. <304 iwp_u<pap K3T 06/MPJ 04 •aport t, (bl af acraaa.
ri POP IP li- halftat ot paAal in a^aaraa. •tp.puaa. LB (*_PT»),«L Stora pointar to atrial parajiatara.
» PT3H BC Stack Width of wladoa. PI POP IR
8 IWX HL Stack addraaa af attrlbiata roa. 47 LB 1,1 Ii. Bulbar af atrlafa
coo LIU Stora cna attrlfeata raw. B1 POP A Si- inlindad poattlaa for aaaa.
r POP HL B.I* addr of attr raw jaat atarad. POP IP 1 :• raqulrad attrl bata toy-la.
n
OtJOCO LB K , 0 0 »
« POSH BC
» 1DD XL, BC EL I- addraaa af naxt atlrlfeuta raw. » POSH M
CI POP K act- width af window. 04 IK B lllaw ana aktra lima far bardar.
It ac i OC IK C
J» N,»_P_LOOP_A Star* all attrlfcita Info far paaal. oc IK C lllaw iwa irtrt coluw far bndar.
MR Datura. C3C7S0 C U L «0C7,N<_FLKXL laai^n panal la/araation araa.
» •1 POP K
CAC 617* CI TOP BC
« mc_iOMin FC3H BC LB XL, (*_PTI) XLi polnta ta flrat airing paraaatar.
14 IK D Incraaaat y caordlaata. •MHO LB (3TKIKB),ia Ktopljf ealoalator alack froa hara on.
M WISH DC 9*14 LB 1,14
41 LD B,B lu ra^ulrad j aaardlaata. B7 »S7 10 PUIAR IK1B3I ...
U LB C.T Cl- raqulrad • coardloata. 9»1 LB 1,01
"WKll C1LL 01W,1T_B_C PM«R IT >,C( D7 W 10 it
>1 POP M >CO LB l,*apan»
CI PER BC »T in to m m a apaca.
HIT Bat an* CM9«1 C1LL B1«],HDI79TKNC Print tha ana tltla.
5 ETC LB i.-apaaa-
<ac 6185 01 yjz 10 Print a apaca.
« R B I BC 9H4 LD 1,14
» PCS! 0* W RST 10 miff [ifttst ...
2tSP»C LB KL,(I_PT») KLi pa Lata ta ra«t atrLv paiaMtara. IP ZGR 1
»} IK IB. w H9T 10 Ol
SI u ».<«•) »i7»se LB «..(DIB)
»> IK HL B ItSK KL Staaa uaar daflnad erajlilca addraaa.

69 ZX Computing Monthly * February 1987


710000 LE >MO_incs IF ll* 00,
WIKC LB (IHC).FT Oaa apaclflod UlC'a. « latara.vita 1 cental all* a*ra.
05 AC I B I- Mtaf of fining atrlnta - IB

<3 rusii K ?0Ct J« «.i_n_wiir Jaap taak ualaaa kap la -aatar*.

C97M1 CALL 1171.nar.'_iBr.!iT M m prlat paaltlaa I* Mil Una PI POP 17 ll* aanu ahalaa.

»•*> ot m pa^ai. CT MR Katun, altk 1 contalatac eholta.

It I,'|»|lilr4'
m MT 10 frlat latt nana tartar. «C 1114
CUK< CILL 4t»),mr_sntiic Trial nan atrial. m-t- • • V7T 1» l l . aarrant aharaotar.

W LB 1,'FNNUI-T rtn
«
CP ••*
BT tat to Trial rlfht hand Oordor, »R 1 Sat aaro f l * « fo* " a .

ior? TUN mo_mrr Print all >171111.1. me CP


rs*7«oo LB (IWFFL)HL ,00 Cioar palmar. e» • IT I Sat aara f l u for >,v.

CBTB1 C1LL 1 1 7 1 . I B B . M I B Bova prlat paaltlaa to list llaa CF •(•

of a m paaal. E» Or a . t vara fla< far "1"

W»J LB 1,'TRA^LE-C"

B7 WT 10 Print bolla laft Band corn*r. car. «zu


u i,'miuo-t' CB14B2 C1LL «214,SMUTH)P To at

R R3T 10 Print undaralla tortor. CA • V I Datura vlth valid aapaiatora.


CO OK C tr ca/aipp 01
DTBOL C •apart C. Icataanaa la WJIC.
?ori N KZ, mp_UIMI Print who la of undaraido WH«r.
)W5 U> A.-P-APMC-IR
OC D M
BT PUT 10 Print Mtloa rluM hand Hlur. 17 ica 1 ll* 00.
EI 11 - naMr or alrlaia. aic'.udinc IFTOB J» f_IITBRir
tlllai CI* — l a n c t r . of tlrli(. )®1 LB 1,01
K w ft KL1. arltlaal alliw oi BBC'a, JI
1M»
mpy: LD (UBC),HL Raatora ayataa variable. LB 1.0}
J®J
e» M M J1000C LB a.,0000
OK 9341 lit
»
BO LB <IORT_lT},«L Initiallaa aanu laaatlaa.

LB L.1
WS1 »
Sarin, paoal tppa and raaat
CUMB1 CALL sin.mij Print aanu 00 aoraan.
»1 K* E* incao LB | N M _ n r t ) , I L atrial i n a l ,

oc ik e
OC ik e Cl* fall aUtk, Including kordvra.
LB 1,07 Salact atrva• 7 (tno aaraaa).
LS 1,01 11* Initial DRV cholca. caoiii CALL Il01,cujl_0pn Ca* a r a m t ooloura,

CALL OMO.TaO*
T? •_"_Wor ran it Start aaou cholca. CB4B0B
l l . avrraat aharaatar fro* MS1C Una.

«ar 1*
u IBB i,D it* avraan llaa nusbar ot aaou atialea. 9 C» •)•
ft LD I,1 TO1 JI Btaoo*_c
Brrar vnlaaa

Dart ate fraa I U I C


ahr la *•*.

it ioa 1 ll* 00. JOT*


BT M
l l * '.Ina.

tl LB 1,1 ML* acr 1 Ina aa of aanu obolea. 17


a
CP -PLLLF klaaa t n r la *f*tlT-,
ADS SL.ft TBI
n i:.m_t
a IBB KL.SL 7QB9 IK (nvfc)
I PC J — l i t rtat m n t aaaat.

a IBB «,.*. PBjioa


N LOOP
R7t 70
l l * nart aha rroa 1UIC llaa.

a IBB R..KL N
CP
a IBB A.KL rue .1 u, n cdLocas
J a a p ualaaa oar 1* "IT".

v> rasa m SOW CALL tC7?.lWT_J»OT


Ireluata IT panaatara.

C.LL- IT
5T LB B,1 Hi. I eoordinala ot panal. CTTJ1C CALL 7)0T,m_T0_K
I* IBB ft,01 CB0725 LS 1.C
HOOK LB I S , M O O 41 LB L,1 t t m ravvlrad IT aa«r4iaataa.
1» IBS B-.M K.i. attrltota allraaa of 1 M
LB (IB«_lf),n, tipact a aaparator.
SI PCP SC. ?»M0
I M CALL U A I , U N U T A J * p baak ta aaatlaaa latarprattl^.
res» BC J* K_L00P aalaw cnfcmli.
CB1J1 •raluata
7i «_B_IWB; LS A,(ft) attrltata Via froa rav.
wr> CALL 2!P?.00_TBP_5 Jaap If a a aalaar coaaoli pa a a a a t .
BIO u a 10 Chanffa papar colour. JI e,B_»Bm Bpaot a aaparator.
N LB (ft), A 1W1 CALL 1211,3DUATIS Jvap back to Hatlma Inlarpvattlaf.
n IK ML Hi pa lata to naxt attr Via la raw. 717C10 J1 H_L007
OB tac e
CMC LB C.. PUt^TTPl
NT* JI IT. fenc ant Ira rav. BIT «,(•,}
:«OR Jiaap If panal only raquaatad.
ei rot K n ST»_L0C7 JI Z,R_P1JBL
CBK1C bpact a atrial aipraaaln,
rxwO'ii Slfal "B#a4r far a nav kap*.
;trteo C1LL lC«,BR_lT1tIE
FPCBHI »_*_»» I T_2
HT ),(ruiu) LB IL.SnilK.COBr laariamt nuabar of atrlnca r aunt a d .
M
T B I
JI t,iJL*UT_> Walt till hap cmisj I K
CALL
( Sf tO)U U T C 1 T Ta th.ro a aaparatorT

mo«V: LB 1,(LA3T_I) 11. ator 444a of praaaad. WIT JL R,B_NRE_:O .'at If not.

KM 301 01 »r 90
JI *X.t_M_Ot_M
N Skif war tha aapanator.
2009 Juap ualaaa kap la "amraar la JL B_SITWLOOP Loop lack t o eaal L l a k l a t i m atrliwa
N PCP TR 11. aarraat aam ehalca. CB711C CALL 1C71.WT.J1BI V v a l a a t a puol a l a a .
W »
H CB0773 CALL 7JO7,B^_T0_K C.Bi* panal alia.
JE IK 1 Mora m llaa las, 71 LB 1,1 1>* panal vldtk.
J«C J* c.«_»_«*RR Juap mlaaa balo. laat aatrr. 41 LB * , C Bi- paaal OVUM.
J M LB 1,01 Ca to rirat retry. 47 LB C . L CI- paaal width.

JI I J I I B T .'•at ttt HKMBO U> TA,(WM_M) M i . panal paaltlca.

J> SK 1 5117* LB A,(ATTl_t) AI. eolcnira raqvlt^d,


7015
Jaap anlaaa kay la 'ewaar up*. CJCWO J7 K C T . B N N Jtflrp t a Croat, paawl.

N TOP I F ll* carraol a. 1111 «bdl«a. B4WC10 S3_ LB K,(7INL_TT'7T) It. nuabvr of atrlaca.
»
BK 1 How* cna llaa ap. D ) B H LB Bl,(iaK!_At) H i . panai coal 1

1001 Juap ualaaa abava flrat antrp. )uric LB i,(irni_T) l l * aalaura ntalrat.

71 LB i, I Ca ta laat ant ry. CM* KT 1.C

rs nan 17 Stack naa »• it. ebolca, ClttBI jp t.tin.n.ivin. Jgap t o araala aanu panal. If rvqd.

0) nan BC cHin CALL « 4 I . N ' _ M llaa craat* aaav panal and o h o o a k .


»
cac ML IQ.I pclata ta Bart atlr Upta la raw, 0400 LB 1.00
71 LB l.(ft) ll* attrlbuta bpla fro. raw, 47 LB e,A E l .

BIO K» 10 Raatora papar colour. W

TT LB (ft),l Mia eJanit ta aaraaa.


®
BC C oc 15J»
W N JI H,M.tBUt Raapra aartar aatlralj. CB4BS0 CALL «04S.?AN*. Cnatack t o p H t panal. If It ailatl.

CI TOP K Z14DC LB n,(fus) fti point, ta varlaUaa araa.

rt mr ir I I - AA
»
BK ft fti potnta ta top of paaal .Vac*.

D M JI Loop baok far nart try. 010000 LB K.OOOO

» i n at c ciTl KT 7,{ft)
too, IK 1 Juap ualaaa kay la ^dalata' E» nrf 1 Solum If ao panala laft aa alaak.
N ll* aanu ahalaa. O) I K K Kl> OBO.
C U M FOR I T
CALL so*r,mcrr Jtaaava aaaa froa aeraaa. » UP Raturn.

70 ZX Computing Monthly * February 1987


/

GIl&SSHRi: Details of the newly founded National Computer


Club in this month's mailbag.
Nationwide Club
Perhaps ZX readers would be ships with other, like-minded, members. players who wish to move into comput-
Bflflfl Interested to know about the The club caters tor all levels of ing are very welcome
^BH recent formation of The expertise from beginners to experts and The way that members make con-
National Computer Club. Many tor all machines — even home built. This tact with others, whether for help or tor
magazines have moved towards game is important because we view comput- computing relationships, is through our
playing and away from real comput- ing as 'computing ' and not "Spectrum- monthly bulletin which is tor the free use
ing. Unfortunately, localised computer Ing', Commodore 64ing' or even Beeb- of members Included in It are: sales,
clubs have, all too often, done the same ing'. No disrespect Intended since most wants, queries (could be difficulties or
thing. Consequently, computer hobby- of us limit our computing to just one general interest), general projects, items
ists have tended to drift away and their machine but interests, within the overall ot interest such as utility routines,
expertise has gone with them. This has term ^computing', range from Basic techniques, etc, and whatever else the
left large numbers of enthusiasts without programming right through to machine members would like to say. For instance
the personal contact with other enthusi- building and a great deal ot Informa- somebody might need the pin-out of a
asts that progression and development tion and programming (with modifica- particular logic chip He could ask for
of Ideas needs. tions) Is applicable to all machines, eg. it in the bulletin and other members
The National Computer Club (NCC) address decoding, machine code flow who just happen to have that informa-
Is seeking to fill the gap by providing charts, etc tion would send it directly to him. He
all the benefits of a local computing The NCC Is a ^computing' club and might also hove stated what he Is
club but on a nationwide scale, giving therefore caters for all computing doing, etc and asked for others who are
members the benefit of personal con- interests. Of course a Spectrum user, doing the same to get in touch tor the
tact with a large pool of knowledge, thinking of buying a particular pro- sharing of information and mutual pro-
expertise and experience. gram, might want to hear the views of gression.
Our aim Is to produce an others who already have the program. Finally, for a mere SAE, I would be
environment, within the club where In the NCC he can ask them. I should pleased to send further details of the
members can contact one another to add that the excellent hobby of games NCC to any reader of ZX.
find solutions to problems, answers to writing Is a part ot the NCC but games Contact: Philip Craven. NCC 212
queries or to form computing relation- playing, on its own. is not. However. Dudley Hill Road, Bradford BD2 3DF.

Calculating For F$ and FI suggest you see part


Ton I Baker's machine code 4 of the machine code calculator
calculator series has been article. The function FN l(S,A$,B$) has as Rejuvenating Your
very enlightening, even Its value the location ot the first
occurence ot B$ In A$ after the Sth
Ribbon
though the references given to loca-
tions in the ROM do not apply to my T/S character. For example, FN l(3,"ZX Printer ribbons seem to cost a
2063 Computing", "put") is 7, since the string small fortune these days, so I
I am writing because there is a slight "put' con be found starting with the 7th decided to try the services oi
error In the part 4 of the series. Every- character in 'ZX Computing". If I had set a firm called ALADDINK. who re-ink
thing that has been said about the the number at 8 instead of 3, the answer fabric ribbons. The prices vary, my
machine code calculator, or other would have been O since "put" does Epson RX80 was £2.05, which I think was
ROM routines, is accurate for the 2068 not occur starting with or after the about their top price, a saving ot over
as well — after adjusting for the different eighth character. £5.50 on the price ot a new one. My
locations ot the routines. However, the This is not to say that defining such ribbon was returned within a week, well
author on page 64 (October) suggests functions in BASIC Is the way to go — the Inked, and accompanied by a
that it Is not possible to define the function definitions above are pretty personalized order form tor my next one
factorial function with a BASIC DEF FN slow if some of the numbers or strings If you want to give them a try, they
statement. Well, the Spectrum or the are large. This is because finding the will ink any ribbon for £2.00, and send
2068 is a machine of many surprises, so factorial of 10 using the above function it back with a quote for doing the same
perhaps we should not be too shocked tor it actually has to evaluate the (unc- make and model in the future.
to discover that indeed we can use DEF tion 10 times. Also, one must be careful Carol Brooksbank, Coventry.
FN to define the factorial function using with recursive functions to make sure Aladdink, 4 Hurkur Crescent, Eyemouth,
only BASIC that the function will reach an end Berwickshire TD14 SAP, Scotland.
The technique used for this Is called eventually. Finally, because of the way
a recursive function definition. the Spectrum and 2068 handle recur-
The following statement will define a sive functions, the function call must be
function whose value — If the argument the last thing evaluated.
is a positive integer — is the factorial of Keep up the good work with your
x. tine magazine. Zebras
10 DEF FM F(N)=NmVALf("FN F(N-1)-1" Steven V Gunhouse, Winsor, Ontario, Isksystt
I have a Zebra disk system that
AND N > 1)+"+1") OR N 1 Canada. I use on my TS2068,
?068. both
J of
Similarly, it is also possible to define which have romswitches I
the function F$ that he mentions in only would like to learn moret or exchange
BASIC or a function which does what
INSTR does on other computers. These Pen Pals
Ideas, about the Zebra (Portuguese)
with other owners.
would
ta look
IOOK as follows:
rouows: I own a Spectrum + with As far as I know, my disk interface
20 DEF FN F$fX$,X)=(X$ AND Microdrive and I wish to romswitch may be the first of its kind and
X > =.5)+VAl$ (("FN F$(X$,X-1)" AND • • contact other Spectrum It makes changing from Spectrum to
x > •=1.5)+"+""" "'7 owners to exchange information and 2068 a snap Would you please print this
30 DEF FM l(S,A$,B$)=5 '(A $(S TOS+LENprograms. to help me find some interested Zebra
B$-1)=B$)+VAL (("FN l(S+1,A$,B$l" Natner Najl, Cairo Q. 8-33-307, owners
AND S+LEN BS < =LEN A$(S TO S+LEN Baghdad. Iraq. Ken Diederich. 312 N.Bailey, Jackson-
B$-1)OB$)+"Q") ville, Arkansas 72076, US A

71 ZX Computing Monthly * February 1987


this memory saving for entered exactly as printed for jump to the next line (three of
adventurers is all very well, but reasons that will be obvious these in succession would leave
what about the rest of us!" I hear later. Note that the "STOP" in a blank line within an entry at
ZXC enthusiasts say. Well, here's lines 10. 1010 and 2000 is the a cost of only three bytes!).
a memory saving routine just for token, and is entered in symbol Make a file to experiment on
you (though f suspect the shift mode. using the fore and surnames of
adventurers may find a use for It Remember, "Fools rush in your family. After the last entry
as well). It's called "Fastflle", and where angels fear to tread", so pressing just ENTER will return you
is a system for holding polish up your halo, and SAVE to the menu.
information. In any form, in a the program and CODE, just In
DIMentioned string of 40,000 case of mistakes with:
characters with a machine code CLEAR: SAVE "tastflle" LINE 2. Search
routine, searching at about 9000: SAVE "FastCODE" CODE
50,000 characters per second to 65263,111 and VERIFY both parts. Select Option 2, and answer the
extract from it the Information Now you're ready to try it out. "Key?" prompt by entering the
required and print to screen. Type RUN (ENTER) and the menu word or phrase for which you
Without further ado, let's get to will appear. The options are wish to search. The machine
work. chosen by pressing the code, which Incidentally
Type in the machine code appropriate number (If you get originated from the good old
loader, Program 1, RUN It, and an error message, and you may, days of the ZX81, zips through
enter the numbers from Table A, as there is a minimum of error your file PRINTing out all entries
reading across the lines. As you trapping to make as much which include that key. After
enter each number It will be memory as possible available each, the prompt "Erase?" will
displayed so you can keep for the file, restart with GOTO 100. appear. Pressing "y" will erase
check. Note any mistakes, and never RUN). This is what you can that entry, "n" will continue the
correct them at the end with: do: search. On completion the word
POKE address, correct number END will be displayed. Pressing
Now NEW the machine — your 1. Entry just ENTER will return you to the
code is safe above RAMTOP — menu.
and type in Program 2. This Is This adds an entry to the file, Try the following with your
the driver program and must be provided there Is enough space "names" file:—
(You're told how much space Is o) Enter a forename — only that
free each time). The maximum name will be displayed.

INPUT length is about half a b) Try the surname — all entries


screen (Remember to restart with with that surname will appear.
GOTO 100 if you get an Out of c) Try "Bloggs" (assuming that's
Memory message). If you want to not your name!) — just the END
save space, but avoid filling out message will appear.
the ends of lines with spaces to d) Try a single letter that you
prevent word splitting, use the know is in fne file — any entries
PRINT comma trick. For those which included that letter will
who missed the earlier articles appear as many times as they

o
this Is what you da After typing contain the letter. For example
the last character you want on John Jones would appear twice
the line get into E Mode, hold on if the key were J o or n, but only
2 to the Caps Shift key. and press once if s were entered. The
6, followed by 0. The cursor will moral of this exercise is that the

5 PROGRAM 1
O
D 10 C L E R R 6 5 2 6 2 : FOR f = 6 5 2 6 3 TO
65374-: INPUT i : PRINT f, i: POKE
i , i : NEXT f

72 ZX Computing Monthly * February 1987


more specific the key used, the
more selective the routine
becomes. So if you were using
the program as an index to
PROGRAM 2
magazine articles It would be
better to reference Spectrum IO LET O » P I - P I C M ATIUAL -31 2124. LET sip + L
> CIM bt<UAL "40002") LET t*S 2125 LET p=p*L IF ftipM STOP
programs as sp1, rather than just GN PI LET b»(l>«" STOP " LET n THEN PRINT »|lpi, GO TO UAL
2125"
sp, as in the latter case any sUAL
• UAL
LET h»UAL. •100"
£4.668"
LET v
LET ll»UAL "23670 2 1 3 0 P R I N T 80 , " E r a s e PAUSE o
entries where an s is followed by LET 12 isl+l INPUT
INT
IF I N K E Y » O " Y
GO TO UAL "2110
THEN PR
100 CLS P R I N T "OPTIONS" "1 E
a p would be displayed. NTRY 2 SEARCH 3 SAUE * LO 214.0 R A N D O M I Z E <P+l+v+UAL 491 I
AC' 5 NEW PAUSE 0> CLS GO POKE UAL 6 5 3 6 3 " , P E E K 11 POKE
UAL RANDOMIZE (
3. Save T O F U A L I N K E Y » » U A L " 1 0 0 0 '-h A N D 3536A P E E K iS
INKEVt <"ft") n - P T P O K E U A L ' 6 5 3 6 6 P E E K SI
1000 CLS PRINT UAL ' 40002"-N, ' POKE AL ' 6 5 3 6 7 " PEE* S 2 PANDOM
S P A C E S LEFT" INPUT Entry" LI IZE I s + V +UAL 48 ' • P O K E UAL 6?
The whole BASIC program and N£ nt IF n * « " " T H E N G O T O h
1010 LET nt«nt +" STOP " IF L E N
369 .PEEK s i
EEK 12
POKE UAL
R A N D O M I Z E USR UAL
'65370
"65362
p

the variables is SAVEd. Why not N » > U A L ' I-OSEO'-N T H E N P R I N T FIL LET PIN-I p+SGN H-I'
GO TO UAL '2110
PR INT
just the data array? Because you E OVERLOAD" PAUSE H 50 T O H
1015 LET b t < n TO n + L E N n | i . n | L 3 0 0 0 I N P U T •• f I I T N » » e ? ' , N | SAUE
also need the values held in £T NAN.LEN nl
2000 INPUT KeiC"
GO T O UAL
LINE c t
"1000"
L.ET RIFY
LINE H PRINT
GO TO n
UERIFV UE

other variables, for example the it»Ct+ STOP " POKE UAL "65263" 4 0 0 0 I N P U T "F 1 I « N » » t ••'• ,R,| LOAD
file pointer, n. After VERIFYing .0 P O K E U A L "65264." , 0
2 1 1 0 I_ET p.USR UAL "65265"
fl t
IF p 5 0 0 0 P U N
you will be returned to the • o A N D P rn T H E N 1 GO TO UAL 2120 9 0 0 0 C L E A R U A L 65262 ' LOAD •
.1. R A X L C O D E " C O D E POKE UAL '
2116 PRINT "END PAUSE O GO T
menu. 0 h 2 3 6 0 9 ' , '.'AL 50 B O R D E R U A L "6'
2120 LET p . p . I IF b t ' P ' O STOP PUN

4. Load THEN GO TO UAL 2120"

Use this option to LOAD in an The program is essentially the Type in the machine code as
existing file for searching or same as the cassette version previously described, then NEW
updating. Existing files should except that the Interface 1 ROM and enter Program 3. Now to
only be LOADed in this way for takes over much of the donkey prepare the cartridge. Format
Interrogation. Don't be tempted work and, of course, speeds up the cartridge as described in
to just LOAD in a SAVEd file the LOAD. SAVE and VERIFY the manual, then RUN the
directly as it will probably crash! routines. program, it will stop with an
The file array bSO is set to a error message. Fear not, saifh he.
5. New length of 29000 characters. This All Is well. Enter, as a command:
length enables you to hold three LET n$ = "a": GOTO 100
This clears the file by RUNning files named a, b and c on a The menu will appear.
clear cartridge, plus the boot Choose 4, then press "a" in
program (which sets everything response to the "Filename?"
running) and the machine code, prompt. The microdrive will run
giving a total storage of 87000 much longer than usual as it is
characters. It also allows for a trying to erase an, at the
more user-friendly program with moment, non-existent file. When
single key-press controls, not to the menu reappears choose 4
mention avoiding an encounter again, and this time press "b".
with the infamous Interface 1 The third time the menu appears
Clyde Bish presents a ROM bug which switches on press 4 then "c".
your microdrive permanently! (If Now BREAK out of the
memory saving this does ever happen do not program, NEW the machine, and
power-down. You may lose data. type in the boot, Program 4.
'Fastfile' routine. Surprisingly, it is better to pull out Save the machine code still on
the cartridge first whilst the board and the boot program
motor is running!). with: SAVE * "m";1;"run" LINE

PROGRAM 3
the program and resetting the 10 L E T n»2 DIM AT 131' DIM FT 070
3030 PRINT OS IF I N K E V « T
arrays. <12T
=>23670
LET bt<lt=
LET s2=sl+l
STOP " LET si
HEN PRINT • •• STOP " FOR ' =1 TO
It would be nice to exlain how 100 CL5
, FIT
LET S»2
OPTIONS"
PRINT
"1 E N T R V
T , U
2 5E
200
3390
NExT f P A U S E 0
GO TO 2030
GO TO 100
the machine code operates, but ARCH n o Printer) 3 SEARCH n o 4.000 PRINT fI tenant " PAUSE 0
as usual space precludes that Screen*" "4 SAUE"
ELETE"
"5 LOAD "6 D _ET
4005
R t = INKEYI
ERASE n M . n l SAUE - » 1
opportunity. Suffice it to say that 110 PAUSE 0 CLS LET CT-INKEY ;nt L I N E 100
t IF c t < " 1 " O R C t • "6' T H E N G O T 4010 U E R I F * » ,l.ni IF c|: i
the routine compares what is 0 100 T H E N GO T O 50OO
held in a$0 in the VARS area 120 GO TO UAL
1000 CLS
Ct*100O
PRINT 29002-N. SPACE
4015
4020
IF CJA'O
GO TO 100
THEN RETURN
with what is In b$(). It is therefore 5 LEFT- INPUT E n t r y " ' I E N T E R IO 5000 PRINT 11f i l e n a o e ?' , PAUSE
important that you make no F »ENV>" L I N E et IF « » • " " T H E 0 let nt•INKEvt
N GO TO 100 5010 LOAD 4 B';l.nt GO TO 100
alteration to line 10 until after 1010 LET E »=T§+" STOP IF L E N 6000 CLS INPUT KEY" L I N E ct
• »>29002-(I T H E N P R I N T "OVERLOAD LET «t>c« + " STOP ' POKE 65263
DIM b$(40002) or these arrays will LET C M O" GO SUE 4005 PRINT O POKE 55264,0
not be in the correct places in "Load new ftie then r t - «>«t tn
TRY' GO T O 5000
6310 LET P=USP 65265
P <n THEN GO T O 6060
IF P - 0 A N D
VARS for the routine to find them. 1015 LET b»<n T O n+LEN £ $i «et L 6 0 2 0 PRINT EN[>' PAUSE 0 GO
£T n =n•LEN it GO TO 1000 TO 1 0 0
If you alter the length of the 2000 _ET s=3 6060 LET pap-i IF b t ' P 1 STOP
program you will also need to 3010 CLS INPUT "Key?
LET a t = Ct + STOP '
LINE tt THEN GO TO 6060
6065 LE T
»«P+1
reset v to a new value by 3020 POKE 65263.0 POKE 65264,0 6 0 7 0 L E T p sp 4-1 IF bt P STOP
PEEKing the VARS system variable 3030 LET P«USP 65265
P'N T H E N G O T O 3 0 6 0
I F P--0 A N D T H E N P R I N T bttP"
6 0 3 0 P R I N T SO E r a s e ">
GO TO 6070
PAUSE 0
using PRINT PEEK 23627 + 256 * 3O40 P R I N T ' E N D OF F I L E " LOAD INPUT IF INKEV t < y THEN PR
NEU FILE'" PRESS A . E , : tn f INT GO TO 601O
PEEK 23628. Of M E N U S ' <S to S A U E l'pd»ttd fl 6 1 0 0 LET W - P E E K 2 3 6 2 7 * 2 5 6 * P E E K 2
L«) ' P A U S E 0 LET C t•INKEV t IF 3628 R A N D O M I Z E . :p + l + v * 4 8 i POKE
c | i " f l " THEN GO TO 100 6 5 3 6 3 , P E E K si F 0 * E 6 5 3 6 4 C-EEF
Fastfile (Microdrive) 3045 IF c t = "5
3046 LET nt=ct
THEN GO TO 4005
GO TO 5010
i2
PEEK SI
RANDOMIZE in-p.
POKE 65367 PEE* 12
POKE 65366
RAN
3 0 6 0 L E T p *p- 1 IF b t < P J < - " S T O P D O M I Z E »+V*4.S) P O K E 6 5 3 6 9 PEER
THEN GO TO 3060 SL COKE 65370.PEEK >2 RANDOMI
And now, for microdrive owners, 3070 L£T p«p+l. IF bl'.p'< " STOP ZE USR 6 5 3 6 2 LET nan-ip+l-si P
a version of "Fastfile" especially THEN PRINT ttt. bt 'P 1 GO TO 3 PINT GO TO 6010

for you.

73 ZX Computing Monthly * February 1987


adventure (You see, I didn't leave
you out!). Alternatively It could
be used to search for words
T a b s.e fi understood in an "Elisa"type
program it experiment with A.I.
A ~• -re •i —?
JL t
*t o I'M show you how it could be
0 0 2 2 1 t 9 2
0 2 2 1 a,• *•»'~ 4 2 f 9 2 1 7 4 A done and then you can improve
on it.
0 2 5 9 4 8 6 2 3 5 2 3 7 9 1
3 5
A ~i Have a look at Program 5 as
2 3 9 2 5 4 1 6 7 2 3 7 6 2 I,i i 7 7 you read what follows:—
—t ~
1 9 2 ic! - 1 7 4 9 0 " 2 5 2 2 1 Line 800: reset variables and the
-J - .
rr Jzz.__> arrays you've seen before.
0 1 2 2 e. t 1 7 7 2 3 4 3 6
p .-j -~> i i™* i -"i it 830: R1 we need later. The
6 7 2 3 9 2 5 4 2 0 1 C C 1 c. c. =*
w program will stop If you've said
2 2 1 •j ET 2 2 1 8 5 0 1 2 2 C.C.
iC
"bye".
3 2 2 2 4 2 ( • 1
9 2 •i {
-L 4 9 0 840: the user response goes into
2 3 5 2 2 5 2 2 1 2 2 5 1 6 7
•-. • -7
e. •_« f 3 2 i$. A suitably cutting response Is
3 4 2 3 9 2 5 4 2 3 9 2 0 1
printed if this is a null string.
2 3 7 7 5
'a •-. o ~ -—,i -i 850: the input is printed to
1 9 0 3 2 . » CLC. C. S. J.
3 5 2 4 2 1 3 screen with a leading capital.
£ 2 5 2 4 1 9 6 3 3 1 4 3 Q F, 1 4 860-861: spaces in the input
0 1 7 1 4 5 9 6 2 3 7 1 7 6 C L 1 J. string are replaced by STOP
tokens, plus one at the end. The
counter n is set to string length
+ 1.
10: SAVE * "m";1;"fastCODE" continue the search with 862: Now to business! The data is
CODE 65263, 111 (where "run" is another file (after SAVEing the RESTOREd. Look at Line 900 for a
the three letters, not the existing one if updated). moment. You'll notice a
Keyword). VERIFY both parts and Alternatively a return can be sequence of word, phrase
there you are made to the menu. phrase triplets. In essence the
To use the system, RANDOMIZE Obviously with SAVE the routine takes each response
USR 0 to reset the machine, then existing a, b or c file Is erased word in turn and searches for a
press RUN (Enter). The boot will before the update Is SAVEd and match In k$. If one is found (ie.
load, then LOAD in the code VERIFYed. p > 0 AND p < n) then one of the
and file a (which is DIMentloned As with save, the filename for phrases READ along with k$ and
but empty). LOAD Is a single letter. held in xS and yS Is printed.
The menu is essentially the The DELETE option is now Which, is determined by R1.
same as before. separate, but operates as before 882: If the search falls through
The ENTRY option will The key is searched for with "y" the loop no match has been
automatically SAVE a file when it to erase "n" to leave — you may found as one of a sequence of
Is full, and invite you to LOAD In have more than one entry with general answers Is given.
a new file to continue. that key — and Enter for the 885: If too many general answers
SEARCH gives a printer option menu. are given then a request is
(by altering the stream) as well This routine will, of course, made to change the subject.
as to the screen. The search can search through any Information 900: this is the first example of
be stopped at any time by in b$0 to locate a key and so many DATA lines. You can
pressing a letter. A return is could be used in any situation produce the rest yourself but
made to the menu by a second where fast retrieval Is required. remember three things:—
press. When the end of a file is One such use would be a) the items must be in threes —
reached there is the option to vocabulary searching in an keyword, phrase 1. phrase 2
b) the order of keywords In the
data list is most Important.
Common words must be at the
PROGRAM 4 end with less likely ones at the
beginning or the latter will never
be found.
10 P O K E £ 3 6 0 9 , 3 0 : 6 0 R D E R 5: CL c) my original program had a
EPR 65262: L O R D * " • " ; 1 ; " f A l t C O D E vocabulary of lOOlceywords. If
"CODE : L O A D 1; " a " you want more or less you must
change the number ending the
FOR statement In line 862:2
To end, here's an idea for an
April Fool program to catch out
PROGRAM 5 an ardent Arcader (1 know its
early, but it'll take you that long
to sort out the DATA!). Have a
80O>LET r«0 DIM 9»>31>
<64' LET II a 5T0P
Din e* EN PPINT PAPER 6;lx* AND rl>,5l+
<y» AND r l o . s i GO TO 830
simple arcade game on board
LE"
i82 NE"T t PRINT PflPEP 6.("I s as well, with a timer line to
830 LET r 1 SRND IF I|I 9 » 0 d ^ C €*• ANC f i i w r - T t u ae more AND switch control to your "chat"
OB i»s tjt OP Ili C h i t r i C the "*21 + i "This i t 9 e U i n 9 i n t t r i l l
N STOP AND r»3)+<"I » not sure I v program after a given period
5*0 INPUT PAPER 5. Please t » i It nderftar. <j AND r.0> IF r <4. THEN
to ««' PAPER 7, " (NO p u n c t u a t i o n LET r » n i GO TO 630 (Use the FRAMES system
o <" c i n t m
NE II
exc«pt I> ' Li 885
||»"" THEN PRINT SRIffH ng 1 Please cnanQc
PRINT PAPER 6,"This is C O M
the subject" variable). You could then have
T l "Oon t ec s tup id 1 " PAUSE 50 LET r=0 GO TO 830 the machine do a fake "reset
GO TO 8*0 500 DATA " S ald","Be CirttuL of
550 P P I N T BRIGHT 1 1 <CMR» IC00E •hit Others say","Uhe caret! 1 , $ crash" (Use PAPER 0. then PAPER 7
if<li-32> AND iS 1> >>"•"> +ICHRS osc tines". Only so«eti»«s?","Not
CODE m i l AMD l t d ) <"•">; i*>2 often? occationatiy"<"Tru »pr
with your own PRINTed copywrit©
TO ) • e often Only occasionally'- ," i notice) followed by a
660 FQR f » l TO LEN it I" i• • r > " < I »9rit In Iihil Ki^ 1 ', '£ reincarnation and on-screen
* THEN LET ij< f I STOP " , I »gr«e", "How?" , H i U '£
:6I N£YT f LET o(l2 TO )»i» L xactiy » u » e ^ " , Really' ."everye communicaton from the "Spirit of
ET m t E M i» + l
562 RESTORE
Ody",'Surely not'","Re*ily every
FOP f»l TO 100 R one'' "everyone", "I don t teiiev the Machine" offering to have a
EAC- >t I 41 LET »»=..»• STOP " i th* t" .'Peally?"
POr.E 65263.0 POKE 65264.0 LE
chat.
901 REH Other DATA lints follow
T P=U5R 65265 IF p j0 ANO P :n TH See who you can catch!
Good fooling!

74 ZX Computing Monthly * February 1987


STREAMS

The concluding part of Thereafter PRINT 4 wilt print


onto the window.
N£LS used. But . . . what's this AND A
instruction doing Just before the
Toni Baker's Windows RET? The comment beside the
instruction reads "Reset the carry
program. Follow through flag". Why? — Surely everything's
finished now. We shouldn't need
For those of you who wish to to worry about flags should we?
•—ast month we began follow the program through and Unfortunately we da You see
experimenting with windows. The understand how It all works, i l l when a control code such as
listing continues . . . tell you that the program starts PAPER 4 or INVERSE 1 is used In a
running from location WINDOW PRINT statement then the
As a demonstration, the extra (address B4F1) with the A register appropriate control codes are
program WIND DEMO which I've containing the character to be sent to RST 10 to be carried out.
tagged on at the end at printed, whenever RST 10 is used The PRINT routine expects the
address B544 will open a with this channel. carry flag fo be reset on return
window twenty-tour squares wide Oh — incidentally — while from such a routine, and will
by eight squares high, we're talking about the WINDOW produce the error message "C
positioned AT 2,1 (relative to the routine, take a look at the four Nonsense in BASIC" If this is not
whole screen) with yellow paper instructions following the label the case.
and blue Ink. Furthermore, the WIND CTRL. The CALL Instruction Next month I'll give you no
window will be a SLOW window, carries out the control code less than two new channels: a
O
so word's won't ever be cut In
half, and although the standard
charcter set Is used, they are
function, the POP Instruction
restores the control character to
modified network channel for
owners of the ZX Interface 1
which will successfully
z
the A register, and the RET
defined to be seven bits wide,
not eight, so you get more
instruction terminates everything
— the routine has finished —
communicate with a QL, and a
channel which will allow users of
S
characters than you would
normally. Running the program
control will then pass back to the Spectrum 128 to use the
standard ZX Printer whilst in 128K
<
the RST 10 sub-routine itself, and
once will open the window and then back to the PRINT statement mode, saving a lot of money in
attach It to stream four. which caused the RST 10 to be the process. See you then. ot

LD A,(n.wjroocmD) Ai* T coordinate of botta* Una,


O
O
SOTVOL
?he following aabmutina print* * vita* - 1* It ami th* print pool t ice la th* l*ft r» TO31I AT
lui fit* ot th* n*rt Its* dH*. CMtll h n print pa* to atari of M t s
CALL D1Dl,Lltt_A Una of Hindoo.
dC KB! Ct Dl* auabar of lift** to copr*
CTCJB CALL K C » , O R A 1 Print a ainfla nawlln* one*, CDO&H POP DBJM.GET
C Cia width of window In
aeioiiS BIT 2,(IX*U ruaI) CALL HITR
Ct IB I •atom if wain* o iaale height. D0M117 LD L.(II*W HCMtll*
QS7®£ LS I,(TLE¥ TCOCAS) At* currant T coordinate. LD R, Him HCHE)hl KLi* addrwao of tap l*ft comer.
CD71D1 CALL »I71,PACI_T Daa RAH Mta 7 In caao ocrwon 1 v*
fC IKC * At* MV r coordlaata. » 9CB_L00P I Stack loop counter.
XiWor cr (ix*v mcirr) OUX)
TOSM BC
LD 1.00 It I- width of line.
emu JP M . T I I T . L I N A Jim if 1* ranc* to aora prist paa. n KIS1I BC
itrMtfcC an »•» rues] R TOSH ML
a»« J» t,3CH0LI" Juap if Hroll pavje diaablad. cmSBi CALL IliSlTn AM* HLi* addr of thla attribute Una.
DSC (1X.W SCROLLS) Cacr*a*at Hroll count. 117000 LD SC.0020
JOOD JL M.scsou. Jump unlooe Kroll gam required. n HE, KL CCi* addr of thl* attribute Una.
LS I , ( I M ITCGTT)
t>
W7715 Re-imtlallae aerall count. 19 ADC KL,DC KLi* addr of nart attribute line.
LS ( I * * SC'-CLH),!
mno LDIR Copy on* attribute Una,
O
JI7T 3CBCLL Pil.it LS A,7T POi KL
I" M X ) Scan part of the keyboard. n
:ft Cl POP K
IT HU « Hj3H KL
WW JB C,3CR0LL_FACS* Pua* until 3 PACK preeeed. enm CALL BI?B.D0V1_B Mi* addroaa of next Una. IAI
OMIT seam. CALL ITIA.IFCU CKT
si POP SA • » addroaa of lua Una,
DTOOOS JP IC.ODOO.RKJWT S Cle* error report if Mil preaeod. B TOSH KL Q.
CO

75 ZX Computing Monthly * February 1987


rmj
Ci
V>
SCR LOOP 7
LB 1.01
HISK BC
HISH BK
ll* nuabar of rows par Una. Thla autmtln* will calculate (a l.BC, and will alio collect tha currant print position.

kt
ac »5C4
fi PUSH RL PRDARI LB L.A
LB 1,00 HLi* charactar coda.
LBEH Copy oaa raw froa Una, ABC HL, KL
29
II POP HL
» IDS IL.KL
BI
CI
POP t*
POP BC » ADD KL.HL RLl* eight tlnaa chancier cod*
24 IK H Hi. addr of nakt row of n*rt line 1» ADD KL.PC
14 IK D Bi* addr of nan row of this line D D B.HL Bi* addraaa of pi sal expanaloa
)D 1 3B6I10 LS L.( I X*W P1PDC
la
2«5 JI K.3C* LOOP 2 Copy tAola Una. Xfcfill LD Mile* PIPCC hi Kit. *d4r*a* ofprint paalllon*
PCP HL C9 IV R*tun.
CI
CI POP BC TFCLL au trout Ina will tollaot on* byte frca tha plxal ar^mnalon pointed TO by and will
10S6 U K SC9I LOOP 1 Tranafar all required Hoes. Invert It If nacaaaary.
01 HC BC BCi- length of Has, l*aa oo*.
SC7I14 LS i.tiM inn Ai- attribute byte. mo »U)
CBBOI CALL B1BC.CLH LIIH Clasx boltoa 11a*. 11 CIT BOW LB I.<BT) IT* aaat rav of ptial aipanaisn,
C5«c»i JP B16C.P1CI 0 Haatan HAJ» par* tare and return. I) IK IE S I palnti to fart row.
BSCI0»» BIT 5 . ( « ^ _ N J C S )
Tha following aubroutlna dull with >11 control codaa except for cum control and Til CS RW : latum unlaaa [IVBC1I 1 In a p a n t l e
(tun in dealt with by C»_TY7*_? at addraaa B12P). OB mtrr Iha 1 nglat*r >111 contain 7T CPL Olharwlsa invert tha row.
tna control coll Itooir, while any paraaatan required will ta atom la 1 (allllo C9 ID Hetum.
paraaatar if on* axilla) ami 0 (laat paraaotir). Thla naxt and vary lapartant sotroatlna will aalaally prlat a character, opacified la tha
1 rafiatar, onto tha sumnl window.
ac 1)55
MBS CttlffltOLS CP -ontor- AC >;BC
2994 JW 2, OFTW Juap to dial with *oatir*.
R5 nisi ip Stack character lo prlat.
DolO
» sjb io n, PUSH IP Stack character lo print (a«aln).
SIT C latum with codaa 00 ta OP,
mot CP Oi BB7KC LB l.UIeW HCOOB) At* currant a coordinate.
JPji JB I.CTKL IT Jaap ta d**l with IT,
BBBDB Cf (IIe% WTBTH)
BC ROT ac R*tum with cod** IT ta IF.
CILL F . V N . N M Print aavllna If al end of Una.
CCB9K
RTSR IBS l.CTRL HOC Is BIT 4,(tle« rues}
tt US L,1
BSCBOBM
20 54 J* m. pen SLW Juap with -Slow- windows.
2*»J LB I.CTO IKfO hi XLI polata into control info labia, POP If ll- cbiracter to prlat.
16 LS »,{•.)" BI- tit aaal for ttla control. LB ix.(cailis) DC I. addr of noraal chr aat - lOOh.
111400 LB 31,0014 BCL- II dlspl*cs**nt to V _ 0 , W17 J* It, PCM C*_l Juap with ASCII chararlera.
NTI CP 6) yooi j« K.pca."nn; .'yap with aavr daflaad (nphlca.
SIOJ JR C.CTRL C01T Juap ualaaa Ctrl la [IVWFC:*'0»IFC. 47 LB J,1
1WB LB 1,01 BC|. II dlsplicaaanl lo V J L T M . cs)ao> CILL 0»5«. fO 0*_1 Coaalml block g r a p h i c ,
D8K5 CTRL C0»T rests ix 1192SC LD I*,5CV.PMCT Ki polnla to pixel arpanaloa.
N POP BL HLI pi* ta chaanal Info block. IP X« 1
19 IBB KL.B HLI point* to warlitla to a l t a r . 180t JR Kin tat i Jaap forward.
LB 1,0 11 - control paTaaitar. 0690 pew inc JU» 90
aa LD C.B C I- til aaak. TO1715C ls DSi point* to aaar daflnad cnphlca.
or RRCA CDC415 CALL BKl.PRXmi If i. addraaa of pixel aipanaloni
07 Hfll HLi. addraaa of print poaiiioa.
cm ss 1 Sat attritala for this aquar*.
W I J* DC,CTRL LOOP LL- Ctrl paraaalar. In corract poan. »cm IB J CALL »M1,3ET
P.S1 KL
II
II
xai («L)
11B c o6oe LS B.Ofl Bl* nuabar of row* par Una.
Ftn la r*qd bit* according to I CDID515 PC» LOOP 1 CALL BJB5.Cn ROW Ai* naxl row froa aapualon.
II (a: CB71B1 CILL B171.F1CI 7 Daa Rirt pfeia 7 la caaa arm 1 In uaa
7? LB (H),l Stora rarlabia. 77 LD (IL),1 Slon row In acraaa.
E» nr 24 IK 1 HLi points to naxt row.
CD6CB1 CILL Ittc.fiai 0 Raalor* UP pace x*ro.
or
» D17E 07 Bit aaak for in. 1015 ' x*z rem i W i Prlat Whole character.
ISM )» Bit auk for P1PW. EL
90 301 90 Mt aaak for PUSH. POP
» > 40 25 IK RL SCI. naw print paaltlon.
10 Bit aaak for BKKF. C512M JP E4S.PCBI_BirT Jiap to m l .
09 acre o« >11 aaak for IIIKT, PCI»_SLOW
04 art 34 tit aaak far OFM.
BBC in 2 , r u e s )
21H JR I.FCA SLCK 7 Jiap unlaaa ualat double balfht.
W M W LS A,(lie! HUGH) At* halfhl of window.
Tha aart aubroulloa la tha WIKIGW vara Ion of tha IT function. It parforaa tha fu )B BC 1 Ai* y coordinate of botloa lis*.
IT B,C for th* cvrrael window. CP (IIe« YCOBD)
2015 JB H.fCHB SLOW 2 Jaap unlaaa st kattoa Una.
OHC BJ45 BB4KC LS C,(IIvW~ICOdis) Ci* currant x coordinate.
« CTRL AT HJSH BC 47 LS B.A Bia currant y coordinate.
71 LB L.B 11- propoaad y coordinate. Oi EK 1 Bi* y eoordlnata after scroll.
CDB1B1 CILL B I D , L I N 1 DC7KB LS A.(II»W_fU=a)
CI FOP BC Ho** prlat poa ta atari of this Una. ti POSH AT Stank flio.
79 LB A.C ci
CDC TIC
push BC Stack ooordlnataa.
Scroll th* acreen once.
17 US 1 It- propcaad t coordinate. CIU «2CJ,OI7Ilt I
ca HE i CI POP 1C Ki* eoordlaalea.
cf («»« wjori) net urn if taafe already done. novo prlat paaltloei back
CBIHW CIU l)t^,Cfltt_lT tolwia.
BJ9P1I JP ic.MKIRT_B Glee error re port if oat of rania.
SB770C LS (IleW ICMRB),A Ston naw p eoordlnats. fi POP IR heetoro th* flat*.
I*OO LB B. 00 " BC I- • coordlaat*. DB770B REM SLOU I Ii* 0hara*t«r lo print.
5DCB0B64 BIT 1 , ( 1 M PL1CS) LD ( Ilew fUCS),l
2111 J» I, IT B U T Juap with "Peat" channels. fl POP If
15 Stack addreaa of atari of Una, sDMia LD I. ( IXeW CHARS) lo SRt* addr of nonal chr sat -100*1.
HJS1 «L~ BHilf
mriT LB C.(LITW CI WTB) BCI- character width In pi kola. LS B,(lIeW ClAlSlhl Jiap with ASCII character*.
2008 jv n,PCBi~ca:_2
TO LB M.B D
M LB L.B IC.1- 0000, MFCOMO SUB 90
09 lT_LC0f_l LCV. IB LB MlXeW BBC)ls Ii point* to (raphlca chr aat.
ADD 1L, BC
5B as: i CDC4B3 LD D,(Uȴ"uD6)hl ECi* addr*a* of pliel axpanslont
Tore JI H . A T LOOT 1 IL1— no of plaali to atari of chr. CILL B)C4,ntIPAitI ILi- addraaa of print po*ltl<A.
<*0) LB B.01 15 m i FT. Stack eddrvae of print poaltlsa.
CB5C AT LCCP • SftL I oinrr LD Bc.rypy
CUB R2 L BD7I17 LD 1 (IXeW CS WIS) At* width of dir In pixel*.
If c»M tor m a i SIL 1
o
MI
10W N U N IT LOOP 7 RLi- oo of equina to atari of chr. CB19 KB C
07 ILCl JB QIC 1
icm waak, not pat In poaltloa.
z 07 RLC1 JI m.Fcin misi 1 KI<
07 RLC1 LL- plkal poaltlon within EKR aduara. m m it LB M S T O N ) LL* plx pnan within civ *q**n.
D07714 LO (U*V F1X)|1 Stan In varlabla. 17
»« AID A
CI POP BC BCL- addraaa of atari of llaa. JI 1,1CW «B_J
5 09
BB7510
BB7411
AT nrr
sroti i m
ISO NL.IC
LD (IITU_NIPOG]l*,L
LB (u»w nns)u,i
ILI* aaw print pooltloci addreaa.

3t ARE no print position.


J7
OIL
CB19
SCI
RB 1
RR C
< C9 KIT latum. 5B
jcte
BC 1
ji u.Kin_nui 7 Dtharwlaa rolala aaak into plana,
Tha following awtroutina 1* wary ahort and vary alapla. It aeraly aata the attribute byte pen; mat ) LB l.M ll* ma*her of row* per Has.
coma pond ifki to tha ecretn addraaa la HL, r> RC« LOOP 2 iraa ir Stack loop counter.

ot
cmsBi CILL »5S5,CB lew Ii* nait row froa aipanalon.
OK BUI » m i bb Stack pointer lata axpanalon.
ii LS S.l

O
15 :-HSH IL
CU5B1 ciu m t . i m ism HL i - addnaa of atlrltota byte. SDTZIi LS l,(IXe* P1I) ii* plx poan within chr *d**r*.
B07S14 LB I . D I ^ F I M ) Ii— carnal coloura. 17 UD 1
Slora attrltuta byte. JI C.PCB ROW ."a*p If pl>*ls corr*clly *lllgn*d.

O
77 LB (N.),I 3S07
II POP (L CB11 KB B
Illkll* CB1B HI I

ot
C9
JD sac i
Thla autroatlno la.latendad far uaa "1th "Slow* • indowa only. II will plat oaa rav of JR 12, PC KB Sim Shift pixels Into paaltloa.
chancier onto tha acreen. CB7111 CIU 117I.P1GI_7 L'** 1111 pa«* 7 la caa* aom 1 In uae
Q . i«C B«1B can) CALL BUB, PLOT ROW Plot row oetto acr**h.
CD11B5 PWT_R0W CILL B511.SCT 1TTO Sat attrlbuta byte. BBC BOM* BIT 2,(IIeW Plies)
71 Lfi l.(ML) At* byte fro* *cr**n. C4ABBJ CALL m.BJAB. PUT ROW And acaln If ual^ double height.
LA in D CBtCll CILL BltC. PlCt 0 ' Feet ore Rut pad* a*ro.
s AO
AA
AID B
to* 8 Kll la llle fram chancier.
BI
fl
POP BE
POP IP
x: i
DIl polata to plx*l eipanalci.
A I* loop counter.
77 LB (HL).A Stan In acnan. 5B
T> LS 1,C Ai- law byte of aaak. 20 DS JI R.FCIO LOOP 2
TOP H
Prist whole oharacter.
}C :K A (1 HLi- original print posltloa.
290A JB Z.fUM HIT Ektl If all Mt* stand on scraan. WTTHfc LB l,(lXeW_flI) At* original poaltlon vlthln ofulra.
25 :K n. KLi point* to next aensn byte. TKBOl? IBB l.(lXeV CB ifID) lllaw far width of character.

o
CDA 115 CILL f'11,SET ATTB Set thla attribute byte aa wall. PKM CF 09
7* LD 1.(ML) It* byte froa screen. JW5 JI c.pcnt KB 2 Juap If I*lct poaltlon 01.
11 I0H I 3W9 SUl ce
11 AID C n IK KL
JR KM* rtl
OthSrwls* aaxend It.
Loop back to try again.
111 IB ICR t in la blta froa character. I1P7
LD (IL).l Ston in acr*aa. BB7716 pcm_poe_2 LB (IleW PII),1 Stan nav poailloa within kfuue,
CL
n CIU SJ9A.3TORI AIDI Stan nav print poalttoa.
21 DBC KL HLi point a la original acnan byte. CB9AB5 pew sxrr
IK ; Il.e BCCCKB) lacraaaal 1 OOOrtiBtU.
</>
C50CB1 JF B1K.B0W1 1 Point HL ana plx*l down, and return. SB540C

76 ZX Computing Monthly * February 1987


S T f c £ A M S A N D CHANNELS
n POP
HIT
U A:» fllyulfr Jut printed. » LS I , A S l f n o l p Chr not t o b* cn*ng*d".
C9 Klliil, cmi6B« CAU. B A K . D t m ? (tapt r b u f f e r .
OWN CALL »1*2,CHI T Y P l , t D**l w i t h TAB i r 4 « w control.
TTn f o l l o w i n g • u b r w j t i d * .111 * » p l j tho b u f f e r ( ' S I ™ * winlow* g o l f ) , printing tb* f « n r CD55BS WHD_CTSL CALL BJJJ.CCITSCLS1 Dooi With r * M l n ! n c Ctrl c h o r o c t o r o .
C H 1 H U acta I f * window H POP A l
AT AKE A Boo*t c t r r r flof.
ORG M U C9 ur loton.
D4BB1? m m CALL I C . U k B . B r T S t P r i n t * n o w l l n * 1f nqulrt^. I1AI WIK_A3Cn CP * * p o c * p
am RISK t i 7C01 JB Juop with o i l c h n oxc*pt '• E&c.".
n top A KL-T p o i n t * t o c h * n n * l I n f o bloclc. 1S0S LD I . - * n t * r - " * * "*ntwr" * * o l t o m o t l w * chr.
OIIDOO LB BC.OCID CC36M CAU. lupty taffir.
09 AIM KL.BC KL i p o i n t * t o w o r l o b l * W _ L B . F10L CP " * o t o r -
71 LB I , ( I L ) A t * a i a U r of e t e r t c l m ' l n b v f f t r . 7SED J* Z.WIIH CTRL Juop IT n * w l l n * no* r * q u l r * d .
AT AID A 1 -JOB J* w i n i i i i r r j u o p t o p r i n t " « p o c « " on vlodow.
E» BTMJ.OCR « r t R * t u n IR R I D I M M . SDCBOTU BIT A , ( I x « w MACS)
15 inc sn. HL i p o i n t * t o a * r t ehr t o t v f f t r . 2004 JS I1.W1HD SIXM Juop w i t h • S l o w window*.
71 LS A . ( S L ) PI wiw_reiiB' POP AT
f! HSH KL CJDCS) JF u s c . m i r e n , ' u t , t o f r l o t tho e l i u u t t r .
C74B0 CAU KffA.crrp nor TC« P I * * * l n d l o o t o t y p * of eJiuultf, LD IA,L C.'SICRTLT • L i p o i n t * t o choniHi i n f o b l o c k .
CSKBJ CALL MEC, w m r _ c i a Print th* e h * n c t « r , OIIBOO LD e c . o o m
ii KIP KL o» ADD KL, BC HLi p o i n t * t o v o r l o b l * W _ L O .
m n BSC UX.w LDT) 71 LD ! , ( • . } A t * nunhor of c h r * I n b u f f e r .
JH POTT_LOC*' Irlnt o l ) c h n lo M i l . QDDDC cp a i » w _ w i i m i )
ion J FT irt,w:II> SLOW 2 ; w p unl**o b i f f t r full.
Ti,* f o l l o . 1 1 ^ n b r a i t l n * •111 n p ' . j t h * t u f f * r ( * S l o w - ) o r do o o t m i m ( T m ' ) . It will n TOI t "
< * o l d * whathor or nol ft n * v l i n * 1* r o q u l r o d , *nd p r i n t on* i f Oo. CB*AM CAU B4BA.DOTT Dtpl? bufr*r.
11 POP HL
OK PI W10_S1XJW_2 POP AP
SOCIOM ovn_i •IT 4, i. n . w r u e s ) M I E (HL) loermut l * o « t h of tuff*r.
HIT I
«
CS H*turn w i t h " f o o t " window*. Al LD C , ( K L )
LD J.A S i . nazt c l o r t c l t r t o p r i n t . 0600 LD B.0C BClw n*w l o n f t t i of buff»r.
107110 LD A,(IX«¥ U 3 ) A t . l * n < t h ol word In b u f f * r . 09 ADD HL,BC
XFLIOC AID A,( U W J K O O M ) A l * p o t * n t l o l x ccord 1not* o f ' - * r
CT
T7 LD ( I L ) , A S t o r * ehr In b u f f t r ,
t b * b u f f e r ho* bHD o n p t l * 4 . BR l o t urn.
cp ( : I . ¥ WIDTH)
JB o . i i m sot Jaop u n l « * word 1100117 r i l l * lln*. And f l n o l l r - Joot 0 quick d n o n o t r o t l o o p r o c r * * t o op*n * window ond o t t o c h I t t o *tr*o*
M LS 5,1 I l l * o l t * r o o t l v * chr l o t r l n l . f o u r . I f Jou BUI t h l o r o a ' U h* obi* t o wo* m m *4l l o p r l b t onto t h * window.
JT SCT 5 1 ( K l " l o w l l n * riot n o o d t d " .
V> wyrtj&t PUSH EB OK BS44
n MA* BC 1104 wiii)_Dao LD 1,04
CXftM CAU. MIA.OOTF t*F'.j O a f f » r with n*wlln* If i>w*d*d. OS EI 1P.AP* A1!* i l r * * * nu*t«r.
ei POP BC 2A7SVC LD iL,(inc) HLi- o d d r * * * o f wo*r d * f l n * d fropblc*

«
fi POP AT Al* H i t chorootrr to print. oisorr LI K.FT«0
BET M a n , O> on HL.JC
44 LS B.I
And now o l l o o t w* h*ww t h * window output * u b r o u t l B * Itself. 40 LS C.L B C ' i * *ddr of e n - * nlnu* H t .
LS W,(C8AR3) E * 1 1 . oddr of n o r o o l chr oot -iDOh.
(SC M 7 I 2407 LS 1,07 I * | * width of c h o r o o t o r * .
szei-.tjc XMBM LB i * , ( n m c H L ) III p o l o t * t * ehooatl I n f o block. » OI
CSV7B0 CAU (OJT.CBT TTPI with keyword*, *tc. JIM LB A.J1 A i * o t t r l b u t * bjrtf f o r window.
re HIT X M*turn ir to*k* o c * p ) * t * 4 .
rt
oiow LS BC.Q201 BC1* p a * I t Ion of window.
P03K" AP Stock c h o r o o t o r t o p r i n t . 111 RMS LD DE, 0810 D l t * *11• of window.
J SUA JB t , « l U A K J Juop w i t h g r o p h l c * choroctor*. ? 1PPTT LD KL.mt HLi ( l i m o l i "Slow window- * M
J01) JD « C , H I « S ASCII with ASCII c h o r o c t o r w . " S c r o l l pou** n o b l o d " .
17 AID A CS12R CALL B 1 2 , 0 P D I WTSS0W 0p*fl t h * window o h o n n * ] .
CC92W CAU I . B W 2 . C L 5 WIDOW Cloor window f o r C t t l 0 . i 1»27 LD «L.275»
ri POP A l W EU HL'1* r o l u * roqulrod by BASIC.
n TOIt AT C9 MT M M .

ARE YOU A BUDDING


PROGRAMMER?
^ . X is always looking for top
quality games and utilities for
publication. If you have a top
I P B i W
notch game or a useful utility for
flap Hi
m
the Spectrum or QL why not
send it to us for appraisal on
cassette or microdrive complete
with a listing if possible.
There is also our new feature
Short Cuts to showcase your
practical, novel or imaginative
short routines with cash prizes for
published listings. For longer IfflML

programs we pay competitive


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.

77 ZX Computing Monthly * February 1987


teennicau.
Graphic*
Toni Baker prepares
you for a graphic
encounter of the 3
dimensional kind.

• n this article we start to look


at the fundamentals of 3D — that
is, three dimensional space. A
solid object — a cabbage for
instance, has three different
dimensions — those of length,
width and height. A fiat object P8
— such as a picture of a P5
110,10.101
<to,o.o»
cabbage — has only two
dimensions — length and width.
As it happens, the image on the
Spectrum's TV screen Is flat (two
dimensional). Any picture which
appears on this screen must also
be flat (two dimensional), which
means that it is impossible to
produce truly three dimensional
images (ie solid images) on any
TV, no matter how hard you try. P4
This would require the use of a (0,10,10)
true three dimensional image
system, such as a hologram.
Some time In the future home
computers may indeed be able
to produce true 3D holographic
Images, but for the moment we P2
are restricted to flatness. We can, (0.0,10)
however, create an illusion of
depth. This process is known,
perhaps mistakenly, as Figure 1
3D graphics. command on the Spectrum uses along in the direction of the x
The trick is to convert this system, so you should be axis. Its co-ordinates would then
something which is three used to it. be (3,0,4). Finally, suppose it flew
dimensional to a representation Now imagine a third axis, also two units In the direction of the y
which is two dimensional. Take emanating from the same origin. axis. Its co-ordinates would then
the cabbage for instance. Whilst This axis Is to go physically be (3,2,4). This is three
a picture of a cabbage is only upwards, off the surface of the dimensional co-ordinate
drawn onto a flat surface. It paper, away from the table on aeometrv.
nonetheless looks like a real which the paper is resting, and Armed with this knowledge,
cabbage. This, then, is the key — up towards the ceiling of the we can now start to think about
we need a representation which room. This is the z axis. Any point solid objects, and how they may
is In fact a picture of something in the room you are now sitting be represented in this system.
three dimensional. This task may be specified by three co- Imagine a cube, ten units along
seems to be much easier for ordinates (x,y,z). For instance — each side. Place the cube, in
humans than it is for computers. take the paper Itself. Any point your mind, with one of its corners
on the paper which has two touching the origin. The cube
Things in space dimensional co-ordinates (x,y) should be sitting on the piece of
also has three dimensional co- paper with Its edges running
The first thing we need to know is ordinates (x,y,0) with z being zero. parallel to the x. y and z axes
how to represent objects in three Imagine that a bumblebee Clearly, the co-ordinates of one
dimensional space. Imagine a enters the room and starts of the corners is (0,0,0). It doesn't
piece of paper (or, if your hovering just inches above the take too much imagination to
imagination is not that good, origin drawn on the piece of figure out that the remaining
use a real one). Now draw x and paper. Measure the height of the seven corners have co-ordinates
y axes on the paper, with the bumble bee above the origin, (0,0,10), (0,10,0), (0,10,10), (10,0,0),
origin near the bottom left hand using the same units of (10,0,10), (10,10,0) and (10,10,10),
corner. The x axis goes off to the measurement as the x and y but these co-ordinates are not
right, whilst the y axis goes up axes are measured in, and sufficient to define a cube - all
towards the top of the paper preferably without being stung. they define are eight dots, four
Any point on the paper can be Suppose the height of the bee of them on the paper, and the
represented by two co-ordinates was four units — the co-ordinates other four floating in space fen
(x.y). This Is two dimensional co- of the bee would be (0,0,4). units above the paper. What
ordinate geometry. The PLOT Suppose it buzzed three units about the cube itself?

78 ZX Computing Monthly * February 1987


On edge can work out whereabouts on 10 DIM P(8,5)
the screen the Image of P7 will
Since this series is concerned fall, and if you can also work out 20 DIM L ( 1 2 , 2 )
only with line drawings, the only whereabouts on the screen the 50 FOR I = 0 TO 1
thing we will need to know Image of P8 will fall, then it is
about the cube are its lines — or obvious that the image of the 40 FOR J » 0 TO 1
edges. This means that we need line L7 will just be a straight line
50 FOR K « 0 TO 1
to record which points are connecting the Image of P7 with
connected to which other points. the image of P8. This we can do 60 LET P(4»I+2*J+K+1,t) = 10*K

f
Look at figure one, this Is a on the Spectrum's screen using
70 LET P(4*I+2*J+fC+1,2) - 10*J
drawing of a cube, but with PLOT and DRAW as normal in
every vertex (corner) marked with BASIC All we now need is a 80 LET P(4*I+2»J+K+1,3) = 10»I
the letter P and a number method for working out the
between one and eight, and position on screen of the images 90 NEXT K
with every line marked with the of all the points. 100 NEXT J
letter L and a number between There are many, many
one and twelve. Notice that methods of transforming three 110 NEXT I
there are more lines than there dimensional co-ordinates down 120 FOR I - 1 TO 12
are vertices. to two dimensional co-ordinates.
Figure two shows a BASIC The simplest possible means is 150 FOR J - 1 TO 2
program which draws the cube just to throw away the z co- 140 READ L ( I , J )
In figure one Don't worry too ordinate leaving just x and y.
much at the USR statement In This gives you a plan view of the 150 NEXT J
line 540 — It's Just the points and object — not very satisfactory, 160 NEXT I
lines we're Interested in at the however — we need something
moment. Line 10 dimensions an a bit more daring than that. 170 DATA 1 , 2 , 2 , 4 , 4 , 5 , 5 , 1
array PO to hold all the points. It 180 DATA 5 , 6 , 6 , 8 , 8 , 7 , 7 , 5
0> is dimensioned eight by three Projection
because there are eight points, 190 DATA 1 , 5 , 2 , 6 , 4 , 8 , 5 , 7
and three co-ordinates for each The method we shall use is a 200 FOR I = 1 TO J2.
point. Line 20 dimensions an technique called Isometric
array LO to hold all the lines. It is Projection. The idea Is that you 210 LET A - 1s CO SUB 500
dimensioned twelve by two have to imagine a camera 220 LET P1 - 5*P+128
because there are twelve lines, floating in space looking at the
and two points at the two ends object. In isometric projection 250 LET Q1 - 5*Q+88
of each line. the camera is always located at 240 PLOT P1,Q1
Lines 30 to 110 initialise the co-ordinates (N.N.N). N can be
array P0 to hold the co-ordinates any. very large, positive number 250 LET A = 2: GO SUB 500
of each of the corners of the — the larger the better, since the
260 DRAW 5*P+128—P1,5*Q+88-Q1
cube in such a way as to camera is assumed to be a long
maintain the numbering in way from the origin. The camera 270 NEXT I
figure one. Lines 120 to 190 Is pointing directly towards the
origin. It is the right way up. and 280 STOP
Initialise the array L0. Note that
this time we have to use data it has a very powerful zoom lens, 500 LET A = L(I,A)
because there's no easy so it can see the object (which is
located at or near the origin). 510 LET X - P(A, 1)
mathematical way to work them
all out as there was with the The image that the camera 520 LET Y - P(A,2)
vertices. The rest of the program would see is the picture which is
to appear on the screen. 550 LET Z = P(A,3)
just draws the cube. You can run
this program if you like, but There are other types of 540 RANDOMIZE USR 53320
make sure that the machine projection [many other types),
code Is in place first. 550 RETURN
1 which have the camera and the
N Incidentally, if you change object at different positions in Figure 2
y lines 60 to 80 so that they end space, but the idea Is always projection:
\ 8*K, 10* J and 12*1 respectively the same — what the camera
Ihen you'll get a cuboid, not a sees, the Spectrum draws. LET p=SQP(3) * (y-x) I 2
cube — a rectangular block. Try In future issues, I will show you LET q=z - (y+x)/2
it — It presents a much more how to use all these other
pleasing picture because the projections, but for now we shall In other words, we can do the
t front and back corners don't concentrate on isometric It is whole task In BASIC - we don't
overlap. sufficiently powerful to be able need any machine code at all.
IV
This brings us to the most to demonstrate the basic Ideas We can define the points in
Important question of all. How of 3D and projection, whilst at space and the lines joining
9
does It all work? We need to the same time it is sufficiently them; we can transform the
understand the general simple (mathematically points using the above formulae;
»rs principle of converting a three speaking) so that anyone who we can PLOT the new points, and
of dimensional solid object down knows anylhing about BASIC will we can DRAW the connecting
to a two dimensional picture, be able to understand It. lines. All very easy.
> look agains at figure one. let's look at the mathematical The machine code I have
Notice that, for instance, line L7 side of things first, shall we? included is really only intended
is connected to points P7 and P8 Suppose a point In three to work out the above formulae
— but figure one is a picture, not dimensional space has co- — that is — given x, y and z the
a real cube. In other words, line ordinates (x.y.z) — any point will machine code will work out the
L7 Is connected to points P7 and do. Suppose also that the image values of p and q. Despite being
P8 both In the real three of this point appears on the in machine code, the machine
dimensional cube, and in the screen with PLOT co-ordinates code program uses the values
two dimensional picture. This is (p,q). What we need to know is from BASIC variables, and
true for all of the lines, not just how we can calculate p and q, assigns BASIC variables with the
for L7. Although this may seem given only x, y and z. results. You may care to examine
stunningly obvious, it is The solution turns out to be so the machine code to see how
nonetheless the most important easy that we can do the task in this is achieved. None of It is
piece of information in 3D BASIC The following two LET really difficult — it all hinges on
graphics. It means that if you statements will make the the way that BASIC variables are • •
79
ZX Computing Monthly * February 1987
Listing 1
ORG 8200
2A4B5C SEARCH_VAfi ID KL.(VARS) HLt points to variables area.
7E S_V_LOOP LD it,(HI) A n e x t variable byte.
G*7F AND 7r Ignore bit 7.
J7 set
C8 HET Z Return with carry a«t If byte 80h
reached (le if variable not round).
B9 CP C
06 RET Z Return with carry reset if
-J variable found.
C) fVSH BC Stack variable rune searched for.
CDB819 CALL l9B8,NBtT_CHtE DEi points to next variable.
EB EX DE,HL HLt points to next variable.
Ct POP BC Ct- variable nam.
iapi JR S_V_L00P Juap back to continue search.

CBG 8212
0E7A .Tx_zrx LD C,7A Ci« code for variable Z.
CD1EB2 CALL 8?1E|CRI_VAR Stack variable Z.
0E79 STK_YX LD C.79 Ci» code for variable T.
CD1EB2 CALL 621E,GET_VAR Stack variable T.
0176 LD C,78 C:- code for variable X.
CD0062 CO_VMt CALL (J200,SEARCH_VAH Search for variable.
DA2E1C JP C,1C2R,REPCRT_2 Error if variable not found.
!} INC HL HLt points to variable contents.
CJB45J JP J3B4,STACKJUJK Stack the variable contents onto
the calculator stack, and return.

OIK 8226
CD17S2 TRANS F0HK CALL 8?17|STE_YX Get T and X onto calculator stack.
V RST 23 Y,X
0) •ublrtct Y-X
}440BOOOOJ stk data j
ae wjr Y-X.SCBKJ)
04 nultIply S«P(JKT-X)
A2 const I»lf s«0)«<r-x),i/2
04 null 1 ply SFLP(5)*<Y-X)/2
J» endcalc
0S70 LD C.70 Ci* code for variable p.
CD4762 CALL e247,AssrGN_rAn LET P » S<*{J)-(T-X)/Z.
CD1282 CALL e212,3TK_fflfI Cet Z,T,X onto calculator stack.
Q RST 28 z.ir.x
OF add 2.Y+X
A2 const half Z,Y*X, 1/2
04 «uItIply 2.(YEX)/2
05 subtract Z-<Y+X)/?
ja •ndcaic
0E71 LD C,71 Ct- code for variable Q.
CDOO02 ASSlQNJVAJt CALL 62QO,SEARCH_VAR Search Tor variable.
J00A JR HC,ASSICK_VAH_2 Juap if variable located.
C5 PUSH BC Stack code for variable najne.
010600 LD BC.0006
CD5516 CALL 1655,KAXK_ROOH Create rooa for variable.
2J INC KL KL: points to start of new rocei.
CI POP BC Cl- code for variable name.
71 LD (HL),C Store the variable name.
?J ASSICX_VAR_2 INC HL HLt points to variable contents.
E* FUSE HL Stack address of variable contents
CDff-J1) CALL 5')H',3TV_P»mS HLt* address of la.it iten on stack
22655C LD (STXEXDJ.HL Delete the ltea fro* the stack.
Dl POP DG DSt points to variable contents.
010VM LS BC.0005
ED B0 LDIR Copy nuaber into variable.
C9 RET Return,

stored in the variables area. the simplest ot hidden-line


In next month's article — algorithms so that lines which
which will be the final part of would be hidden to the camera
this series — we shall look at won't be drawn on the screen.
isometric projection a little And — oh yes — there will be
deeper. We shall use it to draw lots of machine code involved.
three dimensional graphs, using

80 ZX Computing Monthly * February 1987


Ray Elder on adding additional commands.

_ e have received several 9999 available. So if that's your area


enquiries from avid 81ers about amble along and check them
the possibility of adding A final Indicator to the routine out for yourself.
RESTORE. DATA and READ to the that it has reached the end of Bye all
ZX81. the program Is required and this
There have been several is provided in the form of a line 1 REM,
methods which have simulated 9999 REM followed by the inverse
these operations such as storing space (black square). This line is
DATA in REM lines and PEEKing it ESSENTIAL.
into variables, but the most The DIM A$ and CLEAR
efficient that I have encountered commands Instructions are
was written by our own regular important In the main program 2 FOR 1 - 1 6 5 1 4 TO 165631
writer David Nowotnlk for us In as It ensures that the variable AS 3 LET A«='7676000000002104407
the heyday of the ZX81 in 1983. is the first in the variable area of 52374233600C92A84403A8640A720187
As many existing users will memory and the main routine EFEEA28032318F8237EFE80283CFE082
undoubtedly have missed this can locate it. 0EF233E01328640EB2A104001060009E
system I have no hesitation In You may find that LIST B3E003287407EFE1A2813FE76280AEDA
reprinting it, especially in light of produces just 1 REM, to 0E521874034E118ED3E0032364023228
the recent requests for such a overcome this use LIST 2 (or 3 or
44006002187404EC9002A0C4001F8020
routine 100 or 3000 eta).
9EB21FB40011100EDB0CD83401898003
Data REMs should have the
Restore/Data/Read number of data items as the first 43A3900342B0029263926002A373734 3
character following the grey 7"
The program consists of two square after the REM. For 4 P O K E I, 1 6 % ( C O D E A«-28)+C0D
routines which must be located example: E A* < 2 > - 28
In the first REM line statement of 5 LET A « = A * < 3 TO )
Ihe program. The length is a 170 REM 4,EENY,MEENY,MINY,MO 6 NEXT I
mere 128 bytes, but the line 1 Finally, note that you cannot mix
REM . . . must contain 132 dots numeric and string data on the Program 1
(or characters of your own same data line, two or more
choice). lines will be required and 1 REM
Enter program 1 and SAVE it in dummy READs will be needed to ....CONTAINING THE CODE rROM,..,
case of any errors, then RUN it jump over the unrequired data.
and delete every line EXCEPT
line 1. This is done by entering RAM Packs .... P R O G R A M 1
each line number one by one
Now enter the lines In We received a letter from Philip 9 REM 16530=READ, 16520-REST
program 2, these are needed for C Allen who asks for details of 10 CLEAR
every program that you wish to 64K RAM packs, joystick 20 DIM A*(32>
use the funclions In. the rest of interfaces, and fast storage (disks 30 R A N D USR 16520
your programs being written etc.) available for the ZX81. 9999 REM
after these lines. Once more As far as we can tell there are
SAVE the whole thing to tape. not longer any companies Program 2
This is your master copy producing ZX81 equipment, and
Program 3 is a demo of how not any llkelyhood of any 1 REM
you may use the routines. starting to either. If anyone has
....CONTAINING THE CODE TROM
such devices or knows where
RESTORE resets the program they may be obtained then we
pointer to the start of tne DATA would be only too pleased to ... . P R O G R A M 1
line and is used by the pass on such Infa • • • •

command RAND USR 16520. Philip also asks for details of 9 REM 16530-READ, 16520-REST
READ has two possible forms, LET ZX81 user groups and he should 100 LET C - V A L A«( TO R A N D USR 1
C$=A—$( TO RAND USR 16530) have a copy of last month's 6530)
to read string or character data, page by now which mentions a 110 DIM Z*(C,10)
and LET C=VAL A$( TO RAND few such groups. We will
USR 16530). continue to publish any
120 FOR 1=1 T O C
0
Z
130 LET Z«<I1*A«< TO RAND USR 1
DATA lines are stored In any line information anyone cares to

1
6530)
but with REM and the graphic supply us with for the benefit ot
150 PRINT 2*(I)
obtained on shifted key A you all. Philip himself sent us
following it (a "grey" square).
NOTE that in program 3 this does
not show up on our printer so be
sure to add It In.
some details of a company In
Birmingham, "House of Software".
51 Snowhlll Queensway, which
has some stocks of ZX81 software
160
170

Program 3
NEXT I
REM 4,EENY,MEENY,MINY,MO
<
ot
O
fA O

oo
X

81 ZX Computing Monthly * February 1987


s
Future Knight proves hard
to define but easy to enjoy

Is it a shoot em up, or a from the evil clutches of the evil


Future Knight platform game or perhaps an Spegbott the Terrible.
Gremlin arcade adventure? Or is it a Wearing your Omnibot Mark
completely new style of game IV all purpose attack suit,
£7.95 combining the action of all complete with laser assisted rifle
three? Either way it's going to be you rush to answer an Inter-
S pectrum gamers that enjoy big. dimensional distress signal and
categorising games will have The plot revolves around our arrive in the S.S. Rustbucket.
tun with this latest offering from attempts as Randolph the hero However, instead of finding your
Gremlin. to rescue your beloved maiden Princess Amelia you're greeted
by berserk defence droids that
swamp you and drain your life
energy.
Luckily, you've brought a
couple of spare lives with you in
case you lose all 999 of your
energy points.
These defence droids come In
many shapes and sizes and
range from high flying ghosts to
slithering blobs of goo.

Bubbling lava
To add to your problems there's
also deadly pools of bubbling
lava and platform traps that you
can leap into but can't jump
walk or blast your way out.
The game begins inside the
crashed Rustbucket and your first
job is to find the way out onto
the planet then search a jungle
until you find Spegbott's castle
and eventually your Princess.
Ahead of you lies 20 levels of
vertically scrolling screens that
form the maze of ladders,
platforms and hazards of the
Rustbucket and the planet
outside.
All is not lost as help is at
hand in the objects that you can
find around the ship, although
you will have to fight for them.
Safe passes and securo keys
open and unlock the exit doors
that lead from one level to
another until eventually you find
the exit pass to let you out of the
ship. You may also find bombs
that destroy a screenful of critters
while replenishing your energy
as well as Confusers to stun them
and the mysterious Shorteners
and Flash Bangers.

to defeat the almost perform a cosmic juggling act


Henchodroid indestructable Henchodroid. as you can only carry one
You'll probably achieve this object at a time!
Once you reach the castle and through objects that you've Despite this restriction you'll
find the dungeon you will have found but first you will have to soon be bounding through the
levels.
Unfortunately, you'll have to
do the full 20 levels in one sitting
as there isn't a save option or
even a pause button. Leave the
ame for a few minutes and
'andolph will wave to attract
your attention and then spin
around losing energy at an
alarming rate.
A superb mixture of all that's
best in arcade adventures,
platform games and shoot em
ups combined to signal monster
hit.

> L OSilill
u
"WIT:
MI

3 jaiukm
A big time crime
simulation from Ariolasoft.

They Stole a Million


Ariolasoft
£8.95
ou are the Boss of a gang
that's decided to hit the big
time. Gone are the daring days
of riding on the buses without a
ticket. Ahead of you lies a life of
crime helped by your S.W.A.G.
(Software for Aspiring Gansters)
disk.
Through S.W.A.G. you can
select your target from Coin
Dealers to Banks and buy
information and blueprints so If you succeed you and your
that the team you hire is right for team will be richer and able to
the job. plan bigger and better jobs until
Each team member has their finally you get the chance to
own special skills from safe steal a million.
blowing by Detonate D'Arcy to If you're prepared to do the ^
electronics expert Charlie Volt. planning and research you'll
Once you've chosen your find this game fascinating but
team and found the right fence fairly soon hit all the targets and
you can plan the job. finish the game.
In this phase you plot the
exact movements and actions of
each team member throughout
the raid using the joystick or
keyboard controlled icons.
Therefore you can make sure
that Skeleton Joe has picked all
of the locks to let D'Arcy through
to get the swag. Get the timing
wrong and you could end up
serving time!
Then it's for the raid itself. If
s
§
your plan works well you and
your team will soon be richer.
8ut the best laid plans . . .
If any robber has a problem
then he'll radio for assistance
then you can either give him
extra instructions or go and sort
s him out.
It's important to get your team
u right as the wrong person doing
the wrong job can land you in
prison. Even the lookout is
o important as nosey police cars
III must be spotted and the
O. robbery halted until the lookout
CO gives the all clear.
MT
Both The Artist and Art Studio are re-released this month in enhanced
versions, but are the improvements worth having?
but no printing. It is especially has been completely
The Artist II galling to use the Pagemaker. redesigned, and now has easy
an exciting facility which allows to use pull-down and icon
Softechnics you to produce an illustrated A4 menus. I am sorry to see thai the
£14.95 page, combining text produced facility to draw an arc between
by Softechnics' word processor. two points is no longer with us.
• have mixed feelings about The Writer, with graphics and that the keyboard cursor
this program. It could — and produced by The Artist II. There control keys are still letter keys
should have been by far the you are, with your beautiful rather than the arrows, but Ihe
best package of its type illustrated page on screen, and extra facilities the program now
available for the Spectrum, but it because the print option doesn't has are tremendous. There are
seems to have been rushed on work, you can't get it on to now elastic lines, circles, ellipses
paper. or rectangles, and shapes can
r
to the market without enou
checking, and a handful of be drawn in outline or ready-
bugs have been allowed to take And yet . . . filled with the chosen texture.
There are 28 textures available,
the edge off it. Some of them
are just irritating things which But, despite the bugs, this is still and all are redefinable and can
don't matter too mucn — the a very powerful package. be saved or loaded. The fill
storage menus are the wrong Developed from Softechnics' option is as efficient as ever, and
way round, so you have to select earlier success. The Artist, it now the enlarge option, for detailed
tape' to use Microdrive and vice supports Microdrive. Opus disc work, far better than in the old
versa; if you move the screen up or tape storage, keyboard or program. The enlarged window
to work on the part normally Kempston joystick, Kempston or is shown alongside the same
hidden by the icon menus, you AMX mice for control. The layout area in normal size so that the
have to scroll the screen after
some options, because the
bottom three lines are
transferred to the top when you
return to the normal viewing
screen. But some other problems
are much more serious. The
SAVE/LOAD operations do not
work when you are using the
design font option. SAVE stores
the wrong block of memory, and
LOAD crashes the program! I
have managed to find a way of
getting round this (see footnote),
but the deficiencies in the
printing facilities have defeated
me so Tar.
The handbook says that the
program will drive an Opus disc
drive Centronics interface or
Kempston E. I am told that there
are no problems with Opus, but
with my Kempston E. only the
grey scale screen dumps would
work. The ordinary screen dumps
and the Pagemaker printing
option simply produced the
required number of line feeds

85 ZX Computing Monthly * February 1987


screens 3 x 3 square size, less for This is a footnote
larger. To test animation, the
speed and frame numbers are To save and load type fonts.
selected and the animation is
demonstrated on the normal size Select the save/load option and
screen. Sprite files can be saved give the file name when
with their frame information — prompted. Use the BREAK key to
for reloading into the designer return to BASIC. (Do not start the
— or as a string of bytes for use tape if saving). Enter as a direct
in other programs. command;
effect of changes can be seen Is The Artist II a good buy?
as you work. Well . . . if you have an Opus LET B=number
For lettering, the program disc drive, or are not particularly
comes with five fonts. These are interested in screen dumps, yes. number=62268 for font 3
redefinable, but you would be You will not find a better or more 61500 for font 4
well advised to confine your powerful screen art program 63036 for font 5
modifications to fonts 3, 4 and 5. than this one. But if, like me, you
Font 1 is the Spectrum character use screen dumps a lot, you Now enter GO TO
set, and being held in ROM, might find it disappointing. I
ignores all your attempts to would tike to think that 72 to load from microdrive'disc
modify it, though the font SofTechnics will do some more 74 to load from tape
designer gives the impression work on it and issue a Mark 2 82 to save to microdrive/disc
that you are making changes. version without the bugs, driving 84 to save to tape
Font 2. the small typeface, is the interfaces it is supposed to
used extensively by the program. drive, and with a better Proceed as usual to save/load
I discovered the hard way — the handbook than it now has. The
handbook does not warn you — present one is rather sketchy —
that inverting it makes the menu you almost have to read
cursors invisible and mirroring it between the lines to discover the Advanced OCP
makes the menus unreadable. It full potential of some of the Art Studio
was virtually impossible to get
back to normal without
program's options — and it has Rainbird
too many printing errors. Dare I
reloading the program. also suggest that a free tape £24.95
exchange for those who bought
Cut 'n paste this flawed version would be a • t arrived too late for a
nice gesture? But certainly, Christmas review, but the new
The window and the cut and SofTechnics should take another Advanced Art Studio should
paste options are the program's took at it. It is far too good a have gotten into the shops in
great strength. A rectangular program to be left in the state it time to make a nice little prezzie
window of any size is now. Carol Brooksbank for anyone who was lucky
(corresponding to the character
squares) can be defined
anywhere on screen and the
area within it cleared, moved,
enlarged or compressed,
rotated, inverted or mirrored. The
design can be thickened or
outlined, attributes changed, or
the image scrolled. Cut and
paste has some of these
facilities, but any size or shape
of area can be manipulated
and, whereas the window option
only allows portions to be moved
in character-square jumps, the
scroll option in cut and paste
allows placement to pixel
accuracy. Both window and cut
and paste have an insert mode
which allows a second screen to
be loaded, and portions of it cut
and inserted into the current
artwork. The ship in the
illustration was cut from one of
the demo screens supplied with
the earlier Artist program, and
inserted into the seascape
drawn with this one. This is a very
powerful facility, allowing you to
build up a screen library and
bring bits and pieces of several
screens together in a new one.
There is now a separate sprite
designer, which has normal
sized and enlarged screens
upon which sprites up to 6 x 6
character squares can be
designed. They can also be
'grabbed' from existing screens
and inserted into the present
one. Sprites for animation can
be designed and stored in a
sequential file — up to 79

86 ZX Computing Monthly * February 1987


enough to get a 128 from Santa. Anything stored in this area new option for the RAM Disc, as
This enhanced version of simply sits there until you need it well as a catalogue listing all
OCP's Art Studio (which is and can then be summoned up the files on RAM Disc or
specifically for the 128 and won't instantly with just the press of a microdrive.
run on any of the 48K versions of button. So. you simply give your
the Spectrum) uses the 128's The new storage facilities are picture a name and instantly
additional memory mainly for implemented by adding a new save it onto the RAM Disc. The
storage purposes, giving you a sub-menu to some of the existing saved picture is automatically
42K RAM Disc facility as well as command menus and treating verified at the same time,
a 16K 'Scrapbook' which, the RAM Disc almost as if it were eliminating the business of
between ihem, allows you to a microdrlve. Suppose that saving and verifying onto tape.
store a number of screens, you're halfway through Next, you choose the 'Text' menu
character sets, Fill patterns and designing the loading screen for and select the new command,
so on. and to call them back the latest mega-game when you 'File Menu", which leads once
from memory instantly — so decide that you want to call up more to the cassette/microdrive
saving you all the fuss of Saving a new character set for printing choice. A quick look at the
and Loading to and from tape the name of the game. You push catalogue shows you that
all the time the cursor over to the 'File' Rainbird have thoughtfully
window as you normally would, included a few alternative
RAM what? but when the menu appears character sets which are tucked
asking whether you want to save neatly away on the RAM Disc.
In case you're not familiar with your picture to tape or You select whichever set you
that bit of jargon, a RAM Disc is mlcrodrive you choose the think Is suitable (if you want to
an area of memory that is set mlcrodrive option. This leads you create a typeface of your own
aside purely for storage of to a new sub-menu which allows there's a 'blank' character set
programs, data, or, in this case, all the usual options for dealing which can be edited, allowing
screen pictures and patterns. with microdrives, but also has a you to do this), call back your
picture and get back to work.
This whole process takes just a
few seconds whereas if could
take minutes if you were relying
F o n t E d i t o r purely on tape storage.
As well as these alternative
File i r a c t e r F o n t n i s c . fi«= ~ j • character sets Rainbird have
also included a couple of sets of
Cassette Brush' and Fill' patterns to give
sk you a bit of extra variety, or you
can always create your own
S.3ve f i l e ... and file them away on RAM
Disc. With over 40K of RAM Disc
to play with there's plenty of
room for all sorts of bits and
pieces, and if you use that up
you can always save the RAM
f en t _ onto tape and start on a new
disc'.
The Scrapbook facility is a
sort of souped up 'cut and paste'
1 option in that it gives you 16K
n $ * & ' ( ) * + # • 1 e 3 U 5 E> 7
• •
/
• —
worth of memory to store small

• •
< — > ? © a E c O E F G rt I j M L n i H • sections of larger pictures, so
that you can use these same
p • Pi 5 T U M UJ X V Z c \ J t _ C a b c d e r g sections over and over, quickly
h » J I m n • p q r S * U V UJ irf Z < t > " l£l transferring them from one
picture lo another
As far as the business of
drawing pictures is concerned
there's hardly anything that
P r i n t | F i l e \ ftttrs. | P a i n t I Misc. I undo I I O could be created with the
U i n d o w s | F i l l ( M a g n i f y | Text I Shapes I • enhanced Art Studio that
couldn't be created on the
original 48K version (although
the 128 version does include a
new 'arc' command), however
the new fast storage offered by
this version is almost as good as
fitting your Spectrum with a disc
drive.
I suppose it's a tribute to the
quality of the original program
that it can't be much improved
upon even with an additional
80K to play with, and owners of
mere 48K machines aren't going
to be left too far behind (neither,
I imagine, will they be too
envious of the enhanced
version's enhanced price). But at
least it shows that some
companies are finally starting to
produce software that really
makes use of the 128's full
potential.

87 ZX Computing Monthly * February 1987


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 BARCLAYCARD.
Lineage: 48p per word. { V A T i n c l u s i v e )
S e m i display: £ 9 . 5 0 per s i n g l e c o l u m n centimetre +
^ J j j ^
[
f
p . 01 - 437 0699
V A T . R i n g for information on s e r i e s b o o k i n g s / V
d i s c o u n t s ( m i n i m u m 2.5cm). J Send your requirements to:
All advertisements in this section must be prepaid
^ ^ NICOLA B A T Y
Advertisements are accepted subject to the terms and conditions A S P Ltd., 1 Golden Square,
printed on the advertisement rate card (available on request). London W1

SOFTWARE

W D Software COMPUTER REPAIRS S C O T L A N D ' S No 1


FOR T H E OL: Ar are Ir marts luvng smnccd Sncar ctropmns For home a n d personal computer repairs
JOSS base £13
srcf the ntniucbarrfHe2XB0 Specially last S p s c l r u m service'
Forget that tedious lime-consuming syntan' Just move thecursor flr*J press SPACE toi a'l
Oon t aastp money on eshrates - m 'ft,if iiKlat a Same day lot most l*utts
youi (il* command* Cursor Keys of your loysnckanow youtoaccess microdr ves (upto ft! ajmnfcfsjtsfCt(iiKirt 'i(i:iuf,w;uit laxw • I hour if (fefivered persona rv
ana floppy l i s t s las many as our interface ailowsl with up to ISO Meson each" Scroll and pestije VAT, ri^eftrt d tut ta IwUen durges • Open 6 days a wee*
print director^-. COPY D E I E T E or P R I N T any l>le ii-lecl TV Oi Monitor mode t*tOi« Rtpjirs guaranteed tor 3 months • free eJfrmafes
LOAOing Of RUNnmg any progiam You only use the keyboard to set the DATE or label a Scettnin „ t18 ?Si«(arts • Upgrade* Memfjr.i/ics jrttl PS U s
<!evice wfn-n FOFtMATting Easy to use with Psion and other sottn.ire No silly icons to Oi l CllMffljurti a 3 mfft warranty on woi* done
learn J O S S will T E L L yOu what t i going to do' Programmer S toolkit arid mass copy"^q 'fiKBai! i99S«tofti A(S'>R8C CBN ORICand PEfllPMf nAL S
printing utilities also supplied Spccity microdnve-only Microperipheral or C5T- tktodrm- tt5 95«Wrti
compatihle disc veisions
nintoiii £1S mc torts MICRO-SERV
Rel O L 7 base £7 «M 95 Deerdykes View
1300 useful OL r e f c r « s c « with ARCHIVE 2 search print program Too long lor |usl one ESC £72 00 • [urts Westtietd Industrial Area,
cartridge so it you nave RelOLS |usl pay 2 ana e i u a media cost lo update EKC*0» rn9i- mm Cumbernauld G68 9HN
Mdv Extension C a b l e £5.50 IK Mernio Eipiftucfl M Scotland
Eight inches long allow* addition ol extra mtcrodnvn loyour OL Twist il to put their ^ ots fttows etooe Tet: Cumbernauld (02367) 37110
tacirvg you JwSwtfftirtfft** Trade schools and club discount given
FOR THE QL: S P E C T R U M : BBC; E L E C T R O N CHI v lent aitli dMKK M P 0
W D Morse Tutor base £4 IV SemotsolCambnattltd
Written to teach amateurs now used by professionals loo' Aosoiuli- Be^inre- or French sfeudCimbmije C£i 3M>
trt CS23 3113? I
sketching your speed to iflwpm you won I find anything with morehelplul features What
else can otter 100 random sentences as well as an the basics 1 Disc version unsuitable for SOFTWARE
B 0 C Q-
FOR THE SPECTRUM: S P E C T R U M REPAIRS
W o r D f i n d e r (Microdrive/disc o n l y ) base £8 THE RECKONER
£14.95 inclusive ot labour pans and pip.
Fo» C H E A T I N G at crosswords Finds m - s s n g letters, solves anagrms 13000 word
vocabulary. SO too long to share a cartridge 10 letter word ending in A T E 1 No problem
Fast, reliable service by qualified ongs A great utility program Works
average repair 24hrs 3months guaran- out most popular horse racing
Tradewind base £3 tee For help or advice ring
H S. Computer Services. Unit 2,
bets, plus greyhound lorecasl
Sailing trading strategy game with giaphic surprises
The Orchard. Warton, Preston. doubles, and up to a twelve fold
Jersey O u e s i base £3
Lancashire PR4 1 BE. Tet: (0772) 632686 for the Itxed adds |lor the
Tent adventure in lime Background ot Jersey folklore from Stone Age to Be<gerac
bookmakers football pools).
For export: £3.99 Plus 50p P&P
QL hardware and software irom many sources Ask tor list quotation
ORDERING ADD COST OF MEDIUM POSTAGE ( I OUTSIDE EUROPE
SINCLAIR SERVICE CENTRE Sena cheque or P O lo
Mdv or 5 25 (loppy £2 3.5 floppy £4 Cassette £0
s Fully Guaranteed Fast Repair Service Replay Software, Dept. Z,
a Appro* 24hr Turnaround
Payment a (15 av cost or send machine with £1 95 8 Stevenage Road,
By ACCESS Eurocard MasterCardoi S T E R L I N G l U K bankcheques Eurocheques dralts I return p4p) fo< ftee estimate East Ham, London E6 2AX.
of International GIRO) To a Personal callers welcome
W D Software (ZX). Hilltop, St. Mary. Jersery, C.I. tel: (0534) 81392 OUANTUM
33 C I T Y ARCADE COVENTRY CV1 3HX
Tel (0203) 24632
NEW ZX81 HI-RES GAME
Arcade action with WAR WEB.
QL/SPECTRUM UTILITIES! C3 95 Fun lor all Ihe family wilh
NEW ZX81 SOFTWARE Games
P O O T E R P U Z Z L E R , C2 95 Send
Wide range ol business/practical
programs available S A E / I R C lor
utilities, adventures, books, our
Z X 8 1 U s e r s Club and much more
SINCLAIR REPAIRS S A E lor leaflet Pooler Games, 24
Parsloes Avenue, Dagenham RM9
details (state Micro) S O Micro- Send S A E to A CV I Foxwell
SPECTRUM/PLUS ll?00 5NX
systems (ZX) PO Box 24. Hitchin, Square Southlields Northampton KEYBOARD 1850
Herts. NN3 S A T INTERFACE/MICRODRIVE £17 00 net)
PLAN YOUR
All puces aie fully inclusive ot p&p and ADVERTISING
VAT Send Cheque with computet only
unless power supply suspected Callers B U D G E T WITH ZX
SLOW SCAN SERVICES Welcome C O M P U T I N G . RING
TELEVISION 01-437 0699 N O W
I T. WESTERN ELECTRONICS
Transmit and receive SSTV Unit F2A & F3
Pictures with this super ZX STOP Avonside Enterprise Park
ACCESSORIES
Spectrum programme. No Newbrouglilon Road.
PLAYING GAMES
hardware needed, only £4.95. Melksham. Wilts
UM four compute to mailt money Turn youi hobby SPECTRUM RESET SWITCH -
P. G O O D R U M MO I horns tuned mamt full srxi part urns T i l l : (0225) 705017 P r e v e n t s damage to your
(Vportunrttft to calk f on tins Inmendoui markil
9 Ryston Close, Hqh wmngi easily p osubf* 0pm to any smslsur computer when power plug pulled
nscfo uw tnd •g.ftir1 Writ* lor tw rtrtkiil in and ou! Only £3.49 inclusive
D o w n h a m Market,
Westlink Promotions; (CG) T o advertise your repairs Cheque or P O to Central fclect-
Norfolk, PE38 9 B D 108 George Street & spares service phone ronics. St Andrews St, Greenock
Tel: 0366 388615 Edinburgh EH2 4LH. PA 15 1HG Other accessories
01-437 0699
Write tor free list

WARNING NOTICE
Advertisements placed in this magazine are to be in strict compliance with our standard conditions (coptesof which
conditions are avatlable on request) and on the clear understanding that the advertiser warrants that his
advertisement(s) does not infringe any copyright or condition of sale of any interested party tn the advertised
product
Further, the advertiser indemnifies the proprietors of this 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
48p per word ( V A T i n c ) Minimum £7.20
L i n e a g e rale:
Semi display: £9 50 per single column centimetre * V A T Minimum s i z e 2cm No reimbursements tor cancellations
All ads must be pre-paid.
Write your advert in S L O C K C A P I T A L S in the grid below, ticking the section you w i s h it to appear under I N C L U D I N G
Y O U R N A M E A N D A D D R E S S I N T H E W O R D C O U N T and send it to ZX COMPUTING. ADVERTISEMENT
DEPARTMENT. NO: 1 GOLDEN SQUARE. LONDON W1R 3A6

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

CLASSIFIED COUPON Name


ALL CLASSIFIED ADVERTISEMENTS MUST BE PRE-PAID. Address
THERE ARE NO REIMBURSEMENTS FOR CANCELLATIONS.
I enclose my Cheque/Postal Order lor £ (or .. P O S T CODE
insertions, made payable to Argus Specialist Publications.
(Delete as necessary) • DAYTIME T E L NO.
PLEASE DEBIT M Y A C C E S S / B A R C L A Y C A R D N O
Signature Date
EXPIRY
£ FOR INSERTIONS DATE ..

" y o u " do n o t wish "to c u t your magazine, p h o t o c o p y this f o r m

FOR DETAILS OF HOW TO TAKE ADVANTAGE OF OUR


SERIES DISCOUNTS IN 1987 RING NICOLA BATY ON
01-437 0699.

THE
message or location reverse, you can make even
compression, or an even split. larger games by using memory
Does the compression work? I normally taken up with the main
fried The Press on a fairly Quill program. However, you
standard text only game that cannot add new locations or
used all but two bytes of the messages with it, you can only
Quill's standard approximately 'amend' them. You must include
30K free memory. On fast blank files in your original which
compression, I managed to Iree can be filled in after
9677 bytes, and the process took compression so your adventure
just half an hour. Slow should be precisely planned.
compression was not noticeably The Press includes numerous
The Press better, saving 9936 bytes but other helpful additions to The
Gilsoft taking eight hours lo do so. Quill, most of which previously
However, with more complex and formed The Patch'. The functions,
£6.95 varied prose, and careful bias which are controlled using a
T / i e press is an adventure utility selection, slow should be more flag and a PAUSE statement in
to complement the ever-popular impressive (Gilsoft say 50% is your original Quill program,
Quill and Illustrator programs. So possible on some texts). Most include; split screen graphics of
don't expect this review to be people — particularly any size you wish (which they
technical. I firmly believe commercial writers — will always scroll up with the text), single
adventures should be written not use Slow I expect, unless the command graphics on/off
by programmers, but by authors, compression is being carried control, a single command
who have little need for out lo cram in just a little that restart, some sound effects. RAM
technical jargon. couldn't previously be fitted in. SAVE/LOAD facility, the ability to
Primary feature of The Press is There is an option to use a incorporate different typefaces,
the text-compressor, which compressor dictionary' and a few features which make
reduces the amount of memory prepared with a previous including your own routines and
used up by location description adventure; this is faster than loading game data between
and messages in your Quilled normal 'fast', though to most parts of a multi-part adventure
game. The program is loaded in people memory will be more easier. All of these are extremely
from The Quill while your important than speed, useful and most are vital to use
database is present. A short The compressor has useful if you wish to market your
menu appears, the new feature implications. You can now write adventure.
of which is the 'Compile and a full length text adventure, If you're already a user of The
Compress' option. On selection compress it and add previously Quill, this package is a powerful
of this, you are given the choice impossible graphics. Or you can and easy to use expansion.
of fast or slow compression. Fast produce relatively massive text However, if you intend to write
will probably take around an adventures by compressing, commercially, or you don't have
hour, while Slow can take ten. adding more with The Quill, the Quill yet. wait until Gilsoft
You are also given the choice of recompressing etc Using The launch their new. Professional
selecting a bias for mostly Expander on the cassette's Adventure Writer.

89 ZX Computing Monthly * February 1987


s s

A high calibre
motorcycle race
simulation from
Mastertronic

Speed King
Mastertronic (MAD
Games)
£2.99
•f you want to add a
motorcycle simulation game to
your software collection, look no
further. Speed King II is an
excellent package, crammed
with options that for a budget
price oflers outstanding value for
money.
For starters there are nine
tracks to choose from, ranging
from Silverstone (the easiest) to
Brands Hatch (the hardest). The
race action itself has been
pitched at Just the right degree
of difficulty. You start at the back
of the grid with 19 other riders to
overtake on your way to the
finishing line. It's impossible to
crash; hit another rider and your
speed plummets to zero as it
does when you career off the and Kempston options) is very The number of laps can be
track. While lacking in realism responsive and unlike some varied from 1 to 9 and as well as
this makes for a better game as motorcycle games does not the one player game there's also
there's nothing more annoying require pinpoint accuracy on a two-player option with a split
than being eliminated for a tiny every turn; missing the optimum screen display.
mistake. line or cornering too fast will just With such a range of options
The handling of the bike result in a rapid drop down the available. Speed King II will
(there are keyboard, Interface 2 field. undoubtedly give hours of
racing pleasure because if you
find the track too simple you
can go on to a harder one or
alternatively cut down the
number of laps.
To keep track of your progress
there is an after race display
which gives your placing, best
placing so far, your fastest lap
and the current lap record.
For the race game fanatic
Speed King It can be highly
recommended.

luNSTIil
HIT
FEBRUARY ISSUE ON SALE 23 JANUARY
MWIfflMMJi

» »

ST

It was a one-in-a million accident -

SHORT again to find out what went wrong. I

CIRCUITr
but Number Five, designed to be a The president of Nova Robotics wants I
strategic artificially intelligent to capture him before the weapons he's P
weapons system, the most carrying kill millions of civilians.
sophisticated robot on the planet. l And the security chief wants to
[ has escaped - and has come to blow him up so that he can get
the conclusion that he's alive! home in time for dinner.
Now the scientist who put him YOU are Number Five...YOU are alive
together wants to take him apart and YOU have got to stay that way!

/
Ocean Software Limited
Ocean House 6CentraJ Street Manchester M2 SNS Short ( trim) is j iMiktturk ol lrv-SUr HV turfy Inc. and PSO PrpvenUtimi
Telephone 061 832 6633 Telex 669977 OccareG « Iri-SUr Pic tures. Inc. and PSO Prc"*?nuiicjnv Al Ri^lils Rewrwd

You might also like