Download as pdf or txt
Download as pdf or txt
You are on page 1of 92

COMPETITIONS!

icon Graphix
Cosmic Shock Absorber
!t was a one-in-a-million accident -
but Number Five, designed to be a
strategic artificially intelligent
weapons system, the most
sophisticated robot on the planet,
has escaped - and has come to
,the conclusion that he's alive!
Now the scientist who put him
together wants to take him apart

Ocean Software Limited


Ocean House • 6 Central Street Manchester M2 5NS Short Oi\»t» i trjtfcfrwi of TrvSur Return, Inc. jnd PSO Pirtenutiom.
Telephone 061 832 6633 Telex 669977 Oceans G W86 VvSur Pmurev Inr, tnd PSO Prrvonuiiom. Al Right* Rt-wrved
m
FEATURES REGULARS
NEWS: The return of Monty Mole.
FIRST STEPS IN MACHINE CODE: Advice for beginners 4
from Alon Davis.
14
SHORT CUTS: More readers' routines
42
EXPERT SYSTEMS: Lef your computer decide.
18
QL COLUMN: News of a new Superbaslc compiler.
49
PRINTER GRAPHICS: How to get the best out of your
printer.
22 ACROSS THE POND: U.S. news
60

GREAT GRAPHICS: A round-up of all the best graphics


hardware and software. CROSSFIRE: Readers' letters.
24 71

DISCIPLE: Could this be the ultimate interface? RANDOM MEMORY: Programming advice from Clyde
30 Blsh.
72

MINI STUDIO: A sound sampler tor the Spectrum.


32 DISCOVERY COLUMN: Routines from Discovery owners.
84

THE VALUE OF TABLES: Pete Cook, author of Academy


and Tau Cell, reveals some of his programming CROSSWIRES: Problem Page.
secrets 87
58

STREAMS AND CHANNELS: Tonl Baker says that you SOFTWARE REVIEWS
CAN use your ZX Printer with the Spectrum 128.
ICON GRAPHIXS 128: A graphics utility for the 128

II | T m
66
from Audiogenic.
28

i
a r t 1 * l P i SPECTRUM: Silent Service (46), Impossaball (54), BMX
F m warn Simulator (56), Ultimate Games (61)
Short Reviews begin
38

I JH
»
Tsr
^ -JPL MINDPLAY: The Silicon Dreams Trilogy from Ralnbird.
76

H-s&J! fliwfi?

Gauntlet (82)

PROGRAMMING PROJECTS
PROJECT X: Ray Elder throws down a programming
challenge.
13
SPECWORD: The last part of our wordpro prog.
50
THE BETTER LETTER: Modifying Tasword.
90

COMPETITIONS
ICON GRAPHIX: Win Audiogenic's graphics utility
versions for both 48 and 128K machines. Football Fortunes (12)
7

COSMIC SHOCK ABSORBER: Martech's latest


mega-game.
37

3 ZX Computing Monthly • March 1987


Monty
Grange Hill After Hours Returns
The Grange Hill cast gel the
arcade adventure treatment in
Argus Press Software's release
based on the Phil Redmond Gremlin's Monty Mole is
book, Grange Hill After Hours b a c k for his fourth outing in
The plot In this animated icon Aut Wledersehn Monty. Peter
driven a a m e centres on Luke Harrapt author of the first
"Gonch Gardener's attempt to Monty platform escapade
retrieve his confiscated Walk- has been recalled to
man from the school. With his p r o d u c e w h a t is said to be
accomplice Paul "Hollo" Hollo- positively the last Monty
way he must break Into the game. In the mark IV Monty
school after hours, gel his Walk- you must g u i d e him across
man a n d so avolclthe wrath of Europe while In the process
his mum. p i c k i n g up sufficient funds
Not surprisingly they run into to buy the Greek Island of
many of Ihe other characters Montos where he c a n enjoy
such as Griffiths the caretaker a p e a c e f u l retirement.
a n d tmelda Oavles, the school But will it be the last Monty
witch a n d sometimes when game? Will Peter Harrap
things get dicey Hollo has to be w a k e up one d a y soon a n d
p l e a d e d wlfh to carry on. find Monty in the shower
There's a degree of Interaction : r o w , w r ' T x r i M d o i n g a Bobby Ewing a n d
that enables you to talk to char- • f i l l i-ft'il eager to traipse over the
acters a n d their response Is In platforms yet again. The
keeping with their character. answer of course lies In how
Grange Hill — The Computer many Monty fans shell out
Game costs £9.95. tor the latest last game.

Spectrum Games Top Ten


1 ( 3) Gauntlet US Gold
2 ( ) Footballer of the Year Gremlin
3 ( D Trivial Pursuit Domark
4 t 7) Space Harrier Elite
5 t ) Super Soccer Imagine
6 ( 5) The Great Escape Ocean
7 t 2) Computer Hits 3 Beau Jolly
8 ( 3) Paper Boy Elite
9 ( ) Headcoach Addictive
10 ( 1 Breakthru US Gold
(Chart supplied by W.H. Smith)

Editor: Bryan Ralph


Assistant Editor: Cliff Joseph

r
Consultant Editor: Ray Elder
Advertising Manager: John McGarry

Design: Argus Design


Primed by Chaw Web, E stover, Plymouth. A.S.P. Advertising a n d Editorial
Advertisement Copy Controler: Andy Selwood No. 1 Golden Square, London W1R 3AB 01-437-0626
Distributed by: Argus Press Solo* and Distribution Ltd. 12-18 Paul Sfreol, London EC2A JJS

ZX Computing Monthly Is published on the fourth Friday ot each month Subscription rate} cn bo obtained Irom ZX Subscriptions. Inlonol. Times Houso,
179 The Morlowes. Hemel Hempstead. Herts HPS1 1BB
The content* of this publication. Including all article*, design*, plan*, drawings and other intellectual property rights heroin belong to Argus Specialist
Publications limited All rights conferred by the Law ol Copyright and other intellectual property rights and by virtuo of International copyright conventions
are specifically reserved to Argus Specialist Publications Limned and any reproduction requires tho prior written consent ol Ihe compony
Argus Specialist Publications Limited. 1987

4 ZX Computing Monthly • March 1987


Joystick New Alignments
To Hand
Loading problems? Interceptor Micros have just released an
Azimuth Head Alignment Tape tor 48K a n d both 128K
Spectrums. Avid Azimuth checkers should note that the
package which Includes the head alignment program, a test
The makers of the Phasor One program on the reverse side (WheeTin Wallie), instruction
joystick are hoping to slun the manual, screwdriver a n d pointer, retails at £8.99.
o p p o s i t i o n with their new
"handheld" stick design. Made
by Britannia Software, the
Phasor One c a n be used by
either right or left h a n d e d
gamers a n d features the joy-
stick p l a c e d on top of the pistol
grip with the trigger p l a c e d
ideally for the Index finger.
Complete with an extra long Azimuth Head Alignment Tape
cable, presumably for firing on
the move, the Phasor One costs
£12.95.
B r i t a n n i a S o f t w a r e (0222
481135)

Yearplanner Winners
A legion of ZX readers set out to gium; C Collins, Normanto; B
rhyme their way to a Level 9 Scott, Gateshead; M. Maysaml,
Yearplanner. Perhaps our Dulsburg, W. Germany; H. Wil-
favourite was Alistalr May of liamson, Moray: J. Welsh. Gals-

8
Elgin. Scotland who m a n a g e d ow; T. Jamleson, St Helens; E.J.
to rhyme "adventures" a n d hun, Lancaster; J. Shelling.
"dentures" in a poetic gem Cardiff; R. Sands, Sklpfon; R Lay-
worthy of William M c G o n a g l e cock. London SE6; M. Kemp Lon-
The other winners are: don SE18; H. Spall. London SE7;
R. Wilkinson, Rugby; Jay RGB Page, Liverpool; M. Austin,
Sachania, Milton Keynes; C Chesham; E. Bennet, London
Grant, Irvine; R. Tarr, Bracknell; SW11; G. 8lake, Glasgow; C Mor-
G. Galloway, Liverpool; M. Ack- gan, Croydon; M. Benjamin.
royd, London SE15; D.I. Wicker, Northants; A. Beale, Blandford
Fakenham; J. Jacobsen, Glos- Forum; M. Beaman, llford; P. Rey-
trup, Denmark; R. Thrower, Lon- nolds, Sleaford; D. Rademaker, SINCLAIR SPECTRUM
don SW18: T. Ridley-Thompson. Palinghuizen, Gent. Belgium; D.
Lambley; I. Rogers, Devizes; P.
Owen, Sidcup; M. Summers,
Morrison, Aberchlrder; A, McLel-
lan. Paisley: B Carter. London E2;
/
Morpeth; G. Bond. Co Antrim; A. Rlgg. York.
D.V. Filip, Geraardsbergen. Bel-

Throne
Together
Mike Singleton of Lords of Mid-
night a n d Doomsdark Revenge
fame Is teaming up with Mel-
bourne House to release a
"multi-player combat game"
c a l l e d Thrones of Fire. The
g a m e is a three-sided power
struggle with two players and a
computer opponent or one
player a n d two computer
adversaries. The three roles
•r *M >•» layed are those of sons of the
Pate
c King Alherlk each vying for
the vacant throne. Alliances
c a n be formed [and broken of
course) as you try to out-
manoeuvre your fraternal foes.
Unlike some medieval
strategy games Thrones ol Fire
promises l a r g e a n i m a t e d
figures hacking away at each
other with axe and broadsword.
Priced at £8.95 Throne ol Fire
has a projected release date of
April. Meanwhile another Mike
Singleton g a m e Dark Sceptre
MOVtMfcHO tlGfj £ COt-tFH J WODC
t * t f f c N ORnrts i c n e w jqgi jrirtm
for Beyond Software has still yet
to see the light of day. Will
Throne of fire suffer the same
tale of repeated delays?

5 ZX Computing Monthly • March 1987


Enduro Racer Indoor Games
Acllvlslon are set to release gruelling trail bike marathon
the conversion of Sega's coin- over progressively rougher
op motorcycle simulation terrain, tnduro Racer will cost
Enduro Racer, The game Is a £8.95.

r "Sxrt 'T»xa«i»x<: \ruuu L-v&^i-fl


^ |r Jti.

Super Sunday
In the wake of the Superbowl, Nexus are releasing an
Amorican Football simulation c a l l e d Super Sunday. Costing
£9.95 Super Sunday will feature 20 of the teams who havo
appeared In the Superbowl since 1968. Details of the 1987
finalists Denver Broncos a n d the Now York Giants will also
be included.
Super Sunday wilt combine animation with players'
performances based on past form statistics. When you've
d e c i d e d which move your team will make, all the players on
screen move during the play. There is a two player option
or you can take on tne computer. There is also a n 'tiutoplay"
option where the computer plays two sides against the other
based purely on the teams' past form.

Lift for Quicksilva

A
> f

-I -I
I I
m

Elevator Action Is a g a m e where former lift operators will have


Adventures On Paper
a definite advantage In this coin-op conversion you must guide Incentive Software, is a i m e d at those who want
Agent Offo Irom the top of a skyscraper to the bottom where producers of the Graphic to organise their adventure
his getaway car is wailing. Olio c a n certainly take care of Adventure Creator have writing more efficiently. The
himself as he is able to 'Shoot, jump, ride, duck a n d karate kick released a new Designer GAC Designer Pad costs
his way lo salety". The g a m e retails at £8.95. p a d for Adventurers. Each £7.95 plus £1.25 p & p
p a d consists of over 200 Incentive Software, (07356
double sided A4 pages a n d 77288).

6 ZX Computing Monthly • March 1987


ICONS AND
OLD MASTERS
Here's your c h a n c e to win one of twenty-five copies of Icon Graphix

C o p i e s of Audiogenics' Software Lid. The editor's Square. London W1R 3A&


enhanced Icon Graphix for fhe decision Is final a n d no Please remember to put your
128 are on offer in this correspondence. address on your entry envelope.
competition designed tor the art Send your entries to Icon The closing date for entries is
connoisseur. If you are a 48K Graphix Competition, ZX April 10th.
Spectrum owner, don't despair, Computing, No 1 Golden
just tick Ihe appropriate box on
Ihe entry coupon a n d if you win Icon Graphix Competition
you'll receive a copy of the
original Icon Graphix. A) Title - ( ) Artist - ( )
All you have to do to win is
correctly identity the three B) Title - ( ) Artist - ( )
famous pictures on
this p a g e a n d name the artists C) Title - ( ) Artist - ( )
who painted them.
If you c a n spot all three Please tick your machine - 48K • 128K •
pictures a n d their painters a n d
are a m o n g the first iwenty-five Name
entries pulled out of the hat, you
will soon be creating modern
masterpieces on your Spectrum
Address
a.
with Icon Graphix.
The competition is open to all
ZX readers except employees of Send your entries to Icon Graphix Competition. ZX Computing, No 1 O
Argus Specialist Publications, Golden Square, London W1R3 AB
Chase Web a n d Audiogenic O

7 ZX Computing Monthly • March 1987


ij » - j r—J a i *

i # i j* -1 < % « 4 # v • W #\ •\ #^

lifil
*

£ 1
• »•- t hip
A 3D POW escape Get c a u g h t in the wrong
p l a c e at the wrong time a n d
two objects at any time a n d so
you have to find a safe p l a c e to
game that captures the you'll b e sent to solitary to c o o l
your heels. This also destroys
stash them before the b i g
escape.
Imagination your morale a n d c a n also
Increase the number of guards
A good hiding place a n d a
possible e s c a p e route is the
that are assigned. A constant tunnel that you c a n find by
escort of three guards makes moving the boiler in your room!
The Great Escape e s c a p i n g almost Impossible. Unfortunately, the tunnel network
Ocean Your morale is extremely Is c o m p l e x a n d difficult to
important a n d Illustrated by a n a v i g a t e in the dark, but if you
£7.95 flag at the side of the screen. found a torch . . .
As e s c a p e attempts fail a n d The g a m e graphics are
ocked in a prison c a m p your objects are confiscated your excellent as the c a m p is
daily routine consists of roll calls, morale drops. The lower It gets c r e a t e d from 255 scrolling 3D
exercise periods a n d e s c a p e the less likely you are a b l e 1o screens full of prisoners, guards,
attempts. break out of "auto prisoner" a n d dogs, b a r b e d wire, buildings
If you're indecisive for more e s c a p e until finally at zero all (most of them off limits) a n d
than a few seconds you'll player control is lost a n d the searchlights.
automatically follow the daily g a m e Is over. All night the c a m p is
routine of sleeping, walking a n d After recent O c e a n disasters enclosed In darkness that allows
eating. If you want to try such as Miami V i c e a n d Knight you 1o explore freely if you c a n
something else then a press of Rider t was surprised at how a v o i d the patrols a n d the
Ihe fire button regains control. g o o d this g a m e was. It takes a searchlights.
Now you c a n explore the c a m p , little while to get into it as you The odds however are against
search a n d find potentially just observe the normal prison you a n d you'll p r o b a b l y spend
useful objects a n d scout out routine. the rest of Ihe night in solitary.
possible e s c a p e routes. But you Then you c a n find the A brilliant idea, superbly
must return to the c a m p routine opportunities to d u c k through a implemented, Ocean's best ever
if you want to stay out of solitary. door, search the room contents, Spectrum g a m e !
Swapping in a n d out of this steal anything interesting a n d b e
"auto prisoner" m o d e is essential out before the guards notice
if you are to escape as it you're missing.
ensures you get to roll calls, eat You c a n only carry around
a n d sleep but allows you some
time to explore the c a m p s
without raising the alarm.

8 ZX C o m p u t i n g Monthly • March 1987


The answer to the
Spectrum-users prayer
thedlSCDPLE
-°fi
t & f i
^

mLM
r».
mm

• .J

AVAILABLE NOW!
the all purpose interface to take
your Spectrum to the limit

DISK INTERFACE DUAL JOYSTICK PORTS


• Allows up to 1.6 M b of storage on 2 drives * Sinclair and Kempston compatible.
* Loads a full 48K program in 3.5 seconds NETWORKING
+ C^patfblewKhany standard drive - single or double * °P e r a » i n 9 « S T
density, single/double sided. 40/80 track 3 . 3V2 . 5 ' . . Ipectrums
SNAPSHOT BUTTON • Interface 1 Compatible
* Saves any program instantly - at any point you wish and
as often as you like.
PRINTER INTERFACE W
i r Compatible with the whole range of Centronics Parallel W
printers. W
-k Uses normal Sinclair c o m m a n d s - ^ ^ ^ ^ ^ ^
LLIST. L PRINT. COPY ^ ^ ^ ^ ^ ^
• Permits user defined and screen graphics.

Use the disciple with any Spectrum - even the new Plus Two model.

the disc PLE


the ultimate disk, printer, joystick and network controller for the Spectrum I . O « 7 i « 7 j £89.95 (inc VAT)
Designed by Miles Gordon Technology for Rockfort Products (a trading division of Vignesh Ltd)

To: Rockfort Products, 81 Church Road. London NW4 4DP


Please send me POST FREE (Quantity) DtSCIPLE Interfaces
(a £69.95 each, including VAT & P&P.
FABULOUS PACKAGE PRICES I enclose CHEQUEyPOSTAL ORDER for £
Disciple/Drive from £155. OR debit by ACCESS Q or VISA • (tick as appropriate)
Disciple/Drive/Printer from £325
For more information call us CARD NO I
on 01-203 0191 or visit our EXPIRY DATE
SIGNATURE
London showroom for a
demonstration N A M E (Block Capitals)
ADDRESS—™™™™—
Postcode
Overseas orders and trade onquiries welcome. Telex 946240. Ret. 190-12450
-V.

4W W *

St*'

r j j

ri r
*

m
*

^
( m y / .
i '< /

I -"I
t ^ r — •
V H-

0
v V

%
* S ^ ^
Spectrum in October, Amstrad in November, Commodore 64 in December. All C9.95

I - - i-j p Sales dept.,


. ^Al tt Castle Lodge, Castle Green,
I J p Wj I Taunton, Somerset TA1 4AB
1 L- L^ I W f f l E 1 England t ^ ^ m h , . ^
software getting harder
R.R.P. £9.95

Spectrum & Amstrad Y ^


- r r 1
available November 20th
Commodore 64
available January 20th
— njl— "
Trade enquiries to Centresoft
/
on 021 356 3388 MMtv\ '•Ml
Sales dept
Castle Lodge, Castle Green,
Taunton, Somerset TA1 4AB
England rinpnom i»
TmHptKxm mii M
|0*U) ww
4 t t A*

u l l M r w
m u w m i
i ' •v

11 \ \ f k l «

\V. i >'• i,53JBI


f* f <

A
crisis, "Selection Problems'" is a
square fo beware ot as the
T /P. computer program chooses one
of your players randomly who is
either injured or retired causing
you to frantically rejuggle the
team.
Plenty of variety is built info
^ " h e n popular b o a r d games the b o a r d g a m e but to stop any
have been a d a p t e d tor the c h a n c e of it b e c o m i n g replti-
home computer they have often

£
tious you c a n conduct transfer
been a disappointment. Games deals a n d h a g g l e over players
that c a n draw p e o p l e round a at any point in the g a m e a n d il
table like a magnet tend to lose someone is selling off players to
Jheir a p p e a l when the monitor ovoid bankruptcy the bargain-
screen is the focus of attention. ing c a n get very fierce indeed.
Perhaps with this in mind. CDS There's an awful lot of
have designed a g a m e that enjoyment to be h a d out of
keeps the a p p e a l i n g social Football Fortunes w h eliher, y o u ^
aspects of board games (ie. it enjoy football p i j y o i CDS hove
c o n get very competitive a n d , ii o a c k Ihe human
there are plenty of opportunities^ eiemenf a n d the more players
to outsmart your opponents) VoTThave (from two to five c a n
while ny out all the d o r play) Ihe better Ihe g a m e For a
work — j o l H r t y m e a l c e . statistics, c h a n g e Ihe c o m p i H » n 3 ' o g r a m

*
t d W « ; results e t c to the ^.flfi n g role to the ,
computer. ^ ^ j i i Iball Fortunes is
Football Fortunes I F a r f f l all the be! PThat.
enferpgstna nybrid that
been i H K j o u g h t out to eWW
m a x i m j W B b l d over the football
fanatics imagination. If you've
ever followed football you will
definitely have put together your
"dream team" with all your
favourite players. With Football
Fortunes you c a n try to d o just
that in your quest to carry off the
• A
l e a g u e a n d C u p double. Suc-
cess depends on assembling a

A\
strong squad from the available
player cards, e a c h c a r d
i I represents a well known player
a n d gives his category
(defender, midfield. etc) a n d a
star rating 1 to 5.

F I
If your favourite player has
b e e n left out there are blank
cards provided so you c a n g
include them. The star ratings
are b o u n d to spark a n argument

4
or two especially if your
particular hero is d e e m e d to b e l
only worth one star. The total star"
ratings for defence a n d attack
are fed into the computer before
e a c h match to indicate your \ J
team's current form.
The g a m e proceeds much ^
along the lines of a conven-
tional b o a r d game. Throw the
computerised d i c e a n d p r o c e e d
around the board, which is
sizeable (fitting it into the d o u b l e
cassette size box was a master-

OSIT"
p i e c e of origami) to l a n d on
squares that may be to your
advantage like sponsorship or
send you sliding into bankruptcy.
The manager's Tuck square may
be g o o d or bod. a n d result in a
windfall or g o i n g seriously into
the red due to a m a n a g e r i a l
up the array a n d Ihen select two
RND numbers between 1 & 52
a n d swap the contents of the
array, eg: LET
A=INT(RND'52+1):LET
B=INT(RND*52+1):LET X=S(A):LET
S(A) = S(B):LET S(B)=X
Put this in a loop for as many
times as it takes to get a g o o d
mix a n d away we ao!
Of course we stilTneed a
table so that we c a n work out
which number represents which
card, but the actual shuffle takes
a fraction of the time that the
first method would take.
Personally I wouldn't use either
method, but I thought it worth
Ray Elder sets the next seen this happen) a c a r d is looking at the first iwo ways
simply selected purely at because the second method
programming ramdom. The player loses faith has a wider a p p l i c a t i o n than for
in the program when he/she our card shuffle In that it is a
challenge in this draws two nine of diamonds or very effective way of producing
five aces! a numerical non repeating
interactive series. One a p p r o a c h would be to sequence of random numbers.
select a c a r d at random a n d If you think of a pack of cards
elcome to the second in this then check it against a list of the then there are two elements, the
occasional series intended to cards previously chosen to make number or value a n d the suit —
present a problem, discuss sure that if hasn't b e e n picked Hearts, Spades, Diamonds a n d
means ot arriving at a solution before. This means that all Clubs — the non numerical
and then leave It to you to previously selected cards hove cords are Ace. Jack, Queen a n d
produce the c o d i n g to d o Ihe to be kept recorded to enable King. It is almost as if the
job. the check to be made. designer of cards h a d us
First may I say that I was A decision has to be m a d e of computer bods in mind. NONE of
pleasantly surprised at the g o o d the way the c a r d will be these names begin with Ihe
response from the last Project X. selected. It could be a same letter!
Entries are still arriving a n d I will straightforward random number This means we c o u l d set up a
present the solution which I think between 1 a n d 52 (INT string to represent the cards
is most efficient, original a n d (RND'52+1)) a n d then use a using H,S,D,C.A.J,Q, a n d K to
interesting in the next issue, table to look up the actual card represent e a c h of these words. A
meanwhile on to this project a n d value. IE. 1 may equal the typical set up might be LET
which is . . . ACE of SPADES, 2 the TWO of C£="AH2H3H4ZH5H6H7H9HTHJ
SPADES etc. up to 52 perhaps HQHKHAS2S3S4S5S6S7S8S9STSJ
The Shuffle being the KING of DIAMONDS. SQSKSAD2D3D4D5D6D7D8D9DT
If this method is used then DJDQDKDAC2C3C4C5C6C7C8
Over the last few years I have e a c h selected number needs to C9CTCJCQCKC"
seen, used a n d devised several be stored somehow, possibilities Note that I used T to represent
ways of simulating the shuffling ore to store as a number or as a 10 because this then means that
of a pack of cards. As a side string. If kept in numberical form e a c h c a r d is represented by
product the solution to this may then perhaps the simplest way only two characters. Shuffling
also be a means ot p r o d u c i n g a would be to DIM an array becomes a matter of picking an
non repeating sequence of variable to 52 - DIM S(52) - this element of CS at random,
random numbers which may also initialises e a c h of the 52 removing it from the string a n d
widen the scope of the elements to 0. a n d as e a c h a d d i n g it to the front or the end
applications of this exercise. number is chosen then c h a n g e of the string for as many times as
1. Identify Problem. that element to 1 as a flag that it takes to get a g o o d mix.
We need to b e a b l e to select it has already been picked. It you set up the variables
a series of numbers 1-52, which The check c o d e would be T,J,Q,K a n d A to a value of 10
represent the 52 cards in a something like IF S(number) THEN then finding the numerical value
pack, in a random or mixed up GO TO choose a g a i n line. of the card is a matter of getting
order with no repetition of This Is perfectly OK for games the VAL of the first of the Iwo
previously selected where only a few cards are elements that represent a card.
numbers/cards. required e a c h h a n d (such as So now what? I hope this has
2. Breakdown of process. pontoon) but if a lot of cards are started a few ideas buzzing
This is fairly straightforward in used then the selection around and, just like the last
theory: procedure slows to an time, we would like to see the
a) Set up a representation of a unbearable level as many results of your ideas, especially if
pack of cards. reselections a n d checks need to you know of, or create a
b) Swap the cards positions in be made. You also have the completely unique method of
the pack (Jumble up or Shuffle). problem of keeping another solving the problenn.
3. Possible Approaches. record of the numbers tor What we would like is a short
In practice the reference. program which shuffles a pack
implementation offers several of cards a n d deals two cards
ways. The Random number An Alternative? face up. We do not want a full
generator will obviously be game, but we wilt take into
called on in order to effect the Rather than fill the empty array consideration the solution to the
actual shuffle a n d the most it c o u l d be set to the numbers shuffle problem a n d the quality
complex part is likely to be the first then shift e a c h number of the graphic representation of
means ot ensuring that around, this also has the the cards
selections are not repeated. a d v a n t a g e of keeping a The program(s) which Impress
In the most basic computer recording of e a c h number. us most will be featured, a n d
card games (and in one or two Something like DIM S( 52):FOR their authors suitably rewarded,
early commercial games I have 1=1 TO 52:LET S(I)=I:NEXT I to set in a future issue.

13 ZX Computing Monthly • March 1987


FIRST STEPS INTO
MACHINE CODE
Alan Davis makes the 10,121'Hello!" - but It doesn't. you were presented with the O.K.
When we program In BASIC we're reporl at the bottom of the
screen. The m a c h i n e c o d e
transition from BASIC b e i n g spoon fed by a complex
program has been completed,
a n d length program which is
a n d normal service has been
Into machine code. present in the Spectrum when
we switch on, part of whose task resumed.
Is to translate our BASIC Now, the g o o d news Is that In
ost p e o p l e seem to tind no instructions Into a form that the understanding that, you've
great difficulty In b e c o m i n g heart of the computer — the Z80 understood a m a c h i n e c o d e
reasonable proficient at BASIC microprocessor — c a n c o p e program. Ot course you'll very
programming, after a little with. What the Z80 understands is rightly point out that It's not a
practice a n d experience. But the stuff we call m a c h i n e c o d e : very useful program — but that
sooner or later they realise the a sequence of numbers which doesn't matter. The Important
limitations of BASIC seek to g o cause the Z80 to perform certain thing to a p p r e c i a t e Is that what
further — a n d find themselves up actions. If we by-pass the to us fooks like a string of
against the notorious " m a c h i n e Spectrum's "translating" system numbers is effectively a
c o d e barrier". It's a barrier that, a n d feed the Z80 directly with sequence ot c o m m a n d s to the
sadly, many fail to cross (though the correct numbers, we c a n Z80. Herein, of course, lies a
often not for want of trying), a n d exercise total control over the problem; I'm not a Z80, a n d
I gather that the question "How machine. Heady stuff! neither are you. The number 0
d o t pass from BASIC to m a c h i n e doesn't immediately make us
think "DO NOTHING", a n d the
c o d e programming?" Is still one First steps number 201 certainly doesn't
of the most c o m m o n requests In
the ZXC m a i l b a g . So here's my So let's write a m a c h i n e c o d e make us think "RETURN". If we
own attempt to provide a very program. First ot all we need to h a d to learn to read a n d write
simple a p p r o a c h with a secure a n area of memory so m a c h i n e c o d e like this, life
minimum ot jargon — by which I that any fiddling about in 8ASIC would be very hard Indeed —
mean VERY SIMPLE INDEED! I'm that we d o won t interfere with it, but fortunately, we don't have to.
g o i n g to sacrifice discussion ol a n d we c a n d o this using CLEAR What we need, really, is some
a number of Issues which would 59999. This means that we c a n sort of Intermediate l a n g u a g e to
'be theoretically desirable, safely manipulate any address act as a buffer between
because the most Important trom 60000 upwards. Next, enter ourselves a n d the Z80. a n d
thing is to make that initial these two direct commands, one fortunately such a l a n g u a g e
transition a n d actually write after the other does exist. It's c a l l e d ASSEMBLY
m a c h i n e c o d e programs, no language, which is a kind of
matter how trivial. Even If you've POKE 60000,0 drastically abbreviated p i d g i n
tried betore a n d failed, I hope I POKE 6000,201 English where e a c h m a c h i n e
c a n persuade you to hove What you've just d o n e is to store c o d e instruction (that is, a
another go — because I'm two numbers (which together number or series ot numbers) is
c o n v i n c e d that most p e o p l e make up a m a c h i n e c o d e represented by a mnemonic (a
give up simply because they've program) in the Spectrum's set of letters) which is much
tried to swallow too much, too memory at addresses 60000 a n d easier for us to understand. To
soon. 60001. What we d o now is to take a n example, if we translate

I
direct the Z80's attention to this our little m a c h i n e c o d e program
Z sequence of numbers, a n d you above into assembly language.
The cursed hex c a n do this by entering It looks like this:
If have tried to c o m e to grips RANDOMIZE USR 60000. Try It
with machine c o d e before, yourself, now. You might think
NOP (No Operation)
S you've probably been harrassed that nothing has h a p p e n e d —
RET (Return to BASIC)
< by hexadecimal, tousled by but you'd be wrong; quite a lot
"two's complement", a n d has h a p p e n e d , intact. First, the
oc stultified by "the stack". But Z80 looked at the contents ot
This is m u c h easier to get to
grips with, isn't it? You c a n
O though you'll EVENTUALLY need
to get to grips with such things if
address 60000, a n d found the
number 0. This is the m a c h i n e
understand It; I c a n understand
it; but the b a d news Is that the
O you're to b e c o m e really c o d e "NO OPERATION"
Instruction which tells the Z80 to
Z80 can't! It wants nothing more
oc proficient, you c a n In fact get
started without them. There are d o nothing ot all. So for a tiny
nor less than NUMBERS. The
solution lies in a n ASSEMBLER
Q. certain disadvantages in d o i n g fraction of a second it d i d program — a n d this. I'm afraid,
so — but we're desperate folk, i n d e e d d o nothing. Then It is the point at which you'll need
a n d desperate measures are looked at the contents ot the to blow the dust off your cheque-
S c a l l e d for! So let's begin. What, next address (60001) a n d found book. There are plenty ot
exactly, is "machine code"? the number 201. This Is the assembler programs on the
"RETURN" instruction, which in market a n d I'm by no means
Though you may not be this case tells the Z80 to leave

o
aware ot it, you're using familiar with all of them myself,
the m a c h i n e c o d e program at having settled long a g o on
m a c h i n e c o d e every time you this point a n d effectively "return
run a BASIC program on your Hisoft's DEVPAC assembler. I've
111 to BASIC". And so the obedient also heard of friendlier programs
Spectrum. You may think that the Z80, without further ado, d i d just
CL computer understands BASIC a v a i l a b l e these days, more
that — which is why at the e n d suited to beginners.
00 c o m m a n d s such as PRINT AT

14 ZX C o m p u t i n g Monthly • March 1987


Lm
LISTING 1 LISTING 3
Do n o t h i n g , then return R e a d c o n t e n t s of one a d d r e s s ,
to B A S I C . add one , and put r e s u l t into
another address.
60000 10 ORG 60000
60000 20 NOP 60000 10 ORG 6 0 0 0 0
60001 30 RET 60000 20 LD A , C A D D R 1 )
60003 30 INC A
60004 40 LD (ADDR2),A
60007 50 RET
60008 60 ADDR1 DEFB 2
60009 70 ADDR2 DEFB 0

LISTING 2 LISTING 4
Copy contents of one address A d d t h e c o n t e n t s of t w o
into a n o t h e r . addresses, and store result in
a third address.
60000 10 ORG 60000
60000 20 LD A,(ADDR1) 60000 10 ORG 60000
60003 30 LD (ADDR2),A 60000 20 LD A , ( A D D R 1 )
60006 40 RET 60003 30 LD B, A
60007 50 ADDR1 DEFB 2 60004 40 LD A,(ADDR1)
60008 60 ADDR2 DEFB 0 ' 60007 50 ADD A,B
60008 60 LD (ADDR3),A
60011 70 RET
60012 80 ADDR1 DEFB 2
60013 90 ADDR2 DEFB 3
60014 100 A D D R 3 DEFB 0

Assembler First, I should point out that in uses only two addresses: 60000
order to get all the listings given a n d 60001.
here I instructed the assembler
A good assembler program,
once running, will lake over Ihe
to print addresses (these are in
the left hand column of the
Registers
control of your Spectrum to allow listings) in decimal, rather than Now this Is all very well, but you
you to enter a n d edit a program the more usual hexadecimal — could reasonably be asking by
in assembly language, a n d will a n d incidentally, the facility to this time "Can we have a
then "assemble", or translate, have this option is something program which actually DOES
your program into machine you may like to check when something, please?" So let's
code. But It should also do choosing your assembler, it c a n move on a n d see what else the
much more. For example, it make things quite a bit simpler. I Z80 c a n do. You probably know
should allow you to use line also instructed it not to bother already that the Z80 has a
numbers which, though not llsling Ihe machine c o d e that it number of REGISTERS, a n d you
essential, help you to keep track produces; the Z80 needs those may also know that these have
of what you're doing. It will allow numbers, but we don't at this names: there's the "A" register,
you to attach LABELS to certain stage. On, then to the program "B" register, "C", a n d so on. Each
addresses — which Is yet proper. You'll see that line 10 ol these registers c a n at any
another move towards making contains a n assembler directive time hold any one number
your program more closely which all assemblers will between 0 a n d 255 (ie. one BYTE
resemble English. And it will also recognise, namely ORG 60000. — just like any address In Ihe
allow you to use certain other The ORG directive is important Spectrum's memory). And there
instructions ( a s s e m b l e r directives because it tells the assembler are dozens of machine c o d e
o n d assembler commands) where to put the machine c o d e instructions which allow the Z80
which are not translated into it generates — a n d in our case to copy a number from one
machine code, bul which this is to be from addresses register into another, a n d also to
Instruct the assembler program 60000 onwards. communicate with the outside
to take specific actions — a n d world (ie. the Spectrum's
these generally make life easier Line 20 contains the first
actual assembly l a n g u a g e memory). The assembly
for you. There's no short cut here. l a n g u a g e instruction LD, 8A. for
I'm afraid. You'll need to spend instruction (NOP), and line 30
completes the program with the example, means "copy (or LoaD)
a bit ol time reading a n d the contents of the A register into
absorbing the relevant sections RET instruction. The left hand
column of the listing is the 8 register". Similarly, LD C,B
of the manual tor your means "copy the contents of the
assembler in order to discover produced automatically when
the program is assembled (ie. 8 register into the C register".
just what editing facilities are There are also Instructions (or
available to you. However, a n when the assembler is instructed
to translate the mnemonics to putting numbers directly into
example will make things registers — so that LD A,23 tor
clearer — so let's take a look at actual machine code) a n d it
shows the addresses at which example means "put the
Listing 1, which Is what I got number 23 into the A register".
after assembling our "do nothing e a c h machine c o d e Instruction
and return to BASIC" program. has been stored — in this case As you c a n imagine, we
our machine c o d e program could write a cheerful little

ZX Computing Monlhly * March 1987


ma
program causing the Z80 to
mutter away merrity to Itself,
a n d Inserts whatever number
has b e e n assigned — so in this
INC A twice In succession to
Increase a number by 2.
swopping numbers b a c k a n d case It will store the number 2 In
forth between its registers without ADDR1 a n d the number 0 In
affecting the outside world at all
- but I don't think that's what
ADDR2. As you c a n see from
Listing 2, the assembler has
Adding
you mean by a program that a l l o c a t e d ADDR1 the value Our last example — listing 4 —
"does something", so let's move 60007, a n d ADDR2 the value shows how simple addition of
hastily on. How c a n we pass 6008, neatly tucking our reserved small numbers c a n be achieved
information between the Z80 bytes away at the e n d of the using the Instruction ADD. A.B
a n d the Spectrum's memory? m a c h i n e c o d e program Itself. ("add contents of B register to
The simplest way of d o i n g It is Incidentally, you m a y have contents of A register, leaving
by means of an Instruction such noticed that the addresses In Ihe the result in A"). If you follow Ihls
as LD A. (address). This would left h a n d c o l u m n Increase routine through, you'll see that
cause the Z80 to look at the initially in steps of three; this is the contents of the memory
specified address In the because the m a c h i n e c o d e address ADDR1 are c o p i e d
Spectrum's memory, a n d copy its instruction corresponding to LD directly Into the A register, a n d
contents Into the A register. You A.(address) consists of three then into the B register using
c a n achieve the reverse process numbers — one to specify the LD BA. (We need to fake this
with the instruction ID actual instruction LD A.(number) Indirect route because there's no
(address).A — which would make a n d two more to specify the LD B(address) instruction). Then A
the Z80 copy the contents of the address concerned. Bui don't reads In the contents of ADDR2,
A register Into the specified worry a b o u t It for the present — a n d the addition Is performed
address in the Spectrum's that's the assembler's job, not by ADD A,B The result Is now in
memory. (There's a limit to what yours. the A register, so we finished off
you c a n d o In this line, however, You c a n try this for yourself by by c o p y i n g It Into a third
a n d the A register is the only typing the program Into your address, ADDR3 before returning
single register which c a n assembler, assembling It, then to BASIC Again, you c a n check
c o m m u n i c a t e directly with returning to BASIC Before it all for yourself by PEEKIng
specified addresses in this w a y running the m a c h i n e code, ADDR1 (60012), ADDR2 (60013).
LD B (address) isn't allowed, for check for yourself that PEEK a n d ADDR3 (60014) before a n d
instance). 60007 a n d PEEK 60008 give the after running the m a c h i n e code.
I think you'll see that we values 2 a n d 0 respectively Now You c a n also try different
c o u l d use these Instructions to enter RANDOMIZE USR 60000, numbers, of course, by poking
copy a byte from one memory a n d d o your PEEKs again. This them Into ADDR1 a n d ADDR2
location to another, thus: time BOTH addresses should from BASIC If you want to fry
contain the number 2, providing subtraction, then by all means
LD A,(60010) that your m a c h i n e c o d e d o so: the instruction you need
LD (60011),A program has Indeed c o p i e d the Is SUB B ("subtract contents of B
RET contents of the first address into register from contents of A
the second. POKE another register, leaving the result in "A")
This would l o a d the number In — but for the present you'd do
address 60010 into the A register, number Into 60007, try
RANDOMIZE USR 60000 again, welt to ensure that you use
copy it into address 60011, a n d numbers which will p r o d u c e a
then return to BASIC (To d o the a n d then have another PtEK.
positive result.
same thing in BASIC you'd use Again, it's Important that you
the instruction POKE 60011, PEEK d o try these things for yourself, This Is as far as I intend to go
60010). This would be fine If you as opposed to merely reading In this article, a n d you may b e
knew In a d v a n c e which memory about them. If only to b e c o m e understandably disappointed
locations to specify while writing familiar with the use of your that our progress has been
your program, but In fact more assembler program. Try d e c i d e d l y limited. Well yes. It
often that not, you don't — at extending the program in Listing has — a n d very deliberately so I
least, not until you've assembled so that It will c o p y the contents know that you want to learn
your code. It's time tor the trusty of ADDR1 into TWO other about all the other registers; to
assembler program to c o m e to addresses (you'll n e e d to a d d b e a b l e to use programming
the rescue again, so let's have a another instruction LD (ADDR3),A, loops; to h a n d l e numbers In
look at Listing 2. a n d use DEFB to reserve another excess of 255; a n d lots more
byte l a b e l l e d ADDR3). besides. That's a j o b for the
When you've mastered the future, though, a n d the important
foregoing, you'll want to stretch thing for now Is to get your foot
Labels your newly grown m a c h i n e on the first rung of the m a c h i n e
There are two new concepts c o d e wings a little further. c o d e ladder; to make that
Involved in Listing 2. both Instead of merely c o p y i n g critical transition towards
c o n c e r n e d with the ability of a n numbers from one p l a c e to thinking In terms of registers a n d
assembler program to give you another, let's see if we can't ring addresses. Use the Ideas in this
an easy ride. The first is the a few changes. Actually, It's not article to write simple routines
concept of labels. When I typed difficult to d o so, because for yourself — no matler how
this assembly l a n g u a g e simple Instructions exist for useless they m a y be except as
program in, I d e c i d e d to c a l l my Increasing or decreasing the practice examples — a n d then
two addresses ADDR1 a n d contents of registers by 1 — for congratulate yourself when you
ADDR2 respectively — a n d so example, INC A ("increase get them working. Familiarity is
lines 20 a n d 30 contain the contents of A register by 1") a n d the key.
Instructions n e e d e d for copying DEC A ('decrease contents of A Once you've got this far, then
the contents of ADDR1 into register by 1"). Listing 3 shows you're on your way. But what
ADDR2. The assembler is how INC A c a n be used in a next? Well, you c o u l d d o much
perfectly happy about this program to transfer the number worse that to buy " M a c h i n e
provided I tell It what I m e a n by held in one memory address to C o d e for Beginners" published
those labels somewhere — a n d another, increasing It by one en by Usborne at a mere £1.99. This
I've done this In lines 50 a n d 60 route. Try It tor yourself. PEEKIng will gently fill in m u c h
using a n assembler directive the appropriate addresses both b a c k g r o u n d material that I've
"DEFB number". (Think of DEFB as before a n d after the m a c h i n e omitted here, a n d Indeed will
m e a n i n g "DEFIne Byte".) When c o d e has been run to check take you further on. Or. you
the assembler encounters the that all Is well, a n d then try c o u l d wait until next month
DEFB directive it reserves a single writing your own amendments when I'll be delving further Into
byte of the Spectrum's memory using DEC A — or try using machine code . . .

16 ZX C o m p u t i n g Monthly • March 1987


s •

Commodore 64 available November 20th


Spectrum & Amstrad available February
Sales dept.. . R.R.P. £9.95
Castle Lodge, Castle Green,
Taunton, Somerset TA1 4AB Trade enquiries t o Qentresoft
England T e l e p h o n e |0823| 54489 * 54029 on 021 356 3388

are getting harder


EXPERT SYSTEMS
Transforming your Table 1. Main Elements of a n Expert System

Spectrum or QL into an
1. K n o w l e d g e Base
oracle of advice —
with David Nowotnik. 2. Inference Engine

• _ ast month, in part 1 of this 3. User I n t e r f a c e


series, I described the essential
elements that g o to make a
computer 'expert system' As a 4. Use of Statistic
reminder, a n expert system
provides the means to p l a c e
into a computer not only the 5. A b i l i t y to learn n e w r u l e s / k n o w l e d g e
knowledge but the experience
of a human expert, which a non-
expert c a n interrogate to obtain 6. Provide a n e x p l a n a t i o n of its d e c i s i o n
benefits such as advise. Table 1
lists the important parts of an
expert system, a n d in this article, expert systems p r o d u c e d to date selected a set of questions to
a n d in the next tew months I'll are designed to tackle a fairly which the user provides yes/no
be examining some of these specific problem. So, with the answers. There is a set path
elements, providing computer 'expert", you have through a series of questions
demonstration programs for QL already defined the problem from the start of the Interrogation
a n d Spectrum computers. you wish to have solved by to any one particular answer.
Like any other programming selecting a particular expert Fig. 2 shows all the paths
problem, there is no single system. When you RUN any through the question a n d
solution to the production of a n expert system, you should get a answers In the expert system
expert system. There are many message to tell you what areas listing given in Fig. 1.
algorithms already, a n d many of expertise that program is The first question is always the
more ideas are b e i n g c a p a b l e ot d e a l i n g with, a n d same; does the vehicle transport
developed, so all I c a n give you you will immediately start the p e o p l e on land? A 'yes' answer
in the next few months is a question a n d answer dialogue. Immediately eliminates water
picture of what makes a n expert How does the expert know craft a n d aircraft; the 'expert'
system. This month we shall which questions to ask, a n d then asks if it travels on rails. If
examine two ways in which you what does he d o with the the answer is "yes", the problem is
c a n get a computer to c o m e to information he receives? These solved, a n d the answer 'train' Is
a decision. are two important questions in given; if the reply Is "no", then the
Go a l o n g to a human expert designing a n expert system. In expert knows the vehicle travels
for advise, a n d the usual course the rest of this article, I'll b e on road, a n d two more
of events is something like this: considering two solutions. questions are required to
First of all the human expert Consider this rather trivial determine which of the four road
will ask you to define the problem. You want your expert to vehicles known to our 'expert' is
problem, to determine exactly fell you the n a m e of a particular the one in question.
what you wish to know from him. m o d e of transport. The expert For any expert system using
Next he will ask you questions. will ask you a series of questions this serial a p p r o a c h to decision
These questions are selected by relating to fealures of the type of making, the human expert
the expert to provide him with vehicle you have in mind, a n d designing the system has to be
Information, which he c a n after a number of questions a n d aware of all possibilities. The
match against his own answers, he is a b l e to name the questions have to be un-
knowledge base. It is experience type of transport. ambiguous, so that the user c a n
which guides the direction of his Yes, it is trivial, but I have provide the correct answer every
questions. In a n ideal world, he deliberately chosen an example time; any one incorrect response
will end up with sufficient in which we should all be always ends in a wrong answer
information to provide a perfect 'experts', so that you c a n from our expert.
match with something In his understand the logic of But, before we examine the
knowledge base to give you a choosing questions, a n d the failings of this a p p r o a c h too
single, unequivocal answer. interpretation of answers. deeply, why not try it out for
The real world isn't quite like In the example programs I yourself. The listing in Fig. 1 is
that; your expert's knowledge provide, our computer 'expert' is suitable for both the QL a n d
base may not be perfect for the aware of 13 modes of transport Spectrum. The program was
problem you have. You may not (see program lines 1500 to 1630 written on the QL (hence the
be a b l e to provide all the in Fig. 1 or Fig. 4). One strategy c o m m a n d REMark, which will
information required. You are for finding the right answer is to a p p e a r as REM on the
more likely to end up with one ask a series of questions, e a c h Spectrum), but tested on both
or more opinions from your answer in turn a b l e to eliminate machines.
expert, e a c h opinion with a group of vehicles, until only QL SuperBASIC perfectionists
different level of certainty. one is left. This strategy is c a l l e d will be horrified by all the
Lack of certainty (uncertainty) serial decision making. GOTOs a n d GOSUBs. but some
is something I'll consider later in allowance h a d to be m a d e for
the series; for now, let's consider
ourselves a n d our computer
Pathways the Spectrum's less structured
BASIC! Spectrum users should
expert to be perfect! For this example, the human use '+" instead of '&' for joining
The majority of computer expert on transport (me!) has strings (lines 5200 a n d 5210), a n d

18 ZX C o m p u t i n g Monthly • March 1987


Figure 1: QUSpoctrum Listing
IJM
1620 DATA " s u b m a r i n e "
10 REMar k S i m p J o E x p e r t S y s t e m
1630 DATA " h o v e r c r a f t "
2 0 REMark U s i n g s e r i a l decision-maktng
109O REMark
3 0 REMark
1900 REMark K n o w l e d g e B a s e
40 REMark D a v i d N o w o t n i k
2000 DATA 1 0 0 0 , 2 0 1 0 , 2 0 5 0
3 0 REMark J a n u a r y , 1997
2010 DATA 1 0 1 0 , 3 0 0 0 , 2 0 2 0
6 0 REMark
2020 DATA 1 0 2 0 , 2 0 3 0 , 2 0 4 0
100 R E n . t r k I n i t i a l i s e & T i t l e 2O30 DATA 1 0 3 0 , 3 0 1 0 , 3 0 2 < f
H O LET x * 2 0 0 0 2040 DATA 1 0 4 0 , 3 0 3 0 , 3 0 4 0
120 RESTORE t READ t * 2050 DATA 1 0 5 0 , 2 0 6 0 , 2 0 9 0
t 3 0 CLS: PRINT t * 2060 DATA 1 0 3 0 , 2 0 7 0 , 2 0 6 0
140 P R I N T i P R I N T 2070 DATA 1 0 7 0 , 3 0 5 0 , 3 0 6 0
130 P R I N T " I w i l l a s k y o u a s e r i e s o f " 2080 DATA 1 0 7 0 , 3 0 7 0 , 3 0 8 0
160 PRINT " q u e s t i o n s . A n s w e r w i t h y " 2090 DATA 1 0 6 0 , 2 1 0 0 , 2 1 1 0
170 P R I N T " f o r y e s o r n f o r n o f o r " 2100 DATA 1 0 8 0 , 3 0 9 0 , 3 1 0 0
100 PRINT " e a c h o n e u n t i l I provide?" 21lO DATA 1 0 9 0 , 3 1 1 0 , 3 1 2 0
190 PRINT " y o u w i t h t h e solution." 2900 REMark
2 0 0 PRINT i P R I N T 2990 REMark A n s w e r s
2 1 0 REMark 3000 DATA 1 5 1 0 , 0 , O
220 REHark M a i n L o o p 3010 DATA 1 5 2 0 , 0 , 0
2 3 0 RESTORE * 3020 DATA 1 5 3 0 , 0 , 0
2 4 0 READ a , b , c JO30 DATA 1 5 4 0 , 0 , 0
2 5 0 I F b « 0 THEN GO TO 5 0 0 0 304O DATA 1 5 5 0 , 0 , 0
2 6 0 GO SUB 5 1 t o 3050 DATA 1 5 6 0 , 0 , 0
2 7 0 INPUT z « : I F 2 * = " " THEN GO TO 2 7 0 3060 DATA 1 5 7 0 , 0 , 0
2 8 0 I F z » U > « " y " OR z * ( l ) - " V " THEN L E T x « b : PRINT " 3070 DATA 1 5 8 0 , 0 , 0
y*s~t GO TO 2 3 0 3090 DATA 1 5 9 0 , 0 , 0
290 IF z * ( 1 ) « " n " OR z * < 1 > T H E N LET x=c: PRIM - 3090 DATA 1 6 0 0 , 0 , 0
no" t GO TO 2 3 0 3100 DATA 1 6 1 0 , 0 , 0
3 0 0 GO TO 2 7 0 31lO DATA 1 6 2 0 , 0 , 0
3 1 0 REMark 3120 DATA 1 6 3 0 , 0 , 0
6 3 0 REMar I, SOOO REMark P r o v i d e t h e a n s w e r
UOO DATA " D E T E R M I N E THl. 1 VPL Of TRANSPORT" SOlO PRINT
B I O REMark
5 0 2 0 RESTORE a : READ e «
9 0 0 REMark Q u e s t i o n s
5 0 3 0 PRINT " T h e a n s w e r »s a " i
lOOO DATA " D o e s i t t r a v e l o n l a n d "
5 0 4 0 I F e * ( l > « " e " OR e » < 1 ) - * * e " OR e » ( l ) - " » " OR
1010 DATA " D o e s i t t r a v e l o n r a i l s "
e » t l l " " o " OR o « ( I ) - " u " THEN P R I N T " n " t : GO TO 5 0 6 0
1020 DATA " D o e s i t h a v e t w o w h e e l s "
5 0 5 0 PRINT " " ;
1030 DATA " I f . i t p o w e r e d b y a n e n g i n e " 5 0 6 0 PRINT e»
1040 DATA " C a n i t c a r r y m o r e t h a n 6 p a s s e n g e r s "
5 0 7 0 P R I N T : PRINT " A n y m o r e ? < y / n > ";
1030 DATA " D o e s i t t r a v e l m o r e t h a n 2 0 f e e l a b o v e
5 0 8 0 INPUT i *
ttu« s u r f a c e "
5 0 9 0 I F z * = " - THEN GO TO 5 0 B 0
1060 DATA " I t t r a v e l s o n w a t e r ; d o e s i t o n l y float
5 I O O IF z » < l > - - y " OR z » <1 I V " THEN RUN
on t h e s u r f a c e "
5 1 1 0 I F z » ( l ) - M n " OR i * < l ) « " N " THEN STOP
1070 DAI A " D o e s i t h a v e f i x e d w i n g s "
5 1 2 0 GO TO S 0 7 O
lOBO DATA " I s i t w i n d p o w e r e d "
5 1 3 0 RF.Mark
1090 DATA " C a n i t t r a v e l b e l o w t h e s u r f a c e
1300 REMark A n s w e r s 5 1 4 0 REMark P r i n t q u e s t i o n string
I 5 I O DATA " t r a i n " 5 1 5 0 RESTORE a : READ e t
1320 DATA " • o t o r b i f c o " 5 1 6 0 LET i - O : L E T L E - L E N < e * > i L E T L I - U
5 1 7 0 LET x » = - -
1330 DATA " b i c y c l e "
1340 DATA " c o a c h " 5 1 8 0 LET * = » • ! : I F 1 > L E THEN GO TO 5 2 1 0
1330 DATA " c a r " 5 1 9 0 I F e « ( i > = " " THEN GO TO 5 2 1 0
1360 DATA " a e r o p l a n e " 5 2 0 0 LET x * = x f f c e * < l > : GO TO 5 I B O
1370 DATA " h e l i c o p t e r " 5 2 1 0 I F i >LE THEN L E T K * « X * & " ' ' "
1380 DATA " g l i d e r " 3 2 2 0 I F L I * L E N < x S ) > 3 1 THEN P R I N T : LET L l - 0
1390 DATA " b a l l o o n " 5 2 3 0 P R I N T x * ; ; LET L I > - L I « L E N < x « >
1600 DATA " y a c h t " 5 2 4 0 I F L I < 3 1 THEN P R I N T " " j i L E T L l ' L l * )
1610 DATA " s h i p " 5 2 5 * ) I F i < L E THEN GO TO 5 1 7 0
5 2 6 0 RE T u r n

O
figure 2: Decision Tree tor tho transport serial decision m a k i n g oxampie tor QL users, the commands In
italics in lines 280 a n d 290 are z
£
Oon il 1<M«(M Und' optional.
The DATA statement in line 800

DM, >l w l Hu.


ID •—< i t M Ik*
provides the title a n d purpose of
our expert system. Once this Is <
printed (line 130) a n d general
1

rt hm Il ll plMrtlKd .1 only llo#t


instructions appear on the
screen (lines 150 1o 190), the a.
|.tl IM .hHlt' by ' Mt Ihe U»ff«C«> main question a n d answer loop O
is entered. The questions,
answers, a n d knowledge base' O
>, .1 mm* all a p p e a r In DATA lines, a n d a.
RESTORE is used extensively to
retrieve the appropriate piece of a.
information.
i>i hmn Dm
MN
far mhhw1 •)ltll *lDf( li.ad On Ihe first circuit ot the main 5
loop, the variable x Is set to
3
2000, which is the DATA line for
the first question. From this DATA ex.
Aw | Akoik
J LED
jA | A t iH..-
E]
A ». .... ..ti
line, three numeric variables are
READ. a,b, a n d c. 'a' is the line
number ot the question
(character string) to be asked, 'b'
5
ftil
Am
is the appropriate DATA line in a.
the knowledge base if the CO

19 ZX Computing Monthly • March 1987


Figure 3: Alternative knowlodgo base for Sorlai Demonstration Program

CIOO DATA " A X I A L AND A P P E N D I C U L A R BONES" 1640 DATA " s t e r n u m "


8 1 0 REMark IH90 REMurk
9 0 0 REMor k U u e s t i o n s 1900 RCMark K n o w l e d g e B a s e
lOOO DATA " K t h i s b o r n * i n t t > e h a n d / a r m " 2000 DATA 1 0 0 0 , 2 0 1 0 , 2 0 6 0
1 0 1 0 DATA " I n t h i s b o n e i n t h e a r m " 2010 DATA 1 0 1 0 , 2 0 2 0 , 2 0 4 0
1 0 2 0 DATA " I s t h i s b o n e i n t h e u p p e r arm" 2020 DATA 1020,3000,2030
I O 3 0 DATA " T h e r e a r e t w o b o n e s i n t h e l o w e r a r m ; • t> 2030 DATA 1 0 3 0 , 3 0 1 0 , 3 0 2 0
i t t h e one n e A r o o t t lie b o d y w i t h p a l m s f o r w a r d " 2040 DA T A 1 0 4 0 , 2 0 3 0 , 3 0 3 0
1 0 4 0 DATA "' II ss t h i s b o n e i n t h e fingers" 2050 DATA I 0 5 0 , 3 0 3 0 , J 0 4 0
lOSO DATA I s t h i s b o n e at t h e e n d o< t h e f i n g e r s " 2060 DATA 1060,2070,2110
1060 DATA Is t h i s bone i n the legs/feet" 2070 DATA 1070,2000,2090
1 0 7 0 DATA I s t h i s bone i n t h e a n k l v t / t e e t " 2O0O DATA 1080,3060,30/0
tOBO DATA I s t i n s b o n e i n t h e iinV I p " 2090 DATA I 0 9 0 , 3 0 B 0 , 2 1 O O
1 0 9 0 DATA I s t h i s lion* i n t h e upper leg" 2100 DATA 1 I O O , 3 0 9 0 , 3 1 0 0
1 IOO DATA " T h e r e a r e t w o b o n e s i n t h i lower leg; is >>110 DATA 1110,2120,5110
i t t h e o u t e r mos t o n e " 2120 DATA 1 1 2 0 , 3 1 2 0 , 3 1 3 0
1 H O DATA " I s t h i s b o n e i n t h e s h o u l d e r s " 2900 REMark
1120 DATA " I s t h i s b o n e a t t a c h e d t o t h e h u m e r o u s " 2990 R E M a r k A n s w e r s
1300 REH.ir k A n s w e r s 3000 DATA 1510,0,0
1 3 1 0 DATA " h o m e r o u s " 3010 DATA 1520,0,O
1 3 2 0 DATA " u l n o " 3020 DATA 1530,0,0
1 5 3 0 DATA " r a d i u s " 3030 DATA 1540,0,0
1 3 4 0 DATA " p h a l a n g e s " 3040 DATA 1330,0,0
1 3 3 0 DATA " m e t a t o r p e l «," 3050 DATA 1560,0,0
1 5 6 0 DATA " c a r p e l s (wfistI" 3060 DATA 1570,0,0
1 3 7 0 DATA " t o r s e l s " 3070 DATA 1580,0,0
13BO DATA " m e t atar s t * l s " 3080 DATA 1590,0,0
1 3 9 0 DATA "Iemur" 3090 DATA 1600,0,0
I t o o DAT A " f t b i l l a " 31OO DATA 1610,0,0
1610 DATA " t i b i a " 3110 DATA 1640,0,O
1620 DATA " s c a p u l a " 3120 DATA 1620,0,0
1 6 3 0 DATA " c I « v i c I e " 3130 DATA 1630,0,0

answer is yes. a n d 'c' is the DATA knowledge base in Fig. 1. Here, I not only the title of our expert
line number should the response assume, there are less experts system, but two numbers, the
be n o If the variable 'b' READs a m o n g our readers, a n d you number of questions a n d
the value zero, this indicates that should, as non experts get some answers in our system. These two
an answer has to be found, a n d benefit on terminology on numbers set up a string array
the loop is terminated. The sub- human bones! (s$) in line 240. This array
routine at 5040 ensures thai Ihe Once you feel you understand contains zeros a n d ones,
question is neatly printed on the the logic of this expert system corresponding to expected no
screen, while lines 5000 to 5120 'shell', there Is no reason why you a n d yes responses to e a c h
print the answer, a n d ask you if cannot build your own expert question for all 13 modes of
you want to run through another application. The first step is to transport in our knowledge base.
set of questions draw up a decision tree, as All 10 questions are asked; In
shown in Fig. 2, then translate response 1o the user's reply, a
Ambiguity that to the data required for the variable (r$) is filled with zeros
knowledge base. a n d ones (lines 300 a n d 310), to
like most 'experts' white I believe The more cautious a m o n g us get a string the same lenglh as
my questions to you (as p l a c e d would say that this a p p r o a c h to the strings in the knowledge
in this computer program) are making decisions is for the fool- base, once all questions are
clear a n d unequivocal, you hardy; It is a little rash to answered. This reply string is
may well find them confusing. eliminate a whole range of then c o m p a r e d with the strings
This expert has no option for the possibilities on the outcome of in the knowledge base.
user to say "I don't understand just one question, which might
0 that, please re-phrase the be misunderstood. It might be
z Perfect M a t c h

1<
question" (also the case for most more sensible to ask a full set of
expert systems). Even the first questions, then judge all the The first check (lines 330 to 380)
question "Does It travel on information at one time. This is is to determine whether a
land?" may provide uncertainty. the parallel a p p r o a c h to perfect match c a n be found, ie.
A hovercraft certainly c a n travel decision making, a n d this a string of yes a n d no's matches
on land, but I. as the transport a p p r o a c h is the basis for exactly the expert's opinion of
expert', d e c i d e d that hovercraft decisions m a d e by the program the expected string of yes a n d
a. are used principally for sea
transport, therefore would expect
lisfed in Fig. 4.
There are several passages in
no's to each of the 13 outcomes.
If a match is found, then the
a 'no" answer to the 'land' the program In Fig. 4 which are expert's answer Is given.
0 question if the user were thinking identical to that in Fig. 1. so start If no match is found, the
O of the features of a hovercraft. with the serial decision-making computer first tells you this, thei.
at But like this system or not, It is
the way many human experts
program in your computer, a n d
delete or overwrite lines 220 to
goes through a routine (lines 420
to 500) to determine which set of
CL
work. Not only that, the program 800, a n d the knowledge base expected yes/no replies in Its
I have given you provides an 2000 to 2120. There is slight knowledge base most closely
expert system 'shell', to which modification required to the matches the replies given by the
other knowledge bases c a n be questions (lines 1000 to 1090) a n d user. To do this, it goes through
attached. Fig. 3 contains an to line 5020. The commands in each possible outcome,
example. This is an alternative italics In lines 300 a n d 310 are, checking the expected
knowledge base which allows again, optional on the QL, a n d response, with the one given,
you. using the same program, to the string joining operator in a n d awards a score, d e p e n d i n g
O determine the name of one of these lines should be replaced on the match. So, 1 is a d d e d to
by '+' if you are using a the score if a 'yes' answer was
a.
111 the body's axial or
appendicular bones. Lines 800 Spectrum. given, when one Is appropriate
oo to 3130 replace the transport DATA line 800 now contains for thai particular item a n d

20 ZX Computing Monthly • March 1987


question (line 450), a n d 1 is this. That argument would lead give you the right answer; one
subtracted tor a 'yes' reply when us into the realms ot probability, incorrect response with the serial
'no' was expected. In this way which is something I shall save system, a n d the expert's reply is
the item with the maximum tor later in the series! certain not to be the one you
'score' is identified (line 480). One thing you'll note about want.
Logic might suggest that you parallel decision making is that These are expert system
should also award a point tor a lot more questions will be decision making processes in
two no's which match, a n d asked, sometimes quite irrelevent their simplest form. Many expert
subtract one from the score when, in hindsight, you know the systems allow more than yes/no
when no is given to a question result. In the parallel decision answers; decision making c a n
in which yes is expected from a program, you'll always be asked be mixtures of serial a n d
certain outcome. Well, the 10 questions, whereas, the serial parallel, d e p e n d i n g on the
scoring system used does work decision program which solves problem. And these examples
remarkedly well, without these the same problem asks between assume no uncertainty in your
'logical" additions. In tact, as two a n d five questions before reply (or In the knowledge base).
there are far less 'yes' answers giving its result. These expert systems are also
than 'no' in every string in the No doubt, a better transport rather limited in their
knowledge base, m a t c h i n g 'yes* 'expert' than myself c o u l d have knowledge; there are many
answers are more valid than selected a better, a n d smaller, more than 13 different modes of
matching "no's". set of questions to e n a b l e the 13 transport. This 'expert' will have
Another argument against this items to be differentiated in the to learn a lot more about
scoring system is that, for any parallel program. But as a transport before it really c a n
outcome, certain questions are general rule, parallel systems will begin to describe Itself as an
more important lhan others in always ask more questions than expert. And how expert systems
differentiating Items, so the serial systems. But even if the learn is the subject of the next
amount a d d e d {or subtracted) d a t a match isn't perfect, the part in this series.
should be weighted to reflect parallel system is more likely to
Figure 4: Q U S p o c t r u m Listing tor Parallel Decision Demonstration

10 REMark S i m p l e E x p o r t S y s t e m f l o a t on t h e s u r f a c e "
2 0 REMark U s i n q p a r a l l e l d o c t s i o n - w k i n q 1 0 7 0 OATA " D o e s i t h a v e f i x e d w i n q s "
3 0 REMark lOOO DATA " I s i t Hind p o w i ' r e d "
40 REMark D a v i d N o w o t n i k 1090 DAIA "Can i t t r a v e l b e l o w t h e s u r f a c e o f
SO REMark J a n u a r y , 1907 water"
6 0 REMark 1 5 0 0 Rl-Mar k A n s w e r s
lOO REMark I n i t i a l i s e »< T i t l e 1 5 1 0 DATA " t r a i n "
110 LET x - 2 0 0 0 1 5 2 0 DATA " m o t o r blke"
120 RESTORE I READ t » 1 5 3 0 DATA " b i c y c l e "
130 C L S l P R I N T t t 1 5 4 0 DATA " c o a c h "
140 PR I N I : P R I N T 1 3 3 0 OATA " c a r "
irso PR I N I " 1 w i l l a s k y o u a s e r i e s o f " 1 5 6 0 DATA " a e r o p l a n e "
160 PR I N I " q u e s t i o n s . A n s w e r h i t h y " 1 5 7 0 OATA " h e l i c o p t e r "
170 PRINT " f o r y e r . o r n f o r n o f o r " 1 5 0 0 DATA " g l i d e r "
m o PRINI " e a c h one u n t i l I p r o v i d e " 1 5 9 0 DATA " b a l l o o n "
170 PR I N I " y o u w i t h t h e s o l u t i o n . " 1 6 0 0 DATA " y a c h t "
200 P R I N I : PRINT 1 6 1 0 DATA " s h i p "
2 1 0 REMark 1 6 2 0 DATA " s u b m a r i n e "
2 2 0 REMark Initialise 1 6 3 0 DATA " h o v e r c r a f t "
2 3 0 READ a n s w , q u v v t 1090 REMark
2 4 0 DIM s » ( a n s w , q u e s t ) 1900 RLMark K n o w l e d g e Base
2 3 0 RES1ORE 2 0 0 0 2 0 0 0 DATA " 1 l O l l O O O O O "
2 6 0 FOR J - l TO a n s w : READ s S < j ) : NEXT j 2 0 1 0 DfiTA " l O l l O O O O O O "
2 7 0 LET r RESTORE lOOO 2 0 2 0 DATA "IOIOOOOOOO"
2110 FOR j " l TO q u e s t 2 0 3 0 DATA " l O O l l O O O O O "
2 0 3 GO SUD 5 1 4 0 2 0 4 0 DATA "lOOlOOOOOO"
2 9 0 INPUT zti LET c h ° O i I F i t - " " IHEN GO TO 2 9 0 2 0 3 0 DATA " O O O l 1 1 0 1 0 0 "
too I F z * ( H » " y " OR / ' » < n - " Y " THEN LET r « = r * V I " : 2 0 6 0 DATA " O O O l 1 1 0 0 0 0 "
LET c h - 1 : P R I N I " y e n " 2 0 7 0 DATA " O O l O O O O l l O "

LET r . h * l :PRINT "


310 If * t l l l » " n " OR z * ( l » - " N " THEN LET r » « r * f O " :

3 1 5 I F c l i > 0 THEN GO TO 2 9 0
f.o"
7 0 0 0 DATA "OOOOOIOOIO"
2 0 9 0 DATA " O O O O I O I O I O "
2 tOO DrtTA " O O O I I O I O O O "
320 NEXT j 2 1 l O DATA " 0 0 0 1 1 0 1 0 0 1 "
330 REMar k P e r f e c t M a t c h ? 2 1 2 0 D A I A " l O O l lOOOOO"
340 DIM q t a n a w ) 2 9 0 0 REMar k
3 5 0 FOR j - l TO a n s w S O O O REMark P r o v i d e t h e a n s w e r

I/O
3 6 0 LET q ( j ) - 0

ZOO I F r l • r,S ( J > I I I E N LET l a r q ^ j : GO TO 5 0 0 0


NEX1 j
SOlO P R I N I
3 0 2 0 RESTORE ( 1 a r g » l O + 1 5 0 0 1 : READ e t
5030 PRINI "The answer i s a " |
390 P R I N I : P R I N I " I d i d n o t f i n d a p e r f e c t m a t c h " 5 0 4 0 I F e * ( l > - " a " OR e t < l > - " e " OR e t ( l ) - " l " OR
4 0 0 P R I N I " w i t h my d a t a ; I an s e a r c h i n g " e $ U > " o " OR e * < l > » " u " THEN P R I N T " n " j : GO TO 3 0 6 0
410 PRINI " f o r t h e h e s t fit." 5 0 5 0 PRINT " " I
4 2 0 LET max » i LET l a r q » 0 5 0 6 0 PRINT o t
4 3 0 FOR i 1 IO a n s w 5 0 7 0 P R I N T : P R I N T " A n y more"> f y / n > " s
440 FOR lO quest s o a o INPUT * «
ISO IF r t l ) l " 1 " rtND « * ( I , J > - " 1 " I HEN q ( i > •= n < > > • 15 0 9 0 I F z $ - " " THEN GO TO 5 0 8 0
160 IF r « C j l " " l " AND s « ( i , j ) - " 0 " THEN q < i ) = q < i > 1 5 1 0 0 I F i * ( l > - " y " OR i « U ) - " Y " THEN RUN
170 NF.X1 j 5 1 10 I F I » I I I " V OR z « < l » - " N " THEN STOP
4 0 0 I F q < i ) > m a x THEN LET « i a x » q ( l l : LET l a r q » i 5 1 2 0 GO TO 5 0 7 0
4 9 0 NEXT i 5 1 3 0 REMark
3 0 0 I F 1 a r q < 1 THEN P R I N T " N i l m a t c h f o u n d 1 " : GO TO 5 1 4 0 REMark P r i n t q u e s t i o n s t r i n q
3070 3 1 3 0 READ L<t
3 1 0 GO TO SOOO 3 1 6 0 LET l = O i LET L E « L E N < e » > i LET L I - 0
OOO DATA "DETERMINE THE TYPE OF T R A N S P O R T " , 1 3 , l O 5 1 70 LET x $ - " "
1910 R E M a r k 5 1 0 0 LET i - » + l l I F i > L E THEN GO TO 5 2 1 0
VOO REMark Q u e s t i o n s 3 1 9 0 I F e t ( i ) » " " THEN GO TO 5 2 1 0
lOOO DATA " D o e s I t t r a v e l em l a n d " 5 2 0 0 LET x t - * x S & e t < i > : GO TO 5 1 0 0
1010 DATA " O i w i i t t r a v e l a n r . » U " 5 2 1 0 I F 1 >LE THEN LET * t - * H " ? »
1 0 2 0 DA1A " D o e s i t h a v e t w o w h o o l o * 5 2 2 0 I F L M L E N ( x * > > 3 1 THEN P R I N T : LET L I = 0
1 0 3 0 DATA " l a i t p o m r p d b y a n o n g i n n " 5 2 3 0 P R I N T x * ; : LET L I - L 1 + L E N (xtl
1040 DATA " C a n i t c a r r y mor«» t h a n 6 p a s s H n q i T i " 5 2 4 0 I F L I < 3 1 THEN P R I N T " " t i LET L l - L I M
lOSO DATA " D o e s i t t r a v e l more.* t h a n 2 0 f e i - t a b o v e 5 2 5 0 I F I CLE THEN GO TO 5 1 7 0
the surface" 5 2 6 0 RE T u r n
1060 DATA " I f i t t r a v e l s o n w a t e r , d r i e s i t only

21 ZX Computing Monthly • March 1987


Alan Davis explores the
possibilities for printing
graphics.

• n a recent issue ol ZXQ I


wrote o short p i e c e a b o u t the
Kempston "E" interface a n d
Amstrad DMP 2000 printer,
specifically to point out how
painless I d found It to set up
a n d use this combination. Of
course that isn't the e n d of the
tale, b e c a u s e obviously you c a n between point plotting a n d s p a c i n g w h i c h is half thai
d o a great d e a l more with such screen scrolling. But sadly, there's o b t a i n e d with "single density"
a system that merely LPRINT, LUST, no single printer c o m m a n d for m o d e — a n d therefore a printed
a n d COPY. What I'd like to d o in d o i n g this. The Kempston I m a g e of higher quality a n d
this article is to explore some of interface will give you a full crispness. The relevant
the graphics possibilities of the screen copy, buf not just one c o m m a n d is ESC L + n1 + n2.
system, a n d since the Amstrad is line, a n d so a bit of Translated into English this
Epson compatible, the routines p r o g r a m m i n g is necessary to means that we n e e d to send to
should work perfectly well with achieve this. the printer the codes CHRS 27
any Epson-type printer which Is (ESC), followed by CHRS 76 ("LI.
c a p a b l e of small (1/216") line Bit images followed by two mysterious
feeds. c o d e s n1 a n d n2, These last two
Regular readers m a y be The key to the p r o b l e m lies In c o d e s tell the printer how many
surprised to discover that the the "Bit I m a g e Mode" printer bytes of g r a p h i c d a t a are to
origin of what follows has commands. There's a fair c h o i c e follow, a n d together they form a
nothing to d o with adventure of these on the Amstrad two-byte number where n1
games at all (Gasp! Shock!), but machine, a n d in the e n d I represents the low byte, a n d n2
the fact Is that I also use the settled for "double density" the high. So if you want to print,
Spectrum for serious scientific m o d e This gives a printed dot say, 258 bytes of d a t a In
work — a n d one of my

Listing 1
requirements (or this is to be
a b l e to get hard c o p y of graphs
of fairly complex m a t h e m a t i c a l
functions Now if the g r a p h you i'ass 1 errors:
want to plot is fairly simple,
there's no problem. You c a n just 10 * D +
write a program to d r a w it on 20 #C-
screen, a n d then COPY the 30 ; R o u t t n e for c o p y i n g s c r e e n line 2 1 to p r i n t e r
result. But the screen resolution 40 ; A n y g i v e n p i x e l Has i t s s c r e e n c o o r d i n a t e s x a n d y
50 ; h c l d in t h e C a n d B r e g i s t e r s r e s p e c t i v e l y
of 256x176 pixels is too coarse for 60
the applications I have in mind, 65368 70 ORG 6 5 3 6 8 iStart of UDG area
a n d so some way of getting 65368 80 LD A. 3
higher resolution h a d to be 65370 90 CALL 0 1 6 0 1 ;Select thn p r i n t e r for o u t p u t
found. 65373 100 XOR A
The a p p r o a c h I a d o p l e d was 65374 1 10 LD D.A ;Clear D register
65375 120 LD C , A i C l e a r C r e g i s t e r (x c o o r d -0)
fairly obvious: instead of d r a w i n g 130 L O O P )
65376 LD B . 8 ( I n i t i a l i s e B r e g i s t e r <y c o o r d = 8 )
the "y" axis of the g r a p h 65378 140 L 0 0 P 2 DEC B tNext pixel row down
vertically on the screen, I turned 65379 150 PUSH BC
it through 90 degrees a n d drew 65380 160 PUSH DE ;Save r e g i s t e r s
it horizontally, so that the "x" axis 65381 170 CALL POINT tSaec as POINT (c.b)
b e c o m e s vertical (with x 65384 180 CALL FP A ;Resu1t off stack into A r e g i s t e r
increasing downwards). The 65387 190 POP DE
g r a p h is then plotted eight 65388 200 POP BC ; R e c o v e r r e g i s t e r s
points at a time (le. eight 65389 210 CP I lis t h i s p i x e l ( c . b ) s e t ?
successive x values) to line 21 on 65391 220 CALL Z . S E T B I T ;If s o . t h e n s e t b i t 7 o f D
230
the screen, the whole screen 65394
240
RLC D ;Rotate D r e g i s t e r by o n e bit
b e i n g scrolled upwards by one 65396
250
INC B
65397 DJNZ L O O P 2 ; L a s t p i x e l ? If n o t , d o a n o t h e r
line between the plotting of o n e 260
b a t c h of eight points a n d the 2 7 0 ;At t h i s p o i n t u c h a v e a b y t e r e a d y t o p r i n t in D
next. In this way you c a n get 65399 280 LD A, D
any resolution you like a l o n g the 65400 290 RST 16 ;So p r i n t it o n c e . . .
x-axis, if necessary plotting a n d 65401 300 LD A, D
scrolling many screenfuls of 65402 310 RST 16 ; . . . a n d o n c e a g a i n
graphics before the whole 65403 320 LD D . 0 ; C l e a r D r e g . r e a d y for n e x t s c a n
process is finished. Naturally, 65405 330 INC C ;Next pixel c o l u a n to the r i g h t
though, you'll never see the 65406 340 LD A. C
350
entire g r a p h on screen at once, 65407
360
CP 0 ; A r e w e o f f t h e r i g h t e d g e o f screen'''
because the early parts will 65409
370
JR N Z . L O O P 1 ;If n o t , b a c k f o r a n o t h e r b y t e
have scrolled off the top of the 6541 1
380
RET ;Back to B A S I C
screen by the time the thing has 390 SETBIT
6 5 4 12 SET 7,D iSet bit 7 of D register
finished. 65414 400 RET
4 10
What we n e e d then, is a 8910
420
POINT EQU 022CE ;tROM>
m e l h o d of transferring just a 1 1733 FP A EQU U2DD5 ;<ROM>
single line of graphics d a t a (line
Pass 2 errors: 00
21 in this case) from the screen
to the printer, so that we c a n Table used: 73 fron 249
d u m p it out continuously in

22 ZX C o m p u t i n g Monthly • M a r c h 1987
the screen one pixel at a time,

Listing 2 forming a single byte of data


from e a c h vertical column of
eight pixels a n d then shoving it
1 REM *«* C O N T I N U O U S G R A P H P R I N T I N G R O U T I N E
out to the prinler. You c a n do it
2 REM in BASIC — but frankly, life's too
3 DEF FN f < x > = 1 5 0 « S I N < x / 6 ) * S I N < x / 6 0 ) * E X P ( - X / 2 0 0 ) short! Assuming you'd like to see
4 G O S U B 100® your hard copy this century
7 REK H rather than next, we'd better d o
8 REK «** K e n p s t o n E " - T o k e n s o f f it in machine code, o n d !'ve
9 REM
1® C O P Y : REM C H R * 0
given in Listing 1 an assembler
20 L P R I N T C H R * 2 7 ; • A " ; C H R * 0 ; : REM * D i s a b l e a u t o lino feed program which will solve our
27 REK problem. I've annotated the
28 REM * * * L i n e s 3 0 - 160 d r a w the f u n c t i o n listing in some detail so that you
29 REK should be able to follow it
30 LET o y = 1 2 7 ; P L O T 0 . 7 : D R A U 2 5 5 . 0 : REM * D r a u y - a x i s through without too much
FOR i - 0 T O 5 9 9 S T E P 8 : REM * 6 0 0 v a l u e s of x
50 FOR j=0 T O 7s REM * x v a l u e s in b u n c h e s of 8
difficulty. (As written, the c o d e is
60 LET y = 1 2 7 + 1 NT ( . 5 + F N fli + j l ) : REK » < i + j > = x c o o r d i n a t e organised at the start of the
90 PLOT 1 2 7 , 7 - j : P L O T y , 7 - j : REM * E x t e n d a x l s i P l O t n e x t p o i n t user-defined graphics area:
100 LET l e n = o y - y : IF A B S len>l T H E N D R A U l e n - t l AND l e n > 0 l » < l 65368).
AND l c n < 0 > , 0 : REM * J o i n the d o t s Strictly speaking, all we need
110 LET o y = y : REM * S t o r e c u r r e n t v a l u e of y
120 IF INT ( < i + j ) / 1 0 > = ( l + j ) / l 0 T H E N P L O T 1 2 6 , 7 - j : DRAU 2 . 0 : IF
to a d d to this is a short BASIC
JNT ( ( t t j > / 5 0 > = < ) / 5 0 T H E N P L O T 1 2 3 , 7 - j : D R A U 8 . 0 : REK * S e a subroutine which puts the printer
le inlo the correct bit i m a g e mode,
130 N E X T j calls the machine c o d e to
140 G O S U B 2 0 0 : REM » L i n e f i n i s h e d - p r i n t it out transfer the 512 bytes of screen
150 R A N D O M I Z E U S R 3 5 8 2 : REK * S c r o l l s c r o e n u p o n e line line data, a n d then tells the
160 N E X T I
170 S T O P
printer to d o a carriage return
197 REH a n d a line feed of 8/72"
198 REH *** P r i n t o u t s c r e e n line 21 (equivalent to eight vertical dot
199 REM spacings) at the end, thus:
200 FOR h =0 TO 2 : REM * 3 p a s s e s of p r i n t h e a d
205 L P R I N T C H R * 2 7 ; * L ' ; C H R * 0 s C H R * 2 ; : REM * Bit m a g e a o d e
210 R A N D O M I Z E U S R 6 5 3 6 8 : REM * P r i n t the line 1) LPRINT CHR$ 27; "L"; CHR$ 0;
215 L P R I N T C H R * 1 3 ; C H R * 2 7 ; " J " : C H R * 1;: REM * S e a 11 line feed CHR$ 2; (See above)
220 N E X T h 2) RANDOMISE USR 65368
230 L P R I N T C H R * I 3 ; C H R * 2 7 ; " J " ; C H R » 2 1 ; : REM * Big line feed (Send the data)
240 R E T U R N
500 DATA 6 2 . 3 . 2 0 5 . 1 . 2 2 . 1 7 5 , 8 7 , 7 9 . 6 . 8 3) LPRINT CHR$ 13; CHR$ 27;
510 DATA 5 . 1 9 7 , 2 1 3 . 2 0 5 , 2 0 6 , 3 4 , 2 0 5 . 2 1 3 . 4 5 . 2 0 9 "A"; CHR$ 8; (CR then 8/72" LF)
520 DATA 1 9 3 , 2 5 4 , 1 . 2 0 4 . 1 3 2 , 2 5 5 . 2 0 3 . 2 , 4 , 1 6
530 DATA 2 3 5 . 1 2 2 . 2 1 5 , 1 2 2 . 2 1 5 , 2 2 , 0 . 1 2 . 1 2 1 . 2 5 4 We c o u l d then call this
540 DATA 0 , 3 2 . 2 2 1 , 2 0 1 , 2 0 3 . 2 5 0 , 2 0 1
997 REM
subroutine after every eight
998 REH »** P o k e M a c h i n e c o d e
plotted points, a n d away we go.
999 REM Well, yes — but we c a n actually
1000 R E S T O R E 5 0 0 : F O R 1 = 6 5 3 6 8 T O 6 5 4 14: R E A D x: P O K E (,xs N E X T i do very much better. You see,
1010 R E T U R N the final printed result from this
sequence would turn out to be
a rather "spidery" affair because
graphics mode, then n1 would So. to get a full-size prinled we're using only single density
need to take the value 2, a n d n2 image, then, all we need to d o dot printing in the "x" direction.
and value 1 — because is to send e a c h byte twice — Fortunately it's a simple matter to
(2+1x256) = 258. Yes? Right! a n d so we need to tell the sort Ihis out. All we have to d o is
Now. to copy a single line ot prinler to expect not 256 bytes, to send the same data from the
Ihe screen (eight pixels high a n d but 512, 1o be printed in screen line to the printer three
256 pixels wide), we need to graphics mode. So the times in succession with a very
send 256 bytes of data to the appropriate escape sequence small line feed of 1/216" (1/3
printer — but since we'll be for our purpose becomes: vertical dot spacing) after each
printing in double density mode transmission. At the end of this,
this would produce a final CHR$ 27; "L"; CHR$ 0; CHR$ 2; we send a line feed of 21/216"
image at only half size, which is (making a total of 24/216", or
not so good (dot spacing is The next job is to scan 8/72") to get the printer ready for
halved in this mode, remember). horizontally through line 21 on the next line ot data. What we
achieve by this is effectively
Flguro 1. Hi res graph plotting triple dot density in the x
direction.

Graphs
Listing 2 gives an example
a p p l i c a t i o n of this process, the
important part being the
subroutine at line 200 which
employs all the little tricks we've
just been discussing. The
program as a whole will
produce a graph of the function
defined in line 3 (which is of no
importance except as an
illustration), a n d Figure 1 shows
the final printed result.
Incidentally, the machine c o d e
is so short that it's hardly
worthwhile loading it in
separately — in fact line 1000

23 ZX Computing Monthly • March 1987


nm
Listing 3 r, .* • . "j

Pass 1 errors: 00

10 * D +
20 *C-
30 i R o u t l n e for p r i n t i n g a v e r t i c a l s t r i p o f screen 8
40 ;pixols w i d e , s t a r t i n g at the pixel w h o s e x-coord so m u c h of the printer h a n d l i n g
50 ; is h e l d in a d d r e s s X C O U N T to BASIC a n d there are two
60 reasons for this. First, given the
65368 70 ORG 6 5 3 6 8 ; S t a r t of U D G a r e a m a c h i n e c o d e routine to transfer
65368 80 LD A, 3 the data, it's the a c t u a l physical
65370 90 CALL #1601 ;Se)ect printer
65373 XOR A
process of printing which takes
100
65374 1 10 LD B. A the bulk of the lime, so that
65375 120 LD D,A ;Zero the B and D r e g i s t e r s there's very little to b e g a i n e d by
65376 13® LOOP1 LD A.(XCOUNT) writing the remaining bits in
65379 140 LD C , A i S t a r t l n g p o s i t i o n in C r e g i s t e r m a c h i n e code. Second, with the
65380 150 LOOP 2 PUSH BC subroutine as it stands you c o n
65381 16® PUSH DE ;Save r e g i s t e r s fiddle about with It easily. You
65382 170 CALL P O I N T : E q u i v a l e n t to P O I N T < c , b ) might, for example, d e c i d e to go
65385 180 CALL FP A iResult off stack into A register for only two passes of the print-
65388 190 POP DE h e a d rather lhan three, In order
65389 200 POP BC ; R o c o v e r r e g i s t e r s
1 ;ls t h i s s c r e e n p i x e l s e t ?
to speed up the printing — a n d
65390 210 CP
65392 220 CALL 2 , S E T B I T ; If s o t h e n s e t b i t 7 o f D
It you d o you'll n e e d to c h a n g e
65395 230 RLC D ; R o t a t e D r e g i s t e r by o n e bit the counter in line 200 (FOR h =
65397 240 INC C ; H o v e to next pixel on the r i g h t 0 TO 1), a n d to c h a n g e the line
65398 250 LD A.(XCOUNT) feed in line 230 to 22/216".
65401 260 ADD A.8
65403 270 CP C ;Have uc done 8 p i x e l s y e t ? Stripper
65404 280 JP N Z . L 0 0 P 2 ;If n o t t h e n p r o c e s s t h i s o n e
290 So much, then, for high
300 ;D register now h o l d s a byte ready to print resolution g r a p h plotting. Is there
65407 310 LD A. D any other use for Ihis i d e a of
65408 320 RST 16 ; S o p r i n t It o n c e . . . printing strips of screen in
65409 330 LD A, D d o u b l e density dots? There
6 5 4 10 340 RST 16 i . . . a n d o n c e a g a i n
654 I I D,0 ;Clear D register
certainly is. How would you like
350 LD
6 5 4 13 36® INC B ; H o v e u p t h e s c r e e n by o n e p i x e l a variable density screen c o p y
65414 370 LD A. B routine so that you c a n
6 5 4 15 380 CP 176 :Are we past t h e t o p of t h e screen'' compensate for the wear on
6 5 4 17 390 JP N Z , L O O P 1 ilf n o t t h e n g e t a n o t h e r b y t e your printer ribbon? You would?
65420 400 RET ;Back to BASIC Then read on!
4 10 SETBIT The Kempston "E" Interface
65421 420 SET 7.D ;Set bit 7 of D register allows you to get two kinds of
65423 430 RET screen c o p y — an e n l a r g e d one
65424 440 XCOUNT DEFB 0 ;x c o o r d o f left e d g e of strip which is fine for most purposes,
8910 450 POINT EQU B22CE ;(ROM)
a n d one of "normal" size which
1 1733 460 FP A EQU 82DD5 ;(ROM)
is OK but c o u l d be better. This
Pass 2 errors: 00 latter is a single density screen
d u m p (which looks rather ghostly
Table used: 86 froi 256 when your r i b b o n is worn) with a
quite b a d l y distorted aspect
just pokes it in from BASIC when does this for the Kempston "E" ratio to boot. If we take
the program runs Just a c o u p l e interface, (b) Lipe 20 is n e e d e d c o m m a n d of the printer
of further points a b o u t the listing: only if your printer is normally ourselves, a n d scan the screen
(a) You need to instruct your set to give automatic line feeds in strips (treating e a c h strip
interface to turn off the tokens with a c a r r i a g e return. m u c h as we d i d in the graph
before proceeding, a n d line 10 You may wonder why I've left plotting example), we c a n
improve matters considerably.
Figuro 2. Variable density screen copy There's some a d v a n t a g e to be
(o) Minimum (b) Maximum
g a i n e d by scanning the screen
In vertical strips rather than
horizontal ones in order to get a
more a c c e p t a b l e aspect ratio,
a n d as before, it's only
necessary to h a n d l e the transfer
of d a t a from screen to printer in
m a c h i n e code. Listing 3 gives
the assembler program we
need. Though similar to Listing 1.
it differs in some important ways
namely (a) It transfers d a t a from
a vertical strip eight pixels wide
a n d 176 pixels high; a n d (b) We
n e e d to tell it which strip to
transfer by poking a suilable x
co-ordinate into 65424 (XCOUNT)
Again, the c o d e itself is so short
that it's readily POKEd in from
within a BASIC program, a n d I've
Incorporated it in this way into
Listing 4.
Listing 4 is a self-contained

24 ZX C o m p u t i n g Monthly • March 1987


screen copy routine which gives
you the choice of three printing
densilies (effectively you're
choosing the number of print-
Listing 4
1 REM * » * K E N P S T 0 N "E'vDHP 2000 VARIABLE DENSITY SCREES COPY
head passes between the line 2 REH
feeds). Just type it in a n d save to 3 REM
auto-run from line 1 In use the 10 C L S : P R I N T A T 1 0 . 5 ; * S U I T C H O N T H E P R I N T E R ' : G O S U B 1 0 0 0
program assumes that the 15 P R I N T A T 2 1 . 3 ; " P r e s s a n y k e y to c o n t i n u e " : P A U S E 0
screen you wish 1o c o p y is to be 17 R E M
loaded from microdrive, but if 18 R E M * * « K e m p s t o n "E" i n s t r u c t i o n to s w i t c h o f f t o k e n s
you're working with t a p e just 19 R E M
change tine 60 accordingly. 2 0 C O P Y : REM C H R S 0
Whichever density you choose, 3 0 L P R I N T CHRJ- 2 7 ; " A " ; C H R S 0 ; : R E M * D i s a b l e 7 a u t o - h n e f e e d
you'll gel a result of higher 4 0 C L S : INP'JT " S a a e of s c r e e n to be l o a d e d ' " ' L I N E z S
quality than the normal 5 0 IF 2 * = - " T H E N GO TO 40
Kempston screen c o p y would 60 LOAD *-b-; 1 ;zSSCREEN$
give — a n d maximum density 7 0 P R I N T B l . A T 0 . 0 ; " S E L E C T D E N S I T Y 1 / 2 / 3 (3 n a x i m u n ) PRESS 4
will give excellent results wilh to load a n o t h e r s c r e e n "
even the most battered a n d 8 0 P A U S E 0 : L E T > * = I N K E Y » : IF i t < " I " O R i » > " 4 " T H E N GO TO 80
weary of printer ribbons. Figure 2 85 BEEP .1.30
demonstrates the range of 9 0 IF 1 1 - " 4 " T H E N GO TO 40
densities available and. even 95 PRINT n!;AT 0 . 0 . . . . A T 1.11; FLASH 1;"PRINTING*
with the u n a v o i d a b l e distortions 100 LET d e n s 1 1 y = < 1 A N D i » s " 2 " > + ( 2 A N D i * = " 3 " )
of reproduction, may give you 110 F O R i = 0 T O 2 5 5 S T E P 8 : F O R j = 0 T O d e n s i t y
some idea of the possibilities. 120 P O K E 6 5 4 2 4 , i : REM * P o s i t i o n of left h a n d s i d e of s t r i p
In this articte I've only 130 L P R I N T C H R J 2 7 ; " L - ; C H R S 9 6 ; C H R i 1;: R E M * D o u b l e d e n s i t y
scratched the surface of what 140 R A N D O M I Z E U S R 6 5 3 6 8 : R E M * P r i n t a s t r i p
can be achieved, but I hope It's 1 5 0 L P R I N T C H R t 1 3 ; C H R i 2 7 ; " J " ; C H R $ 1;: R E M * S n a i l l i n e f e e d
enough to give you some Ideas 160 N E X T t M
170 L P R I N T C H R * l 3 ; C H R t 2 7 ; J " t C H R » I 2 3 - d e n s i t y ) ; : R E H * B i g LF
— and in any case I find the
180 NEXT i
routines I've given here pretty
190 GO TO 7 0
useful, myself. With only a few 997 REM
modifications, you should be 998 R E M * * * M a c h i n e c o d e for p r i n t i n g v e r t i c a l s t r i p of s c r e e n
able to produce "enlarged" 999 REM
versions using q u a d r u p l e density 1000 FOR i = 6 5 3 6 8 TO 6 5 4 2 4 : R E A D x: P O K E i.x: N E X T RETURN
mode, if you require them. And if 1010 DATA 6 2 . 3 . 2 0 5 , 1 , 2 2 . 1 7 5 . 7 1 . 8 7 , 5 8 , 1 4 4
nothing else, the maximum 1011 DATA 2 5 5 . 7 9 , 1 9 7 . 2 1 3 . 2 0 5 , 2 0 6 . 3 4 , 2 0 5 . 2 1 3 , 4 5
density copy routine might help 1012 DATA 2 0 9 . 1 9 3 . 2 5 4 , 1 . 2 0 4 , 1 4 1 . 2 5 5 . 2 0 3 . 2 , 1 2
you to squeeze just a little bit 1013 D A T A 5 8 , M 4 . 2 5 5 . 1 9 8 . 8 . 185. 194. 1 0 0 . 2 5 5 , 122
more out of your tired a n d worn- 1014 DATA 215,122,215,22.0,4,120,254,176.194
out printer ribbons. 1015 DATA 9 6 . 2 5 5 , 2 0 1 , 2 0 3 , 2 5 0 , 2 0 1 , 0

TROJAN
CAD-MASTER
THE ULTIMATE IN G R A P H I C S T O O L S
MAIL ORDER
ADVERTISING
British Code ot Advertising Practice
Advertisements in this publication are required to contorm to the
laAAp
SUPERB GRAPHICS SOFTWAR British Code ot Advertising Practice In respect ot mail order
advertisements where money is paid in advance. Ihe code requires
PLUS advertisers to fulfil orders within 28 days, unless a longer delivery
period is stated Where goods are returned undamaged w>lhin seven
A TOP QUALITY LIGHT PEN days.the purchaser's money musl be refunded Pleaso retain prool ol
postage/despatch, as this may be needed
Discover the exciting world of creating your own
graphics on screen. Mall Order Protection Scheme
• FREEHAND DRAW - 5 pen thicknesses inc. Quills II you order goods Irom Mail Order advertisements in this magazine
• PAINT BRUSH - for the artistic touch and pay by post in advance ol delivery. Argus Specialist Publications
Lid will consider you for compensation if the Advertiser should become
• FILL ANY SHAPE - use 16 colours and 11 patterns insolvent or bankrupt, provided
• GEOMETRIC SHAPES - circtes, boxes, tnangles, lines (1) You have not received Ihe goods or had your money returned
& banding. and
• DYNAMIC RUBBER BANDING on all geometric options. (2) You write to the Publisher of this publicaiion, summarising Ihe
• PIN-POINT FUNCTION - for pixel accuracy on all functions. situation not earlier than 28 days Irom theday you sent your order
and not later than two months Irom that day
Plus many more too numerous to mention in this ad. All these Please do not wail until the last moment to inlorm us When you write
features in the Program -f a top quality Light Pen and an we will tell you how to make your claim and what evidence ot payment
Instnjction booklet in one reasonably priced package. Easy to use is required
for creating colourfuli pictures or technical drawings. Ideal lor use We guarantee to meet claims trom readers made m accordance wiih the
by all ages of micro users. Full back-up service from above procedure as soon as possiblo alter ihe Advertiser has been
declared bankrupt or insolvent (up to a limit ot £2.000 per annum (or
manufacturers. Available at good dealers or direct any one Advertiser so altecled and up to £6,000 per annum in respect ol
from Trojan Products. all insolvent Advertisers Claims may bo paid tor higher amounts, or
Please state which Micro. when the above procedure has not been complied with, at the
discretion ot this publication but we do not guarantee to do so in vie w ot
the need to sot some limit to this commitment and to learn quickly ol
readers' difficulties)
This guarantee covers only advance payment senl indirect response to
Micro Computer Software & Accessories an advertisement in this magazine (not. for example, payment made in
Send cheque/P.O. to: response to catalogues etc . received as a result ol answering such
TROJAN PRODUCTS advertisements) Classified advertisements are excluded
Dept Y. Com. 2,166 Derlwyn, Dunvant,
Swansea SA2 7PF Tel: (0792) 205491
TRADE ENQUIRIES WELCOMED

25 ZX Computing Monthly • March 1987


REflT business computers have used
m i c e for years, a n d there are
now a c o u p l e a v a i l a b l e for the
Spectrum (with another on the
way from Saga quite soon). The
AMX Mouse, trom A d v a n c e d
Memory Systems, a p p e a r e d

GRAPHICS
shortly before Ralnbird released
Art Studio and, b e i n g incredibly
sensible, Rainblrd m a d e Art
Studio c o m p a t i b l e with the
mouse (though you don't have to
buy Art Studio as well since the
mouse comes c o m p l e t e with its
own b u n d l e d graphics software,
AMX Art). The mouse Interface
Here it is, the ZX guide use it with both Kempston plugs into the Spectrum just like
interfaces a n d the +2's built in a joystick Interface, Into which
to the best in graphics joystick socket. Of course if you the mouse is p l u g g e d . A g o o d
don't have a Plus Two you'll value-for-money feature Is that
equipment for the need... the mouse interface also
includes a printer interface
Spectrum. Kempston Joystick which c o u l d save you some £30
If you haven't already got one.
Interface £6.95
Almost as old as the Spectrum
Art Studio £14.95 Itself is the Kempston Joystick
Interface, more or less the de
Trojan Ligliht Pen £14.95
Unless you're g o i n g to stick to Not as flexible
le as a mouse, but
BASIC (not a g o o d idea) the first taclo standard for the Spectrum. less expensive, light pens have
thing you'll n e e d when you start This latest m o d e l trom Kempston the virtue of allowing you to
experimenting with graphics is a is small, neat, a n d very 'draw' directly onto the surface
g o o d bit of software, a n d , with Inexpensive. of your monitor or TV screen. This
one possible exception, c a n be useful If you're trying to
Rainbird's Art Studio stands h e a d AMX Mouse £69.95 draw curves, wiggly lines etc.
a n d shoulders above everything Everyone's got a joystick (haven't which can't easily be drawn
else. Despite the wretched they?) but the more ambitious using keyboard or joystick
Lenslok anti-piracy device. Art a m o n g you might want to splash control, as the pen allows you to
Studio is a fast a n d flexible icon- out on a mouse. Most 'real' draw freehand. Trojan's pen
driven p a c k a g e that will help
you squeeze the best out of the
Spectrum's graphics capabilities.
It's also a v a i l a b l e In two versions
tor both 48K a n d 128K machines
(although the 128 version costs
£24.95).

The Artist II £14.95


Soltek's original Artisl program
was good, but a bit fddly to use.
but the e n h a n c e d Artist tt has
a d o p t e d the same pull-down
menu system as Art Studio a n d
there's now not a lot to choose
between the two programs when
it comes to creating screen
graphics. However The Artist
allows you to take text files trom
Softek's Writer wordprocessor a n d
a d d graphics to them in order
to create a passable imitation of
a magazine p a g e — desktop
publishing on the Spectrum!

Cheetah Mach 1+ £14.95


O n c e you've picked your
software you then have to
d e c i d e how you're g o i n g to
d r a w ' your pictures on the
screen. All graphics p a c k a g e s
allow you to use the keyboard
for positioning a d r a w i n g cursor,
but this c a n get a bit awkward
unless you've got the fingers of a
concert pianist so a joystick c a n
c o m e in handy. People's c h o i c e
of joystick is fairly personal, but
we've found this one to be g o o d
for both delicate d r a w i n g
movements a n d all-out alien
zapping, a n d it has the
additional a d v a n t a g e of having
an adaptor that allows you to

26 ZX C o m p u t i n g Monthly • March 1987


comes with Its own graphics Alan Davis. All the software you printer, the A l p h a c o m 32 a n d
software, though this isn't as n e e d to run it with is held Seikosha GP50-S). Unfortunately
sophisticated as it c o u l d be. onboard, it's versatile e n o u g h to none of these are still in
meet just about all your needs production, 'though you might
Kempston Mouse £49.95 and, most Importantly, it's simple be a b l e to find one or two still
The price of this is a b o u t to e n o u g h to use that you don't floaling around In shops.
come down to around £49.95 have to be a genius in order to So. you no longer have any
according to Kempston, m a k i n g w a d e through endless lists of c h o i c e — if you want to print out
It excellent value. At the moment control codes — unlike a lot of any of your graphics
the mouse comes b u n d l e d with printer interfaces this one is masterpieces you're g o i n g to
a copy of the Art Studio, making actually 'user-friendly'! have to fork out somewhere in
It about as powerful a graphics the region of £200 for a full-size
tool as you're likely to get on the Euroelectronics printer a n d Interface.
Spectrum (though when the
price comes down Kempston are
ZXLprint III £34.95 A printer is a fairly serious
p i e c e of hardware and. in
intending to r e p l a c e Art Studio We h a d to give this one a general, the price reflects the
with their own graphics mention since we've h a d one in quality of the machine, although
software). our oftices for a c o u p l e of years few Spectrum owners are likely
The mouse itself is a sleek a n d never h a d a moment's to need to typewriter quality
white unit with two buttons set trouble with it (this article was print ottered by the top-range
Into its 'head'. It's very solidly d u m p e d onto our printer with it). machines costing £400 upwards.
constructed, a n d wouldn't look It's c o m p a t i b l e with both If you're only interested in
out of p l a c e beside a computer Centronics a n d RS232 printers printing screen dumps you
ten times as powerful as a (you just have to buy the probably don't need near fetter
Spectrum. Like the AMX mouse relevant cable), a n d like the quality printing, but It's not
this also plugs into the Spectrum Kempston 'E' it has its own g o i n g to cost you m u c h extra
via its own interface which, not o n b o a r d software. a n d is b o u n d to c o m e in useful
surprisingly looks just like the rest one d a y — especially if you ever
of the Kempston range of What about a printer? want to sell your printer as
Interfaces. Oh dear. This is where It c o u l d second hand, so bear that in
start to get a bit c o m p l i c a t e d . mind. However, there are a few
Kempston 'E' O n c e upon a time you h a d a printers that offer high quality at
relatively low prices, our
c h o i c e between a b i g expensive
Interface £34.95 real" prinler or a number of particular favourites being:
Where there's an interface there's small c h e a p 'dedicated' printers
bound to be a Kempston. a n d which were specifically Amstrad DMP2000 £159
the Kempston *E' comes highly Intended for use with the About as c h e a p as you're likely
recommended by ZX regular Spectrum (Sinclair's own ZX to get, a n d ottering surprisingly
g o o d quality. Like most Amstrad
products they've kept it simple
a n d cheap, so this looks a bit
like a b a b y c o m p a r e d to some
of the heftier numbers around
but it will d o screen dumps a n d
near letter quality text printing —
a n d for under £200 that's g o o d
going.

Compliment LQ £199
Part of Saga's Compliment word
processor p a c k a g e this is an
excellent m a c h i n e that's as
g o o d as some much more
highly p r i c e d printers. Obviously
g e a r e d towards wordprocessing
rather than graphics, but still
c a p a b l e of g o o d quality screen
dumps.
Citizen 120D £235
Starting to get a little pricey, but
this is about as g o o d as most
home computer owners will
need. There is a very g o o d letter
quality m o d e for printing text,
a n d it's c r a m m e d with
international character sets a n d
self-diagnostic tests, a n d takes
single sheets of p a p e r or
perforated printout paper. Some
of these features are luxuries,
rather than necessities, but if you
c a n afford it you're not likely to
have to buy another printer very
soon.

fpREflT
IRAPHICS
27 ZX Computing Monthly • March 1987
Hot on the heels of The
Advanced Art Studio
comes Audiogenic's
graphics package for
the 128 and Plus 2.

Icon Graphix 128


Audiogenic
£12.95

udiogenic's Icon Graphix


p a c k a g e was l a u n c h e d about a
year ago, at the same time as
the Spectrum 128 a p p e a r e d . The
first version to a p p e a r was for the
48K machines but. not
surprisingly. Audiogenic also
a n n o u n c e d that an e n h a n c e d
version for the 128 was on its way
and, now that Amstrad's own
version of the 128 Is well a n d
truly here, they've finally gotten
around to releasing Icon
Graphix 128.

New features
Unlike the e n h a n c e d version of
Art Studio, which uses the 128's
additional memory mainly for
fast data storage/retrieval a n d
which has relatively few new
facilities for actually creating
graphics, the new Icon Graphix
p a c k a g e features a number of
options which were absent from
the original. Mind you, the
original Icon Graphix lacked
certain features that c o u l d be
found in both Art Studio a n d The
Artist (such as text handling a n d
'cut a n d paste' commands] so
the u p g r a d e d version has been
brought into iine with what we've
alt c o m e to expect as standard
from graphics packages these
days.
The layout of the screen
display remains unchanged, a time c a n be held In memory). the paper a n d ink within the
with the central drawing area The other new commands are cutting a n d to then surround
surrounded by a border m a d e mainly for 'cut 'n paste', allowing any solid areas with either a
up of the various FILL patterns you to define small sections of black or white outline
and, along the bottom of the the screen which c a n be 'lifted d e p e n d i n g on the nature of the
screen, icon symbols for the up", moved around, rotated, drawing. This might sound a little
graphics commands. This Icon reflected a n d otherwise abused. pointless but It actually creates
menu now has an a d d e d As I mentioned these c a n be a kind of 'polarised' effect that
feature though — a PAGE Icon, found on ordinary 48K makes even simple drawings
which when selected calls up packages, so while their look more Interesting, a n d it c a n
pages 2 a n d 3 of rhe menu inclusion now is a g o o d Idea it's b e used repeatedly to build up
containing the new commands. not exactly a giant leap forward. some unusual shading effects
The FILL. PEN. a n d shape which might otherwise take
forever to produce If they h a d to
commands (for drawing boxes,
lines, circles a n d ovals) were all
Trace be drawn conventionally.
standard on the 48K version but One new feature which is quite This TRACE c o m m a n d Is the
the new commands include original Is the TRACE c o m m a n d . highlight of the package, and,
some for a d d i n g text to your Once you've defined a window a l o n g with the Icon menus
pictures (and there is an (or a 'cutting' as the manual (which I found simpler to use
impressive variety of fonts calls it) you c a n use this than on Art Studio or The Artist) Is
included on side two of the c o m m a n d on whatever Is drawn one of the areas where It scores
tape, although only one font at within it. What it does Is to invert over the competition. However

28 ZX Computing Monthly • March 1987


there are other features which
could be improved upon given
the 128's potential.
Although the program allows
you to control the cursor from
keyboard, joystick or (Kempston)
mouse, the movement of the
cursor is fairly slow a n d it c a n
take a c o u p l e ot seconds to
move the cursor trom one side of
the screen to another (good It
you're d o i n g detailed work using
the MAGNIFY option, but
irritating if you're trying to
quickly move Jrom one icon to
another).
The FILL a n d shape drawing
commands are also slow, a n d if
you're defining a cutting with
the cut a n d paste c o m m a n d s
that is more than about 1/4 of
the size of the screen you c a n
almost hear the poor m a c h i n e
straining to keep up as it tries to
constantly redraw the window.
Finally, the SAVE/LOAD facilities
are a bit of a mess. You c a n
save or l o a d a normal SCREENS,
a document' or a cutting,
though the manual doesn't
really explain how a d o c u m e n t
differs trom a SCREENS. The
loading option is a bit finicky
about a c c e p t i n g names a n d
you can't just l o a d the first
SCREENS that you c o m e to on
tape (ie using LOAD " " SCREENS),
as you've got to know the n a m e
ot the screen to start off with. This
is fine If you've saved a picture
drawn from scratch on the
package, but it you've got some
pictures saved onto t a p e that
are taken from anywhere else
you've got to make sure you
know their names betore you
can get at them. Icon Graphix
128 Is an Improvement upon the
original. I found it easier a n d
more enjoyable to work with
than many other graphics
packages I've h a d to review in
the past, mainly because the
icon menu Is so self-explanatory
and visible on screen all the
time rather than just p o p p i n g up
and down betore you've
managed to figure out what
you're doing.
As I mentioned, the program
could be faster than it is, but on
the other hand it does cost just
£12.95 c o m p a r e d to a fairly hefty
£25 for the 128 version ot Art
Studio, so while It might not
match Art Studio in sheer speed
and number of options It still
works out at quite g o o d value.

s Col-
PUSH LOAD +
PAGE SAVE our

H o i
"Type" Hide 121
| Bold Outline Clear
PUSH
PAGE
LOAD +
SAVE 3 Coll
our | Undo Shapes Magnify "Type" F i x f f f

HA Bold Outl ine

29 ZX Computing Monthly • March 1987

_
DISCIPLE
John Wase plugs in a
standard BEEB-type disc Interface
connector, a second joystick
the utilities program supplied on
cassette. After answering various
port a n d network connector, a n d prompts, you are ready to format
new multi-purpose on the lett-hand end, the inhibit a disc. Two surprises: firstly the
a n d snapshot buttons. disc is not n a m e d ; you have to
interface. I a p p r o a c h e d the system with n a m e it on the label; secondly
some trepidation, b e i n g preju- a small c o d e program c a l l e d
d i c e d through long familiarity "systems" Is also saved on the
Disciple with the Opus system. So at first I
didn't like the rather creaky
disc at the same time. A c o l d
start involves switching on
Rockford Products plastic box; a 128K Spectrum+2 computer, Inserting disc a n d
£73.70 ( + VAT) overhung this rather a lot, a n d I typing RUN. when the systems
was g l a d I h a d left on the b i g program is loaded. This c a n be
feet which I n e e d with Ihe a bit irritating but does ensure
F = o r several weeks I h a d b e e n Discovery, tor they just supported that the system c a n b e u p d a t e d
anticipating Its arrival. At last a In the right places the overhang to c o p e with alterations in other
cryptic message c a m e — "a from the Disciple. A standard 48K systems. There is provision for one
disciple will shortly arrive at your Spectrum was less lucky a n d further auto-running program on
house". It was on Its way. n e e d e d a cassette temporarily any one disc.
My delay in receiving this w e d g e d in front of it. The first two Disciple comes with a truly
Interface was d u e to a technical Disciples h a d rough h a n d l i n g in comprehensive array of com-
problem: the NEC ROM version the mail a n d the snapshot mands. LOAD D1"proaram". tor
of the Spectrum gave trouble switch was d a m a g e d in e a c h instance, works, as well as micro-
with their first issue, a n d the ROM case; Rockfort tell me that more drive commands. So does SAVE
in the Disciple h a d to be re- robust switches are now b e i n g d1 " p r o g r a m " SAVE D l - p r o g r a m "
written. Advantage was therefore used, a n d that the p a c k a g i n g is saves a n d then also gives you
taken of this to Incorporate b e i n g modified. Whilst none of the short directory or catalogue,
several improvements into the this improved my confidence, as which numbers e a c h file, tells
system, a n d it is this version, I used it a n d gradually got used you what It Is a n d the start
version 2, which I tested. Disciple to it, I b e g a n to like it a n d address a n d length if It is code.
comes complete with Instruction a p p r e c i a t e its many virtues. This allows you to use the very
manual, guarantee a n d a cas- short syntax LOAD p6. when
sette. As the picture shows, the number 6 in the list is l o a d e d
interlace itself is a fong, flat from the last disc In use. All the
plastic box on which your Hooked c o m m a n d s one would expect
Spectrum sits, a bit Interlace The m a n u a l contains a lot of are there, including wild c a r d
One-ish in shape, with a n e d g e useful basic information, but tiles (to ERASE numbersl.
connector on top to connect the lacks anything detailed on numbers2. numbers 3 eta, enter
Spectrum a n d the customary m a c h i n e code, although it ERASE DTn*"). A well thought out
through-port on the back. To the mentions that the hook codes system.
right of this are the Joystick port are the same as those tor micro- In a d d i t i o n to the disc
a n d network connector, with the drives. I a m told that by the time Interface itself, one or two other
printer interface on the e n d of you read this, there will be a little gizmos are Incorporated.
the box. To the lett are a new, ring-bound version of the Clearly a i m e d at the games
Instructions which will have player is a snapshot button; this
provision for containing compre- takes a c o p y of what is in
hensive information on m a c h i n e memory, a n d , In this case, saves
code. The first operation is to It direct to disc as a "snapshot
connect everything up a n d l o a d file". This is the only type of file

30 ZX C o m p u t i n g Monthly • March 1987


which will not c o p y from one the printer are p r e c e d e d by independent of the disc type,
disc to another on a two disc CHRS27, even if you wish to send a n d which c a n be extended if
system; thus piracy Is minimised. CHRS27 Itself; tortuous but necessary. Disciple allows only
The two joystick ports c a n be effective. This can, however, be 40 entries in single density a n d
configured either as Sinclair or c h a n g e d (it has to be for 80 in d o u b l e The sector length is
(lelt hand only) as Kempston. Tasword, for instance, for version similarly Interesting, Discovery
A great d e a l of thought has 2 will transmit only four control a n d Disciple (80 track) has 512
been given to networking. codes at any one time). byte sectors. Although these
Disciple has two network ports, Now for the meaty bits. I took bigger sectors a n d the lack of a
each taking inexpensive one of my son's games a n d c o m p a c t i n g facility on Disciple
standard 3.5mm jack plugs a n d converted It onto disc. This c o u l d m e a n more wasteful use
standard cable. In this way, a consisted of a basic loader, a of the disc, this is m a d e up for a
shored access network c a n be screen a n d a p i e c e of m a c h i n e larger formatted capacity,
set up with a master station a n d c o d e 38351 bytes long (virtually although d o remember that you
pupil stations: the master c a n a full 48K Spectrum). have to put the "systems"
transmit programs to the pupils Loading this from t a p e took program on the d i s c
and even call up their screens just short of five minutes. The My overall impressions a n d
to check their work; they, in turn same thing took a spectacular comments? Well, first the b a d
can call up programs from a seven seconds from the Disciple! news. It's g o i n g to cost quite a
central disc or print on a central I l o a d e d the g a m e a g a i n a n d lot for a c o m p l e t e system, for
printer. took a snapshot. Taking it took you've got the cost of a drive on
between eight a n d nine top of the £79 o d d for Disciple. I
Centronics seconds. Reloading took five.
When times get as short as this It
felt If was a bit plasticky, a bit
flimsy, a n d I m a n a g e d to get the
The Centronics Interface is fairly is Impossible to be very disc connector in the wrong way
unremarkable. The answers to accurate: all you c a n say Is that round. M u c h of this was when,
Ihe Initial utility program involve they are impressively fast. Saving all thumbs, I was trying to
information about the printer In is equally fast — I used the SAVf connect up a n d get It going.
use if It Is not a n Epson com- D1 "name" version for the picture Having got used to It. well. It's
patible. The answers are Incor- a n d for the c o d e ; in e a c h case great. There are all sorts of
porated In the systems program the bulk of the seven or eight additions: the snapshot, the
which has to be used to boost seconds was the time required comprehensive networking, the
up the system; a nuisance if you to display the directory. Indeed, availability ot two Sinclair or one
are using dot matrix for rough the only operation which took Kempston joystick ports, the
copy and daisy wheel for the longer was formatting. ability to run mlcrodrive software
finished document. LLIST a n d Talking of formatting, I found a n d to have It transferred by
LPRINT are supported, together that there were one or two means of the Inhibit butlon, a n d
with COPY SCREENS which Interesting comparisons to be above all, the Incredible speed
copies the screen. Any control made. Discovery has a directory of transfer. You know. I rather
codes that you want to send to length (110 files) which is fancy one myself...

ARE YOU A BUDDING


PROGRAMMER?
X is always looking for top

mre
quality games and utilities for
publication. If you have a top
notch game or a useful utility for
the Spectrum or QL why not
send it to us for appraisal on
cassette or microdrive complete
with a iisting 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
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.

31 ZX Computing Monthly • March 1987


^Mini Studio^
A Sound Sampler for c o n t a i n i n g u p to eight sounds, O n most t a p e recorders pressing
c o n b e entered In this mode. PAUSE+PLAY/REC should allow
you to s a m p l e from the
any 48K or 128K PROGS - bars c r e a t e d in BARS microphone.
m o d e are strung together In u p
Spectrum by Massimo to 64 steps here.
2. Configure a sound so as to
Pilia. The SPACE key switches you
use u p the rest of r e m a i n i n g
memory. EG. set u p s o u n d 0 as:
b e t w e e n m o d e s a n d the cursors
in SOUNDS. BARS a n d PROGS are N - STA - L E N - Dl - D E
c o n t r o l l e d using keys: 5=left, 0— 000 —120—FO—01
6 = d o w n , 7 = u p a n d 8=right with
T o enter the p r o g r a m : 0 for edit. by m o v i n g the cursor with keys
Type in listing 1 a n d save It with 5-8 until It Is b e n e a t h the v a l u e
SAVE "MS-'LINE 5. Then t y p e in you wish to c h a n g e , press 0 a n d
listing 2 a n d save this onto
another t a p e with SAVE "L2". Sounds Mode then enter the value you require.
The d e l a y Is set to 01 for
Run listing 2 a n d w h e n the In this m o d e the p r o g r a m is m a x i m u m quality. If the d e l a y
saving prompt a p p e a r s , position controlled with the following was higher the sound c o u l d
your FIRST t a p e (with MS o n it) keys: then b e r e p l a y e d at higher
just after listing 1 a n d start pitches ( l a lower delays) but
recording. Press a key. 1 — Selects the n u m b e r of beats w o u l d b e of poorer quality.
Rewind the t a p e a n d l o a d per bar (up fo eight).
listing 1. O n c e It has l o a d e d 2 — Selects the blocks' per b e a t 3. Press I for Input a n d reply "y"
a n d run itself you are r e a d y to (see note below). to the "sure?" prompt.
g o through the following I — Input (record a sound).
instructions. 4. Press a key to start s a m p l i n g
O — Output (playback).
w h e n you are ready. The s a m p l e
L - Load.
What is Sound S - Save.
is c o m p l e t e w h e n the "PRESS A
KEY" p r o m p t disappears.
Sampling? K - Key (musical key In PLAY
mode).
S a m p l i n g Is a way of digitally 5. Press O to listen to your
r e c o r d i n g a small a m o u n t of When using I. O a n d S Ihey sample. It will s o u n d best
sound, usually for use in m u s i c A o p e r a t e on the sound through h e a d p h o n e s p l u g g e d
computer's m e m o r y Is a n I d e a l u n d e r l i n e d by the cursor, this is into the ear socket at the b a c k
m e d i u m for this type of the m o v i n g line w h i c h of the computer.
recording, since a sound is In underlines various functions a n d
memory, It c a n b e s u b j e c t e d to sounds a n d is c o n t r o l l e d by the 6. Now you must tighten u p the
a n y number of bizarre keys 5, 6, 7, 8, to move it In the sound, le, c h o p off any excess
alterations. direction of the arrows. sound before or after the part
This p r o g r a m allows sound (up The m e m o r y that sounds are you want. Start by increasing the
to a b o u t six seconds long) to b e s a m p l e d Into is d i v i d e d Into 120 start value (STA) bit by bit. you
recorded, reversed, s p e e d e d up. "blocks", e a c h 256 bytes long. will have to d e c r e a s e the LEN
slowed d o w n a n d sequence- There are ten sound value before e a c h increase of
p l a y e d In a specific order with configurations (0-9) w h i c h are STA as the TOTAL of STA-fLEN Is a
other sounds. The basis of the simply windows o n this memory. m a x i m u m of 120. Listen to the
p r o g r a m is the m a c h i n e c o d e Each of these configurations sound e a c h time until there Is no
that records a n d plays b a c k the has four values as shown o n the superfluous s o u n d before the
sound. This works by r e a d i n g the t o p left of the screen. The t o p p o r l i o n you wont.
cassetle port at high speed, a n d right displays the m o d e you are
f e e d i n g the sounds that are In. The m e a n i n g of these values Now d e c r e a s e the l e n g t h
r e a d into m e m o r y In the form of is: (LEN) value until the s a m p l e is
d a t a bits. By reversing the exactly the portion of s o u n d you
process a n d r e a d i n g the bits STA - this is the 'block* where require.
from m e m o r y a n d out of the the sound starts In m e m o r y
cassette port a n d buzzer, the (0-119). 7. Your s a m p l e Is now complete.
sound is r e p r o d u c e d . C h a n g i n g LEN — fhe length of the sound You m a y reverse It by m o v i n g the
the s p e e d that the sound is (1-120). cursor to the Dl c o l u m n a n d
p l a y e d b a c k at will also c h a n g e Dl — the direction of the sound pressing 0. You m a y also
the pitch of the sound. (forwards/backwards). c h a n g e the d e l a y (speed). I
There are four m o d e s of DE — the d e l a y used w h e n shall e x p l a i n the various ways of
operation: p l a y i n g b a c k or r e c o r d i n g the using a s a m p l e In a moment.
sound. This determines the
s p e e d a n d quality.
SOUNDS - this Is the m o d e
where the sounds are s a m p l e d
Play Mode
a n d cut u p for use in the other Another value — BTS — is also This m o d e uses the following
modes shown but is just the n u m b e r of keys:
beats the sound o c c u p i e s . This is 1 — Record,
c a l c u l a t e d by LEN/BLOCKS/BEAT.
PLAY - sounds set u p In SOUNDS 2 - Playback.
m o d e c a n b e p l a y e d b a c k at
O eight pitches covering a n In the Record s u b - m o d e the
i u octave. Recording sound currently u n d e r l i n e d by
Q. 1. Set u p the c o m p u t e r a n d t a p e the cursor in SOUNDS Is turned
CO BARS — u p to eight bars, e a c h recorder as shown in figure 1. into a m u s i c a l (or not so

32 ZX C o m p u t i n g Monthly • M a r c h 1987
In BARS m o d e enter b a r 1 as:
EAR LINE 211220. Initialise a n d run it for a
N-N-N-Nineteen effect.
3. Echo c a n b e s i m u l a t e d by
" l a y e r i n g " the sound. Set u p the
sounds like this:
N - STA - L E N - Dl - D E
0 - 0 0 0 -004—FO —01
1 - 0 0 2 -004—FO —01
2 - 0 0 4 -004—FO —01
3 - 0 0 6 -004—FO —01
4 - 0 0 8 -004—FO —01
5 - 0 1 0 -004—FO —01
6 - 0 1 2 -004—FO —01
7 - 014 -004—FO —01
Enter bar 1 as 01234567. Initialise
a n d run it.
4. The sound m a y also b e used
as part of a more c o m p l i c a t e d
s e q u e n c e using other sounds (ie.
a d r u m beat).

Sequencing a Tune
Figuro 1. Sampling set-up S e q u e n c i n g a tune poses a
p r o b l e m b e c a u s e w h e n the
musical) Instrument p l a y e d o n The e x a m p l e bar in step 2 will sounds p i t c h is c h a n g e d its
keys 1-8 in the key s p e c i f i e d by p l a y sounds 1,1.1.3,4,1,3.2 In that length in time is also c h a n g e d .
the K key from the SOUNDS order. When c o u n t i n g the beats This m e a n s that the rhythm goes
mode. it counts s o u n d 1 four times a n d out the window. As the p r o g r a m
0 toggles r e c o r d i n g of lunes 3 twice. Bars are split into eight doesn't have a timer another
ON/OFF 9 exits the sub-mode. parts. I prefer to leave the m e t h o d has to b e used:
In the Playback s u b - m o d e a counter OFF but it Is there for a
Set u p sounds 0-7 thus:
tune r e c o r d e d in Record c a n b e purpose.
replayed by t a p p i n g out the N - STA - L E N - Dl - D E
rhythm on the 0 key. 9 exits. Progs Mode 0-000-008-FO-OO
1 — 008 —008—FO —08
This m o d e is c o n t r o l l e d by keys 2 - 0 1 6 —008— FO—16
Bars M o d e O a n d E: 3-024 -008-F0-20
This m o d e uses the following O — Run/Initialise (sequence). 4— 032 —008—FO—28
keys: E - Toggle STOP/REPEAT. 5-040-008-FO-36
6— 048 —008—FO—44
Hold d o w n any key on the 7— 056 —008—FO—48
0 - Run/Initialise (bars). bottom row to stop a s e q u e n c e
E - Toggle Stop/Repeat. from p l a y i n g . Sample the s a m e sound
C - Toggle b e a t counter Bars c a n b e strung together in (presumably a r e c o r d e d sound)
ON/OFF u p to 64 steps. This is for longer, into e a c h area. Now c h a n g e all
more c o m p l i c a t e d s e q u e n c e s delays b a c k to 00.
Hold down any key on the a n d for quicker editing. These d e l a y settings are In
bottom row to stop the s e q u e n c e the key of C (at a guess) a n d
looping endlessly (Ihis h a p p e n s Entering steps: represent the notes C,D,E,F,G,A,B
when repeat is ON). 1. Position the cursor under the a n d C A d d 4 to a d e l a y for a
value to b e e d i t e d . flat a n d subtract 4 for a sharp.
When the b e a t counter is ON,
any bar entered that does not 2. Press 0 to edit a n d enter the
contain the right n u m b e r ot n u m b e r of the b a r you want.
Enter 0 to signify the e n d ot the
Example Rhythm
beats (Ie. w h e n the total BTS
value ot every s o u n d in the bar sequence. It you m a n a g e d to take all that
Is not the s a m e as BEATS/BAR) will 3. Enter any other steps you want in you are ready for your first
be rejected. This bar must then 1o enter. d r u m rhythm using MINI-STUDIO.
either be entered correctly or 4. Press O a n d then I to initialise.
Press O a n d then "r" to listen to 1 Enter SOUNDS mode.
deleted by just pressing ENTER. 2. Set u p sounds 1-3 like this:
In this m o d e eight bars (lists of the sequence.
sounds) c a n b e e d i t e d a n d Whenever a n alteration Is m a d e 1-OOO-OOS-FO-OI
stored. These c a n b e p l a y e d in either PROGS or BARS m o d e 2-003-003-F001
back in order in this m o d e or in r e m e m b e r to re-inltialise them. 3-006-003-FO-01
a more c o m p l i c a t e d s e q u e n c e 3. Input or l o a d a bass d r u m
from PROGS mode. Using a Sample s o u n d into 1.
4. Input or l o a d a snare d r u m
Entering bars: O n c e a s a m p l e has b e e n
sound into 2.
1. Move the cursor under the bar c r e a t e d several things c a n b e
5. Input a b l a n k (silence) into 3.
to be edited a n d press 0. d o n e with It:
6. Enter BARS mode.
2. Type In your bar. (Eg. 11134132). The s a m p l e c a n b e used as a 7. Turn the b e a t counter off
The numbers are the numbers of musical instrument In PLAY (press C).
Ihe sound samples that you set mode. 8. Enter Ihe following bars:
up in SOUNDS mode. 2. The s o u n d c a n b e put into a
13132313 13332333 13232322 13132133
3. Enter any another bars you simpler s e q u e n c e o n its own. It
33132133 11112111 33112111 13222223
want to enter. you have s a m p l e d some s p e e c h
4. Press O a n d then enter T to as: O-OOO-Old-FO-OI Ihen you 9. Initialise.
initialise. c o u l d set u p sounds 1 a n d 2 as 10. Enter progs m o d e a n d enter
5. Press O a n d then "r" for RUN shorter versions ot 0:— these bar steps:
to listen to your stroke of musical 1-000-002-FO-01 1213425362736873
genius 2-000-Q04-FO-01 11. Initialise a n d run this.

33 ZX Computing Monthly • M a r c h 1987


tL - S T R - L E N - J D L X - B T S M O D E : S O U N D S
0 - A 0 0 - 0 0 4 - F O - 0 1 / 1
1 - 0 0 0 - 0 0 4 - F O - 0 1 / 1 5 /
6 / 7 / 8
2 - 0 0 0 - 0 0 4 - F O - 0 1 / 1 F O R
3 - 0 0 0 - 0 0 4 - F O - 0 1 / 1 C U R S O R S
4- - 0 0 0 - 0 0 4 - F O - 0 1 / 1
5 - 0 0 0 - 0 0 4 - F O - 0 1 / 1 S P A C E
6 - 0 0 0 - 0 0 4 - F O - 0 1 / 1 F O R
~7 - 0 0 0 - 0 0 4 - F O - 0 1 / 1 M O D E S
S - 0 0 0 - 0 0 4 - - F O - 0 1 / 1
9 - 0 0 0 - 0 0 4 - - F O - 0 1 / I
1 -- B / B R R : 6 I = I N P U T L. = L O R D K = K E Y
2 •- B L K / B : 4- 0 = 0 U T P U T S = S R U E ( C )

C : = T O G G L E C O U N T ( O N ) S T U D I O © 1 9 8 6
E i = T O G G L E E N D ( S T O P ) M . P i I i a
0 = R U N / I N I T I f l L I S E S E Q U E N C E S

0 G 0 0 0 O 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

F i g u r e 2. E x a m p l e o f t h o s c r e e n d i s p l a y ,

Listing 1
PI-PII 123 IF I N K E Y » - ' 3 ' AND y < V A L '14
43 IF *(a*PI/PI,PI/PI)fVAL '10 • AND y > I N T P I T H E H GO S U B V A L
0' THEN PRINT PI-PII "160*: LET y-y-VAL ' 4 ' : GO S U B V
30 PRINT s ( a » P I / P I , P I / P I ) t " - • ! AL '160'
2 REH MINI-STUDIO ! IF »<a*PI/PI,VAL *2*I<VAL *I0* 130 IF INKEY«-'6' AND x<VAL '10
3 CLEAR VAL " 3 3 7 9 1 L O A D mm
C THEN PRINT PI-PI| ' THEN GO S U B V A L ' 1 6 0 " : LET
ODE 31 I F » < a * P I / P I , V A L ' 2 ' K V A L ' x*PI/PIt GO S U B V A L '160'
10 L E I k - V A L " 8 * : LET k»-*2212 100* THEN PRlNf PI-PI| 132 I F I N K E Y * - ' ! ' THEN GO SUB
2 2 1 " : LET i e - * C D E F G A B * : LET d-PI 32 PRINT •(a+PI/PI,VAL , 2 , l | VAL '300*
-PIS LET n-PI-PIS LET p*-VAl. *20 33 IF s l a + P I / P I , I N T P D - P I / P I 133 IF 1NKEY««.'2' THEH 00 SUB
* : LET p y - P I - P r : DIM c»(VAL 'fil- THEH PRINT "-BA--J VA1. '310'
ls DIH d(VA1 *e*,VAL ' 2 * 1 5 LET t 37 IF s t a + P I / P I , I N T P I I - P I - P I 137 IF 1NKEY»-'B* THEN GU SUB
-PI-PI: LET m » - * r > ' : LET i 1 - P I - P I THEN PRINT *-FO-"| VAl '900-
S LET b a r - V A L ' B ' S LET b l k - V A L " 38 IF s(a+PI/PI,VAL *4•)<VAL ' 130 IF 1NKEY»-'I' 'I H E N GO TO V
4*: LET xI-VAL '14*: LET yl-PI-P 10* THEN PRINT PI-PIl At '910*
IS L E T • - P I - P I : DIH »(VAL '10*,V 3 9 PRINT » ( * + P l / P I , VAL " 4 " U 139 IF lNKfcY»-*k* THEN liU SUB
AL • « • ) : DIH p«<VAL " B - . V A L *8*> 60 PRINT * / " I « f a * P I / P I , V A L ' 2 ' VAL '930*
5 LET x - P I / P I S LET y - I N T PI 1/blkt: LET b«-STR« t*(a»PI/PI,V 140 I F l N K E Y » - * 7 " AND x >Pl/PI T
2 0 FOR a - P I / P I TO V A L * 1 0 " : LE A L *2 m>/btfclI GO S U B VAL '197*: HEN GO S U B V A L " 1 6 0 ' : LET x«x-P
T eta,VAL *2')-VAL *4*S LET «<a, NEXT a I / P I I GO S U B V A L *160-
VAL • 4 " I - I J NEXT FOR a-PI/PI 63 IF +I-PI/PI THEN LET f1=P1 143 IF INKEY«-*0* THEN GO SUB
TO V A L - A 4 - ! L E T c « f a l * " 0 * : NEXT -Pit PRINT OVER P I / P I I AT x , y t * _ VAL "170"

•S R E T U R N 147 IF I H K E Y * - " • THEN GO TO V
32 0 0 SUB VAL *V30* 70 PRINT AT V A L ' I 3 ' , P I - P I j : F AL *200*
33 C L S : P R I N T AT 17,201'STUDI OR a-PI/PI TO V A t •8* 148 I F I N K E Y « - * 1 * THEN GO SUB
O l 9 8 6 " I AT 18,231 -H.PI 1!#• 80 a/VALIF * 2 " INT < a/VAL '2* VAL "600*
3 3 P R I N T AT PI-PI,PI-PI»*N:-ST ) THEN PRINT p » < a l I 14V IF IHKEYe-'o* 1 HEN GO SUB
A-LEH-DI-DE-BTS* 90 IF a/VAL • 2 ' O I N T (a/VAL *2 VAL '608'
36 PRINT OVER PI/PHAT PI-PI, •> THEN PRIHT PAPER VAL ' 3 " ! p * 1 3 0 GO TO V A L '110'
P I - P I I * _ • (a) I 151 I F • < x , I N T P I ) " P I - P I THEN
37 PRINT PAPER VAL * 6 * | A T VAL 92 IF a/VAL '4*"INT (a/VAL *4* P R I N T AT x , y I " F O * t A T * , I N T PI|!
•11 PI-PI! M-B/BAR: • |b«r J* I - I t THEN PRINT : PRINT LET b«-STR» s < x , P I / P I > : FOR d-PI
NPUT L-LUAD K-KEY 2-HLK/B:•IbIk 9 3 HEX I a /PI TO I N T P I - L E N b « : P R I N T ' 0 ' I
f * O-OUTPUT S - S A V E C | l « « k > | ' ) 94 IF f.pi/pi THEN RETURN S NEXT d : P R I N T * f x , P I / P I > : GO 6
" I AT V A L " 2 " , V A L •24•J"5/6/7/8* V6 BEEP VAL '. I",VAL "12*: PRI UB VAL ' 1 6 0 ' : RETURN
I AT I N T P I , V A L "24"|• FOR • I AT N T AT PI-PI,VAL *2I"I"MODE:"| PA 132 IF » ( x , I N r P D - P I / P I 1 HEN
VAL * 4 * , V A L •24*1'CURSORS*(AT V PER VAL ' 6 ' r I N K VAL *2'J'SOUNDS P R I N ( AT X , y | ' B A * | AT x . I N T P l f .
AL ' 6 " , V A L ' 2 4 ' S P A C E • I AT VAL •t OO S U B VAL '160' LET b « - S T R * « ( x , P I / P I ) : FOR d-PI
•7',VAL ' 2 4 ' | • FOR • 1 AT VAL " 110 IF INKEY»-'0' AND y-VAL '11 /PI IU 1HI P l - L E N b « : PRINT *0'|
8 ' , V A L " 2 4 " I ' MODES ' I AT V A L M 9 ' THEN OO S U B V A L ' 1 6 0 ' : LET y- : NEXT ds P R I N T a ( x , P I / P I ) : GO S
• f P I - P I C O-RUN/INITIALISE SEQ V A L * 1 4 * S OO S U B V A L '160' UB VAL M 6 0 * S RETURN
UENCE8 1 1 3 I F I N K E Y » - * 8 ' AND y < V A L ' I I 160 PRINT AT x , y I OVER P I / P I f _
4 0 P R I N T AT P I / P I , P I - P I I : FOR ' THEN GO S U B V A L ' 1 6 0 ' : L E T y « •S BEEP VAL *.01",VAL "12": RETU
a-PI-PI TO V A L ' 9 ' 5 P R I N T AT a * P y * V A L " 4 " : GO S U B V A L -160* RN
I / P I , P I - P I I PAPER VAL * 6 * I INK V 120 I F INKEY»-'3' AND y - V A L '14 170 IF y-INT PI THEN LET b-PI /
AL "2"In(: PRINT IF »(a*P - THEN GO S U B V A L '160': LET y- PI
I / P I , P I / P I X V A L '10' THEN PRINT VAL " I I " : GO S U B VAL *I60' 173 IF y-VAL '7 m THEN LET b-VA

34 ZX C o m p u t i n g Monthly • M a r c h 1987
L "2" 3 0 8 I F a - P I - P I THEN P R I N T AT V 6 0 5 I F 3 ( x , V A L " 4 " ) >P1 - P I "IHEN
176 I F y - V A L " 1 1 " AND s ( x , I N T P AL * l f l * , P I - P I I * E - T O G G L E END ( S T O POKE VAL " 6 5 0 3 0 " , V A L " 6 " : POKE
D - P I - P I THEN LET o(x,PI/PI)=s( P) • VAL " 6 5 0 3 2 " , V A L " 1 6 " : POKE VAL *
*pPI/PII+s(x,VAL - 2 " ) : LET six,I 3 0 9 I F s - P I / P I THEN P R I N T AT V 6 5 0 J J " , V A L " 2 5 4 " : POKE VAL " 6 3 0 0
NT P I ) - P I / P i : GO SUB V A L "151": AL ' 1 8 ' , P I - P I ) ' E - T O G G L E END ( R E P 3",VAL " 1 3 3 " ( x , P I / P I ) : POKE VA
RETURN EAT) • L " 6 5 0 0 3 " , s ( x , V A L " 2 " ) : POKE VAL
177 I F y - V A L M i ' AND s i x , I N T P "63031 *,s(x,VAL "4">
3 1 0 BEEP VAL ' . 0 1 ' , V A L ' 1 2 ' : PR
D - P I / P I THEN LET s(x,PI/PI)-s( I N I AT x l . y l l ' 6 0 7 BEEP V A L " . 0 1 " , V A L " 1 2 " : PR
PI/PI)-st*.VAL • 2 * ) : LET s(x,l 3 2 0 I F I N K E Y * - " 8 " AND y l < V A L '2 I N T AT V A L " 2 1 " , P I - P I I PAPER VAL
NT P I I - P I - P I : GO SUB VAL "151": 3 * (HEN P R I N T AT x l . y l j " •6"I" PRESS A KEY
RETURN • : LET y l - y l + V A L ' 8 ' : GO TO VAL • : PAOSE P I " P i : RANDOMIZE
178 I F y - V A L ' 1 4 " THEN LET b=V •310* USR VAL " 6 3 0 0 0 " : P R I N T AT VAL " 2
AL ' 4 * 3 3 0 I F I N K E Y * - " 3 " AND y l > P I - P I 1",PI-PI I,,: RETURN
179 BEEP VAL " . ( t l * , V A L " 1 2 " : IN THEN P R I N T AT x l . y l t " ': 6 0 8 I F • ( x , I N T P I ) - P I / P I THEN
PUT " I s ( x , b ) : P R I N T AT x , y j : I LET y l - y l - V A L * 8 ' : GO TO VAL '3 POKE V A L " 6 3 0 6 7 " , V A L "43"
F b - V A l " 2 " AND s ( x , b ) > V A L '120* 10* 609 IF a ( x , I N T P I I - P I - P I THEN
t HEN GO TO VAL • 1 7 9 * 3 4 0 I F I N K E Y » - ' 7 * AND x 1 > V A L '1 POKE VAL " 6 3 0 6 7 " , V A L "35"
180 I F b - V A L " 4 " AND s ( x , b ) > V A L 3 ' THEN P R I N T AT x t , y l | * 6 1 0 I F • ( x . V A L " 4 " > - P I - P I THEN
* 6 4 * UR b - V A L " 4 " AND m ( x , b X P I • : L E T x 1 — x 1 - V A L ' 2 ' : GO TO VAL FOR h - V A L " 6 3 0 8 9 " TO V A L " 6 3 0 9 2
- P I THEN GO TO V A L " 1 7 9 " "310" POKE h , P I - P l : NEXT h : POKE VA
181 I F * ( x , I N T P I I - P I / P I THEN 3 3 0 I F I N K E Y » - " 6 " AND x X V A L '1 L "63060",VAL "133"*s(x,Pl/PI>:
IF a ( x , P I / P I ) - s < x , V A L "2'XPl-PI 3 " THEN P R I N T AT x l , y l l " POKE V A L " 6 3 0 6 2 " , s i x , V A L "2"): R
THEN GO TO VAL " 1 7 9 " ' : L E T x 1 - x 1 • V A L • 2 ' : GO TO V A L A N D 0 M 1 2 E USR VAL " 6 3 0 4 8 " : RETURN
1B2 I F « ( x , I N T P I ) - P I - P I THEN "310"
IF s ( x , P I / P I ) + s ( x , V A L "2")>VAL * 3 6 0 I F I N K E Y * - " ' THEN GO TO V 613 IF s ( x , V A L "4 * ) > P I - P I THEN
1 2 0 " THEN GO TO V A L "179" AL " 8 0 0 " POKE V A L " 6 3 0 8 9 " , V A L " 6 " : POKE
183 I F i ( K , b ) < V A L " 1 0 " THEN PR 3 6 2 I F I N K E Y « - " » " THEN LET s - N VAL " 6 5 0 9 1 " , V A L " 1 6 " : POKE VAL "
INT P I - P I I OT « : GO TO V A L '300* 6 3 0 9 2 " , V A L " 2 3 4 " : POKE VAL " 6 5 0 6
1B4 I F b - V A L ' 2 * AND s i x , V A L "2 i " ,VAL " 1 3 3 " • • ( x , P I / P I ) : POKE VA
3 6 3 I F I N K E Y » - ' o ' THEN GO SUB
• X P I / P I THEN GO TO V A L "179" L ' 6 3 0 6 2 " , s ( x , V A L " 2 " ) : POKE VAL
VAL " 7 0 0 *
1B6 I F b - P I / P I AND s l x . b X V A L ' "63090",six,VAL "4"): RANDOMIZE
3 6 7 I F I N K E Y « - " c " THEN LET t-N
108- OR b - V A L m2m AND s ( x ( b K V A L USR VAL " 6 3 0 4 8 " : RETURN
OT t : GO TO VAL "303'
• 1 0 0 ' THEN PRINT P I - P I I 7 0 0 INPUT "R o r I ? " I L I N E 1 *
3 7 0 I F I N K E Y « - " 0 " OR • - V A L "2"
187 I F b - V A L * 4 * THEN PRINT s ( )HEN INPUT LINE p * ( ( ( ( x l - V A L * 702 POKE VAL "63119",d+(s-PI/PI
x,b) 11")*VAL "2")+yl/VAL "8">-VAL "3 >
189 I F b - V A L * 4 * THEN GO SUB V ' ) : L E I - f - P I / P l : GO SUB VAL "330 7 0 3 I F l « - " r " THEN : P R I N T PAP
AL * 1 6 0 * t RETURN * : GO BUB V A L " 7 0 " : LET f-PI-Pl ER 6 1 A T 2 1 , 0 1 • PRESS A
I V 0 I F b - V A L * 2 * THEN PRINT s ( 4 0 0 GO TO V A L " 3 2 0 " KEY " : OUT V A L "234",V
x , V A L " 2 " > : P R I N T AT x . V A L "17") 3 0 0 INPUT * B / B A R ( 1 - 8 ) I " | b a r AL " 3 1 " : POKE VAL " 6 3 1 1 6 " , V A L "2
s i x , V A L " 2 " > / b l k i : GO SUB V A L " 1 5 0 2 I F b a r C P I / P I OR b a r > V A L '8* 3 3 " : POKE V A L " 6 3 1 1 7 " , V A L "90":
V 6 ' : GO SUB V A L ' 1 6 0 * : RETURN THEN GO TO V A L " 5 0 0 " PAUSE P I - P i : R A N D O M I Z E USR V A L •
195 P R I N I s ( x , b > : GO SUB V A L * 1 5 0 4 BEEP V A L V 0 1 " , V A L " 1 2 " : PR 6 3 1 1 3 " : P R I N T AT VAL "21",PI-PI,
6li m: RETURN INT PAPER V A L ' 6 * I AT VAL • 1 1 • , V ,: RETURN
196 LET b » - S T R » ( » ( x , V A L '2*1/b AL " 8 " I b a r : RETURN 7 0 7 I F ! • < > • ! • THEN RETURN
Ik) 3 1 0 INPUT "BLK/B:"iblk 7 1 0 LET s p - P I - P I : LET c - V A L "23
197 FOR c - P I / P I TO V A L "6"-LEN 3 1 2 I F b l k O P I / P I AND b l k O V A L 2 9 6 " : FUR a - P I / P I TO VAL " 8 " : Lfc
b » : P R I N T • " > : N E X T c : RETURN " 2 * AND b l k O V A L " 4 " AND b l k O V A T d(a,PI/PI)-c-VAL " 2 3 2 9 3 " : FOR
199 RETURN L * 8 * THEN GO TO VAL " 3 1 0 " b - P I / P I TO VAL " 8 "
7 0 0 BEEP VAL " . 1 " , V A L " 1 2 " : PRI 314 PRINT PAPER V A L " 6 " I AT V A L 711 IP p * ( a , b ) - * • OR p « ( a , b ) > *
NT PAPER VAL * 6 * i I N K V A L " 2 " I A "12",VAL ' B ' l b l k : LET fl-PI/Pi: •" (HEN LET s p - s p t P I / P l : 0 0 TO
T PI-PI,VAL '26*I'PLAY " : GO SU GO SUB VAL " 4 0 " : BEEP VAL ".01* VAL "743"
B VAL " 6 0 8 * , V A L " 1 2 * : RETURN 712 LEI d-I(a-1)*8>»b-sp
202 PRINT PAPER VAL " 6 " ] I N K P 3 3 0 I F t - P l / P I THEN LET b - b a r : 7 1 3 I F s ( V A L p * ( a , b ) + 1 . 3 1 - 0 THE
I - P I J AT V A l - 2 0 * , V A L "0"|"1-PLAY GO TO V A L " 3 8 0 " N POKE c , s ( V A L p«<a,b)+l,l>
/RECORD 'TAT V 720 IF s(VAL p * ( « , b ) + l , 3 ) - l THE
3 6 0 I F p » ( ( ( ( x ! - V A L " I I " ) #VAL *
N POKE c , s ( V A L p*(a,b)•1,1)*133
AL " 2 1 " , V A L "0")
"2-PLAYBACK 2")*yl/VAL "S'l-VAL "3"1-" 723 LEI c—c•1
• : PAUSE P I / P i : " THEN GO 10 VAL "580"
7 3 0 POKE c , • ( V A L p«(a,b>*l,2>
PAUSE P I - P I : L E T 1 I N K E Y * 3 6 1 L E T b - P I - P I : FOR a - 1 TO 8 :
733 LET c - c + 1
2BS I F ! • - • ! * THEN PRINT PAPE IF p * ( ( ( 1 * 1 - 1 1 t # 2 1 + y l / 8 ) - 3 , a ) • "
H VAL " 6 " t I N K P I - P I ) AT V A L '20'
737 POKE c , at VAL p « t a , b ) M , 4 )
* I HEN NEXT A
738 IF •(VAL p * ( a , b ) • 1 , 4 ) < > 0 TH
,PI-PI)" I-6-NOTES 9-EXIT 3 6 2 I F a - 9 THEN GO f O VAL " 5 7 0
EN POKE c | ( P E E K c)+128
• I AT VAL * 2 1 • . P I - P I I *
0-TOGGLE RECORD O N / O F F ": 363 IF p«((((xl-ll>*2)•yl/8»-5, 7 3 9 LET c - c + 1
LET a - U S R VAL - 6 3 3 0 0 * : I F a<VAL •l-"«" THEN OO TO VAL "380" 7 4 3 NEXT b : NEXT a
•Aseee' then poke a,pi-pi 3 6 3 L E T b - b + s ( ( V A L p « ( ( ( ( x 1 - 11 I 7 4 6 I F s - P I - P I THEN POKE VAL *
206 I F 1 * - " 1 " THEN GO TO VAL * *2)+yl/8)-3,a))+1,2)/blk: NEXT a 63119",d
7 4 7 I F s - P I / P I THEN POKE VAL "
202* 3 7 0 I F b O b t r THEN BEEP VAL " .
i * , v a l " - 1 2 " : l e ' t f - p i / p i : go su 6 3 1 1 9 " , d + P I / P I : POKE c*PI/PI,VAL
2 1 0 I F l » - " 2 " THEN PRINT PAPE
M VAL " 6 " I I N K P I - P I t A I VAL "20" H VAL " 7 0 " : L E T t - V A L " 2 " : GO TO
" 128"
, PI-PI I ' 0 - P L A Y B A C K NUTE 7 3 0 I F a - V A L " 9 " THEN LET a - V A
VAL "370*
• I A f VAL * 2 1 P I - P I T * L *S"
3 8 0 B E E P VAL " . 0 1 " , V A L " 1 2 " : RE
9 - E X I T PLAYBACK NODE *: TORN 7 3 3 FOR a — P I / P I TO VAL " 7 " : LEI
HANUUHIZE USR VAL ' 6 5 4 3 8 ' : GO TO 6 0 0 INPUT " S U R E V ' l L I N E s « : IF d <•,VAL " 2 " ) - d ( a + P I / P I , P I / P I ) -d
VAL ' 2 0 2 * • • < > * y " THEN RETURN ( a , P I / P I » ! , NEXT a
2 2 0 P R I N T AT VAL "20",PI-PI,,,, 601 IF s ( x , I N T P I 1 - P I / P I THEN 736 L E I d ( V A L " 8 " , V A L "2")-(c-V
J 0 0 BEEP VAL ' . I ' , VAL ' 1 2 ' : PR I POKE V A L " 6 3 0 1 0 " , V A L "43" AL " 2 3 2 9 5 " > - d ( V A L *7*,PI/PI)-d tV
NT PAPER VAL ' 6 * 1 I N K V A L '2'IA 602 IF s i x , I N T P I I - P I - P I THEN AL " 7 " , V A L "2")
T P I - P I , V A L * 2 6 * I * BARS' POKE VAL " 6 3 0 1 0 " , V A L "33" / 6 0 BEEP VAL " . 0 1 " , V A l ' 1 2 " : RE
3B3 I F t - P I - P I THEN P R I N T AT V 603 IF s ( x , V A L " 4 " ) « P 1 - P I THEN I URN
AL * 1 7 ' , P I - P I | " C - T O G G L E COUNT (0 FOR a - V A L " 6 3 0 3 0 " TO VAL "63033 8 0 0 BEEP VAL " . 1 " , V A L " 1 2 " : PR1
Ml • - I POKE « , P I - P I : NEXT * : POKE VA Nl PAPER VAL " 6 " J I N K VAL "2"IA
30V I F t - P I / P I THEN P R I N T AT V L *6300J•,VAL M33"+«tx,PI/PI): T PI-PI,VAL "26"I"PROGS"
AL * 1 7 ' , P I - P I | ' C - T O G G L E COUNT ( 0 POKE V A L " 6 5 0 0 5 " , s ( x , V A L "2"): G 8 0 2 P R I N T AT VAL *20",PI-PI|c«<
FF)" O IO 6 0 7 TO VAL " 3 2 " M A ( VAL "21",PI-PI)

35 ZX Computing Monthly • March 1987


c * ( V A L * 3 3 * TO } KEY "J PAUSE PI-Pi: R 140*
8 0 5 0 0 SUB V A L '8V9* A N D O M I Z E USR V A L ' 6 3 2 3 0 * : PRINT 9 0 3 SAVE i * t U D E VAL *3404B*ta(x
6 1 0 I F I N K E Y » - " 6 * AND p x " V A L *2 AT V A L " 2 1 " , P I - P I , , : P R I N T A T VA , P I / P I IttVAL " 2 3 6 * , 1 1 K , V A L *2*»#V
0 * THEN OO SUB V A L * B 9 9 " : L E T p L *21",PI-PI|c*(VAL * 3 3 * TO ) : I AL "236*
x-VAL ' 2 1 GO SUB V A L *899* F p x - V A L ' 2 1 ' THEN P R I N T AT p x , 9 0 4 INPUT ' V t r H y l y / n l V ' l LINE
9 1 2 I F I N K E Y « - * 7 * AND p x = V A t "2 p y l OVER P I / P H " _ " »•: I F » • < > " y * THEN RETURN
1 " THEN GO SUB V A L ' 8 9 9 " : L E T p 833 IF ! • < > • ! • THEN RETURN 903 VERIFY l»CODE
x - V A L " 2 0 * : 0 0 SUB V A L *899" 8 4 0 L E T c - P l / P I : FOR a » V A L • " 3 3 7 9 0 6 OO S U B V A L *33"
8 1 3 I F I N K E Y » - * 8 * AND p y < V A L '3 9 2 * TO V A L - 3 3 9 1 9 * S T E P V A L *2* 9 1 0 INPUT " F l I f n t m t V * t LINE
1* THEN GO SUB V A L " 8 9 9 * : L E T p 842 IF c » ( c > - " 0 " (HEN GU I U 8 b I F L E N 1 • > V A L " 1 0 " THEN GO TO
y-pytPI/PT: GO SUB V A L '899" 1 VAL "910*
8 1 6 I F l N K E Y « - ' 3 ' AND p y > P I - P I B43 PUKE a , d < V A L C * < C > , 1 ) - 1 911 IF l t » ' r ' THEN GO TO V A L *
THEN OO S U B V A L ' 8 9 9 ' : L E T p y - p 830 POKE 1 * 1 , d ( V A L c»Ce>,2)/3: 140*
y-PI/PI: GU SUB V A L *899* LET c - c * l : NEXT a 912 INPUT "StartV*|1: IF 1>VAL
8 1 7 I F I N K E Y » - * 0 * THEN GO SUB 831 IF a-PI-PI THEN POKE a , V A L "119" THEN GO TO V A L *912*
VAL "860" "235" 9 1 3 P R I N T AT V A L *18",PI-PU
8 1 8 I F 1 N K E Y * - * * 1HLN PRINI A 8 3 2 I F a - P I / P I THEN POKE a , V A L 9 1 4 LOAD l « C O D E VAL *34048*M«V
I x , y I OVER P I / P I | ' _ " : GO TO V A L "224" AL "236"
•96* 8 3 3 BEEP VAL * . 0 1 * , V A L *12*i RE 9 1 3 GO TO V A L *33*
8 1 9 I F I N K E Y » « ' o ' THEN 0 0 SUb TURN 9 3 0 I F U O V A L * 8 * THEN LET k - k
VAL *BJ0* 8 6 0 INPUT LINE c*(Cpx-VAL *20* •PI/PI
6 2 0 I F « - P I / P l AND 1 N K E Y * " * • ' I »*VAL * 32 " • p y • P I / P 1 1 9 3 3 I F k - V A L " 8 * THEN LET k-Pl
HEN L E I a - P I - P I : P R I N T AT V A L * 8 6 3 LET a-CODE c » t ( p x - V A L *20*1 /PI
I B ' , P I - P I I ' E - T U G G L E END ( S T O P ) •VAL "32* + p y * P I / P I ) 9 6 B L E I t « - i < * < k TO ) * - ! < • ( V A L *2*
BEEP VAL ' . 0 1 ' , VAL "12* 8 6 7 I F a < V A L * 4 8 * OR a > V A L *56* TO k > : P U K E V A L * 6 3 4 3 0 V A L *4 V
B 2 1 I F a - P I - P I AND I N K E Y » - ' a * I THEN GO TO V A L "860" • : FUR a - V A L " 6 3 4 3 1 " 10 V A L *6b4
HEN L E T a - P I / P I : P R I N T AT V A L • 8 7 0 OO TO V A L "800* 3 6 " : POKE a , P E E K I a - P I / P I I - V A L *
I B * , P I - P I I ' E - T O G G L E END ( R E P E A I ) 8 9 9 P R I N T A T p x , p y | OVER P I / P I l 4*#(VAL t*(a-VAL *63430*>>: NEXI
• ! BEEP VAL * . 0 1 " , V A L '12* B E E P V A L " . 0 1 " , V A L " 1 2 " : RE a : POKE V A L * 6 5 4 3 7 * , P I / P I J PRIN
8 2 3 GO TO V A L *810* TURN T A f VAL * 1 2 " , V A L " 2 8 * 1 PAPER 6 f
8 3 0 I N P U T * R o r 1 7 * 1 L I N E 1«.' I 901 INPUr ' F l l a n a m a V ' l L I N E i*i l * t k ) : BEEP VAL " . 0 1 " , V A L "12*:
F 1 • - • r " THEN OUT V A L "234",VAL IF L E N 1*<PI/PI O R L E N 1«>VAL * RETURN
" 3 1 " : PRINT PAPER VAL * 6 * | A T V 10* T H E N GU T O V A L " 9 0 1 "
AL " 2 1 " . P I - P I I * PRESS A 902 IF l»-*r* THEN GO TO V A L *

Listing 2
2 3 0 DATA 33,24,96,126,87,62,43, 42,203,1279
203,676 4 9 0 DATA 79,40,43,203,87,40,44,
2 6 0 DATA 122,32,8,62,33,93,122, 203,739
198,674 5 0 0 DATA 95,40,45,203,103,40,46
3 REM M i n i S t u d i o MC L O A D E R 2 7 0 DATA 133,87,123,30,43,254,1 ,62,634
10 C L E A R 4 « 4 : FOR a - 6 3 0 0 0 TO 6 22,30,862 5 1 0 DATA 239,219,254,203,103,40
3 4 8 8 S T E P 8 : L E T d » 0 : FOR b - a TO 2 8 0 DATA 36,234,33,126,87,62,31 ,43,203,1304
a * 7 : READ c : L E T d - d + c : POKE b , ,30,681 5 2 0 DATA 93,40,44,203,87,40,43,
c : N E X T b ! READ c : I F d < > c THEN 2 9 0 DATA 32,234,203,122,40,5,62 703,737
GO TO 3 0 ,7,743 0 3 0 DATA 79,40,62,203,71,40,60,
13 NEXT a 3 0 0 DATA 30,32,234,122,30,38,23 24,379
20 PRINT 'SAVING* 4,33,855 3 4 0 DATA 206,38,170,255,24,33,5
3 0 SAVE *MSCODE*CODE 63000,496 3 1 0 DATA 126,203,127,32,14,30,6 8,171,975
4 0 STOP 3,234,871 3 5 0 DATA 233,24,28,58,172,255,2
3 0 P R I N T " T H E R E I S AN ERROR I N 3 2 0 DATA 30,66,254,50,67,254,36 4,23,839
THE C O D E , P L E A S E CHECK D A T A * ,68,839 5 6 0 DATA 38,173,235,24,18,58,17
6 0 STOP 3 3 0 DATA 234,24,20,203,191,30,6 4,233,1013
1 0 0 DATA 243,33,0,133,6,4,197,6 6,234,1062 3 7 0 DATA 24,13,38,173,255,24,8,
,622 3 4 0 DATA 62,6,50,65,254,62,16,5 58,6I5
1 1 0 DATA 0,197,33,6,8,219,234,2 0,563 5 8 0 DATA 176,255,24,3,58,177,25
03,922 3 3 0 DATA 67,234,62,254,30,68,23 3,30,998
1 2 0 DATA 119,40.4,203,193,24,2, 4,229,1238 3 9 0 DATA 66,234,243,213,197,203
203,790 3 6 0 DATA 197,213,203,24,254,209 ,24,234,1438
1 3 0 DATA 131,203,11,16,240,113, ,193,225,1320 6 0 0 DATA 193,209,241,203,66,40,
6,1,723 3 7 0 DATA 16,138,201,35,94,203,1 132,24,1128
1 4 0 DATA 16,234,193,16,228,193, 23,43,873 610 DATA 23,231,201,203,66,40,4
1 6 , 2 2 2 , I 138 3 8 0 DATA 40,133,24,4,203,91,254 ,22,812
1 3 0 DATA 231,201,0,0,0,0,0,0,45 ,201,972 6 2 0 DATA 0,24,4,14,1,22,233,62,
2 3 9 0 DATA 62,62,219,254,230,31,2 382
1 6 0 DATA 243,62,231,219,234,230 38,31,1127 6 3 0 DATA 239,219,234,203,71,40,
,31,238,1308 4 0 0 DATA 40,242,201,0,0,0,0,0,4 248,193,1469
1 7 0 DATA 31,87,33,0,133,6,4,197 83 6 4 0 DATA 23,233,6,233,2,12,62,2
,491 4 1 0 DATA 0,0,33,0,132,126,22,0, 31,844
1 8 0 DATA 6,0,197,33,94,6,0,203, 313 6 3 0 DATA 183,40,3,195,23,253,22
349 4 2 0 DATA 95,1,253,90,233,9,214, ,0,723
1 9 0 DATA 67,40,6,62,31,211,254, 224,1123 6 6 0 DATA 24,249,49,41,33,29,21,
24,693 4 3 0 DAI A 4 0 , 2 4 0 , 2 1 4 , 3 1 , 2 0 0 , 3 4 , 9 13,439
2 0 0 DATA 4,62,7,211,254,203,11, 2,234,1103 6 7 0 DATA 3,1,6,253,14,1,62,239,
16,768 4 4 0 DATA 233,33,126,50,95,254,2 581
2 1 0 DATA 238,6,0,16,234,193,16, 29,205,1229 6 8 0 DATA 219,234,203,79,200,203
226,949 4 3 0 DATA 91,234,225,33,62,62,21 ,71,32,1261
7 2 0 DATA 62,231,219,234,230,31, 9,234,1202 6 9 0 DATA 243,10,30,66,234,214,0
238,31,1296 4 6 0 DATA 230,31,238,31,192,24,2 .200,1039
2 3 0 DATA 146,32,3,193,16,209,23 14,0,960 7 0 0 DATA 197,203,24,254,193,12,
1,201,1033 4 7 0 DATA 0,0,0,0,243,22,0,62,32 121,214,1220
2 4 0 DATA 193,231,201,33,235,90, 7 710 DATA 231,200,24,226,0,0,0,0
6,63,1094 480 DATA 247,219,234,203,71,40, ,681

36 ZX C o m p u t i n g Monthly • M a r c h 1987
ABSORBER

There are thirty copies


of Martech's Cosmic
Shock Absorber to be
won.
C o s m i c Shock Absorber is a
would-be Superhero with
aspirations to Join the
Supermans a n d Batmans ot this
world. Unfortunately he must
serve his apprenticeship by
taking on foes such as
rampaging carrots a r m e d with
machine guns a n d legions of
bouncing balls. Cosmic Shock
Absorber may b e lacking super-
strength a n d superabilitles, but
with your help he c a n make it
into the Superhero class.
There are thirty copies ot
Martech's ofl-beat 3-D shoot 'em
up to be won. a n d all you have
to do is n a m e the superheroes
who fought the following three
supervlllains.
a) The Penguin
bj lex Luthor
c) Emperor Ming
Just put the names ot the Cosmic Shock Absorber C o m p e t i t i o n
various victorious superheroes
against the appropriate letter on The vanquishing superheroes are:
the entry coupon.
The competition Is o p e n to all a)
ZX readers except employees of
Argus Specialist Publications, b)
Chase Web a n d Martech. The
editor's decision is final a n d no c)
correspondence c a n b e entered
into Name
Send your entries to Cosmic
a.
Shock Absorber Competition. ZX Address
Computing Monthly. No 1
Golden Square. London W1R 3AB
S
o
Please remember to put your
answers on your entry envelope. Send your entries to Cosmic Shock Absorber Competition, ZX

o
The closing d a t e for entries is Computing, No 1 Golden Square, London W1R 3AB
April 10th.

37 ZX Computing Monthly • March 1987


There are few (actors to lake was that it looked a bit d a t e d really stand up any more being
KONAMI'S Into accounf when setting up
your shot. You c a n choose to
but was stilt tun to play.
The same is true of Lunar Jet-
about the same standard as the
average budget game.
GOLF hook, slice or hit straight a n d
the only external influence Is
man, the sequel to Jetpac This
was Ultimate's first 48k g a m e
So. whilst the two Jet Man
titles are a tribute to the quality
igl a n d is a bit more complicated,
£7.95 wind speed a n d direction, of early Ultimate games, this
which in practice, seemed to though it's still essentially a compilation as a whole doesn't
Konami's Goll is played over a have negligible effect on shots shoot 'em up. This time around really stand out when com-
course at Ihe KCC' — the When close to the green the dis- the Jet Man has a moon buggy pared to some ol the others
Konaml Country Club. This play shifts to a n overhead view to control, as well as a number a v a i l a b l e On the other hand,
rather grand title hides the (act a n d lactors such as slope a n d ol objects to collect a n d aliens the second Ultimate Compila-
that all we have here are nine speed of the green come into to blast. But while the two Jet tion (reviewed elsewhere In this
holes a n d a competent but un- play. These are lairly easy to Man games have remained en- issue) Is worth a closer look.
inspired golt simulation. c o m p e n s a t e (or a n d don't joyable over the years, the other
All the basic features we've really a d d to the difficulty. two titles on the tape have
now come to expect ore here, Konaml's Golf Is only worth d a t e d rather badly.

pnnn
options tor one player a n d two shelling out money (or is you PSSST is a variation on the
players (stroke and matchplay). are desperate (o get a Golt shool "em up style In which you
choice ol clubs from a b a g of simulation into your software have to spray worms with a
13. a n animated golfer whack- collection but with only nine number of spray cans while

IJUUIJ
ing the ball off the tee a n d holes, its a p p e a l may fall olf Trans Am was a n early driving
powermeter to adiust the length very quickly. gome. Neither ol these gomes
of shot.
The display design attempts I u p i'UP
to cram everything onto a 0O754.5 O O * 14C o o o o o c
single screen. The overall view
ol the fairway on which you
choose the direction of the ball III

Iiuul)
could just as well have been
put on a separate screen,
leaving more room tor the main
golfers eye view screen display.

LUULi

success
00 LEAGUE You start off In ihe murky
depths of Division 4 obscurity
CHALLENGE a n d by buying players, training
hard a n d selecting a strong
Atlantis Software
£1.99 team, you hopefully rise to glory
In the First Division.
This g a m e (alls into Ihe "so b a d Your form c a n be decidedly
It's g o o d category". It's a foot- quirky, surprise defeats followed
ball manager type game, so It by a run of victories after your
the lure ot l e a g u e tables a n d players suddenly gains lots of
learn selection problems holds stamina a n d fitness points for no
server all but one of them load no fascinalion, read no further. apparent reason, league Chal-
in under 16K as they were pro- If you've stayed on you c a n lenge will certainly win no

<
duced in the days when Ihe 16K be initiated Into the mysteries ol awards but if you c a n excuse
Spectrum was still going strong). a strange new g a m e — "Zom- the graphics, the time It will take
Ultimate's very first game was
o Jelpoc, a simple but highly
bie Laserbali". When League
Challenge attempts to capture
to gulae your team to the top
will justify the budget price.
£ US Gold have just released two
addictive shoot 'em up in which
you have to collect fuel pods
the b i g match atmosphere we
are treated to some very o d d
compilation tapes of old Ulti- a n d treasure on o number of g r a p h i c s i n d e e d . Hulking
mate gomes, both entitled planets all ol which are swarm- shapes lumber across the pitch
Master Games (and with only ing with deadly aliens At the aimlessly like zombies but just
a the track listing allowing you to lime, Jetpac was h e a d a n d when you think they ore totally
tell the two apart). The first of the shoulders above any other lifeless a laser b e a m darts out
two contains the first (our games g a m e for the new Spectrum

15881) - w *
ol one of the zombies boots a n d
O that Uitimate ever produced, m a c h i n e with smooth, fast ani- tries to zap the u n d e a d goal-
UJ which were themselves mation a n d g o o d sound effects keeper. He misses a n d it's a
I showed Jetpac to someone
O. amongst the first proper arcade
games ever produced (or the who didn't see It when It first
goal. These bizarre graphics
d e c i d e your league a n d c u p
CO Spectrum ( a n d II m e m o r y c a m e out a n d their reaction
LM
monsters to avoid, all by resort-
ing to the fiendish strategy of >,iv.i\vI',.i'.. i'.. i'.. I'.,p.,n. i'..i<;i',. i'.. !>,. i',.i'...y.: IUIM.IVi'..'*.•;'\> 1'.
jumping left a n d right. As Manic '•'••••V' , - v ''' v , '-•••+ • * ' ..'I'll
Miner clones g o its fairly aver-
a g e — the graphics are a little
on the small side but it's clear
e n o u g h what's g o i n g on, a n d
Alternative Software is the latest some ot the obstacles require a ' * « ift U1 * ". •''.
company to start p r o d u c i n g bit ol thought lo get past. * I, iiraF>it*v7w)
ti» 1'.« I* t'U'^J'',- h•),''V
1/ti,'
budget software, a n d so tar Henry's Hoard isn't g o i n g to MttcuLtfu ^ i',. t i w t'.. MK! i'.; i<_; i',: >•.
their releases for the Spectrum set the world alight, but I've fit IUif>
hove been passable versions ot always h a d a weak spot for
pretty o l d a r c a d e games. platform g a m e s (they're so
Henry's Hoard, possibly the besl m u c h more refined than those
ol their first b a t c h ol games is a nasty shoot 'em ups). so it gets
return to that o l d tavourlte, the
platform g a m e [how long is it
since you've p l a y e d one ol
a modest thumbs-up.
i.; |i.:'tv> fV *
'. • " V<; '. i < VI }\t •\i ,•ti > *.
m
:t'.;l<. (>. il; us i'.i1
m wi', i»
those?).
It's a 50 screen g a m e In
which you have to send Henry
(o small sprite with wiggly legs)
oft In search of items of treasure
scattered around the various I *
rooms. As is the way with these
gomes there are lots ot little
pnnnft HENRV'S HOME
spikey o b j e c t s , stairways,
moving walkways a n d d e a d l y
liuulJ
b l a c k o b l o n g that blots out his power. This leaves you tree to ex- nondescript monsters in yet
Immediate surroundings. How- plore Ihe platforms a n d rooms another completely silent plat-
ever, you haven't long lo admire ol Ihe Castle Graystoke until you form screened a r c a d e adven-
this a m a z i n g breakthrough In find Orko with the correct in- ture.
Spectrum graphics, you are gredients a n d defeat Skeletor. Another wasted licence.
attacked by o n e of Skeletor's Unfortunately, neither the
minions, Before you c a n say g a m e p l a y or the graphics cap-
When US G o l d b o u g h t the "you don't mess with He-man' ture the atmosphere ot He-man
licence for ihls hit TV series it you've d e s p a t c h e d it with a or the rest of the Masters of the
was u n d e c i d e d w h i c h type ot single blow a n d a d d e d one to Universe crew a n d your joystick
game w o u l d best suit the your "skulls c r a c k e d " total. This or keyboard c o u l d b e control-
heroic battles of He-man. The total lies below Ihe main screen ling anybody or anything (even
result Is two games. This a r c a d e display a l o n g with the state of a pumpkin) while you battle
adventure a n d a Scoff Adams your b o d y shield, the objects
style adventure. you carry, your sword stalus a n d
Skeletor, arch-enemy of He- the selt explanatory countdown
man has found the all-powerful of the moons till doom.
lllearth stone a n d has over- The way to the castle is short
thrown Castle Grayskull. You but hazardous a n d lies beyond
have to enter the castle llnd Ihe two spiked pits complete with
stone a n d defeat Skeletor a n d deadly electrical pulses
tree the land. b e a m i n g across them. Well
Orko tried to trap Skeletor in timed leaps will lead you to the i. ' W
an imprison cell which back- key a n d then the castle but mis-
tired trapping Orko in one of the time one ol the three jumps you
castle's stone pillars. You must must make a n d your quest -i t'51>( i>t
find him a n d give the right in- comes lo a n abrupt end.
gredients that he will use to turn Inside the castle you are met
your sword into Atom Smasher! by even more nosiies that leap,
On screen. He-man is repre- tly, j u m p a n d fire at you but
sented by a feeble yellow c l a d most c a n be d e s p a t c h e d by
figure that is surrounded by a ycur fully c h a r g e d sword ot

6'WOHD &« A » U 'J H I BC.'Vy &Jt I E £ D


UK V i t ' J CRACKED
MOONS' * 1L DOOM
• r\
laser firing fighter.

m-mmmm
K
Saving fhe world isn't going

wrtmmm
to be as easy as it sounds as

1 % • 5 ? In the year 2056 it was com-


you must lake out e a c h ol the
eight satellites that are threat-
ening the world's major cities.
\- Jk Jl • (
plete. The Star Wars defence
system was at last in position
They c a n only be destroyed by
a Blaster that is only obtained
m a k i n g war on Earth Impos- o n c e you have destroyed a
sible. Weapons were scrapped staggering 144 aliens a n d then
as the Earth settled down to a you've only got one shott
lite of leisure. Until then you must zap
The d a y belore the sche- aliens a n d restrict Ihe destruc-
d u l e d white Christmas they tion by intercepting the satellite
came. An alien torce that took bombs with a Dynoray (ob-
over Ihe defence satellites that tained after only 12 kills).
» ; i were t h e n t u r n e d into a A menu ol options c a n cus-
w e a p o n a i m e d at Earth. tomise ihe b l a n d display by
One m a n c o u l d save the a d d i n g a score a n d energy dis-
world. In Ouicksilva's shoot play as well as a VDU that
everything that moves game, reports ol heavy alien activity
you are Nick Diamond. Xeno a n d a m a p to plot your course
c h a m p i o n a n d the only m a n The normal Spectrum blips
left who c a n fly a n Eagle Class a n d beeps as the aliens swirl
past c a n be improved by the p l a c e your original supply. It Grasshopper a major achieve-
sound option II you hove a you have only one pylon then ment.
Spectrum 128 or a Fuller or d a m a g e Is not repaired, losing Finally should you want to
Tlmedata add-on. them all brings the inevitable save your efforts then you only
However, most of these end as your energy Is quickly have to copy down a code
options are little more than drained away. number that c a n be entered
standard lectures In other The screen display shows when a new g o m e Is loaded.
games a n d can't help a g a m e your view down the tubes a n d
that (alls short of expectations Instruments that show your
a n d takes a n a g e to play current energy level, score a n d
any objects, pylons^ shields a n d
weapons you may have collec-
ted.
Lurking underneath Ihe 3D
SC 00042 display is yet another maze
HT 00042 g a m e that has been complic-
ated by the unpleasant key
controls that make steering the

[
SC IU
7 IOO
population. You lly over Ihe i.tCH©
scrolling surface ot the planets, »F J b Z
wn.nnDt
a v o i d i n g trees a n d other
objects in order to blast the
«fc Pa
computers' control centres, a n d
h tS
XCEL was originally released as after e a c h b o m b i n g run there's
a full price game about a year a Gataxians style wave ot
until you get Ihe hang ot It, but
a g o a n d II didn't exactly set
the world alight, however as a
attacking aliens.
The action Isn't as tost a n d AGENT X It's all so fast a n d furious that it's
tun anyway
budget litle it's worth a look ft turious as some other shoot *em Mastertronlc
ups. a n d at times the g a m e £1.99 The next sections of the
looks a little doted, but there g a m e take you Into the m a d
are about 300 planetary loca- This turned out to be a pleasant professor's lair, where you have
tions to blast your way through surprise — another Masterlronlc lo take on the security men
so at least there's a fair bit ot c h e a p l e that compares well (using a n exlremely sllly-looklng
variety In the g a m e Mind you. with many ot the expensive flying kick manoeuvre) a n d
I d i d tind it a bit Irritating that
e a c h time you get killed you
g ames thai were churned out
>r Christmas.
then Into confrontation with the
prof himself as he tries to brain
hove lo go right back to the Agent X loads in several you with anything that comes to
start of a particular sequence parts, e a c h piece of c o d i n g hand.
(rather lhan carrying on from being a different stage In the It's all rather silly really, but
where you got killed), which gome, a n d so the g a m e man- the graphics are good. Ihe
means that you c a n find your- ages to pack qulle a lot into just g a m e Is nicely presented a n d
R f f w H I • i H Ml* 4*T>fVQMBS,|uC> £1.99's worth of cassette. The the programmer's clearly kept
self g o i n g over the same
you're into shoot 'em ups. The screens over a n d over again. g a m e starls with a furious car his tongue well Into his cheek,
g a m e has a few bells a n d Still, the g a m e is nicely pre- chase as Agent X sets off in hot making this Mastertronlc's best
whistles atlached in the form ot sented a n d at £1.99 Is much pursuit of the k i d n a p p e d Presi- budget g a m e for months.
some icons, but these don't better value than when it was dent. The g r a p h i c s In this
really shift the emphasis ot the first released. sequence are excellent — a
5 g a m e trom much other than
straightforward alien blasting.
large a n d nicely detailed 3D
representation of a highway
with various vehicles travelling
Ihe action lakes place on a in both directions a n d getting
group of planets which are con- In the way.
trolled by Sentinel computers
a n d it's up lo you to fly from The action is a bit chaotic,
planet to planet b o m b i n g a n d getting through Ihls section
everything In sight in order to Is more luck that Judgement
return control to the human

S
< its way through the maze

o THE HIVE Just running through the

s
maze is hard enough without
Firebird the need to m a p (to make sure
£9.95 you don't run around in circles)
The Queen of the hive must be a n d avoid or blast the nasties
slain a n d it's your job to d o it In that are naturally out to get you.
Firebird's latest twist to the maze These include swarms ot elec-
OS g a m e The Queen is In Ihe
middle of a three dimensional
tronic insects, giant demonic
jailers a n d spikes, webs a n d
hive that turns a n d spirals stings that block your path.
O through eight complex a n d en- Contact with any ol these
iangied levels. will drain your energy that c a n
tou pilot a versatile electro- be replenished in you have two
to
Q . mechanical Grasshopper ship or more energy pylons that can
that runs, jumps a n d crouches be found in the maze to re-
LUJj1
A software 'legend 1
from U.S. Gold?

Crystal Castles
U.S. Gold
£8.99

.S. Gold are releasing this as


a 'special limited edition' in an
attempt to convince us all that if
we don't rush out a n d buy it
straight away we will all have
missed our c h a n c e to
experience this "software
legend" (their advertising
people certainly know their stuff). g a m e Is a little more monster on the screen has
The trouble with legends is c o m p l i c a t e d . Benlley has the h o m e d in on the hapless bear
that they don't always measure ability to j u m p over monsters a n d sent him to bear heaven. As
up to their reputations when you rather than simply moving left/ a result of this fiddliness the
eventually get to see them in the right, forward/backward, a n d it game's addictlveness suffers
flesh — especially when they're quite often happens that he will considerably. Instead of trying to
being translated from a move b e h i n d a section of the d o an exact conversion the
dedicated a r c a d e m a c h i n e 'castle' structure. When this programmers of the Spectrum
onlo the Spectrum. I'd never happens the program allows version would have d o n e well to
seen the a r c a d e original but you to 'see through' the structure keep the castle structures a little
someone told me that it was a so that you c a n follow Bentley's less c o m p l i c a t e d (along the
sort of 3D Pac Man. That movements although you are lines of Addictlve's Klrel, which
sounded promising, despite the unable fo see the actual path h a d similar 3D structures but
(act that the main character Is that he is on. ones which were drawn larger
The d r a w b a c k with using 3D a n d more clearly, yet were still
structures is that the graphics complex enough to present a
are that m u c h more challenge).
c o m p l i c a t e d a n d In order to get By trying to p a c k a bit too
everything onto the screen the m u c h onto the Spectrum's screen
moving figures a n d blocks which the programmers have m a d e
make up the structures all have the g a m e too c r a m p e d to allow
to b e quite small. This makes the you to build up some speed
g a m e quite fiddly to control. a n d get really Involved In It.
Most of the paths around the
screen are so narrow that it's not
at all unusual for Bentley to
shoot past one when you
actually want him to turn into It.

GOOD
So you have to slowly d o u b l e
b a c k a n d line him up precisely,
before g o i n g down the path. By
this time, of course, every

called Bentley Bear, so in went


the tape.
The 3D Pac M a n description
was fairly accurate in that
Bentley's task is to wander
around a three-dimensional
'castle* which is m a d e up of
structures of ramps a n d
walkways which b e c o m e
Increasingly complex on e a c h
successive screen, collecting
little pills which are dotted
along the main pathways just as
In Pac Man. As you'd expect
there are various types of
monsters that home In on
Bentley (I hate that name),
Including things that look like
cenllpedes, trees a n d ghosts,
and also additional Items of
Ireasure that c a n be collected
or left where they are In order to
block the path of the pursuing
monsters
Of course, as e a c h screen is
In three dimensions rather than
the original Pac Man's two, the

41 ZX Computing Monthly • March 1987


LLLLJ

Ray Elder presents


51-1
more programming Scroll Relocate
gems from ZX readers. One of the things I like about
this column is the way readers
often send In a n d share
modifications of previous
M/C Break programs. R. Dorsetl of Middlesex
sent us a short cut which solves
F i r s t up this month is a Two minor points to note: First a problem he found with Lelf
program Irom Andrew Vellacott you will have to reinitialise the Kvernhusvik's Scroll program in
of Essex who got so fed up with routine e a c h time after BREAK is the DEC 86 Issue.
his machine c o d e programs pressed with RANDOMIZE USR
getting stuck in infinite loops 32377. a n d secondly, m a c h i n e The original program Is
during development that he c o d e or BASIC loader programs located in the printer buffer, not
wrote this short routine which must not o c c u p y the addresses g o o d news for printer owners, so
makes use of the Spectrum from 32348 to 32375. Mr. Dorsett's program will
interrupt m o d e two to scan for relocate it to anywhere in
A useful a i d for machine memory that you may desire.
the BREAK key being pressed. c o d e programmers.
First (providing you have a
M/C Brook
M/C copy ol the program on
tape) CLEAR ramtop to the new
start address-1. As an example
1 REM M/C B r e a k we will imagine that we are
g o i n g to move the routine to
10 DATA 2 3 3 , 2 4 3 , 2 4 3 , 6 2 , 1 2 7 , 2 1 9 address 60000, therefore CLEAR
, 2 3 4 , 2 0 3 , 7 1 , 3 2 , 1 3 , 6 2 , 2 3 4 , 2 1 9 , 2 3 4 59999.
Now LOAD "SCROLL m/c"
, 2 0 3 , 7 1 , 3 2 , 7 , 2 4 1 , 2 3 7 , 6 6 , 2 5 1 , 1 9 3 , CODE newaddress (EG LOAD
"SCROLL" CODE 60000).
3, 19,24 1 , 2 3 1 , 2 0 1 , 6 2 , 4 0 , 2 3 7 , 7 1 , 2 3 Type in the RELOCATE program
a n d RUN it.
7 , 9 4 , 2 0 1 Finally SAVE "SCROLL" CODE
20 CLEAR 32347 newaddress, 159. (EG. SAVE
"SCROLL" CODE 60000,159).
30 RESTORE: TOR i = 3 2 3 4 0 TO 323 Don't forget to c h a n g e the
line In your program wnlch
75: READ a: POKE i , a : NEXT i defines the function to call the
new address. (EG. DEF FN
x(aS,1,w,a)=USR newaddress.
Some alterations to the way in
Font 1 REM Font which the program works c a n
10 LCT M C = 6 0 0 0 0 : L E T C H R = 5 5 0 0 0 also be m a d e : POKE
2 0 FOR <f=MC TO M C < 2 6 : READ a ! start+125,201 will return the
program to BASIC if a key is
POKE f , a l NEXT f pressed or when the scrolling is
3 0 DATA 17,0,200,237,03,51,72, finished. POKE start+118,0:POKE
33,0,60,126,10,254,60,32,»3,62,1 start+125,201 prevents Ihe
program from b e i n g interrupted
26, 18, 1 9 , 3 5 , 1 2 4 , 2 5 4 , 6 4 , 3 2 , - 1 6 , 2 0 a n d returns to basic when
1 finished. POKE start+118.192:POKE
4 0 RANDOMIZE CHR: POKE MC* 1 , P E start+125,195 a n d the program
will oniy return to basic when a
EK 2 3 6 7 0 : POKE M C * 2 , P E E K 2 3 6 7 1 : key is pressed.
L E T L=U5R MC

Scroll Rolocalo
Font
9899 REM S c r o l l R e l o c a t e
R. Glavas has been a regular 9900 INPUT " S t a r t A d d r e s s " J s
contributor from the start, his
offering this month is a variation 9 9 1 0 TOR n=1 TO 7: READ a,fc: LET
on a frequently used theme, that
of a redesigned character set. a = a i s ! LET b = b • s
What we liked about this set was
that it was c h a n g e d subtly, 9 9 2 0 POKE a , b - 2 5 6 * I N T ( b / 2 5 6 ) : P
giving a more square effect. OKE a * 1 , I N T ( b / 2 5 6 )
Simply enter Ihe program a n d
RUN it. the character set resides 9925 NEXT n
at address 55000.
9930 DATA 1 0 , 1 2 0 , 2 7 , 1 4 4 , 3 0 , 1 5 9 , 5
9 , 1 6 1 , 7 0 , 1 5 9 , 7 3 , 1 6 1 , 1 2 6 , 0

42 ZX C o m p u t i n g Monthly • March 1987


m
Mirror Perspective
Mark Batts who resides In
S. Neili of Angus, Scotland, Watford sent us this little
provides us with a means of program which could enhance
turning the screen i m a g e in a title screens or messages
mere 19 bytes of m a c h i n e code.
Mirror 1
Enter the program MIRROR 1 a n d
RUN it. Type NEW a n d enter 1 REM Mirror 1
MIRROR 2 w h i c h will 10 CLEAR 29999 Perspective
demonstrate the effect. Note that 20 FOR n-30O00 TO 3O01O 3 REM P r o s p e c t H p
the Machine c o d e is l o c a t e d at 30 READ * : POKC n,«! NEXT n
CO DATA 33,0,64,78,6,0,203,17, 10 LET X - 0 : LET Y - 0 : LCT C-2:
address 30000 a n d c a n b e
saved by SAVE "MIRROR" CODE 31,I 6, 231,119,33,124,234,00,32,2 LET F - 1 6 G
30000,19. 41,201 13 INPUT " T y p o a n o r i p l e a s e n
o more than 6 l e t t e r s "iA*
Specific sections of the
2 0 I F L E N A S > 6 T H E N GO TO 1 3
screeen c a n b e mirrored by Mirror 2
4 0 P R I N T AT O , 0 1 A *
POKING the following values to 1 RCM Mirror
the addresses shown. x=start 3 0 FOR S - 0 TO L E H A « K O
io l e t a - i r a : LET b-90: LET r -
address 6 0 FOR T - 1 7 3 TO 1 6 8 S T E P - 1
OO
Whole screen — POKE 30 ron n-0 TO r 7 0 I F P O I N T C S , T > - 1 T H E N GO S U
x+2,64:POKE x+15,88 40 LET I " TUT 1.3' SOI? ( r Kr n)!rt» B 110
Top third - POKE x+2.64;POKE 12) GO L C T Y " Y » C : N C X T T : L C T Y - 0 :
x+15,72 SO LCT * - b t * / 2 L C T X - X * E : NCXT S
Middle third - POKE x+2,72:POKE CO PLOT «tn,x: DRAU O, * 1 0 0 LET F - 9 0 : LCT E - 2 : LCT X - 0 :
x+15,80 70 PLOT «-n,x: DRAU O, GO TO 3 0
00 NEXT r>: RANDOMIZE USR OOO
Bottom third - POKE x+2,80:POKE 03 STOP
110 PLOT X,F-(Y»C): DRAW O.E
x+15,88 90 SAVE * DEMO" LINE 9O0O: GAVE 120 p l o t x , r y : d r a u c , o
Top two thirds - POKE •Mirror"CODE 30000,19 1 3 0 PLOT X i C . F - Y : DRAU 0 , - C
x+2,64:POKE x+15,80 92 STOP 1 4 0 PLOT X « E , F - ( Y * C ) : DRAU C,0
Bottom two thirds - POKE 9000 CLEAR 29999: LOAD "" CODE : 143 LET C-Et.05
x+2.72:POKE x+15.88 RUN 1 6 0 RCTURN

Reflections
Versatile Input on the wrong line) a n d GO SUB
The above mentioned Mr. Batts the routine, for example:
supplied us with a p r o g r a m in a Being a b l e to position a n input 100 PRINT AT 5,10:'ENTER YOUR
previous issue c a l l e d reflections prompt a n d then a c c e p t NAME '|:GO SUB 9000
which reader Stephen Carr has characters a n d display them The resultant entry will b e
modified a n d improved. Another immediately after the prompt returned in variable iS. The
attractive way of presenting short ANYWHERE on screen a n d not variable z$ is used by the
text messages. just at the bottom of the screen routine to act as a temporary
c a n give your program a input string, the DELETE key will
professional touch. delete a character a n d the
Rolloctlons
Andrew Smith of Cleveland ENTER key terminates the input. A
provides us with a means of nice bit of well error t r a p p e d
I REM Reflections d o i n g just that. BASIC
10 L E T Y - 0 The subroutine is l o c a t e d at And so o n c e a g a i n we reach
20 B O R D E R 0 lines 9000 plus but c a n be the e n d of another collection of
30 P A P E R 0 renumbered to suit your own small, but beautifully formed,
40 INK 7 needs. To use It set the screen programs. All that remains is to
30 CLS position a n d provide a prompt nominate our Short Cut of the
(ensure you e n d wilh a month. The prize goes to Mr.
6 0 P R I N T " T y p e in a w o r d u p t o
semicolon else the input will b e Nelll for his Mirror program.
ton • " • l e t t e r s l o n g
70 INPUT A* Input 9 0 0 0 REM INrUT
80 CLS 9 0 3 0 LET i « = " •
7 0 IF L E N A O 1 0 T H E N G O T O 6 0 9 0 4 0 PAUSE 2 0 : P R I N T 07CR l j {
100 P R I N T I N K 0J A T 0 , 0 ( A « CIIRW GJ
110 P L O T 0 , 7 5
9 0 5 0 LCT z « = I N K E Y « : I T z * = " " THE
120 D R A U 2 5 5 , 0
130 L E T D - L E N A * * 0 N GO TO 9 0 4 0
140 L E T X ™ 1 2 7 - < D * 3 / 2 > 9 0 6 0 DEEP . 0 0 5 , 3 0
ISO T O R S - 0 T O D*fi 9 0 7 0 I F z * = C H R « 13 THEN P R I N T "
160 F O R T - 1 6 8 T O 1 7 5 " t C H R * 3 ! : RETURN
170 I F P O I N T < S , T > - 1 T H E N G O S U 9 0 G 0 I F z«=CHRfc 12 AND LEN i t t ) 0
B 240 THEN LET i * = i « < TO LEN i * 1 ) : PR
100 L E T Y - Y » 5
I N T " " } C H R « GJCHRS 8 | I CNR* 6
190 N E X T T
200 L E T Y - 0
I : GO TO 9 1 2 0
210 LET X - X + 3 9 0 9 0 I F z * - C H R * 12 OR zC Z" "OR
220 N E X T S z « ) " z " THEN GO TO 9 1 2 0
230 S T O P
240 TOR L - 3 TO 1 S T E P 1
9 1 1 0 LET i « = i « i r ® : P R I N T z
CltR* 8
o

o
250 CIRCLE X,75«Y,L 9 1 2 0 I T I N K E Y « = Z ® THEN PAUSE 5 :
260 CIRCLE X,75-Y,L P R I N T OVER H " _ " J C H R « 0 | ! GO TO
270
200
NEXT L
RETURN
9120
9 1 3 0 GO TO 904.0
x
00

43 ZX Computing Monthly • M a r c h 1987


um

however have a limited life span

/ 1 «2
Cobra a n d tend to d i s a p p e a r just when
Ocean you n e e d them most.
£7.95 C o b r a Is a very fast, very well
a n i m a t e d g a m e that's hard to
master at first simply because
Sylvester Stallone you are confronted by so many
bizarre c o m i c hatchet men.
converted into fun You are given a minlscule
three lives to start out with a n d
cartoon character . . . a d d i t i o n a l lives c a n b e
o b t a i n e d at 10,000 points a n d
Strange but true as further u p the high score table.
The game, which c a n b e
Ocean unveil an off- p l a y e d with keyboard or joystick,
is really enjoyable a n d a r c a d e
beat spin-off they are m a d e up of obese fans who are looking for
wrestlers, o l d ladies touting something a little bit different
T h i s Is a movie spin off g a m e lethal bazookas, knife throwing will not b e disappointed.
that stands up in its own right, assassins a n d the like This Is not Unfortunately the I m a g e created
perhaps because It bears so to mention the turbo c h a r g e d by the film Is misleading.
little similarity to the original prams that ram Cobretti a n d Stallone on the inlay cover with
film. sap his energy. his laser sighted m a c h i n e gun
Cobra, a vigilante c o p movie, If all this sounds a bit wacky, a n d the hard m a n phraseology
with Stallone as the star, was a wait for the plot. Okay . . . "Crime is a disease. He's the
failure by Rambo standards Cobretti has to rescue fop cure", look a bit silly o n c e you've
although If c o n t a i n e d the by fashion m o d e l Ingrid Knutson got the Stallone figure
now standard quota of mindless from the clutches of the evil s c a m p e r i n g up the platforms
v i o l e n c e O c e a n have m a d e no Night Slasher. All right so far but after the beefburger.
attempt to make a c a r b o n c o p y In order to d o this he's got to find It m a y well hove b e e n the
8 a m e of the film a n d In fact
obra is a tongue In cheek
send up with a ludicrous plot,
weapons which are h i d d e n
Inside beefburgers at certain
points in the three p l a y i n g areas
intention to send the whole thing
up a n d that's fine but those who
like their destructive blasting
absurd characters a n d carloon (city, country a n d a factory). untainted by any form of fun
logic Quite why a knife, pistol, a n d h a d better stick to the film.
The cop. "Cobretti" Is a laser sighted m a c h i n e gun are
musclebound chunky sprite who c o n c e a l e d In this way is a
Is Initially a r m e d only with a mystery. Anyway shaking off the
devastating headbutt which if mince from the weapons,
he connects send his enemies Cobretti must rescue Ingrid a n d

i;
w i n g i n g off screen In the completely d e c i m a t e the
direction they c a m e on. As tor attackers before progressing to
these legions of psychopaths, the next section. The weapons

/ \ / \ / \ / \ A /
5 I ^t ' J i I
§ /\/\/\/ /'V /

•cs- V'i
ft Y, ft*. | „:-'
11 j? # M & V « f< l

o
UJ &$ F. & lUt
A
vri'i.L o i n j j i n j s^ w ; KtlMfcKlt &KOOL UOi-ISG r4
£L
CO

44 ZX C o m p u t i n g Monthly • M a r c h 1987
It's time to test your
space pilot prowess at
the Academy.

tXJter an unfortunate incident


on 61 Cygnus w h e n a rookie
pilot messed u p his a p p r o a c h
and half the planet w h e n he style mission in w h i c h you must missiles a n d d e l a y b o m b s then
tried to dock with its central destroy robot factories in all a d d whatever anti-missiles, j u m p
reactor the G a l - c o r p set u p the quadrants c o n n e c t e d by j u m p units, scanners, compasses a n d
Academy. Its a i m was to train pads. trackers that you n e e d a n d c a n
rookie pilots to p r o d u c e a n elile Whichever mission you afford. Finally you c a n customise
corps ot pilots a n d prevent such choose ( a n d you have to tackle the skimmer view screen a n d
disasters while providing a new them all sooner or later) you'll save your a m a z i n g design to
challenge a n d sequel to CRL's b e a t t a c k e d by robot droids of t a p e for further missions.
excellent Tau Ceti. both familiar a n d new designs. O n c e the newly constructed
To graduate trom the Four types of laser firing hunters GCS Rambo h a d w i p e d out the
Academy a c a d e t must l e a d the assault supported by robot factories a n d mines that
complete 20 missions a n d mines, super mines, droids. stood in it's way I was ready for
achieve an a v e r a g e rating ot hoppers, guardians, trackers a n d the next set of missions but still a
over 90%! The missions are aptly n a m e d kamikazes. l o n g way to g o before
grouped into five levels of four Therefore it's important that your graduation. A h e a d lay the
missions that are stored on a G a l - c o r p skimmer is a r m e d a n d dubious delights ot such
separate d a t a tape. Most players shielded for the mission. Three encounters as " . . . at the OK
won't need this t a p e as they'll skimmers are ready for take off, Cor rail". "Don't ftinic". "Hide a n d
still be struggling with the first e a c h offering a different r a n g e Seek", a n d "Mission Improbable".
four that are l o a d e d in with the of e q u i p m e n t from the GCS Finally as a bonus the
master program. Wilson c o m p l e t e with j u m p unit g a m e p a c k also includes a star
A main menu allows you to to the w e a p o n s a n d shields tank m a p p r o g r a m so you c a n find
register as an A c a d e m y c a d e t , known as the GCS Lenin. your favourite stars a n d
view a n d select Ihe missions If neither of these or the constellations, A g a m e featuring
and the skimmers to c o m p l e t e b a l a n c e d GCS Lincoln suit your 20 missions e a c h as c h a l l e n g i n g
them. needs or tactics then you c a n as the original g a m e doesn't
The first four missions r a n g e design your own as l o n g as it n e e d a bonus program.
from the less than subtle "If It remains within the weight a n d
Moves . . . " annihilation run to cost limits set d o w n by the
the search through a minefield Academy.
for base mission c a l l e d "Softly, Your basic skimmer consists ot
Softly". "Meltdown" is a r a c e low, m e d i u m or high powered
against time to close d o w n a laser, m a i n drive, shield a n d
critical reactor on a polar world, steering units w h i c h you c a n
finally "Red Dawn" a Tau Ceti then arm with missiles, anti-

ACADE
(mm

n-<t L •[ filth •I |n.ti' 14 ' i


- I .
>nnn
0.t;.
>• m m c i t
1. <*t>IKl> O.K. jiK.ilit I t llrl
Action above and Convoy Attack
below the waves in US How you attack the convoy a b l e to plot your attack run, so
d e p e n d s on the conditions (day/ as the destroyer is stuck
Gold's sub simulation. night) a n d how well it's helplessly on the wrong side of
protected. An unprotected the convoy, g i v i n g you a c h a n c e
convoy is easy a n d you c a n to strike a n d get away. Your
Silent Service steam up to it at full s p e e d a n d
blast a n y t h i n g that moves.
periscope also gives you speed,
course a n d distance of target so
US Gold (Microprose) Although you should attack its you c a n make every shot count.
£9.95 centre, so you c a n use both sets If there's more than o n e
of t o r p e d o tubes. Be r e a d y for a destroyer a n d you can't find a
c h a s e t h o u g h as the convoy will g a p then you'll have to take one
C o m m a n d i n g a US submarine scatter. out. This isn't g o i n g to b e easy as
during the Second World War, A protected convoy is more of you'll only have one shot before
your mission is to sink as m a n y a c h a l l e n g e particularly if the destroyer locks onto you with
Japanese ships as possible there's more than o n e destroyer. it's d e a d l y d e p t h charges. Then
while a v o i d i n g the attention of Now you must stalk the convoy it's DIVE, DIVE. DIVE, as you h e a d
enemy destroyers. at slower speeds while k e e p i n g for the safety of the depths.
Armed with 34 torpedoes a n d a narrow profile to the ships to Cutting the e n g i n e will start the
a 4" deck g u n you must hunt a v o i d radar detection.
down the enemy s h i p p i n g In a
variety of scenarios. These r a n g e
from the training mission to
hunting convoys In the South
China Seas.

silent routine a n d you c a n even


release fake debris to d e c e i v e a
persistent destroyer. When you
Your p e r i s c o p e is fitted with a think the coast is clear, b e g i n to
target identifier that you should stalk the convoy a g a i n .
use to m a p out the convoy a n d Your sub c a n travel twice as
p l a n your attack. You should b e quickly on the surface a n d you
Before any w o u l d - b e
Submarine C o m m a n d e r c a n
help America win the war
(again!) he must first learn how
to control the ship. This means
frantic use of the k e y b o a r d
(despite the frequent mentions to
a Joystick In the instructions). In
all, 33 key controls must b e
mastered before you c a n terrify
Japanese s h i p p i n g , a n d so
practice is essential using the
torpedo/gun training mission. The
object Is simply to destroy the
lour old c a r g o ships that are
anchored In position to m a k e
things easlerl
Pressing C a p s Shift a n d o n e
of the number keys moves you
between the b a t l l e stations on
your submarine, that i n c l u d e a
navigation map, b r i d g e a n d
deck gun, p e r i s c o p e Tor a i m i n g
and firing torpedoes, instrument
and g a u g e displays, d a m a g e
reports a n d a captain's log that
reports your "kills".
As you move b e t w e e n these
stations you must plot your
course control, your e n g i n e
speeds a n d submarine depths
as well as p l a n n i n g your attack
run.
|l[i!l|| .ii'lliHllillili^Jw
r* v.i, <wh» «fcu Hb*.

T O R P E D O D FTT H C O M P U T E R
T H P G E T RFTNGE: YDS
TPRGET SPEED: Kts
&NG L E OR I B O U : DEG
LEHD ANGLE ; D e g
THRGET COURSE: DEQ

should d o this whenever possible


as It saves fhe all-important
battery power. Lose that a n d you
lose your sub.
C o n q u e r the set scenarios
a n d you're r e a d y for the ultimate

An excellent simulation that


will have you sparring with
destroyers until the early hours.

missions — the war patrols, w h e n


f i n d i n g the enemy, is as difficult
as sinking them. Obviously,
lengthy voyages c a n b e time
c o n s u m i n g so you c a n s p e e d
u p the a c t i o n to two, three or
four times the n o r m a l rate until
you're r e a d y for b a f f l e
Finally you c a n m a k e things
S
<
almost impossible for yourself by
a d d i n g in skill a n d reality levels
w h i c h i n c l u d e limited visibility,
d u d torpedoes, zig-zagging
0 convoys, no on-ship repairs a n d

1
the worrying expert destroyers.
The g a m e cassette is
a c c o m p a n i e d by two instruction
sheets that e x p l a i n almost
a everything from the control keys
to convoy routes, tactics a n d a
submarine c o m m a n d e r s ' spotters
O g u i d e to J a p a n e s e shipping.
a. When these sheets are f o l d e d
there's barely room for the g a m e
cassetle In the box!
Brian Beckett with news
ot Digital Precision's a b o u t the c o m p e t i t i o n e m e r g e c o n s i d e r a b l e effort to p r o d u c e
r e g u l a r l y from b o t h sides a n d s u p o r t i n g d o c u m e n t a t i o n that
new flirbocharge are likely to Increase as time will e n a b l e n o n - p r o g r a m m e r s (or
goes by. A l t h o u g h it m i g h t prove those less familiar with all the
Compiler. a bit c o n f u s i n g to a l l those t e c h n i c a l ins a n d outs a n d
p o t e n t i a l customers out there, it various specialist lingo) to get
C o m p i l e r Wars" d o e s not star promises to b e l o a d s of fun for the best out ot it. There are
Harrison Ford, neither d o e s it reviewers b o r e d with s t a n d a r d PR d e t a i l e d e x p l a n a t i o n s of some of
feature overly c u t e robots or releases. the b a c k g r o u n d maths a n d
assorted other h u m a n o l d s . Obviously we'll b e l o o k i n g at s u p p o r t i n g functions w h i c h
aliens, Jedl or whatever. Nor is it Turbo w h e n it does c o m e out u n d e r l i e w h a t is g o i n g o n a n d
a c o m p u t e r g a m e in the strict but, for a sneak preview, here m u c h of the m a n u a l is c l e a r l y
sense — a l t h o u g h it c e r t a i n l y is a r e s o m e of the (many) features a i m e d at those not intimately
in a wider o n e — but it promises Digital is promising. N o r m a l l y I'd a q u a i n t e d with the QL.
to be Just as a m u s i n g a n d hesitate a bit before writing Professional software p a c k a g e d
probably just as l o n g lasting. A a b o u t a p r o d u c t I haven't seen for all users is a virtue that
while ago. Liberation Software yet but. as Digital r e g u l a r l y c o m m e n d s itself a n d Digital
released QLiberator, a releases h i g h q u a l i t y p a c k a g e s (which always takes this
superBASIC c o m p i l e r to c o m p e t e tor the QL. I h a v e little d o u b t a p p r o a c h ) deserves full marks
with Digital Precision's long- that the p r o d u c t will live u p to its for d o i n g this as a matter of
standing a n d very well r e c e i v e d promises. First of all. Turbo will course. The Turbo m a n u a l excels
Supercharge. Both sell at £60 b e multi-tasking (as is in this respect.
and although QLiberator lacks QLiberator) a n d — a real favour If you want another QL to p l a y
some of supercharge's finer to the user — will lack that a r o u n d with the n e t w o r k i n g
features and Is generally slow It infernal lenslok security system facility ( w h i c h has sort ot d i e d a
Is a good product which f o u n d o n Supercharge. It d e a t h ) or simply b e c a u s e you
attracted a lot of interest. promises to b e m u c h faster t h a n haven't yet got a r o u n d to b u y i n g
In the meantime, Digital was Supercharge a n d Is s a i d to b e one. I've seen them for sale at
developing Turbocharge. This far m o r e user-friendly with a n £100 o n the High Street. Push it a
son-of-Supercharge, m e g a - extensive m e n u a n d built-in bit a n d you c a n p r o b a b l y get
compiler is d u e for release at flexibility of use. It will adjust for o n e for a fair bit less if the
any t i m e A c t u a l l y It's b e e n d u e m a n y structural faults in the retailer has gotten sick of the
(or release at a n y t i m e tor a programs under compilation t h i n g o n his shelves ( a n d I
while, a n d s o m e reviewers have a n d list corrections m a d e . If suspect most have) a n d wants to
taken to n e e d l i n g the c o m p a n y you're w o r k i n g with a n get rid of it. More importantly, it
a bit. A c c o r d i n g to Digital. Turbo u n e x p a n d e d QL. lengthy o u g h t to b e time to g o s h o p p i n g
wilt b e significantly faster t h a n p r o g r a m s a r e c o m p i l e d in tor a b a r g a i n - b a s e m e n t m e m o r y
Supercharge a n d h a v e m o d u l e s as w o u l d b e e x p e c t e d e x p a n s i o n and/or disc interface.
numerous a d d i t i o n a l features but there a r e a n u m b e r of A l t h o u g h most (but by no m e a n s
and refinements, d e s i g n e d to features d e s i g n e d to minimise all) of the QL software is
justify the p a c k a g e ' s sub-title of the d r a w b a c k s a n d difficulties of d e s i g n e d for a n u n e x p a n d e d
the " e n c y c l o c o m p l l e r " . Turbo will the task. Turbo tasks will b e a b l e m a c h i n e , just a b o u t all the g o o d
sell for £84.95 w h i c h I n c l u d e s to b o t h r e a d a n d write Into other stuft works a lot better or easier
Turbo Toolkit, a p a c k a g e of over Turbo tasks. Error w a r n i n g s will with extra RAM. There's a lot of
60 new c o m m a n d s d e s i g n e d to b e r e p o r t e d by line,, statement c o m p e t i n g m e m o r y expansions
extend a n d otherwise a n d position. This Is just the b a r e o n the market a n d most of the
supplement Superbasic. Turbo surface of what's p r o m i s e d but c o m p a n i e s are p r o b a b l y
Toolkit is a v a i l a b l e now (for gives a hint of what's c o m i n g b e g i n n i n g to flirt with the i d e a of
£24.95) but there doesn't seem over the horizon in the g e t t i n g rid of a n y surplus stock
much point In b u y i n g It yet if (hopefully) very near future. as the market starts to d e c l i n e .
you're at all Interested In g e t t i n g I have, however, seen the At the last c o u p l e ot
the Turbo c o m p i l e r w h e n It's manual which, although nobody Microfairs. I n o t i c e d q u i t e a tew
ready. Digital has sent m e the is g o i n g to g o out a n d s p e n d M e d i c disc Interface/extra RAM
manual so Turbo must b e a b o u t £85 for a b u n c h of A4 sheets, is m o d u l e s in service. M e d i c m a d e
d u e since they never bother to a n impressive feature in its o w n a n excellent p a c k a g e but sadly
write me unless they're a b o u t to right. The w h o l e t h i n g is s o m e ran into difficulties but
release s o m e t h i n g (I didn't even 350 p a g e s ( i n c l u d i n g the Turbo it looks like some of the o r i g i n a l
get a Christmas c a r d ) for m e to Toolkit m a n u a l ) a n d is very well stock of m o d u l e s has surfaced. If
tell you about, written in a r e a d a b l e a n d you get a c h a n c e to get o n e
In the m e a n t i m e , the war of humorous style. There a r e s o m e c h e a p l y ( a n d I wouldn't p a y
words is h e a t i n g up. Digital has c a r t o o n s a n d a glossary ( w h i c h m u c h lor o n e now) get it
apparently b e e n a n n o y i n g I n c l u d e s a d e f i n i t i o n ol b e c a u s e it's p r o b a b l y the best
Liberation Software by constantly "reviewer" that makes u p for in d e s i g n e d QL e x p a n s i o n
referring to QLiberator as a a c c u r a c y w h a t it lacks in b a s i c p a c k a g e I've seen. You will have
"pseudo-compiler". Digital has h u m a n kindness) c l e a r l y to tind s o m e o n e to m a i n t a i n or
responded with a d e n i a l d e s i g n e d to a m u s e as well as repair it but, II you c a n get it
(possibly at a lawyer's request) Inform. The point is that Digital c h e a p e n o u g h . It's well worth it
slating that the term is simply a obviously wants to sell its as l o n g as you m a k e sure it
technical o n e referring to the p r o d u c t to as w i d e a c i r c l e as works to b e g i n with.
"pseudo c o d e " Interpreted by possible a n d has g o n e to a
QLiberator c o m p a r e d to the
"true 68088 c o d e " p r o d u c e d by
"Irue" compilers like (surprise) CO

Q [COLUMN
Supercharge a n d the u p - c o m l n g
compller-to-end-all-compilers, s
Turbo. The funny bit was that this UI
gentlemanly qualifier was
printed In a t y p e f a c e a n d layout Z
so small that It p r a c t i c a l l y takes
a high resolution m i c r o s c o p e to
reaalt at all. Beastly remarks 0

49 ZX C o m p u t i n g M o n t h l y • M a r c h 1987
SPEC WORD Listing

The third and final part


48/128 most Centronics printers (with
ZX S p v c t r u n H E X D U M P
SPECUORD 4 8 / / t 2BK L I S T
44000
•14 O0O
4401 A
44074
44032
44040
44040
30 33 44 44 44 44 33
0 0 2 0 AO AO AO AO 3 A
00 43 43 43 43 43 73
01) 2E AO AC 6 8 6 8 7 E
0 0 33 44 44 4 7 44 34
0 0 3 8 A 4 A 4 BO A 0 A 2
0 0 74 4 6 63 4 4 44 74
3
00
OO
00
00
00
OO
00
A6
DA
CE
00
7A
7A
ID

of Stuart Nicholls' menu 44056 0 0 4 9 D3 3 3 3 3 3 3 4 9


built-in software for the Kempston 44064 0 0 9C 3 0 3 0 3 0 3 0 9C
00
00
66
00
interface) a n d RAM! file facilities 44072
44IIC0
0 0 3A 4 3 3 A 4 A 4 A 3A
0 0 7 4 6 A AA 2 A 2A 2 4
00 A3

driven word processor


00 P0
for the 128K Spectrum. 4-irjnn 0 0 c e AO AC AO AO CE 00 40
44096 0 0 7E 4 2 4 2 4 2 4 2 7E 00 04
To LOAD the program use 44904 00 00 00 20 00 00 00 OO 20
including the operating LOAD " " (48K/+) or select the 4491 7
44970
00 00 00 00 00 00 00
0 0 OO 0 0 0 0 0 O OO 0 0
00
00
00
00
Tape Loader option on the 128K 44920 00 00 00 00 00 00 00 00 00

manual. Spectrum. The program loads In


44936
44944
0 0 0 0 OO 0 0 0 0 0 0 0 0
00 00 00 00 00 00 00
00
00
00
00
two sections a n d will display the 44937
44960
0 0 0 0 OO 0 0 0 0 0 0 0 0
00 00 00 00 00 00 00
00
00
00
00
"Whls month we put the finishing copyright screen when l o a d i n g 4496A
44""6
0 0 0 0 o o 0 0 0 0 0 0 00
n o 0 0 0 0 0 0 0 0 00 00
00
00
00
00
touches to Specword with the is complete. The program will 44°n.| 0 0 0O 0 0 0 0 0 0 0 0 0 0 00 00
44"><J7
final chunk of m a c h i n e c o d e recognise automatically which 43000
0 0 0 0 0 0 0 4 7E 0 4 0 8
0 0 O0 1 0 2 0 7E 2 0 1 0
00
00
96
OL
followed by full instructions on version of the Spectrum is b e i n g 41000
4".0 1 !
00 00 00 00 00 00 00
00 00 00 00 00 00 00
00
00
00
00
operating the utility. used. Press any key to start. 43074 00 00 00 00 00 00 00 00 00
00 00 00 00 00 0 0 00
If you have followed the Specword is menu driven a n d 43032
43040 0 0 0 0 0 0 0 0 0 0 00 0 0 00
00
00
program through you should by users of the 128K Spectrum will 43040
43036
0 0 0 0 OO 0 0 0 0 00 0 0
00 00 00 00 00 00 00
00
00
00
00
now have saved a BASIC listing, have no trouble in using the 43064 0 0 1 0 1 0 10 I I 0 O 1 0 00 30
43077 0 0 14 1 4 00 0 0 0 0 0 0
a n d a m a c h i n e c o d e listing menu system as it is exactly the 43000 0 0 14 3 E 14 3 t 14 0 0
00
00
2B
BO
(HEXDUMP LIST TWO). same as the Sinclair start up 43000
43096
0 0 1 0 3C 3 0 3 0 14 7 8
0 0 7 2 3 4 7 0 I E 2A 4E
10
00
70
D4
Full instructions on entering menus. 43104 0 0 20 3 0 24 3 8 46 36 00 6A
4 3 1 12 0 0 I O 1 0 7 0 0 0 0 O 00
a n d Saving Specword were MENUS: To select a menu 43170 0 0 0 0 I D 1 0 10 1 0 0 0
00
00
40
30
printed in Part 1 (ZX January) but option use the UP/DOWN arrow 431 20
431 3*
0 0 2 0 10 10 10 10 2 0
0 0 2 4 1 0 7E 1 8 2 4 00
00
00
80
F6
to r e c a p — Using the HEXLOADER keys to move the blue select line 431 44 0 8 0 0 3 E 0 0 0 0 00 00 3E
0 0 0 0 0 0 0 0 0 0 1 0 10
used to enter LIST TWO last to your c h o i c e then press ENTER. 43137
431 60 0 0 0 0 0 0 7 E 0 0 0 0 OO
20
00
40
7f
month enter this month's This will either take you to a sub 43160
4 3 1 76
0 0 0 0 0 0 0 0 0 0 10 1 0
0 0 0 7 0 4 0 0 1 0 20 4 0
00
00
20
71.
m a c h i n e c o d e as HEXDUMP LIST menu or into word processing. 43104 0 0 3C 4 6 4 A 3 2 6 2 3C 00 BC
0 0 0 0 3 0 08 08 OO 3 E 00
3. This is the m a i n menu a n d 43192
43700 0 0 3C 4 2 0 7 3C 4 0 7E 00
96
7A
Save this block of c o d e as should the program stop d u e to 43200
43216
0 0 3C 4 2 I C 0 7 4 2 3C
0 0 4 0 4 8 4 0 7 E OO OO
00
00
IA
3t
"code2" CODE 44800,2519. any input errors then type "goto 43274 0 0 7 E 4 0 7C 0 ? 4 2 3C 00 BA
0 0 3C 4 0 7C 4 2 4 2 3C
When you are h a p p y that all menu" to restart from this menu. 43737
43240 0 0 7 E 0 2 0 4 0 0 10 2 0
00
0O
SO
BC
has been saved a n d verified (The program will error trap most 43740
43736
0 0 3C 4 2 3C 4 2 4 2 3C
0 0 3C 4 2 4 2 3E 0 2 3C
00
00
7A
3C
Ihen reset your Spectrum a n d illegal Inputs but cannot trap 43764 0 0 0 0 10 10 0 0 t o 10 OO 40
0 0 0 0 1 0 1 0 0 0 10 1 0
enter CLEAR 32767 as a direct those associated with illegal 43277
43200 0 0 1 0 2 0 4 0 7 0 10 0 0
20
00
60
A0
command. RAM! file names). 43200
43796
0 0 0 0 7 E 0 0 7E 0 0 00
0 0 0 8 0 4 0 2 0 4 08 00
00
00
FC
1A
l o a d the BASIC PROGRAM. This menu has the following 4 9 3 M 00 3C 4 2 0C 10 00 1 0 00 AA
43317 0 0 3C 3 E 3 6 3 E 4 0 3 E 00 CC
Load the C o d e c o d e 1. options: 43320 0 0 3C 4 2 4 2 7 E 4 2 4 2 00 C2
Load the CODE c o d e 2. 1) Create. 45320
43336
0 0 7C 4 2 7C 4 7 4 2 7C
0 0 3C 4 2 4 0 4 0 4 2 3C
00
00
3A
7C
Finally SAVE the c o m p l e t e Before word processing c a n 43344 0 0 7C 4 2 4 2 4 2 4 2 ? C 00 00
0 0 7 E 4 0 7C 4 0 4 0 7E
program using "SAVE b e g i n the text file b e i n g created 43332
43360 0 0 7E 4 0 7C 4 0 4 0 4 0
00
00
30
r a
"WP48/+/128" LINE 9800:SAVE must have a title. Selecting this 43360
43376
00 3€ 4 0 3E 4 2 4 2 3E
00 47 42 42 42 42
00
00
9E
CO
"specode 128" CODE option will p r o d u c e a sub menu 45304 0 0 3£ 0 0 0 0 o n 0 8 3E 00 9C
0 0 IE 04 04 04 44 3 8 00
32768,14600. asking you to confirm your 43392
434O0 00 44 48 70 4 8 44 42 00

CA
Should any of the functions c h o i c e or Exit b a c k to the 43400 00 40 4 0 40 40 40 76 00 BE
00 7 6 4 9 4 9 4 9 4 9 4 9 00
not work then the m a c h i n e c o d e Document menu. If you wish to 4 3 4 16
43424 00 4 2 6 2 3 2 4 A 4 6 4 2 OO
E3
CO
c a n b e c h e c k e d using the continue to create a d o c u m e n t 43432
43440
00 3C 4 2 4 2 4 7 4 2 3C
00 7C 4 2 4 2 7C 4 0 4 0
oo
00
00
FC
HEXLOADER/HEXDUMP d u a l just press ENTER. You will now be 43440 00 3C 4 2 3 2 4 A 4 6 3 E 00 9E
00 7C 4 2 4 2 7C 4 4 4 2
program. The HEXDUMP option prompted to enter a title for your 43436
43464 00 3C 4 0 3C 0 2 4 2 3C
00
0O
02
38
will print out to the screen or document. This must comprise of 4347?
43480
OO 3 E 0 0 08 08 08 08
00 4 2 4 2 4 7 4 7 4 2 3C
00 66
00 86
printer any block of memory in valid ascii characters only (no 43400 0 0 4 7 4 2 4 2 4 2 2 4 18 00 44
the same form as the HEXDUMP keywords). 43496
43304
00 49 4 9 49 49 49 36
0 0 4 2 2 4 1 8 18 2 4 4 2
00
oo
A3
FC
LISTS 2 a n d 3. (The easiest way to The title given to your 43312
43370
0 0 4 1 2 2 1 4 0 0 0 8 OB
0 0 7 E 0 4 80 1 0 2 0 7 E
00
00
OF
30
c h e c k the c o d e is to c o m p a r e d o c u m e n t will stay with the 43320 0 0 t c 1 0 1 8 1 0 10 I C 00 78
0 0 4 0 20 1 0 0 0 0 4 02
checksum bytes). d o c u m e n t at all times unless the 43336
43344 0 0 3 0 08 0 0 08 0 8 3 8
oo
00
7E
90
If all has gone well you are retitle option is used (see Save). 43332
43360
00 0 0 1C 2 A 00 0 0 0 8
0 0 0 0 00 00 0 0 00
00
FF
66
FF
now ready to use Specword. The title will a p p e a r on the top 43360 OO I C 2 8 7 0 2 0 2 0 ? e oo 72
0 0 00 1C 0 2 I C 7 2 I E
tine of your text for reference. 43376
43304 0 0 2 0 2 0 3C 2 2 2 2 3C
00
00
7C
FC
Specword 48/128 O n c e a title has b e e n given 43392
43600
0 0 0 0 I E 20 2 « 7 0 I E
0 0 0 2 02 I E 2 2 2 2 I E
00
00
9C
04
a n d a c c e p t e d you will enter the
Operating Manual word processing m o d e (see
43600
43616
43674
OO 00 I C 2 7 3E 7 0 I E
0 0 0 E 10 3C 10 10 1 0
00 0 0 I E 2 2 2 2 I E 0 2
00
00
BA
OA
3C BE
Specword has b e e n d e s i g n e d to Word Processing). 43632
43640
0 0 7 0 2 0 3C 2 2 2 2 2 2
0 0 0 8 0 0 18 0 0 0 6 3E
00
00
E2
6E
include all the functions most 2) Load. 43640 0 0 0 4 0 0 0C 0 4 0 4 0 4 38 34
00 20 20 74 38 24 7 2
c o m m o n l y n e e d e d by the home This will give a sub menu for 43636
43664 0 0 7 0 2 0 20 2 0 2 2 I C
00
00
E2
BL
user. For example it has insert/ Loading next files, 43672
43600
OO 0 0 3 6 4 9 4 9 4 9 4 9
0 0 00 2C 3 2 2 2 2 2 22
oo
oo
3A
C4
overwrite modes, wordwrap, find, i) Tape 43600 0 0 0 0 IC 22 22 22 IC 00 9E
0 0 0 0 3C 2 2 2 2 3C 20 20
word count, block delete/move' This option will l o a d a text file 43696
437P4 0 0 0 0 3C 4 4 4 4 3C 0 6 04
FC
0A
copy/print, redefinable from t a p e (the BASIC program 43712
43720
0 0 BP 2C 3 2 2 0 20 20
0 0 0 0 I C 2 0 I C 0 7 3C
00
00
BE
96
Centronics control codes (30), c a n be modified to allow 43720 OO t o 3 ( 1 0 1 0 1 2 OC 00 OA
0 0 0 0 7 7 2 2 2 2 2 6 IA
16K text space (blank lines only M/drives etc to be used), 43736
43744 0 0 0 0 2 2 2 2 2 2 14 0 8
00
00
A6
82
o c c u p y 1 character space), lines il) RAM! 43732
43760
0 0 0 0 4 9 4 9 4 9 4V 3 6
0 0 0 0 2 2 1 4 0 0 14 2 2
oo
00
3A
74
of ANY length from one Owners of 128K Spectrums 43760 00 00 22 22 22 IE 02 3C C2
0 0 0 0 3 E 0 4 0 0 10 3 E
character to the full text length, have the option of Loading a 43776
43704 0 0 te 1 0 2 0 1 0 1 0 0 8
00
00
98
70
margins, thirty-one setable TABS, text flte that has b e e n Saved to 43792
43800
OO 0 6 0 0 0 8 0 0 0 8 0 0
t o 08 0 8 0 4 00 0 8 1 0
00
00
40
44
supports both the ZX printer a n d a RAM! file. This option will

50 ZX C o m p u t i n g Monthly • March 1987


the 'format' see (iii).
45800 00 14 28 00 00 00 00 00 3C 46B8B 00 77 77 77 77 77 77 00 CA
4 3 6 16 OO 10 10 00 00 00 00 00 28 46096 00 00 00 00 00 00 00 00 00 ii) Block.
43924
4383?
FF
FF
Ft
FE
FC
FC
F6
FB
FO
FO
E0
CO
CO
co
80
90
01
01
46904
46912
00
00
00
00
00
00
00
00
00
00
O0
00
00
OO
00
00
00
00 If you have defined a block of
43940 OO 29 28 oo O0 00 oo 00 30
20
46920 00 00 00 00 00 00 00 OO 00 text within the word processor
43848 00 08 oo 10 00 00 00 00 46926 22 22 22 22 22 22 22 22 10
43836 PO 10 IO OB 00 00 00 00 28 46936 00 00 OO OO 00 00 00 00 oo m o d e then this c a n be printed
43664
43872
FF
OO
FE
00
3C
OO
42
OF
3C
00
02
00
7C
09
00
09
35
2F
46944
46932
00
00
00
00
00
00
00
00
00
EE
22
O0
44
00
00
00
66
EE
using this option.
43890 00 00 00 OO 00 00 00 00 oo 46960 00 00 00 00 00 00 22 00 22 iii) Format.
43988 OO 00 00 00 00 00 00 00 00 46968 00 00 oo 00 00 00 00 00 00
43896 00 00 00 00 oo 00 00 00 00 46976 00 77 53 35 33 35 77 00 42 This will p r o d u c e a sub menu
43904
4391?
OO
00
OO
00
oo
00
00
00
oo
00
00
00
oo
00
00
00
00
00
46994
46992
00
oo
66
77
22
1 1
22
1 1
22
77
22
44
77
77
00
00
65
CD
which will allow you to set up
43920
43920
00 00
00
00
oo
00
00
00
00
00
00
00
00
00
00
oo
00
47000 00 77 1 1 33 11 11 77 ao 34 the format of text to be printed.
00 47006 00 44 33 35 77 1 1 1 1 00 87
43936 00 00 oo 00 00 00 oo 00 00 47016 00 77 44 77 11 1 1 77 00 CD a) Lines per page.
43944
43932
00
00
00
6C
00
FE
00
FE
00
7C
00
36
00
10
00
00
00
2C
47024
47032
00
00
77
77
44
1 1
77
11
33
22
33
22
77
22
oo
00
33
FF
b) Space between lines.
43960 00 10 38 ?c 7C 39 10 00 08 47040 00 77 55 77 35 53 77 00 64 c) Margin.
43960 OO 00 00 00 00 00 00 00 00 47049 00 77 33 33 77 1 1 77 oo 20
43976 oo 09 1C 1C 3E 0B 06 00 QE 47036 00 00 00 22 00 22 00 00 44 d) Start at line no.
43984
43992
oo
OO
00
00
oo
00
oo
F0
OO
09
00
08
oo
08
00
08
00
IB
47064
47072
00
00
00
00
00
£>0
22
00
00
00
22
00
44
00
oo
00
88
00
e) Page no. at TOP.
46000 00 09 09 OF 08 06 06 00 47 4 7000 00 00 00 00 00 00 00 00 00 f) Page no. at BOT.
4600ft oo 09 08 F0 08 08 09 09 30 47090 00 00 00 00 00 00 00 oo OO
46016 oo oo 00 FF 06 08 oo 08 IF 4 7096 00 00 oo 00 00 00 00 00 OO g) Wait between pages.
46024
46032
00
OO
09
08
00
08
OF
FO
00
oo
oo
00
00
00
00
00
27
10
47104
4 7 1 12
00
00
00
77
00
33
00
77
00
33
00
33
00
33
00
00
00
42
h) Auto line feed.
46040 oo 00 00 oo 00 oo 00 00 00 47120 00 77 33
44
66
44
33
44
33
44
77 00 53 i) Exit.
46040 oo 09 OS 00 08 08 06 08 40 47128 oo 77 77 oo FE
46036 00 00 00 FF oo 00 00 00 FF 47136 00 66 33 35 55 55 66 00 20 Against e a c h of these
46064
46072
00
08
00
06
08
00
FF
FF
00
09
oo
09
00
00
00 17
37
47144
47132
00
00
77
77
44
44
77
77
44
44
44
44
77
44
00
00
31
FE
parameters will be printed their
00
46060 00 00 00 00 00 00 00 00 00 47160 00 77 44 44 33 33 77 00 20 current default values. To alter a
47168 00 35 33 77 35 55 33 00 20
46068
46096
00
00
00
00
00
00
00
00
00
Oo
00
00
00
oo
00
OO
00
00 47176 00 77 22 22 22 22 77 00 76 parameter use the UP/DOWN
46104
461 12
00
00
00
oo
00
00
00 00 00 00 00 00 47104
47192
00
00
33
33
1 1
33
1 1
66
t 1
33
1 1
33
77
33
00
oo
EE
OF
arrow keys to p l a c e the blue
00 00 00 00 00 00
46120 00 00 00 00 00 00 00 00 00 47200 00 44 44 44 44 44 77 00 CD cursor line on your c h o i c e then
47209 00 35 77 77 35 55 55 00 42
46128
461 36
CIO
00
00
00
00
00
00
00
00
00
00
00
O0
00
00
00
00
00 47216 00 77 33 33 35 33 33 00 20 enter the new value. Parameters
46144 00
oo
00 00 OO 00 00 00 00 00 47224
47232
oo
00
77
77
33
33
33
33
33
77
33
44
77
44
00
00
42
20
a) to d) require a number value
46132 no 00 O0 00 00 00 00 OO
46160 04} oo 00 00 00 00 00 00 00 47240 00 77 33 53 35 77 33 00 20 a n d will allow inputs ot 0 to 999
47248 00 77 33 33 66 33 35 00 31
46168
46176
oo
00
00
00
00
00
00
oo
00
00
00
00
00
oo
00
00
00
0O 4 7236 00 77 44 77 1 1 33 77 00 OF (after entering your required
46184 oo 00 00 00 00 00 00 00 00 47264
47272
00
00
77
33
22
33
22
33
22
33
22
33
22
77
00
00
21
20
value press ENTER.
46192 oo 00 00 00 oo oo oo 00 00
46200 00 00 00 00 00 oo on 00 00 47290 00 33 33 33 33 33 22 oo CB Should you make a mistake
47288 00 33 33 35 77 77 55 oo 42
46200
46216
00
00
00
no
00
00
00
00
00
00
oo
00
oo
00
00
00
oo
00 47296 00 33 33 22 22 33 33 0O 99 then press DELETE to c a n c e l the
46224 00
00
00
00
00
00
00
oo
00 oo 00 00 00 47304
47312
00
00
33
77
33
1 1
33
22
22
22
22
44
22
77
00
00
63
67
entry. Parameters e) to h) require
46232 00 00 oo 00 00
46240 ao oo oo 00 00 00 oo 00 00 Yes/No enlry. use the Y a n d N
46240
46236
00
00
00
00
00
00
00
00
00
00
00
oo
00
00
00
00
00
00 display a CAT! of RAM files a n d keys to select your choice.
46264 00 00 00 00 00 oo oo 00 00 ask for your choice. 48K/+ When you are h a p p y with all
46272 oo oo oo oo 00 00 00 00 00
46280 00 00 00 00 00 00 00 00 oo owners will be told that this the values then select Exit to
46200
46296
00
00
00
00
00
00
00
00
00
oo
00
oo
oo
oo
00
00
00
00 option is not a v a i l a b l e on their return to the Print menu.
46304 00 oo oo oo 00 00 00 oo oo computer should they attempt to v) Codes.
46312 00 00 00 00 00 00 00 00 oo
46320 00 00 00 00 00 OO oo 00 00 select it. This option will allow you to
46320
46336
00
oo
3C
3C
42
3E
0C
36
lO
3E
00
40
10
3E
00
00
AA
CC
Ml) Exit. alter the printer codes that c a n
46344 FF C3 BD BD 81 DD BD FF 36 Return to the Document menu. be p l a c e d in your text file to
46332 FF 83 1)0 83 BD BD 83 FF BE
46360 FF C3 DD BF BF BD C3 FF 7C 3) Save. control the output of text to a
46360
46376
FF
FF
93
01
BD
BF
BD
83
DD
BF
BD
BF
03
81
FF
FF
FB
CO This option gives a sub menu Centronics printer. For example
46304 FF
FF
81 DF
BF
83
A1
BF BF BF FF FE for Saving text files. <Graphics T > in your text wiil lurn
46392 CI BO BD CI FF 3A
46400 FF DD DD 81 DO BD BD FF 30 i) Tape. on the compressed print m o d e
46400
46416
FF
FF
C1
El
F7
FD
F7
FB
F7
FB
F7
DD
Ct
c?
FF
FF
3C
32
Save a text file to Tape using a n d has the codes:
46424
46432
FF BD B? OF B7 BB DD FF 2E the title as the n a m e for saving. 15/255/255/255 a l l o c a t e d to it
FF BF DF BF BF BF 81 FF 3A
46440 FF 89 D6 B6 B6 06 B6 FF 13 ii) RAM! (each control character must
46440
46436
FF
FF
DD
C3
9D
DD
AD
BD
ns
BD
D9
BO
DD
C3
FF
FF
30
78
Save the text file to RAM! have four codes a l l o c a t e d a n d
46464 FF 83 DD DD 93 BF BF FF FC Again this is only a v a i l a b l e on any unused codes must b e sent
46472 FF C3 BD AD B5 B9 CI FF 5A
46400 FF 03 DD BD 03 BB BD FF F6 the 128K Spectrum. to 255).
4 64 09
46496
FF
FF
C3
CI
DF
F7
C3
F7
FD
F7
BO
F7
C3
F7
FF
FF
co
92 NOTE: All text files will b e saved If your printer requires a
46304 FF bo BO BD BO BD C3 FF 72 with their own parameters intact. different set of control c o d e for
46312 FF BD DD BD BD DD E7 FF B4
46320 FF 86 D6 B6 B6 D6 C9 FF 33 That Is if for example the right compressed characters then use
46320
46336
FF
FF
BD
BE
DB
DD
E7
EB
E7
F7
DB
F7
DD
F7
FF
FF
FC
49 margin has b e e n set a n d Insert this option to c h a n g e the set
46344 FF 81 FD F7 EF DF 01 FF C0 m o d e is off then this will be codes. You c a n even a l l o c a t e
46352 00 00 00 00 OO 00 00 00 00
46360 OO 00 00 OO 00 00 00 00 00 saved with the text so that there other control functions to the
46369
46576
00
00
00
00
oo
Oo
00
OO
oo
00
00
00
00
00
00
00
00
OO
is no n e e d to reset them when Graphics characters. O n c e
46384 00 00 00 00 oo 00 00 00 00 r e l o a d i n g the file. a m e n d e d the codes c a n be
46392 00 00 oo oo 00 00 00 00 OO
46600 FF FF E3 FD E1 DO El FF ?c HI) Retitle. Saved permanently using "Save
46600
46616
FF
FF
DF
FF
DF
EI
C3
DF
DD
DF
DD
DF
C3
El
FF
FF
FC
3C Should you wish to retitle your program'. This will p r o d u c e sub
46624 FF FD FD El DD DD El FF 74 program before saving it then menus to select the Graphics
46632 FF FF E3 DD CI DF El FF 3E
46640 FF F1 EF C3 EF EF EF FF 6E this option will allow just that. For letter required, upper or lower
46640
46636
FF
FF
FF
DF
El
DF
DD
C3
DD
od
El
00
FD
00
C3
FF
3A
16
example you may have l o a d e d case a n d finally a list of the
46664 FF F7 FF E? F7 F7 CI FF OA a d o c u m e n t c a l l e d 'textone' a n d codes for the letter selected for
46672 FF FB FF FD FD FB FB C7 AC
46600 FF DF DF DD C7 DD DD FF 16 after m o d i f y i n g it want to save it you to update.
46608
46696
FF
FF
DF
FF
DF
C9
DF
B6
OF
B6
DD
D6
E3
B6
FF
FF
3A
9E
under a different name. Each sub menu has a n Exit
46704 FF FF D3 CD DO 00 DD FF 34 iv) Program. option which will return you to
46712 FF FF F3 DD DD DD E3 FF 5A
46726 FF FF C3 DD DD C3 DF DF FC If you have customized the previous menu,
46728 FF FF C3 BD BD C3 F9 FB EE Specword In any way using the vi) Initialise.
46736 FF FF D3 CD DF DF DF FF 3A
46744 FF FF E3 DF E3 FD C3 FF 62 various options to d o so then the Should you be using the
46732
46760
FF
FF
EF
FF
C7
DO
EF
OD
EF
DD
ED
D9
F3
E3
FF
FF
72
32
whole program c a n b e saved Kempston Centronics Interface
46760 FF FF DD DD DD EB F7 FF 76 a n d verified using this option. that requires software to drive it
46776 FF FF D6 B6 B6 B6 C9 FF 9E
46784 FF FF DO ED F7 EB DD FF 84 v) Exit. then this option will Initialise the
46792
46000
FF
FF
FF
FF
DD
CI
DD
FD
DD
F7
E1
EF
FD
CI
C3
FF
36
60 Return to the Document menu. computer to use the Specword
46000 00 00 OO 00 00 00 00 00 00 4) Print. software for printing.
46016 OO 00 00 00 00 00 00 00 00
46024 00 OO 00 00 00 00 00 00 00 This will give a sub menu as If your interface requires
46032
46840
FF
FF
81
81
91
81
01
81
01
81
m
81
81
Ol
FF
FF
04
04 follows: special software then this should
46040 00 00 00 00 OO 00 00 00 00 i) All text. be l o a d e d prior to l o a d i n g
46036 00 44 44 •14 44 00 44 00 34
46864 oo 33 33 00 00 00 00 00 AA This will print out to your Specword.
46072
46000
00
oo
00
00
00
00
00
oo
00
00
O0
77
00
77
00
00
00
EE
printer all of your text file using Note that Specword uses most
the parameters as set up using of the memory of the Spectrum

51 ZX Computing Monthly • M a r c h 1987


but that memory between 43000 Graphics m o d e is selected. character at a time through the
a n d 44000 Is tree tor your printer EM : will i n d i c a t e when E.MODE text In the relevant directions.
interface software. The ZX printer is selected. The up a n d d o w n arrows will
a n d similar printers c a n only b e CAPS : will Indicate If caps lock cause the screen to scroll down
used with the 48K/+ computers is on or off. a n d up to p l a c e the required
a n d require no a d d i t i o n a l WW _: will i n d i c a t e if word wrap text line into the cursor window.
software to run them. DO NOT is on or off. When moving up a n d down
use the initialise option when INS : will indicate If Insert m o d e through the text the cursor will
using the ZX printer, Is on or off. try to stay in the same c o l u m n
vli) Exit. LMAR: will indicate the c o l u m n but If the line to be moved Into
Return to the Document menu. value of the right margin If set. the text window Is shorter than
5) Edit. RMAR: will Indicate the c o l u m n that c o l u m n then the cursor will
If a document has b e e n value of the left margin if set. move to the e n d of that line (this
created a n d a return has b e e n The main text screen will be is similar to program editing on
m a d e to Ihe Document menu blank except for a series of dots the 128K Spectrum). Note that
this this option c a n be selected at the b e g i n n i n g of e a c h line. the keyboard is buffered a n d If
lo return you to the word Towards the bottom of the screen the arrow keys are held d o w n
processor. you will see a black line, this is too long you will overshoot the
6) CAT! the text window in which all required position,
For 128K users only, this will typing is c a r r i e d out. Above this ii) Delete: This key will delete the
print a list of text files held in window there is the text title line character b e h i n d the cursor and
RAM memory. to remind you of the n a m e given b a c k s p a c e to that position
7) Customize. to your document. Below the closing up the text.
The word processing m o d e of window is the e n d of text marker Ill) H u e Video: Move to the next
Specword will Initially use three line. A cursor will be flashing TAB position (see E.MODE for the
different colours to define the black/white at the b e g i n n i n g ot method of setting tabs).
various areas of the file as it the text window. Iv) Graphics: This Is the second
appears on the screen. The Initially your text tile is just m o d e a v a i l a b l e a n d Is mainly
main text will be white ink on a one character long, a new line c o n c e r n e d with the printer
dark blue background, the text character c o d e 13 represented control characters (see
entry window wilt be white ink by a dot will b e seen under the GRAPHICS MODE).
on a back b a c k g r o u n d a n d the flashing cursor. All margins a n d v) Ext. Mode: The third m o d e
border will b e light blue. Should tabs will be reset a n d insert a v a i l a b l e mainly c o n c e r n e d
this c o m b i n a t i o n of colours not m o d e will be on (indicated by with the text format a n d editing
b e to your liking then you may the white bar against INS in the (see EXT. MODE).
alter them using this option. New status line) a n d word w r a p will vi) Edit: Return from word
values c a n b e saved be off. processing to the Document
permanently using "Save In word processing there are menu.
program'. three distinct modes which give In text m o d e all the normal
Note that when text Is saved access to the various functions. characters are a v a i l a b l e using
the c o m b i n a t i o n of colours is CAPS SHIFT a n d SYMBOL SHIFT.
saved with It so that when 1) Text Mode CAPS LOCK will select capitals In
l o a d i n g b a c k Into Specword the the normal way a n d indicate
colours may b e different to those This Is the standard m o d e on that it Is on by p l a c i n g a white
you m a y be using. entry to word processing In block against CAPS In the status
This options also allows you to w h i c h normal text entry is line.
redefine the £ sign for your carried out. Specword has a
printer. The c o d e is initially set to keyboard buffer to ensure that
all key presses are r e a d so that
2) Graphics Mode
129 {for the SHINWA printer).
8) ERASE! even the fastest typist will not b e This will b e of Interest If you have
Again for 128K owners only, a b l e to out-type the program. a dot matrix printer that has
this option wilt list the files held Use the keyboard as you standard controls to select
in RAM a n d ask which one you would a normal typewriter. different text formats. Selecting
want to erase. To skip this option Typing will always a p p e a r in the GRAPHICS will p l a c e a white
if selected in error just press text window so that you d o not block against G M in the status
ENTER to return to the Document have to search the screen to line.
menu. find out where you are. When INV VIDEO will p r o d u c e a
If you enter a filename that is the cursor reaches c o l u m n 29 HELP p a g e giving the control
not valid then the program will the screen will scroll left to keep c o d e letters a n d their original
break with an error report. text entry in view at all limes. functions. You will see thai for
Should this h a p p e n enter goto Text entry will continue on line most functions UPPER case Is
menu' to restart. one until ENTER is pressed to used to switch on the function
indicate a new line is required a n d lower case to switch It off.
Word Processing (see margins). You will notice a
dot p l a c e d at the e n d of e a c h
There are 30 characters
a v a i l a b l e all of which c a n b e
O n c e you have mastered the line, this indicates a new line redefined to suit your printer.
menu system then you c a n character a n d is part of the text, Printer control characters d o
b e g i n to enter text using the that Is it c a n be erased to join not affect the line length of the
word processor. two lines together or inserted text sent to the printer.
Using 'Create' to title your text into a line to split it into two There are also eleven form
you will be taken Into the word separate lines. characters that c a n be printed
processing mode. The screen will In all modes the INV. VIDEO in this mode. These characters
clear a n d you will see the key has a special function in c a n be used to p l a c e borders
following information displayed that if pressed it will display a a r o u n d your text. The following
on line one of the screen. HELP p a g e for that mode. These keys are used a n d as you will
COLOOOOI LIN:00001 G M _ E M HELP p a g e s give brief see form a k e y p a d to make
CAPS WW_JNS LMAR:00000 Information on all the m a i n them easy to find:
RMAR:00000 functions a v a i l a b l e In that mode. QWER r T ~
COL: will keep a record of the Text m o d e functions A S D F H + H I
current cursor column. I) Arrows; The cursor c a n be Z X C I— _L I
LIN: will keep a record of the moved a r o u n d the text using the The codes used for these
current cursor line. four arrow keys. Left a n d right characters are initially for the
G M _ : will indicate when arrows will move the cursor one SHINWA CP80 printer but c a n be

52 ZX C o m p u t i n g Monthly • March 1987


c h a n g e d to suit your printer with i n d i c a t e d in the status line by Up to 32 t a b stops c a n be set
a few simple POKE commands. p l a c i n g a white block against BUT they must b e set with
The Initial codes are: INS. In this m o d e characters will c o l u m n values of less than 256.
r 134: T 152: 149: ~ 157 be inserted into the text xlil) 2 Reset TAB This will remove
150: + 159: H 151: I 156 d i s p l a c i n g the text to the right to a set tab. The border will flash
l _ 153: J_ 158: _J 154 make room for that character. red to i n d i c a t e that the tab has
Each c o d e has two addresses ENTER in this m o d e will b e e n removed.
as follows, the first address is for p r o d u c e a new line in the text xiv) 3 Reset all TABS. This
UPPER case, the second for lower d i s p l a c i n g the text down one c o m m a n d will remove ALL the
case so In fact you c a n re- line to make room. The cursor set tabs a n d the border will flash
program 22 new characters. will flash black/white. green to indicate that the
36495/6,150 Ill) O Overprint m o d e ON. This c o m m a n d has b e e n a c c e p t e d .
36530/1,154 will be I n d i c a t e d by a short xv) 8 Set block start. This
36532/3,151 white block against INS in the c o m m a n d will p l a c e a block
36534/5,149 status line. The cursor will flash start marker at the current cursor
36536/7,156 red/white. Text entered In this position. This will be i n d i c a t e d
36558/9,134 m o d e will overprint the current by a forward f a c i n g arrow.
36560/1,157 text. If the right margin has b e e n xvl) 9 Set block end. This
36562/3,159 set then this m o d e will not allow c o m m a n d will p l a c e a block
36570/1,152 printing to continue on the next e n d marker at the current cursor
36572/3,158 line until ENTER is pressed. This position a n d will be i n d i c a t e d
36576/7,153 has b e e n d o n e to stop over- by a b a c k w a r d f a c i n g arrow.
CAPS LOCK also works In this printing of text on the next line Any previously set block
mode. without confirming that it Is OK markers will b e removed before
This m o d e also has a 'text' to d o so. A reminder that the a new block marker is set.
view which will give a display of right margin has b e e n set will xvil) 0 Reset blocks. This will
the current screen at 128 b e printed on the screen should remove any set block markers
characters per line. This will be you attempt to e x c e e d the right from the text.
in the form of a graphics display margin. Block markers c a n b e treated
with a letter represented by a Ix) K (+) Word wrap ON. This will as a character In fhe text file,
line. This c a n b e used to c h e c k b e I n d i c a t e d by a long white that is they c a n be erased or re-
the format of your text. To obtain block against WW In the status positioned by inserting text into
this view m o d e press key 1. The line. There will also be a c h a n g e the block. This will have no
display will remain o n until of cursor colour, the white flash effect on any of the block
another key is pressed when a will c h a n g e to blue. That Is: functions. Specword will allow for
return to TEXT m o d e will b e INSERT O M WW ON = BLACK/BLUE any c h a n g e in position of these
mode. INSERT ON/WW OFF = BLACK/ markers.
WHITE xviil) 5 COPY BLOCK. This
OPRINT ON/ WW ON = RED/BLUE c o m m a n d will c o p y a set block
3) Ext. Mode OPRINT ON I WW OFF = RED/WHITE to the current cursor position
This m o d e is entered by pressing Word w r a p will only function if o p e n i n g up the text to make
the EXTEND MODE key a n d will the right margin is set a n d Insert room. A black c a n be any
be Indicated by a white block m o d e Is on. Should a word length from just one character to
against EM in the status line. continue from the e n d of a line the whole text file. If there is not
INV VIDEO will display two to the b e g i n n i n g of the next line e n o u g h room left in the text file
HELP pages to give you a then that word will a u t o m a t i c a l l y to make a block c o p y then a
summary of the various functions b e transferred to the next line. message to that effect will be
available. ix) J ( - ) Word w r a p OFF. This Is given a n d the c o p y c o m m a n d
The EXTEND MODE key should i n d i c a t e d by a short white block will be ignored.
not be held d o w n o n c e E. MODE against WW in the status line. The block copy will b e free
has been selected. Words will remain split between from block markers, these will
The characters A / : \ ) I [ J are the e n d of one line a n d Ihe start remain set on the original block,
available In this m o d e a n d the of the next providing that the xlx) 6 MOVE BLOCK, fhis will
copyright symbol w h i c h is non right margin has b e e n set. move a set block from its current
standard has b e e n r e p l a c e d by x) C Count (word) Selecting this position closing up the text, to
the ' symbol {the symbol ' is function will p r o d u c e a display the current cursor position
available In text m o d e using of the number of words In your o p e n i n g up the text. This
SYMBOL SHIFT/7). text. This will not include any c o m m a n d will work even on a
I) Arrow keys have a special Graphics printer control c o d e full text file. The block will be
function in this m o d e as follows: letters or block markers. The moved c o m p l e t e with Its block
UP will take you to the start of count Is Instantaneous a n d will markers.
the text file. remain on screen until a key is xx) 7 DELETE BLOCK. This final
DOWN will take you to the e n d pressed c o m m a n d will erase a set block
of the text file. xl) W Word Find. This will search from the text file closing up the
LEFT will take you to the left through your text FROM THE text.
margin or if not set the CURSOR POSITION to find a word Block c o m m a n d s are almost
beginning of the line. or phrase of your choice. You Instantaneous but will not work if:
RIGHT will take you to the right will b e prompted to enter your a) The cursor Is p l a c e d inside
margin or If not set the e n d of search text a n d Specword will the black to be MOVED or
the line. search the file until It finds the COPIED.
li) Q (<=) will set the left margin required word/phrase a n d p l a c e b) The start marker Is positioned
to the current cursor value, a n d the cursor at the start of that AFTER the e n d marker.
display that value against LMAR word. Should the required word/ c) There is insufficient text room
In the status line. phrase not b e In the text then to a c c e p t block COPY.
HI) E (>=) will set the right the message WORD NOT IN TEXT' As a n e x a m p l e of the text that
margin to the current cursor will b e displayed a n d the cursor c a n be c r e a t e d in a file, these
value, a n d display that value will remain in Its original instructions were p r o d u c e d on
against RMAR in the status line. position. Specword a n d took 514 lines of
Iv) R (<) reset the left margin to xii) 1 Set TAR This will set up a which 406 were p r o d u c e d In
zero. t a b stop at the current cursor one text file (2819 words). The
v) T { » reset the right margin to position. The border will flash remaining 108 lines were
zero. dark blue to indicate that the p r o d u c e d In another text file
vt) I Insert m o d e ON. This will be c o m m a n d has b e e n a c c e p t e d . (854 words).

53 ZX Computing Monthly • M a r c h 1987


It's Impossaball! A new excellently I m p l e m e n t e d by
p r o g r a m m e r John Phillips. You
a n a t t e m p t to c o m p l e t e the
course within a time limit, a n d at
dimension added to control the movements of a
b o u n c i n g b a l l over a scrolling
the same fime as a v o i d i n g the
d e a d l y obstacles you also have
the bouncing ball three d i m e n s i o n a l o b s t a c l e In to 'squash' a series of cylinders

puzzle game by
Hewson.

Impossaball
Hewson
£3.95

• — i k e all the best g a m e s


Hewson's Impossaball is simple
to p l a y but h a r d to master. It's
o n e ot those g a m e s that sort ot
sneaks u p o n you after a c o u p l e
of attempts — you m a y not get
very far at first, but as you c o m e
u p against e a c h new o b s t a c l e
you c a n almost see how to get
through, so you g o b a c k to the
start for o n e more try a n d before
you know it you're hooked.
The basic i d e a b e h i n d the
g a m e Is very simple but it's b e e n
that are scattered over the
course a n d w h i c h are. of course,
surrounded by some of the more
d e a d l y traps a n d barriers.
There are eight courses in the
game, e a c h harder t h a n the
last, though even the first of
these isn't exactly a push-over. At
the start of e a c h g a m e the b a l l
is Just b e h i n d the starting line for
e a c h course a n d . since the
timer doesn't start until you've
crossed the line this m e a n s that
you're given a n opportunity to
b o u n c e the b a l l a r o u n d a bit
a n d get the h a n g of controlling
its movements before you start
the g a m e properly — a n i c e
idea, a n d one w h i c h allows you
to get started quickly (unlike a
lot ot g a m e s recently. Impossa-
ball doesn't force you to r e a d a
50 p a g e m a n u a f before you c a n
get started).
As you cross the starting line
you move from right to lefl
across the screen a n d the
c h e q u e r e d l a n d s c a p e of the
course scrolls smoothly a l o n g to might Improve the playabillty ot the l a n d s c a p e helps with the 3D
reveal e a c h new set of the g a m e is that after you've perspective a n d also helps
obstacles. c o m p l e t e d a course it might w h e n it c o m e s to j u d g i n g
have b e e n a g o o d I d e a to give distances a n d heights of jumps
you a password that allows you past obstacles, a n d , as the b a l l
to enter the next level whenever b o u n c e s a l o n g its shadow
Poles apart you want. As it is, you've got to follows a l o n g , shrinking or
On the first course this consists g o through all the course in a g r o w i n g as the height ot the
of spike-topped poles w h i c h jut fixed order a n d even w h e n jumps varies.
up from the g r o u n d or h a n g you've got the first level sorted There have b e e n similar
from the celling, a n d p l a s m a out you ve still got to g o through g a m e s released recently
bolts (which look like a n i m a t e d it e a c h time in order to get onto (Revolution a n d Action reflex),
Ringos). The cylinders that have the later ones. but Impossaball beats them all
to be 'squashed' are column-like in terms ot g r a p h i c s a n d
structures p r o j e c t i n g from the Flicker free playability, a n d it makes a nice
floor a n d ceiling, a n d c h a n g e from shoot 'em ups too.
The g r a p h i c s a n d a n i m a t i o n are
"squashing' them simply Involves a b o u t as g o o d as I've seen on
bouncing onto t h e m from a b o v e the Spectrum. All the objects are
or below, forcing t h e m to retract large a n d finely drawn, yet the
into the surface. O n later courses a n i m a t i o n is perfectly smooth.
though, there are all sorts of There's not the slightest flicker
deadly traps (most of w h i c h are despite the fact that the whole
moving a n d require expert screen display has to swing
judgement a n d p l a n n i n g to get b a c k w a r d s a n d forwards very
through). quickly in order to create the
Surprisingly for a g a m e where impression of b o u n c i n g move-
you're controlling a m o v i n g ment. The c h e q u e r e d pattern on
object a n d r a c i n g against the
clock, Impossaball doesn't
require dazzling a r c a d e - t r a i n e d
rellexes. Despite the time limit
there are p l a c e s where you're
better off taking things slowly
and thinking your way through
an obstacle rather t h a n just
barging through as fast as you
can. But w h e n the clock's ticking
away a n d you n e e d to hurtle
down the h o m e straight to the
finishing line, control of the b a l l
Is very simple, a n d the way in
which the p a c e of the g a m e
can vary makes it that m u c h
more addictive.
One ot the really n i c e
features of the g a m e is that it
presents you with e a c h course
and then just lets you get o n
with it. There Isn't a single, tlxed
method of solving e a c n
obstacle a n d there's e n o u g h
flexibility in the g a m e to allow
each player to d e v e l o p his or
her own style of p l a y i n g . The
only suggestion I c a n m a k e that
A budget BMX racing
game that's fun from
start to finish

BMX Simulator
Codemasters
£1.99
hlle BMX r a c i n g m a y not have
SIMULATOR
the same status or g l a m o u r as
motorcycle or g r a n d prlx racing,
w h e n it c o m e s to c o m p u t e r
simulations BMX c o m e s into Its
own. Formula o n e r a c i n g
simulations are often a bit of a
let down, your s p e e d o m e t e r m a y
b e saying 240 m p h but the r a c e
a c t i o n doesn't reflect It, but with
BMX racing, a simulation c a n
get closer to the real t h i n g a n d
the Intricacy a n d skill involved
required to n e g o t i a t e the course
m a k e It I d e a l for those w h o want
to use their joystick for more t h a n
mindless z a p p i n g .
BMX Simulator is a n excellent
g a m e that is surely destined to
b e c o m e a b u d g e t hit. There are
seven different courses, seen
from a n o v e r h e a d view a n d
these offer a multitude of
d a u n t i n g features b e c o m i n g
harder with e a c h successive s e q u e n c e where your rider a n d b e e n built in to p e p u p the
track. To q u a l i f y for the next bike part c o m p a n y In after-race d e b a t e on w h o cut u p
track you must c o m p l e t e the s p e c t a c u l a r fashion. Restarting w h o o n the final b e n d ; there Is
course within a given time limit the r a c e c a n b e a p r o b l e m with a n a c t i o n r e p l a y function w h i c h
— this is fairly generous for the a d e l i c a t e t o u c h n e e d e d to will p l a y b a c k the race, or, if you
first course but b e c o m e s more steer yourself clear of the o b j e c t are really into d e t a i l e d analysis,
stringent with track two. you've run into, otherwise you you c a n also w a t c h the w h o l e
There are options for o n e or crash a g a i n . . . a n d a g a i n . . . r a c e a g a i n in slow motion, I'm
two player games. When The two player g a m e brings not sure how often these w o u l d
p l a y i n g the c o m p u t e r rider It's out the full potential of the b e used after the novelty has
gratifying to find that he's very simulation a n d most importantly worn off but they are clever
fallible a n d wipes out fairly there are options to p l a y with a d d i t i o n s nonetheless.
oflen, 'though he does have the two joysticks (KempstonlSinclair) Above all, BMX Simulator Is
a d v a n t a g e in that whenever you this was a wise d e c i s i o n as very realistic a n d the bike reacts
c o l l i d e with him you are always a n y o n e p l a y i n g the k e y b o a r d fo the terrain exactly as It w o u l d
the o n e to g o flying. Crashing Is o p t i o n w o u l d b e at a real o n a real track — the ramps,
illustrated by a n i c e a n i m a t e d disadvantage. Two options have turns, b u m p s a n d water splashes
are not just there for d e c o r a t i o n ,
they c a n b e used for your
advantage.
BMX Simulation will a p p e a l to
a l l those w h o like r a c e g a m e s
even if the i d e a of BMX r a c i n g
seems a bit t a m e Everything
a b o u t the game's presentation is
highly professional from the
g r a p h i c s to course d e s i g n -
another g a m e to a d d to
Codemasters' increasingly
impressive track record.

i L

S ^ P s l . l I T
David Nowotnik tests a Objects c a n be built up by
d r a w i n g lines between two
screen. With large objects, this
c a n be quite time consuming. In
new 3D graphics points. A number of 2D (circle,
box, polygon) or 3D (sphere)
particular, multi-colour displays
are re-drawn quite slowly
package for the QL. shapes are drawn automatically
at the cursor position, with sizes
c o m p a r e d to monochromic
objects. Therefore, to save time,
specified by the user. Several Viewpoint allows the user to
Viewpoint d r a w i n g aids are included, such temporarily turn off the multi-
Rubicon Computer as the a d d i t i o n of axes and/or a
c a l i b r a t e d grid. Two vertices
colour facility. The resultant red-
on-black display c a n be
Systems (coordinates) previously defined redrawn m u c h faster.
£19.95 c a n be joined by a simple join For the more experienced
c o m m a n d . The mirror i m a g e of user, Viewpoint has a number of
• f you have ever b e e n an object c a n be p r o d u c e d , help facilities to a i d object
fascinated by the ability of with the user defining the p l a n e construction, such as listing
computers to display three of the 'mirror'. And, text c a n be (screen and/or printer) all stored
dimensional images, then a n a d d e d ; this text remains fixed on vertices or surfaces of the object
excellent new software product Ihe screen display, a n d does not under construction.
for the QL will permit you to try move if the viewing position of For a printer screen dump,
out the concepts for yourself. the object is c h a n g e d . Viewpoint has the relevant
'Viewpoint' is a m a c h i n e c o d e control codes built In tor Epson
program which allows you to Mirror Images a n d Seikosha printers.
construct 3D wire objects, then If you d o not have a printer
display the object in two Pressing 'F2' brings a search c o m p a t i b l e with either of these
dimensions (the monitor screen). facility into play, in which the printers, then the codes relevanl
Objects c a n be viewed from computer seeks the nearest to your printer c a n be entered
different viewpoints, a n d you defined vertex from the current as a set of 4 blocks. Unfortu-
can zoom In a n d zoom out, cursor position. The search area nately, there is no way of saving
change Ihe perspective, achieve is only a 9 x 9 grid of the world these codes, so if you d o have
some h i d d e n line removal, a n d coordinates, which, in effect, to enter special codes, you must
save a n d l o a d object d a t a to means that the cursor has to be d o so every time you use
and from microdrive or disc virtually on the vertex point for it Viewpoint. During review. I h a d a
A printer d u m p of the screen to be found. A b u g In the review few problems with achieving a
display is also possible, a n d c o p y meant that the program printer d u m p on my Epson RX80.
Fig. 1 shows the screen d u m p on crashed if a search was This turned out to be related to
an Epson printer of just o n e of requested when no vertices h a d my printer's d i p switch positions.
the example objects supplied yet b e e n defined; this b u g the So my Epson turned out to be
with Viewpoint.
The product comprises a
single microdrive c a r t r i d g e a n d
a 20 p a g e 5" x 3" manual. It is •1EUPO JN i
demonstration of the simplicity
of use of Viewpoint that this
small m a n u a l more than
adequately covers the operation
of the program. The program is
menu-driven, with options
a p p e a r i n g in the menu window
at the base of the screen. Five
main menus are available, -- i - • ——_
obtained by pressing one of the
function keys.
While the program itself is & 1 "5"S6
easy to use. 3D graphics, In RUBICON
concept are rather tricky. Here Compu t e r Sy •: » ?
there are new buzz words to
understand; world coordinates,
spherical polar coordinates,
cartesian axes, vectors, angles O Scroondump ot a jet aircraft example from Viewpoint
and O. Built in to Viewpoint Is a n
option to have some of these
terms displayed graphically. This suppliers promise to remove in ( a c c o r d i n g to Viewpoint) non-
can be d o n e at any time, even
while you are constructing an
all future copies. Each line or
shape c a n a p p e a r in any user
Epson c o m p a t i b l e ! It was a
simple matter to cure the fault cc
object. Pressing 'F3' a n d 'c' defined colour on Viewpoint's ( c h a n g i n g one switch position),
displays a simple c u b e in three b l a c k background. Switching but worth noting if you are using
dimensions, while 'F3' a n d 'a' between QLs 4 a n d 8 colour Viewpoint a n d experience a
displays the axes of a spherical modes c a n be a c c o m p l i s h e d similar problem.
polar coordinate system. Within within the program, diagrams Overall. Viewpoint is a n
these training options, you c a n b e i n g re-drawn to the same impressive package, and. at a
play around with vector R, a n d scale as soon as the m o d e has RRP of £19.95, provides excellent
angles O a n d O. O n c e you have been changed. value for money.
gained a feel for these, you c a n In moving the view position Rubicon Computer Systems, 11
return to constructing your own
object.
relative to the object, the object
has to be re-drawn on the
Bannerdale Road, Sheffield
S7 2DU. 0
57 ZX C o m p u t i n g Monthly • March 1987 57
THE VALUE
OF
Pete Cooke, a u t h o r ot
Tau Ceti a n d A c a d e m y ,
lets us in on some of his
m a c h i n e c o d e secrets.
Having got this table into

Listing 1
memory screen addressing now
b e c o m e s m u c h easier. To get a
screen byte address we only
I REM l o o k u p t a b l e f o r s c r c e n a d d r e s s e s . . . Check. CLEAR x x x x x before runninq
n e e d a short segment of c o d e
10 L E T l o o k u p - 6 3 0 2 4 ! REM #FEO0 i n h e x tike the one in (Listing 2).
20 FOR n - 0 TO 1 9 H REM N u m b e r o f t c r v e n L l n e s o n S p e c t r u m In fact we c a n d o even better
30 LET a " I N T ( n / 6 4 ) i REM 1 / 3 * r d s o f screun than this by ensuring the table
40 LET b " * n - 6 4 * a : REM line* within a block starts at a multiple of 256 bytes.
30 LET c - I N T < b / Q ) i REM c h a r a c t e r clocks
60 LET d " b - B » c i REM l i n e w i t h i n character block
In that case the low byte of the
70 LET a d d r e * K - 1 6 3 8 4 + 2 0 4 B * a + 3 2 « t . + 2 5 6 » d table's address is always 0
80 POKE ( l o o k u p + 2 * n > . o d d r o s s - 2 5 6 * I N T (addi ess/256> (Listing 3).
90 POKE U o o k u p + 2 * n + l ) , I N T Uddross/'256i Although this looks as long as
95 POKE a d d r e s s . 2 5 S i REM s h o w s t a b l e b e i n q g e n e r a t e d . . . d e l e t e later' Ihe first version there are several
100 REM p o k e i n t h e b y t e s i n l o w h i q h o r d e r improvements. First the DE
110 NEXT n
120 STOP
register pair is not used. Second
130 SAVE " y t a b l e " C 0 D E lookup,384 most of Ihe instructions are
single byte instructions which
operate m u c h faster a n d take
I » n e of the most effective 95 POKE ADDRESS,255 up less s p a c e on a Z80.
techniques in m a c h i n e c o d e is fills the first byte of e a c h line of Finally here are 2 simple
the lookup table. In Basic lookup the screen as the program examples using the Ytable
tables correspond roughly with calculates it's address. lookup, the first is a fancy clear
single-dimension arrays holding When the program has screen (this won't touch the
tables of data, for example:— finished type GOTO 130 to save attributes) (Listing 4) a n d Ihe
10 DIM A (20) the table. second is a routine to pixel
20 FOR N=1 TO 20 I normally store a table like scroll a window upwards (Listing 5).
30 READ A(N) this as high in memory as The b e a u t y of lookup tables
40 NEXT possible but if your assembler is for screen addresses is that, with
50 DATA < whatever you w a n t > stored at a high address then the table in memory, graphics
In m a c h i n e c o d e lookups are c h a n g e the value lookup to routines b e c o m e m u c h more
m u c h more c o m m o n as they somewhere safe below il (it's best straightforward a n d dozens of
give a way of evaluating to use a multiple of 256 for routines in a long program c a n
complex functions w i t h o u t reasons e x p l a i n e d later). use the same table.
writing masses of complex code.
Two g o o d examples ot the use of
lookup tables that spring to
Listing 2
o
mind are SIN tables a n d SCREEN
ADDRESSES.
10 ORG •cooo

z
20 ENT ttCOOO
3 0 YT A B L E E O U ttFEOO ; W h a t e v e r l o o k u p i s
5

< Screen Addresses


4«.» t
50 :Get Bvte A d d r e s s
6 0 : E n t r y B = L i ne>
One of the biggest hurdles to
graphics p r o g r a m m i n g on the 70 • C=Column
ot Spectrum is the awful layout of 80 ; E x i t HL=Address
o the display file. Anyone

o
90 *
w a t c h i n g a SCREENS l o a d i n g will 100 G E T A D D L D L.6
have seen that the display lines
at
1 10 LD H, 0
are stored in a non-sequential
fashion a n d a great d e a l of time 120 ADD H L , H L ; 2 b y t e s in e a c h t a b l e
Q. a n d eflorl is n e e d e d to write a 130 LD D E , Y T A B L E j B a s e o-f t h e t a b l e
last a n d efficient routine lo work 140 ADD H L , D E ; F r o m o-f-fset i n t o t a b l e
out the screen address of any 150 LD A , ( H L ) ;F'ick u p l o w b y t e
line. 160 ADD A , C ; A d d o n c o l u m n o-f-fset
A m u c h simpler way is to 170 LD E , A ; I n t o l o w b y t e o-f D E
Ot generate a lookup of screen 180 INC HL ; P o i n t HL to hiqh b y t e
addresses in memory. I normally
use a short BASIC program to d o 190 LD D . ( H L ) ; P i c k it up
O this. (Listing 1). 200 EX D E , HL ; T r a n s f e r to HL
UJ As a n a d d i t i o n a l check thai 210 RET ; Done
Q. the program is working the 220 s
00 line:—

58 ZX C o m p u t i n g Monthly • March 1987


IM
10 OF>n acooo
Listing 3
20 CNT *coov 240
Z0 YTADLC EQU aFCOO s W t n l t u n l u u k v * 14
4u I 250 (Exit A.BC.HL.IX
SO 6»to Address i inpi'ovtJ ver»ii*>—VTAW.E o . bi/jM.'-iJ 260 I all corrupt
ftO lEntrv t)-Lnn» 270 V
70 t C*Coluitu> 280 ; DE preserved
lEmt HL»A<Jdro«%
•JO : 290
Khj GET ADD LD L,C< i b ' S c i w i L i n e 300 P1XSCR EOU
110 SLA l_ |Z tivtOE per v j I u i f i»cj«>'V> 310 LD A.B ; T e s t s t a r t v
120 LD A, YTA&LII/* 10M 320 CP 24 t -for b o t t o m o f s c r e e n
130 iThia i» tup hinh bvto o< Itit' sUrl *d<l>'(rfc* of ti«* tiiBI*
140 ADC A,0 sAdd any carry I i m the «hi<t 330 RET NC : a n d a b o r t i f t o o 0 1 9
ISO LD H.A [Form i*t)U* oKttl in hl 340 ADD A. D : a l s o tt»st b a s e o t window
160 LD A. iMU (Ticl up low Uvlp 330 CP 24
170 ADD A.C (Add on column oftbol 360 RET NC ; a n d a b o r t i f t o o b i g
100 InC L iNO™ only t oihhI* ihc
190 LD M, 1ML» iF-itl It up 370 I
TOO LD L.A (Put low into L %o = ;eo LD A.C s i m i l a r l y t e s t x s t a r t
fiEt iDofn- 390 CP 32 : s c r e e n 1 6 32 c h a r s w i d f
:ro I •lOO PET NC : a b o r t i f t o o b i o
410 ADD A,E ; a n d checl r i g h t hand
420 CP 32 :i»dqe o f window
430 RET NC

Listing 4 440
430
460
470
: a l l t h e above t e s t a c o u l d
tbe cut out in a f i n i s h e d
! p r o g r a m where you a r e s u r e
t t h a t t h e window s u e
in or.G «LO0<1 480 l i s alwovr. l e n a l .
20 L"Ni iiC-'Oi'
30 wrc-.H' : Mlin t c i " IbOhm is 490
40 y TAfeLC EOU 500
50 510 LD L.B ipick up the y s t a r t
60 l E r a m p l e 1. 320 LD H.O : i n t o HL
7o i U s i n u G( T A D D t o r .. t * n t . v L I l - a i t - I ' O C t i 530 ADD HL.HL (times i t bv H to
80 : < A 1 1 r i b u l e t . n o t touched> 540 ADD HL.HL (convert to a p 1 ::e 1 00s
90 t 550 ADD HL.HL (
l u O FANCY LD B , 192 s No o f t c r e « n 1 m u t , 360 t
no LD C.0 570 ADD HL.HL sand double this to
120 i 380 sIndex into the viable
130 F .LOOP PUSH tfC ( S a v e t h e c u u n t e r 590 EX DE.HL (switch to DE as no ADD IX.hl
131 DEC B ; A * DJNZ o n l y l o o p - , t o [«•] 600 1
140 CALL CETADD : H L » a d d r e s t . o f line o 1U LO IX.vrABLE
170 LD B C . 3 1 : One l e i t . t t u r i n o o f b v t e * / l i f n » 620 ADD IX. DE tPoint IX to thc>
1B0 ( 3 2 U y t o ^ o n e a c h l i n t / 630 :r1gh t place tn the ytable
190 LD C.L 640 EX DE.HL ;qnt DE back
200 LI) D . H ; C o p y HL i n t o DE 650 t
210 INC D t t O E 16 d e s t i n a t i o n f u r L D l f c ft60 LD A,!> ;now convert character
220 LD (HL).O : C l e a r the l e f t m o s t bvte 670 ADD A,A (depth into number
230 LDIR (And c o p v i n t o t h e o t h e r 32 08O ADD A.A (of pixel lines
240 POP t<C ( G e t line c o u n t e r b a d 690 ADD A,A
230 700 DEC A twe move one less than this
260 HAL 1 ; A b h o r t d e l a v . 710 LD D,A ;put t h i s counter into &
270 DJNZ r LOOP (L.Oof u n t i l clone 720
IBO RET 730 (
290 /40 Now B NO Of P1K«1
300 &ETADD LD L,B 750 lines to move
310 SLA L 760 C = X s t a r t poi Of
320 LD A,YTABLE/»10O 770 the window
330 ADC A . 0 700 E - Width ot th*
r.4o I.D H.A 790 window
330 LD A.(HL) l)W IX Points to th*
360 ADD A.C aio position in the
370 INC. L 820 Ytable
380 LD H, ( H L ) 830

o
390
400
LD La A U40 ; the loop below moves each pixel lint* UP 1
RET 850 PIXSC1 PUSH bC :save these registers

Z
410
: 860 PUSH DE las they are corrupted by
870 : t h i s loop
880 LD B,E iget width into b for inner loop

Listing 5
890 LD A,C (9et byte position
900 ADO A. (IX) tof s t a r t of this
910 LD E, A ; p t ::el 1 ine to
920 LD D.CIX+l> t DE rog palr
930 LD A.C (and byte addross m
10 0R(j NC000 <
20 ENT 0C000 940 ADD A,(IX+2) (Of s t a r t of line below
3 0 YTABLE EOU :Whatever
«FE00 l o o t up is 950 LD L.A | i n t o HL register
at
O
40 I 960 LD H,CIX+31 (pair
50 t T h e s * 1 i r i f i f o r m a 9.70 t

O
60 I s h o r t t e s t f o r t h e 980 P1XSC2 LDI (copy (HL) to (DE>
70 t r o u t i n i ' . 990 DJNZ PIXbC2 (for width ot window
00 t 1000 t
90 LD BC.N0208
1010 INC IX (step pointer to ot
100 LD DE,*lO10
1020 INC IX incxt line
110 CALL P1XSCR
1O30 POP DE a .
120 RET
1040 POP BC (restore both req's
130 t
1030 DJNZ PIXSCl (back to move ne»t line
140 iPlxol Scrol1 a window
1060 1
130 I upwui'dt. . . .
1070 LD A.C ( t h i s is byte address of
160 I
1080 ADD A,<IX) (bottom l e f t hand corner
170 t Entrv B ystjrt
1090 LD L,A (Of the window ot
LD H, (IX+11 1 Into HL
O
I lOO
180 I C KtUrt
190 ( D Depth
1 1 10 LD B,E ( width to £> again
200 i Width
1 120 PIXSC3 LD (HL1,O ( f i l l bottom line
210 t
e 1130 INC L (with zero's 111
DJNZ PIXSC3
220 ( A l l hiliMmi'tCr'S i n
2 3 0 ; C h l i * A c t « r P o s 1 11 t i n s
1 140
1130 RET 1 finished.... a.
i/>

59 ZX Computing Monthly • M a r c h 1987


discussions proved so very
p o p u l a r last year, two rooms
have b e e n reserved for this
purpose. The plans c a l l for the
discussions which proved
p o p u l a r to b e r e p e a t e d at

; ACROSS;
various times throughout the
course of the weekend. (Once
a g a i n I have b e e n asked to
l e a d one or two of these
discussions. I h o p e to have the
c h a n c e to meet many of you at
that time.)

•POND:
TI-IIEI One of the more popular
events which c o u l d have used
more time last year was a swap
meet in which participants
c o u l d swap any form of
software/hardware which they
wanted. As last year,
arrangements have b e e n m a d e
to assure that there will be no
Illegal c o p y i n g of copyright
software. Those c o m i n g to
Indianapolis should be
Mark Fendrick previews was the first a n n u a l Midwest
Tlmex Sinclair Computer Fest
p r e p a r e d to bring those Items
which have b e e n gathering
America's largest hed in Cincinnati. Ohio.
Vendors who a t t e n d e d this
dust, a n d possibly m a y be
lurned Into something you c o u l d
Sinclair show. event all c a m e away from
Cincinnati with the feeling that
use. This m a y be the opportunity
you have b e e n waiting tor to
irstly I want to answer those ot there still is a great d e a l of obtain that product you never
you who have written to ask why interest amongst the Sinclair purchased before It was taken
this c o l u m n has not b e e n computer owners In keeping off the market.
a p p e a r i n g every month. This was their units viable. A few new The date for this o n c e a year
not because Bryan h a d asked products m a d e their event is the weekend of May 2nd
for less columns, but because of a p p e a r a n c e at this show, a n d a a n d 3rd.
the situation c o n c e r n i n g the number of exlremely well For more information
Sinclair market here in the attended lectures rounded out c o n c e r n i n g the show Itself,
United States, In short, since the weekend's schedule. All i n c l u d i n g rates for tables for
Sinclair has left our part of the predictions of the long a w a i t e d dealers, absentee a n d user
market, a n d Amstrad has no demise of the Sinclair computer groups, contact show organizer
interest in promoting Sinclair in the States were o n c e a g a i n Frank Davis; 513 East Main Street;
technology in North America, put to rest. Peru Indiana 46970. Please
nothing much has h a p p e n e d . include a SASE to help defray
The number of Sinclair dealers Mid West Fest the costs of postage. I h o p e to
has remained about the same see all of you there In
— or even h a d Its numbers While other shows were p l a n n e d Indianapolis.
reduced. New sales of Sinclair across the country, none ever I have a number of new
computers — mostly the QL — got ofl the d r a w i n g board, but software p a c k a g e s which have
continue to b e to current the Second Annual Midwest arrived recently which I will
Timex/Sinclair owners who have Timex Sinclair Computer Fest has report on In the next few
d e c i d e d to u p g r a d e from their been announced. columns. A m o n g the programs
T/S 2068. Frank Davis, one of the are music composition tor the T/S
There are sfill a handfull of organizers of last year's 2068, a number of new
new products b e i n g developed, smashing success has informed telecommunications products for
but not In sufficient numbers to me that this year's gathering will the entire product line, a n d a
a p p e a l to new home computer be even b i g g e r a n d offer more step in the direction of desktop
buyers, a n d lack of IBM to the dealers a n d e n d users publishing on the QL. I have
compatibility turns most than the first fest. b e e n Informed that there are a
potential customers off. The The site tor the 1987 affair will few products which will b e
microdrives which were Sir be the Holiday Inn North in released In the next few months,
Olive's personal favorite have Indianapolis, Indiana. This a n d as soon as I receive my
proven unreliable a n d many location has many improvements review copies I will give you my
computers which test out fine by over last itme. Since many Impressions.
the dealer arrive at the mail attendees c a m e by way of air For those of you who want to
order customer In a n (more than h a d ever b e e n let me know a b o u t new products
unworkable condition. expecled) the long drive from that you have heard of, or new
But before you all start the airport cost many more for a p p l i c a t i o n s that you have
thinking that I have given u p on the taxi ride than the airfare. The discovered, let me remind you
the Sinclair computers, let me Holiday Inn is not only m u c h how to get in touch with m e By
assure you that nothing is further closer to the airport, but the mail I c a n b e r e a c h e d at:
from Ihe truth. More than three hotel supplies a shuttle services Mark L. Fendrick
years a g o I promised that North from the airport, Post Office Box 2392
American Sinclair computerists square feet of show s p a c e Secaucus. NJ 07094 0992
will always be a b l e to find d e d i c a t e d to the show as USA
support here, a n d rather than o p p o s e d to the 2400 which was Electronically I c a n b e found
dwelling on what Is not. we shall taken up in Cincinnati. There will on THE SOURCE (BCA632),
seek out all the new h a p p e n i n g s be tables available for vendors CompuServe (76417.3264); DELPHI
a n d report on them here in ZX a n d users groups so that all (MARKFENDRICK); by n a m e on
C o m p u t i n g Monthly. possible aspects of the Sinclair MCI MAIL or via telex (via WUI)
Last year one event proved c o m p u t i n g community will o n c e 6502163495. (Products for review
more of a shot in the arm than a g a i n b e represented. may b e sent to the above
any other h a p p e n i n g . That event Because the lectures a n d address as well — hint).

60 ZX C o m p u t i n g Monthly • March 1987


U.S. Gold's latest g a m e w h i c h I n t r o d u c e d that of the g a m e now seems a little
m y t h i c a l hero, The S a b r e m a n , to dated.
compilation is an the g a m e s p l a y l n g p u b l i c Next o n side o n e is Sabre
You h a v e to s e a r c h the live Wulf. Each time Ultimate
Ultimate's Greatest Hits floors of a castle In search ot the p r o d u c e d a g o o d g a m e this
G o l d e n Key. A l o n g the w a y you was often f o l l o w e d by
collection. h a v e to m a p the layout of e a c h d i s a p p o i n t m e n t if their next
floor a n d f i n d the o b j e c t s that g a m e wasn't a h u g e
you'll n e e d to o v e r c o m e various Improvement o n its predecessor,
creatures (such as the a n d this was the c a s e w h e n
Master Games Frankenstein monster). Atic A t a c Sabre Wulf f o l l o w e d Atic A t a c
U.S. Gold/Ultimate was also o n e of the first g a m e s Both g a m e s were very similar
£9.99 to a t t e m p t s o m e sort of 3D e x c e p t that the rooms in Atic
g r a p h i c s by g i v i n g a n o v e r h e a d A t a c were r e p l a c e d by a maze-
p l a n view of the rooms a n d like p a t h t h r o u g h a jungle.
T h i s is the s e c o n d of the two objects. This g a m e , like a l l the However, g a m e s w h i c h look a lot
compilations of Ultimate g a m e s others o n this c o m p i l a t i o n , g a v e like Sabre Wulf are still b e i n g
released by U.S. G o l d , a n d by far birth to a g r e a t h o r d e of p r o d u c e d , w h i c h gives you a n
the better of the two. Ultimate imitations, g a m e s w h i c h were I n d i c a t i o n of how g o o d it was at
almost s i n g l e h a n d e d l y g r a p h i c a l l y similar but w h i c h t h e time.
pioneered the a r c a d e a d v e n t u r e often l a c k e d the a d d i c t i v e n e s s
hybrid w h i c h has now b e c o m e of the originals. Because of this,
so widespread, a n d the four Atic A t a c m a y well s e e m like a Underwurlde
titles on this c o m p i l a t i o n r e a d familiar style of b u d g e t g a m e to F l i p p i n g over the t a p e you lirst
like a history ot the genre. p e o p l e w h o didn't c a t c h it the l o a d u p Underwurlde. Now this
Side one of the t a p e kicks off first t i m e a r o u n d , but you really was a n influential g a m e :
with Atic Atac, the first real shouldn't u n d e r e s t i m a t e its Nodes of Yesod, Starquake a n d
arcade adventure, a n d the a d d i c t i v e n e s s even If the format Tremor are a l l a m o n g the hordes
Sabr* Wul( of g a m e s that have a m o r e than
passing r e s e m b l a n c e to
Underwurlde. F a c e d with the
HZ
lOc'275 c o o o o o task of f i n d i n g your w a y out of
the u n d e r w o r l d , you h a v e to find
the w e a p o n s a n d m a g i c a l gems
w h i c h a r e scattered a r o u n d the
c a v e r n s a n d w h i c h you'll n e e d if
you're to g u i d e the S a b r e m a n
past the monsters that stand in

, IMimx
your way, For the lirst time
Ultimate b e g a n to I n t r o d u c e

mm series of o b s t a c l e s that n e e d e d
to b e m a n o e u v r e d past (floating

1 u#
gas bubbles a n d swinging
B ropes), a n d g a v e the S a b r e m a n
the a b i l i t y to j u m p so that the
m g a m e involved m o r e t h a n just
shooting monsters a n d
c o l l e c t i n g objects. Now you h a d
to stop a n d think a b o u t where
OCT V Vil s you were g o i n g a n d how to get

aid
there, a n d this a d d e d a n extra
\ a i k V i J? e l e m e n t of difficulty to the g a m e
W W / /
that h e l p e d m a k e it even m o r e
addictive.
/ At this point you'd expect the
(oucth a n d tinai g a m e to b e
Knight Lore, w h i c h was the next
g a m e that Ultimate p r o d u c e d as
welt as b e i n g the fourth in the
Sabre M a n s e q u e n c e (and my
personal all-time favourite).
Unfortunately Knight Lore has
a l r e a d y b e e n i n c l u d e d on
another c o m p i l a t i o n , so this o n e
jumps forward to Alien 8. the
g a m e w h i c h c a m e directly after
Knight Lore.
Alien 8 is Ihe robot w h i c h you
control in a n attempt to save a
s p a c e ship from p l u n g i n g into a
star A b o a r d the craft are the
records a n d last survivors of a
d y i n g planet who put
themselves into c r y o g e n i c
suspension while their ship
sought out a new h o m e world.
But of course c o m p l e t i n g your L i 0 f I t c r
lask involves getting past the
strange creatures w h i c h
Alton 8
p o p u l a t e the ship, a n d finding
your way through the d e a d l y
traps w h i c h o c c u p y the
f 05 cryogenic chambers
By the time they p r o d u c e d
Alien 8. Ultimale's reputation was
at its height, With its two most
recent g a m e s they h a d
p e r f e c t e d a style of 3D g r a p h i c s
that were revolutionary, a n d
w h i c h has more or less b e c o m e
a d o p t e d as the 'standard' way
of presenting 3D graphics:
V Movie, Batman, Sweevo's World.
Nexus, Prodigy a n d m a n y other
g a m e s are simply variations on
the format that Ultimate
pioneered, a n d Alien 8 has still
to b e bettered in its c o m b i n a t i o n
of p r o b l e m solving, difficult
obstacles, a n d d e t a i l e d
graphics.
Sadly. Ultimate never really
progressed from this point a n d
Undeiwurldo while they've p r o d u c e d some
g o o d g a m e s since they've b e e n
u n a b l e to get b a c k to the p e a k
that they r e a c h e d with the
g a m e s on this collection.
V a c r o l H v Because these g a m e s were so
+ influential, p e o p l e who have
only gotten into c o m p u t i n g In
the last c o u p l e of years are
JI T .I M E . likely to b e more familiar with
the large n u m b e r of g a m e s that
o o o : 4 9 have c o p i e d Ultimates originals,
but these g a m e s are still a m o n g
000155 the best ot their various types, so
this c o m p i l a t i o n is worth getting
if you're at all interested in
arcade/adventures.

1 V-> v-> /

cl-i
P5
M . '•IP

Alic A t a c

ULTIMATE G A M E S
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 POSTL
Normal Price Sale Price Please Tick Normal Price Sale Price Please Tick
A&B Computing £18.00 • £20.80 •
Computer Gamer Li^ecr £13.00 • £2+R50* £17.20 •
Your Commodore L l f r W £13.00 • £24-R50* £17.20 •
ZX Computing Monthly ix&m- £12.00 • MECR £14.40 •
Citizens' Band RN^CR £13.52 • p ^ m £17.60 •
Ham Radio Today £14.40 • £16.80 •
Electronics Digest £I+R30 £ 8:30 • £11.20 •
Electronics Today International £0£RKT £14.40 • £22-50" £18.00 •
Video Today LS&wr £13.52 • OArQcr £16.80 •
Which Video? M-EE- £13.52 • £2^60" £16.80 •
Photography p & w £12.00 • £2*750" £16.00 •
Photoplay PJrSCT £14.32 • £24-R5C £17.20 •
Clocks £30R80- £24.64 • LZ&ecr £28.00 •
Woodworker i x & w £13.52 • £2^CT £16.80 •
Popular Crafts t x h w £14.32 • £24^50- £17.20 •
Winemaker & Brewer i m t r £10.96 • LXkQtr £13.60 •
Aeromodeller O&rrtT £20.08 • £2&R0O" £23.20 •
Military Modelling £16R9<R £13.00 • £21^60 £16.80 •
Model Boats £13.00 • £2OR0O" £16.00 •
Radio Control Model Cars V&rKT £14.00 • £2+R50" £17.20 •
Model Engineer i Z l r W £22.00 • £33R50" £26.00 •
Radio Control Boat Modeller £ 7.50 • £14^60 £ 9.20 •
R C M & E USrecr £12.00 • £20r6C £16.00 •
Radio Control Scale Aircraft
Quarterly £ 8.00 • £14-R50 £ 9.20 •
Radio Modeller H&rKT £13.00 • £20R60- £16.00 •
Sea Classic International £10R30- £ 9.00 • M R 5 0 £10.00 •
Scale Models International £13.00 • £20:60 £16.00 •
Your Model Railway p & w £12.00 • Z2hR60 £20.00 •
(Offer ends 30th April 1987)
Please commence my subscripiion(s) with the issue.
I enclose my cheque/postal order for £ made payable to Argus Specialist Publications Ltd
or debit £ from my Access/Barclaycard No. I I I M I I I I I I I I I I I "I
valid from to Signature

Name
Address

Send t h i s f o r m w i t h y o u r r e m i t t a n c e to: Subscriptions Savings Offer (S.08?)


INFO NET LID.. Times House, 179 The Mar lours. Heme! Hempstead, Herts. HPI IBB.
UJJJ
DEBUGGING ARTIST II
Flummoxed by the
BA62 E5 PUSH HL
bugs in Artist II? Carol BA63 C5 PUSH BC
Brooksbank rides to the BA64 F5 PUSH AF
rescue. BA63 CD7BBA CHKBUS CALL BUSY
BA6E3 20BF JR N Z , CHKBUS
BA6A F1 POP AF
fc^"ou may have seen In the BA6B 01BFFF LD BC, FFBF
review of Softechnics' Artist II* In BA6E ED79 •UT (C>,A
the February ZXC, that I
mentioned that there are a BA70 OEBB LD C , B B
number of bugs In the program. BA72 ED79 OUT ( C ) , A
Certainly, if you have a copy,
you wilt have met some of them. BA74 OEBF LD C , B F
This is such a g o o d graphics BA76 ED79 OUT ( C ) , A
program without the bugs that I
d e c i d e d to see how m a n y I BA78 CI POP BC
c o u l d remove, a n d now have my BA79 El POP HL
c o p y In g o o d working order. As
most of the c h a n g e s are quite BA7A C9 RET
small, I a m sure you w o u l d like BA7B 01BFFF BUSY LD B C , F F B F
to c l e a n your copies up too, so
here Is how It is done. BA7E ED78 I N A,<C>
First, a few bugs that 1 have BA80 E6C0 AND CO
left a l o n e b e c a u s e their effects
are easily corrected or a v o i d e d . BAB2 C9 RET
After using the 'Up' m o d e to work Routine to a l l o w use ot the Kompston E Interface.
on the part of the screen
normally h i d d e n by the Icon 72 to load from microdrlve/disc selected by a number w h i c h
menu, you will sometimes find 74 to load from t a p e follows "*". This number c a n be
that a c o u p l e of lines from the 82 to save to mlcrodrive/disc 0-4 or 6. or 5 on some of the
bottom of the screen are 84 to save to t a p e latest models. The p r o g r a m uses
transferred to the top when you 7. A c a l l to Epson c o n f i r m e d by
return to the 'Down' mode. This Is Proceed as usual to save/load. suspicion that there is no such
easily corrected by using the mode, so the fault c a n b e
"Window' option to scroll the The most serious bugs are In corrected by POKEing a valid
whole screen. When using the the printing operations, in both number into the locations
'Enlarge' m o d e to work In detail the m a i n p r o g r a m a n d the c o n c e r n e d . You c a n experiment
on small sections of the screen, Pagemaker. The following lo see the effect of the various
the program m a y crash if you c h a n g e s should b e m a d e numbers, but I found 1 the most
run the cursor off the right h a n d before saving a back-up satisfactory. The only p r o b l e m Is
e d g e ot the e n l a r g e d window. customised copy. that the large screen d u m p
Avoid running the cursor off the does not quite fit on the p a g e -
edge. When you n e e d to work at a b o u t two character squares are
the right h a n d side of the cut off the right h a n d e d g e —
e n l a r g e d area, move the Kempston E but none of the other modes
window over a bit so that the produces a large d u m p w h i c h
a r e a comes to the centre of the The last c o m m a n d on LINE 97 of comes anywhere near to fitting
window. It you are on the right the main p r o g r a m BASIC is the page.
h a n d e d g e of your picture, move COPY : REM CHR$ NOT PI These are the POKES you
the cursor slowly so that you c a n My interface Is not initialised need:
control It. a n d keep It inside the by this. I a m not sure whether
window. this is a quirk of my particular POKE 65180,1 (Small screen
I mentioned the save/load interface, or whether it Is always dump)
b u g in the type font design the case that NOT PI is not POKE 65186,1 (Large screen
option In the review. The Save' recognised. If your interface is dump)
option saves the wrong block of not Initialised after responding
code, a n d Load' crashes the r to 'KEMPTON PRINT?: then
You c o u l d try j u g g l i n g with
program. Follow this procedure c h a n g e the last c o m m a n d on
the values of the two pairs of bit-
to save/load successfully. LINE 97 to COPY : REM CHR$ 0
I m a g e d a t a . I c o u l d not find a
Select the save/load option, more satisfactory c o m b i n a t i o n
a n d give the file n a m e when Enabling the l h a n those in the program, but if
prompted. Use the BREAK key to screen dumps you have more p a t i e n c e than I,
return to BASIC (Do not start the the locations a n d present values
t a p e If saving). Enter as a direct The s h a d e d screen d u m p s work, are
command. but the ordinary large a n d small 65181 (0) (Smalt d u m p )
ones d o not if you are using 65182 (2)
LET B = n u m b e r Epson or c o m p a t i b l e printers. For 65187 (0) (Large d u m p )
the technically m i n d e d , this is 65188 (4)
number = 62268 for font 3 b e c a u s e there is a mistake In
61500 for font 4 the Epson bit-image g r a p h i c The m a i n p r o g r a m c a n now
63036 for font 5 codes. The p r o g r a m makes use b e saved. As I have no Opus
of the ESC ' control code, which disc unit, I c h a n g e d ilne 96 to
Enter GOTO allows the bit i m a g e m o d e to b e make the program auto-run.

ZX C o m p u t i n g Monthly • M a r c h 1987
96 PAPER 7:INK OrBORDER 0: l o a d e d . When the whole The Writer text file, the m a x i m u m
CLSiCLEAR 25631:LOAD " a r t 2 " jram is l o a d e d , use the number of characters per line
CODE BREAK key to g o to BASIC a n d must b e 60. not 64 as stated in
enter POKE 64034,1. the h a n d b o o k . A full Artist II
SAVE "artistli" LINE 96:SAVE "art2" (You c a n n o t j u g g l e with the screen still covers 32 characters,
CODE 26000,39536. bit-image d a t a in this program so you will n e e d to take a c c o u n t
as they are transmitted by of the fact that a screen takes
Pagemaker l o a d i n g A with a number, slightly more than half the width
followed by RST 10H. To c h a n g e of the page.
The separate Pagemaker has the the 0 d a t a , you would n e e d to If you wish to use the Page-
same bit-image error. If you have r e p l a c e a one-byte Instruction, maker. you will have a copy of
a Kempston E interface, ignore XOR A, with a two-byte one. The The Writer, a n d those with a
Ihe Instructions in the h a n d b o o k d a t a in the m a i n program is Kempston E interface will also
lor making a customised copy, h e l d in a t a b l e of values w h i c h have found that this does not
and p r o c e e d as follows. are easily c h a n g e d ) . work. This Is because, despite
Load the Pagemaker from the You c a n now save a back-up the h a n d b o o k , the c o d e in The
tape. As soon as the Instructions c o p y of the program with: Writer is for Kempston S. To get a
for customising a p p e a r on Kempston E g o i n g with it, you
screen, stop the t a p e a n d use SAVE " p a g e m a k e r " LINE 20: n e e d the bit of c o d e in figure 1,
the BREAK key. (i.e. before the SAVE "fonts" CODE 29696,3072: a n d to l o a d it into the program
blocks of c o d e are loaded). SAVE " s c r c o d e " CODE at 47714.
Change the number of LINE 20 47000,1275: SAVE " s c r d u m ^ 1 I don't normally think it is a
to LINE 21. A d d CODE 64000,107: SAVE "write- reviewer's j o b to d e b u g
l o a d " CODE 39700,45. c o m m e r c i a l software, but this
20 COPY:REM CHR$ 0 suite is so useful that It is worth
Your customised Pagemaker will the time a n d effort to get the
Enter GO TO 20, start the tape, work perfectly, except that you programs working properly.
and the blocks of c o d e will be must remember when m a k i n g

A
Spectrum +2 Machine
Language for the
Absolute Beginner
Melbourne House
£8.95

W h l s book contains Ihe best 1 to a variable on every


and clearest e x p l a n a t i o n of the interrupt, a n d the c h a p t e r ends
280 Instructions that I have ever by saying that 'there are other
come across. In that respect it is things you c a n achieve with
an excellent book for the interrupt driven routines, but they
beginner, but the author seems n e e d some p r o g r a m m i n g
to have forgotten that the experience.*
newcomer to m a c h i n e c o d e The author skates briefly over
also needs to b e shown how to keyboard r e a d i n g a n d printing
string the Instructions together to to the screen, but the chapter
make the computer a c t u a l l y do on sound makes the whole book
something. The book Is worthwhile. At last we are given

^SSML
peppered with short routines, but routines w h i c h achieve
most of them simply show that if something a n d show the reader
you l o a d a c o u p l e of registers how to b u i l d on the examples to
with numbers a n d a d d or make their own routines This
subtract them, you get the right chapter, a n d the sections on
answers. The beginner might b e m e m o r y p a g i n g , will be useful
forgiven for thinking thai you to anyone, even the more
could d o most of this In half the experienced machine code
time with a calculator. user, who is new to the 128K a n d
There Is a n excellent chapter +2. Despite the title, I think Joe
on hex, binary a n d d e c i m a l Pritchard is more familiar with
arithmetic, a n d it shows clearly the 128K model, b e c a u s e he
how to c a l c u l a t e the conversions talks of a m p l i f y i n g the sound via
from one to the other, w h i c h Is the ear/mic sockets which, of
just as well. Most of the course, the +2 does not have,
examples are in d e c i m a l , there a n d there Is no mention of the
Is a d e c i m a l loader a n d no hex +2's sound socket.
loader, but the tables of If you are new to the 128K or
opcodes a n d instructions are in +2, then get this book. If you are
hex a n d there Is no conversion a m a c h i n e c o d e novice, buy it
table. It seems a certain recipe for its clarity, but get another at
for disaster to expect the the same time with better
beginner to c a l c u l a t e conver- examples. This o n e tells you all
sions between conventions. a b o u t Z80 instructions but
There is a s p l e n d i d chapter nothing m u c h a b o u t
on Interrupts w h i c h makes the programming.
use of vector addresses
absolutely clear, but a g a i n the
examples only show how to a d d Carol Brooksbank

65 ZX C o m p u t i n g Monthly • M a r c h 1987
STREAMS
AND
If you thought that you
couldn't use the ZX
Printer with your new
128 then Toni Baker can

CHANNELS
prove you wrong.

V his article contains not one, if you don't have a Spectrum 128 c o m m u n i c a t e freely with a QL
but two new channels which you then you don't n e e d this new via the Local Area Network
c a n use on your Spectrum. The c h a n n e l of course, because you a v a i l a b l e from the ZX Interface
first is a channel which enables c a n use the ZX Printer anyway. One. Of course c o m m u n i c a t i o n
users ot the Spectrum 128 (or the The second Is not really a between these computers via
128+2) to be a b l e to use the ZX new c h a n n e l at all, but a the network is already possible,
Printer — or some other modification to a n existing a n d David Nowofnik has recently
c o m p a t i b l e printer such as an channel. It enables the b e e n d o i n g a n excellent series
A l p h a c o m — even in 128K mode. Spectrum to be a b l e to in ZX C o m p u t i n g on that very
task. It Is not my intention to
Figure 1 d u p l i c a t e any ot his material,
but merely to remove a c o u p l e
ix • oo (2 bytes)t Z_HIIKT Address of channel "Z" output. of deficiencies In the channel
IX • 0? (2 bytes)l REP0HT_J Address or channel "I" Input. Itself. We'll return to this later,
IX • 04 (1 *yt«)i Z_KAffi S u » of channel (1« "Z"). meanwhile back to the ZX
IX • 05 (2 bytes) t Z_IIO Constant 12J4H identifies new channel. Printer.
IX • 07 (2 bjrtes)t Z_CL0SE Address of close buffer routine.
IX • 09 (2 bytes)i Z_LEH Length of channel Info (ie 010E).
IX • 0B {1 byte)t Z_FLACS Various flags. Channel Z
The program as such begins at
Bit 7» Set if leading apace not reqd for keywords, reset otherwise. address B544. If this seems a
Bit 61 Not used. rather arbitrary address to you
Bit Rot used. then I should explain that the
Not used.
reason it starts at B544 is that all
Bit 4t
the c o d e follows on from the stuff
Bit it Set If IKVtSSE status to ON, reset otherwise. In last month's article (which ran
Bit 2i Sat If 0 V W status ia OK, reset otherwise. from BOOO to B543). Indeed, some
Bit It Set If exactly two additional parameters required, reset otherwise. of the subroutines developed
Bit Ot Set If exactly one additional parameter required, reset otherwise.
last month will be used In the
routines given here.
The trick to using the ZX
IX • OC (1 byte) t Z_XCOCRD X coordinate of print poon In buffer.
Printer on the 128 Is to avoid any
IX 4 OS (1 byte)s Z^wiDTH Width of buffer (ie 20h). possibility of erasing or
IX + 0E (lOOh bytes)t Z_BUKKE* New printer buffer. corrupting the OLD printer buffer
(addresses 5B00 to 5BFF) — this Is
ORG B544 because the memory in this
Z_CL0SE
range Is used by the 128 to store
DD7B0C LD A,(Z_XCOORD) At" x coordinate within buffer.
various p a g i n g subroutines,
17 AND A system variables, a n d a n
ce RET Z Return lnacdlately if buffer empty. alternative m a c h i n e stack for
use when accessing the vast
banks of p a g e d memory. If we
CRC B549 c a n arrange things so that we
DDE5 Z_ HEVtIKE PUSH IX c a n avoid corrupting this
El POP KL KLi" address of channel Info.
memory then the g o o d old ZX
Printer c a n still work normally.
010E300 LD BC.OOOE You see, all of the ZX Printer
09 ADD KL, BC HLt points to new printer buffer. software in the ROM was written
rj DI Disable intsrrupto. before fhe advent of the 128 a n d
is not c o m p a t i b l e with the
0608 LD B.Ofl requirements of the new
C5 Z_ NL_LOOP POSH BC machine.
CD7JB5 CALL B575,Z_COP*_LINE Output next row to ZX Printer. AH we really need to d o then
CI POP BC is to create a NEW printer buffer
DJNZ Z_NL_LOOP Output all eight rows.
somewhere in memory, a n d use
10F9
fhe new buffer instead of the old

66 ZX C o m p u t i n g Monthly • March 1987


one. The best possible p l a c e tor
this butter would be as part of JB04 LD A,04
the c h a n n e l information block DJFB OUT (FB),A Switch printer motor off.
for the c h a n n e l — that would FB EI Enable interrupts.
mean that the area o c c u p i e d
by the new printer buffer would
be r e c l a i m e d whenever you ORG B55*'
closed the channel. DDES Z EMPTY POSH IX
We shall call this new POP in,
E1 HL:- address of channel info.
channel "Z", for ZX-Printer. Take a
look at Figure One — it shows OlOBOO LD BC.000E
the structure of the c h a n n e l 09 ADD HL, BC HL: points to new printer burfer.
Information block tor the new AF XOR A At- 00.
channel. As you c a n see, the first
eleven bytes store completely 77 z EKprr LOOP LD (HL),A Zero next byte of buffer.
standard information, using the 25 ISC HL HLt points to next byte in buffer.
standard which was d e v e l o p e d 10FC DJNZ Z_EKFTY_L00P Zero entire of buffer.
throughout this series. (IX+05/06)
DDCBOHFE SET 7,(Z_FLAGS) Signal "Leading space not required"
contains the constant 1234h,
which identifies this as b e i n g a DD770C LD (Z_XCOORD),A Reset x coordinate in buffer.
user-defined channel. This C9 HET Return.
means that it may be o p e n e d or
closed using some of the
software listed last month. ORG B57J
(IX+OB). (IX+OC). a n d (IX+OD) 76 Z COPY LIKE LD A, B A:= row number to output.
also store information in the ra>3 CP 03
same format as the "W" c h a n n e l
9F SEC A,A A:» FF (last 2 rows) or 00 (otherwise)
given last month — this is so that
we c a n exploit more of last E602 AMD 0? A:» 02 (last 2 rows) or 00 (otherwise)
month's subroutines. As you shall D3FB OUT (FB),A Switch printer motor on, but with
see. a collection of new slow speed for last two rows,
channels Is far more
advantageous than a single 57 LD D, A D:- "last 2 rows" ling.
new channel. CD541F Z_CL_LOOP CALL 1F54,BREAK_KELF Test BREAK key.
Finally, the new printer buffer 380A JR C,Z_CL_NEXT Jump forward unless BREAK pressed.
itself runs from (IX+OE) upwards,
3B04 LD A,04
and is 100h bytes in length
(same as the o l d printer buffer). D3FB 07T (FB),A Switch printer n-otor off.
The variable Z „ X C O O R D FB EI liable interrupts..
(IX+OC) will be zero if the printer CD5FB5 CALL B55F,Z_EHM Empty the new printer buffer.
butter Is completely empty, or
CF0C RST 06/DEFB OC Report D. BREAK - COWT repeats.
non-zero otherwise. If the new
buffer is full It will contain 20h. DHFE Z_CL_NEXT IN A,(FE) At— status of printer.
Z_ WIDTH (IX+OD) remains 67 ADD A,A
constant at 20h — the width of
F6 RET M Return if printer not connected.
Ihe buffer. This is so that the TAB
a n d comma-control routines 30EB JR NC,Z_CL_L00P Wait until printer stylus is ready.
from last month may be C3120F JP OF 12,C0PY_L_2A Jump to print next row froa buffer.
exploited successfully. ORG B594
The program begins at the
DU2A4W SEARCH_CH_ALL LD IX,(CHANS) IXt points to base of channel
label Z _ CLOSE, which is the
routine to perform all ol the inlora.ition area.
peripheral tasks necessary to 011400 LD BC.0014
close the channel. In fact this 57 LD D, A Dt- name of channel to search for.
merely consists of testing
whether or not the buffer is DD09 SCH_CH_LOOP ADD IX,B0 IX: points to next chan info area.
empty, a n d printing a newline if DD7B00 SEARCH CH LD A,(IX+OO)
o
it isn't. PESO
J7
CP 80
SCF
z
Newline C8 RET Z Return with carry set if Channel
5
The Z__NEWLINE routine m a y b e not found.
c o m p a r e d to the ROM routine DD7E04 LD A,(IX+04) At- nano of channel pointed to. <
COPY. BUFF at address OECD. Its
BA CP D
purpose Is to transfer the
contents of the buffer to the ZX Cfl RET Z R o t u m with IX pointing to channel oc
Printer itself, before finally
erasing the previous buffer
Information area, and carry reset,
O
contents. The routine Z-EMPTY
LD C,(LX+09)
if search succesofull.
O
oc
does the a c t u a l erasing. You will DD4B09
notice a c o u p l e of differences DD460A LD B, (1X«0A) BC:- length of channcl info.
between the ROM routine Q .
16EA JR SCH_CH_L00P Loop back to continue search.
COPY BUFF, a n d my routine
Z_ NEWLINE. Firstly, the new
printer buffer is used instead of ORG B5B2
the old one, a n d secondly the DD2A515C Z_PRINT LD IX,(CDRCHL) IXt points to channel Info area.
subroutine Z COPY LINE is CD2FB1 CALL B12F Deal with keywords, control ptruoo, OC
called instead of the original
COPY _LINE. TAB, and conoa control.
In fact Z_COPY LINE is itself F8 RET K Return If task* coaplete. O
very similar to the ROM's m
POSH AF
COPY LINE routine (at OEF4). The CL
only difference in e v i d e n c e is 283B JR Z, Z_GRAPH1CS Jump with graphics characters.
CO

67 ZX C o m p u t i n g Monthly • March 1987


STRfAMS
AND
CHANNELS
5055 JR NC, Z_ASC 11 Jump with ASCII characters.
PBOD CP OS
2005 JR HZ, Z_PR_CTRLS Jump unless chr la "enter".
CD49B5 CALL B549,Z_N*VLINE Print a ncwllne.
the ellect of pressing the BREAK
187P JR Z_EKIT And Jump to exit. key — In my routine Z EMPTY is
D614 Z_PR_CTRLS SUB 14 c a l l e d Instead of CL£AR__PRR
597B jr c,2_Btrr Jump with controls 00 to 15> This removes any possible
c h a n c e of corrupting the old
0606 LD B.oe Bt has bit three net. printer buffer area.
2805 JR Z,Z_IHV_0VBR Jump with "inverse control". A general purpose subroutine
5D nBC A is i n c l u d e d next -
LD B,04 Bt has bit two set.
SEARCH CH ALL. It is entered
0604
with the A register containing
200}' JR NZ,Z_AT Jump unless chr Is "over control". the n a m e of a channel. The
CB19 z,_inv_ovm RR C routine will search through the
SBC A,A A:- 00 (INV 0 or OVFR 0),
c h a n n e l information area
9P looking for a c h a n n e l with this
or FF (IKV 1 or OVER 1). name. If If finds one It will return
DBA E0P XOfi (Z_lLAGS) A:« flags byte, but complemented if with IX pointing to the channel
parameter is one. information block a n d the carry
reset, otherwise the carry will be
AO AND B At all bits reset, except thAt bit set. We shall make use of this
J (INV) or bit 2 (OVtB) will be subroutine later.
taken froc flags byte, and
complemented If parameter is one. Z PRINT
DDI BOB XOR (z_mcs) Z PRINT is the routine which
DD770B LD (Z_FLAGS), A Bit 5 (INV) or bit 2 (OVH?) of flags "prints" a character held In the
A register onto the new printer
byte will be assigned with parameter. buffer. Note that the subroutine
1865 JR Z _ E H T Jump to exit. at address B12F comes from last
5D Z_AT DEC A month's article a n d will sort out
all keywords control parameters,
2060 JB N2,Z_EXIT Jump unless control lo "at control". a n d will d e a l with both the
79 LD A,C A t ' required x coordinate. comma-control a n d the TAB
PE20 CP 20 function. On return from this
& r o r if out of range.
subroutine the C register will
D29F1E JP NC,1E9F,REP0RT_B
contain any INVERSE or OVER
DD770C LD (ZJCCOORD).A Assign x coordinate as required. parameters, or the x coordinate
1855 JR Z_EXIT Jump to exit. of any AT parameters The
ED5B565C Z_ASCII LD DE, (CHARS) DEt> addr of character net -lOOh. Z PRINT routine Itself is really
quite simple, b e a r i n g in mind
1811 JR Z_CHR_1 Jump forward.
that it has to d e a l with ASCII
1*90 ZjGRAPHICS SUB 90 characters, block graphics, a n d
5009 JR NC, Z_UDj Jump with user defined graphics. UDG's. as well as OVER. INVERSE.
AT a n d ENTER. Follow it through
47 LD B, A
to see how all the various cases
CDJBOB CALL 0B58,P0_GR_1 Construct graphic in MEHBOT area. are dealt with.
21925C LD HL.MtMBOT HLi points to graphic form. Finally (for this channel) we
180B JR Z_CHR_2 Jump forward. have Z OPEN, which opens Ihe
c h a n n e l a n d attaches it to a
ED5B7B5C LD DE, (UDG) DE t• address of user defined grphes.
zjutc
stream. On entry, the A register

o
6p Z_CHR_1 LD L, A must contain the stream number
2600 LD H,00 to which the c h a n n e l is to be
ADD HL, HL
a t t a c h e d a n d the subroutine will

z
29 d o the rest. It makes use of

s
29 ADD HL.KL another subroutine from last
29 ADD HL, HL article - the OPEN NEW routine

s<
ADD KL,DE HLi points to required' graphic form.
which will o p e n user defined
19 channels
DD7E0C Z_CHR_1 LD A , (Z_XC0CRD) A m current x coordinate in buffer.
FE20 CP 20 Channel Q

o
PUSH HL
E5 When c o m m u n i c a t i n g with the
OC CC49B5 CALL Z, 2_NEVLING Print a newline if buffer full. QL via the normal network
c h a n n e l you will notice a

o
D1 POP DE DEi points to graphic form.
OT7E0C LD A,(Z_XCOORD) At" current x coordinate in buffer.
c o u p l e of problems The first Is
that on the Spectrum the c o d e
oc 5C
DD770C
INC A
LD (Z_XCOOHD),A
A:* new x coordinate.
Store in system variable.
for "enter" is OD (thirteen),
whereas on the QL the c o d e for
a C60D ADD A,0D "enter" Is OA (ten). This means
LD C,A that, for instance, PRINT AS on
4P
the QL c a n n o t be m a t c h e d by
0600 LD B, 00 BCia displacement to posn In buffer. INPUT AS on the Spectrum, nor
DDE5 PUSH IX vice versa. It is normally
El POP HL HL: points to channel information. necessary to use PRINT
AS;CHR$(13); on the QL in order
ADD HL, BC HLi points to current ponn In buffer.
09 that the Spectrum m a y use INPUT
O 0608 LD B, 08 A$. Conversely. INPUT A$ on the
LU
a. EB Z_CHH_LOOP LX DE,HL D E m current buffer position; QL needs to be m a t c h e d by
PRINT AS; CHRS 10; on the
co
HLl points to graphic form.
Spectrum.

68 ZX C o m p u t i n g Monthly • March 1987


LLLU
What I intend to d o is to 1A LD A,(DE) A:= byte from buffer.
modify the "N" c h a n n e l DDCBOB56 BIT 2,(Z_FLAGS)
attached fo a particular stream
so that the deficiencies are 2001 JR HZ, Z_CRR_0V£K Junp if 0VH* off.
removed. In a modified "N" AF XCR A
channel these problems DDCB0B5E BiT 5,(Z_KLACS)
disappear. PRINT AS on the 2801 JR Z,Z_CHR_INV Jusp If INVERSE on.
Spectrum may b e m a t c h e d by 2F CPL
INPUT AS on the QL. a n d vice
versa. Other surprising AE XCR (HL) At™ byte from graphic form, with
advantages turn up; if you LIST a 0VK3 and INVERSE taken into account.
Spectrum program over a 12 LD {DE},A Store in buffer.
modified network c h a n n e l then
PUSH HL Stack pointer into graphic form.
the QL will be a b l e to LOAD the E5
program with the single 212000 LD HL.0020
c o m m a n d LOAD NET1_.2 19 ADD HL,DE HL: pointo to appropriate byte in
(assuming that the Spectrum is buffer for next row of character.
station number 2) — or to transfer
the program directly onto a QL D1 POP DE DE: points into graphic form.
mlcrodrive ready for l o a d i n g 13 INC DE DE: points to next byte to use.
later with the single QL 10E5 W N Z Z_CHRJ,OOP Print whole character into buffer.
c o m m a n d COPY NET1 J 1 TO
MDV1 PROG. F1 Z_EXIT POP A¥ A:« character Juot printed.
AND A Reset the carry flag.
The second p r o b l e m is a little A7
more complex, but not m u c h so. C9 RET Return.
The Spectrum c o m m a n d ORG B64A
INPUT AS actually expects to
08 Z_0PH*
receiver a string expression, not EX KF,AF' A ' a t r e a a number to attach channe
the contents of an a c t u a l string 3B5A LD A , "Z"
(although this is not the case CD94B5 CALL B594,SEARCH_CH_ALL Search for another "Z" channel.
with INPUT LINE). Fortunately for D2C415 JP NC 15C4,REP0RT_J Error if one exists.
us, we seldom notice this
because the Spectrum provides DD2144B5 LD IX, Z_CLOSE LX:» close buffer address.
the surrounding quotes — this 21B2B5 LD HL,Z_PRIOT HL: = output address.
converts the string text Into a 11C415 LD DE,REPORT_J DE:- input address.
string expression a n d everything
010E01
Is hunky dory — with one LD BC,010E BCI- length of channel info.
exception! If the string printed
over the network by the QL CD6DB0 CALL B06D,0PEN_KEW Open the channel.
contains a quotes character DDJ60B00 LD (Z_FLACS),00 Reset the flags.
then the Spectrum will b e
unable to evaluate the result as DDJ60D20 LD (Z_VIPTH),20 Specify buffer width - 20h chrs.
a string expression a n d will halt C35FB5 JP B55F,Z_EWTY Bnpty the buffer, and return.
with error C, Nonsense in BASIC
The cure to this p r o b l e m is very
simple. If, during Spectrum INPUT ORG B66E
(as o p p o s e d to INKEYS or INPUT 210007 SHAD0W_DE LD JtL, 0700, ON PAGE
LINE) a quotes character is E5 POSH HL Stack US PAGE address in Shadow ROM.
received from a m o d i f i e d
Stack Shadow subroutine address.
network c h a n n e l THEN IT MUST BE D5 PtISH DE
CONVERTED TO TWO CONSECU- 65 LD H,L in, i- oooo.
TIVE QUOTES CHARACTERS in £5 POSH HI, Stack 0000 signalling "Return
order that the expression will still
to Shadow ROM address".
evaluate.
Let's take a look at the C30800 J P 0008 Jump to call Shadow subroutine.
subroutines now. We b e g i n with
SHADOW DE which will call a ORG B&78
subroutine in the Shadow ROM
DD2A515C LD IX.(CURCHL) IXi points to channel information.
whose address Is DE. It achieves
this by fooling the Spectrum into F5 PUSH AF Stack character to print.
thinking that we are returning fo FE0D C P "enter"
the Shadow ROM from a 2002 JR NZ,^_PRIHT_2 Juap unless character is "enter".
Spectrum subroutine, a n d then
simple p a g i n g out the Shadow SBOA LD A,OA A:« QIi's code for "enter".
ROM on completion. DD5E05 0_HUNT_2 LD E,(lX+05)
CL PRINT Is the routine which DD5606 LD D,(lX+06) DEt> Shadow output address.
"prints" a character over the CD6EBb CALL B66E,SHAD0V_DE Call network output In Shadow R 0 K .
modified network. As you c a n
see It Is extremely simple, merely F1 POP AF At" character Just printed.
testing for a n "enter" character A7 AMD A Reset the carry flag.
and converting such to OA, C9 RET Return.
before using the original
ORG B66F
Shadow-PRINT subroutine to print
the character. DD2A515C q_IHPUT LD IX, (CURCHL) IX: points to channel information.
Q__INPUT is more 2A3D5C LD HL,(EHR_3P) KLj pointo to error return address.
complicated, though not m u c h 5K LD E,(HL)
so. Firstly, the routine tests the
error return address to see 23' INC HL
whether the character-input is 56 LD D, ( HL) DE:* error return address.
due to an INPUT c o m m a n d , or 217F10 LD HL, 107F,ED_EHRCR
due to an INKEYS function. If it
A7 AND A
turns out to be merely INKEYS

69 ZX Computing Monthly • March 1987


STFTSAMS AND CHANNELS
ra>52 SBC HI,, DE
then things are Just as simple as
for Q „PRTNT. The shadow input
2814 JR Z,q_IKFUT_2 Jump if In a IKPtTT otnttrunt. routine is c a l l e d to r e a d a
DD5B07 L D E, (lX+07) character, a n d if that character
is OA then it Is converted to
DD5608 LD D,(IX+OB) BEi« Shadow input addreno.
"enter".
CD6EB6 CALL B66E,SHADCW_DE Call network input from Shadow R O M . If, however, we are d e a l i n g
47 LD B,A B>- character just input. with INPUT (as o p p o s e d to
PUSH AF Stack the flags.
INKEYS) then the first thing we
F5
must d o is a b a n d o n altogether
FEOA CP OA use of the EDITOR routine in the
2002 JH NZ,<l_INXEY»_2 J u m p unless this is a QL "enter". ROM (which we d o by emptying
060D LD B,0D B«" Spectrum "enter" character. the m a c h i n e stack as far as the
return address from the EDITOR
PI POP AF Restore the flags.
call) a n d then supplying a new
78 LD A,B Ai- character to return. routine to r e p l a c e EDITOR. We
C9 RET Return. c a n call Q INKEYS as a sub-
ED7B5D5C q_INFVT_2 LD SP,(BHH_SP) Qnpty the machine stack down as
routine to fetch a single
character from the network
far an KD_HTR0R. (converting OA to OD) a n d the
El POP HL Drop the addrcaa ED_ERROR. flags will tell us if the character
El POP HL HL I" normal error return address ptr. is valid or not. Then we c a n call
a ROM subroutine
Reatoro pointer to error retn a d d r .
22JD5C 1,D (rafl_SP),HL
A D D _ C H A R _ 1 to actually insert
CM1B6 q_IWP_L00P CALL B6A1,q_INKErt Read next character from network. the character into the input line.
J804 JR C,q_INP_STCRE J u m p if character O K . Quote characters must b e
JR Z,<l_INP_LOOP J u m p if still waiting.
inserted twice, not o n c e (except
28F9
during INPUT LINE). Finally, if a n
CF07 RST 08/DJTB 07 Report 8 , Bid of file. "enter" character is received
FB0D q_lKP_ST0HE CP O D then we m a y relurn, as if from
C8 RET Z Return (INHJT is now finished) if the EDITOR routine, with the
finished string expression in the
character ie "enter". INPUT area of RAM.
CD850P CALL 0F85,ADD_CHAR_ 1 Store the character in the INHtT line. MODIFY N is the routine
FDCBJ77E BIT 7,(FLAG_X) which will convert a "N" c h a n n e l
JR NZ,^_INP_L00P Loop back IT doing INPUT LINE.
to d o as its told. On entry the A
20EB
register must contain the stream
FE22 CP 22 number of a n existing "N"
CC850P CALL Z,0F85,ADD_CHAK_1 Double-up quote characters. c h a n n e l which must nave b e e n
18E4 JR q_INP_LOOP G o back for rest of INHJT. o p e n e d normally. In such a
c h a n n e l (IX+00/01) a n d (IX+02/03)
ORG B6DA will normally contain the value
CD2117 MODIFYJJ CALL 1721,STR_DATA_1 BCib STUMS data for stream supplied. 0008 which, if called, will p a g e
in the Shadow ROM a n d then
78 L D A, B call the actual output or input
B1 OR C subroutine addressed by
280C JR Z,K0D_ERR0R Error if stream not in o n e . (IX+05/06) a n d (IX+07/08)
respectively.
2A4P5C LD KL, (CHANS) HL: points to base of channel
The MODIFY N subroutine will
information a r e a . merely convert these 0008s to
09 ADC HL, BC HL: pta to 2nd byte of chan info. the addresses of Q__PRINT a n d
23 INC HL Q . INPUT, leaving the addresses
of the Shadow routines
IHC HL
25 u n c h a n g e d . The Shadow
23- INC HL HL: pts to 5th byte of chan info. routines will then only b e c a l l e d
7E LD A,(HL) A:> name of channel. when required by Q PRINT or
PE4E C P "N*
by Q INPUT.
Finally, a five byte
2802 JH Z,M0D_QL Jump only if channel io "II". demonstration of the "Z"
CF17 KOD_JKRCR RST 08/DEFB 17 Report 0 , Invalid s t r e a m . channel. Simply c a l l i n g
2B M0D_QL DEC HL Z DEMO from BASIC will o p e n a
new c h a n n e l "Z", a n d attach it
LD (HL),B6
J6B6 to stream number four.
2B DEC HL
568F LD (HL),8F Store new input a d d r e s s . Channel R
2B DEC HL In the next a n d final part of this
}6b6 L D (HL),B6 series we shall examine the use
DEC HL
of the existing c h a n n e l "R",
2B
which m a y only ever be used in
5678 L D (HL),78 Store new output addreso. m a c h i n e code. We shall also be
C9 RET creating a new channel, also
c a l l e d "R" (R tor RAM-disc) which
will e n a b l e you to create READ
ORG B6FC
a n d WRITE files in the Spectrum
5B04 ZJJEKO L D A, 04 A:= stream number to a t t a c h . 128's RAM-disc area, just as you
C34AB6 JP B64A Jump to open channel "Z" and c a n on the microdrlves. Till then,
keep smiling, a n d don't take
attach it to stream four.
anything seriously.

70 ZX C o m p u t i n g Monthly • March 1987


THE ULTIMATE TASWORD? lines before you c o u l d even get two subtle differences in the
Ta sword +2 the cursor to the bottom of the
text a g a i n . I h a d a number of
control keys. The one which is
the most noticeable is the use ol
Tasman Software files full of lists of scientific the symbol-shift a n d "I" key for
£19.50 references, e a c h one inserting characters or spaces
incomplete a n d lacking the title instead of the "y" key as in
of the article. This is where the Tasword 2 or Tasword 3. To make
X . I last it's here — Tasword +2 "aut" Insert m o d e in Tasword 3 matters worse, in Tasword 3. the
on Discovery disc, many of you a c a m e in so useful; I was a b l e to c o m b i n a t i o n symbol shilt a n d "i"
familiar with g o o d old Tasword 2 type the title into the m i d d l e of deletes a letter; one needs to be
— a little cumbersome, but very the reference without having to very careful, the whole thing is a
easy to use a n d thoroughly split it all first. However, this bit of a nuisance until you get
reliable. You probably also know meant that I was e x p a n d i n g the used to it. Actually, all the
that Tasword 3 is an u p g r a d e of file "from the m i d d l e outwards". symbol shifted key names have
this, with all sorts ot a d d i t i o n a l And it suddenly threw up "file b e e n replaced.
features — rapid cursor full" a n d j a m m e d solid. I These are very minor
movement, headers, footers, resolved to test my new copy of grumbles, however, a n d to
pagination, word a n d character Tasword +2. so I MERGEd the old compensate, there are one or
count, 128 c o l u m n width, the list Tasword 3 files into it. Well, it's two lurther improvements. For
ol options seems endless. true what they say. It holds a n instance, the action of symbol-
enormous amount of text, shifted "a" is now instant; no
More t e x t around 45-50 d o u b l e s p a c e d A4 delay for Ihe main menu in this
sheets, d e p e n d i n g on the rest of version. Automatic insert also
So what's different about Tasword the s p a c i n g in the text. And works much more smoothly. And
+2? The major improvement, as there are other diffferences from the size of the lile! Talk about
in Tasword 128, is the gigantic Tasword 3 or Tasword 128, too. impressive! It contained my 170
text file. Tasword 2 allowed 320 First of all, a lot of little bugs references with no trouble at all!
lines, roughly 10 d o u b l e s p a c e d have been ironed out. That nasty It's beautifully p r o g r a m m e d a n d
A4 pages. It didn't matter if they little buglet which gives a lot of works like a dream. Tasword 3
were all space; that's all you vertical lines across the screen files are totally compatible, just
got. Tasword 3 improved on this when you ask the Opus version merge them in, one after the
by using text compression of Tasword 3 to l o a d a tile which other; Tasword 2 files are readily
techniques. If there was a lot of doesn't exist has gone. And lhat converted using the T2T3
space, you got more lines in the problem Tasword 3 h a d over program supplied.
file. However, as a penalty. Ihe sequential printing of text files If you've got a Discovery disc
"file full" marker c a m e up with ten character titles (it a n d you want a wordprocessor,
without any warning, a n d then refused) has now disappeared, then get Tasword +2 — it's the
you often h a d to delete several too. Secondly, there are one or best there is.

Printer Tip

IMSIII;
If you have a 128K and a HRS
printer, entering, either as a
direct command or as pro-
gram lines the commands FORMAT
p;300 and POKE 23391.3002 will enable
Ihe printer tor LUST. LPRINT and COPY
The copy is double height and the
/erky, and STOP barely worked until Ihe —2 eliminates the /oin between lines. It
Out In The C o l d machine warmed up. However. I got on is also advisable to re-enter or re-run Ihe
with more important things ,.. commands after each job because Ihe
Does your Spec/rum feel Ihe Tasword 3 duly arrived on disc — no tirst COPY line may (but not always) be
cold? My +2 does! As soon as problems: N and M line trom Ihe word a little squashed
I had bought m y n e w toy, I goi Well, that's not unreasonable Tas- K.S Schimmel. Nottingham
rushed to try it out, switched on. tried lo word 2 uses interrupt mode 2 to scan the
type things in ... Capital N and
M (or NEXT and PAUSE if K cursor was
capital keyboard;
mode 3. "Maybe
Tasword 3 uses interrupt
the beast reacts dif-
Writing G a m e s
selected) retused to work, although "n" ferently in the two modes" thought I I have had a Spectrum 48K+
and "m" were quite all right. Capital
was tine, but STOP (symbol shitt and A)
A And once again,
things.
got on with other
E tor live months and looked at
several computer magazines.
also tailed. Rushed back with my new Shortly after, Tasword +2 arrived, also I picked up a copy ot ZX recently
loy to Evesham Micros (bless 'em). Just on disc. This time. I was, and am m real and was impressed with the amount of
the same problem, but it soon vani- trouble. Although it uses interrupt mode varied programs in the magazine
shed they had a hot-air tan heater /us/ 3. lust like Tasword 3, but this time in 128K What I have in mind is lo produce a
u n d e r the counter: Ihe fault seemed to mode. Ihe results are quite different. "M". game of my own and I greatly appre-
disappear when the thing warmed up "N" and STOP" are fine. But. instead, the ciate Ihe utility programs. May I say
We tested their new cold stock, which "cursor-up" key takes almost an hour to again lhat I find your magazine excel-
also behaved in the same curious way. come to fruition! I guess this is a prob- lent and I will be placing a regular
tor a minute or two, no "M", no "N", then lem which is worse for me than most. I order.
litlully as it warmed up. then all right . keep my +2 in a cold, cold garret. PS Are there are any books you
Now, "N" and "M" are associated Back to Evesham Micros (Ihe long- could recommend on writing games?
with extra circuits which include several suffering Cotteridge branch, this time) Ian Barrass. Hull.
diodes and provide single-key entry Further new (and cold!) slock (totally
comma and lull stop: I've modified key- different, much later batch) was tested Two tilles on Ihe ZX shelves thai
boards in this way in the past. So I with their rather smaller power supply, may be of interest are How to
guessed that perhaps the diodes had with mine, with my Discovery unit: as Wnle Spectrum a n d Spectrum
a strong temperature coefficient, and many combinations as were possible. + Games Programs by W Simisler
their characteristics changed drastic- No dilference. they behaved just the (published by Bernard Babani) which
ally w / i e n the Spectrum was turned on. same as mine. concentrates on writing computer
However, it wasn't loo much bother, and Help! Does anyone know what's versions of traditional b o a r d games
I didn't worry too much. going on? Do Ihe old 128's behave in a n d Spectrum Gamesmaster by Kay
I did notice that tor Tasword 2 there Ihe same curious way? Ewbank, Mike James a n d SM Gee
were rather similar effects, but not as I guess I'm going to have to keep my (Granada Publishing) which shows how
bad. So. on loading this in. I found that +2 warm in future! to master Ihe rudiments ol Frogger a n d
al tirst capitals M and N were rather John Wase. olher simple a r c a d e games. — Ed

71 ZX Computing Monthly • March 1987


W his month we're moving into M e m o r y squeeze
To b i o A
the b i g time! That is as far as the
size of illustrations goes. No more 0 e* 17 3 0 195 £6 £ 5 4
Now all Ihis Is very well if you
little minipics. Now we're talking *© 4 6 £54. 0 4 0 32 119 have a "128" or don't n e e d
about full screen Illustrations. C many pics. How c a n you
19 as 56 £39 £5
Bui first the b a d news. Big pics 1£4 £ 5 4
squeeze Ihe proverbial quart
m e a n b i g memory blocks to £ ? 4 0 40 9 119 35 19 ISi
into the Spectrum's pint pot? One
store them — 6912 byles £ 5 4 56 £ 4 3 £ 0 1 19 £ 6 £13 way is to have a smaller "quart".
(memory spaces) 1o be precise if ££ £39 19 In other words, perhaps you
you wanl them in glorious
0 9 5 £ 5 £ 0 9 £ 4
would b e happy with a two
Sinclaircolor. If you're envisaging £6 £13 ££ 0 9 5 £ 5 £09 £ 4
colour drawing (INK a n d PAPER),
a "Mugsy"style c o m i c strip, : i* 19 £6 71 54 £55 3 5 16 which takes up 768 bytes less.
driven by a relatively short '1 IA 506 You c o u l d g o further by having
program, this may not matter. only a top third, or two two-thirds
Let's assume for the moment it screen picture (many adventures
doesn't, a n d see how we c a l l make you m u c h the wiser. In
essence, you set one counter to use this system, leaving the
store a n d recall the illustrations. bottom of Ihe screen clear for
the number of bytes to be
First of all, how many c a n you transferred, another to the start text). The REMs given in Program
store in memory? Answer — 5, ol Ihe D FILE, a n d a third fo the 1 will tell you the c h a n g e s you
with about 6K left for the driver destination address. LDIR does will need to make for these
program ("128'' owners will the rest, continually transferring variations. If you want to mix
obviously d o m u c h better than bytes until the first counter is various types of illustrations in
this). Next, how d o you store r e d u c e d to zero. one program you'll need to
them? In principle what you POKE 65364 with the appropriate
have to d o is to transfer the The necessary c o d e is
i n c l u d e d In Program 1, which value shown In the line 100 REM
contents of e a c h byte of Ihe before you call the routine.
display file (D FILE) a n d will make the transfers for you,
attributes area (ATTR) where Ihe modify the c o d e to make it work This technique obviously
on-screen pictured is stored Into in reverse, then save it a l o n g doesn't help if you really want
high memory, knowing where with the picture bytes. Type It in, full screen Illustrations, but there
you're putting It. You c o u l d d o a n d let's try it out. If you have is a way around that problem if
this by PEEKing e a c h byte, then some pics ready m a d e with a you're p r e p a r e d to sacrifice a
POKEing the contents up. but this d r a w i n g utility (such as Toni little speed for a great saving in
would be quite slow. The solution Baker's l i g h t Screen Designer) space. If you type in the
is a short m a c h i n e c o d e routine you c o u l d use those. Otherwise following line:
which uses the instruction LDIR. the "rainbow" a n d "logo" LOAD ""SCREENE : FOR f=16384
This stands for SCREENEs at the b e g i n n i n g of TO 23295 : PRINT H 0;"Address
load/decrement/increment/ your "Horizon's" tape will be ";f,"holds PEEK f : PAUSE 20 :
repeat which probably doesn't quite satisfactory. NEXT f
RUN Ihe program, a n d you'll Press ENTER, then LOAD in a
be asked how many pics you picture. You'll see a series of
wont to save. Let's try two. Answer numbers a p p e a r at the bottom
the prompt for a title with the first of the screen as the program
pic. then play the tape. The PEEKs its way through the D FILE,
picture will l o a d in more or less a n d later the ATTR if you wait
instantly a n d be transferred to long enough. You'll notice that
high memory, the address of the numbers 0 a n d 255 (and
which will be given. Make a later the permanent attribute; for
note of this, a n d the POKE example 56 if the b a c k g r o u n d is
number as well. You'll need this black on white) occur more
information later. Repeat for the often than any others. This is
second picture, a n d there you because most of a picture is
are. You c a n then save the data either blank space (0) or Inked
for the two pics plus the in £255), whilst much of the
m a c h i n e c o d e to drop them attributes area remains
b a c k down. u n c h a n g e d . Knowing this, it is
To make use of this routine possible to c o m p a c t the d a t a for
you will n e e d a subroutine in a picture by storing, for example,
your program such as: a line of 32 zeros as 0,32. Using
9999 POKE 65358, h : this technique even a complex
RANDOMIZE USR 65356 : RETURN picture, such as Ihe "rainbow"
Where you have set variable SCREENE is c o m p a c t e d to about
h to Ihe POKE number you noted half its usual length. This Is what
for that picture, before you the c o m p a c t o r routine (Program
GOSUB 9999. Try it. but don't 2) does. Type it in a n d let's try it
blink at the wrong moment. out,
You'll miss it! RUN the program, a n d answer

72 ZX C o m p u t i n g Monthly • March 1987


PROGRAM 1 PROGRAM 2
5 REM picsave 1 REH compactor
10 I N P U T " N o . or* p i c s to store 10 INPUT "Title?" as I F a$ = " '
T H E N STOP
? " ; n 15 INPUT " a t t r i b u t e v a l u e ' " c:
20 P O K E 2 3 7 2 8 , n : L E T a =65367-n Hinot needed for D_FILE o n l y
• 6 9 1 2 - 1 3 : •siJgMr pd I a r e 6912 wi t h LORD aSSCREENS
LET D=16354
for top t h i r d o f s c r e e n , LET a =4.0000 K S a i d a t a s t a r t
4-09* f o r t w 0 t h i r d s , 614-4- f 0 r I F d ' 2 2 5 2 7 T H E N GO TO -iOOO
D_FILE.only ! a d j u s t 22S27 i f altering
m a c h j ne c de
2,5 CLEAR A: LET n =PEcK 1020 I F PEEK d =255 THEN GO TO 20
LET a =65367-n *6912-11: E I 1691^ 00
replaced as a bove 1025 I F PEEK d =0 THEN GO TO 3000
1030 COKE a .PEEK d: LET a = a * l i_
28 LET S =a : P R I N T "CLEAR :' S - i ET d =d +1 GO TO 1010
; " beFO RE LOHD i nG " : FOR F = 6 5 3 5 6 2 0 0 0 POKE a , 2 5 5 : FOR f = l TO 254-.
TO 6 5 3 6 7 : READ I : POKE F , I : NEXT
I F PEEK ' d + f ) < >255 OR d + f > 2 2 5 2 7
THEN GO TO 2 0 5 0
2 0 1 0 NEXT f
3 0 F O R f =1 T O n: I N P U T " T i t l e 2 0 5 0 POKE < a +1) , ( LET d = d * f LE
T 3 = a +2: GO TO 1010
of p i c "; (r");"?", a $ : L O h D * " m " ; i 3000 POKE a , 0 : FOR t"=l TO 254. I
;a S S C R E E N $ F PEEK :d + n <•0 OR d + f > 2 2 5 2 ^ THE
4-0 R A N D O M I Z E a: L E T I = P E E K 2 3 6 N GO TO 3050
3 0 1 0 NEXT f
70: L E T h = P E E K 2 3 6 7 1 : P O K E 6 5 3 5 7 3050 POKE (a +1) , f LET d = d + f LE
. I: P O K E 6 5 3 5 6 , h: R A N D O M I Z E USR T a =a +2 GO TO 1010
4-000 I F d <23296 THEN GO TO 5000
; J* • M i l n o t i r* o m i t t i n g attributes
50 P R I N T " D a t a s t a r t for , l i ^ I; 4-005 PRINT a-4-0000 INPUT " T i t l e
(f) ; " = "; a " (POKES : " . I, ^".as SRUE a tCOOE 4-0000,3-4-0000
L E T a = a + 6 9 1 2 : R E M Ireplace 6 9 1 2 -•TOP Uzu*im 4-0000 =da t a s t a r t
as b e f o r e 4 - 0 r e m a i n d e r n o t needed i f
omitting attributes
60 N E X T f: P O K E 6 5 3 5 6 , 3 3 POKE 4-010 I F PEEK d=C THEN Gu TO 5 0 0 0
F, 5 3 5 9 17 —020 POKE a,PEEK d LET « = a * l L
"70" S T O P : S A U E "Pi CS " C O D E S , n * ET d = d ^ l GO TO 4-000
5 0 0 0 POKE h r FOP t = l TO 2= I
6912+12 ~ PEEK i d + f > •• c OP d + f 2329® "HE
100 D A T A 1 7 , 0 , 0 , 3 3 , 0 , 64 ,1.0 , 27", N GO TO 5 0 ^ 0
237,176,201: e P I a c e 27 w i t h 5010 NE'T i
24 for D _ F I L E o n l y , 16 for top 5 0 5 0 P0>-- E • a * 1 > , f LET d =-a * LE
T GO TO 4-000
t w o ' t h i r d s , 8 for top t h i r d only
9 9 9 9 E a B M C a II w i t h : - P O K E 6 5 3 5 6 , Now you have your
h i g h byte of d a t a s t a r t a d d r e s s : c o m p a c t e d codes separately on
RANDOMIZE USR 65356 t a p e you n e e d to save them as
o n e long c o d e length. Do this
the "attribute" prompt. If you
haven't got the Table I supplied Table B
in the January column, you c a n LD H L , 16384
calculate it yourself. Say the LD DE. dataotart ;POKEd before call
picture is d r a w n in b l u e ink on LOOP: LD A,(DE)
yellow p a p e r the value w o u l d CP
be 1 (Ink) + 6 (paper) • 8=49. 255 jcheck for filled byte
JR 2, PILL
Now l o a d in the SCREENE a n d
wait. From now on the p r o g r a m CP 0 ;check for blank
takes over, a n d the c o m p a c t i n g JR Z , MISS
may lake some time, so g o a n d LD (HL),A
make a c u p of coffee, or have a INC HLHL
stroll around the g a r d e n . You've RET: INC DE
been h u n c h e d over that VDU for LD A ,H o
loo long anyway! When the
transfer is c o m p l e t e the number
CP
JR
88
C , LOOP
;80 for 2/3 ocreen, 72 for 1/3 screen
z
£
of bytes that the picture has LOCPl: LD A,(BE) ;replace with RET if D — FILE only
been c o m p a c t e d Into is CP attribute jattributes Btart here. POKE attr value
displayed. Make a careful note
of this, a n d the title you use to
JR
LD
Z, KISS1
(HL),A <
save the c o m p a c t e d c o d e to INC HL
tape. Repeat with a new
attribute value a n d SCREENE
RET1: INC
LD
IE
A,H
oc
until you have all you need,
then just reply to the "attribute"
CP 91 O
JR C, L00P1
prompt with ENTER. O
RET
MISS1T INC DE {routine to skip attributes not to oc
LD A(DE) ;be altered a.
PUSH DE
LD D,0
LD E,A
5
Clyde Bish presents lips ADD
POP
HL,DK
DE oc
on full screen graphics. MISS:
JR
INC
RET1
DE ;routine to skip D__FILE bytes not
LD A,(DE) ;to be altered O
PUSH DE iii
LD Df0 Q.
00

73 ZX C o m p u t i n g Monthly • M a r c h 1987
LD E,A article, a n d supply a simple
ADD HL,DE program of the "Kingdom" kind
POP DE for those who want something to
work on to use as a driver for
JR RET their graphics. The listing is
FILl : IMC DE ;routine to f i l l fcytno
given in Program 3. The purpose
LD A,(DE) of the g a m e is to a c c u m u l a t e
LD R,A £100,000 by astute, if somewhat
RACK: LD (HL),255 shady trading practices. The
IMC HLHL scenario is the South China
DJNZ RACK Seas, but c o u l d lust as easily be
JR RET smuggling a l o n g the Cornish
coast, or whatever. Your ship c a r
hold 50 units of cargo, the
PROGRAM 3 buying/selling price of which
fluctuates. You start with £500 of
1 REM T f l d t f from iot) tv qaq-lNT (RND*q> PRINT 80,"YOU C your own. plus £5,000 you have
o . . floods ari o n l y i t I I ";q PAUSE 1 0 0 INP
10 PPINT TPAOEP I N P U T "Lih 0 UT , [ borrowed a n d must ultimately
is the Cat-lai n ? " , n t CLS £150 LET b = b + P * q LE"L<.'«U+< IF pay back. Interest is a d d e d to
37 LET i $ . LET laO LET P*="G" THEN LET g = g - q this whenever you c h a n g e ports.
t = 5 0 0 : LET y a S O O O L E T UaSO LE ££io IP p ® a " A " THEN LET a * a - q
• 9=0: i_ET »iO LET i iO LET u =0 £ £ £ 0 IP Pt>"$" THEN LET i = » - q Oh yes. You may run into storms
L E T taf L E T l«l co sue soop £ 2 3 0 IF p » a " U " THEN LET w s w - q
55 CO SUB 9 3 0 0 £2*0 IF P$="0" THEN LET OSO-Q en route a n d lose part of your
100 P P I N T AT O , 1 0 ; n s Bam £ 1 4 . 5 IF b> 1 0 0 0 0 0 A N D y « 0 THEN GO cargo.
»" b+y,i» "Bflfrcwtd TO 9 0 0 0
» yj£» CtC» i P J C f ' . W . l l
11 0«".' , I j • •General C a r g o
"LOCJ £ 3 0 0 CO T O 9 5
3010 LET t . t + 1 LET i » I N T <y+.l>
The program, which will run
O r » » " , « , i » " S i l t , " , ! , I S "Uhi£»y LET y«y + i LET as listed, is in a very simple
V S I OPIU»",O,S» PRICES 3 0 2 0 I N P U T AT 0 , 0 ; " P o r t s l.Hong
format with a simple text screen
S-. r.f-al 5 , p (1>, j » " S'«S I";p i-or.g Singapore S.Macao A.Ba
£ i t fi: U 1";P(3) St ^ 1 s r, i o » 3 . Sti a n g h a i " ; l display. As listed it takes up
•V » " , P * 4 > , t » ' i u a P ( 5 > , 3 0 5 0 GO S U B 9 9 0 0 : I F R N D > , 2 5 THE
some 3K, but this c o u l d be
11 N GO T O 9 7 0 0
ii
110 PPINT
},$»ii"'r
"'OPTIONS Buy 2.St
Borrow"
3 0 9 0 GO T O 9 5
a 0 £ 0 INPUT B o r r o w or EkpayiR)*
shortened considerably using
flNC- l » H "tc * the byte-saving tricks I
120 INPUT "Choott your opliort 404.0 I F C » S " B " THEN CO TC 4500 demonstrated earlier In this
1 7 0 0 0 TO : # 1 0 0 0 •1050 I N P U T "HOW •och" series. There are a few error
1000 I N P U T Uh»l JO y o u w a n t " •1030
55
L E T y ay - p LET b = b - » CC TO
checks. Writing these in is a
P t
1 0 - 0 ^ £ T p u p 111 A N D p | « " 0 " " ' P ' 4,500
4530
I N P U T "HOW
LET y = y + n
»ych? ";«
LET bab+» CO TO
g o o d p r o g r a m m i n g exercise. I
£ S N D P i = " A " I • ( p i 3< A N D o f 5 " <
- t ' i : AND P $ = " U " P • ( p ( 5 » AND P S a 95 leave it to your imagination to
"0" i 9005 CLS P P I N T "YOU c a n r i l i r t a d d the scenes using picsave,
1075 PPINT 8 0 , "Vow car. a f r o r c t . " I l h »100,100. You t o o l M i
INT P>» PAUSE 1 0 0 IMPU »OVt", C'l" AND t < > l » STOP compactor, or any o f the other
T ,
q
INPUT HOW t j n v JO y o u want 9710 PPINT 30,"STORM""
0 INPUT ,
PAUSE 10
I F R N D c . S T H E N CO T O techniques I've e x p l a i n e d
1 1 5 5" L E
—T LET b=b-<q+P' 9730 earlier.
1170 IP P S a ' G - THEN LET gag+q c.74,0 O P I N T a o , " M a i r y o u r cargo t
1100 IP p » s " A " T H E N L E T a =.a+q S lost" PAUSE 100 INPUT ,r LET One last bit of help, though,
1190 IP P $ « " 5 " T H E N L E T i = i +<i 9 =INT <g/2> LET a aINT (a/2) L
with PRINTS a n d INPUTs. Printing
I" P » « " U " THEN L E T W aw + q ET S • INT "i/2>: LET WSINT hi/£i .
i £ 1 0 IF P » a " 0 - T H E N L E T 0 ao + q LET.0'IHT <o/2»: LET y=50-'9+a+ to the screen (with speech
OC T O 9 5 t +w+0) GO T O 9 5
0 INPUT 'Uhat do yov war.t to 9 7 3 0 P R I N T 8 0 , " S T O R M OUER. ALL 0 bubbles if you wish) is quite
1 ' , Pt .K." PAUSE 1 0 0 INPUT , GO T O easy. Simply use
* V * 0 I P RNC> , 7 T H E N PRINT so IC
•ry - buyc j - PAUSE 100 Inpu 9 ? 0 0 D I M p 151
<15+1'
LET P ( 1 ) a I N T
LET p (2) a 1 0 * INT
<RND
( P N D * 14- +
PRINT AT r, c; " t e x t "
CO T O 1 0 0 5 I LET P ( 3 ) = 1 0 * I N T 1RND* 7 0 0 + 3 0 ) where r=the row, a n d c = t h e
£050 lET p j ' p ' l l ANC' P » a " G " + 'p'
£ AND P L A " f l " ) + I P ( 3 ) AND P S « " S " »
L E T P <4.) - 1 0 0 4 I N T
ET F l S ' a l O O + I N T
(RND+26 + S)
(RNDf91+10' PET
L
c o l u m n you wish the text to
•„ 0 ..
p( i . A N D P S B - - U " ) * IP ' S i A N D P t = UPN " appear.
9 9 0 0 L E T l t > ( " H o n g K j o n g " «ND 1=1
£120 INPUT "HOW «any to J t l l " + ' S i n g a p o r e " AND i*2>•<"Macao" For inputs you'll n e e d to use a
q AND i s 3 • t " B a n l o n . " AND
1 l = 4 i «• < " 5 subroutine to simulate the
21"0 I" q >1 AND RND>.7 THEN LET h t t j h a r 1 AND l a 5 » RETURN
normal input routine, but
wherever you want on the main
by a d d i n g up all the c o d e 65305, PEEK 23670: POKE 65306, screen. A d d Program 4 to your
lengths you noted, a n d a d d i n g PEEK 23671: POKE 65326, c: INK main driver program, a n d set r
67. (This Is for the m a c h i n e c o d e c-INT (c/8) '8: PAPER INT (c/8): a n d c to the row/column you
you'll need later to " u n c o m p a c t " RANDOMIZE USR 65301: RETURN wont the input characters to
them). Let's call the answer T. where variable a Is the d a t a appear, before you c a l l the sub-
CLEAR PI, then l o a d in the first start of the picture you want to routine. C o d e 12 Is delete (see
c o m p a c t e d c o d e to address T call (noted when you m a d e the p.163 of your manual) so CHR£ 8
using one long c o d e length), a n d c is (cursor left) is used to b a c k s p a c e
LOAD "title" CODE T the b a c k g r o u n d attribute value before printing the replacement
Load in subsequent used in the compactor program character. C o d e 13 in line 9995
c o m p a c t e d codes, a d d i n g the (49 in my earliest example). is the c o d e for ENTER, so the
length of that c o d e to the Table B gives an annotated subroutine returns.
previous address, a n d noting Ihe disassembly of the m a c h i n e Now a w a y to the pixel paper,
new l o a d address. So if the Tirst c o d e so that readers who want a n d get sketching!
c o d e was 2000 bytes long, the smaller/two-tone/line drawings
next would l o a d in at T+2000, wilh no filled areas, (AND who
a n d so on.
Hopefully, when all the codes
understands what they are
doing!) c a n alter the m a c h i n e
PROGRAM 4
are in you'll have 67 bytes left c o d e to operate over less of the 10 pem i n p v t sgt-rovir i
11 PEM r«rou, t«Colv"n
below the start of the udgs. Load screen/ignore the attributes/ 9000 PPINT - C
in the data from Table A, ignore 255s a n d so make it run 9010 FOR 0=1 TO £0 RIE'T ,
9020 IF I N K E Y * * " " THEN :-: TC
reading across e a c h line, with: faster. (Program 2 will also n e e d 0
FOR f=65301 TO 65367: INPUT i: adaptation. Refer to the REMs). 9 0 3 0 I P CODE INKEVFALI -HE'4 I S W
EN • $ C THEN PRINT CHP» 3 C
POKE f,l: NEXT f HPJ 3, LET a»=a»> TO L£M i » - l
Now save the whole d a t a a n d Kingdom came ' GO TO 9010
904-0 IP CODE INK EV SALE THE'I CO T
m a c h i n e c o d e block with SAVE 0 9010
9050 IF CODE LNI-EY»A!3 TM£;: P£TU
"title" CODE T. 65368-T. Next time we'll be looking at P><
9 0 6 0 I-ET ITALNKERT IF : j A 0
To use this c o m p a c t e d c o d e make strip-cartoon-type :»D : s • " 2 " THEN _ET n = C M P t
A
ICOD
in your programs you need to adventure graphics, "Redhawk" E iS + 32'
9070 LET i t > i l 4 i ! PRINT i t EE
have a subroutine such as: slyle, but before I g o I'll keep the EP . 1 , 1 4 ; GO T O ? 0 1 0
9999 RANDOMIZE a: POKE promise I gave in a n earlier

74 ZX C o m p u t i n g Monthly • March 1987


Q-L I b e r a t o r
David Nowotnik reviews several Q-Liberator c o m p i l e d
programs running concurrently.
SuperBASIC doesn't perform true
integer mathematics (integers
Extended SuperBASIC are converted to floating point
the latest BASIC c o m m a n d s c a n b e incorporated numbers before they are used),
into the Q-Liberator p r o d u c e d so a very large saving with use
compiler for the QL. code. Up to eight m a c h i n e c o d e of variables with the '%* suflix on
sets of new c o m m a n d s c a n b e compilation was to be
Q-Liberator a d d e d , but you'll n e e d to have
a little knowledge of these
expected. It seems that
Q-Liberator will not correctly
Liberation Software routines (the starl of the interpret the '%' in a variable
£69.95 initialisation routine, a n d the without the integer maths
start of the n a m e table relative directive switched on.
ol long ago, there was only to the start of the code) to Surprisingly, with the integer
one BASIC compiler for the QL; supply the compiler with the directive, the simple loop takes
now there are three. The first. a p p r o p r i a t e parameters. Other longer to perform, so care is
Supercharge, was reviewed in ZX compiler options include setting n e e d e d with this directive to
Computing a year ago. Next on heap, stack, a n d input buffer optimise operating speed.
the scene was Q-Liberator, sizes, a n d switching on/off Integer mathematics with
closely followed (at least, in Integer arithmetic modes. These trigonometric functions is
theory) by Turbo from Digital options are a v a i l a b l e by meaningless, but the compiler
Precision. Inserting simple REM lines into c o m p i l e d a n d ran integer trig
Q-Liberator Is supplied in a n the SuperBASIC program. functions without complaint!
attractive vldeo-cassette-slzed A number of SuperBASIC For comparison, the same
case, with two microdrive extensions are supplied with routine was c o m p i l e d with
cartridges a n d a n 80 p a g e Q-Liberator, for use specifically Supercharge, a n d the operating
manual. Of the two cartridges, with the compiler. Of particular speeds are about the same:
one Is a fuliy working 'copy', the interest are c o m m a n d s to turn Supercharge has the e d g e on
olher Is a 'master*. The ingenious on/off the cursor in the c o m p i l e d the simple loop a n d integer
security protection system on program, a n d a useful set of maths, Q-Liberator does slightly
Q-Liberator prevents users error t r a p p i n g c o m m a n d s which better with the FOR/NEXT loop
obtaining working copies of one c a n r e p l a c e the mixed b a g of a n d trigonometry test.
ot the essential compiler files by c o m m a n d s in the various ROM Supercharge failed to c o m p i l e
all means a p a r t from use of the versions ot the QL. RESULT procedure correctly (it
master, The user c a n obtain up The producers of Q-Liberator provided a n integer result), so
to five working copies from this make the c l a i m for their product that h a d to be altered to
master, configured to any that It is fully c o m p a t i b l e with provide results lor comparisong.
chosen storage device. O n c e a SuperBASIC (bearing in mind All file sizes were
working c o p y is created, it c a n that there are several o b t a i n e d using the INFO option
be used without hindrance from c o m m a n d s e.g. LIST which make in iCE. Surprisingly, all
any other security system. no sense in a c o m p i l e d code). Q-Liberated files were larger
Using Q-Liberator is simplicity In reviewing this product, several than the corresponding
Itself. The boot program loads programs were c o m p i l e d . All SuperBASIC file (even without
the compiler's run time routines c o m p i l e d versions worked well, incorporating the run time
and SuperBASIC extensions used with little or no modification module), a n d their size not
by the compiler. O n c e Ihese are required to the BASIC programs predictable from the size of the
Installed, the BASIC program to to achieve successful original SuperBASIC file.
be c o m p i l e d Is l o a d e d as compilation. The compiler Incorporation of the run time
normal, a n d the program picked up a missing END SELECT m o d u l e a d d s another 8K to the
c o m p i l e d with the 'LIBERATE' in one program, which QL's size of the c o m p i l e d program.
command. translator d i d not seem to mind. For the shortest (875K BASIC
Q-Llberator compiles in two The friendly error a n d warning file) program, c o m p i l a t i o n took
passes. The first pass produces a messages allowed easy 180 seconds with microdrives
working copy of the BASIC interception of this a n d other a n d 115 seconds with RAM discs.
program; the second pass minor problems. In every case, l o a d i n g the
produces the c o m p i l e d code. The first thing to note is the c o m p i l e d program was much
The user c a n select the second difference memory size c a n taster than the corresponding
passes to occur automatically make to operating speed: with SuperBASIC program. This was
after the first, if sufficient RAM is more RAM. BASIC a n d c o m p i l e d particularly noticeable with the
available. programs work faster. The test longer programs.
There are several options program c o m p i l e d with With its very close
available for the c o m p i l e d Q-Liberator (with all default compatibility with SuperBASIC.
code. In program development, options set) p r o d u c e d significant a n d simplicity ol use. Q-Liberator
Q-Liberator will p r o d u c e a line savings on everything except the oilers a distinct a d v a n t a g e over
number table andtor memory trigonometry test. This is not Supercharge. And for
usage statistics, which help to surprising, as trigonometry those who simply want their
identify errors. These options c a n calculations require a lot of SuperBASIC programs to l o a d
be suppressed In p r o d u c i n g the ROM time — whether in BASIC or a n d work faster, Q-Liberator has
final version, to save space. The as a c o m p i l e d program. a lot to offer. Pity it is not priced
run time routines c a n be Inclusion of the run time m o d u l e a little more reasonably.
incorporated into the final code, into the Q-Liberate c o m p i l e d
producing a totally i n d e p e n d e n t program makes no significant
program, or they c a n be kept difference to operating speed. Liberation Software, 43 Clifton
separate. The latter option c a n The time saving on integer Road, Kingston upon Thames,
save a lot of space if you have maths was disappointing. Surrey.

75 ZX Computing Monthly • March 1987


Peter Sweasey is a n d you get a lot more for your
£1 cover fee (or 75p If you take
Road, Highfield, W i g a n WN3 6AT.
A product c a l l e d the
thawed out temporarily out a year's subscription). As
Sandra Sharkey (the magazine's
Adventure Builder System also
r e a c h e d me this month, courtesy
to review Silicon editor) says, reader f e e d b a c k
has improved it tremendously.
of CRL's awesomely feeble
b u d g e t division, A l p h a O m e g a .
Dreams and the first There are various hints, reviews,
a n d opinions; but what Probe
For just under a fiver, this m a y
a p p e a r to offer a b a r g a i n Quill,
GAC adventures. seems especially strong on Is but no such luck. It provides you
help. Several p a g e s are with a set of routines a n d
"•""hough the Ides of M a r c h m a y c r a m m e d full of readers' names, structures for you fo write your
b e a p p r o a c h i n g as you r e a d followed by lists of g a m e s that g a m e a r o u n d — in BASIC! The
this, the d u n g e o n Is currently they are p r e p a r e d to h e l p with. c o d e d routines are m u c h faster
several inches d e e p in snow. No M a p s a n d solutions c a n b e than BASIC w o u l d be, s p e e d
£5 bonusses for me; I just have to b o u g h t from Probe themselves supposedly b e i n g that
content myself with m a k i n g snow for the princely sum of a first language's m a i n disadvantage.
figure versions of Bryan, my class stamp! Enclosed with e a c h This really is a pointless release.
b a r b a r i c editor, then Jumping issue is Adventure Shop, w h i c h is G A C the Quill a n d Gilsoft's soon-
u p a n d d o w n on them. a c a t a l o g u e of amateur g a m e s to-be-released Professional
It is so c o l d at the moment for sale, some of w h i c h sound Adventure Writer all e n a b l e you
that my faithful Spectrum (this most Intriguing. Something to write m u c h faster a n d more
particular m o d e l is over four w h i c h particularly c a u g h t my c o m p l i c a t e d adventures, wifh
years old) has b e e n affected. If eye was a n a d for The Fix — a n almost the same flexibility as
left in its usual position overnight, a d d i t i o n to The Quill which, BASIC but less of the hassle.
half the keyboard behaves as If though not written by Gilsoft, BASIC p r o g r a m m i n g is time-
symbol shift is permanently a d d s full sentence interpretation c o n s u m i n g a n d wasteful of
b e i n g pressed; the remedy is to a n d a proper WAIT c o m m a n d . m e m o r y — that's why Quill-type
p l a c e the m a c h i n e in the linen Generally, interaction between utilities were d e s i g n e d in the first
c u p b o a r d for ten minutes! readers seems better than in place. Besides, ABS is only £4
most such clubs, so if you're a n c h e a p e r than the recently re-
Several months a g o I p l u g g e d adventure freak, it c o u l d b e p r i c e d Quill. It p e o p l e want to
a then f l e d g l i n g adventure c l u b worth b u y i n g a trial copy. Send write for pleasure, I think they will
c a l l e d Adventure probe. Well, I'm £1 for a s a m p l e Issue to: p a y the extra; if they want to
g l a d to see the m a g a z i n e has Adventure Probe, 73 Merton write commercially, they'll have to.
grown considerably since then.

76 ZX C o m p u t i n g Monthly • M a r c h 1987
E L P L I N E preservatives! A n d now at
s p e c i a l sale prices — every
w h e n you arrive t h e n SAY TO solution must go! If you h a v e a
8ARD "SHOOT DRAGON". If he's nasty Boggit p r o b l e m , troubles
not, g o east, wait for a few with vampires in Dracula, or are
I've b e e n h a v i n g a little new- moves ( w e a r i n g the r i n g m i g h t u n a b l e to ring that b e l l in
year c l e a n o u t d o w n here, a n d help), then east a g a i n a n d he H u n c h b a c k — well M i n d p l a y
I've d i s c o v e r e d s o m e t h i n g of a s h o u l d b e there. (TM) c a n help.
b a c k l o g of o l d p r o b l e m s to b e A d a m Cochrane needs help Yes, your super, s o a r a w a y
d e a l t with. Sincere a p o l o g i e s to in Denis T h r o u g h The D r i n k i n g ZXCM has d e v i s e d this simple
a n y o n e w h o has h a d to wait for Glass The i m p o r t a n t t h i n g is not system — even the hamster
a reply: I s h o u l d h a v e c l e a r e d to g o out t h r o u g h fhe w i n d o w to c o u l d use it!
the system by the time you r e a d start with. Dress, take the letter, Step 1: Take a pen.
this, so y o u will not h a v e to wait r a d i a t i o n suit a n d Cherry Step 2: Fill in Ihe coupon.
so l o n g in future. Blossom, move the sheets from Step 3: Send it oft lo the address
P. Logue from A b i n g d o n asks M a g g i e ' s Den to your own, take below.
how to p a y tribute to Nero in a n d w e a r the teeth, then out into Follow those a n d before you c a n
Roman Eureka. Anthony Dunn D o w n i n g Street a n d BUY TICKETS. say Sid, your posers will have
kindly supplies the answer: K. Thain wants to b o a r d a b e e n solved. Please r e a d the
simply HAIL him. Another q u i c k i e train in D o u b l e Play's The small print n o w . . .
from Mick Hitchman, w h o n e e d s M o r e b y J e w e l s I've never British correspondents, p l e a s e
Ihe words to c l i m b out of the lifl p l a y e d this, so I'm i n d e b t e d to enclose a stamped, addressed
in Interceptor's A f t e r s h o c k , o n c e the h e l p of Cheshire's J o h n e n v e l o p e if you want a personal
he has r e m o v e d the c e i l i n g Hunter. In the g a r d e n of your reply rather t h a n wait s o m e
p a n e l . Er. CLIMB OUT OF LIFT... house. GET ENVELOPE (it's sticking months (or the m a g a z i n e to
D a v i d Brown of Standord-Le- out your door), a n d OPEN it. G o c o m e out. If you are w r i t i n g from
Hope w o u l d like to enter the to the railway station, GET a n d a b r o a d , just e n c l o s e a n
Ivory Tower in Ocean's Never READ TIMETABLE, G O TOILET. USE e n v e l o p e — I'll a d d the postage.
Ending Story. As far as I know, it's TOILET, U, N, SHOW TICKET. ENTER I try to r e s p o n d within two
impossible in Part O n e — you PLATFORM a n d BOARD TRAIN. "K" months but I c a n lake l o n g e r (on
certainly d o not n e e d to. A1 the is also stuck in K-Tel's C a s t l e the other h a n d you m i g h t
start ol Part Three you'll find C o l d i t z , w h i c h a g a i n I have not receive a n i m m e d i a t e reply). I
ourself outside it - UNLOCK p l a y e d , but w h i c h a g a i n J o h n ONLY DEAL WITH ADVENTURES. Not
DOOR with the g o l d key from Hunter helps with. USE GRENADE a r c a d e g a m e s ; or t e c h n i c a l
part two (found west from the in the p a s s a g e of rats. Avoid the p r o b l e m s (write to Crosswires
torture c h a m b e r } . Thanks to r a d i o room, you don't n e e d to a b o u t those); or a r c a d e
Charles J a m e s for a Never visit it to c o m p l e t e the g a m e . adventures ( G a r g o y l e g a m e s
Ending solution. J o h n also h e l p e d a r e a d e r out i n c l u d e d , not even Heavy o n The
Peter Davies — w h o d e s c r i b e s with Runes Of Zendos (the solu- M a g i c k ) . Please put the n a m e of
himself, q u i t e a c c u r a t e l y , as "the tion is too c o m p l i c a t e d to print the g a m e you're writing a b o u t
hermit w h o is still p l a y i n g P l a n e t here) so m a n y thanks i n d e e d . o n b a c k of the envelope. A n d
Of D e a t h " — wants to know how PLEASE don't write letters asking
to get the mirror without HELP! for g e n e r a l solutions — I just
b r e a k i n g it. From the c a v e r n its A n y b o d y out there solved Vera don't have the time to write
housed in, g o to the a d j o i n i n g Cruz or Q u e s t p r o b e 3? Please these out for everyone. (They c a n
wind tunnel, a n d take a n d w e a r s e n d m e a solution if you have b e o b t a i n e d , however, from
the gloves you'll find there. With — I'll b e h a p p y to h e l p with c l u b s like Adventure Probe —
these, p i c k u p the m a n a n d a n o t h e r g a m e in return. see this month's introduction).
d r o p him. As a result, he'll b e The address is: M i n d p l a y , ZX
removed from the mirror, so you Wave goodbye to C o m p u t i n g . No 1 G o l d e n
c a n shoot h i m without i n c u r r i n g
b a d luck.
adventuring blues . . . Square, London W1R 3AB How
m a n y other m a g a z i n e s solve
Some H o b b i t q u e r i e s next. with new system. Helpline your p r o b l e m s like this AND
Someone c a l l e d a u t o m a t i c No a d d i t i v e s or l e a v e your h a n d s silky smooth?
" V a n d e p e o l t o m " from B e l g i u m
wants to l i n d the m a g i c r i n g In
the dark, stuffy passages. From
the Goblin's d u n g e o n , g o west Title:
out the window, then SW. D, WAIT
lor the g o b l i n to a p p e a r . N, SE
a n d E. Les A c t o n trom the Iste of Company:
Wight has b r o k e n t h r o u g h the
spiders' w e b to the Elves'
C l e a r i n g . "How d o I g o t h r o u g h Problem:
the m a g i c d o o r ? " You n e e d to
wear the ring, then EXAMINE
DOOR. Keep WAITing a n d
w e a r i n g the r i n g alternatively;
eventually Ihe d o o r will o p e n as
a n elf sweeps by. G o NE
i m m e d i a t e l y this h a p p e n s ,
before the d o o r closes a g a i n . ) c a n h e l p solve:
N o r w e g i a n Sam M a c D o n a l d
wishes to kill the d r a g o n without
anyone's help. I think this is Name:
impossible: you n e e d to p i c k u p
Bard a l Lake Town (literally! — Address:
CARRY BARD). Then h e a d to the
dragon's treasure hall, a v o i d i n g O
him o n your way. II he's there <

77 ZX C o m p u t i n g M o n t h l y • M a r c h 1987
Lisa with a blue crayon. First up. RAMSAVE.'LOAD Is standard
my traditional moan: Ihe gra- on Quilled games, so Its omis-
SILICON
Rainbird
DREAMS phics are truly abysmal. Blotchy,
often unrecognisable and. In
sion Irom a ma|or release is
disappointing At least II could
this collection, so simple in hove been included in the texl
£14.95 design as to render Ihem even only version, using some ol the
more pointless than in Ihe past. memory (reed by removing the
The screenshots here d o not d o graphics, its absence wouldn't
them Justice — you have lo be be so b a d it conventional tape
close to the screen (or Ihe lull l o a d i n g was not so drawn out.
impact In Ihe case of Eden, Ihe The security device — giving
graphics are worse than Ihose you a p a g e a n d line reference
included on its original release! from Eden Song a n d asking you
I always thoughl the Spectrum's which word it refers to — Is not
attribute problems were to as Irksome as Lenslok; however,
b l a m e (or Ihe pics' dreadlul* you have lo d o this every time
ness. but the Atari ST screenshols you RESTORE from tape, which
shown on the p a c k a g i n g are (or most advenlureers I suspect
almost as useless. Why Rainbird will be often, as d e a l h lurks
allow this sloppiness in what Is round every corner. Why not just
supposed to be the cream of ask (or a word at certain key
a n d .-.lit . British adventures is beyond me: points In the game?
" f 1 in K 1 rn b er u 4 , h 1 1 j f I «'. r , Ihough at least I see ST users will
p c e p tO d 1 • . **
be getting digitised Geoffrey As with JOD, I musl express
Uh a t n o " ou r Dawson graphics on the next how disappointed I a m thai Ihe
• ou re be s 1 d £ j i. t r j t o<» 1. 1 d e r 1n joint release. Forlunately, potential ol these games has
a rn a d o w •;< 1 t r b r i g h t 'j n
expanded, <1 versions of
text-only not been realised. I sincerely
f 1.0 in e r j . E 1 t ? « r r 10 1* t h . 6 3 t , e a c h adventure are provided h o p e Level 9 will lake notice o(
$ ou th . «t e i t j r» d 1 11a The quality ol Ihe text is so much some ot Ihe criticisms — they
The i \ y h o o • ii-:e nd 1g 1 xn . better In these versions that they are meant lo be constructive.
Uh ^ t n o w " E VAI 1 C G U N T E P feel like different adventures. That said. Ihe p a c k a g e offers
ft r a d 1 H i O ri i t j t I I I . Certainly they are much more improved versions ol three
U h a 1 r 1 OM U
atmospheric a n d they are excellent adventures at half the
easier, since the strange tech- original cost. Individually Ihey
nology is explained better. would have been Monster Hits
— so together they are, loo.
Following "Jewels o( Darkness" I searched Ihe box carefully Presentation Is poor: all text
last year, this Rainbird oflering on receipt — surely Telecom is printed in yellow on black in
is another collection ot three haven't finally listened to all the the normal Spectrum character
revamped, repackaged Level 3 criticisms? Yes they have — to set. which makes a n untidy
adventures This time the games Ihe unending gratitude ol ad- mess. Why no colour, or better
are in Ihe science-fiction genre, venlurers, the d r e a d e d Lenslok spacing a n d a more r e a d a b l e
a n d tell the extraordinary lale has been scrapped! Otherwise, character set? Still no l o a d i n g
of Kim Kimberly. In Snowball, I experienced a powerful leel- screen either. Instead ot a n
you play Kim and. re-awoken Ing of deja vu when reviewing atmospheric picture to set the
from deep-freeze storage, musl Silicon Dreams. It contains mood we have "Level 9" printed '
save the eponymous space- almost exactly the same un- in several ditlerenl colours —
craft trom crashing into a star necessary laults as Jewels Ot (his looked crude even when I
Return to Eden finds you crash Darkness, as well as thai game's first encountered it several years
landing on the planet of the g o o d points. ago
same name, h a v i n g b e e n All three adventures are
wrongly accused ol sabotag- large, a n d full of ingenious
ing the Snowball. Fight through puzzles. One of the games
Ihe alien jungle, then survive alone would keep most people
Ihe deserted tuture city ol o c c u p i e d for months. Vocabu-
Enoch, built many years ago by lary is large a n d complex sen-
a d v a n c e d robots preparing lor tences are allowed. A highly
Ihe colonists' arrival. It's now in readable instruction booklet
a precarious state a n d staffed also includes a novella — "Eden
by d r o i d s hostile lo your Song', which far Irom being
intrusion. Worm In Paradise, set some overblown epic laden
a century later, sees you as a with silly names is unexpectedly
citizen ol Enoch, an extreme humorous, if not entirely in the
right-wing state run by robots, in style ot the games.
which all musl conform a n d
Kim is worshipped, Lenin-style But the p o t e n t i a l for a Exits are n o r t h . eait., = o U t h.
Challenge Ihe system, and save masterpiece has a g a i n been a n d <•' € s t • • o <j c ;»n ; e d tree.
Ihe world! wasted through silly errors: like Uhat n o w C L I M B T PEE
painting the smile on the Mona I t ' s t o o S in O O t h .
Uh a t n ow~ EXAM T P E E
fin app i t tree. Hanging from th<
tree 1 £ an apple.
Uh a t n o w I
v ' o u o w n n o t h i n*a h » a l l '
Uh a t n o w GET PIPPLE
I t ' s out of reach.
Uh a t n o w ~ EAST

WINTER WONDERLAND/
IJh I n o w " I.
Vou omn no t h i n g .
i=tnd y o u r ^ M t a r a n 9 a h P » t
THE LEGEND OF
g own .
U h - a t n o ' i i " ^ i-i
APACHE GOLD
1 Medallion Graphic Adventures {Incentive)
V Ou r e 1 n a u rwin9 east £7.95 e a c h
corridor be . » d t j re e n
Light® h 'H w rs t o v 1 t. E These two a d v e n t u r e s a r e than your average Quilled
ttad north thiough 1 dO O
an d e.it. reviewed together b e c a u s e piece?
v o u can h * ar g u i * c their laults are similar; a n d A p a c h e Gold sees you as
U h a «. n ~ N they're the first I've seen wrillen cowboy Luke Warm (groan), in
with Incentive's Graphic Adven- search of the treasure buried
ture Creator, so are they better with an Indian Chiet. The writer

78 ZX Computing Monthly • March 1987


/////
W o n d e r l a n d ) , w i t h n o re- In short, what we have here
d e s i g n e d c h a r a c t e r set. Com- a r e two u n r e m a r k a b l e adven-
b i n e d with slightly sluggish tures, w h i c h c o u l d have b e e n
printing times, this means that written a year or two a g o They
Ihe g a m e s don't a p p e a r any- w o u l d m a k e ideal, i n d e e d par-
t h i n g like as slick as, for ticularly entertaining, b u d g e t
example. The (Quilled) Colour games. However, eight pounds
Of M a g i c is a ridiculous p r i c e for such
An a d v a n t a g e of G A C e d mediocrity, so steer clear, What
g a m e s over Q u i l l e d ones is the I tind surprising is that these
e d i t i n g facilities: you c a n enter were the best ol the many
c o m m a n d s in upper a n d lower g a m e s Incentive were sent
c a s e punctuate, a n d use cursor ( M e d a l l i o n is Incentive's own
keys. Also, these g a m e s some- label lor such games) Evidently
times require sentences with there are no hordes ol polenlial
more than two key words. How- McNeills a n d Austins out there
ou a r e i n the back of you ever. despite their t e c h n i c a l — unless y o u c a n p r o v e
WRGQU o n a U I L D OPEN P L f t l N . The superiority, the a c t u a l adven- otherwise...
mountain t r a i l t i e s a h e a d . Vou tures are (airly primitive by
f i l l your l ungs with the rich today's standards. Description
sme i t or t h e u u w i l d g r a s s in both is below par. d u l l in
and h o r s e d r o p p i n g s . ( COUGH! ) V o u Winier Wonderland a n d simple
can a l s o s e e a (3RG o f O P T 5 , R E I N 3
almost childish, in A p a c h e
Uha t now then partner*?
G o l d . Torrance STILL has a n
A p a c h o Gold ANNOYING habit ot b r e a k i n g
into CAPITALS lor no APPARENT
is Peter Torrance, d e s c r i b e d as games, a n d r e m a i n o n screen r e a s o n , a n d PUNCTUATION
a "lantasy author" o n Ihe pack- rather t h a n scroll up. The pics problems. Neither g a m e is
a g i n g ; in i a c l a credit aris.-ig are jolly e n o u g h in A p a c h e p a r t i c u l a r l y a t m o s p h e r i c or
from his previous successes. Gold, but poor a n d repetitive in innovative — just fairly tra-
Firebird c h e a p i e s Subsunk a n d Winier W o n d e r l a n d . In neither ditional puzzle solving, m a r r e d
Seabase Delta. Winier Wonder- g o m e are Ihey consistently u p in Winier W o n d e r l a n d by "in-
land casls you as a n anthropo- to the d e s i g n s t a n d a r d of The stant d e a t h locations", a d u m b
logist — original a l least — w h o Hobbit from four years a g o ! The i d e a w h i c h should have d i e d
must investigate a Tibetan civil- text w i n d o w is too small, with no out a e o n s ago. Torrance gives
isation. w h i c h has never b e e n border s e p a r a t i n g il ltom the clues w h i c h a r e l a u g h a b l e tor
in c o n t a c t wilh the rest ol graphics. Because everything their l a c k of subtlety. Both
mankind, yet d e v e l o p e d a l the scrolls out ot sight so soon, you g a m e s have limiled v o c a b u -
same rate. have to k e e p LOOKing, but this laries a n d a disappointing lack
causes the picture to d r a w ol responses. A n d the instruc-
I m m e d i a t e l y you notice the tions are too skimpy — nothing
graphics — a p p r o p r i a t e l y so a g a i n o n top of itself, with a
resulting, unnecessary delay. o n t a p e storage, or (in Winter
considering Ihe utility's n a m e — Wonderland) o n how to c o m -
which are faster, b o l d e r a n d Text display is black o n white (or
o n blue, d e e p e r into Winter municate with other characters
m u c h b i g g e r t h a n In Q u i l l e d

A dvertisements are expected 10 conform 10 rules and standards laid


L down by the Advertising Standards Authority. Most do.The lew that
don't we'd like you to write in about.
And if you'd like a copy of these rules for press, poster and cinema
advertisements, please send for our booklet. It's free.

/
The Advertising Standards Authority.
We're here to put it rightJ
ASA Ltd., Dept. Y. Brook House.Torrington Place. London WCIF. 7HN
This space istk mated in the interests of high standards nl advertising

79 ZX Computing Monthly • March 1987


Rainbird are probably
the only software house
never to get a bad
review from ZX. So
what's their secret?

hen I went a l o n g to visit


Rainbird Clare Edgeley h a d just
tidied up her desk to keep the
safety officer happy — "my desk
had everything wrong with it".
Depressingly. Clare's bit of
floorspace looked like an oasis
c o m p a r e d to the h e a p that
passes for my own desk. In fact
Rainbird's offices, in a modern
office block in the West End of
London, seemed a bit cheerier
a n d more well organised than
many of the software houses I've
visited in the past. But then,
whereas most UK software houses
b e g a n as back-bedroom outlits
a n d slowly e x p a n d e d into small
companies as the piles of
paperwork a n d machinery got
out of hand. Rainbird c a m e at
the industry from the opposite
direction. As part of the
Telecomsoft group of companies
(which also includes Firebird,
Beyond a n d Odin), Rainbird are
actually a small offshoot of Ihe
vast British Telecom organisation.
But like most software houses
they've m a n a g e d to avoid too
much oflice stuffiness a n d
remain fairly informal.
Clare is Rainbird's P.R.
Manager but she is also a n ex getting a b a d review. Unlike l a n d e d on software houses'
computer journalist, having many companies that make doorsteps as c o m p l e t e games,
worked for Computer a n d Video similar claims, Rainbird have but if someone comes fo us with
Games a n d a n obscure genuinely built up a reputation a scenario or a n idea that we
competitor c a l l e d Sinclair User. for releasing a small number of like, we'll develop it. But we
Former software reviewers high quality products. wouldn't bring out just anything
moving into PR face a potential This is probably d u e to the — if we're offered something
quandary. Do they fact that the label was set up to that's not worth our E14-E17 price
wholeheartedly push a product be the 'quality' part of the range we won't a c c e p t it."
they would have p a n n e d in their Telecom group. But isn't it difficult to
former role? Forlunalely that "We're the top e n d of the continually maintain a l e a d
problem doesn't arise with range — high quality", Clare when you're d e a l i n g with a
Rainbird since I can't remember told me. "We'll look at anything. -machine like the Spectrum
any of their products ever Some of the besl games have which has been taken about as

80 ZX C o m p u t i n g Monthly • March 1987


UJJJ
The Knight Ore Cometh
The last two Level 9 products
from Ralnbird were u p g r a d e d
versions of earlier releases, but
c o m i n g soon is Knight Ore, a
b r a n d new L9 g a m e in three
parts, a n d something of a
departure trom their o l d style. In
it you play a n Ore setting out to
g a i n revenge on the humans
w h o spend all their time
victimising Ores in lantasy novels
a n d games (there's a twist in
there though, but I'm not g o i n g
to tell you about it). The g a m e
features a number of
independent characters that
you'll have to d e a l with, a n d
whose help you'll n e e d if you're
g o i n g to c o m p l e t e the g a m e so
you can't just g o around KILLing
everything in sight.
After m a k i n g the coffee. Clare
far as it c a n g o by now?
'Yes, but converting down from
big machines help?. We
produce conversions tor about
ten machines a n d some of our
games start on the A m i g a a n d
ST and are converted down onto
Ihe Spectrum so we sometimes
manage to d o things that we
didn't think c o u l d be d o n e on
Ihe Spectrum. Starglider 128 has
digitised speech which we didn't
think we'd b e a b l e to do. I don't I 1 tf *
think there's a single bit ol
memory left in there."
kAJtt
An obvious e x a m p l e of this
'converting downwards' policy is
Art Studio, the graphics utility
that brought to the Spectrum a
system of icons a n d menu-driven
controls formerly only seen on
much more powerful business
s
' • A

Mb
machines. Mind you, it's not

m
always a case of converting
down onto the poor little
Spectrum. Rainbird's
collaborations with Level 9 (the onwards a n d upwards through a shuttled me into the computer
Jewels of Darkness a n d Silicon whole range of machines a n d room where I met Gary (also ex
Dreams trilogies) started on the are d o i n g very well in both C+VG) a n d Paul ("our resident
Spectrum a n d have moved America a n d Europe. wiz — he does manuals a n d
things"). The Spectrum version of
the g a m e wasn't yet complete,
but Paul {"he's the resident wiz,
I'm the orch-wiz") b o o t e d up the
graphics for the A m i g a version
to show me.
Pete Sweasey, our resident
advenlure fiend, will be pleased
to hear that L9 have a d o p t e d a
totally new style (or their g a m e
graphics in Knight Ore. They've
commissioned a number of
pieces of original artwork a n d
digitised them. The result, on the
A m i g a anyway, is pretty
impressive, with some pictures
that look almost impressionistic,
a n d others that have almost
photographic clarity of detail
(fingers crossed they won't look
too b a d on the Spectrum).
Knight Ore is d u e out for the
Spectrum shortly, as is the 128
version of M a g n e t i c Scrolls'
adventure. The Pawn. In the
meantime though I d e c i d e d that
I should get b a c k a n d tidy up
my own desk in case the safety
officer d r o p p e d by.

81 ZX Computing Monthly • M a r c h 1987


•6 >>> 1

The arcade conversion • " h i s Is the g a m e that everyone official Gauntlet is by far the
has b e e n w a i t i n g tor. During a most enjoyable a n d a d d i c t i v e of
set to make converts of wait (or the official version of them all.
Gauntlet from US Gold, the rest The original a r c a d e g a m e
us all. of the software industry has c o u l d b e p l a y e d by u p to four
d e v e l o p e d a n overwhelming players. On the Spectrum of
compulsion to p r o d u c e Gauntlet course, this is whittled d o w n to
Gauntlet Imitations. This chorus of "send in two (thankfully both c a n play
US Gold the clones" has brought us Storm with a joystick) but it is the
(Mastertronic), Dandy (Electric option of cut a n d stash
£9.95 & Dreams) a n d Druid (Firebird). teamwork as you clear d u n g e o n
So, has the market b e e n after d u n g e o n of nasties that
saturated to the extent that a d d s a whole new dimension to
Gauntlet is a n anti-climax? The p l a y i n g a Spectrum game. You
short answer is no. Despite w o u l d expect this two player
a p p r o a c h i n g the g a m e with mis- option to slow d o w n the a c t i o n
givings that it c o u l d b e but surprisingly there is no loss of
d i s a p p o i n t i n g (given the hype its s p e e d a n d the a c t i o n is
received) I c a n report that the frenetically fast.

W W

if
2- ?
llHjS'
W a S K S i T -
t" tZ . Sjffi —
HBE1
H f j 6>^ .1
mn

mmm ^ J
nKHn!liWU«r!ir!ir!<r<i£.J

t i l !
m
lfr-0
A? U

fJL
A

lrr-0
THOH the Wdrrior THYRA Ihe Valkyrie

l i t 1 t

You have a c h o i c e ot four Be w a r n e d that d u e to the If c o r n e r e d by monsters try to


characters a n d , if p l a y i n g the c o m p l e x i t y of Gauntlet (512 destroy the generators, you can't
two player g a m e , it's besi to levels) there is a lot of time spent c l e a r a screen c o m p l e t e l y until
choose characters that have r e w i n d i n g a n d l o a d i n g from you have. Mass slaying of
complimentary characteristics. tape. If you don't find Gauntlet roomfuls of m a g i c ghouls m a y
Thor, tor instance, is a warrior compulsive this c o u l d b e a d r a g m a k e you feel g o o d but think ot
with excellent muscle power but if you b e c o m e a d d i c t e d your health w h i c h will b e
and g o o d in close c o m b a t but these breaks c a n b e c o m e a s a p p e d by e a c h i n d i v i d u a l
o d u n c e w h e n it c o m e s lo w e l c o m e respite from the un- contact.
casting spells. You might want to relenting battle. Gauntlet holds a lot of
team him with Merlin w h o gets surprises; the g r a p h i c s are vivid
pummelled b a d l y in h a n d to Dungeon plays a n d m a i n t a i n their clarity, even
hand fighting, but c a n use his The a i m of the g a m e of course is o n a screen t e e m i n g with detail.
magic power to w i p e out to tight, barge, c h a r m , shoot a n d The s p e e d of the g a m e will
monsters a n d the generators that p u n c h your w a y through those satisfy even the h a r d e n e d
spawn them. 500-plus levels. It's not a g a m e a r c a d e player, the lifespan of
Thyra the Valkyrie's speciality for d e d i c a t e d strategists. For o n e the g a m e will k e e p the value-
is hand to h a n d c o m b a t a n d thing the swarms of d u n g e o n conscious h a p p y a n d there are
Questor the Elf relies o n his dwellers threatening you leave e n o u g h elements to it to satisfy
magic c h a r m s to m a k e u p for little time for p l a n n i n g a h e a d . those w h o want something more
moderate abilities at fighting. There are, however, ploys you'll t h a n to just shoot things. Of
As for adversaries, the n e e d to i m p l e m e n t if you want course if you just like shooting
dungeons are overflowing with to survive. Unless you are a n things a n d know s o m e b o d y else
them, r a n g i n g from ghosts to a d v a n c e d player you c a n forget w h o likes shooting things too,
Death, whose fatal c h a r m s will a b o u t the points tally — worry then this g a m e will seem very
drain you of health unless you instead a b o u t your health score. close to heaven.
have the spell to kill him. In G o for all the f o o d you c a n pick
addition there are Grunts, u p (some of it is p o i s o n e d but
Demons, Lobbers a n d Sorcerors afler a while you c a n spot the
all wilh their own characteristics difference) initially I found myself
and e a c h requiring a slightly shooting f o o d by mistake in the
ditferent a p p r o a c h to d e s p a t c h heat of the tray (not a g o o d
them most effectively. idea).

O
LU
£L
CO
DISCOVERY
COLUMN
Advice for Discovery
Disc owners from John
Wase

• suppose I've asked tor it, but own commands. It you look at programs on it. As you can't
over the last few months quite a the Spectrum's memory map. direct the Ihing to start half way
few enquiries have b e e n m a d e you will see that the Spectrum's through a secfor, you c o u l d only
a b o u t the c a p a c i t y of Discovery, ROM occupies the first 16K. save one program, which you
principally, I suppose, because I Discovery ROM o c c u p i e s the first c o u l d access instantly. Moreover,
mentioned that it is possible to 8K, a n d is switched in a n d out I guess lhat you c o u l d make this
a d d a Double Sided Double alternately with the Spectrum program almost 250K long by a
Density (DSDD) 5.25" drive. So, to ROM. As you know, the Spectrum bit of fiddling about. Imagine
get things straight, let's look at ROM c a n be PEEKed to see d i v i d i n g the thing up into o n e
just what there is inside that what's in e a c h address, but if byte sectors. You would n e e d a
black metal box. you try to POKE a value into a n c a t a l o g u e miles long for the
address, it takes no notice. thing to read, a n d whilst
The Drive Similarly, the discovery ROM e c o n o m i c a l up to a point,
contains unalterable information. access times would b e
As fitted to all standard This m e t h o d of operation is enormous. So the c h o i c e of
Discovery units, this is a 40 Irack exactly like interface 1: however, sector length, etc, is a
single sided three a n d a quarter discs are o p e r a t e d instead ol compromise between speed
inch drive, known in the microdrives, a n d . as the c o d e is a n d waste. Discovery is pretty
computer trade as a 'quarter written rather differently, the reliable, has reasonable access
m e g a b y t e drive'. The tracks are hook codes w h i c h operate from speeds, a n d wastes relatively
recorded as concentric circles. m a c h i n e c o d e are different. So little ot the disc.
The mechanism reads 40 tracks the two are c o m p a t i b l e from
on just the one side of the disc any BASIC program, but not in
So any old three a n d a half inch respect of m a c h i n e code. Second disc
disc which has at least 40 tracks
a n d which is the right shape to Formatting When a second disc is a d d e d ,
fit the mechanism will do. If you the drive m e c h a n i s m printed
insert a n 80 track disc (that is One of my correspondents circuit b o a r d has provision to
merely one in which the oxide recently was very uptight e n a b l e one to configure it as
particles are so small a n d the b e c a u s e the c a p a c i t y of a disc 2. a n d a Random Access
thing so precise that it is quarter m e g a b y t e drive is only Memory (RAM) c h i p has to b e
possible to put tracks m u c h 178K. This, he growled, is grossly a d d e d inside Discovery. This is
closer together than the 40 track misleading. And so it is, but b e c a u s e the default values in
disc without there b e i n g there is a g o o d reason. Ihe Discovery ROM all refer to
interference between o n e track Information recorded on a Disc 1. 40 track, single side. The
a n d the next) the mechanism is casssette t a p e is recorded RAM c h i p o c c u p i e s the memory
only a b l e to record 40 tracks on sequentially: you have to grind locations immediately above the
it. through the lot until you c o m e to Discovery ROM a n d is p a g e d in
There is a power supply unit what you want. A disc with it: on sensing the presence
i n c l u d e d on Discovery's circuit immediately accesses your of the RAM chip, the ROM
b o a r d which powers both chosen program. This is b e c a u s e empties its default values into
Discovery a n d Spectrum. The e a c h track on the disc is further the RAM chip. RAM. unlike ROM
power supply which c a m e with d i v i d e d up by the o p e r a t i n g c a n be altered: it c a n be POKed
early Spectrums h a d so little system into sectors or blocks, as well as PEEKed. If you r e a d n
power to spare that there was a c c o r d i n g to a set p l a n d i c t a t e d a DSDD disc in drive 2, assuming
not always e n o u g h to work by the software (the firmware on that that is the mechanism
Opus's early Spectrados systems, the Discovery ROM), the Directory which you have p l u g g e d In
so in some cases these would or C a t a l o g u e of the d i s c This there, then the firmware senses
not work: fhe Discovery was a directs the drive to r e a d so that the drive is not 40 track a n d
refinement of this system a n d its many sectors, or, alternatively, to single sided, a n d the default
PSU now has plenty of power to save to so many sectors at values for drive 2 are adjusted in
spare. particular locations. The number the RAM to m a t c h those of the
The interface contains a r e a d of sectors used is arrived at as a disc r e a d in. Before you c a n use
only memory (ROM) w h i c h compromise. Imagine a disc such a system you must have a
intercepts error messages a n d is d i v i d e d up into only o n e sector, disc to r e a d in or a program to
p a g e d in on receiving one of its a n d i m a g i n e trying to save 1K configure it, h e n c e the frustration

84 ZX C o m p u t i n g Monthly • March 1987


of some w h o hove fitted extra
c a p a c i t y drives but have only 3 REM "DISCLIST3" 1B5 CLOSE 114 s STOP
J.N.Burks 1906 190 REM OPEN »4;"m";1;"discs3"R
b e e n a b l e to get them to 10 REM DIM (200, 15) (or 19->) ND13
FORMAT to 178K: the values are IS LOAD • 1; "discsJ" OAT A n* () 195 CLS : POKE 2;658,8: INPUT "
set at default until s o m e t h i n g 20 LET r«150: REM Last entry Ti tie(T),Catpqory(Ct or Di«sc(D>"
tells the system differently. Finally. far ;kt
If you have only the s t a n d a r d 25 OPEN «4;"m";1;"discs2"RND15 200 IF k l « " T ' THEN GO TO 220
,200s CLS 205 IF k*~"C" THEN GO 10 225
drive, fitting the RAM c h i p is not ZO PRINT AT O, 12j "OPTIONS"; AT 210 IF )$""D" THEN GO TO 240
really g o i n g to h e l p you very 2,0["O L i s t Entries.";AT 5 , 0 ; " l 215 IF k*<>"T" OR kf<>"C" OR k»
much. True, you will b e a b l e to Revisions, Additions or Fresh St "D" THEN BEEP .1,20: GO TO 195
adjust the sector length a n d o n e art.";AT 9,0;"2 Pick an Entry By 220 POKE 23658,0: CLS : INPUT -
Number.";AT 13tO;"3 Select by T TitleiNP C a s e > " i LINE t«: GO T
or two other things, but this will i t l e , Cdtoqory or Disc Number. • 0 205
never e n a b l e you fo store a [AT 18,0;"4 To SAVE the program 225 CLS : PRINT »2;AT 10,10;"Ca
megabyte, as some of my more and File.";AT 20,0;"5 To STOP." tegoriesi-"fAT 13,O;"A(rcade).G«
optimistic correspondents h a d 35 INPUT "Number ? ";c» raphic).S(tat iC game>p(atterns).
40 IF c * 0 " 0 " THEN GO TO 63 P(UZZles).F(11ing). M (i seel I .me
hoped. I h o p e this will h e l p to 43 IF c*-"0" THEN CLS ; FOR q« ous).U(tlI I t y ) . " 1 POKE 23638,0:
clear u p some of the 1 TO r : IF g<«9 THEN LET a*-" • INPUT "CalegorylNB Ca«ie)"» " j LIN
misconceptions. " i PRINT N2; g j ,<f ;n1 (g) ( TO 131 E c*
I m e n t i o n e d only a c o u p l e of 30 IF g>=lO AND g<»99 THEN LET 230 INPUT , "LPRINT'My/n)";««: I
a*B" <* " j PRINT «2;g;a*;nf(g)( F nt="n" THEN LET q=0l GO TO 280
months a g o that I h a d seen TO 13) 235 IF w»-"y" THEN LET q-11 LPR
nolhing w h i c h used Discovery's 53 IF g>"100 THEN LET J*="= "i INT " CATEGORY "jc»: GO TO 2
random a c c e s s facility, so Jim PRINT «2;q;at;nf(g)( TO 15) 60
Burke of Barnet, Herts, p r o m p t l y 60 NEXT gs GO TO 370t GO TO 30 240 POKE 23658,OI CLS I INPUT "
65 IF c * - " l " THEN CLS i GO TO Disc? " | d *
sent m e DISCLIST3. A l t h o u g h this lOO 245 POKE 23658,O: INPUT ,"LPRIN
program lacks some polish a n d 70 IF C* 3 "2" THEN CLS ! GO TO T -T (y/nl " ; v*: IF vt = "n" THEN LET
finesse, as Jim w o u l d b e Ihe first 145 p-Ot GO TO 305
75 IF c l " J " THEN CLS J GO TO 250 IF v t - " y " THEN LET LPR
a

to admit, it nevertheless does the


trick, a n d that is Ihe o b j e c t of 190 INT " DISC "|d»: GO TO 303
00 IF ct="4" THEN CLS S PRINT 235 FOR g»l TO rt REM • • • • • • • • •
Ihe exercise. DISCLIST3 keeps a AT 10,12;"SAVING": GO TO 380 260 IF nJ(g)(1 TO LEN t * ) » t * AN
list of all the p r o g r a m , a n d 95 IF c * - " 5 " THEN GO TO 93 P p=0 THEN GO SUB 340
associated datafiles, printfiles 90 IF c l O " I " OR c « > " 2 " OR c» 265 IF nKg) II TO LEN t * ) = t l AN
and so, w h i c h are kept in <>"3" OR c*< "4" OR c * 0 " 5 " THEN D p-1 THEN GO SUB 345
BEEP . l , 2 0 i GO TO 33 270 IF n»(g)(l TO LEN t t l O t t T
random a c c e s s file c a l l e d 93 CLOSE #4: STOP HEN NEXT q
"discs3". O n c e you have this, you 100 PRINT "NOTEl-"'"DO NOT USE 275 GO TO 330
can select a n y item by title, by ""RUN""unless the DATA has been
SAVED"''" Revise Lines <20>,4 • 200
* * • CLS I FOR q=l TO r : REM
Ihe type of Item or by the disc 5,110,255,280 and GOTO 103 tor R
Ihot it's on. The p r o g r a m is listed 283 IF nf(q) (12)=cI AND q*0 THE
ovisions, Additions or tor .1 Fre N GO SUM 3«Ot NEXT g
in F l g u r e l It's pretty self sh S t a r t ( G O TO 30 and Selec 290 IF n*lq>ri2>-c« AND q - l THF
explanatory, a l t h o u g h I f o u n d t 2 to pick a seleted number)." N GO SUB 345l NEXT g
that I h a d to put in a n extra line •'"<GO TO 30 and Select 3 to Sel 295 IF n i (g) (11 TO 12>Oc» THEN
oct by Title,Category or Disc)." NEXT g
- 7 OPEN 3!'t" to get it to print, '•"(GO TO 30 and select 4 to SAV
The REMs in lines 10 a n d 145 E ) . " ! CLOSE »4: STOP 300 GO TO 330
105 CLS : PRINT " T i t l e (ma* 10) 305 PRINT 112;" DISC "}d«
also n e e d to b e removed: they 3lO FOR g - l TO n REM • • • • • • • • •
are there to r e m i n d you that ( I I I to STOP)."''"TYPE A-rcade
, S - t a t i c , G-raphic d - t i l i t y , P- 313 IF n»(g)(14>=d» AND p=0 THE
certain parameters n e e d some uzzle, p - . i t t e r n , F - i l i n g ) or N GD SUB 340: NEXT q
alteration to e n a b l e m u c h M-isc. DISC Number" 320 IF nf(g)(14)=d* AND p=l THE
longer lists 1o b e N GO SUB 343t NEXT g
110 FOP g-139 TO r i REM From Nu 323 IF n*(g)(I4)<>d* THEN NEXT
accommodated. mber that i s "ZZZ" TO ISO e t c « « <1
330 GO SUB 370
115 INPUT "TITLE(<=I0»7 " t n f ( g ) 335 STOP
The Program (I TO I I ) : IF n * ( g , l TO 3>-"ZZ7" 340 PRINT « 2 ; n t ( g ) ( l TO >s GO T
THEN GO TO 140 O 330
The first time that you RUN this 170 INPUT "TYPE *>(A,S,G,U,P,p,F 345 LPRINT n»(g)(I TO )
program, you will have to d o ,M» ";n»(g> (12 TO 13) 330 BEEP .02,30
123 INPUT -Disc ";n*(q)(14 TO » 335 RETURN
GO TO 20 w h e n the p r o g r a m 130 PRINT « 2 ; q j " - " j n t ( g ) ( TO 15 360 CLS J PRINT " /./.
can't find the r a n d o m access ) . " : PRINT nf(118)(l TO )t REM to
data file "discs3" asked for in 135 NEXT q: REM q=I36 26/11/86 check n t l H I TO )
line 15: not surprising as you 140 PRINT FLASH I i " "Now SAVE ( 365 STOP
haven'1 m a d e o n e yet. Lines GO TO 330>"l CLOSE «4; STOP 370 BEEP .1,20: PRINT dOj"
145 CLS : RIM OPEN "m"; 1 ; "di Press A key": PAUSE O: CLS
45,50 a n d 55 line u p the list o n scs3-RND13 1 CLOSE «4i GO TO 30
Ihe screen rather Ingeniously. I 130 PRINT Input "-9V9-- t 0 sto 375 STOP
printed it out (Figure 2) so that P" 380 CLS I PRINT AT 1O,12I"SAV1N
you c a n see w h a t this d a t a file 155 INPUT which record'*";g G"! SAVE •I;"DISCLIST3" LINE I5i
1AO POINT «4ig SAVE •1)"di»c«3" DATA n»()l VER
looks like. Each enlry is given a 163 PRINT "No. ;g;"»"jn*(g)<1 IFY •1;"DISCL1ST3": VERIFY • I j " d
number, o n the left. Then follows TO ) ISCS3" DATA n i l ) ! PRINT INVERSE
Ihe n a m e of the entry. Next a 170 INPUT Next-"jq I;AT 10,12;" SAVED "I BEEP .5,20
letter i n d i c a t i n g the t y p e of item. 1/5 IF q=999 THEN GO TO 183 : CLOSE *4: STOP
Finally, a n u m b e r for the disc o n 180 IF gf >999 THEN GO TO 160
Flguro 1

1 = MUSIC M 1 9 —
DRAUGHTS P 1 17 f i l l G 1
2 = DARTS A 1 10 = p a P 1 18 = 1i s t e r U 1
3 = t r a f -fie S 1 1 1 = < < DOOM > > A 1 19 — T.O.H. P 1
4 = HEXCONV u 1 12 = u t i 1 U 1 20 = di sm8kuti1 U 1
5 = f r u i t s 1 13 = d o d g e m s A 1 21 = MOON M 1
6 = j ackpot s 1 1 4 ss r a t c a t c h A 1 22 = make4 P 1
7 = bouncer A 1 15 — l i f e P 1 23 = coindrop A 1
B —
T. K i t 48k U 1 16 = g u a r d i a n M 1 24 = drawer G 1

Figure 2

85 ZX C o m p u t i n g Monthly • M a r c h 1987
25 TAB Fields U 1 67 = CADMASTER G 4 109= ARTstudio G 6
26 —
ackack A 1 68 = estel1 G 4 1 10= super cat U 6
27 ss headread U 1 69 = • XO P 4 1 1 1 =test M 6
28 = stickdraw G 1 70 = clock M 4 1 12= mouse S 6
29 = Tasword <r > M 2 71 = sort U 4 1 13= draw G 6
30 = pati erice S 3 72 = TRICK M 4 114= shi pt G 6
31 = SHUNTING P 3 73 = noise gen M 4 115= cardl G 6
32 = engine G 3 74 = roadrunner A 4 116= copypri nt U 6
33 —
edi tkey U 3 75 - 3d maze P 4 117= i roner2 G 6
34 = toolkit U 3 76 = eg li 4 1 18= di scli ster F 6
35 = mysterybox P 3 77 = ti ck—tock G 4 1 19= DISASM48 U 6
36 = BETALISTER F 3 78 = EXPLODE G 4 120= ani rnator 2 G 7
37 = BANDIT S 3 79 = EXBASIC M 4 121 = tasword M 7
38 = organ M 3 80 = mandala S 4 122= TLW2(1ast) M 7
39 —
fade G 3 81 = Wi ndowdem G 4 123= 78recds2 F 7
40 = DATA(beta) F 3 82 = betachar M 4 124= DISCLIST F 7
41 —
waves G 3 83 = contmusi c M 4 125= Di scs4 F 7
42 —
dice S 3 84 = shi p* G 4 126= di scs1 F 7
43 = circle G 3 85 = BETALISTER F 4 127= controls M 7
44 = Beta Basic M 3 86 = BETADISCLR F 4 128= /8recds h /
45 = BETADEMO M 3 87 = thick char U 4 129= wr i te M 8
46 = BETADATA F 3 88 = futuristic U 4 130= ADDR F 8
47 PUZZLE P 3 89 = f actors M 4 131 = wordmanage M 8
48 = bri ckyard A 3 90 = TV TEST G 4 132= DISCLIST F 8
49 = ex am.mem U 3 91 = 2;<Hei ght M 4 133= di scs F 8
50 — zoom G 3 92 = deleter U 4 134= di scs2 F 8
51 — datacalc F 3 93 = capypr i nt U 4 135= di scs3 F 7
52 = YS TITLE G 3 94 = ARCHER A 4 136= DISCLIST3 F 8
53 —
CLS G 3 95 = super cat U 4 137= di scs3 F 8
54 —
c1earscrn G 3 96 = Golf S 5 138= renumb U 4
55 = •flash G 3 97 = DARTS A 5 139= ZZZ
56 —
explode G 3 98 = Accounts F 5 140=
57 — udgdef G 3 99 = ki tchen A 5 141 =
58 —
SDUND M 3 100= EFFECT M 5 142=
59 — en 1arger G 3 101 = CHR.LEFT G 5 143=
60 = di sclister F 3 102= DISSEMB U 5 144 =
61 —
alarmc1ock U 3 103= MC AID U 5 145=
62 = wordsearch P 3 104= UDG edit U 5 146=
63 = letter sq P 3 105= arrows G 5 147=
64 = gol f s 4 106= soli tai re2 S 5 148=
65 — Beta Basic M 4 107= TABCALC F 6 149=
66 TROJAN G 4 108= TABDATA F 6 150=

which it's filed. Lines 65 to 85 Lines 230 onwards contain a what it sets out to do. Perhaps a
direct the program to lines 100 number of LPRINT options for complete d a t a base will follow.
(new entries, additions, which line 7 is essential if you Who knows?
corrections): 145 (pick any have a printer.
number; what's the entry?); 190 Errata
(pick entry by title, so that you Inverse print
c a n find which disc it's on, list The program in last month's
programs, etc, of any particular This program therefore c o u l d column for the modification to
category, list what is on any form a basis for your own GENS 3 has a b u g in it: the
particular disc): 380 (SAVE random access program. In this following program line will
routine); finally 95 (STOP). particular listing, Jim has m a d e correct it. 308 IF b$(3 TO
In line 105 are Jim's titles — he things more difficult tor himself 5)="CAT" THEN CLS : CAT 1 :
says it's fatal to have a by inserting inverse printing PRINT 0;"Any Key to Return":
miscellaneous file! The POKEs in directly into the listing — it looks PAUSE 0: LET f = USR((PEEK
lines 195 a n d 220 are to lock good, but I can't easily make it 23670+256* PEEK
a n d unlock caps shift; show u p in Ihe printout, whereas 23671)—2514"(A=( PEEK
unfortunately Jim h a d used both INVERSE 1 always does (do 23670+256* PEEK
capital a n d lower case "p" in please remember this when 23671J+6291)—1857*A
line 105, a n d didn't feel like submitting programs). PEEK23670+256* PEEK
putting all the entries in again. Nevertheless, the program does 23671J+6291): GO TO 65

86 ZX C o m p u t i n g Monthly • March 1987


CR
More mysteries from the Spectrum's technical
Twilight Zone with Ray Elder.

other's interface. I know XRI have a real- I used Ihe software supplied with it.
Midi matters time p a c k a g e but they have not yet
sent us a copy to review.
Now after a little use it has
working and I would like it repaired.
stopped
I
Dear Sir, XRI are at 10 Sunnybank Road, tried to telephone Rotronics but I
As a new reader to your Sutlon Coldlield, West Midlands (Tel. 021 cannot get a reply and the GPO tell me
magazine I seek advice 382 6048) a n d Iheir system costs around there is nothing wrong with the line.
which has possibly been answered £108. Could you please tell me If you know
before Being the owner of a Spectrum+ whether this company has ceased
128, having climbed the ladder Irom trading?
the ZX81 & Spectrum 48K. my main Also could you tell me the address
reason for purchasing the 128 was tor ol lamleco Computer Sys which is on a
the inbuilt MIDI interlace. Mode muddles label on the back of the printer.
Having a MIDI equipped synthesizer Thank you, yours faithfully,
Dear Sir.
I am Interested in information on the D.H. Pipe. London NW10.
I have a Spectrum coup-
MIDI port. ie. which pin is what and
led to a single Opus Discovery I'm afraid that Rotronics are no
what is needed so that a connecting
disc drive and since recently, a Spec- longer trading, having
lead can be made between the 128
trum 128K +2 which works beautifully. recently gone Into liquidation
and the synth. It appears that there are
There is however, one problem, and that Your best bet is to contact one of the
three connections used at the synthe-
is that the sound is interfered with by a many repair companies, ol which
sizer MIDI port but I do not know what
loud drone for which my supplier has M a n C o m p a n d Video Vault are highly
these are either.
no remedy. recommended.
On another note, are there any inter-
I do not like the way In which there
laces for the 128 which would enable
is no warning in 128K mode as there is
Ihe Commodore printer MPS801 and/or
in 48K mode that Ihe computer is in
Ihe disk drive 1514 to be used.
CAPS LOCK or GRAPHICS modes I was
King regards,
A. Holmes, Exeter.
disappointed in the 128 and I gather
that other readers have encountered
Hard lines
difficulties. I congratulate Toni Baker on Dear Sir.
Last thing first. To my know- Ihe article Keypad Not Required which I have recently bought an
ledge there are no interfaces I read with interest. Opus disc drive for my 128K
which will allow the connec- Hoping to hear from you, Spectrum, and whilst I am happy with
tion of Commodore equipment lo the W.R. Luyks. Netherlands. its performance. I have noticed that it
Spectrum. Commodore went their own causes a slight interference on the TV
way a n d produced peripherals to their I a m afraid there is nothing I screen.
own standards a n d which were incom- c a n do about Ihe lack ol This consists ot faint horizontal lines
patible with just about everything else. CAPS LOCK or GRAPHICS flickering up and down the screen and.
I would slrongly r e c o m m e n d leav- mode indication a n d the drone seems although the interference is slight, once
ing Ihe MIDI port alone as lar as DIY Is lo be a mystery. I aet the impression that noticed it can become maddening.
concerned. I must admit as to only you u p g r a d e d from a standard 48K I would be grateful if you could ex-
having rudimentary knowledge ot it. Spectrum to Ihe 128 +2 a n d I wonder plain the likely cause and how to get
bul preler to buy ready m a d e units if you modified the Discovery? rid of it. Perhaps I have the disc drive too
instead of spending hours slaving over Opus produced an upgrade ROM lo close to the TV?
a hot soldering Iron! replace the existing 48K one for the dis- Yours faithfully,
Cheetah Marketing Ltd. 1 Willow- covery. I tried it out a n d it worked with- Philip A. Clark. Newcastle.
brook Science Park. Crickhowell Road. out any p r o b l e m , i n c l u d i n g any
SI. Mellons, Cardiff. (Tel. 0222 777337) will unwanted sound effects If you have not ^ ^ You are right, this is one of
sell you such a c a b l e lor £9.95. Most fitted the ROM u p g r a d e then I suggest those things that c a n drive
larger branches ot Boots also stock their you contact Opus a n d d o so forthwith, you mad! However there is not
wares. If the u p g r a d e has b e e n done or if m u c h you c a n do a n d I suspect that It
The MIDI port is very limited a n d all the Opus was supplied specifically lor is due to one of the components of your
you are likely to be a b l e to d o is send the 128K then I suggest you try the Opus Spectrum suffering a small, non fatal,
Ihe PLAY strings out lo your synlh. To d o with another 128 a n d if the fault persists h i c c u p Sir C, in his wisdom, used com-
anything more interesting, such as fhen Ihe tault is in Ihe disc drive a n d it ponents which olten were only jusl on
record, arrange a n d sync equipment should be returned for checking a n d the operational side of the specifica-
together you need a unit with al least repair. tion. Any slight c h a n g e Irom the usual
IN. OUT (possibly THRU) sockets a n d a If there are no unwanted sounds with m o d e of operation could cause such
clock or sync device. another Spectrum then your computer irritating effects.
As you have a real synlh, I would has a fault a n d that should be checked Bul before you give up hope, chang-
slrongly advise you lo invest in a sep- a n d repaired. ing the position as you suggest, not only
arate MIDI interface a n d software, ol the Opus but also of e a c h ol the other
Cheetah do a very impressive looking components that make up your system,
MIDI interlace p r i c e d at £44.95. in relation to e a c h other may ease the
EleclroMusic Research Ltd. ot 14
Mount Close. Wicktord. Essex SS11 8HG Rotronics runaround degree of the effect a n d perhaps cure
It.

Q
(Tel. 0702 335747) produce the PER- Dear Sir, I would also suggest thai you try
FORMER which in my opinion Is the best A few months ago I pur- cleaning the e d g e connector at the
real time p a c k a g e a n d costs around chased a DX85 printer 7froi
*
Irom back ol Ihe Spectrum with a cotton bud
£120. whilst XRI syslems a n d Iheir MICON Rotronics ot High Wycombe, Bucks. At d i p p e d in Isopropylalcohol or some
Interlace have Ihe best step time soft- first I could not get the machine to work "pure" clear, or using a n eraser to
ware available. Unfortunately the two using Ihe various commands In the gently remove any dirt. You c a n lose
are not software c o m p a t i b l e with e a c h manual, bul it worked really well when nothing by experimenting!

87 ZX Computing Monthly • March 1987


ZX COMPUTING
F U L L C R E D I T F A C I L I T I E S FOR A C C E S S A N D BARCLAYCARD.

L i n e a g e : 48p per w o r d . ( V A T i n c l u s i v e )
S e m i d i s p l a y : £9.50 per s i n g l e c o l u m n c e n t i m e t r e +
^ ^
01 - 437 0699
V A T . R i n g for i n f o r m a t i o n o n series b o o k i n g s /
discounts ( m i n i m u m 2.5cm). Send your requirements to:
NICOLA BATY
All advertisements in this section must be prepaid.
Advorlisements are accepted subject to the terms a n d c o n d i t i o n s A S P Ltd., 1 G o l d e n Square,
printed o n the advertisement rate c a r d (available o n request). London W1

ACCESSORIES

r
H(.H o l 111*111 ' CONFUSING ISN'T IT? COMPUTER REPAIRS S C O T L A N D ' S No 1
COMPOSITE VltM.O ? Tift ol Ihe problem sotvers Wo luvt the experience and expertise mnhnpnts. M m ) wrmcrt Snclw ctmoulm
to wlm« on ill jtpecti ol computer iMpUy problems eg Since »* nMucton ol Bk M O
For home and personal computer repairs
Specially lasl Spectrum service
GKKEN SCKtl.N ' * RGB OUTPUT MODULE tor Spectrum 16 or «K Much Don't km* money on e-Jnutes-ntiepM&nciw
lediimed — owes mooitoi quality pictures — oo dot crawl COTfuVn It erce OJCMI rcltf. putt lifour • Same day tor most fault*
TTL • ANALOGUE ? CJSJi • I hour >1 rtelivvivd personally
• NEW * BRIGHT SOX — Allows lull use ol the bright I k > % on eaUf VAT najedvroltatf toMtfmcfur?* • Open 6 day I .1 week
COMP SYNC ? jru'ooue incut monitors and monitor-TV's to produce full colour Repirs qujr»n[«d for 3 fflorltis • froo tiiiDiitui
BRIGHT > piletle Only lot Speclium 128 (79 95 SpKtVTI (It ftncNfls • Upgrades Membranes amf PS U %
am C4P ft £7 :iC) t* <0rwn) oai (it Wrerum • 3 mm warranty on » o r l tlnne
SM for OV —jf Uo-vtnr ltd Shtti Wjrn 19 "6 nc tarts Also BBC CON OFIICartd PERIPHERALS
odopt electronic/ |?0 SUHUNGC10SE BVCKHUBSr mill {SSUIG9MN Tel 01 KM Vartm tti»flcpim
Nettmlll (U75rcfom MICRO-SERV
95 Deerdykes View
HC f?J 00 - parti WesHleld Industrial Area.
MAKE S O M E SPECTRUM CeNCe !Mn fl9» - pam Cumbernauld G66 9HN
Simple Computer Controller for S P E C T R U M RESET S W I T C H - U VrnwK E ip.fr, rr K t ftS95 Scotland
i,tachmery and Models ustng ymjr Sinclair Prevents d a m a g e to your Cj7Hi*TSrtj«rspejsrtrt*r Tel: Cumbernauld (02367) 37110
Spectrum Trade, schools and club discount Qiven
A little black boi which plugs nto the computer when power plug pulled br SfKil' Jrx5e Prxr
npantton socket ol any Spectrum and m and out O n l y £3.49 Inclusive Cll!»S<«t«®Cf*0*Clf 0
enables you lo drive two smalt to medium I V. Semen ol Cmtndfe lid
Mnpper moles (up 10 ? A MPs per phase) Cheque or P 0 to Central Elect- French'storiCHtrtgc CM JNP
or up 10 ( OC motors relayl limps or any ronics St Andrews St. Greenock mora 3113/1 SPECTRUM REPAIRS
ottwf DC device PA15 1HG. Other accessories
S*mple to Program and bui'l by an engin- From £3-£19 incl. all parts, labour
eering firm lor it* own us* You can use it Wrile tor Iree list SINCLAIR SERVICE CENTRE
tor CMC turning milling or coordinate
• fully Guaranteed Fast Repair Sorviqo and 3 month Guarantee.
drilling
Reliable Prototype still running alter ihree • Approi 24hr Turnaround Phono lor spociol postal ratos
• Eli av cost or send machine w>tn tt
years use
We provide Interface instructions,
software, hints and enamples Price I12S
SERVICES (return p&p) lor free estimate
• Perioral c.ii'ors welcome
MICRO FARE
• nc carriage and VAT Power supplies nnd OUANTUM
296 Gloucester Road. Horfield,
Stepper Motors available We will be 33 CITY ARCADE. COVENTRY CVt 3HX Bristol
pleased lo quote for larger units STOP Tel; (OT13) 24631
P R PRODUCTS. PARK Mill. Tel: 0272 46575
HOBSON STREET MACCLESFIELD. PLAYING GAMES
CHESHIRE SK11 &8E Ut» vow compute I0 m4ka raonty lurti yeui totby
Tel (0e?S) 22800 nto a tan* bawd ncenw M sod psrt I n * SPECTRUM REPAIRS
opportunities lo ctifi in on Iftj IrtmnJoui martft £14.95 inclusive ol labour ports and p i p .
PLAN YOUR
High fjrrwvji uvty posuWt 0p«r to »~> amattui Fust reliable service by qualified engs . ADVERTISING
R I N G 01-437 0699 FOR nwo Uttr and fl*r«t Wrrt» for I'tv detaris average repair 24hr« 3 m o n l h s guaran-
Westlink P r o m o t i o n s (ZX) tee For help or advice nng B U D G E T W I T H ZX
D E T A I L S OF O U R H. S. Computer Services. Unit 2. COMPUTING. RING
108 George Street The Orchard. Walton, Preston.
SERIES D I S C O U N T S E d i n b u r g h EH2 4LH. Lancashire Pfl4 1BE. Tel: (0772) 632686 01-437 0699 N O W

Lineage rate: <*8p per w o r d (VAT i n c ) M i n i m u m £7.20


Semi display: £9.50 per single c o l u m n centimetre • VAT. M i n i m u m size 2cm No r e i m b u r s e m e n t s (or cancellations
All ads must be pre-paid.
Write your advert in B L O C K C A P I T A L S in the grid below, t i c k i n g the section y o u w i s h it to appear under. I N C L U D I N G
YOUR N A M E A N D A D D R E S S IN THE W O R D C O U N T and send il to ZX C O M P U T I N G , A D V E R T I S E M E N T
D E P A R T M E N T . NO: 1 G O L D E N SQUARE. L O N D O N W1R 3AB.

REPAIhS • SOFTWARE • UTILITIES • FOR SALE • ACCESSORIES O T H E R W I S E PLEASE STATE

CLASSIFIED COUPON Name


A L L CLASSIFIED ADVERTISEMENTS MUST BE PRE-PAID. Address
THERE ARE NO REIMBURSEMENTS FOR C A N C E L L A T I O N S .
I enclose my Cheque/Postal Order for £ lor... POST CODE
insertions, made payable to Argus Specialist Publications.
(Delete as necessary) o DAYTIME TEL NO
P L E A S E D E B I T MY A C C E S S / B A R C L A Y C A R D NO
Signature Date

EXPIRY
£ FOR INSERTIONS D A T E ..

IF Y O U DO NOT WISH TO CUT YOUR MAGAZINE, PHOTOCOPY THIS FORM


WARNING NOTICE
Advertisements placed in this magazine are to be in strict compliance with our standard conditions (copiesof which
conditions are available 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 in 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

SOFTWARE E UTILITIES

S P E C T R U M TAPE and
CHEZRON SOFTWARE
(Depl 303) 605 Loughborough Road UTH DUO PIUS
Blrslall LEICESTER LE4 4NJ SM ire most tmttk 41k Sprttrjn uthty pDgrv
B0NADANNCR — Programmers' Unleash DRIVE T R A N S F E R UTILITIES to dtt-gn and pnnl you own buiirett t :<rwr\i'
Ihe (>o*i!i ol siting graphic* on your ttatmnrry krifrtwto-. uttptt cnSsn ttbm *
Spectrum Create title pages teat nrtvon- TU8 — ESSENTIAL for ALL Spectrum 48K or Plus owners — pouos Create the in^i on »r«i -v
lure graphics program headers elc lhal recj-fd 'omit I f'ff *" <*» eop>t you nen)
print instantly from Basic or machine our tape utility tor backup and drive conversion » Library el ?5fltfwteflorti rrUJm lotqn
code Simple operaten lor last loaders — actuate even * over 46K (tone and rale measurer) afubett
Al |ust 13 50 why hesitate' it our demo • Integrated header reader. manages headerieu dock* • Fist eoe»Wtoet«0<toi teinodity andtnatrne*
program doesn t convnce thai BONA- e D*«Hw wi>th
«i cte'fcy loaders
' — converts COMPLETELY 10 normal lor tapetoed(pkA easy drive tranaier tonti
BANNER <s useful to you JUST RETURN wntiTPWj • Ary Miter portion aa> be tcoM nmri or
THF WHOLE PACKAGE FOR A FULL Pkit many othertearur*n — a ufugur product! MNd
REFUND" COST only £6.99 on tape OR £7.99 on m/drivo cart. • Baifunct<incrciMaanyaw>aboio(9nyltKk'
new
T R A N S F E R PACK 2 — FOR TAPE TO DRIVE T R A N S F E R • Grcpr<i«» JK cjrtlr r-oi fit tor logo«rvgn
• load t uw try SCflf f W r'om rctf prc^-jr-
BUDGET SPEECH synthesiser' Package ol programs including TU8. other utilities, allows drive • P mftaiangifi a thotr e> II WW
48K Spectrum Just load and your transfer ot many programs
• Dew ta£e« up to 4 * T m vjv
key vtects caurttF Utwr option
Spectrum can lalk through it s o w n • Detail* given on transfer o* 40 programs • Cfcxr <4 6M»r<rt properi>oniKy i<ot«l
loudspeaker 100% software - No * Manages virtually al ekeky leaders Bylesthopper'ipWer. header reader etc Anttn
Sate name & dnve sysipm (« g m'dnve. Opus doe. etc). • Pnce£4G0
hardware needed C3 95 from
ONLY £11.99 on tape OR £12.99 on m/drtvo cart. OUKPT I t
SMB Software PO Box 38 INFORMATION SHEETS £t each (up 10 No IB a/Mabte) rduM manytop20 has — SAE lor lot
Inverness IVI tGA OVERSEAS add Et Europe C2 others K» each UPDATE SERVICE - SAE lor details Alt thr tttm Arpi iw rw need lor |CU
PROGRAMS CARRY OUT MONEY BACK GUARANTEE (not updateaj Sprctmr1 Leake oihn view Art
DUWPr - a «r«vi dixrp GfhifftATOP.tc-Mltitf*
machiv etdr rrlocatn it and sum it ready tor yev
RACING LERM. DEPT ZX. 11 BEACONSFIELD CLOSE, WHITELEY BAY, » «•' r you progim No need 10 iRkrnmJ
awrrtln (irt! tortow t* m u rrcnevrd
SOFTWARE TYNE AND WEAR NE25 9UW. viKnon now intlu)«
• Wrdew Ajtv Of mtle ;u»r J meet bo» t^umn
S In-
MAKE RACING • O^tcral autwutc tow via omrmrat-on
• Hande l s the W M win or it* AtpUy
PROFITABLE • Se!«ct (rem ip to 7 (Vftn! frri fcr-iiv-i
With our top-class program
• S»Vtt tiw tp to9w*flhiard9 l»>flh!sof Oitpn
Lnsi season 40% profit
No rncmg knowledge needed
SOFTWARE • fab to any peul«n re. "r ra(»f
« Utctivv rodr can be (xnit im! vytnr «i >AW
For full details and results • Vrrtcal or udrwiyt dwrps ttor bf t«'r".|
write to: u«-onpf
BRIMARDON COMPUTER
RACING SERVICES. WD Software Me itytr to you aritttn »wtT frrf out any were
p«r-or ti* «i drmity NtO in a chMt or ti
48 Pierremont Road. FOR THE OL: «oe« Tuti yeu S«rti<r t>k> jt eVti-or>c
Darlington, DL3 6DH. 'i^irb tor awifinc trvf^pn t.Bnj m
JOSS base £13 terms or wn-eg (herr rem
Forgot that tedious, time-consuming syntin' Jus! move the cursor and press SPACE lor ail • Fi • or v.rrr WV5W I VC r» eSt>
your hie commands Cursor key* Or your |Oyst ick allow you to access microdr iv es (up to 81 • 1'flry or ?5 rVVrA- Mi ndudng lowgn
and lloppy discs (as many as our interlace allows) with upto ISO Meson each1 Scroll and itr<tiii
print directories. COPY DELETE or PRINT any rue MMoCl TV or Monttor mode before > Up so w 'on!-, irjy br m«4 on rich irr
TO ADVERTISE IN LOADing or RUNnmg any program Vou only use the keyboard to set Ihe DATE or label a
di-wiCO »wn FORMATlirirj Easy lo us« with Psion and olher software No silly k in-, to
• Fast fert^WcnTrt'torL' rorjtyjndr'rj-rr**
lentt
loam - JOSS will TELL yon what it s going to do' Programmer s toolkit and mass copying • Sni gfe ottodt*intfrtitfwactm)nd imm<ing
OUR NEWEST printing utilities also supplied Specify microdrivo-only. Micropcipheral or CST- • true p epwmeal ipMmg jn( r^t nr ••< ' ar»on
compatiWe disc versions • IftK 1 r* lion any wwyt drt<e rvj* Of*
SECTION RING Ret OL7 base £7 DM*
• Pnnt teit as totrC Or od>i m 'M* to pretir
1300 uselul QL relerencea win ARCHIVE 2 search print program Too long tor lust one
NICOLA BATY ON cartridge, so it you have Fk-IQLS pjM pa/ 2 arid eitra media cost lo update
• OcttV em-.t, p.mt
• Pr.rt-ng it
N10 nwJ lonti
raikrt »i4i uw
Mdv Extension Cable £5.50 . F>r<rft»
01-437 0699 Eight inches long, allows addition ol oitramicrodnvos to your OL Twist it to put their slots
lacmg you
FOR THE OL: SPECTRUM; BBC: ELECTRON NfW tiv vwy te.i no iwrtin and irantcr
pxlagr tor St*t''l•', It«<trei!«iiy vptahlf
PRINTER WD Morse Tutor
Written lo leach amateurs, now used by professionals too1 Absolute bog inner, or
base £4 pewfrtiV and '.i', to uw and »rc*n intimtod tone*
[Mr la bo wrrCM titvr C .v tofrrvrSifportt
SERVICES stretching your speed to tSwpm. you won't I ind anything with more helpful features Wh.it
else can oiler too random sentences as well as all the basics'' Disc version unsuitable lor
m<m» ws w OPUS DS l COVfR*
• Fjl IOTBI (mflpiOtHW My* Bj.tor
BBC 8< • TMcokmHwdr'orpopflyaod^nentrdtoutr
PRINTER OWNERS FOR THE SPECTRUM: ccdr
WorDfinder (Microdrive/disc only) base £8 • Seath & itplace Bo l ck cepy (Me* 1 mvr
Save Money on Printer Ribbons
Hnve your ribbon re-inked at less For CHEATING at crosswords Finds m-ss-ng letters, solves, anagrms 13.000 word • UrtmtMt t j» Him rode * 10k pages
vocabulary, so too long lo share a cartridge 10-leler word ending in ATE' No problem • trtuii macros lor raty to creport wx/tr
than half the price ot a new one Tradewind base £3 csdr
STANDARD PRICE Sailing, trading strategy game with graphic surprises > brgt tmjrirr- « vt ledftW • «lud»i«
ANY MAKE £ 1 . 5 0 OPUS"
Jersey Quest base £3 • Inctudr •««« lilts wntwi with most crhtr
Send your ribbon and £1.50 tor Toil adventure in time Background ol Jersey folklore Irom Stone Age to Bergerac lUnld^n
For export: • Wiri'H Vatim up to 9 bukponti wtglt
t a i l service to: Hwrvj nc
K&M COMPUTERS QL hardware and software from many sources Ask tor iisbquolahon • rid tjtill, w.t, 1 trrAconn « «
ORDERING ADD COST OF MEDIUM. POSTAGE £1 OUTSIOE EUROPE HOW (I)
40 Falrslead. Birch Green. Mdv or 5.2S" floppy £2 3.5" floppy £4 Cassette £0 • Coindown brnkt atiir -»' iKftx of pauet
Skelmertdalr. L a n c i WNfl 6RD.
Payment
Ihrnu^i a loop
• Library oi uvU i*"r pmgnni tor ik handing
By ACCESS EurocardMasterCard or STERLING (UK bank cheques. Eurocheque*, drafts • Pk» til 50 HOW r>fn»">« or Opus wrveel
or International GIRO) To
FABRIC RIBBON RE-INKING
WD Soltwsro (ZX), Hilltop. St. Mary, Jersery. C.I. tol: (0534) 81392 A* Bradway Sc'rwiit pogm & wt fpun
'Introductory Offer' (omptlb'r p'lttrs lB"<T»r 5Br M T Shr-«
£1.50 Cmtroruci C( | vi H .VM, Kemptien Taarar
Sent) ribbons • prepayment to Wot. A-jtmrvr Imtrlaot I 7X IPywtm andOpui
•vttrlaeei
ALADDINK, (Dept ZXC), Pr«s art lor caatttts ( mtu l Or P»P n f.ic{r
4 Hurkur Crescent, Eyemouth. QL/SPECTRUM UTILITIES! NEW ZX81 SOFTWARE Games, P*rjt Jddtl VttrmcreftiMcartndgr f? SOOpa i
Berwickshire, TD14 SAP. due t ? 00 a.TTMl pcntjgr Unodn'-nn
Tel: 08907 SOWS
Wide range ol business/practical utilities, adventures, books, our Crtv«uS vtnom (ehtrt at^ieprutrl C? 00
As seen in Crossfire Feb 117 programs available SAE/IRC tor ZX81 Users Club and much more
details (slate Micro). S D Micro- Send SAE lo: A.CV.. 1 Foxwell Brriwiy Sottwri (ZX|.
systems (ZX) PO Box 24. Hilchin, Square. Southlieids. Northampton 33. Ct«lM Ami. JtafllaM. S17 4K
Herts. NN3SAT
01-437 0699
- RESULTS
m j
THE BETTER LETTER
Modifications to the Tasword TWo: Improved
Tasword character set character set
POKE 41764,1 PUKE 41764,7
by John Wase and
•B": 41714,7 ' 41715,5 POKE 81716,7
Colin Laycock •c 1 : 11733(7 <17}<,7
41716,7 <1731. J <1734,7
V i 6l7l»,7or 1 (11744,7 <1743,7
•I'l 41745.< or 1
iim.i 117*7,7 <1754,7
^ * o t h Tasword 2 a n d Tasword 3
utilize the same 64-column "K'T <1 74},7 41741,I
character set: Tasman software <17<8,2 <17»,(T 1
<1776,4
didn't alter it (or Tasword 3; they 61771,2
merely c h a n g e d the location. In V i "<irf!;i" <1777: A <1771,1
both cases, therefore, Tasword's 6178},3
actual on-screen letters c a n be "E'i No c h a n g e
c h a n g e d if one wishes: In this
example many ot the lower case •l1! <1755,4 617*4,1 <1745,5
61796,2 61797,2 61798,7
letters have been redefined
Figure 1 to provide a character •n't 61 £65,5
set which has m u c h improved No c h a n g e
legibility when c o m p a r e d with
the original Tasword tetters. <1111,7 <1111,7
V i 414J4,7 61129,7
Tasword 2 V« 61814,7 (1617,7
For Tasword 2. all you have to dc *F*! i\U'17l"ot 1 <1641,4 or 4
is to enter BASIC alter l o a d i n g • ' 41856,-7 61652,7 61854,7
a n d d o the POKES listed in
Figure 2. To save the new •t1! ilflU, J
character set, select the "save • u « . No c h a n g e
Tasword" option from the m a i n lv». No c h a n g e
menu, a n d the c o d e thus saved
• v ».
includes the new characters.

Tasword 3
No c h a n g e

V» ' erwr.T ««),7


Tasword 3 Is only a little less No c h a n g e
straightforward. Subtract 22784
from e a c h of the addresses
given In Figure 2. This is Fig 2
conveniently d o n e by: "LET z =
22784: POKE 61706-z:, 7: POKE Tasword 128
. . . etc. in u n p a g e d RAM, I would expect
Finally, I don't know If Tasword it to be tne same for Tasword
Vive La France 128 has the characters in the 128. Tasman assure me that
same addresses as Tasword 3: for Tasword 128 will shortly b e put
All this gives you a c l u e as to the latter the set starts at base on Opus disc, a n d as soon as
how the Tasword letters are address 38144, a n d since this is this happens, I'll find out.
stored. Moreover, if you check in
your Epson m a n u a l (or possibly
the o n e for your printer if it's not
a n Epson), you will find that a bc def g h i j K l M n o p q r s t u v k x y z Fig 1
certain character codes
corresponding to such things as
curly brackets In the English This is a test of the DCM character set For TasMord TNO. Only
character set correspond to the snail letters have been changed, but there is a significant
a c c e n t e d letters In, say, the ihprauBHent in dn-screen legibility.
French or G e r m a n set. It's then
not too dilficult to incorporate in All one has to do is td enter Basic and paf.e the locations Hith
Tasword 2 a n a d d i t i o n to line 15 the nunbers given and then SfiUE the neH version using option t
to soft-switch the printer to, say, oF the Main Menu.
the French character set;
similarly a line 60 or 70 c a n be In sotte cases alternative POKEs are given. They should be tried
readily a d d e d to Tasword 3. By and the hdst pleasing version selected before saving.
appropriate POKEs to the
addresses for the curly bracket This character set has Much iwproved the letters "n", "1" and
in the Tasword character set. you "N". If ydu do ndt like the "i" and the " j " (they are now of the
c a n convert this into a n sane height as the other letters, but Merge occasionally Hith
a c c e n t e d letter. Et volla! A descenders of the line above), then do not Make the POKEs For
French Tasword. both on screen these letters.
a n d printer.

90 ZX C o m p u t i n g Monthly • March 1987


SneToM/isend
v.
tc.

fns n

GROWING ?AW
APR/AN, HOLE
PROGRAM BY L E V E L 9

" T h e G r o w i n g P a i n s of
A d r i a n Mole*'
TV series, the g a m e aNows you l o help Adrian with day-to-day decisions. It's a
text-based g o m e with beautiful illustrations . m d your aim is to moke Adrian as
popular as possible through your answers to multiple-choice questions. This
(our part game c o v e r s 18 months in the life ol aspiring intellectual. Admin, and is
available (or 7 different computers.

BBC B v e r s i o n is n o t Illustrated.

The G r o w i n g P.iins of Adrian M o l e is available from .ill g o o d software stockists.


If you have trouble finding it y o u c a n buy directly from Virgin Games.
Please e n c i r c l e the s o f t w a r e y o u r e q u i r e and send this tear-off to
V i r g i n G a m e s M o i l O r d e r . 2 - 4 V e r n o n Y a r d . P o r l o b e l l o Road,
L o n d o n W 11 Z D X M.ike cheques or c r o s s e d postal orders payable to
Virgin G a m e s Ltd Please d o not post notes or coins

COMPUTER FORMAT
Sptictrum 48 12BCASS
Commodore64 I?(1CASS
Anwtrad CPC CASS
BSC B CASS
MSX04kCASS
AUHI400 OOOXL XE CASS
Ami.tr.nt CPC 6128 DISC &
PCW B2S6 8S12 DISC
ATARI-ST £14-95 COMMODORE £8-95
AMSTRAD £8-95 SPECTRUM £7-95

COIN-OP COIN-OP

r imagine Software (1984) Limited


6 Central Street. Manchester M2 5NS
Tel:06? 834 3939*Telex:669977

You might also like