Fred 29
        Disk Magazine
      
Submitted by Dan Dooré on Friday, May 18, 2018 - 17:13.
 
Download
Release Year
1993
Copyrights
Copyrights Granted
Copyright Provenance
Description
Issue 29
| Item | Author | Description | 
|---|---|---|
| Menu | Andy Monk | |
| Magazine | Days Of Sorcery, Spritemaster Released | |
| Letters | Games Master Show Report | |
| Screens | Stefan Drissen | F29 Retaliator (PC), Leisure Suit Larry III (PC), Space Quest III (PC) | 
| Scads Mk II | Glen Cooke | Compiled Version Of Fred 25 Demo | 
| Sprites | Stefan Drissen | Article+Demo Of Fast Sprite-Placing | 
| Compo Time! | Details Of Monster Fred Compo | |
| Spaceworm 2 | Ben Wyatt | Sequel To Spaceworm Game (Never...) | 
| Mc Pt 20 | Steve Taylor | MC 20 Sprite Routines | 
| Music Demo 2 | Martin Mckenzie Richard Fox | Music demo from Enigma Tape Magazine | 
| E-Tunes | Andy Monk Craig Turberfield | Music Done On E-tracker | 
| T-Eml! | Duncan Marsden | Extra Levels For Triltex Editor | 
| Mouse Progs | Ben Wyatt | Progs For Mouse Owners | 
| Spell Bug Fixer | Fix Bug In Spell Master | |
| Bounce | Hydrex | Bouncey-Patterny Thing (!?) | 
| Snail Race | Ben Wyatt | Shock! Horror! Gambling In Fred! | 
| Hang Man | Chris Ainsley | Classic School Time-Waster On Sam | 
Magazine
BM                   The First FRED of '93
Yeah,  yeah,  Happy New Year.  Some of the more sadistic readers
among  you  may  be amused to hear that as a result of wandering
around  Dundee  for  most  of 31st December/1st January, I'm now
left with a b*****d of a cold and have just about forgotten what
it felt like to be able to breathe through my nose. In fact, I'm
beginning  to wonder what the concept of "taste" is all about as
well.  Funny the way mushrooms suddenly become edible as soon as
the sniffles start isn't it?
So.  Has anybody else managed to make New Year's Resolutions? Or
is  it  only  us  Scottish  sorts  that  bother?  My  New Year's
Resolution  -  decided upon at 1:24pm on 1st January when I woke
up - was to stop drinking so much. It lasted until 7:30pm on 2nd
January,  and  wouldn't  really come very highly in the "Top 100
Feats of Willpower".
In  case  anybody's interested - small six-week-old dogs barking
constantly  from  9am  onwards  are NOT among the more advisable
hangover cures...
BM                         Blah Blah
Hum.  Telly was a bit poor this year wasn't it? Apart from Monty
Python's  Quest  for the Holy Grail there was nothing even close
to being worth learning how to work the video for. Oh no, wait a
minute  -  there  was  the  Queen's  Speech!  Yay! 10 minutes of
non-stop  action, a tense plot and some superb scenery. Smashing
stuff, ho ho ho.
It  has  to  be  said  that  the most memorable thing about this
Christmas  was  cheerfully  "singing" (ahem!) the first verse to
"Always Look on the Bright Side of Life" from Life of Brian at 1
o'clock  in  the morning in the middle of Dundee along with some
Australian  I  met  up  town  and  whose  name  I  have  no idea
whatsoever.
By  the  way, for Christmas I got an enlargement of the cynicism
and sarcasm glands, which explains the past couple of pages...
CM               Colin's Editorial Contribution
Hi  there!  How you all doing? Hope Brian is taking good care of
you. Yes? That's good to hear.  (Too right - Brian).
A brief run-down :
You  should  have  received (or be receiving shortly) a mailshot
from  West  Coast  Computers  Ltd  with some good news. It's all
explained in this so if you haven't got it yet - just be patient
We  couldn't  arrange the Wop Gamma demo for this month - but it
is being worked on and should be ready for next month.
Blue  Alpha  Electronics now have their phone line installed and
the number is [redacted]. Phone before sending anything in.
Rumours   are  afoot  about  an  imminent  take-over  of  a  SAM
magazine.. possibly more news in the newsletter.
CM                          Bad Boyz
Over  the  last  month  or  two,  I've  had  numerous letters of
complaint  about  two  "companies"  :  the  SCPDSA and the SCPDU
magazine.  Many  of  you  have  sent  in  money and have not yet
received the goods you paid for.
Steps have been taken to sort both of these problems. The SCPDSA
is,  as  previously announced, effectively dead - although steps
are  being  made  to  arrange a refund or replacement. The SCPDU
magazine  issue  5  has  experienced  delays (6 months ????) and
anyone  due  it  should  have received it by now. If you haven't
heard  anything  from  them  in  a few weeks write to me at FRED
saying  what  you are owed and when you paid your money and I'll
do my best to get it sorted out.
If  any  other  SAM  people owe you money - get in touch because
something can be done about it.
CM                         Hints...
Firstly, Frank Kirby tells us how to fix the bug in the phone
program back on FRED27. The first statement in line 290 is CSIZE
&C , &8. The C should be changed to an 8, hence it should read
CSIZE &8 , &8.
Charles Williams explains a few little problems he's had with
the different disc drives. A 1 Meg Drive has a yellow or green
light and a 2 Meg Drive has an orange or red light. If you have
a 1 and a 2 Meg drive, the 1 Meg drive should be in the left
hand side. If you use High Density discs, the second hole on the
discs should be covered up when using 2 Meg drives.
ED's  NOTE:  Ha!  Look  at  that    ↑↑↑   - and he accuses ME of
leaving huge spaces!  What a nerve....                   - BRIAN
CM                       Chrissy Cards
Thank  you  very  much for all the Christmas cards that everyone
sent  in. Things were too hectic to send any cards in return - I
apologize.  The  cards have long since been taken down but I can
remember  most  of  the  people  that  sent one in...but if I've
missed you out, I'm sorry :
InterPrint         Pat Spencer               Stuart Burton
Format             Derek & Maureen Morgan    PDC Copyprint
ZAT Team           Stefan Drissen            Paul Jenkins
Phil Glover        The Barnes-Lawrences      Chris Bailey
Nicholas Bay       Andy Penny                Mairi Ross
Mik Martin         Kevin Davies              Ian, Zeb & Morton Q
Martin Scholes     Graham (0269)
Once  again,  a  belated Merry Christmas and a Happy New Year to
everyone - especially those listed above.
I hope that all FRED readers and SAM users worldwide will have a
prosporous 1993 (I don't care about anyone else!)
CM                        Brummy Show
Friday  4th  December - suddenly remembered I was supposed to be
in  Birmingham the next day. Rather than taking 36 hours for the
trip  up  and  down, I caught the train (not so expensive with a
railcard) meaning I only had to leave at 10.45 pm instead of 8pm
or whatever - time for a drink or two....
I  had  to change at Crewe at 4.30 am so I had to choose between
getting some sleep and hoping to wake up by then - or taking the
safe  route  by  staying  awake.  Incidentally,  in  this time I
re-read Clive Barker's "Cabal" which I can recommend to any fans
of  light-horror. For the first THREE WHOLE HOURS of the journey
there  was  some daft Irishman teaching 8 kids how to sing Irish
songs  - if I ever see him again, I'll ram a whole Scottish song
book down his throat..... no offense to the Irish of course...
Fine, half four in the morning, 3/4 of the way through Cabal and
I  had  to sit an hour and a half in Crewe. Great! At this point
my  stomach  decided that I was starving - and there was a Casey
burgers  shop  with  lights on! Up I went only to find it shut!
CM                       Brummy Show!
6am  and  it's  time  to catch a train - about time too!! Burger
shop  was  still  closed. Just as the train was pulling in I saw
someone  walk  up  to  the Burger shop and find it's doors shut.
"poor  guy"  I  thought.  And  then as I was about to get on the
train,  all  he  did  was knock on the door, wait for someone to
come and then he went in and got served! Aaarrggggghhhh.
Anyway,  my  ticket  was  for  Birmingham New St which is in the
centre  of Brummy. The voice over the tannoy said that the train
was  continuing  to  Brummy  International  -  just  next to the
MotorCycle  Museum!  So I risked the extra 1/2 hour only to fall
asleep  after  20  minutes and only woke up just in time to leap
from the train (literally!).
Well,  a whole 10 minutes sleep did me the world of good for the
day,  I don't think. Derek Morgan came along and helped out with
the  stand (as well as flogging his stuff) so I appreciated that
more  than  he  realises  - thanks Derek, and thanks to his wife
Maureen  for  the lovely sandwiches (or "butties" as they called
CM                        Brummy Show!
them!?)
Nothing   exciting happened at the show. There were 4 SAM stands
:  Supplement,  BetaSoft,  Format and FRED. People in attendance
were  (if  my  memory  serves me well) : Andy Wright, Ian Slavin
(AXE....you know!), Bob Brenchley, Carol Brooksbank, Dave & Jean
Tonks, Andy Wright, Simon Goodwin, Marc Broster (did PD stuff on
the  coupe  WAY  back),  Charles  & Martin from the Wirral Users
Group,  .....  and  ...... and ...OK, so I know there were other
people there that I met but I've forgotten your names - sorry!
OK,  4pm  arrives  and after realizing that I had a train in the
centre of Birmingham at 4.45 and it takes 30 minutes by train to
get  there  (from  International...remember?)  so  I was relying
rather  heavily  on the hope that there would be a train sitting
there  waiting for me to get to New Street. I was in luck, just,
I  jumped  on  the  train  and mere seconds later it pulled off.
Unfortunately, I scared myself to death after I realised that my
train left New St in 25 minutes and I was still 24 minutes away!
CM                       Brummy Show!
Then,  pot  luck,  (better than a pot noodle anyday) just as I'm
about  to  run  off the train in search of the one to Dundee the
conductor  announces that "British Rail are sorry for the delay.
This  train  will  be  continuing to ...,.... , .... , ..... and
terminating at Dundee". BINGO!
I  eventually  got  back  home  by midnight to enjoy a VERY good
night's sleep!
Incidentally, the GamesMaster show was on at the same time and I
did  plan  to  pop  in  -  but after seeing the queues I decided
against  it!  Turns  out  75,000  went  to  it  that  day....! A
GamesMaster Live report might be coming FREDs way soon.
[Indeed yes; there's one in the Letters section! - Brian ]
As  a  result  I lost a lot of money, a lot of time and a LOT of
sleep - I'll have to think carefully about any future shows!!!
BM                            News
There's   only   really a bit of software news this month. First
of  all,  a couple of adventure games; Days of Sorcery is one of
them,   and   as  you  can probably guess from the title, it's a
fantasy  type  environment,  with something to do with being the
King  of  England  in  the  Dark  Ages.   A  text  and  graphics
adventure,  the  little  I've  seen of it so far is really quite
impressive,  and  adventure  fans  will probably find it well to
their tastes. The address to write to for more details is:-
                       Nigel Kettlewell,
                          [redacted]
The  second adventure game is called Day Dream, and is by a team
called  Eureka  Software.  It  was  written  using SAS - the SAM
Adventure System.
BM                            News
The game is apparently intended as "an introduction to the world
of  Adventures"  but  even  hardened addicts should find it well
worth  the  effort  (is  there such a thing as an adventure game
addict  do  you  think?).  Day Dream is basically about you, the
player,  waking up one morning to find yourself only four inches
tall  -  you've  then got to roam about your house trying to get
back to normal size. Whether or not romantic liaisons with Cindy
dolls (or Action Man dolls - no sexism in FRED!) are part of the
game  I don't know, but it's a thought isn't it? I bet you can't
hide  inside  postboxes and shout at passers-by who consequently
alert the emergency services who then find nobody trapped inside
after  all, and decide to take the passer-by back to the station
for  a  good kicking... Ahem. But enough of that. The game costs
£4.50, a reasonable enough price, and can be purchased from:-
                           [redacted]
BM                            News
We'll possibly have reviews of those games next month. Maybe not
though (I do like to commit myself don't I?).
Next  up  is  a  utility  from  somebody  who  claims  to be the
reincarnation  of  King Herod. Well. Not quite. He does claim to
be  called Matthew Collins though, and to be honest I think he's
probably  telling  the  truth  there.  So,  brownie  points  for
integrity  and  we  haven't  even  got  round  to mentioning the
program!!  (Er,  I think we've got a small reality problem here,
Brian.  Slap!  -  CM)  Ah,  right.  Sorry. The program is called
Spritemaster,  and  far from being about the author's suppressed
desires  to dominate sprites (Slap! again - CM) it is to help in
the  creation of sprites for your own programs. You can buy this
for £6.95 from:-
                          ORB Software,
							[redacted]
							
BM                            News
We'd  have  a  review  of  Spritemaster  this  month, but due to
technical  difficulties,  erm,  we  don't.  Next  month we will.
Probably.
Lastly on the news front this month is a double package from the
newly  formed  Pheonix Sofware. Run by Dave "Not Involved In Too
Many Things At Once, Honestly" Ledbury, their first venture into
the cut and thrust world of international morris dancing (sorry,
games publishing) features two games from somebody from Poland -
a member of ESI in fact - so they're going to be well programmed
at  the  very  least. According to the little propaganda leaflet
thing   supplied   by  Pheonix,  the  two  games  are  Craft,  a
challenging puzzle game for all ages, and Snake Mania, where you
must  guide  a snake round a maze eating "pills". Phew. And they
said  "Ebeneezer  Goode"  was  subversive.  Lummey!
I  can't remember off-hand just how much this package costs, but
since   it's  a  proper  commercial release it's probably in the
region of £12 or £13 or so.
BM                            News
Just  to be certain though, you'd maybe better write to them for
details. The address? Why of course:-
                        Pheonix Sofware,
                          [redacted]
The  final bit of news is that Dinosaur Jr are playing some gigs
in  the  UK next month. Yes!! A brilliant band if ever there was
one,  and  I'd  recommend  that you all get tickets NOW! I'm not
sure  what  venues  they're  playing, but they are doing Glasgow
Barrowlands  so  if anybody lives remotely near Glasgow, you now
know what to be doing on the night of February 20th. As an added
bonus,   there's  an easy to enter FRED competition!  Detials on
the next page....
BM                           News
All  you have to do to win a free copy of FRED is to approach me
and  loudly  announce  "You're as soft as s***e you are! Now are
you going to hit me or what?" Don't worry if you can't recognize
me immediately, just keep trying until you find me! A clue: I'll
be  looking  very hard indeed, wearing large steel capped boots,
with  a  tattoo  on my arm, plus I'll be bald and tall and built
like a tank. Okay? That should make things easier...
That's  it  for  the  News section. Just talk amongst yourselves
until the next page.
Hold  on.  I better not leave a space this big after what I said
to  Colin  on  page  5 or he'll get some sort of revenge. Hmm. I
know! To fill up some space I'll tell everybody about how one of
my  old teachers managed to break his own leg playing golf! That
would take up a couple of lines wouldn't it?
Nah, maybe that wouldn't work. Oh well.
BM                    Give Us Your Money
Not really a genuine page this, it's just that Colin and I spent
rather  a  lot  of  money on alcohol this Christmas, and we were
wondering if any of you might like to send in some spare cash to
restock our bank accounts...?
Used  notes  are  preferable,  especially  those  of  the larger
denominations...
CM : You're pushing it now - especially after Page 5.
BM                      Grumble, Grumble
Does  anybody  else  ever  get  really annoyed by these programs
where  they give "unbiased" opinions about computer addiction? I
do.  They always get very sad people on them as well:
- Why  do  you  like  computer  games  then,  you young  typical
teenager who happens to be severely backward?
- Dur, 'cos I get to like, KILL people... Hur, hur, hur, hur.
- And how often do you play these games?
- Only about 14 hours a day, not too much
I  mean,  it's  hardly  representative  of  the  computer owning
population  is  it?  To  be  honest,  I think all the fuss about
addicted  game-players is a load of crap. Maybe people do become
addicted, but the way I see it there's a specific type of people
who  become  addicts, and these types are the sort who are going
to  become  addicted to anything - drugs, booze, tabs, whatever.
As  for the stories about the loonies who kill people because of
computers...  Honestly.  I  may  be  wrong, but chances are they
weren't completely sane in the first place!!
BM           I Can't Be Bothered Writing Any More
Nup.  'Fraid  that's your lot. Oh, wait a minute. I've still got
to do the magazine contents. Oops. Oh well, here they are.
SCAD Demo is the compiled version of the demo that appeared on
issue 25. The keys are QAOP and space.
For all you budding machine coders, Stefan Drissen has written
an article about the fast placing of sprites on screen, and is
accompanied by a short but impressive demo where the author
invites you to watch Lemmings multiply! And you thought FRED was
a family magazine...
COMPO is about the biggest competition yet seen on the SAM. Dare
you  read  it  to find out about the hundreds of pounds worth of
prizes? Or are you a wet dishcloth?
Spaceworm  2 is another wormy game where you must collect the
flashing pellets while avoiding the mines. Keys are the usual
QAOP and it even lets you play in your favourite colour!
BM                     Stuff On The Disk
MCode  Part  20  is the 20th part in Steve Taylor's epic machine
code   tutorial   series.   This  is  also  on  sprites  (spooky
coincidence  pt  I)  and  is  also accompanied by a demo (spooky
coincidence  pt  II  -  the  Revenge!), and again like the other
article  this  month, this one is also best avoided by those who
don't  have a clue about machine code (spooky coincidence pt III
- Son of Coincidence!).
Music  Demo  2  is  a  music  demo, a fact which we didn't quite
manage  to disguise in the title. It's the followup to the
Enigma demo on FRED22 and is also from the ETM boys - there's a
short plug for their game in the Letters.
ETunes consists early versions of 3 out of the 12 tunes in the
brill Revelation game Wop Gamma. Tunes by Andy Monk. Also just
in are two tunes from Craig Turberfield - Sound Machine winner!
T-EML! Is yet more levels for Triltex freaks. Created by Duncan
Marsden, you can play them by loading them into the editor (26)
BM               Maintenant,  Contents du Disk
↑  Nice  bit  of improvised French eh? Ahem. Right. Next up is a
collection  of  software bits and pieces for use with a mouse.
They don't work without a mouse at all, but people with a mouse
should enjoy it. Done by Ben Wyatt.
Adverts.  Actually,  adverts has been taken over this month by a
group  of  fanatic  Fruit  Liberation  activists,  and  consists
entirely  of  a  selection  of  moving  speeches  about  torture
inflicted  upon  innocent  tomatoes  by  fascist  accountants in
Basildon. Honestly. It has. No joke. Straight up, guv.
Bits 'n' Bobs consists of four programs : a Spell Master bug
fixer - just merge the line into the AUTO file and resave it.
Bounce (by Hydrex) is an interesting little ..bouncey..thing.
Hangman - just type in your word when it loads then get someone
else to come in and type letters in trying to guess your word.
Snail is a brilliantly addictive racing game. Instructions are
available when it loads up. There you go - TWO games this issue
(and both in BITS N BOBS!!)
BM        Wieviel Taschengeld Bekommst Du Die Woche?
Roughly translated, that means, "How much pocketmoney do you get
per  week?"  and  is  about the only phrase I can remember after
three  hard  years  of  German.  Just  magnificent isn't it? And
infinitely useful as well....
Colin's  just  told  me  that  he's  got some 256k expansions in
stock,  but  before ordering them you should give him a phone to
check availability.
Any  good  game  designers  out  there? Well, FRED Publishing is
looking  to  releasing  a driving game with a twist of strategy,
and  we  need somebody to establish what it's going to be about.
Send  in  your  game  outlines  and  general  ideas to the usual
address.  There  might  even  be  some cash in it for some lucky
reader whose  outline is used!
BM                          Credits
Editor: Brian "Immensely Talented" McConnell
             (in case you forget)         Ha Ha Ha Ha Ha Ha : CM
Thanks to:
Ben Wyatt                    Hamish Rust
Steve Taylor                 Stefan Drissen
Glenco Software              Cookie
Duncan Marsden               Xtreme Software
Colin Borland                Jupiter Software
Hydrex                       NOJ
Chris Ainsley
FRED Publishing          Tel: [redacted]
[redacted]           (sensible hours please!)
                                  Turn over for some
                                  nice music reviews >>>>>>>>>>>
BM                     Album Time Folks!
Yes,  they're  back. After a mysterious disappearance of a whole
month, the reviews are back in force. This month:
                             --++--
                   Mudhoney - Piece of Cake
              Jesus and Mary Chain - Psychocandy
                Take That - Take That and Party
                     Bodycount - Bodycount
                Superchunk - No Pocky For Kitty
                             --++--
Is Psychocandy the key to that void in your life? Will Bodycount
reach  the  parts  that  other albums were too shy to ask about?
Read on, and find out...
BM                 Mudhoney - Piece of Cake
Despite  fears  that this, their first corporate album, would be
all  soft and whirly and soft, I'm pleased to say it's not. It's
really  quite  raw, to be honest. And there are a couple of good
digs  at  techno  which  you  have  to hear to appreciate. At 46
minutes,  it's  a  little  better  than  some  of  their earlier
offerings   (not  mentioning  any  names  though,  Mr  Superfuzz
Bigmuff...).
There  aren't  really  any outstanding tracks, it's one of those
albums  you listen to whilst doing something (like writing FRED,
for  example).   It's  good to listen to though, and despite the
very poorly drawn cover - something which is very important, you
understand - I'm going to give it 7 out of 10.
                Take That - Take That and Party
Yeah. Sure this would get anywhere NEAR my hi-fi! Ha.
BM                    JAMC - Psychocandy
Okay,  okay,  maybe  it  is  8  years old, but I just got it for
Christmas,  okay?  And  blinkin'  great  it is too! I can't help
wishing  I'd bought it earlier now, because it really is superb.
There  are  15  tracks on it, and it's somewhere over 40 minutes
long. I don't know exactly how long, but a reasonable length.
Anway  onto the content. The production is well, pathetic, to be
honest,  but  rather  than detracting from the overall effect it
enhances  it no end. The tunes are so unbelieveably poignant and
perfect,  at  the  same  time  as  being  covered  in  feedback.
Listening  to  some  of  the  songs, you can't help just sitting
there  feeling  all  happy  and  content. This is sounding a bit
silly now, but it's true! Lovely music.
I'm  really  not surprised this was considered one of the Albums
of  the  Decade  in  the  Eighties - it's supreme. 10 out of 10.
(Yes, I did mean 10!).
BM                   Bodycount - Bodycount
Come  on now. Hands up all those who haven't heard about all the
controversy  surrounding this artist/album? Ice T's thrash metal
band  seem  to have quite successfully "annoyed the poo-poo" out
of  many a guardian of public morals with this offering. Many of
these  type  of  things tend to be drowned in the hype, but this
album's really quite good.
53  minutes  long,  with 16/17 tracks depending on which version
you  get  (some  have an extra track on, God knows why), this is
pretty  good  in the value for money stakes, even if half of the
tracks do consist of nothing more than "meaningful" quotes about
black  persecution.   I  know it's an important political issue,
but  if  I  want to listen to the evils of racism I'd record the
news...  I  wish people would leave politics out of music, or at
least make it a little less intrusive.
This  is  an  album  that  really  needs  to be played very very
loudly - ideally  at  just  a  couple of decibels below the pain
threshhold - to  be  best  appreciated.
BM                   Bodycount - Bodycount
At  quiter  levels  it's  good,  but  it  dos lose a lot of  its
appeal.  Provided  you're  prepared  to  annoy  the  hell out of
parents/neighbours  though,  a brilliant album, otherwise just a
good one; 8 out of 10.
                Superchunk - No Pocky for Kitty
A  typical  American  Indie  band  are Superchunk, complete with
tracks  that don't seem to have any tune to them until about the
fifth listen, at which point they all start to sound incredible!
Not  a  long  album,  unfortunately,  but a very very classy one
indeed, which in my book renders it still well worth buying.
Superchunk  were  one of those bands hotly tipped by some  to be
"the  new  Nirvana"  (along  with  about a hundred others). It's
fairly safe to say that that turned out to be a load of rubbish,
and  Superchunk  are  still  nearly as obscure as they were this
time last year, which I have to say is a good thing too; there's
nothing  more  annoying  than when virtually  everybody on Earth
BM              Superchunk - No Pocky for Kitty
claims  to be a fan of the same band, and the 12-year-old girls'
magazines like Smash Hits start featuring that band on the cover
every  month!  It makes it quite embarrassing to actually like a
band like Nirvana.
But  that's  enough  of  that. No Pocky for Kitty is a fantastic
album  once  you've  listened  to  it  quite a lot, and I  think
deserves 9 out of 10.
                            --++---
I may as well fill up this space by asking if anybody reads this
section?  If  so, please write in and say so, just so I know I'm
not  wasting  my  time. Just a quick mention will do, in a PS or
something,  just  a  "Yes  I  read  the  music bit". That's all.
Please...?
         Und jetzt, wir sind fertig! Auf Wiedersehen!
Oh - just get another page out of it, is it Brian? Try to con
Colin eh? Think you can put one over on me? Dead Wrong      : CM
Letters & Reviews
BM                         Contents
01 - Yes, this contents page
02 - Letter from Ian Jolly
05 - Gamesmaster Live - Show report by Marc Broster
12 - Letter from Barry Spencer
14 - Letter from Michael Nicholas
16 - Letter from Philip Powell
17 - Ooops...
                     Letter From Ian Jolly
Dear Colin,
First and foremost, a big thankyou for compiling the best SAM
mag around. It is definitely without peers. I also applaud your
decision to make "donations" to your contributors and £2 per
issue is more than a reasonable price.
One small grumble though. As you are now my sole contact with
the computer world, I would appreciate you publishing dates of
computer shows a couple of months in advance to enable
arrangements to be made etc etc (ie I didn't know about Haydock
until too late).
CM : Nice to see you appreciate hard work!! The price rise seems
to have gone down quite well considering... and the contributors
are over the moon with the extra pocket money!!!
Show dates? sorry - can't help. Unless you turn the page.....
                          Show Dates
January    17  Birmingham - Motorcycle Museum
           23  Washington - Northuumbria Centre
           24  Leeds      - Univ. Sports Centre, Calvery St
           30  Nottingham - Jesse Boot Centre, Univ.
February   6   London     - Novotel, Hammersmith
           7   Cardiff    - Univ. Union, Park Place
           13  London     - Sandown Park, Esher
           14  Birmingham - Motorcycle Museum
           20  Haydock    - Haydock Racecourse
           21  Glasgow    - City Hall, Candleriggs
           27  Hemel Hstd - Dacorum Pavil, Marlowes
           28  Bristol    - Brunel Centre, Templemeads
March      6   Leicester  - De Montfort Hall, Granville Rd
           7   Leeds      - as 24 Jan
           20  London     - as 13 Feb
           21  Birmingham - as 17 Jan
           27  Haydock    - as 20 Feb
                          Show Dates
April      3   Edinburgh  - Appleton Tower, George Square
           4   Glasgow    - City Hall, Candleriggs
           17  Nottingham - Jesse Boot Centre, Univ.
           18  Birmingham - Motorcycle Museum
           24  London     - Sandown Park, Esher
           25  Bristol    - Brunel Centre, Templemeads
May        1   Washington - Northumbria Centre
           22  London     - as 24 Apr
           29  Leicester  - De Montford Hall, Granville Rd
These  are  the  latest  dates  I could find for the all formats
fairs.  I  cannot  guarantee attending ANY of them because every
show  this  year  has lost me money and I can't see them getting
much  better. However, give me a ring just to check if you want.
Alternatively,  ring  Format  on  0452  412572 who are much more
likely to be attending shows.
Gamesmaster Live Review             Marc Broster
     4th, 5th, 6th December '92
     National Exerbition Center (Near Birmingham)
     £6 per person
Being  a MegaDrive owner as well as a SAM person, I was aware of
the  Gamesmaster  show from ads in MegaDrive mags, it all looked
very  nice,  Virtual  Reality,  that game with 'laser' guns, and
lots  of arcade machines. Smart! I persuded a mate of mine to go
as well, we ordered tickets, and off we went.
The  show  was  okay  I  suppose. It consisted of a selection of
stands  for  all  the  major  software and hardware producers, a
large  retail  area, a virtual reality area, a Quasar (The laser
gun  thing)  'dome',  a  free  play  arcade  (where there were a
selection  of  arcade machines rigged up so that you didn't have
to  put  any coins in), a large area that was meant to look like
the games rig off Gamesmaster, and a few other things.
In  theory,  the  show  would be great, you could wonder around,
play  all  the  latest  games,  have lots of free credits on the
arcade  machines,  try out Virtual Reality, and pick up a bargin
in  the  retail  area.  However,  the only real problem was that
there  were  about 9 thousand other people all wanting to do the
same thing.
I  went on a Saturday, so I expected it to be busy. At the start
of  the  show, it was okay, there were only a few people around,
we  spent  some  time  on  the arcade (Which wasn't particularly
good, as they didn't have many up to date machines), had a go on
the  Nigel  Mansel Experience, a racing car simulator (Which was
okay).
However,  by  about  11.30,  it had just got rediculus, as there
were  so  many  people  around. There were massive lines for the
Virtual  Reality  and  Quasar,  and  as they moved so slowly, we
didn't think it was worth waiting. The retail area was seriously
packed  out,  however,  I did have a go on a Neo Geo beat'em up,
which was good, and I saved a few quid on a MegaDrive joypad.
Myself  and  my  friend  had  a quick look round the rest of the
show, but it was too busy to try out any more games. Fortunatly,
I  had  noticed  some  All  Formats  Fair  signs  on  the way to
Gamesmaster,  as the National Motorcycle Museum is right next to
the NEC, so we decided to escape the Gamesmaster show, and go to
the All Formats Fair.
We  had  planned to walk to the Fair, but after a few minutes we
realized  that  would  be a bit silly, so we returned to the NEC
and  took  a taxi to the Motorcycle museum. Now, taxi's are good
value  right!  I  won't  have a word said against them. The five
minute jorney only cost us £2.50 each way.
The all formats fair was okay really. There were plenty of cheap
stuff  on  offer, and more importantly, a group of SAMs had been
set up! Yay!
I  spent  an interesting half hour talking to Dave Tonks, editor
of  the Supplement, and Colin, Fred ed. ZAT and Format were also
there,  but  it  was a bit of a shame that SAMCO hadn't suddenly
reformed  and  made  an  apperance  at  the show.
I also enjoyed trying to teach a fellow Sam owner how to use the
VMPR,  and ended up totally confuseing him, Sorted! or rather it
wasn't. I quite enjoyed the All Formats Fair, but I wouldn't say
it  would  be  a  good  idea  to travel a long way to get to it,
unless you want to buy a new PC or something.
We  then had to return to the NEC in order to make our way home.
I  quite enjoyed the Gamesmaster Show, and I was pleased I could
make  it to an All Formats fair, but I suppose I could of made a
lot  more  out  of  the  Gamemaster show if I had planned my day
properly. Here's some guide lines on what to do:
             Brog's guide to Gamemaster Live Shows
1) Arrive incredibly early. The show was meant to start at 10am,
   I got there for 9.40, and they were letting people in already
   and there seemed to be quite a few people in the building
   when I first went in. I think it would of been best to get
   there for 9am, to be one of the first in.
2) Carefully plan what order you want to do things. If I had
   known it would be so busy, I would of headed straight to the
   virtual reailty, then quasar, if the queue wasn't too big.
   Then hit the freeplay arcade until things start to get busy.
3) Be really nasty on the freeplay arcade. Chosse a less popular
   machine, a typical shoot 'em up of some sort, get a friend on
   player two, and stay on it for as long as you can. I found
   that people will only start to get really irritated when
   you're up to your tenth credit.
4) When the freeplay arcade starts to get too crowded, leave,
   and have a very carefull look around the rest of the show,
   especially the retail area. Okay, so it may take half an hour
   to cover 50 metres, but it's worth it, as there's some real
   bargins to be found. Make sure you cover every stand in the
   show, so that you don't miss anything.
5) Try to grab as many leaflets and handouts that you can, most
   of it will be useless, but you occcansionly find a good
   special offer. Make sure you pick up the free Street Fighter
   2 carrier bag and show magazine from the entrance when you go
   in, the carrier bags's usufull for putting leaflets in, and
   the show magazine's quite good.
6) If you buy anything make sure you get the telephone no of the
   place where you brought it from in case it dosen't work when
   you get home.
7) After you've had a good look round, and it's still busy, get
   out of the show (I think you can get a passout ticket to let
   you get back in again) and have lunch outside the main
   Gamemaster show, and do something else for an hour or two.
   The NEC has it's own train station, so you can easy go into
   Birmingham for a bit if you wanted.
8) Two or three hours before the show is meant to close, go back
   in and try out all the things you couldn't be bothered to
   line up for when it was more busy.
9) Arrange to leave the NEC a good while after the show was
   meant to finish, as you will probally be able to stay on for
   a good half hour before they chuck you out.
     Now that I'm more experienced, I would definetly like to
go to the Gamesmaster show next year, if there is one, as I
would be able to get a lot more out of it.
                   Letter From Barry Spencer
Dear Colin,
I  am  writing concerning your reply to the Dyzonium review by D
Marsden  (I  wrote the more complimentary one). In your comments
you  stated  that  line  vectors  had never been done on the SAM
before.  This  isn't  actually  true,  though few SAM users have
probably seen the first instance.
This  was  on  Enigma  Tape  Magazine's SAM Music Demo 2. I have
transferred  the  demo from tape to disk and included a copy for
you.   It's  an  old  demo,  but still well worth looking at. It
starts  with  ported  ST  graphics  and  finishes  with  various
graphical effects including the aforementioned 3D line vectors.
The  music  is  from  various  Spectrum  128k  games  and can be
selected using key 1 - 8 and the space bar.
                   Letter from Barry Spencer
If  anyone's interested, Hamish Rust and others from Enigma Tape
Magazine  have  coded  an  excellent  puzzle/arcade  game called
"Snare"  which  will  be  released  by BEYOND BELIEF sometime in
January.  This  has already been reviewed by the Speccy mags and
received  90+  percent  ratings.  The  game has a SAM compatible
version on the B side.
                 Happy hogmany,
                               Barry Spencer
BRIAN:-  Thanks  for  your letter Barry, and thanks also for the
demo.  Just  so  that everybody else can enjoy the line vectors,
the music demo is on this issue of FRED.
Does  anybody else know of any line vector demos which can claim
to be the first on the SAM?
                 Letter from Michael Nicholas
Dear Colin,
May I congratulate you on producing such an excellent product as
"Etracker".  I  have never seen such a well presented manual, it
has  a  unique  professional  look  that will give the program a
clear selling advantage.
The program is straight forward and allows a beginner to produce
simple  tunes,  but  a  more  advanced person to produce complex
tunes with all six channels of sound.
What  you  need  to  do now is to make a Sound Machine convertor
which  will  allow  people  to convert their sound machine files
into  Etracker  format.  As  you  may know the sound machine has
clear  disadvantages  compared  with Etracker. A disadvantage is
that  the  music and wave form creators are in seperate programs
which can be annoying. Also, the Sound Machine files take up far
too much memory (even when compressed)!
                 Letter from Michael Nicholas
Another  idea for an addition to the Etracker program would be a
music to notes convertor ie convert sound from the ear socket on
SAM to proper 6 channel note form.
My  aim  is  to  produce an ear socket frequency limiter for the
SAM,  this would only allow certain frequency ranges of music to
be  recorded,  thus  allowing a perfect recording! This would be
really cheap and easy to make.
Have a happy new year,
                       Michael Nicholas
BRIAN:-  This  is  just  one  of  the  many  letters  we've been
receiving   from  satisfied  Etracker  users.  Etracker  is  now
released,  as is Waterworks, by the way, so feel free to send in
your orders!
Some  good ideas there Michael - perhaps in the future something
will come of them...?
                   Letter from Philip Powell
Dear Sir,
I've  been making enquiries about a game called Deus Ex Machina.
If  you  could  publish  this  letter, perhaps someone somewhere
knows  where  I  might  purchase  the  above game. I know it's a
pretty  tall order, as it was a long time ago that it was on the
market,  but  I thought it might be worth a try. Perhaps someone
has a copy and would be willing to sell me theirs...?
Keep up the good work with the magazine.
BRIAN:-  Well.  You  heard  the  man!  Anyone  with  information
regarding  this  game should get in touch with us and we'll pass
it on to Philip.
                 Letter from Craig Turberfield
Happy '93 all you FREDy-type people!
Hope this year that FRED continues to be fab or get even fabber.
I can safely say that E-Tracker is "rather" good. If only I had
more time to mess about with the instrument and ornament editors
more, there good be some really great effects produced on such a
flexible piece of software. Well done ESI etc etc
Hope you like the tunes. The first one's called CAMEL 'cos when
I hear it I think of a lonf line of camels plodding along the
desert. The second one is called PURSUIT and I did it yesterday.
See Ya,  Craig "The Bird" Turberfield
CM : Great tunes Craig - sorry about the delay but I'm glad you
like it. Both your tunes are on this month so perhaps other
ETracker users would like to tell us what they think of Craigs
first two tunes???
BM                          Oops
There  are  no  reviews  this  month  due  to  certain technical
difficulties  -  to be perfectly honest, I dropped my SAM on the
floor  by  mistake,  it  hit  off  the TV remote control and the
letter  "A"  broke  off. I know it's a very poor excuse, but I'm
really starting to get VERY VERY ANNOYED WITH THE DAMN KEY...
Sorry  about  that.  Reviews  will  return next issue, once I've
glued the key back on properly.
OK Brian - enough's enough. Get it sorted out. Remember folks,
FRED30 will be out mid-February (depending on Brian) and costs a
mere, measly, unjustifiable, petty £2. Wow! And it might even
have some earth-shattering news..............
Sprite Routines
                    Cokes, fantas and 7-ups.
                    ========================
The SAM Coupe is a brilliant computer to program, a lot of
brilliant programmers have been doing this, but not enough. I
see programming as tackling problems in a manner so that the
solution is as fast as possible. The software market for the SAM
isn't exactly what I'd call competitive and therefore I feel
that ALL programmers should share their darkest secrets and show
other programmers how they solved a certain problem. Hopefully
the synergy effect will occur whereby the combined efforts of
all members is greater than the sum of the individual members.
As a "side effect" the SAM software library should grow
significantly as should the quality of the software produced.
Just in case you were wondering, this is a small article about
sprites on the SAM. First let me explain something about the
necessity of speed. Have you seen any games written with
Gamesmaster (or SCADs for that matter), you may have noticed
that the sprites look blurred when they move. This happens
because the sprite routine isn't completed in one frame. You may
also have heard Cookie ranting on about one frame instead of
three in his Entro 2, what does this mean? Well, animation is
simply fooling the brain (via the eyes) into thinking something
is moving. If something is animated at fifty hertz (times per
second) the overall result is smooth, the trick works. However
at speeds lower than 50Hz, the trick isn't pulled off properly.
At 25Hz the eye sees an image in one place for a moment and a
bit later in an other, this bit later is too far away from the
first, giving the effect of two images at once and thus blurring
the sprite.
I'm not too pleased with my explanation, but it is true. For
example take a look at Bats 'n Ballz, a brilliant piece of
coding by David Gommeren, all the sprites move smoothly and are
clearly defined. Parallax is another example, nice crisp sprites
once again. Those are the results of working within one frame.
Secondly take a look at Defenders of the Earth, beautiful
graphics, but what a shame about the blurred sprites, this is a
classic example of not getting everything done within one frame.
Dyzonium also doesn't make the one frame deadline, which wastes
a lot of the time put into designing good looking sprites.
What is the moral of the story then?  Make sure you write a fast
piece of code.  Not very helpful am I?
There are at least two ways of writing a piece of code, a slow
way and a fast way.  It depends on what you want to optimize, if
you are worried about lack of memory, feel free to write crafty
complicated code. If it's speed you're after then it'll cost you
memory, speed and memory usage are intertwined.
Example time, to fill a block of memory starting at HL with 128
bytes worth of 15s you could:
          LD B,128       7         7
LOOP:     LD (HL),15    10      1280
          INC HL         6       768
          DJNZ LOOP     13/8    1659 (127*13+8)
total:                          3714
That is the standard way, it doesn't cost much memory and is
relatively slow.  The numbers behind the instructions are the
number of t-States required to execute that instruction.  One
t-State is one clock tick of the crystal connected to the Z80
(in SAM's case about 6MHz). This is not the real speed due to
memory contention and other nasty things, but it gives
comparable results.
          LD D,H         4         4
          LD E,L         4         4
          INC E          4         4
          LD BC,127     10        10
          LD (HL),15    10        10
          LDIR          21/16   2662 (126*21+16)
total:                          2694
The above routine is about 35% faster than the first one, but
we're still making use of loops.  An LDIR instruction is also
a loop, but an internal one, inside the Z80.
Now a routine without loops, costing more memory.
          LD D,H         4
          LD E,L         4
          INC E          4
          LD (HL),15    10
          LDI           16
          LDI           16
          LDI           16
          ... (another 124 LDI's)
total:                2054
This last routine is nearly twice as fast as the first, and it's
in this way that the SAM can best be programmed. The number of
t-states required for each instruction is listed in Programming
The Z80 by Rodney Zaks, an ancient Z80 bible dated around 1980.
This is all leading up to the sprite routine.  A sprite
routine's main task is to copy a block of data from once place
in memory to another in video memory.
Before we go into the actual sprite routine there's something
else I would like to explain.  The SAM Coupe has the choice out
of 16 pages of memory to display to the screen.  (8 on a 256k
SAM)  When working with one screen the annoying thing is that
while you are working the TV scan line is constantly updating
the screen.  This means that the scan line might just come along
while you were clearing a sprite, and thus showing the
background on the screen instead of the sprite.  This gives a
"nice" flickering effect.
Wouldn't it be nice to work on a screen and then tell the TV to
show it, and only once you have finished working on it?  This is
possible thanks to being able to have more than one screen.  It
works like this, you display screen 1, work on screen 2 and when
finished display screen 2, then go and work on screen 1 and when
finished display it, etc, etc, etc.  The advantage of working
like this is that you always get nonflickering sprites without
having to worry about getting your timing right to avoid the
scan line.
Please do wait until the scan line is at the top (or bottom) of
the TV before flipping screens. You can do this by waiting for a
frame interrupt (or for a line interrupt set at line 192).
Now for the possible sprite routines.  You could go along and
program in the same fashion as the first loop.  The result would
look like this:
HL=sprite in GRAB format
DE=screen address, screen must be paged in
          INC HL              6         6
          LD B,(HL)           7         7
          INC HL              6         6
          LD C,(HL)           7         7
          INC HL              6         6
HEIGHTLP: PUSH BC            11       176  (16*11)
          PUSH HL            11       176  (16*11)
WIDTHLOOP:LD A,(DE)           7       896  (16*8*7)
          INC DE              6       768  (16*8*6)
          LD (HL),A           7       896  (16*8*7)
          INC HL              6       768  (16*8*6)
          DJNZ WIDTHLOOP     13/8    1584  (16*(7*13+8))
          POP HL             10       160  (16*10)
          LD BC,128          10       160  (16*10)
          ADD HL,BC          11       176  (16*11)
          POP BC             10       160  (16*10)
          DEC C               4        64  (16*4)
          JR NZ,HEIGHTLP     12/7     187  (15*12+7)
total:                               6203
The second column of numbers gives the total number of t-states
needed including looping.  This total is based on a 16 by 16
pixel sprite, which is then 16 bytes high and 8 bytes wide.
When repeating the inner loop by hand, that is the bit from LD
A,(DE) to DJNZ the speed is logically improved.  The main
difference is that the DJNZ loop can be removed, saving 1584
t-states which gives a speed increase of about 35%.
The above is still a simple sprite routine, when working with
backgrounds you'll get a nice blank block around your sprite. To
get around this not very good looking effect the masked sprite
was called to life.  A masked sprite consists of two components,
the mask and the sprite.
The mask is the same size as the sprite and contains ones where
the background should show through the sprite and zeros where it
shouldn't. You can have a bit mask which saves memory, 1 bit = 1
pixel, but storing it in the same manner as the sprite is
faster, 4 bits = 1 pixel.
The sprite is simply the plain sprite, but where there is no
sprite the value MUST be zero.
By combining the background, mask and sprite in a crafty way you
get a sprite on the screen which doesn't have a blank block
around it, and which can be any shape.  The combination is as
follows.  Binary AND the background and mask.  The ones on the
mask then let through only the bits of background on which the
sprite is not and the zeros blank out wherever the sprite is
going to be.  Secondly, binary OR the ANDed background with the
sprite itself.  Seeing as where there is background the sprite
is zero and where there is sprite the background is zero, you
get a nice sprite.
The rewritten sprite routine, which now will cope with masking
looks as follows.
IX=sprite data in GRAB format
HL=mask data in GRAB format
DE=screen address, screen must be paged in
          INC HL              6         6
          LD B,(HL)           7         7
          INC HL              6         6
          LD C,(HL)           7         7
          INC HL              6         6
          INC IX             10        10
          INC IX             10        10
          INC IX             10        10
HEIGHTLP: PUSH BC            11       176  (16*11)
          PUSH DE            11       176  (16*11)
WIDTHLOOP:LD A,(DE)           7       896  (16*8*7)
          AND (HL)            7       896  (16*8*7)
          INC HL              6       768  (16*8*6)
          OR (IX)            19      2432  (16*8*19)
          INC IX             10      1280  (16*8*10)
          LD (DE),A           7       896  (16*8*7)
          INC DE              6       768  (16*8*6)
          DJNZ WIDTHLOOP     13/8    1584  (16*(7*13+8))
          POP DE             10       160  (16*10)
          LD A,E              4        64  (16*4)
          ADD A,128           7       112  (16*7)
          LD E,A              4        64  (16*4)
          JR NC,OK           12/7 )   184  (8*12+8*11)
          INC D               4   )   ---  average with above
OK:       POP BC             10       160  (16*10)
          DEC C               4        64  (16*4)
          JR NZ,HEIGHTLP     12/7     187  (15*12+7)
total:                              10929
As you can see, the size of the routine is growing, and unlike a
snowball, the speed is decreasing. Once again we can repeat the
inside of the loop manually, saving a total of 1584+320=1904
t-states, but the main speed stopper is the use of the IX
register. Although the IX and IY registers can be very handy,
they are slow. In fairly intensive loops try not to use them if
possible. In the above routine they need to be used, so how do
we get the routine running faster?
The answer to this problem was enlightened to me through
conversations with Edwin Blink (yes, he of COMET).  And he in
turn had, together with David Gommeren (Lord Insanity), come up
with the idea for the intelligent sprite building routine, which
David went along and wrote. I then had the concept and went
along and wrote my own, which accomplishes exactly the same as
David's, whose code I received after having written my own.
Let me explain, as you will have seen in the previous examples,
any form of looping is relatively slow.  The next idea is the
groundwork for the intelligent sprite builder.  Why bother
combining the mask with the background and sprite if nothing
changes.  Sprites fit in rectangular boxes but they don't occupy
all the space, take a ball for instance.
Lets do some theoretical mathematics.  The area of a circle is
pi*(r↑2) where r is the radius.  The area of a box in which
such a circle fits must be at least (2r)↑2 = 4(r↑2), this means
that about 21% of the space is unused ((4-pi)/4). For 21% of the
time the masked sprite routine is then changing nothing and only
wasting time. If the circle were not filled but hollow then even
more time would be wasted.
Point two on time wasting.  If a whole byte is used as sprite,
why bother masking it, simply doing a LD (HL),byte is much and
much faster.  Masking is only needed if one of the two pixels in
a byte needs to be see through, so why mask every pixel?
Thirdly, why move data indirectly from memory to a register and
then move to another place in memory. Indirect addressing is
where you load a register with the contents of memory pointed to
by another register. Why not load the register directly, for
example LD A,15, this is just as fast as LD A,(HL) but without
needing to use the HL register.  When also having the mask and
background involved you now don't need to use the slow IX
register which leads to an even greater speed.
What does the intelligent sprite routine do?  You feed it your
sprite and mask data and it creates a subroutine which, when
called, will print your sprite (masked where necessary only).
How does it work?  It goes through your sprite and mask data
looking for when it needs to put something on screen and how. It
also finds the fastest way of getting from its old screen
address to the next one it needs.
It may at first seem complicated, but when you grasp the idea
behind it all it should all seem logical.  If you look at the
code you will see that the code also builds a super fast clear
sprite routine (clearing only the bits that were put on screen),
this assumes that you are using a background screen which is not
changed but only used as a reference to clear sprites.  This
avoids having to copy what was behind the sprite to a storage
place and then having to copy the storage back to the screen to
clear the sprite.
To use the routine DPOKE the variables data, mask and target
with the required values, these must all be in paged in memory.
Data is the address of the GRABbed sprite data, mask the address
of the GRABbed mask data and target is the code destination. The
variables spritelen and clearlen can be DPEEKed after the code
has been executed to give you the lengths of the sprite
routines.
Seeing as SAM basic uses a slightly unlogical way of using masks
I decided to do so too. So instead of a pen 15 meaning
transparent and a pen 0 meaning sprite only, it expects the data
the other way round. By working like this you can directly test
if your sprite and mask works or not with a PUT x,y,s$,m$.
When calling your sprite, HL=the screen address to start at (top
left corner) . When calling the clearsprite, HL=the screen
address, the background screen must be paged in section CD and
the display screen in section AB. This paging into section AB
may seem a problem, but it's not. Make sure that your interrupt
handlers aren't too long and put them at the start of the screen
so that if an interrupt occurs while the screen is paged into
lower memory everything goes smoothly. This leaves a bit of crap
in the top of the display, but with line interrupts you can
either set the whole palette to black or you can show the first
few lines of a noncorrupted screen.
The test option simply allows you to test your sprite, and if
you put loops in it you can time how long it takes to print a
sprite 10000 times. In the little demo program try changing line
150 to use SAM basics sprite routine (PUT x,y,s$,m$) instead of
the call to the test option.  The speed increase is quite
impressive, SAM basic takes about one minute, the built sprite
takes 20 seconds (for 1000 sprites). This should give you an
idea of what some good speed orientated programming can achieve.
The following code was written with the COMET Assembler from
Revelation Software.  COMET is the BEST assembler available for
the SAM Coupe.  Here's a quick list of the most important
features of COMET: very fast full screen editor, no line numbers
in source, source can be over 400K, object code can be put
anywhere in memory, can merge data with source from disk, can
include 24K source files and it assembles very quickly (turns
screen off to assemble at full 6MHz). If you haven't got a copy
yet and are slightly interested in doing some coding, order one
now! The price may seem a bit steep, but it's worth every penny,
and Fred subscribers even get a discount.
This file is also on the disc as a COMET source file (BUILDER.S)
The assembled code is also present (BUILDER.O), you should be
able to work out the DPOKE and DPEEK addresses or else see the
short little demo with the Lemmings.
;sprite builder
;
;THE fastest sprite routine for the SAM Coupe to date
;
;(C) 1992 Stefan Drissen, but feel free to use it for anything
               ORG  32768
               DUMP $
               JP   build
               JP   test
data:          DEFW 0             ;address of sprite data
mask:          DEFW 0             ;address of mask data
target:        DEFW 49152         ;where to assemble sprite
spritelen:     DEFW 0             ;when done, length of code
clearlen:      DEFW 0             ;when done, length of code
test:          DI
               IN   A,(250)
               LD   (lmstore+1),A
               IN   A,(252)
               AND  31
               OR   32
               OUT  (250),A
               LD   HL,0
               CALL target
lmstore:       LD   A,0
               OUT  (250),A
               EI
               RET
build:         LD   IX,(data)
               LD   IY,(mask)
               LD   HL,(target)
               EXX
               LD   HL,(target)
               LD   DE,8192
               ADD  HL,DE
               EXX
               INC  IX
               INC  IY
               LD   A,(IX)
               LD   (width-1),A
               LD   (subwidth+1),A
               INC  IX
               INC  IY
               LD   A,(IX)
               LD   (height-1),A
               INC  IX
               INC  IY
               LD   DE,0           ;no. of bytes since last pix.
               EXX
               LD   DE,0
               EXX
               LD   B,16
height:        PUSH BC
               LD   B,8
width:         PUSH BC
               LD   A,(IY)
               OR   A
               JP   Z,nextbyte
               LD   A,E
               OR   D
               JR   Z,noadd+1
               LD   A,E
               AND  128+64         ;max sprite width of 64
               OR   D
               JR   Z,smalladd
               LD   (HL),&11       ;ld de,nn
               INC  HL
               LD   (HL),E
               INC  HL
               LD   (HL),D
               INC  HL
               LD   (HL),&19       ;add hl,de
               INC  HL
               EXX
               LD   (HL),&11       ;ld de,nn
               INC  HL
               LD   (HL),E
               INC  HL
               LD   (HL),D
               INC  HL
               LD   (HL),&19       ;add hl,de
               INC  HL
               LD   (HL),&5D       ;ld e,l
               INC  HL
               LD   (HL),&54       ;ld d,h
               INC  HL
               LD   (HL),&CB       ;cb-
               INC  HL
               LD   (HL),&BA       ;res 7,d
               INC  HL
               JR   noadd
smalladd:      LD   A,E
               CP   4
               JR   C,doincs
               LD   (HL),&7D       ;ld a,l
               INC  HL
               LD   (HL),&C6       ;add a,n
               INC  HL
               LD   (HL),E
               INC  HL
               LD   (HL),&6F       ;ld l,a
               INC  HL
               EXX
               LD   A,E
               OR   A
               JR   Z,noadd
               CP   4
               JR   C,doincs2
               LD   (HL),&7D       ;ld a,l
               INC  HL
               LD   (HL),&C6       ;add a,n
               INC  HL
               LD   (HL),E
               INC  HL
               LD   (HL),&6F       ;ld l,a
               INC  HL
               LD   (HL),&5F       ;ld e,a
               INC  HL
               JR   noadd
doincs:        LD   B,E
               LD   (HL),&2C       ;inc l
               INC  HL
               DJNZ doincs+1
               EXX
               LD   A,E
               OR   A
               JR   Z,noadd
doincs2:       LD   B,E
               LD   (HL),&2C       ;inc l
               INC  HL
               DJNZ doincs2+1
               LD   (HL),&5D       ;ld e,l
               INC  HL
noadd:         EXX                 ;back to sprite
               LD   A,(IX)
               OR   A
               JR   Z,maskonly
               LD   A,(IY)
               CP   255
               JR   Z,dataput
               LD   (HL),&7E       ;ld a,(hl)
               INC  HL
               LD   (HL),&E6       ;and n
               INC  HL
               LD   A,(IY)
               CPL
               LD   (HL),A
               INC  HL
               LD   (HL),&F6       ;or n
               INC  HL
               LD   A,(IX)
               LD   (HL),A
               INC  HL
               LD   (HL),&77       ;ld (hl),a
               INC  HL
               JR   resetcount
dataput:       LD   (HL),&36       ;ld (hl),n
               INC  HL
               LD   A,(IX)
               LD   (HL),A
               INC  HL
               JR   resetcount
maskonly:      LD   (HL),&3E       ;ld a,n
               INC  HL
               LD   A,(IY)
               CPL
               LD   (HL),A
               INC  HL
               LD   (HL),&A6       ;and (hl)
               INC  HL
               LD   (HL),&77       ;ld (hl),a
               INC  HL
resetcount:    LD   DE,0
               EXX
               LD   DE,-1
               LD   (HL),&ED
               INC  HL
               LD   (HL),&A0
               INC  HL
               EXX
nextbyte:      INC  DE             ;pixel counter
               EXX
               INC  DE
               EXX
               INC  IY
               INC  IX
               POP  BC
               DEC  B
               JP   NZ,width
               EX   DE,HL
               LD   A,128
subwidth:      SUB  0
               LD   C,A
               LD   B,0
               ADD  HL,BC          ;next line
               EX   DE,HL
               PUSH BC
               EXX
               POP  BC
               EX   DE,HL
               ADD  HL,BC
               EX   DE,HL
               EXX
               POP  BC
               DEC  B
               JP   NZ,height
               LD   (HL),&C9       ;ret
               INC  HL
               EXX
               LD   (HL),&C9
               INC  HL
               EXX
               LD   BC,(target)
               XOR  A
               SBC  HL,BC
               LD   (spritelen),HL
               EXX
               LD   BC,8192
               XOR  A
               SBC  HL,BC
               LD   (clearlen),HL
               EXX
               RET
Well, that was all (?!).  At this point I would like to stress
that the above routine is not the only way to create sprite
routines.  The way you write a sprite routine is very dependent
on what YOU want it to do. If you want sprites to be able to
slide onto or off of the screen then the above routine isn't
very useful, try letting the sprite got over the edges of the
screen, wierd things start to happen.
For more speed you could leave out masking altogether and
combine this with only putting pixels where there is sprite
data, have a look at Boing! for an example of this. You will see
that there are sometimes one pixel wide black borders around
certain parts of the sprites.
I hope you were able to follow this article and even more so I
hope that this idea may give you some new perspective on writing
software for the SAM Coupe. I would be glad to answer any
questions you may have. Also please feel free to write any
comments on this article, I'm sure that Fred would be more than
happy with them, and so would I.
Stefan Drissen                              phone: [redacted]
[redacted]

 
 
 
