YOUR BEST INDEPENDENT COMMODORE MAGAZINE NEWS, SOFTWARE AND BOOKS-the pick of the bunch EXPERT GUIDANCE AND HELP WITH YOUR PROGRAMMING THE COMMODORE 16 HAS LANDED will it bury the opposrtiqn2^--^V _ ^ More MIDI magic flNDING NO JOY WfTH JOYSTICKS? Our review will help commndnri' 6\ HShVIDEOLAND PURE MAGIC! Join Alice in her journey through Videoland - an enchanted place populated by strange creatures such as bread-and- butterflies and pipe smoking caterpillars; where little girls change size and flamingos turn into croquet mallets! Alice in Videoland is a revolutionary new concept in entertainment for the Commodore 64. incorporating some of the finest graphics ever seen on any home computer, accompanied by a charming musical score. There are four different game scenes involved, and your performance in earlier ones will affect your ability to get through later ones and determine your eventual total score. Scene One - Stunning title page graphics give way to the first game scene as Alice falls into the rabbit's warren. Score points for collecting the objects to be found there - including keys to open doors, bottles to make her smaller, cakes to make her bigger! Scene Two - Out in the garden the Cheshire cat looks on as Alice meets the pipe-smoking caterpillar. Help her to catch the bread-and-butterflies and the rocking-horse flies that change into the balls used in the croquet game in the last scene! Scene Three - Alice is a pawn in the chess game where her opponents are the Jabberwocky and Tweedledum and Tweedfedee. Help her across the board by protecting her with your White Knights! Scene Four -The most bizarre croquet game everl Help Alice hit the balls through the playing-card-soldier hoops before the Queen of Hearts stomps on them! Alice in Videoland is available for the Commodore 64 on disk - £12.95. and now on cassette - £8.95. Alice in Videoland features graphics created with the Koala Pad. •Audiogenic P.O. BOX 88. READING. BERKS. LTD SEND FOR COLOUR CATALOGUE I Your editor spares a few seconds of her precious time t introduce another issue of Yo Commodor WELCOME TO THE THIRD issue of Your Commodore. If you've already fingered through (he pages then I needn't tell you that, once again, it's jam-packed with the latest news, re- views, games, utilities, special features and much, much more. If not. then bear with me until curiosity tempts you to turn the page. Since you last feasted your eyes upon a copy of Your Commodore, they've been working their fingers to the bone over at Commodore. Not only have the long-awaited 16 and Plus 4 machines been launched and exhibited to the world at large, but a host of new peripherals and software has also been released. How will the 16 fare in the face of growing competition? Read our article and judge for yourself. Commodore have also finally unleashed their Commodore 64 Communic- ations Modem and CompuNet, the new on-line service for Commodore users. But you'll have to see next month's Your Commodore for the low-down on this. Showtime Everybody loves a show and the 7th PCW show was certainly no exception as thousands of computer moguls, journalists, games freaks and would-be programmers trudged through the corridors of Olympia 2 from 19th-23rd September. With winter already well underway and Christmas on the horizon, the time is ripe and the market ready for new releases — all too evident with the hoards of offerings from software houses up and down the country. Wares displayed included not only the new Commodore machines but a tide of software, books and peripherals such as Currah's Speech 64. Lend me your ears Talking of which. Your Commodore is louder this month. Cone are the days when the only hint of music 6\ 0SB1DSIB f TVfosiCak: emitting from the confines of your house might be Radio 1 or you enjoying your early morning bath. Your Com- modore is competing in the music stakes. We bring you the second installment of our two- Sart MIDI series and we also ope to set your fingers tap- ping and your ears buzzing with a guide to two soft- ware packages — MusiCalc and Music Master — which transform your Commodore into a music synthesiser. Whoever suggested that new technology was breeding a nation of philislines? Reader input But. as much as we pester software houses in pursuit of the latest releases for exposure by our reviewers, toil as we may over our trusty typewriters to bring you erudite and entertaining articles, where would we be without you, our readers? We anxiously await your praise and criticism, your comments and ideas. Are we catering for your needs? Are there too many games — or not enough? Is the general tone too serious — or too lighthearted? We're quite amiable here — so drop us a line or give us a call. Praise or abuse us — we don't mind so long as you get your views across. Thank you to everyone who has already put pen to paper: we shall endeavour to answer all your letters. Your comments reveal a world of frustrated VIC 20 owners. We want to fulfil your needs — but our supplies are low. So, how better to pass those long winter nights than by retiring to a warm corner and conjuring up weird and wonderful games and utilities on your VIC 20. And. of course, we don't expect you 64 'programmers extraordinaires' to be sitting idle either. Get tapping and share your genius with us humbler mortals! Send your output to the editor: you'll findthe editorial address on the next page. I turn utc ** «i * •mi im mmmmm m COMMODORE 16 HAS LAMXD- wBflllllll" IIIWIillMI? sManwrwarsnaa* VOLUME 1 NUMBER 3 DECEMBER 1984 Editor: Wendy J Palmer Editorial Assistant: Alison Hjul Advertisement Manager: Mike Searue Advertisement Copy Control: Sue Couchman Chairman: |im Connell Origination: Ebony Typesetting Design: MM Design Editorial & Advertisement Office No 1 Golden Square, London W1R 3AB Telephone: 01-437 0626 Telex: 881 1896 Your Commodore is a monthly magazine appearing on the first Friday of each month. Distribution by: Argus Press Sales & Distribution Ltd, 12-18 Paul Street, London EC2A 4JS. Printed by: Alabaster Passmore & Sons Ltd, Tovil, Maidstone, Kent. Subscription rates upon application to Your Commodore Subscriptions Department, Infonet Ltd, Times House, 179 The Marlowes. Hemel Hempstead, Herts. HP1 IBB. The contents of this publication including all articles, designs, plans, drawings and programs and all copyright and other intellectual property rights therein belong to Argus Specialist Publications Limited. All rights conferred by the Law of Copyright and other intellectual property rights and by virtue of international copyright conventions are specifically reserved to Argus Specialist Publications Limned and any reproduction requires the prior written consent of the Company, c 1984 Argus Specialist Publications Limited. DATA STATEMENTS 9 We bring you up-to-dale with the latest news on the Commodore front. INPUT/OUTPUT E Your chance to air your views or ply us with questions. MASTERING MACHINE CODE 18 We take a further in-depth look at the computer's native tongue. ANACONDA Wind your way around the screen with this fast and furious game. TURBO 64 38 Speed up program loading time w invaluable utility for your 64. th this PYRAMID 40 Bury yourself with this great game. GRIPPING STUFF 42 Get stuck into our joysticks review. SOFTWARE SPOTLIGHT 46 Once again, our reviewers have been working all the hours God sends to give you the low-down on more exciting Corn- more games and utilities. VIC GAMES PROGRAMMING More games tips for VIC 20 enthusiasts. PRINT USING ON THE 64 54 Perfect formatting of numerical data with this handy utility. CLIFF HANGE1 16: COMMODORE'S LATEST NUMBER 28 GATOR □ We explore the smaller of Commodore's new machines. Just when you thought it was safe to go down to the river again Can you outwit the Gators? THE BASIC FACTS PT. 3 34 TALES FROM THE CRYPT 60 Conditional processes and loops feature in this month's look at BASIC. No, it's not another offering from the Hammer House of Horror but merely Runecaster in pursuit of further adventure. With (he cold, dark nights drawing in, why not curl up beside a roaring fire with a good book? MIDI REVISITED □ Strike a chord with the second part of our series on this novel musical interface. DIGITAL DUET 74 We review two pieces of music software for the Commodore 64. DOING IT YOURSELF 80 Turn your 64 into a business system with the minimum of expense and effort. MULTIPLE FILE COPY ■ COMPUTERS IN BUSINESS Protect your most valuable programs with this utility. 82 Discover the computing wholesale business West Country-style in the company of PCS South-West. SPACE BATTLE 70 Fend off those aliens with this game for the unexpanded VIC 20. SHOWDOWN AT OLYMPIA We take a look at some of the new releases on display at this year's PCW show. DESIGN 64 BEHIND CLOSED DOORS 88 Create your own characters with this character generator for the 64. We open the door to reveal John Wagstaff and Craig Communications. Are you only using To play only games J^>n a Commodore And for Jr these you need peripherals. play only games computer is like asking Albert Einstein to work out the square root of four. The computer's brain barely ticks over. To really stretch it, you need more interesting software programs. For example, record keeping, interactive education, stimulating adventure games or word processing. Like a Commodore disk drive, a really fast storage and retrieval system with a vast memory. Or a Commodore cassette unit, the inexpensive way of loading and storing programs. For those who like the idea of text and graphics being more alive and having greater clarity than on a TV, there's the Commodore colour monitor. ^^^^^^^^^ ■ ' I mm Dot matrix pnnter £230.00 Tractor feed Pnnt speed: 50 character per second COMMODORE MPS802__ _□ Dotmatm pnnter £34500 Friction feed lor standard paper Pnnt speed 60 characters per second COMMODORE DFS1101 U Daisy wheel pnnter £39999 Letter quality pnnt on all types of paper Pnnt speed: 16 characters per second XiMMGDORE I520 □ Pnnter plotter £16999 for charts and graphs Pnnt speed 14 characters per second :OMMODORE 1541 □ Disk dnve £22900 170K memory 5 '/<" diskette COMMODORE 1531 □ Cassette unit £44 95 For Commodore 16 and Commodore pfus/4. COMMODORE 1530 £44 95 For Commodore &4 COMMODORE 1701 □ Colour monitor £23000 JOYSTICKS □ Ipnces from £7.501 PADDIES l£1350l □ HeiaK correct at umf nl going tn cm Moth of your brain? And for hard copy, there are our three kw for further information tick one ior morei of the boxes above and copy, printers and a printer plotter. These will preserve on paper-in colour, black and white, chart form, graphs or text, the fruits of all your labour. •Finally, to make games playing more exciting, there are joysticks and paddles. So use your brain. And make sure you use all of your computer's brain. SEND TO THE COMMODORE INFORMATION CENTRE, 1 HUNTERS ROAD. WEID0N. CORBY. NORTHAMPTON NN17 1QX TEL CORBY (05361 205252 NAME ADDRESS PE YC O 1284 commodore An Argot P)» $»ft.M Pubhmtan am COMPUTING I For all CBM 64 Users • UTILITIES Gamesters delights galore — improved graphics, sounds, disassemblers - it's all here! 64 Tape Computing adds a new dimension to your micro! Run this Argus 64 tape and you'll soon see why it's Britain's top selling tape magazine. Each issue gives you a variety of exciting and challenging games to play, reviews of other newly released software plus valuable utilities enabling you to write your own programmes and games. N.rfl»jrvliruip Stretch your imagination and skills with 64 Tape Computing — available every other month from WH Smith, Menzies and other leading stores. (You'll see them advertised on TV from September!) Get your copy today! Argus Tape Magazines produced by ARGUS PRESS SOFTWARE 1 Golden Square, London W1R 3AB Telephone: 01 437 0626 Pride of place in this month's news from Commodore Busi- ness* Machines must go to the launch of their two new machines: the Commodore 16 and the Plus/4. Howard Stan- worth. General Manager of Commodore Business Mach- ines (UK) Ltd., hopes that these two machines, along with the 64. will "...form the strongest range on the market over the Christmas period". The Commodore 16 has been designed as a successor to the VIC-20 and will be sold in a complete starter pack at £139.99. It includes 16K RAM, a full typewriter-style keyboard, sophisticated sound capabili- Creditable interface? The Access Computer Com- pany of Stockport have deve- loped a serial interface and cable to connect most RS232 serial printers to the Com modore 64, VIC 20 or SX64 Portable. The unit, which is supplied with instructions and a 1-year guarantee, is available by Mail Order at £34.95 inc. VAT and post from Access Computer Company Ltd., The Computer Centre, 61 Shaw Heath, Stockport, Cheshire, SK3 8BH. Telephone 061-477- 6013. ties, 121 colours for high- quality graphics and advanced BASIC. The starter pack con- tains the computer, cassette deck. Introduction to BASIC part 1 and 4 recreational software" packages. {The 16 is reviewed elsewhere in this magazine). The Commodore Plus/4 is described by Mr. Stanworth as "...an affordable home com- puter for the more serious user". And, in an attempt to prove this point, it comes with 4 integral programs: word pro- cessing, database, spreadsheet and business graphics. But he does stress that the Plus/4 "...is no F»rWd in ess machine. It is a competitivelv- priced home machine ideally suited to the professional who wants to use it for productive applications". The Plus/4 contains 64K RAM, of which 60K is available to the user for BASIC programs and includes, amongst the more obvious facilities, advanced BASIC, screen window facility, a HELP key and simple cursor controls. It retails at £299.99. Both machines are being manufactured at the new Commodore factory in Corby and should be available at the end of September. Father Commodore also promises to stuff our Christmas stockings with other goodies. A new cassette deck, the 1531 (cost — £44.95) and a new single disc drive, the 1541 (cost — £299) should soon be available. Also in the Com- modore Christmas package this year can be found two new printers compatible with the entire range of Commodore home computers. These are the MCS 801, a colour dot matrix printer, and the DPS 1101, a low-cost letter quality printer; both models will sell tor £399. Both Commodore and the leading software houses are devel-oping a range of soft- ware for the 16 ancf the Plus/4. Show-down at Olympia The curtain was raised and the chips were down at the end of September for the Seventh Personal Computer World Show. Amongst the com- panies displaying their latest wares for the 64 were Anirog, Argus Press Software, Audio- genic, Bubble Bus, Creative Sparks, Melbourne House, Protek, Currah and many more. We reveal all about the PCW Showstoppers elsewhere in this magazine. E DATA STATEMENTS Get in touch with your 64 Touchmaster Ltd. have releas- ed their pressure-sensitive surface which, complete with its own microprocessor, is able to interface with a range of micro and personal computers, including the Commodore 64. Touchmaster, as the device is called, hopes to overcome resistance to keyboard usage. The Touchmaster has an A4 working surface and a resolut- ion of 256 x 256, The surface is fully linear across the active area and does not use any moving switches or similar devices. The company plans to develop a catalogue of soft- ware — to be called Touch- ware. The first releases of software specifically designed for the Touchmaster include graphic packages, educa-tional early learning programs, board games, arcade games, adven- ture games and programmer utilities. The complete package to be marketed will contain the Touchmaster, Touchware mul- tipart graphics program and other accessories required for immediate use with a home Currah speaks out New for the Commodore 64 from Currah Computer Com- ponents Ltd. comes Speech 64 which was developed in conjunction with General Instruments. It is an allophone speech synthesiser which means that it uses individual speech sounds strung together to make intelligible speech. It has an unlimited vocabulary and its makers claim it can synthesise any word or senten- ce in the English Language. Speech 64 features a 'Say' command which provides text- to-speech, a high and low voice eacn its own intonation and integral BASIC com-mands. It is a hand-sized unit which plugs directly into the back of the Commodore; sound is gener- computer. The recommended retail price is £149.95. Touch- master may be contacted at P.O. Box 3, Port Talbot, West Glamorgan, SA13 1WH. ated through the T.V. receiver. Currah^ speech synthesiser retails at £29.95. Currah may be contacted at Graythorp Indus- trial Estate, Hartlepool, Cleve- land, TS25 2DF. Telephone 0429-729%. We hope to review Speech 64 in next month's issue). PSS hit the road From the end of Seplember, Commodore 64 users can get on their bikes with the latest offering from PSS. Entitled Hyper Biker, it is a high quality representation of the popular craze, BMX biking. It enables up to four players to act out sophisticated biking man- oeuvres and, from a straight race, through obstacles, whee- lies, long jumps, high jumps and bunny hops to compete for the accolade of BMX champ. The bike is controlled via joystick or keyboard and track features include table top, whoop de doos, ramps, speed bumps, ditches and drop offs. Hyper Biker is available on cassette at £7.95. PSS may be contacted at 452 Stoney Stanton Road, Coventry, CV6 5DG. rHVPFP Available on Cassette £7*95 KBOULCBP I! cosh Statesoft In the wake of their success with their CBM games. Astro Chase and Flip Flop, State Soft Ltd. have released to new games for 64 users, Boulder Dash and Bristles. In Boulder Dash, our hero, Rockford, has to avoid crashin boulders, walls of rock an assorted creatures as he digs for the gleaming jewels. In pursuit ~)of the diamonds, he must turn his enemies to his advantage — for example, butterflies may be turned into precious stones. The mysterious escape tunnel is revealed only once the required number of diamonds have been collected. The game includes 16 mystical caves with a playable intermission after every 4, and 5 levels of difficulty. For all non-DlY enthusiasts. Bristles takes the pain out of decorating. The object is to paint all the rooms in a building without losing your brushes before time runs out. There are 8 different game screens and 6 skill levels tor each building; your target is to paint all 8 buildings in each level. While fulfilling your task, you must avoid the Bucket Chucker, the Dumb Buckets and flying Half- Pints. Lifts and stairs are provided for your transporta- tion — but beware the caretaker's daughter as she daubs your carefully painted walls with her hand prints! Your efforts are rewarded with prizes. Both games are available on cassette and retail at £8.95. State Soft are at the Business & Technology Centre, Bessemer Drive, Stevenage, Hertford- shire, SG1 2DX. Telephone: 0438-316561. Creating another Legend Legend, creators of the 1984 Game of the Year, Valhalla, have announced details of their latest release. The Great Space Race. Scheduled for release on the Commodore 64 in late September/October, chairman John Peel describes it as a "...completely new kind of computer entertainment — one that goes beyond arcade and adventure games, but retains the best elements of both". He certainly believes Leg- end's newest baby looks good. With a revolutionary operating system, MOVISOFT 2, Mr. Peel claims that "...true solid 3D graphics..." have been achiev- ed and advanced graphics enable the characters on- screen to be seen "...in detailed close-up". The game falls into two phases. In the pre-race section, you must compete for the best spaceships, weapons and per- sonnel for your team. The event itself involves a race against "...time, natural obsta- cles and your competitors". Using a new form of single key-press commands, The Great Space Race enables characters to offer you options based on their current situation through an 'options gene- rator' constantly monitoring game development. The Great Space Race costs £% million to produce which is thought to be the largest amount ever spent on the development of a single game. Legend may be contacted at P.O. Box 435, Station Road, London E4 7LX; telephone: 01- 524-8324/5. DATA STATEMENTS The Professionals Audiogenic Lid. has launched their Professional Range of business application software for the Commodore 64. The three packages in the range are a word processing system, Micro Wordcraft, a spread- sheet facility, Swift, and their database system, Magpie. All three packages are disc- based and retail at the following prices: Wordcraft — £24.95; Swift — £19.95; Magpie — £39.95. Audio-genic Ltd. may be contacted at 39 Suttons Industrial Park, London Road, Reading, Berks RG6 1AZ. Telephone: 0734-664646. Terminal Laziness Terminal Software has been far from idle in developing 'Lazy Jones', their new game for the 64. There are 18 doors in all and, behind each, lies the opportunity for Lazy Jones, the most indolent hotel cleaner in the trade, to avoid work: he can play games, hide in the broom cupboard, drink in the bar or go to the toilet — anything to avoid the irate manager or the ghost of the previous manager. 'Lazy Jones' features a split- screen window and retails at £7.95. Terminal Software are at Derby House, Derby Street, Bury, BL9 ONW. Telephone: 061-761 4321. Things that go bump in the night E Who would have thought it? David Darling (18) and his brother Richard (16) always seemed such ordinary young men but then unexpected things started happening round them. It all began at the beginning of 1981 in Canada when they acquired a VIC-20. From that moment on they found they had a talent, an unexplained power, call it what you will, which they have been attempting to harness ever since. At first it was just ordinary sprites they called up but more recently those sprites have been transforming them- selves into a complete demon- iacal hierarchy: gnosts, ghouls, zombies and poltergeists. The source of this power has been traced to their Commodore 64. Surprisingly, nobody seems to be at all concerned. Rather the opposite for the Darling brothers are in fact the authors of the new game for the CBM 64 from Mastertronic called Chiller. In it you are given the task of rescuing your fair beloved from a haunted mansion whilst warding off the unwanted attentions of the afore-mentioned denizens of the underworld. And at £1 .99 at least you're assured of a cheap thrill. This energetic pair who have so far written 35 games including about a third of Mastertronic's output (see Space Walk and BMX Racer, both for the CBM 64). are also working on a games designer for the new Commodore 16. This will be their third games designer this year and follows the one they did for the VIC-20, Hit Ma released on the Galactic label, and the Games Creator for the CBM 64. due for imminent release from Mirrorsoft. The C-16 version should be ready in about 2 months time and will be marketed by Commodore itself. The broth- ers have already been workin on a C-16 for a couple o months now, so Your Com- modore was obviously interest- ed in their opinion of the machine. "In most respects it is as good as the 64 — the two disadvantages are the lack of sprites and the sound," they told us. Still, a good games designer should go a long way to relieving the first problem. So, with all this activity it looks very unlikely that the Darling brothers will be disappearing without trace. Mastertronic can be con- tacd at Park Lome, 111 Park Road. London NW8 7JL; telephone: 01-402-3316. Toil and trouble from Creative Sparks News Creative Sparks have annou- nced the release of their new adventure game for the Com- modore 64, Macbeth — the Computer Adventure. Based on the Bard's gruesome trag- edy the game comes as two fast-loading cassettes, with a full set of instructions, plus a complete text of the play. The player can participate in four independ- ent adventures, plus psycho- analysis sessions giving the player an insight into the aims and motivation of the leading characters. The adventures all differ from one another in style and content; each depicts a Art tor Commodore's sake scene from Shakespeare's original play. Creative Sparks are part of THORN EMI; David Gearing, general manager for THORN EMI Computer Software Pub- lishing says of Macbeth "We are delighted to be publishing this ingenious package... It is full of unexpected twists and turns, rich in different mean- ings, alive with fresh possibilit- ies^'. Macbeth — the Computer Adventure retails at £14.95. Creative Sparks can be contact- ed at THORN EMI Computer Software, Thomson House, 296 Farnborough Road, Farn- borough, Hants. Telephone: The first prize of a £5,000 endowment and £1,5000 worth of computer equipment in the world's first competition to use home computers to create works of art, the Commodore International Art Challenge, went to Hugh Riley, a young unemployed art graduate. As a result of his winning entries in the 18+ Dynamic category, Louis (Meditation Failure 126) and Obsessiveness, Mr. Riley will be able to use the endowment to study computer art at a prestigeous educa- tional establishment in any country of his choice and hopes, as a result of this unique/ opportunity, to pursue a career uj in computer graphics. The awardwas presented by 1 Professor Brian Allison, World President of the International Society for education through Art, at a ceremony at London's Hamilton Gallery. Professor Allison commented that "The Commodore sales Commodore Art Challenge has each category received £1,500 revealed a fascinating new area for art and for home com- puters. I am convinced this initiative and the exhibition of computer pictures are just a glimpse into a future which will see art and technology increas- ingly working together". The competition was divi- ded into Still and Dynamic entries and under 12, 12-17 and 18+ age groups: the winners in worth of Commodore equip- ment of his or her choice, as did Mr. Joachim Wester of Sweden with his entry, 'Mr. Freaken- stein', winner of the best non-UK it* boost Commodore UK's sales topped the £100 million mark during the last financial year, thus attaining an all time record and making the company a major contributor to Commodore International's record $1.27 billion sales for the year ended 30 June. Mr. Howard Stan- worth, General Manager of Commodore Business Ma- chines (UK) Ltd., believes that "...in revenue terms..." this makes Commodore "...the undisputed leader in the British home computer market". New face at Commodore Rae Potter has been appointed as new Software Products Marketing Manager at Com- modore UK. He expects to be "...looking particularly for software which actively ex- ploits the full capabilities of our machines — not only the VIC- 20 and Commodore 64, but also the new Commodore 16 and Plus/4 home com-puters". Mr. Potter believes that: "The mass market for software has arrived and with the imminent launch of the new Commodore 16 and Plus/4 computers. Commo- dore is in an unprecedented position to dominate, not only in hardware, but also in software". Commodore dealers will now be providing 3 software packages with every 8296D business machine sold. These are: Superscript, a wordpro- cessing package including Spelling Checker; The Mana- ger, a comprehensive database and file management packag and Calc Result, a tinancia planning spreadsheet. The 8296D with integral 2Mbyte floppy disc drive, 128K RAM, monitor, keyboard and the aforementioned software packages retail for £1,690 excluding VAT. News DATA STATEMENTS CompuNet launch The PCW show will see the launch of the Commodore Communications Modem and their new database, service, CompuNet, initially available only to Commodore 64 users. The first year's subscription to CompuNet is free with the purchase of the Commodore Modem, which costs £99.99. New modem Cirkitt Holdings PLC has developed a modem which has full British Telecom approval and, so they claim, at £59.95, is less expensive than any equiv- alent equipment. The modem took under six months to design and bring to the market, compatible with most personal It is to be marketed by Protek computers on the market, Computing Limited wno have including the Commodore 64. worked closely with Cirkit on Cirkit and Protek are predict- its development and have ing modem sales of £2 million produced a range of interface over the next 18 months, packs to make the modem Cirkit Holdings PLC can be contacted at Park Lane, Brox- bourne, Herts EN10 7NQ. Telephone: 0992-444111. BIGGER, BOULDER^ BE AUTIFUL AMERICAN NO I. Q Eoxaen commodore 6\ ECLLCEF Cfl5H CASSETTE 8*5 DISK IO-95 1.MOU • MM m <■ «i mi »-.--- >". I—MI I -I . • -II IM. State Soft Ltd, Business & Technology Centre, Bessemer Drive, Stevenage, Hertfordshire SG1 2DY. Phone (0438)316561. They came from out of the desert to the HORROR of the ANTS mmm WH SMITH Letters Whether your forte lies in preaching or praising, asking or OUTPUT useful hints and tips to fellow Commodore users. Dear Sir, All those Commodore 64 users who cannot get their voice two to work, don't take the computer back to the shop. There is nothing wrong with it; the manual is wrong. On page 161 the waveform for voice two is 54283 and not 54288. Here's another tip tor you 64 users. POKE56325.X (X=1 to 255). This will speed up the cursor and is very useful when editing long lines. Yours faithfully, William Fong, London. Dear Sir. In reply to). Lee (Input/Output - October issue), I also have a Commodore and Brother EP22 series printer. He may find it useful to note that the interface I have found most suitable is the Stack for the VIC 20/CBM 64 ftom: Stack Computer Services Ltd., 290-298 Derby Road. Bootle. Liverpool, L20 8LN. Also, the cable he receives may be wired incorrectly: Computer end pins TO Printer end pins The most reliable commands found to date are: To take a listing OPEN 2,2,2.CHR$(2)*CHR$(0): CMD2 LIST A-B (Max. 60 lines) LIST B-C etc. PRINT&2 CLOSE 2 CMD3 To use within a program: The OPEN statement should be used before the DIM$ statements, and programs used with the OPEN in a GOTO/ COSUB routine should have this line deleted and moved to the top of the listing /e: 10 PRINT "HELLO" 20 OPEN 2,2,2,CHR$(2)*CHR$ (0) 30 DIM A etc OPEN 4.4 will not work. The interface cable and printer all work well. Yours faithfully, 5 K Thoanber, Hull. Dear Sir, What a super magazine - it is magnificent! As I was browsing along the magazine shelf I noticed your magazine screaming to be looked at. After a quick look I promptly bought and raced home to look at it; as a VIC 20 owner myself I bought it to seek out new talents. The reason it is so different is because all the other Commodore magazines focus mainly on one thing: the CBM64. Most of the programs, hints, reviews and information are on this machine. I congratulate you on seeing the light for us poor VIC ana PET owners. Your article entitled 'Vic Games programming' was exceptionally good. How about including the top ten tables of software for the VIC and 64. And, how about doing reviews of Commodore's new computers, the CBM 16 and Plus 4. Yours faithfully, Andrew Philpott, Hertford. We answer, We are delighted that Mr. Philpott, and all the other readers who showered us with praise, like our magazine. We shall endeavour to keep you happy and hope you will continue to send us your comments and bright sug- gestions for future articles, games, etc. Please, please inundate us with VIC 20 stuff as we're in short supply! Finally, you can find a review of the Commodore 16 elsewhere in this magazine. We hope to review the Plus 4 next month. Dear Sir, I have a Commodore 64 and I am very interested in becoming a member of CompuNet. I would appreciate it if you would send me details on how much it would cost to join, what would be the most suitable modem for my computer and. also, how much the modem would cost. Could you please give me more information about how CompuNet works and, also, tell me where my nearest main Commodore supplier is. Yours faithfully, Steve Paterson, Livingston, Scotland. We answer, The only modem suitable for use with CompuNet is Commodore's own Modem which retails at £99.95. On purchase of this modem you're entitled to one year's free membership of CompuNet (worth £30). For information on how CompuNet works, see the review in our next (January) issue. The modem is only available, at the time of going to press, directly from Commodore Business Mac- hines (UK) Ltd. at 1 Hunters Road, Corby, Northants. The nearest main Commodore supplier to Mr. Patterson in Livingston is Peritronic Ltd. at Lomand House, Almond Vale, Livingston, West Lothian- Telephone: 0506-410041. Dear Sir, I have recently bought a Commodore MPS 801 printer for use with my 64 and. as well as the standard 11 by 9.5 inch paper for the printer I have also acquired for free 2000 sheets of 7.5 inch paper. I should like to use this narrower paper for program listings but. when doing this, the longer program lines are printed off the edge of the paper. I would like to know if there is any way of making the printer print shorter lines when using the list command as this would save me a lot of money buying expensive printer paper. Congratulations on your first edition of one of the best magazines for the Commodore user. Yours faithfully, W.L. Williams, Dyfed. We answer, Can any of our readers answer Mr. Williams' 'cri de coeur7 Dear Sir. I own a Commodore 64 and have recently bought the 'PETSPEED' compiler. This gingers up some of my ordinary BASIC programs but I cannot make it work on even the simplest High-Res program sucn as those to clear the screen and draw a circle. My BASIC program is taken straight out of the 'Program- mer s Reference Guide' (pages 122-123 and 126-127) and runs perfectly (though appallingly slowly). I have added a very simple machine code program which clears the screen and puts it into High-Res instantaneously, but of course thereafter the drawing is as slow as ever. The PETSPEED will not run this either; but, if I include a command in the PETSPEED program to load the machine code program from disc, the screen does clear - and nothing else happens. It refuses to carry on drawing the figure and the screen remains blank until I hit RUN/STOP RESTORE. In every case, the compiling seems to be error- free, but the result doesn't run. The base for the 'bit-map memory is 8192. Since the compiled program seems to occupy about 8450 bytes (most of which is, I believe, the PETSPEED interpreter), I have tried altering the base to 10240 or even beyond, so as not to interfere. The effects of this are, firstly, that only the lower two thirds of the screen are cleared and the top third after the final 'paint' is covered in vertical bars; and, secondly, although the circle gets drawn, its centre is very much displaced (though this can be remedied by changing two constants in the program). This program compiles alright too, but won't run either (in the compiled version). I attach copies of the two programs. As you can see, they are very short and simple. Can you offer any advice? Where am I going wrong? And where can I find some literature more explicit and less superficial than the 'Reference Guide'? Yours faithfully. M.W. Peters. Dorset. We answer, Try putting the high-res screen down to 32768 and paging the VIC II chip to look at the third 16K block of RAM. Currently, your high-res screen is corrupting your program. See our guides (in this issue and in previous issues of 'Your Commodore') to the vast output of literature available for Commodore users. E A. P. and D.J. Stephenson explore MASTERING MACHINE CODE ONE COMPLETE ORDER TO the microprocessor is called an instruction. The 6510A has a repertoire, called the Instruction Set, of almost 60 different types but, because most of them are available in several different forms, the total number of permutations rises to several hundred. Such a huge number to choose from can be frightening to the newcomer. Because of this, we feel that presenting the full repertoire at this stage would be more confusing than helpful. Fortunately, only a relatively small proportion of the totaf number are in regular use. In fact, it is possible to begin writing workable machine code programs by restricting the repertoire to twenty or so instructions. The instruction format A machine code instruction represents one complete order to the microprocessor and normally consists of two has a verb but no noun so is incomplete. There are normally two parts of a machine code instruction, the operation code and the opera no*. The operation code This corresponds to the verb because it tells the micro- processor what particular action is required. In general, the op-code can be a decimal number, a pair of hex digits or, if you have an assembler, a three-letter group known as an instruction mnemonic. Every instruction has a unique code number. Unless you have additional software aids, the only way to enter an op-code on the Commodore 64 is by POKing a decimal number. This is an awful method because decimals and machine code are alien to each other. Machine code programming is not the easiest or subjects and if we have to work entirely in decimal op-codes, the task Verb Noun Op-code Operand ^lllllllllllll ■X-XvX-l '•X'X'X*!*! ■X-XvXvl Figure XI The instruction format distinct parts as shown in Figure 3.1 As in everyday speech, any order given to a person consists of two parts, the verb (what particular action is required) and the noun (which particular object is to receive the action). For example, suppose we instruct someone to luck'. The person is confused because, althoueh he knows how to kick, he has not been told which particular individual or object requires kicking. In other words, the instruction borders on the horrific. We shall not attempt to use decimal op-codes at all. As mentioned in Part 1 of this series, if you intend to take machine code programming seriously, you are strongly advised to get hold of an assembler as soon as you can. However, for the benefit of readers who feel that the extra expense is not justified, a simple program will be given later, enabling all machine code programs to be entered in hex instead of decimal digits. The operand This is the second part of the instruction, corresponding to the noun. It informs the microprocessor where the data (to be acted upon) can be found. The operand, in most cases, will be the address of the data. There are, however, several different ways of specifying the address. They are known as addressing modes. Some instructions may have as many as seven different addressing modes, whilst others may nave only one. The operand can be specified in decimal or hex but, here again, hex addresses are much easier to work with. Simple addressing modes The most commonly used instruction in the repertoire is LDA so we shall use it for illustration purposes where ever possible. LDA is an assembler mnemonic for LoaD Accumulator. It is used to place data into the accum- ulator. The whereabouts of the data is specified by the operand according to the addressing mode used. At this point, only three of these addressing modes will be described. Immediate addressing Memory is not involved because the operand specifies the data. This data will be specified by two hex digits (one byte) within the range 00 and FF. Suppose we want to load the accumulator with the hex number 05 and we have an assembler resident. The way in which the instruction is written depends on whether an assembler is used or whether you must use direct hex code. Both forms are given below: Assembler LDA#$05 Hex code A9 05 Notice that the assembler requires the character '$' to indicate the number is in hex and the character '#' to indicate immediate addressing. In contrast, the hex code version is just two pairs of naked hex digits. The first pair of hex digits is always the op- code. The op-code for LDA, using immediate addressing, is A9. Why A9? Because the designers of the 6510A decreed it to be so. Without an assembler, you must either memorise the hex digit pair for every op-code (and there are over 200 of them) or consult the full instruction set of the 6510A. Perhaps this gloomy bit of information will act as a commercial break for the Mikro or Commodore assembler. It is called immediate addressing because the data is immediately available in the operand. It is used when we want to load constants. Absolute addressing This is used if the data byte, to be loaded into the accum- ulator, is in memory — anywhere in the 64K RAM. The operand is a four hex digit number (two bytes) specifying the memory address. You will remember that any address in the 64K memory map can be expressed with the aid of four hex digits. Suppose we wish to load the data byte, residing at address C2056 hex, into the accumulator. The assembler and hex code instruction become : Assembler Hex code LDA $2056 AD 56 20 Notice that the hex op-code is now AD instead of A9. Notice also the strange reversal of the two operand Dytes in the hex code version. This is a standard rule when using 6510A hex code so we nad better emphasise it: If direct hex code is used without an assembler, all two- byte operand addresses must be entered in reverse order, low-byte first, high byte last. This is important enough to justify an extra example; the nex address 5472 must be entered as 72 54. The designers of the 6510A decided on this awkward twist because it led to more efficient organisation of the address bus. In machine code, the human is relatively unimportant so considerations of 'user friendliness' take second place to hardware efficiency. As can be seen in the example above, an assembler is a little kinder towards humans and the two operand bytes are entered in normal sequence. Zero-page addressing If the address of the required data happens to be on page zero ($0000 to SOOFF) it is possible, in fact it is normally desirable, to use page zero addressing. It is more efficient because the two leading zeros can be dropped, allowing a single byte operand to be used. For example, to load the accumulator with (he contents of the hex address 35, the assembler and hex code instructions would be: Assembler Hex code LDA $35 A5 35 We shall see later that page zero is very important because (a) two of the more exotic addressing modes only operate on data resident in page zero. (b) data retrieval is faster from page zero than from other areas of memory. Unfortunately, most of page zero has already been swiped by the resident operating system so there are very few vacant address locations left for the machine code programmer. In view of this, those which are left should be given VIP status and not used wastefully. We believe, although we can find no confirmation in Commodore literature, that: Free locations in page zero = $FB lo $FF inclusive. Indexed and indirect addressing These addressing modes are not so easy to understand and will be discussed in detail later in this series. However, for the sake of completeness, brief definitions are given below but, if you are completely new to machine code, don't worry too much about them yet. Indexed addressing with LDA The contents of one of the index registers is automatically added to the operand and the result is the address of the required data byte. Thus the same instruction can be used to access different addresses by simply altering the contents of the index register. There are three possible forms: (a) Zero-page indexed, where only the X register can be used (b) Absolute indexed, where either the X or Y registers can be used. Assembler and hex code formats, using arbitrary addresses, are as follows: used to access different data items simply by varying either the address pointers or the index register. Assembly format and hex coding, using arbitrary addresses, is as follows: Assembler Hex code LDA (SFB.X) A1 FB Indirect indexed addressing This is similar in general principle to indexed indirect, The essential difference being in the way indexing is used. Firstly, only Y can be used for indexing. Secondly, the contents of Y is added to the address pointer, rather than to the operand. An example should illustrate the difference. Using standard assembler Address type Zero-page,X Absolute. X Absolute.Y Assembler LDA $34,X LDA S3456.X LDA S3456.Y Hex code B5 34 BD 56 34 B9 56 34 Note the comma is used to inform the assembler that indexed addressing is required. Indexed addressing indirect An indirect address is the address* of an address. This is not so bad as it sounds providing we first neglect the indexing by assuming that X (or Y as appropriate) contains zero. The operand is the low-byte address (which must be in page zero) of a two byte address pointer. The high byte of the pointer is in the next sequential location. As a preliminary example, using standard assembler notation, assume we write LDA ($FB,X). Assume that address $FB contains $56 (the low-byte of the pointer) and the next higher address contains SCO (tne high-byte of the pointer). The effect of the instruction is to load the accumulator with the contents of address SC056. However, things are a little more complex when the effect of the index register is taken into consideration. Suppose X contains the number 2 and we again write LDA (SFB,X). The low-byte address is now increased to $FB+2=$F so an entirely different pointer is effective. The advantage is flexibility. The same instruction can be format for indirect indexed addressing, suppose we write LDA ($FB),Y and that Y contains 2. Let us also assume, as before, that address $FB contains $56 (the low-byte pointer) and the next address contains SCO (the high-byte pointer). Because 2 is now added to the address pointer, it effectively becomes $C056*2=$C058. The assem- bler and hex coding, using arbitrary addresses, for indirect indexed is as follows: Assembler Hex coding LDA ($FB>,Y 81 FB Indirect indexed addressing is used much more often than indexed indirect. Note how easy it is to gel mixed up with the position of the assembler brackets. Lets put them together to emphasise the difference. Indexed indirect. ..LDA ($FB,X) Indirect indexed.. .LDA -4B 80 SD7.=ASC ( R I BHT» ( D« , 1 ) ) -48 90 IF FD%>9 THEN FDX=FDX-7 100 IF SDX>9 THEN SDX=SDX-7 110 BTX=16*FDX+SDX 120 POKE B+L,BTX 130 NEXT 140 DATA A9,00,B5,FB,A9,05 f B5 f FC 150 DATA A9,48, 20, CA, F 1 , 38, A5, FB 160 DATA E9 f 01 , 85, FB f BO , 02 , CA f FC 170 DATA A5, FB,DO,EC, A5,FC # DO f E8 180 DATA 60 Program 3.1 Poking a hex dump inlo memory LDY. On the other hand, ST A has as many addressing modes as LDA with ihe exception of the immediate mode. A moment's thought should convince you that it is impossible to have immediate mode with any store-type instruction. There is only one operand so you can't express both the data and where to put it in one single instruction. Exercises To conclude Part 3, here are some exercises which should help you to become familiar witn some of the more simple addressing modes. Write each program, enter it with the aid of the loader (Program 3.1), run it under 5YS 49152 and see if it behaves: Running a machine code program Program 3.1 is purely a loading program. When you run it, it merely loads the machine code into memory — it does not execute the machine code! To execute the code, you should now enter SYS 49152 E This directs the computer to start executing the bytes, one after the other, starting at the decimal address 49152. This is, of course, $C0O0. If you have entered Program 3.1 as it stands, including the example 33 bytes, you should confirm that the machine code, when run under SYS 49152, will completely fill the screen with 'H' characters. In fact, 1024 of them are displayed but the last 24 will naturally cause the screen to scroll. Don't worry at this stage about how the machine code works. If you are a complete newcomer, it would be very surprising if you could since several tricks have been used which have not yet been explained. You should notice however that the last byte is hex 60 which is the machine code version of RETURN from subroutine. Most of your programs will end in 60 in order to allow a smooth re-entry to BASIC command level once the machine code program has stopped. The example program works directly you run tt but some machine code programs require some extra data before they can be run. In such cases, it will be up to you to POKE such data into the correct memory locations before entering SYS 49152. It should be mentioned here that it is not mandatory to always load at the start of the machine code block. After all, there is 4K available so there is nothing to stop you loading your program in the middle of the block. However, there is no point in being original just for its own sake. If you get into the habit of loading at SCOOO onwards, there is less chance of making a mistake. It also allows you plenty of room at the end of the program to store any extra data required. LDX and LDY These load the contents of the chosen index register with data defined by the operand. STX and STY These store the contents of the chosen index register in the memory address defined by the operand. STA This stores the contents of the accumulator in memory at the address defined by the operand. The addressing modes available, together with assembler and hex coding are given in the following table using xx to represent a single operand byte: 1. Display a character of your own choice in the middle of the screen. 2. Display two different characters, side by side, in the middle ot the screen. 3. Display your name across the bottom of the screen. Assembler Hex code LDX # $xx A2 xx LDX SXX A6 xx Load X LDX Sxxxx AE xx xx LDX $xx,Y B6 xx LDX Sxxxx.Y BE xx xx LDY # $xx AO xx LDY $xx A4 xx Load Y LDY Sxxxx AC xx xx LDY Sxx.X B4 xx LDY Sxxxx, X BC xx xx STX Sxx 86 xx Store X STX Sxxxx 8E xx xx STX Sxx.Y 96 xx STY $xx 84 xx Store Y STY Sxxxx 8C xx xx STY $xx,X 94 xx STA Sxx 85 xx STA Sxxxx 8D xx xx STA Sxx.X 95 xx Store A STA Sxxxx.X 9D xx xx STA $xxxx,Y 99 xx xx STA Sxxxx.Y 99 xx xx STA ($xx,X) 81 xx STA (Sxx).Y 91 xx From what has been said already, il should be possible to figure out the name of each addressing mode in this table by simply examining the assembler format. Notice that some instructions have a limited addressing repertoire. For example, you can't use indirect addressing with LDX or Warning: dont forget to count your bytes and make sure you choose the right op-codes and in the right sequence or, sure as hell, you will crash the system. Answers will be given in Part 47. dialog-. SOFT OIM YOUR POCKET TOUGH OIM OUR COMPETITORS DFM Database Easy-to-use, Big-System Features. Printed Reports, Mail Labels Option. Available for CBM 64 • BBC • Spectrum. £24.00 Disk or tape/ SPECTRUM E14.95/DFM • Labels £30.00. Home Accounts Bank Account. 20 Expense Headings, Name & Address File, Loan/Forecasts. Available for CBM 64 • BBC • Spectrum. £14.95 Tape/£I6.95 Disk. Transact Book-keeping System, All Day Books, Journal, Nominal Ledger, VAT. Available for CBM 64 • BBC 'B'. £30.00 Disk or Tape. • All disk software has now been improved— the Commodore Disc range has now been written in machine code. • Spectrum software is now microdrive compatible. • All our software has been re-packaged— this means that the boxes are smaller and there is more descriptive copy about the program on the back of the box. • Buy directly from us- alternatively if you write or telephone [Address and Telephone number are at the bottom of this advertisement). We will send you an informative Dealer Pack. • Watch out for our QL Sinclair Software! It will be available sooner than you think. The entire software range is available from Micro Dealer UK Telephone Welwyn Garden City 07073 28181 and select title ranges are available from Websters Software. Tel. Guildford 0483 62222 PCS Distribution. Tel. Darwen 0254 69121 1 and all Boots outlets Pl£ASE SEND ME FURTHER DETAILS OF NAME YOUR COMPLETE RANGE OF PROGRAMS FOR ADDRESS L CBM 64 □ BBC □ SPECTRUM Invostact Invoice & Statement Generator, Automatic Creation from Sales Product Table. Available for CBM 64 • BBC B'. £30.00 Disk or Tape. Stock-Aid Stock-Control System, Extensive On-Screen & Printed Reports. Available for CBM 64. £30.00 Disk or Tape. Electronics Study with Course Tutor to City & Guilds Standard. Available for CBM 64. £14.95 Disk or Tape. TELEPHONE DIALOG SOFTWARE 293 Copperfield, Umesfarm Estate, Chigwell. Essex. Telephone: 01-501 0799 accumulate points, as you wind your way around the screen hitting the boxes and dollar signs which flash in your path with this nail-biting game from 'Peter Pann\ ANA CON DA THE AIM OF THIS GAME IS to move your 'snake' (ie, a length of coloured circles preceded by an arrow) around the screen using the following keys: A(left) D(right) l(up) M(down) As you worm your way around the screen, you score points by hitting the boxes which suddenly appear (and, to add to your frustration, frequently disappear before you can reach theml: the number of points you score depends on the number {from 1 to 9) inside the box you pierce. Additionally you can score bonus points by hitting '$ signs'; these bonus points are then added to your score after you hit your next box. The number of bonus points scored depends on the length of vour 'snake which grows as the game progresses, but reduces again once the '$ sign' has been confronted. The longer your 'snake', the more carefully you have to tread as it is easy to entwine yourself in a maze of 'snake'. The game ends when you hit the boundary or turn back on vourself. Program Listing 5 POKE53280,12POKE53231,12 41 PRINTTflBC3)"M';PPESS A KEV TO PLAY) 42 GETfl* '• IFR$»" "THEN42 5d POKE49152,0:X«2000 60 E=53230:E1=53231 :E2=49152: 0=54272 70 POKEE > 0 : POKEE 1,0: PR I NTCHR* C 14) " :SD3 75 PRINT" ":PPTNT" '*; : IFPEEK* :NEXT:HS*VflL :GOSUB1000: PRINT" W3I HIDE THE MOVING 'SNAKE' US I " ; 120 PRINT"NG THE KEVS : ": GOSUB 1000 : PRINT" a»3, RIGHT), 3ha, *0 < DOWN > IB 130 GOSUB1000:PRINT"JSrCiN-T HIT THE BOUNDARY <0R YOURSELF), AND TRY TO HIT TH E"; 140 PRINT" BOXES FOR POINTS, M" 1 GOSUB 1000 : PRINT"B I ITT I NO *f3 CREATES A BONUS WHIG H WILL BE" 150 PRINT" COLLECTED AFTER /~*l SCORE. " = GOSUB 1000 = PR INT" Mil I0U HAVE AS LONG AS V 0U LIKE T"J 159 PR I NT "0 GET THE HIGHEST NUMBER OF POINTS ! M : GOSUB 1000 PRINT "JO 00D LUCK ! " : G OSUB1006 171 PR INT "IIS S HIT ANY KEV TO START " : GOSUB 1000 : FORJ-0TO24 • POKEQ+J, 0 : NEXT : DI MP<800)/D(3) 175 DIMV<8>,H<8>,T<8>#RC8>i|C". 1 ■ M2-300 ■ B0=1 • P0KE323. 3 1 80 GETZJ : I FZ*= SOTO 1 30 1 35 GOSUB800 : D< 6 ) =22 D< 1 > =60 : D < 2 > =62 : D < 3 > =30 ■ T9= 1 024 : T6-3599 ■ G0SUB228 • GOTO230 220 P0KEQ+5 > 36 : POKEQ+6 , 36 : P0KEQ+4 , 1 29 ; RETURN 230 PRINTCHR*<142>"3BkSC0RE: TO KBONUS X 1 kHI :K"HS"SI" :FORJ=1064TO1103 = POKE J, 67 240 P0KEQ+1 > J- 1000 : PGKEJ+Q, 7 ! NEXT • FORJ=1984TO2023 POKE J, 67 : P0KEQ+1 , J- 1900 ■ P0KEJ+ G,7:NEXT:L=40 260 F0RJ=1 104TO1944STEP4O : POKE J, 66 ■ POKEJ+Q, 7 : POKEJ+39, 66 : P0KEJ+39+Q, 7 ■ P0KEQ+1 , IN TCJ/10) =NEXT 265 POKE 1 064 , 35 ; POKE 1103/73': POKE 1 934 - 74 : P0KE2023 , 75 : V=5 : H=5 : V 1 =0 ■ H 1 = 1 : P2= 1 0 : D 1 =2 230 TI$="000000" :T=TI 290 SSaTI:M^»INT<<10-3)*RND>+3:lFPEEK<828>«WXTHENW?i=WX+l 292 POKEG+24, 15 300 GET2$ IF2$=""GOTO330 382 IFZ$="M"THENZ=0 E Program Listing 388 IFZ$="ITTHENZ=2 369 G0SUB220 : POKEG+24 , 1 5 320 Dl=Z D=2-1.5:Vl = IHTr;R£S(D>:>#SGN:Hl=SGH<:D>-Vl 330 V=V-V1 :H=H+H1 -P=T9+V*L+H 356 P9»PEEK < P > : FOR I =2 1 T03STEP-7 • POKEQ+2 , I ■ NEXT : POKEQ+ 1 , UK 360 R6»R?:R7*R7+1 : IFR7>P2THENR7=0 370 P1=PCR7> P=R: IFP1O0THENPOKEP1,32 389 POKEP # D< Dl > : POKEP+Q , 3 P 1 =P < R6 > : I FP 1 O0THENPOKEP 1,81: PQKEP 1 +Q , UV. 382 I FT I >H 1 +M2 ANDPEEK < W ) =36THENPQKEW , 32 : W=0 383 LFPEEK)=31THENMM=MM+1 386 POKEPCM>+Q>WX:POKEPj 19 : W=W+1 : PRINT "S!" TAB < 26 > "©3" MM "II ■ " = IFM>208THEMM 387 P0KEG+1,UM=M+1 : IFM=1 THENGOSUB80O : GO3UB220 : POKEQ+ 0 388 IFP *L/ 1 0 : P3=S6+V2 : VS»=V < V/i ) : IFVSO0GQT059 1 470 V2=INTif:20>+3-H2=IHT*<;L-4>>+2 480 F0RV3=V2-1T0V2+1 P3=V3*L+T9:FuRH3=H2-lT0H2+l : IFPEEKO32QQTO4?0 490 NEXTH3 , V3 : V < > =V2 - H < VX > =H2 500 ZZ=INT*7+9> : F0RV3=V2-1 T0V2+1 : P3=V3*L+T9 : F0RH3=H2-1T0H2+1 510 POKEG+4, 17 :F0RI=1T025STEP2= POKEQ+l* I = NEXT: POKEG+4* 129 520 P0KEP3+H3, P9 : P0KEP3+H3+Q, 22 530 NEXTH3/V3 - T=9*RND< 1 > : P8=V2*L+H2+T9 : P0KEP8, 49+T : T=T = R P2=P2+7T*=TI$ 560 T=T-1 :S=S+1*B0P0KEP8, T+49 FORI = 1TO10STEP3 : POKEQ+l , 1 : NEXT ; FOR 1 = 1 ©TO 1 STEP-2 : P OKEQ+1, I : NEXT 564 I FS> 1 499THENB0= 1 0 : G0T0570 565 I FS>999THENB0=5 : GGTO570 566 IFS>299THENB0=3 : GOTO570 570 IFU>0THEN578 571 W=INT(RND<1>*<2023-1064>+1064> : IFPEEK"H X"BO M ll " : MM=0 580 POKEQ+4, 33 : FORJ=100TO65STEP-2 : POKEQ+l, J ■ NEXT : POKEQ+4, 129 IFT>=0GOTO56O 590 P2-P2+7 :TI$*T* : V9-V 59 1 FOR V3= V9- 1 T0V9+ 1 : P3=V3*L+T9 : H9=H < V'/. > +P3 : F0RH3=H9- 1 T0H9+ 1 594 P0KEH3 , 32 : NEXTH3 , V3 : V < V5i ) =0 : POKER < VX >,32: G0T0298 60O POKEQ+4, 17 : FORI=254TO0STEP-2 : POKEQ+l* I : POKEE, I : POKEE 1,1 + 1 ; NEXT : POKEE 1.0 POKE E,6 620 IFS>HSTHENGOSUB660 625 pokeq+24 o : pr i nt " ^msmmmmmmmmmm»nnnm " 626 PRINT R»»»»I3 ANOTHER GAME? / SIIIIU ; X=100 630 GETZ* : IFZ$=" "THENPRINT" afVM UK GOSUEIOOO 635 I FZt= " " THENPR I NT " El Willi", : GOSUBIOOO : G0T0630 640 IFZ*="V"THENPRINT"n M RUN66 650 IFZ*="N"THENENB 651 GOTO630 660 S$=3TR$(S> =L=LEN = P0KEE2, L = F0RJ=1T0L : P0KEE2+J, VAL> : NEXT ■ RETU RN 800 POKEQ+l , 230 : POKEQ+5, 9 : POKEQ+l 5, 30 : POKEQ+24, 15 ■ POKEQ+4, 21 : FORJ J=255TO1STEP-10 : POKEQ+l, J J 305 POKEE . J J '• NEXT ; IFM= 1 THENPOKEE ; 0 : RETURN 810 FORJJ=16TO0STEP-2 POKEQ+24, J J ■ FORA=1TO100STEP1 1 i POKEG+4, A POKEE , J J i NEXT A.. J J : POKEQ+24, 15 = RETURN 900 POKEQ+ 1 , 1 00 : POKEQ+5 , 9 = POKEQ+ 1 5 , 30 : POKEQ+4 , 21 = FOR JJ= 1 5TO0STEP-3 ■ POKEW+Q > J J ■ PO KEE,JJ 910 F0RA=15T01STEP-3 ■ POKEQ+24, A • POKEE, A : POKEE, A : NEXTA, J J : POKEQ+24 , 15 POKEE, O : GOS UB220 -POKEM+Q, 1 RETURN 1000 POKEQ i 240 : POKEQ+l , 33 : POKEQ+5, 8 : POKEQ+22, 104 : POKEQ+23, 1 : POKEQ+24 . 79 : POKEQ+4 ■ 129 -FORJ- 1TO30 1010 NEXT : POKEQ+4, 128 : F0RJ=1T0X : NEXT • RETURN THE 64 SOFTWARE CENTRE 1 Princeton Street London WC1 01-4300954 Business accunts Sales Ledger (Anagram) d 75.00 Purchase Ledger (Anagram) d 75.00 Sales Ledger (Ramtop) t 14.DU rurcnase Leager irtamiop) i id 'in 1 1.0U Accounts package (namtopf o,i 113.UU i^asnDOOK (Microsimpiexj a i79 in 1 / £.3U uasnDOOK lueminif a fid 04.93 oasnuooK (ueminij i rinai Accounts (oemmif a R4 Final Accounts (Gemini) t 59.95 Invpntnrv 64 iMMSl d 29 95 Stock Control (Gemini) d 24.95 Onmhinprt Park Nn 1 (fipmini) d 99 9S rtome applications buageteer (Aoamsoit) i 0 DC 0.90 unecKDOOk Manager lAaamsoiij a HA QC nome Accounts (oeminij a Home Accounts (Gemini) t 19.95 14 95 Hnmp Accounts (Fipldma^tpr) d 29 95 Database systems Magpie 64 (Audiogenic) d nrt nc 99.95 Mailpro 64 (Pro-Line) d 79.35 Oracle 64 (B.I.) d ' i c nn lib. 00 Practitiie 64 (MMb) d Simnlv File 64 (Simole) d 60.00 Suoerbase 64 (Precision) d 99.95 Figaro 64 (Saxon) d 86.25 Database (Gemini) d 24.95 Spreadsheets Busicalc (Supersoft) d,t 17.95 Busicalc II (Supersoft) d 81.65 Calcresult Adv. (Handic) d 99.00 Easy Calcresult (Handic) d 49.95 Multiplan 64 (Hesware) d 99.95 Practicalc 64 (MMS) d 44.50 Practicalc 64 (MMS) t 39.95 Programmers' Aids & Utilities BC Basic (Kuma) c 57.50 d = d«sk t = tape c = cartridge ALL IN STOCK NOW — Callers welcome (10am— 6pm Incl Saturdays) Mail Order: Cheque or PO — add £3 for items over £30. others free Credit cards (Access/Visa): phone or write. Immediate despatch The 64 Software Centre, 1 Princeton Street, London WC1 Please supply the following items: m •it @£ 1 Qty 2 Qty 3 Qty 4 Qty TOTAL £ POSTAGE £ TOTAL £ Name Address Visa/Access Card No Date Signature Cadpack (Adamsoft) d 35.00 Chartpak 64 (Adamsoft) d 24.95 Chipmon (Mr Chip) t 12.50 Forth 64 (Audiogenic) c 29.95 Forth 64 Advanced (Hesware) c 50.00 Graphics Designer (Adamsoft) d 19.95 Graphix 64 (Supersoft) t 11.50 Logo (CBM) d 57.50 Master 64 (Supersoft) d 71.30 Mikro Assembler (Supersoft) c 59.80 Hesmon Monitor (HesWare) c 34.95 Pilot (CBM) d 75.00 Printlink 64 (Supersoft) t 32.20 Ouickchart 64 (Adamsoft) t 6.95 Screen Graphics (Adamsoft) d 14.95 Simons Basic (CBM) c 47.50 Sprite Aid (Adamsoft) t 6.95 Stat 64 (Handic) c 29.95 Superdisk Utility (Adamsoft) d 12.50 Synthy 64 (Adamsoft) d 14.95 The Tool (Audiogenic) c 49.95 Turtle Graphics II (HesWare) C 50.00 Ultrabasic 64 (Adamsoft) d 24.95 Ultysynth (Quicksilva) t 14.95 Victree 64 (Supersoft) c 56.35 64 Doctor (MMS) d 19.95 Jetpack Compiler d 39.95 Jetpack Compiler t 14.95 Master Composer (Access) d 44.95 Word Processors Heswriter (Hesware) c Paperclip 64 (B.I.) Simply Write 64 (Simple) d Simply Write 64 (Simple) t Vizawrite 64 (Viza) d Vizaspell 64 (VizaJ d Educational & Languages Essential Italian (Dell) d Essential Italian (Dell) t Besieged (Sulis) t Wordpower (Sulis) t Time Traveller (Sulis) t Just a Mot (Sulis) t various subjects: Callisto, Collins, Commodore etc. War simulations Battle for Normandy (SS) d Knights of the Desert (SS) d Eagles (SS) d Combat Leader (SS) d Tigers in the Snow (SS) d Geopolitique (SS) d Operation Whirlwind (Broderbund) d Flight simulators Flight Path 737 (Anirog) t Flight Simulator (IFR) d,t Flight Simulator II (Sublogic) d Solo Flight (US Gold) d.t Heathrow (HC) t Business Simulations Commodities (Blue Chip) d Stock Exchange (Blue Chip) d Real Estate (Blue Chip) d Games A large assortment in disk, cassette and cartridge. 34.95 98.90 40.00 35.00 79.95 59.95 16.95 14.95 9.95 9.95 9.95 9.95 34.95 34.95 34.95 29.95 34.95 39.95 34.95 7.95 24.50 47.50 14.95 7.95 50.00 50.00 50.00 Programming In the third part of this series, Bryn Phillips invites you to irritate the neighbours by adding sound to your VIC gam* THIS IS THE THIRD OF A FIVE part series of BASIC Games Programming for the VIC20. The series is primarily intended for newcomers to games programming, but there might well be a few useful tips lor seasoned programmers. So far we've looked at two of the main elements of Games Programming on the VIC 20 — screen layout and movement. Even without sound you can write some good games. In fact some games are better with the minimum of sound — especially thinking games — it can be a distraction. However for most action games imaginative use of sound can make all the difference. As a VIC owner you have a big advantage in this area, because the sound comes through the T.V. speaker, giving youlots of volume. You're not limited to the odd pathetic bleep or click, either — you have an amazing variety of sound effecs to draw on. Tuning into the VIC The VIC has five sound registers, four for tone, and one for volume. As with most things on the VIC you have to POKE values into these registers, which have the following memory locations: Memory Range Location Volume 36878 0-15 Tone (low) .16874 128-255 Tone (med) 36875 128-255 lone (highi 36676 128-255 Tone (noiie) 36877 128-255 In order to use sound effectively in Games Program- ming it must be carefully planned, and not just slotted in somewhere at the end of the program as an afterthought. There are two ways of using sound. It can be put in in discreet packages, or carefully integrated into the program structure. One of the most valuable uses of sound in a program is to add interest or excitement either when there is no action, for example the introduction. VIC GAMES PROGRAMMING or where there is a distinct pause in the action. This would occur when something spectacular happens, for example an explosion, a ship sinking, or a bonus score message. Here you can usually put the sound in as a discreet package in a subroutine. It makes for neat programming, and allows you to come up with some sophisticated effects. Sometimes you might want to play a few bars of a tune. This is easily done by going to a sub- routine along the lines shown in fig(i). 10 POKE V.15 20 FORI=1TO10 30 POKES,N(l) 40 FOR J=1 TO 200: NEXT J 50 NEXTI 60 POKEV,0:POKES,0 fig 0) Where V is the volume register, S is a sound register, and the array N(l) contains the notes of the lune, which you define earlier "in the program. This sounds a bit flat though, and you can make it more interest- ing by enveloping the sound to give different effects. The simplest is the piano effect, and this is done by decaying the volume as outlined in fig (ii). 10 FORI=1TO10 20 FORVL=15TO0STEP-1 30 POKES,N(l):POKEV,VL 40 NEXTVL 50 NEXTI 60 POKES.O f'g ('■) Hitting the right note All you need to do now is to find some notes to give you a tune. Rather than constantly refer to the table of note values in the User's Manual, it's far easier to use a utility program to help you compose the tunes. The utility program, COM- POSER (Listing 1), allows you to compose short tunes (20 notes max), and provides you with the values to include in the data statements in your program. It's very easy to use; you just use the bottom row of keys on the keyboard as the white notes, and the second row of keys as the black notes. Any other keys will give you asingle note pause. You can easily change the tune using delete, and play it back at any time using f7. This program is deliberately simple. Without loo much effort you could convert your VIC into a neat little sound synthesiser, with chords, drums, and melody lines. But that would be getting away from Games Program- ming — it would use up valuable memory, and we need that for other things. Effecting sound Now let's get on to the sound effects. Probably one of the first things you did when you acquired your VIC 20 was to type in some of the sound effects at the back of the manual. Some of them are very good, and they crop up from time to time in programs here and there. It's tempting to leave it at that — as I said some of them are very good. Unfor- tunately they're not original — they were thought up by someone else. If you're writing your own programs you want your own sound effects which exactly fit your theme; whether it's ducks quacking, tyres screeching, or aliens scream- ing, it's up to you. Most simple sound effects are generated by nested loops. Fig (tii) shows the two simplest loops. 10 FOR J ■ 1 TO RP 20FORNT=N1 TO N2 STEP SN 30 FOR V=V1 TO V2STEPSV 40 POKE VL.V 50 POKE 5.NT 60 NEXTV 70 FOR I ■ 1 TO 100'PS:NEXT I 80 NEXT NT 90 NEXT J 100 POKE V.0:POKE 5,0 LOOP 1 10 FOR 1 = 1 TO RP 20 FOR V = VI TO V2 STEP SV 30 FOR NT =N1 TO N2 STEP SN 40 POKE VL.V 50 POKE S.NT 60 NEXT NT 70 FOR I = 1 TO 100-PS:NEXT I 80 NEXT V 90 NEXT J 100 POKEVL,0:POKE S,0 LOOP 2 fig (iii) In Loop 1 the volume loop is nested within the tone loop, and in Loop 2 (he tone loop is nested within the volume loop. Loop 1 can be used to give some pleasant musical effects, and Loop 2 really comes into its own for those wierd alien sound effects we r have all learned to love (or hatef). If you type in the utility program "MANIAC SYNTHE- SISER" (Listing 2), you can play with these loops to your heart's content, and when you get an effect you like just copy down the values for inclusion into the loops given in fig (iii). I've made up a table of some values you might like to try when you start off, but whether you agree with my descriptions of these sounds is another matter! loops if you want to experiment further. Integrating sound Earlier in this article I men- tioned Integrated Sound. The only problem of going to a subroutine each time you want to hear something is that it slows down the action. Even worse, il can make the whole thing jerky if the sound only hold a note. You have to first write your program, then sketch out your sound efect sub-program and merge the two. The speed of the action should not change when the sound effect occurs — you wif" just get a slight reduction in the overall speed. The more complex the effect the greater the reduction. The answer is not to go overboard with the integrated sound effects — keep them simple. You can DESCRIPTION RG N1 N2 SN VI V2 SV PS RP LOOP Aliens coming 3 150 200 5 5 15 3 0 5 2 Cricket 3 230 232 1 0 15 5 0 10 2 Machinery 4 230 240 1 15 5 -3 0 3 1 Knock on wood 4 200 160 -10 15 5 -5 0 3 2 Knock on metal 2 200 160 -10 15 5 -5 0 3 2 Piano 2 200 130 - 5 15 5 -1 0 1 1 Phaser firing 2 200 130 - 5 15 5 -1 0 1 2 Something (?!) coming 1 250 130 - 5 15 5 -5 0 10 2 When you type in the program it's important to make sure you get the screen formatting right, But otherwise there should be no problems. Loops 1 and 2 have been included in this program as subroutines, and if you follow the listing through you will see that it's quite easy to add your own customised occurs occasionally. In order to avoid this you have to integrate your sound effect into the structure of the program. This can take some thinking about, and will vary from program to program. The trick is to find natural delays in your program structure, and never use FOR/NEXT loops simply to save the sound extravaganza for the triumphs and disasters, as you savour the moment of victory, of flounder in defeat. The difference between Integrated Sound and the use of subroutines is shown in Listing 3 and Listing 4. Back to the bouncing ball featured in the last article. In both programs a ball bounces around the screen, and bleeps each time it hits the edge. In BOUNCE A the program goes to a subroutine to generate the sound, and in BOUNCE B the sound is integrated. It's a very simple example, but if you RUN the two programs you should notice the difference. So far we've been talking about aliens, frogs, rockets etc, and all we've got is the VIC's standard graphic set. If you've got a lot of imagination you are probably quite nappy with that — but it does take a lot. A square falling from a rectangle can be interpreted as a bomb falling from a plane, but a bit of realism would bring it all to life. That's what I'll be covering in the next article in this series. It's all about User Defined Graphics (UDG's) — they make all tne difference. Listing 1 E 10 20 36 4© 50 60 70 «0 30 100 110 120 130 140 190 160 170 l'?0 190 2O0 210 220 23© 240 290 260 270 28© 290 300 310 320 330 340 3*50 360 370 380 330 40O 410 REM COMPOSER REM BRVN PHILLIPS REM 1984 REM IMIT KEYBOARD t D1ML-:13> sDIMH< 18> jDIMH*' 18> 0IMPNK22;- iDIHNT<2?> V=368 78 :S= 36876 FOPJ= 1 TO 17 iPEftDL' 1 > I NEXT FORJ«!T017iPE*OH*T> (NEXT FOR J= 1 TO 1 7 sREADN* * J ■ iHEHT i i REM SCREEN DISPLfiV : PRINT"a" GOSUB660 J=0 : REM COMPOSE GET** IF***." "THEN240 [Ffl*a n VTHENRUN I PflSC " Ht « -2GTHENG0SUB44O : GOT0240 I FAf = " If THEHG0SUB54 0 : G0T0240 J=J*-1 :IFJ:>2OTHErU-2OlGOTO240 NT'. JJ-0iPM»< J J-"PS ■ FOR I = 1 TO 1 7 1FL- 1 '"flSC' fi* >THENMT< Ji*U< I ) jPN** J»«N*CX) NEXT I 1 FHT ' J>=OTHEN330 FDR VL=15T0OSTEP-l POKES. HT- J i iPOKEV.VL NEMTVL POKE V.OiPOKES.O PRINT TfiCv 1 IPHUI I ' rTAB<4 >HT< J> OOTO240 420 430 440 430 460 470 480 430 300 510 520 330 340 350 560 570 580 3'30 6O0 610 620 630 640 650 660 670 680 630 TOO 710 720 738 740 730 760 770 46, 780 131 730 REM DELETE NOTE i IFJ=0rHEHPETURII J.J-1 PR1MT"3" sGOSUB660:IFJ-0THEII RETURN FORK- 1 TO J PRINTTAB- 1 )PH«'.K > rTAB« 4 NEWT RETURN REM PLHV TUNE F0RK-1T0J 1 FNT « K > =OTHEH530 FOR VL-15TO0STEP-1 POKES,NT iPOKEV,VL HEXTVL F0RTT=1 TO200 iNEXTTT NEXT* POKE V.0IPOKES.O RETURN REM SCREEN DISPLflV PP 1 NT " »I pIhE»»»»»M AttUW COMPOSER " E LONER" PPIHI"imiM»IMr-'- AND " FF IUT"I»MMMRMJDELETE TO" PRINT"HM»MMMMCOMr 0SE. PPIHT"»1MMM1MM»F7 TO PLAY" IMT II MMIMm FI RE-RUMS'* RETURN REM DATA i DATA 30 ,83, 83, 68, 67, 86. 71 ,66,72,78,74,77,44,76, 58,47 DATA135,143,147, 131 ,133,163,167,175.173.183,187 , 135,133,201 ,203.207 DATAC ,C# ,D ,D* ,E ,F -F» ,G ,G* -A -AH .B .C ,D ,D# ."E " Programming Listing 2 10 20 30 40 30 60 70 80 30 100 110 120 130 132 134 136 140 ise 160 170 172 174 176 130 190 200 210 220 230 240 250 260 270 230 230 300 310 320 330 332 334 336 340 330 360 REM MANIAC SYNTHESISER REM BRVN PHILLIPS REM 1984 F0RI-lT09:REftDPS' I » I NEXT F OR I = 1 TOT i PEAOOP < I > : NEXT FOR 1 = 1 T09 : READLL < I ' I NEXT FORI = 1 T09 : REAOUL < I > iNEXT FOR I « 1 T04 : READS< I > i NEXT VL=36873 SN«3(SV»3 : PEM DEFINE STRINGS FX*-" ^M^IIi^^l^'I^I^-I^L^l'P »LS t 1 FAR OPTION--. i i i ,, 4(W(i»iaai!M'iLi , i'a*ietti!»»ia ' ■ i cursor keys " REM SCREEN DISPLAY P0KE36879.28 PR 1 NT " 3I1*WN I AC SVNTHES I SER " PRINT sMiaiB REGISTER »?G| 3" PPINT'-JUUSCS 1ST NOTE 1H1B150" PRINT"!*t*39 END NOTE UH2« PRINT"Mia4B STEP NOTE tfSNl PPIHT"ttBB(5B 1ST VOL HVT PRINT"UU*S« END VOL |f-/2« PRINT "|fcia7B STEP VOL IK-Vl PPINT"lMl^B PAUSE iFSl 0 PRINT"UUS9B HO. REPEAT iFPB 5" PR I MT " sfcMliU 1-8 CHANGE VALUE " FS LOOP 1 F7 LOOP 2 00' 13' 3* PRINT tftL&i PRINT "|*iai PRINT' PRINT' s REM SELECT OPTION 28:J=VAL >0ANDVAL Cft* > < 1 OTHENCL- PRINTCHR*<:28>Fl»»CK*iG OTO4O0 370 IFA*="||"THENGOSUB?40:REMF7 330 | F A » a " !■" THENOOSUBegQ sREMF5 390 GOTO340 392 I 394 REM CHANGE VALUE 396 i 400 GET A* 410 CL-28:GOSUB620 42© IFA*="ft"THENCL=144 :00SUB620 :PRINTCHR*<2S.»CC» ;CF* :G0T0348 430 IFA*="||"THENOP< J>-0P + 1 : IFOPC J.OUL' J :-THENOP< J) =UL< J> 440 1FAJ-"U"THEN0P« I>=0P< J>-1 :IFOPi J !> 450 0P«»STR»(OP< > 460 LG=LEN<0P»> 470 0P*-MIO*' OPt -2.LG-1 "> 430 IFLG=3THEN0P*"" "+0P» 490 IFL0-2THEN0P*-" "fOP* ■50© PP1NT"3" 510 FORI = 1 TOPS CJ^ 520 PRINT 10 REM BOUNCE ft 20 i 30 V-36878tS-3*873 40 P1-8164.P2-39884 50 CM*81 iCL-2 60 x-ieiv*oixi»i0ivi-v 70 DX-1 iOV-1 80 PRINT"3" 90 X»X*OXlV-V*DV 1O0 IFXC10PX>20TMEHDX-DX*-1 jOOSUBIT* 110 IFV<10RV>21TMENDV-0V*-1 IGOSU6I70 12© POKEPl+Xl-22*Yl,32 1» P0KEP1+X-22*Y,CH 140 POKEP2*X-22*V,CL ISO Xl-XtVl-V 160 COTO90 170 P0KEV.13 180 POKES. 210 19© FO*I-lT030iNEXT Listing 3 200 PO*:EV,t 210 RETURN lPOKES.0 530 540 530 560 370 33© 590 600 610 612 614 616 620 63© 640 630 660 670 672 674 676 630 690 700 710 720 730 732 734 736 740 750 760 770 730 79© 800 310 320 330 840 350 332 834 856 860 870 918 920 930 FMO 960 970 972 974 976 980 990 1000 1010 102O NEXT I PRINTCHP*-;i44>TAB<16>?0P« SV-SGN COP < 6 > -OP < S > 1 *0P f TO SN-SGN< OP < 3 > -OP C2>5 *0P < 4 1 IFSV<0THENK>7iSGt="-" : GOSUB680 IFSV: 0THENK'=7 lSG*a u " :GOSUB680 IF3N';0THENK=4 :SG« - " - " i G0SUB680 IF? N>0THENK=4 lSO»«" " :G03UB680 G0T0400 : REM PRINT OPT SUB PRINT'S" F0PI=1T0PS PRINT NEXT I PRINTCHP*' i.L>"Wia"MI0«'STR*<-I>.2,l • RETURN REM PRINT SIGH SUB PRINT "fl" FORI=1TOPS PRINT NEXT I PRINTTAB<16>SG* RETURN : REM LOOP 2 F0RN=1T00P<9> F0PV-0P<5>T00P<6>STEPSV F0RNT=0P<2>T00P<3>STEPSH POKEVL.V P0KES<;0P<1.>>.NT NEXTNT FOR I = 1 TOOP < 8 > » 1 OO J NEXT I NEXTV POKES>,0 POKEVL.0 NEXTN RETURN : REM LOOP 1 F0RN-1T00P<9> FORNT-OP< 2 >TOOP < 3> STEPSN FORV=OP< 5 ) TOOP < 6> STEPSV POKEVL.V P0KES<0P<1>>.NT NEXTV FORI-1TO10O*OP<8- iNEXTI NEXTNT POKES(OP<1>),0 POKEVL,0 NEXTN RETURN REM DATA 1 DATA 1,3,4,3,7,8,9.11,12 DAT A3 , 1 50 , 2O0 ,3.5,15.3,0.3 i DATA1, 128, 123, 1.0, 0,1. 0.1 DATA4,233,233,20, 15. 15. 15, 10,25 DATA36874 , 36875 , 36376 , 36877 10 20 PEM BOUNCE B Listing 4 30 V=36873iS»36375 40 Pl=8.l64iP2=338S4 50 CHnSl :CL«2 60 X=10iV-0!Xl=10:Vl»V 65 P0KES.210 70 DX=1 iDV-1 30 PPINT"3" 90 X=X.OX!Y=V+DV:POKEV,0 1O0 IFX<10PX>20THENDX=DX*-1 :P0KEV.13 110 IFV<10RV>21THENDV=DV*-1 :P0KEV,l3 120 P0KEP1+X1-22*V1,32 130 P0KEP1.X-22*V,CH 140 P0KEP2+X-22*V,CL 150 Xl*X*Vi«V 160 GOTO 90 Mike Roberts and Simon Rockman investigate the smaller of Commodore's new offspring, the Commodore 1i IE THE COMMODORE 16 IS Packaged in the same type of ox that has clothed Commodore 64s and VICs for the past few years. The machine's colour scheme is rather different to the CBM 64; it looks like a negative — gunmetal box and a grey keyboard. The ports at the back of the box show a departure from the 64/VIC stable with the omission of the R5232C interface and the parallel user port. Most remaining features have been changed: the cartridge/expansion port has been reduced in size to stop people shoving CBM64 cartridges into a C16. Commodore say that no RAM memory expansion will fit into this slot, only cartridges, although 'Memory Expansion' is written above it. Com- modore's answer is "We know"; apparently the moulding was made by a Chinaman or something. It is unknown whether the highly advanced structure of the CBM 64's slot is duplicated with the facility for second processors etc. The two D9 connectors of the CBM 64 have been dispensed with and replaced with mini DIN connectors: this means you can only use Commodore's joysticks but even their new 'hi-tec' style ones are not the best on the market. This is foolish since it is so easy to make an adaptor (or use with any joystick. No doubt there will be a roaring trade in adaptors. There is also one other problem with joysticks: on the box they are labelled PORT 0' and 'PORT V: BASIC thinks they are 'JOY (1)' and 'JOY (2)' — the mysterious Chinaman perhaps? The cassette recorder socket is also a mini DIN connector; this is because the C16 cassette deck is different to the old tape decks. This doesn 't really matter with the C16 as a cassette deck gets supplied with the computer. COMMODORE'S LATEST NUMBER Thankfully. Commodore have left the Serial BUS and the audio/video connector alone. Since all Commodore's existing peripherals which use these ports will work straight off, there are already printers and disc drives available for the machine: this is a welcome change from the usual state of affairs where the user has to wait up to two years for any peripherals at alt. The keyboard is up to Commodore's usual excellent standards and probably represents most of the component cost of the machine (it did on the CBM64 and VIC). Changes made from the VIC/64 keyboard include four separate cursor keys, an escape key, and various modifications to the layout of the keys to facilitate these changes. The cursor keys are now on the top right of the keyboard. This is confusing toa user who is experienced with the Commodore keyboard of old, but it is extremely logical and easy to get used to for the first time user. Inside the C16 The internal hardware reveals some surprises. Most of the inside is driven via one big chip: called either the 7501 or the TED chip depending on your inclination, it combines a 6510 processor at 2MHz with a sound generator, timers, input/output, memory banking, and graphics generation. In all it has 19 registers to control things fin order of graphics ability: the Spectrum has 1, MSX has 6, the BBC has 17, the Commodore 64 has 47). Sound ability is as good as any other computer although it only has two channels — either two sound channels or one sound and one noise (for special effects). Nearly all the advanced sound features of the SID chip have been left out like ADSR, filtering, and mod- ulation. Graphics ability is superb. It is natural that this and the Plus 4 will be compared with the Commodore 64 as there are a lot of similarities in spec; the graphics are different and there are currently two schools of thought as to which is better, the CBM64 or the C16 No sprites. . . The big difference lies with sprites. These wonderful things that make games programming easy have been chopped from the C16. In their place is a software simulation of them from BASIC where you can extract an area of the screen and store it in a string. This string can then be recalled and put back on the screen at any point. There are also other options to manipulate these objects, but they are not true sprites; a large 120 byte object takes about a quarter of a second to write to the screen. I feel that the world can live without sprites for at least another computer generation (about 18 months); the Commodore 64 and Atari were just too far ahead of their time. . . .But more colour The trade-off against the sprites is more colour. The screen of the C16 can have 128 colours (121 excluding black) made up of 16 colours, B luminence levels, and flashing. Screen size is 40 x 25 text with four other graphics modes. The other graphics modes are 320 x 200 with the previously mentioned 128 colours being used in a colour map system, and 160 x 200 in a multicolour form. Both hi-res screens have an option to leave four text lines at the bottom of the screen. There are some other graphics modes and options but these are only available by POKEing. UDGs are obtained by POKEing and manipulation of registers. The manual gives no hint of these although they are very straightforward to obtain. When playing with UDGs one other feature becomes apparent. A character gen- erator is 2K long (256 x 8 bytes), the C16 one is only IK long. How come? Well, the long and short of it is that the C16 uses a hardware reverse field attribute. The top bit of the current character displayed indicates whether it is inverted or not. The advantage of this lies in memory consumption. The disadvantages are that you can only have 128 UDGs, and flashing works in a rather strange way- A reverse field space is shown as a black square; when you flash it instead of getting a flashing square nothing happens. This is quite confusing until you Hardware Review "nr»i ■ • realise that a flashing space doesn't change. Other modes not docu- mented include Extended Background Colour mode, which gives you different background colours as well as foreground colours, and multicolour characters where each character can be made up out of a number of colours. There may be others but, without a technical manual, I cannot ascertain them. Programming the C16 While investigating the ROM in the machine i came across a strange quirk. Before getting the manual, I was PEEKing the top end of ROM to discover the BASIC keywords. Doing this produced garbage and not the codes that I was expecting. However, entering the monitor and interrogating .memory revealed them: all trie memory ging systems of the Plus 4 ave been left in, so when you try to PEEK the ROM the BASIC pages it out to allow access to the RAM beneath. This is alright in a 64K Plus 4 but in a 16K C16 there is no memory there — just garbage. This brings me ontoanother point. The BASIC (covered in the latter half of this article) is ideal for an inexperienced user or an experienced BASIC user, but what about us machine code hacks and people that wouldn't use BASIC if they were paid to? The answer is TEDMON — a full feature assembler, disassembler, monitor, debugger. It is similar to Extramon 7.5 and is very good indeed. This makes writing assembly language very easy as you already nave most of the development software built in. Here is a list of monitor commands. A ASSEMBLE C COMPARE D DISASSEMBLE F FILL GCO H HUNT L LOAD M MEMORY R REGISTERS S SAVE T TRANSFER Assemble a line of 6502 code Compare two sections of memory and report differences Disassemble a line of 6502 code Fill memory with the specified byte Start execution at the specified address Hunt through memory for all occurrences of certain bytes Load a file from tape or disk Display the hexadecimal values of memory locations Display the 6502 Registers Save to tape or disk Transfer code from one section of memory to another II mt _| _ ■■■■■■ S5T_ ^ f 1 The monitor can also be called by using the reset button. This is a great feature and is in a little recess just by the power supply. Press it in and the machine goes back to its power on state — memory contents are pre- served but it is awkward to get at them. The beauty of it all comes when you keep the STOP key pressed down at the same time as you press in the reset key: the computer jumps into the monitor, key in 'X' (for eXit) and you are back in BASIC, complete with intact program. BASIC on the 16 Commodore BASIC has been around in one form or another since the early PET in the mid 70s; little has happened to it since then. In the outside world fancy, structured BASICS have been the order of the day. BBC and QL BASIC are so far removed from the original Dartmouth BASIC that they can hardly be called BASIC at all. The Commodore 16 is the first major departure from the standard Commodore BASIC. The 64 and VIC use BASIC 2.0, the business machines use BASIC 4.0, The Commodore 16's BASIC 3.5 does not really fall between the two but goes beyond BASIC 4.0. It incorporates most of the features of BASIC 4.0 and adds any new graphics and sounds commands, the only com- and which is missing from BASIC 3.5 but is present in BASIC 4.0 is RECORD. RECORD aids the accessing of data in a random access File; this omission is a shame be- cause random access files open up (no pun intended) great scope for business program- ming. They can still be imple- mented but sending bytes off one at a time is a little laborious. There are lots of new commands in BASIC 3.5, some replace the POKEing required on the Commodore 64 and some add extra functions. They divide up into five main sections: structure, toolkit, disc handling, graphics and sound. Structure The IF..THEN structure has finally sprouted an ELSE lag. Most Commodore program- mers fail to seethe value of this, after all you can always put the next statement on the following line. Where ELSE really comes into its own is in conjunction with a GOSUB. Consider this routine: 10 IF Z =1 THEN GOSUB 100 ELSE GOSUB 200 20 PRINT "BACK FROM THE ROUTINE" Without the ELSE it would have to look like this 10 IF Z=1 THEN GOSUB 100 15 IF Z<>1 THEN GOSUB 200 20 PRINT "BACK FROM THE ROUTINE" Without the test in line 15 the program would always get to 200. The ELSE function is a very valuable addition to Com- modore BASIC. Brand new structures are DO. .LOOP WHILE and DO.. LOOP UNTIL. These allow a FOR. NEXT type of loop where the control variable can be altered in the middle of the loop. They do of course mean that any program with the variable DO in it will not work. Most Commodore users will be familiar with the line 10GETA$:IFA$=" "THEN10 Which waits for a key to be Eressed. Well Commodore ave decided that this is so common that they have added a command GETKEY which does the same thing. The INSTRcommand makes data validation much more simple, it returns the position in a string or a substring so PRINT INSTR ("NNANNN", "A") will give the answer 3. Think how useful this is for adventures, all you need is a INSTR ("NORTHSOUTHEAST WEST",D$). To neaten up output there is the PRINT USING command, this allows you to define the shape of the output and the decimal point and pound sign are looked after by the computer. Adventure writers will appreciate the RESTORE < line number > feature and everyone will appreciate the TRAP < linenumber > com- mand which causes the program to jump to a specified ine if an error occurs. This can ead to sloppy programming but its benefits, in preventing the user of a BASIC program getting into the program when an error occurs, far outweigh the disadvantages. m m ♦ 3 MCL P Toolkit From the early days of the PET there have been add-on toolkits for the PET. The C16 comes with one built in. Most prominent is the HELP key. When an error occurs in a program pressing the HELP key causes the line to be listed with the offending statement in a multi-statement line flashing. The VIC and 64 have always required a machine code patch to allow them to use the function keys on the left hand side. The C16 has a KEY command. Just typing KEY produces a list of the key definitions on the screen. KEY followed by a number and a string allocates that string to the key specified by the number. Even the HELPkey can be redefined. An AUTO command provides automatic line numbering. It works in an odd fashion, you have to type AUTO and then the increment. Then you start entering the program with a line number and then all the subsequent line numbers are generated for you. The AUTO command is not quite fast enough and can't keep up with a key defined with a message and a carriage return. The AUTO mode is switched off by hitting return over a blank line. The RENUMBER command neatens up programs and allows forgetful program-mers to squeeze in that essential bit of code which was missed out. Unlike the dreadful renumber in Simons BASIC thisone works properly and renumbers GOTOs and GOSUB's. The toolkit for the old PETs had a great TRACE function. This gave the line that was being executed and the last few lines above that in a window. The C16 just prints out the line being executed at the current print position. This means that the screen gets cluttered with a load of line numbers and cannot see what is supposed to be going on. It is switched on with TRON and off with TROFF. Disc handling BASIC 4.0 programmers will be familiar with all these commands. BACKUP provides a fast backup between drives on a dual drive unit. The only way of using this is with a 4040/8050 type drive and an interpod since the 1542 is only a single drive. There may be a dual drive in the pipeline; one was pictured in Commodore's report to shareholders. DIRECTORY shows the contents of a disc without destroying any BASIC program in memory. There is no CATALOG command as used in BASIC 4.0. DLOAD and DSAVE load and save files from and to disc. HEADER formats a new disc; there are two ways of doing this, a full HEADER which formats the whole disc and a quick HEADER which just formats over the directory on a disc which has already been used. The former is probably safer since it ensures the whole disc is safe to use and there are no bad sectors. RENAME does just that; it allows the name of a file to be changed on the disc, ideal for archiving a file you arc working on. COPY isslowerthan backup for copying a whole disc and does not format the disc it is copying onto but will copy one or a selection of files. Overall, the disc handling commands are a very useful addition — for disc users — but how many people will spend £230 on a disc drive for a £140 computer remains to be seen. Graphics By far the greatest improve- ments in Commodore BASIC have occurred in the field of graphic commands. The use of high resolution graphics really clobbers the memory, in high res mode the user is left with 2K to work with. Clever machine code could eek this out but most users will want to use BASIC. The non-high res com- mand is COLOUR. This replaces all the messy POKEing. There are three parameters to this command: type, colour and brightness. The type is a number between 0 and 4: 0 — Background 1 — Character (INK) 2 — multi colour 1 3 — multi colour 2 4 — border To use the high resolution graphics there is the GRAPHIC command. This allows for two modes, a 320 by 200 mode where the colour resolution is limited to two colours per 64 pixels and a multi colour mode which allows four colours per 64 pixels. There is an option to clear the graphic mode as you enter it. The graphic screen can be cleared with the SCNCLR command. The DRAW command will either draw from the last point or from and to a specified point. The colour can be given for each line. One of the major problems with a graphics screen is the difficulty of printing text to it. Drawing out a whole word can be very laborious. The C16 has two ways of overcoming this. The first is a text window at the bottom of the screen which can be printed to and which scrolls in trie normal way. The second is the CHAR command. This either writes or erases a given string at a specified position; it is slow but allows the string to be put anywhere on the graphics screen. The BOX com- mand is a fast alternative to using four draw commands. It is possible to produce a filled or rotated box. The CIRCLE command is a little slow but makes up for that in its flexibility; it can be used to draw any polygon or oval. Colour fill is quite difficult to write but this is no problem on the C16 which has a PAINT instruction. The 121 colours make the C16 a very pretty machine. An attempt to mimic sprites has been made by the inclusion of the commands GSHAPE and 5SHAPE. These suck graphics from the screen into a string which can then be squirted back onto a different part of the screen. There are flags for different logical operations which can be used to produce different effects when re- printing the software sprite. Sound Sound on the C16 is a doddle when compared to the 64. This is partly due to the new BASIC commands and partly due to the lack of facilities. There are only two commands, VOL and SOUND. There are two musical voices and one noise channel. The parameters forSOUNDare the voice number, the note and the duration. It won't be long before we start to learn the standard zapping sounds. Final points The manual is excellent and way past Commodore's usual standard. It is informative and instructional for the first time user. For the experienced person there are memory maps and register details. At only 16K the C16 looks a bit on the slim side, especially as the system cust out 4K for the operating system and screen. This leaves vou with 12K for programs. This is not too bad considering that Commodore machines are very frugal with memory consumption. Finally, another 10K disappears when using hi-res graphics, thus leaving only 2K for the user. Through clever Erogramming, an extra 2K can e extracted from the machine making a grand total of 4K!!! All we can hope for is that memory expansion units become available as soon as possible, if not from Commodore then from third I party manufacturers. [ COMMODORE YOUR BEST INDEPENDENT COMMODORE MAGAZINE Whatever you do, don't let this happen to you. When you rush down to your newsagents to get your copy of the latest Your Commodore don't suffer the disappointment of being told they've none left. Why not sit in the luxury of your own home and feel safe in the knowledge that your copies will come neatly wrapped winging their way through the post and find themselves popping through your letter box? Whatever your interest in the Commodore range of computers and peripherals, you simply cannot afford to miss a single issue. The magazine is packed with news, reviews of the latest software, information about the books for sale, articles to help you with your programming, games to type in and play, useful routines to make your computing life easier, and all sorts of useful, informative and entertaining features. So whether your interest is purely in the latest games available for the VIC 20 or in reading a serious review of the most recent hardware for your Commodore, you must ensure that you read and inwardly digest every issue of Your Commodore. And it's so easy to do! Just fill out the form below, write a cheque and send it off to the Subscriptions department. You know it makes sense! SUBSCRIPTION ORDER FORM Cut out and SEND TO: YOUR COMMODORE INFONET LTD., TIMES HSE, 179 THE MARLOWES, HEMEL HEMPSTEAD, HERTS, HP1 1BB Please commence my personal subscription YOUR COMMODORE with the issue SUBSCRIPTION RATES (tick as appropriate) UK £13.40 for 12 issues £15.30 for 12 issues I Overseas Surface £31.20 for 12 issues Overseas Air Mail / am enclosing my (delete as necessary) Cheque/Postal Order/International Money Order for£ (made payable to ASP Ltd) OR Debit my Access/Barctaycard* (•kdelete as necessary) D Please use BLOCK CAPITALS and include post codes. Name (Mr/Mrs/Miss) (delete accordingly) Address Signature Date. ATTENTION! ATTENTION! ALL COMMODORE USERS! A FREE LIGHTPEN! Yes a FREE Light Pen! with every GRAPHKIT! Graphkit is the ultimate in drawing!, designing! or painting! (using the light pen of course, which incidentally has a full 3 year warranty!) Graphkit will amongst other things allow you to: • Draw free handed on the screen anything from a Micky Mouse to your latest integrated circuit! With all the fill colour and erase facilities of course! • Save/load your latest master piece to/from the disk/tape drive • Or directly copy the drawing on the screen to the printer! And keep it for ever or send to a friend as a post card! • Design your own colourful sprites and characters • Play the games in the package! or use the light pen in your own games/education/programs GRAPHKIT is available on' disk and tape. Tape version is £1 595 and disk version (recommended! is £19.95. All you 1 540/1 541 disk users DMON 1 Is here at last. Dmon is the disk monitor you have been waiting for it wi allow you to: • read/write blocks from/to the disk • display and edit blocks on the screen • display and send disk messages/commands • transfer your programs from tape to disk or disk to disk or even disk to tape! • and more! DMON comes on DISK at only C9 .95. TORNADO 20/64 Do you use tapes? Are you sick and tired of waiting for your programs to be Loaded/Saved from/on the tape? Then you need a TORNADO!! Tornado allows you to Save/Load/Verify your Basic/machine code programs faster thart a CBM 1541 disk drive doesl Due to popular demand! Tornado now comes with new and more powerful commands plus extra instructions to assist you in making fast versions of your existing machine code/Basic programs. Tornado is available on tape for CBM 64 and 8K + Vic 20. BREAKER 20/64 Do your Run/Stop and Restore keys often tail? Do you want to come out of those crashes?! Or get into those unbreakable programs?! Then what are you waiting for, get yourself a BREAKER!! Reset switch and let your computer know who is the boss!! Breaker can be connected to your machine in seconds, no soldering. Included with the Breaker is a copy of basic recovery software on tape. Now available for any CBM 64 or Vic 20. I BSF CSL, 82 FURNACE DRIVE, CRAWLEY, W SUSSEX RH10 6JE. Ptease send me Tornado at £9.95 • mv free! Breaker Please send me Breaker at £7.95 L ..DMON at £9.95 Please use this form and block letters only. All prices are inclusive of p&p (mail order only, add £2 if outside UK). Please post to: BSF CSL, 82 FURNACE DRIVE, CRAWLEY, WEST SUSSEX RH10 6JE. Getting into a loop over BASIC? Then follow A P and D J Stephenson's advice on conditional processes and loops in the third part of this series. THE POPULAR PRESS IS fond of implying thai com- puters, in some way or another, have electronic brains' and that they work things out for us. This is typical media rubbish. Computers don't know how to work anything out. They do exactly what they are tola and nothing else. If a human doesn't know how to solve a Kroblem then no computer, owever much it weigns or costs, can solve it. Naturally, every problem could, in theory, eventually be solved by some form of trial and error process but this is not really solving the problem — it is just laboriously eliminating the methods which won't solve it) Fortunately, the computer works so much faster than humans that even trial and error methods are often practical, even if it involves working through millions of incorrect answers before they hit, by chance, on the right one. Perhaps it is this which is partly responsible for the myth that computers have 'intelli- gence'. Nevertheless, there is one statement in the BASIC vocabulary which, superfi- cially, appears to imbue the computer with some intelli- gence. This is the IF/THEN statement because it appears that the computer is capable of making a decision. (In reality, the computer doesn't make the decision at all but it seems as if it does). The format of the IF statement is as follows, IF condition THEN action. Example: IF A = 20 THEN 110 The condition is 'if A = 20' The action implies 'GOTO line 110 for the next instruction' Whether the action is carried out or not depends entirely on the truth or falsity of the condition. If it is true, the action after the THEN part is obeyed. If false, the action is ignored and the program continues with the THE BASIC FACTS PT. 3 next line number following the IF statement. In the example above, if A was indeed 20, the computer would go to line 110, but if it was not 20, the program would simply carry on to the next line instead of jumping to 110. It is important to point out that the particular action to be executed if the condition is true is not necessarily a simple jump to a line number. Here are some examples of legitimate IF statements: IF A > =25 THEN X = X+1 IF the condition is true, the action is a simple increment action on X. IF BF > K-(B+3) THEN BF = K*(BF+3) IF A ■ 30 GOTO 236 (Notice here that the word THEN can be missed but and replaced by GOTO if the action is a jump to line number) IF DS = K THEN Z = Z+3:PRINT DS Notice here that the action can be extended to more than one statement providing the usual colon delimiter is used to separate them. The rule is that all statements which follow the THEN part and which belong to the same line number are executed if the condition is true. If the condition is false, none of them are executed and the program continues at the next line number. It is clear from all this that although the IF statement appears to make a decision, it is not a decision in the intellectual sense. A true decision is based on a judgement formed after considering the relative merits of alternative solutions to a problem. The computer is not making a decision at all. It has no option but to act on the value of a variable so it is still a moron, behaving according to directions given by human intelligence. We are promised that the next breed of computers now on the drawing board, will usher in the so-called fifth generation revolution. These are said to have artificial intelligence built into them. It remains to be seen whether this is true intelligence or merely an increase in memory processing ability. In the meantime it is comforting to rely on the following definition: 'Intelligence is that which a computer does not have'. It will at least preserve man's dignity for a bit longer. Repetition A computer is ideally suited to carry out repetitive tasks. That is to say, an identical process is carried out on a variable, for a certain number of times. Although the process is identical, it is clear that something must change during each repetition or nothing much would be achieved. The following terms, relating to repetitive tasks, are well standardised. (a) Loop: the general name for value, 26 is the finishing value (b) Cycle: one complete process. (c) The loop Variable: the particular variable which is changed during each cycle. (d) The increment : the amount by which the loop is variable is changed each time. It can be either positive or negative. For example, the increment could be +3, meaning the variable is ncreased by 3 or -3, meaning the variable is decreased by 3, within each cycle. (e) The starring value: this is the value given to the variable on entering the loop. (() The finishing value: the final value required of the loop variable. When the loop variable has reached this value, the repetitive process is complete and the program is arranged to come out of the loop. As an example, to illustrate the meaning of these terms, suppose we want the variable A to grow, one at a time, from 5 to 26 within a loop, then A is the loop variable, 5 is the starting value,. 26 is the finishing value and the increment is +1. As a further example, suppose B 1 is to diminish from 300 to 200 by increments of 5. The loop variable is B1, the starting value is 300, the finishing value is 200 and the increment is -5. Components of a loop Bearing in mind the points raised above, a loop will consist of the following components: (a) Initialisation: Preparing the loop for entering the loop. This will often be no more than a simple assignment for setting the starting value of the loop variable. Programming (b) The process: This could be very simple, such as simply priming out the value of the variable each time round the loop or it could be a highly complex mathematical operation. It could even be a rearrangement of letters within a word. In fact the process could be almost anything, limited only by the imagination of the programmer. In some cases, loops are used merely to cause a delay somewhere within a program. For example, to display a screen message for just sufficient time for the operator to read it and decide the appropriate action. In such cases, the actual process is auite unimportant providing the execution time is judged to be equal to the required delay. It should be mentioned however that using a loop for inserting a delay is not to be recommended. It is crude and, unless you know the execution time of the statements which form the process, is little more than a trial and error exercise. (c) The incrementation: The loop variable must be altered in some way ready for the next cycle. There is no hard and fast rule as to the position of the incrementing proce- dure. Sometimes it may be advantageous to increment before and sometimes after the start of each process. (d) The end-of-loop-tesi: This is simply a check on the value of the loop variable. It is made each time round the loop to see. if it has reached its finishing value. If it hasn't, the process is repeated. If it has, the loop must be exited. The following simple programming examples will help you to become familiar witn tne terms. Program 3.1 100 A=1 110 PRINT A 120 A=A+1 130 IF A > 20 GOTO 110 140 END No apologies are made for the childish simplicity of the program. It is quite good enough to illustrate most of the points already made. The loop extends over the lines 110 to 130. Line 100 initialises the loop variable by a simple assignment statement. The process is simply to print out the value of A each time round. Line 120 deals with the incrementation of the loop variable, the increment being + 1 each time. Line 130 handles the end-of- loop test by diverting the program back to the start of the loop each time providing the value of the loop variable still remains under 20. When it has reached 20, the loop exits and the program stops. In short, the program prints out the numbers 1,2,3, . . .19. To show that the same objective can be achieved differently, study the next program. Program 3.2 100 A=-1 110 A=A+1 120 PRINT A 130 IF A 20 GOTO 110 140 END This time, the incrementation has been carried out before the process but, to satisfy the same objective, the loop variable is initialised to -1. It may be asked, 'Which is the best way?' There is no straightforward answer to this since situations can arise where the second version is more convenient. However, the first version is easier to follow. It is more 'logical'. Indeed, we can lay down the general rule that if there is more than one way of achieving the same result, always choose the one which is easier to follow, even if it happens to be a little less efficient and takes a longer time to execute. Saving a few microseconds here and there can sometimes be important but not very often. Tne vast majority of programs execute almost instantaneously anyway (at least as far as humans are concerned). Although a lot has been written about saving computer time, in the vast majority of programming applications, the advantages are often academic rather than practical. Avoid using 'clever' tricks just to show you are clever. You may earn the temporary admiration of a few neophytes but not for long. The watchword of good structure is clarity. Bugs in loops When programming a loop, there are two areas in which bugs delight to lurk, (a) Incorrect number of loops: It is very easy to be 'one out in the loop count. For instance, i both Programs 3.1 and 3.2, it i quite possible that the origina intention was to print out th value of A from 1 to 20 instea of to 19. The error, responsible for an incorrect loop count, can lie in either the initialisation or the end-of- loop test. n (b) The endless loop: It is easy, in fact ridiculously easy, to fall into the endless loop trap. Instead of revolving round a certain number of times, the loop goes on for ever. In other words, the program is locked within the loop and can never escape to the rest of the program. The most common cause of the bug is a jump to an incorrect line. For example, in Programs 3.1 and 3.2, if the IF statement returned control to line 100 instead of 110, it should be easy to see that an endless loop situation would exist because the effective increment is cancelled by re- initialisation each time. It would also happen if the end- of-loop test was searching for a number which could never be reached. For example, if we had written 100 IF A -20 GOTO 100 it is evident that this value of A would never be reached so an endless loop would be created. If the increment is positive and the starting value is greater than the finishing value, you have an endless loop. An endless loop will also arise if the increment is negative and the starting value is less than the finishing value. Unfortu- nately, the cure of loop bugs is not always so easy to spot. If the loop is at all complex, it may require a good deal of detective work and the occasional bout of cursing before the cure is found. Very often, curing one fault initiates another, particularly it you have been careless with regard to structure. The FOR/NEXT loop method Although the previous method of organising a loop is quite satisfactory, the designers of BASIC were kind enough to provide us with a pair of statements which were intended to make life a lot easier. The FOR statement is used at the start of the loop and the NEXT statement marks the end of the loop. The process is in the middle. Although the Commodore User Manual describes the use of the FOR/NEXT loop structure, we will start from scratch in order to amplify some of the points made. The format of the FOR statement is as follows, FOR variable ■ starting v a/ue TO finishing value STEP increment For example, FOR A = 1 TO 20 STEP 1 This will head a loop in which A will start at 1 and carry on until it reaches a value of 20, incrementing by 1 each time round the loop. The bottom of the loop is defined by the simple statement, NEXT A Note that the FOR statement does quite a lot. It combines the role of initialisation, incrementation and, surpris- ingly, end-of-loop test all in one go. To illustrate the elegance of the FOR loop and to see how it compares with previous work, study the following: Program 3.3 100 FOR A = 1 TO 19 STEP 1 110 PRINT A 120 NEXT A This will produce identical results to the previous two programs — it prints out the value of A from 1 to 19 inclusive. It does not require the addition of the IF statement to terminate the loop. Also, it is inclined to be less error prone because it reduces the chance of being one out in the loop count. It is important to be aware of the following features: 1. Whatever the parameters in the FOR statement, the loop will always process through once. 2. The value of the loop variable after exiting the loop will always be one increment more than the finishing value. For example, in Program 3.3, although only the numbers 1 to 19 are printed out, the value of A after exit will be 20. 3. If the increment is to be +1, it is not necessary to include STEP 1. Thus, the FOR statement in Program 3.3 could have been written in the more concise form, 100 FOR A = 1 TO 19 4. The loop variable must be floating point. We can't write FOR A% etc. 5. The starting, finishing and increment values can be variable names or any legitimate expression. For example, the following FOR statements are all legal: FOR A = B TO C STEP D FOR B1 = B+C-3 TO 5*D STEP E/3 FOR C = B-SIN(K) TO 26*TAN(T) STEP 1/COS (K) FOR D = 26 TO 5 STEP -0.1 FOR K = 26 TO 5 STEP 1 The last example is, of course, absurd but has been included to press home that even here, the loop will execute at least once. 6. NEXT A can be abbreviated to NEXT because there is no need to specify the variable although some think it is tidier. Loop objectives To consolidate some of the previous material, here are some loop problems and possible solutions: 1. A loop which prints out a table of the square roots of the odd integers from 1 to 17. Program 3.4 100 PRINT CHR$(147): REM CLEAR SCREEN 110 FOR I = 1 TO 17 STEP 2 120 PRINT SQR(I) 130 NEXT 140 END Line 100 clears the screen. It is a cleaner method than the ponderous PRINT "CLR/ HOME)" 2. A loop which prints out all integers between 5 and 24 except 17 Program 3.5 100 PRINT CHR$(147| 110 FOR I = 5 to 24 120 IF I > 17 PRINT I 130 NEXT 3. A loop which prints out the sum or all integers from 1 to 10000 100 PRINT CHR$(147| 110 S = 0:REM S IS TO HOLD THE SUM 120 FOR I = 1 TO 1000 130 S = S+l 140 NEXT 150 PRINT S 160 END Two points here. The program takes a little while so just wait patiently. We are aware of the simple formula for summing integers but this section is about loops. Nesting loops It is possible to have a loop inside a loop and indeed, one inside that, and so on. Such combinations are called loop nests. There is a limit to the number of nests but it is too large to worry about in practical programming at our level. Here is an example of a simple nested loop. Program 3.6 100 PRINT CHR$(147) 110 FOR A = 1 TO 10 120FORB = 2TO 10 130 PRINT A*B 140 NEXT 150 PRINT 160 NEXT 160 END The inner loop is between lines 120 to 140 inclusive. The inner loop first revolves with the value of A fixed at 1 whilst the value of B goes from 2 to 10. The value of A then remains fixed at 2 while the value of B again goes from 2 to 10. This process continues until the value of the outer loopvariable has reached 10. Since the process within the inner loop is simple multiplication of A times B, we are in effect printing out a set of multiplication tables. The PRINT line provides demarca- tion between the outer loop limits. Finally, we should explain that no attempt has been made in any of our programming examples to portray a nice screen appearance or to use literal messages. These will come later. Such niceties tend, in the early stages anyway, to obscure essential points. Loops are so important that nothing must stand in the way whilst they are explained. Soon, we hope, they will become second nature to you. SUMMER MADNESS SALE FROM SCI(UK) EPSON PRICE SPECIALS r-rmmmu\m\\< » EPSON RX80 (DOT MATRIX) . . . JE24&W £199+ vat =£228.85 J////i/iLll\\\ . . EPSON RX80FT (DOT MATRIX) . £235.00 £229+ vat =£263 35 EPSON FX80 (DOT MATRIX). . . .£438.00 £324+ vat =£372 60 EPSON MX 100 (DOT MATRIX). .£475.00 £355+ vat =£408 25 EPSON RX100 (DOT MATRIX). . .£45fcW£385 + vat=£442.75 t EPSON FX10CKDOT MATRIX). . .£56*00 £499+ vat =£573 85 D AIS YWHEELS. . . at an incredible new LOW PRICE! JUKI 6100 .just £329 20CPS: BiDireciional & Logic Seeking 10, 12, 15 & Proportional Spacing Wordstar Compaiable 2K Buffer: 13 inch Platen Underline: Backspace * Lots more Centronics Interface Standard OPTIONAL RS 232 TRACTOR AND SHEET FEEDER VAT = £378.35 THE DAISYWHEEL THAT HAS NO COMPETITION We will match any Genuine Price Advertised— SCI(UK) IS NEVER BEATEN ON PRICE MANY MORE PRINTERS AVAILABLE - 1000s of SCI(UK) BARGAINS/ S( send now for the FAMOUS SCI(UK) Catalogue/ - for the cheapest prices telephone 0730 68521 or 0730 68522 MORE SCI(UK) BARGAINS SHINWA CP80 £179.00+ vat =£205.58 - Friction and tractor feed as standard 80cps Bi-directional logic seeking 13 x 9 dot matrix giving true descenders Sub and superscripts. Italic printing and auto underlining Condensed, emphasised, expanded and double strike printing (can be mixed in a line) Parallel interface fitted as standard FIDELITY 14" COLOUR MONITOR & COMPOSITE VIDEO £189.00+ vat=£217. y. New from the world famous CANON Company CANON 1080a NLO DM best value ever at • i We have interfaces for all types of computers, = including CBM 64, VIC 20, APPLE, I RS 80, ■ | IBM, BBC, SPECTRUM, QL, etc. ^ ggggj Hi Eg 24 HOUR SECURICOR DELIVERY £9.50 plus VAT • BANKERS ORDERS. Bt ll.DING SOCIETY CHEQUES. POSTAL ORDERS - SAME DAY DESPATCH • ALL ORDERS COVERED BY THE MAIL ORDER PROTECTION SCHEME NATIONWIDE MAINTENANCE CONTRACTS ARRANGED • EDUCATIONAL DISCOUNTS VERY WELCOME It's SUNDAY - Do you realise you can order NOW - We are open 7 Days a Week. RANQEKEY LTD. Trsdkig m SCI (UK) SCI(UK) SCI (UK) FREEPOST (No stamp n—4*d) PETERSFIELD HANTS OU 32 2 BR DEALER ENQUIRIES I / I 1^ \ SCI (UK) FREEPOST (No iltmp n«*d*d) 0730 68521 EXPORT ENQUIRIES WELCOME l^I-ll UIV I PETERSFIELD HANTS QU 32 2BR n7Qn fi O C O T NO TAX WRITE FOR DETAILS % • ^ f 0730 68522 DELIVERY AT COST Large showrooms now open at 12 High Street, PETERSFIELD, Hants. GU32 3JG Telex 86626 MYNEWS G Les Allan's fast load utility should stop you nodding-off whil waiting lor your favourite progr; TURBO 64 This utility, when completed, exists as a machine code file booted from basic to $C999 and remains in residence to perform the following: M/C routine to save the finished product by pressing RECORD and PLAY on the tape. When the finished program SYS 49152 SYS 50000 SYS 50700 text mode to prompt available functions activate Turbo 64 save relevant section of memory to tape Turbo 64 commands are as follows: *- L this wilt load, at turbo baud rate, the 1st file from tape *- L" this will load a namefile from tape L" ",1,1 this will load, to the area of memory saved, a M/C file S this will save, at turbo baud rate, a program without a name 5" " this will save a program with a name S" ",1,1 this will save a M/C file to tape from the area resident in memory this will verify the 1st file on tape tf Program details The program as listed must be typed in exactly as written and saved prior to running. Error trap routines are included to ensure that the data is within the required limits and of (he correct value and quantity. The program when run stores the relevant data at a temporary is loaded and run the M/C routine transfers the data to $C000 and will remain available for use by the programmer to load, save and verify at Turbo baud rate — 10 times normal speed. Turbo save routine A save routine exists within the utility to enable the turbo 1. Load"T64".1.1 load turbo to memory 2. SYS 64738 COLD start 3. SYS 50000 activate turbo 4. ^ " load program 5. RUN figure 1 and $C608. This can then be used to load turbo saved programs as in figure 1. M/C files can be loaded by using a BASIC header as follows 10 lr A=0 THEN A=1:LOAD"T 64M.1 20 IF A=1 THEN A=2:SYS 50000 30 IF A=2 THEN A=3:— L"",1.1 The routine accessed by SYS 50700 should then be appended to the BASIC boot followed by the turbo saved program. ■ address at $8000 and when actioned transfers the data to the start of BASIC as a M/C file for the finished product. At this point the program when listed has overwritten the 'BASIC boot' and exists as a single line number 10 SYS 2064. The prompt on the screen is the routine to be used as a header for turbo saved programs. This is accessed by the command SYS 50700 and, when the prompt appears on the screen, the routine is saved by pressing RECORD and PLAY on the tape. The turbo routine is then saved to tape between $C350 N.B. Whereas the Commodore Logo key is used to commence the load routine for normal useage the turbo routine requires the use of the SPACE BAR to start the load sequence. This utility can and has been used to successfully transfer many commercial programs but information on such matters is strictly confidential and outside the scope of this article. Suffice it to say that material that would normally take 15 min to load will take a mere 1.5min with this utility. Program Listing 10 15 28 30 ^5 4* 48 50 55 60 65 ?& 75 88 35 90 35 100 195 ■ io 115 120 125 130 135 140 145 150 155 160 165 179 175 180 185 190 195 260 285 210 215 220 khM UrNHHt TU*B0 TAPE UTILITY FOP COMMODORE 64 »»««» PW.E53230.8 : P0KE532S1 > 0 PP1NTCHR*U47>CHR*<5>SPCU2>"^ TURBO 64 SO" F'PINT PRINT PRINT"THIS BASIC PART OF THE PROGRAM STORES" PRIHI-IHE TURBO ROUTINE AT A TEMPORARY ADDRESS" PRINI-Of- 32768 1*3000 J IN ORDER TO ENABLE THE" PRINT"F1NISHED PROGRAM TO BE TRANSFERRED TO" PRINT" THE START OF BASIC AND SAVED AS MACHINE" PRINT"C0DE NITHOUT THE NEED TO USE A MONITOR" PRINT PRINrSPC<3>CHR*(l29)"!'! WARN I NO Ml !M WARNING PRINT PRINTCHP*<28> PRINT-THIS PROGRAM MUST BE SAVED AS THE M/C" PR INT "ROUTINE USED HILL OVERWRITE THIS PROGRAM" f 1: REM MNtttttt«K»*ff*»»««*tt HEX LOADER WHMMMMM HWWWHWH I INC"0 SUM=0 PFADl'Hi I F Dh*= " END" THEN 1 70 IFLEN(DA*,'O2HNDDAJO"END"THEN210 H=ASC> H1 = #16 IFH>57THENHl= H2=37THENH2« BCD=H1+H2 IFBCD<0OPBCD>255THEN21O P0KE32768*INC.BCD INC-INC+1 SUM=SUM+BCD PRINT PRINTCHR*<5>SPC<.5»"DHTUM LEFT FOP TRANSFER :". PR I NT 1 920- 1 NCCHR* '1 57 > CHR* ( 32 ) CHR* < 145) CHR* ( 1 45 > GOTO110 REM tt*(t#»t#*t**tH* SAVE ROUTINE #*»**» IF INCOl 920OPSUMO 1 874 76T HEN2 1 0 PRINTCHR*<147>"DATA TRANSFER COMPLETE" PRINT : PRINT PRINT "HAVE VOU SAVED THIS PROGRAM 77" 0ETKEV* : IFKEV*0"V"ANDKEV*0"N"THEN185 IFKEY*="V"THENSVS34560 END PRlNTCHR*tl7>CHR*<17>"SAVE"CHR*i34J"TURB0 BOOT" CHR* '.34J PRINTCHR** 145>CHR*<145»CHR*a45;CHR*a45; END PRINTCHR*' 147) "ERROR IN DATA STATEMENT H'"-ST0P REM ##*(*»» Mttttfttt HE;; DATA FOR M/C ROUTINE 64 Utility 225 238 DATA 255 DATA 240 DATA 245 DATA 250 DATA ?SS DAT ft 260 DATA 265 DATA 270 DATA 275 DATA 286 DATA 285 DATA 290 DATA 295 DATA 300 DATA 305 DATA 310 DATA 315 DATA 320 DATA 325 DATA 330 DATA 335 DATA 34D DATA 345 DATA 350 DATA 355 DATA 360 DATA 365 DATA 370 DATA 375 DATA 380 385 DATA DATA 390 DATA 395 DATA 400 DATA 405 DATA 410 DATA 415 DATA 420 DATA 425 DATA 430 DATA 435 DATA 440 DATA 445 DATA 450 DATA 455 DATA 460 DATA 465 DATA 470 DATA 475 DATA 480 DATA 485 DATA 490 DATA 495 DATA 50O DATA 505 DATA 510 DATA 515 DATA 520 DATA 525 DATA 530 DATA 535 DATA 540 DATA DATA 54! 550 DATA 555 DATA 560 DATA 565 DATA 570 DATA 575 DATA 0B 1 08 . 0A . E0.3D. A9, E0.C0.BD. 0B,9D,80, BD-70.0E. CC . R9 - 0E,8D,20, F0.FF.A9. D2-FF.E8. A8.02.F0. A7.02.A9. AE, A7.02, A8.02-ES, A2 ■ 00 , 8E , 02 , BD, C0> E8.3E. A7, 85.C6.20. 08. 12,75, 66.60.60. 60,69-00, 20.B0.60. 20.20.7D, 7D.20.7D. 20,02,28, B2-6B.20. AD.60.7B. 70.70.20. 20 , 20 . 20 - 20.B1.AD, 6B. 20,20, 60.60.60- 60 1 60 - 60 . 00 .00.00- 48.49-53. 4C, 45,53 - 20,42.45. 20,26.26, 45.4E.20. 20.42-41. 54,48.45, 20.5F.4C. 20.20.4C- 45-00.20. 20,20,20. 46.49.4C, 20,20.20, 20.5F.53. 20.20,53. 45.00,00. 20-5F.56. 20.20.56. 40.45,46. 46.59.29, 52, 45. 2D- 4F,20-45, 30-00.00. 20.54.4F. 20-53. 54, 5B8D.08, 5F.F0.03- 10.C9.56, A7.20-73, 4C.AE.A7. 55. 50,45. 00,00.00, 00. 00- 00. 00.90.00, 00 . 00 . 00 . 05.86.AB, 38. F8.20. 00, 9E, 02, A2. 10, 0A, C3,BD, 9D,20. ACf . SD ■ D0.A9, 06, 8D, 4C2B, 03, 4C, 0E.SD. BD,C0. 8E, A7, A7.02, C2.F0, 02.-A9, E4. FF . 60,60. 60.60, 70,20, 69,20, 00, 7D. 20 . 7D . 70 • 00 ■ AB . 60 . 20. 7D, 20.70, 7D.20. 20,20. 20. El ■ 60.60. 60,60, 00, 00- 20 1 55 . 20.50. 00. 4C. 56.45. 54.49- 55.44, 20-46- 20-20, 4F.4I, 20. 5F, 20.20. 45.00. 20.20. 22. 4E. 41,56. 00-00. 20.20. 45.52. 49. 4C. 4E.41, 41.43. 4E. 54, 50,52, 20,51, 41-52. 03 ■ A9 . 4C.E7. F0.15. 00.20. 00.00, 52. 4D. 00 . 00 . 00 ■ 00 . 00.00. 00.00. 20, D4. 8F.F6. 32, 00. 9D, B0. C6, A7. 03. 86, C0, 1A. 86- Cl. 02. 18. 07, 19, C9, 60, 60. 60, 75, 20, 20- 7D. B3, 00- AD. 20, 60. 60, 00, 54. 52, 4F. 52, 4D. 20. 4F . 20, 44. 4C, 4C. 20. 20. 41 . 45. 00. 20. 49. 45. 4D. 54. 45. 45. 55, 54. C3. A7. 4C E0, 00. 4F- 00. 00 • 00. 00. El ■ 20. 30. BD. C0. 0C, E3- 02. 3D, 02, EE, C6, 02- F0. A3, AE. 20, CD. 00, 60, 60. B2, 60. 20, 7D, 20, 20. 7D- 7D. 00. 60, 7D, 60, 60, 00, 49. 4F, 41, 43. 45. 20. 4C, 20. 20. 22, 4F, 20, 20. ■411 . 20, 00. 20- 46, 22, 45, 49. 52, 53, 49. 5D. 8D. 20 ■ 08. C4. 00. 4E. 00. 00. 00, 00. A2- 7D. 36. 50. CI. 9D. EC- AC. 21- AE- A8. EE, 18, 07- 12, A8. D2, A8. F0, 60, 60. 60, 69, 7D, 20. 20. 7D, 20, 20, 7D, 6B, 00. 60, 6B, 00. 4C, 47, 44, 46, 53, 52. 4C. 20. 20. 4E- 41. 5F. ■ 45. 20, 00. 20. 59. 20- 46. 56. 20. 53. 54. 00. 09. 73, AF. 4i; . 00. 20, MM . 00, IJM . 00. 04. C4. 34.00. 88, 9D, BD.F0. 60, C4, A9,02. 01 .80. D0, 18. A7.02. 02. E8, A3. 02, AE.A8. 20. D2- CD-A8, 02, A0, FF,ES. 02. F0. F9,4C- 60,60, 60,60, 20, B2, 20-20. 20 , 20 1 7D.20. 70.20. 20, 7D, 20, 7D. 7D.20. 20.20, 20, 6A, 6A.60. 60,60, 92.00. 00.00. 49,54, 52,41 , 45,44, 49,45, 00. 4E, 41.54. 4F,57, 20,20, 20,31. 41, 40. 44,20, 53,20, 53,41. 46,49, 20, 4E. 00,00. 20,20. 00.20. 20.20. 49. 4C. 41.54, 53,59, 20-41. 20.20. 00,00. 03.60. 00, C9. 20,73. AE,fl7- 00,00. 36,34. 00 - 00 . 00.00. 00.00. 00,00, B5.2A, 20.91. 00.00. 00. C0. 0A , 9D , BD,90, D0,CA, AS. 02. AE,A8, BD,C0, 8E,A7, EE, A8. 02. A0. FF.E8. 02. F0, 02 . 20 - 4C92, 03, 4C, 94, E3, 60,60. 60.60- 20-B2- 75-60. 7D.20, 20. 7D. 20, 7D, 20,20, 20.20. 7D - 20 ■ B1.20. 60. 6B. 60.60. 60.60. 00.00. 00.00. 59,29, 4D,53, 2C-53, 44,20. 4F.52, 45,20. 49, 4E, 20,20, 53.54- 45.46, 26,20. 20,2u, 56,45. 4C45- 41.4D. 00-00. 20,20. 20, 5F. 20,20, 45.00. 45.20. 53.20, 4E.59- 20, 5B. 00,00- 20-73. 53. F0, 00,20, 20,73. 00,00. 0D.00. 00.00. 00 , 00 ■ 00 ■ 00 ■ 00.00. 95. AB. C4.A5. AA.AA, BD.30. A0-C2. 0D.9D. 4C.00. 20,44, 02, A0, C0-F0. 02, A9, 02, A9, 02,20, 4C.64. 03- 4C, F0,FF, C0.EE. 86, CO. AA , AA 1 60,60. 60.60. 20. B0. 69.20. 7D.20. 20.20. 20.70. AB . 60 1 7D.20. 20. 70, 20 ■ 6h . 20,20, 60,60. 60.60. 00.00. 00,00. 45, 4E. 20.54. 41,56, 41,54, 4D,41, 20.42. 47,00, 20,20. 20.46. 49, 4C, 4E.41, 20,20, 20.20. t2. 20- 45,46. 00.00. 20,20, 56,22, 56,45, 00,54. 54.55. 35.30. 20. 4B. 43, 4F, 00.00. 00. F0. 0B.C9. F0,C3, 00.20, 00.00, 00..00- 00.00. 00 ■ 00 > 00.00. 00.00, CA.D0. B9, 13, 580 585 590 595 600 605 610 615 620 625 630 635 640 645 65d 655 660 680 685 690 695 700 705 710 715 720 725 MM . A9 09- 9B BD.00 40, CS C0.20 E5.A9 04,20 07,26 08, CD 00. 3D F0.FF C0.EE 58, C© AE. A7 A8-02 A9.00 AA.&E 665 60-60 676 60.60^ 675 60.69" B2.2Q 7D,20 20- 7D 20. AB 69,20 7D-20 20, 7D 60-6B 6 A, 60 60.60~730 60.60- 735 00,00 740 00,54-745 41,42^750 4F,20~755 45,44 760 20-54-765 4C20" 779 59,20 775 00.20 780 20,20 -785 49,4i: - 790 45. 22 " 795 4D,45' 369 20,20" S05 00,20 '310 20.20' 49. 4C~ 820 00.20 20,20 4E.41 52,49 4F,20 52,42 30,30 45.59 4C44 00. A9 04. C9 4C.F0 4C.AE E3-C4 00,53 00.00 00.00 00. 00 00.00 00. A2, , F9.20 1 , 925 69 ,01 I 93Q 330 335 840 845 850 355 360 365 870 875 380 385 890 395 900 905 910 915 920 DATA HhTh iiMlH DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA OATn DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA CA.20.B1, 0* . FA . Dfl . CA,20,B1, 91.C4.93. A2.03.E6. E5. AF.90, 84. C0.53, AD . 1 1 ■ DO. A0.00.A9. C6.AB.D0, 85. BD.45. 20-D3-C4, E9,60.CA, 00,2C.A2, 20.D4.E1 > AB.C9.02. 85,C3,AD, 2C,A8,A4, F5-84.90. C3,85,AE, C3.fl5.BD. 20- AF.C5. C0.D0.F6. C3,D1,C3- C4, A5.C3. C4.C8.84, F8.20.7D. 26.BD.A5. F9-C4.BD, 20,F0,C5. 10.2C.0D- 0F.DD. 68. BD.2F.C6, A9- 13, 3D. 53.59.53, 30,36,39, A5.2B.85, 20,FD.AE. 2C20-FD. S5-2E,20, fl5. 59.85, AA, AA.AA. A2,00.BD. 82.9D.01, BD,00,85. 44-E5-A2. A9 . 02 . 85 . 03,AA,05, 39.2C33, 4F,20,36, END C4, A2. F? . *fl . L4 . M2 i 20. Bl . AC ■ DO . E7,EA, 18, A3, 29. EF. 02,20. EE. 98. 07,85. A2,U, D0.FD. 01, A4. 20- FD. F9.08. 3D. 03, B7.F0. 20.D2- AD.3F, 45. D7. C9. 00. F0.2D, F0.02. C5.AE- C0,53, C4,84, BO, C9. D0.E3, 26-BD, DC • F0 - 4A.4A, F0.07. 77,02, 35,30, 36, 2C, 57, A5, 20 ■ 8A ■ flE.20. FD.AE ■ 2D-A5. AA , AA , 00.80. 0A.BD. 90,01, 00. BD. C6 . A9 . 11 38.34 34.20 08. dpi. 05. C4, 04. AS, 00, 3D, Bl, 20. 07. EA, 90. 28, C4. C9. 85. 0B. F5. 03. 05. F0. 20. 86. A5 ■ 18. D7, 02. 20. EA. FB. 68. 20, A9. 37, 22, 2C. AD. 8A. 20, 5A- AA. 90. 00- 00. 13, 5o . 59 . -jo * o— 30. 92. B9.AC. A2.04. ty-L0- 84-07. E6. flD . D7.20. SD.A0. 11.00. C4.A2. B1.C4. A9.08, 09,08, 05. A2. A5.2C, 20, 7A. 01-00. C4.20. 88, Bl. AD.3E. 65, C4. 90. F0, f?.^ ■ flF,C5, 90,45. C4,E5, A9.00. A9.07. D0.F5. DD.C5. Efl.EA. AD.0D- 00.00. 02. FF, 0D.8D. 36-39. 54-20. 85.58. 20. F7. AD- 20. 56. El • 85. 2E. AA.AA. 01.08. 83. 90. BD.00. 87. F0. 3D. 77. 3 2C.22. 22.2C, 00,20. Fl.BR. Bb-L'V. A2,07. CA.CA, B1,C4, 02. 4C. CA.D0. 07,88. A2.07, 85. A3. 20. D3. 0B.CA. 86, 0A, E1-4C. F3-A5- 50, F7. BB • D9 • 63,38. 23, ED, 04 - A9 - AB-20. 20. DO. 07,85, AF.90, 80. A0. 80.06. A0 . 09 . 88 ■ D0 ■ C6. A3. 0D.8E. 00.00. E8.4C 73 1 0- 36.34. A5.2D. B7.A5, F7.B7. A5.57. 60 ■ AA . AA.AA. BD.00, 01. 0B. 86.90, 07.20. 32. H9. 34,34, 93.05. 30,31, B1,C4- r.4 , B7 . EA. Bl 1 M c , . Hi . A2,07. 93. FC. FD.88. C0.09- 38.00. 06. BD. C4.A2. 00. F0. 86.93, 74, A4. B9-F0. 20, E4, 41,03. ED.3C. 30.03. FF.85, 0D-C5. C5-C4. 07- E6. DO, 20, 02, 4C. 00. A2. 20 , 00 . F6.60, 00. F4, 07,00- 00,23. 11. C6, 0~ 30,30, 22-2C. 85.59. 14.85. A5. 14. 85.2B- AA. AA, AA, AA, 81.90. BD.00. 01 .0E- 02. FF. 0D.8D. 36,34. 12.20, 13.00. A2-06. 90.03. tf^,B5, AC, 20, C5.AE. 88, D0, A0.00. 00. FA. OA. F4, F7,Cfl. A5.01, 0E . C6, 85.01, 84, C3, 20.61, 0A.AD. FF.F0. 00. CE. 03.08- 35. AF. 90. 4C. 91 -B2- 93.00. C3.D0, DD,C5. 93,FC, 01,20. C5,C9, A9,08, A5> BD, 48. A9, 44, E5- A9.02, 03. AA. 30,36, 36,31. A5.2E- 2B.A5- 85-20, A5.58- AA . AA . AA ■ AA • 01.09. 84.90- E3.D0- E3.4C. 78,02, 2C32. 54,55, 00,00. C8.C0 A3. 20 Hb.t:y B1.C4 A5.AD F6.C8 84. C0 78.60 A2.05 CA.60 23, F7 A3 -00 60, A2 85, C4 C5.A5 3C03 FB.20 98-D0 13,65 20.76 fl9,F5 C8,C0 02,31 02, E6 20,70 20, 17 F0,C5 02, F0 35, A3 60, A9 19,80 A2.00 85, C6 85.11 2C35 13.00 85. 5A 15,35 A5. 15 85. 2C AA.ftA AA.AA BD.00 01.0C D3.20 34,87 6C02 30.34 52,42 00,00 TURBO TAPE UTILITY FOP THE COMMODORE 64 UTILITY COMMANDS APE AS FOLLOWS # t * « ft ft # # It ft ft # ft # tt BB»BBBB«aBB««RBB«BB«BflBRflBWB8flfl»BBBflBflBB8KBBBtl*BS#8 SVS49152 SVS5000O SVS50700 H_ " NAME " ^."NAME" *V-NflME" BOOT TEXT MODE ACTIVATE TURBO SAVE TURBO LOAD NAME SAVE NAME VERIFY NAME # ft n it ft M ft t* ft ft # LES ALLAN ft 25TH JUNE 34 ft PYRAMID THE AIM OF THIS CAME IS TO hop around a pyramid whilst dodging the balls which rain down from above. Beware, especially, the blue ball which will hatcn into a snake after it reaches the bottom of the pyramid. The snake will chase you and can only be killed if you lure it onto one of the teleport discs situated at the side of the pyramid. Once you have landed on all of the squares on the first screen, you progress onto a new more challenging level. You commence with three lives and gain an extra life for completing screen one and then one for alternate levels after that. To complete each screen all the squares must be turned to the colour cyan; this is achieved by landing on the squares a certain number of items, depending on the level you are on. Level Method 1 land once on each square 2 land on squares twice 3 land once but square changes back if landed on again 4 land twice — changes back to halfway stage if landed on again 5 land twice but third landing completely undoes square Having completed level 5, you begin again at level one — but there are more balls to dodge this time round. The game includes three- dimensional graphics and a short machine code program to move the sprites more quickly. Instructions are included in the program and control is either with a joystick or from the keyboard. G4 Game Program Listing J FOPX-1T04 POKE49494»X0 NEXT 2 P0KE5328e.5 P0KE3328I,I1 3 PRINT-fc- 5 PI1ft»<34>.P<20>. '»<18> 9 PC*E33269 0 9 OOSU93000 10 M<1#J-- <\ 20 A«<11>-' 30 A*-* *0 Alii3>-* 45 Af<14>-' 50 Al<13»-* 55 A»<16>"- 60 Af»" 65 A«<10>-" re «i(i9>-- 72 A»<20>." 74 Af<21>"" 76 A*<22««" 78 flt<23>- _ 80 AJ(24>-- 92 A*<25»-- 34 A«26'-" 96 A*<2?'-" D-I«-I R-R-l rt»7 P0*E2047.14 00T0253 D-P'l H-7 P0KE2047, 14 GOT0233 D»D-| rt«7 P0KE2047.13 GOT0255 D-D*l R-R.| M-7 P0KE2O47-13 G0T0255 K /I I V I / \ N /\ /I I VlVI Al/NlA ✓ *✓ V \ K A A --_ N ,A /N /-^ /\ -1 30 At<29>-" I VlVlVlVlv I 32 A»<»>«" A I A I A I A I A I A 93 AK31>"" ^ V V V V V \ 34 Af 32'"" K /\ <\ /-\ ^\ /\ /I 35 A*<33>"" I V I V I V I V I V I V I 36 At<34>"" \ I A I A | A | A I A I - 100 FORMS- IT 04 COSUB300O0 t4EXI 102 F0RX-1T06 FOliXtllf H P0» E53287»X-4 NEXT 103 OOSUST.W0C 103 Jf"-C" JK8)»"C* »(!>■■£■ /»<2'"'E- 110 J»(3>-*Q" J»<9>-"Q" Ji<4>-*Z" J8<6>»"2" 115 OX-156 OY»53 SH"7 SN-12»INKRN*i<0>48> 117 print-ojtress any «ev to begin- 118 OETW IFM---TMEM18 120 DR-3 DL-4 BH-3.9 NL-3 0050*2000 150 WC-54272 P0KEVC*24. 13 280 Fi>E33248'SM*2.0X POKE53249»SN*2,0V REM POSITION SPRITE SM 205 IFrfTHENFS'l M-N-I G0T0233 207 I FFS" 1 THENOOSUB700 210 GETAf IFA*O-"THEN220 212 «-J«<.PEEK<36320>AHDI5>-5> 214 !FA*'--THEN255 220 IFfl*«-0"THENP0»E4?42224 PRINT" 230 IFA»--2' THEMPC*E4?422.6 PRINT" 240 IFfl(.-E*THENP0KE4?422. 17 PRINT 230 lFfl!""C"THENP0KE43422 ■ 1 PRINT" 235 BC-BC'l «P 0»KG0SU»33e. 338,330. 370.400.410. 430. 390. 450 270 A-PEE*'53278> 308 SVS12*4836»16 REM MOVE SPRITES ?10 IFPEE*<3327S>AND128THEt<-1THEN: ' -8N-1 332 IPBHD S«"St*SI« V7-VRL R7-INI'RND< 1 >».3> 337 NX-1 RETURN 338 IFMX-OTMEHRETURN 33? P0«E53248'V742.140«32»*7 P0KE53249*V 7*2. 83 340 P0RE33269.'PEEK( 33269 >0R2tV7 342 RETURN 338 F0RX-lT0LENSP-VAL> 333 IFSPrHE-*-0"E4*4&8-SP42. 1'7*IN1«2> 355 NEXT 360 RETURN 370 lFV*l*2l 372 SW-SM-I IFSM-- 3THEMPOKE2040. 1 92 P0HT53287.3 373 IFSM04THENRETURN 374 POKE2O40,15 P0KE53287.6 376 SP"INTIRND< 1 )*2> SD"I 378 POKE33248.140.32WSR P0KE53249.85 P0KE33269.P££K<33269>01!1 SR«$R*2*4 RETURN 390 JFSH<-2THENF->E33271.1 P0kE33249.P£EK<53249>-2l 400 RETURN 410 Sll-LEFTI'.S*,I> Sf-MIDf VH-VAL 413 IRVflT»4£NP0*E5?269.PEE»'33269>flNP(253-2tVfl^Sl.S-SL»*SI» *19 RETURN 430 IFSf04IHENRE tUPH 432 IFSH>0THENRAMNT*2> SR-SR*1-Rfi*2 SD-SD-I POKE49400. I*RB»7 RETURN 434 IF$H>-3THENRETURH 436 PV-l IFSD>D0PSD>4THENPV-PV*I6 SD-SD-2 438 SD«SD-1 IFSR.'4.2«R-PTHENPV-PV»7 SP-SR-2 440 SR-SP-1 442 P0»E4946&PV RETURN •>"* BC-0 FO>EVC'4,17 RETURN 580 PRINT-*! ■ 5*5 F0PXMT06 SVSI2*40?6«I6 NEXT 510 FGROD-1T03 515 ft>K*l 338 0NKGOSUB59B. 338. 350. 370. 400. 410. 430. 390. 570. 380. 380. 388- 388. 450 540 SVS1 2*4096* 16 543 IFK."0TMEN313 5!*--4&.t SC-Q_Eflex«oroi3 PO»E49407.x.O NEXT Ma'WN 1 333 POKE33269.F£D.I53269>AHD129 360 P0K633262. 136 P0KE53263. 53 0-0 C-0 PP I NT - Ij0— MM»WI WW 563 FM"I«-[HTSP*10'SD 372 IPNV«I03ORNV'— 6THENFOKE33269. 128 SP-99 ?«»1NT'PN0< 1 >»12*l2> J"J»I 360 FC«X-1T020 NEXT OETM RETURN 330 PH't"-l 00 TO? 32 €99 K* CMflNOE S0U8PES ^00 Ff^ IFR>0ANI* >I>T|4;N7O8 702 IF>DL«NI*':.DTHENIl»39 00'030t> 7t4 iFD-wftNOR.^ei-e'iPR-?? coTOsee "06 OOTOIOOO 708 PN-WD-i .. .-.F 789 IFD>3ORP;0TMENI000 710 OMLGOTO730. 880. 550. 900.950 "68 p^ P ' T 1n ■ 1ThEI * £TUP,, -. P-1 RE I UM PN'O P(Fto»i Mp-ND-l RETURN ?;0 fi ETUPfH 938 IPP'PN)=1TMENS70 960 PRiNT-^ntir «tin smiwmr p(PN>-i 963 ND-NIt-1 IFNP-2JOOTO2800 969 RETURN 878 PRINT" *Htl Ml IUW * TTMC p(PH'^ 975 NDWD-I RETURN 900 CNP'PN>G0T09ie.928 983 pt:n" i i— ■ n 1 1 * ■ ii— i > i wm 918 PRINT"^**«B^ TMII nmco^TW. F 915 N0"ND*1 IFW-21TNEM20O0 917 RETURN 920 'RINT-J Mlil iJ'JIIIg'iTinMll^irro 338 ONPtPN>OOTO96O 970. 953 print ' ^nivi^^am^rnnMB* : r tat . p«pn>-i return :ri-mr Blll«*l* TTW. P-2 965 1P"ND*1 IFND-21TMEN2000 967 RETURN 978 PRINT- Hill >illl lim r TTIII P*3 M-0 RS-8 RETURN 1840 PPINT'^IOU «FE XfDI" 1043 POKE33269.0 IfBe L-L»3»H PRINT "»"T"J REACHED LEVEl'L 1035 SC«304iND«L*ie.5»(L»»'L-l>»6W) ?60 PRINT-VOUR SCORE UWS'iC ■MS -*!-0 F0RX«1T04 HS«HS-P5n '49494.X)H8T'8-X*2> "5 " 1070 :CXC-MSTHENPPIHT"THE MI0-( iCORE 1S"MS GOT On 00 1080 P»:'<"-CONC*ftIUlft'IONS VOU HWT uaWPED PLL THE0THEP- : a MP BECOME THE 1090 F*IM> VPREME NOSER I" !092 FOPX-ITOJ 1093 v-nmAJS'SctOKe-xiz**^-*" PO*E«&*H»>: v sc-sc-v«io»3THENL-I l**u- ! BN-5.8-:-ero28 p-e next 2020 "INT'l- FORX-18T033 P*H.' •MTMO') >IEXT PRINT"»»»»I"«»' M 2030 0R-3 X»4 MP»0 ;04,1 '1L-I.L-. _ -"-It.T L ^ ■ i.i'Ti jWO PPINT'niNJ'PUCTIONe- 3010 PRINT-MHOP PiOUF THE PVRfiMIP TURNING ~-€' 3020 PRINT-TOP P«CE : c E'-CRV CUK CVHN. ' .^030 PRINT"*1HE PLflTFO*'?i AT THE SIDE OF TIC P^^lf - ;O40 PRINT'NRE TELEPOPT IC^DS WHICH SENS VOU TO" 3eT0 FF INT* THE TOP OF THE R«-"-l*!&. T HEV CftN OHLV" 3O60 ce IMT'BC USED ONCE E«H - USE THEM TO LURE THE* ■ 3070 FFI«T"SNHKE TO HIS DEATH. " ?O&0 PRIHT-tJVOU MUST AVOID THE SMAdE ^"II* T>€ ■ MM PPINT-EOU'iCINC< BALLS TO SURVIVE. ■ 3093 PRlHT-ajSE t£VS 0-2.E.C TO MOV'E" 3097 PRIHT"OR A JOVSTICfc IH CONTROL PORT 2 3100 RETURN DATFU3.7.I3 OATAOO- 0.0-1 DATAO. 0.0,0. 3.0.0 9.0.0 I*T«0, 0.0.0. DA TAP. 126.0. DATA241>2-2- DATA136.I 2f DAIAO. 127,0. 9,60.i 3.231 1.231 5. 0.O ft r t ,0 DATA36. 0.O. 36,0 0 36 MM9 DAIfl0. 0,33-0. 0-41. 128-8 30818 DATB14,7,3 3001! DATA8. 0.0. 0.0.0.0 30012 PATAO O.O'O.O'O'O 30013 DATA0. 0.0. 0.0. 60.0 30014 DMA0. 126.0. 30,223.0.63 30815 DATA! 43. 128. 127.223. 128.57. 25' 30016 DATAI28. 0-255 129.0.233,0 30817 DATA8.234. 0.0. 124.0.0 30018 DATR36.8.0,36. 0.8.36 30819 DATA8.0.236.0.I.I48.O.0 30020 DATA15.I.2 MMl KATAO.O.O.O-O.O e 30822 DArf*. 0.0. 0.0.0-62 :-O023 DATM0.O 233. 128 3 233.224 i>?025 Wf-i 3. 240. 15.233.248. 13 248.31.233.232.31.233 ?8026 DATA232. 31. 233. 2-2 31.233. 232 30027 DATA31.233.252.15 233. 248. 13 3P028 DATA233. 248.7. 233- 240 3. 233 30029 DATA224. 0,233- 128.0.62.0 0 30030 TATA192.0.3 38031 PATAO. 13.0.0.23. 128-0 300 32 DATA63. 192- 0. 102. 64. 0.224 30033 DAIA64. 0.224. O.O. 230.0 :O034 DATAO 233.128 0. 1 12. 192.0 30035 DATA216 . 192. 1 128 I 128 30036 DAFA0. 1.150 0.0. 243.0 30037 DATAO. 223- 128. 1,177 128-1 30038 DATA139.0- 1.129. O-0- 199 30839 DATA0. 0.97, 128,0.63,0.0 49999 REM SPRITE SET UP 38000 READ DN RE ft DSN READCO rOOI0 FORX-OT063 READN P0KEDN464.X H NEXT 30026 POXE2O40.SH DN P0*E33287*SN. CO 30030 RETURN ■3O00 CS-0 F0RX-1T048 READA 35020 CS-CS*A P0KE49167'K.A NEXT 55040 IFCS<^6798T»4ENPPINT"ERR0f 1M DATA LINES 6OOOO-6O03P- 3 TOR 36OO0 F0PX-0T015 POE49406 --: 0 NEXT 56010 CS-0 F0PX-IT064 RE ADA 36030 CS-CS'A P0KE49423«X.A NEXT 36040 !FCSO9S9;THENPRINT"ERR0R IN DATA LINES 60O40-- RETURN DATA162, 233.232. 224. 16.240.40. 189, 0. 193 . 195 . 16, 193. 201 68010 DATH133.240.24|.24,l23.0.20e.36.233 128.137 O.208. 232. 185 60820 DAT* 48.193.24.125.0.200.56.233.128,137 0-206 234 253 "98 NIM4D.1 IFND-21THEH2OO0 -^0 FE"L*H 808 OHP'PN'GOTO810,82O 6O030 DATA192. 76. 19. 192-96 60040 DATA133.131. 130.131/131. 130-131.133.125 60038 DATA126. 123. 125. 126. 123 133. 133. 133. 121- 130. 1 31, 131- 130 60066 DATA13I -153.125. 126. 123- 125 126. 123 133- 153. 153. 117. 123- 130 919 print- rr-^nir -urn ■^iMtrvr^rr 915 NT- Nil* | IFHP.21 TMEN2OO0 917 4ETURN rmr. P(PH)-I RETURN Ml". P'PN>-2 60870 DATA136.144. 158. 153. 1 17 123 . 130. 1 36. 144. 138-133. 153.153 60080 PATA106-1I2I20. 126. 133. 139.133, 106. 112 120.126.133-139,133.153 READY. E GRIPPING STUFF id OVER THE LAST FEW DAYS I have been using some of the old favourites along with some of the newer joysticks. As usual with reviews now a stick feels is a personal thing and what one person thinks is great another may think awful. Some of the comments regarding reliability are based on my experience working at one time in a retail outlet and so I have a good idea aboul whether a joystick failure was a one oft, or tends to be common in that particular type. I have dealt with them in the order they came to hand and not in order of preferance. Each joystick I have reviewed I have taken to pieces in order to see why they failed or survived. This dismembering was only tried after I had used them in order not to ruin them if everything shot out at 90MPH and lodged itself into the walls. I tried each joystick with an arcade game of the JETSET WILLY clan, a Drawing program and the fantastic INTERNATIONAL SOCCER cartridge which is sometimes available from Commodore. The toughest test for each came when they were used with an Olympics type game where they needed to be whipped from side to side in order to make the runner run. I feel that this was the ultimate test and that this type of game is unfair to joysticks anyway. If a joystick failed in this part of the test I will make it clear. Price seems to have no bearing on strength it would appear, and the only guide I could find was the prettier they are the easier they are to break. Quiclcshot 1 & 2 We sold a lot of Quickshot 1s in the shop and it seems I counted them all out and I counted them all back in again. Unlike harriers these were nearly all faulty. It seems you either love them or hate them. Personally I hate them. Some retailers say they are reliable others say they are not. I say they are not but would like to be proved wrong. When they started coming back in their droves I pulled one to pieces and the weak spot was at the bottom of the shaft. There is a small ring of plastic which actually pushes ontp the cheapest switches I have seen. This ring of plastic, in all the returned joysticks, had broken and, strangely, all had broken on the left hand side. The rest of the joystick was fine; the rubber suckers at the bottom made one handed operation easy and the contoured handle felt smashing. They were easy to hold for two handed use and were nicely packaged. It was just a shame they did not last. I did get hold of a new one for review and it broke (during a winning 100 yard dash). Same fault, same place. Life of that Quickshot. ..about 20 minutes. Then came the Quickshot 2. This one lasted a little longer; about another ten minutes. Could it really be the same fault? Never. One screwdriver and a cut finger later I was pleased to see it was not. The dreaded piece of thin plastic had been replaced by a (humping great ring of thick Klastic. Tne cheapest switches I ave ever seen had been replaced by the second cheapest switches I have ever seen. They had I am afraid suffered terminal metal fatigue. The switch was a piece of very thin gauge metal with four prongs. The prong which switched to the left hadbroken off and the 'UP' prong was nearly off. The other prongs had signs of hairline fractures. The rest of the joystick, like the Quickshot 1, was smashing. The rapid (cheat) fire button was great, the contoured handle was brilliant, but I still could not turn left. I look forward to being sent the Quickshot 3. I also pledge to review it with an open mind. Kempston The Kempston has been around a long time now and still seems to be a favourite. They are strong and very well made and have a quality of finish rare on most joysticks. I find them uncomfortable to use and would not like one myself but many would agree to differ and so I would not criticise it. A lot weresold in the shop and, to my knowledge, not one has been returned. I can't seem to get comfortable with the fire buttons. The price is good and, as I have said, the quality of the finish is the best of all those I have reviewed. I can see the Kempston continuing to sell well; no frills with it but a stayer, it is totally black except for the enormous red fire buttons. The Cambridge joystick Quite different to the standard breed this one: at first it was only available with an interface but now just the joystick can be purchased to use with any console that uses the nine pin plug. As can be seen, it is a different style and at first glance would not seem to bp suitable for the fast shoot'em up type games. I used one with a Spectrum at first and al- though they are not perfect they do perform well. Tney are self-centering and once you have got the hang of the small degree of movement they are a treat to use. The metal shaft is strong and they lasted through all the above games. When I worked in the shop we sold quite a few of these and only had one returned. Thiswasdue to poor soldering on the inside of the stick, which was easily repaired. When I had finished I looked at all the others but it seemed to be a one off fault. They are made from a hard plastic, are very strong and withstand almost anything. They come in an enormous box which swamps the stick but this is due to the fact that the same package is used for joysticks which are sold with the interface software. Hardware Review This joystick comes into its own when used with drawing type software. Because you hold the stick as you would a pen or pencil it is possible to be very precise when drawing in high res mode. Not so easy with a big stick of the standard type. There is another joystick available which looks exactly the same as this one but it is not self-centreing. That does not sound too bad until you come to use it, and believe me it's a pig. If this is the stick you would like then ensure you get the self-centreing model. As with the Atari the part that you hold does not look comfort- able but once you are used to the feel it is fine. It is without doubt a two handed job and attempts to stick it down for one handed operation have not been successful. It will stick down OK but, using it with one hand, it is uncomfortable as well as difficult because your wrist keeps touching the fire button. The price is good and it is a well maae stick which looks practical and performs well and from my experience is very reliable. As we are on the biect of reliability I will now al with the two baddies of su dea the bunch. The BOSS 'The Boss is here' so the box says. This one feels very heavy and sticks quite well to the sur- face mainly due to its own weight. Its external design, ex- cept for the single fire button, is similar to the trusty old Quickshot 1 but the similar- ity ends there. It lasted the course and I was blisterless. The contoured grip turns on its stem and I found that most disconcerting. It is strong and its internals seem to confirm that. I still cannot decide where it gets its weight from. When I opened it up (expected to find a lump of metal but it was not there. What I did find however were the strongest hunkiest leaf switches I have ever seen. I feel confident that this one will continue to work for a long time. The casing is as strong as any of the others and it looks good in its grey and black coat. The fire button was not the most pleasing I have used and did not seem very positive at all. There was no click to it. I think it would be a good alternative to the Quickshot if you really want that type of stick, and it appears that it would give you a lot more service. Due to the rotating shaft I did find that it was possible to find yourself going the wrong way but after getting used to it I found it less troublesome. For some reason I was left feeling unexcited by this one. Super Stick The Super Stick looks like a joke. Its stylish box says it is built to endure longer than most joysticks and boasts a one year LIMITED warranty. When I had taken it from its box I had to stop laughing long enough to try it. It looks foul, phallic and inferior. (I was proved wrong). The SUPERSTICK is pretty — just like the elephant man! It would look better if the colours were reversed. I couldn't take their claims for it being strong seriously at all but it survived. I pulled it apart and was amazed. There was almost nothing in it that could break. Its internals should be a lesson to all joystick manufacturers. The switches are balls of metal sunk into plastic stems. The contact is a massive metal plate with arms cut out. I put it back together and plugged it back in and tried to break it. I couldn't. I pulled it to pieces again tosee if it had suffered. Not a mark. It still looks foul and it still looks phallic but it is definitely not inferior. If strength is more important to you than looks then have a look at the SUPERSTICK. It has only got one fire button. It slidesaround the table like it has got a mind of its own; the non-contoured handle slips and it looks funny but I challenge you to break it. Nice one. Great for kids and gorillas. The ZipStick The ZIPSTICK is another that stood the test of the Olympics. It is advertised as strong and it is. The central shaft of the stick is a solid metal bar. A large coloured diagram comes with this stick showing it's internals but I still felt the need to get inside myself. Everything was tight inside and well fitting. I could see the solid shaft and I was surprised to see fairly standard leaf switches. The way thev were placed though and the mechanism of the stick itself made them potentially a lot more hard wearing. Again this one is a no frills stick out it was very responsive and quite unforgiving. It is more comfortable in use than it would appear and it was very clunky. Tne clunks are noisy but they do sound METAL. A couple of people who have seen it have also liked it and commented on how strong it was. This is another one that I tried to break. I succeeded in smashing my knuckles against the computer console and that was the only damage. It seems a little expensive but it is so well made that the cost seems justified. The fire button is on the base of the stick and is a little difficult to use if you are using it hand-held. My fingers would not quite reach up to the button but if you fix the stick down there is no problem. The coffee and cream colouring look nice and blend in well with my bruised knuckles. Cheetah Well then, that's the lot. You may have made up your mind as to which you would like. I have. If I was going down to buy a stick today and could choose any of these I think I would go for the ZIPSTICK. It's a little on the pricey side but worth the extra. If my funds were limited then without any doubt I would choose the gruesome red and black monster that goes by the name of SUPERSTICK. I ask myself why but I don't know. It's just so strong. Before ending this article I should mention that a new type of stick has just been announced. At tne time of writing it was not available for the 64 out it's release should be only days away. It has been released for the Spectrum and from what I understand it has had rave reviews. You may have gathered that I am on about the new infra red joystick from Cheetah. No leads on this one just pure infra red light. It is supposed to have a wide angle of light spread so that when you and the joystick dive to the left to avoid that last Galaxion it should still respond. I am sure that this one will soon be reviewed in this magazine so if you are thinking of spending about £30.00 on a stick (I believe this will be about the trice) then this may be worth anging on for. I wonder if it will interfere with the video recorder remote control? E Submissions YOUR BEST INDEPENDENT COMMODORE MAGAZINE SO YOU OWN A COMMODORE? SO YOU'VE WRITTEN SOME PROGRAMS? SO WHY HAVEN'T YOU SUBMITTED THEM TO US? Your Commodore is always on the lookout for new material for publication and we know that there are thousands of intelligent, literate, innovative and creative Commodore owners out there, so why don't we get together? It you have written an exhilirating game or an invaluable utility on your Commodore micro, share your talents with us and our readers by submitting your efforts and the form to the address below. All articles should be documented and type-written and should be accompanied by a printout of the program as well as a copy of the program or\ cassette or disc. All publication, it wiil be returned to you. You may not have written any software yourself, but you have very firm opinions about the world of Commodore and all tneir attendant industries and products. Then put your opinions on paper and post them to us, again at the address below — you never know, you might even get paid for airing your views! All submissions should be sent to: The Editor Your Commodore Argus Specialist Publications Limited No 1 Golden Square 44 L ★ PLEASE COMPLETE IN BLOCK CAPITALS Your Name Program Name Computer/memory size it runs on Amount o( memory program occupies Other computers/memory size which your program runs on without conversion or use Does your game need or use joysticks? Yes No Have you sent your game to another magazine Yes No Is it original/or a variation on a themef Your Address Telephone Number Times to contact you If an advertisement is wrong we're here to put it right. If you see an advertisement in the press, in print on posters or in the cinema which you find unacceptable, write to us at the address below. The Advertising Standards Authority. ASA Ltd. Dept 3 Br'ook House. Tomngcon Place. London WC1E7HN VIC-20/CBM-64 SOFTWARE HIRE FREE MEMBERSHIP!!! * A vast range of fine quality software * Prices from 60p per week * Comprehensive Membership book/catalogue * All tapes (guaranteed) originals * Free monthly newsletter Send 2 x 1 7p stamps for your Free Hirekit. Absolutely no obligations. Try us, you've nothing to lose! VSH (V), 242 Ransom Road, Mapperley, Nottingham, NG35H J N.B. Please state which machine COMPUTAPE'S DISCOUNT SOFTWARE Take a LOOK at our very competative prices and great variety in tapes from the leading software houses. Many more available. COMMODORE 64 BSP Our Price Aiaoian Nights Interceptor £7.00 £6 .80 Asiro Chase Statesoft £8.96 £7 80 Automama M.kro-Gen «■« « 80 Beach Mead US Gold £9 96 £8 50 Bear Bower Art* MM £6 90 Black Haw* Cieative Sparks £7 96 £6 90 Boulder Dash Statesoft £8 96 £7 80 Bristles Siaiesol £8 96 £7 80 Catacombs Anirog £7 96 £6 76 Chuckie Egg A & f So«**» £7 90 £6 60 Cuddly Cuban Interceptor £7 00 £6 90 Cuthbert in Space Microdeal £8.00 (6 80 Cybotron Anirog £7 96 £6 80 Daley Thompsons Decathlon Ocean £7.90 £6 50 Decathlon Activision £9 99 £8 70 Encounters Novagen £9 96 f B 50 Evil Dead (The, Palace £6 99 £5 90 Fhp and Flop Statesoft £8 95 £7 76 Football Manager Add.ctive Software £7 95 £6 50 QIMgani Gold Ocean £6.90 £6.76 GlugGlug CRL £7.95 £6 75 Harera.ser Prelude Haresoft 18 95 £7 50 House of Usher An.rog £6 95 £5 80 Hulk' The A/lnternei-onal £9 95 £8 50 Jack and the Beanstalk Thor £6 95 £5 80 Mtcro Olympics DataBase £6.96 £4 80 Monty Mole Gremlin Graph.cs £7 96 £6 70 Myst.c Mansion U S Gold £8 96 £7 90 Panic Interceptor £7 00 £6 BO Petch Anirog £6 95 £6 70 Pitfall Acliv