WOA: Pulsar's Power PC BOARD FOR THE A500

Volume 5 No. 6 June 1990 US $3.95 Canada $4.95 Your Original AMIGA* Monthly Resource

Programming: Object-Oriented Programming in C++ * Amiga Turtle Graphics APL: Primitive Functions Convergence:Hi Quality Version Available on AMIGALAND.COM Part Five In The Fractals Series Productivity: WordPerfect Macros ^ . Reviews: DigiMate ill ™ PageStream 1.8 Hardware Project: 1 RAM Expansion For Your A500 PLUS! CBM'S Multimedia Launch Of The A3000 Workbench 2.0‘s Display Modes

07447074710906 CONTENTS

INSIDE STORIES Cherryware 39 by Julie Petersen Extend your vocabulary with computerisms that define products and describe characterstics associated with their use.

World of Amiga, New York 47 Commodore, over 40 other Amiga vendors, and more than 15,000 Amiga users gather for a special two-day event.

Commodore's Launch 81 CBM defines multimedia as it presents the Amiga 3000.

Workbench 2.0 87 Hi Quality Version Available on AMIGALAND.COMDisplay a la mode.

PROGRAMMING Amiga Turtle Graphics 57 by Dylan McNamee graphics and programming Convergence 41 with a LOGO-like by Paul Castonguay graphics system. Part Five of th e Fractal series. Pulsar's POWER PC BOARD makes your Amiga 500 PC-compatible. Read about this and other newly C++ 51 released Am iga products in our by Scott B. Steinman, O.D., Ph.D. article, World of Amiga, New York An introduction to object-oriented HARDWARE show coverage, page 47. Amiga programming.

Rapid Fire Joystick 21 APL and the Amiga 69 by John lovine by Henry T. Upper!, EdD Build a rapid fire joystick circuit for game Primitive functions and their playing on the Amiga. execution.

The AM 512 3 5 ALL j j P by James Bentley LISTINGS Upgrade your A500 to a 1 ON megabyte machine. DISK TUTORIALS AND REVIEWS

PageStream 1.8 14 Snapshot 23 by John Steiner by Brad Andrews Putting SofRogik's desktop publishing A look at Broderbund's Typhoon package to work Thompson, Accolade's Day of the Viper, and more. 18; WordPerfect Macros 18; fyp by Mike Hubbartt Create time-saving Snapshot- m acros in W ordPerfect. Virgin Mastertronic Commodore President takes on another Harry Copperman Mail Order Macros 20 Parker Brothers speaks a t World o f by Armando Cardenas gam e, Risk. A m iga, New York. Address envelopes using WordPerfectHi Quality Version Available on AMIGALAND.COM macros. BugBytes 29 DEPARTMENTS DigiMate III 31 by John Steiner by Frank Me Mahon A new VirusX upgrade, some bugs Animation comes to DigiPaint. with WordPerfect, and still no answer from Intuitive Technologies. Editorial 4 Pipe Dream 88 by Miguel Mulet PD Serendipity 74 Letters 6 As a plumber, your job is to control the by Aimee B. Abren excess "flooz" being produced by the Highlights include virus checkers, an Acme Chemicals Co. encoder program, and a 200-page Index of Advertisers 80 C M anual. Battle Squadron 88 Roomers 76 Public Domain by Tony Preston by The Bandito 93 Your mission is to eliminate all Barraxian The rumors are getting hotter as the life forms and rescue your comrades. days get longer.

The Com m and Line 78 by Rich Falconburg Another look at a public domain COLUMNS shell program . COVER PHOTO by New Products 8 Ernest P. Viveiros. Sr. The gam e of Harmony, T.F.M.X. C Notes by the C Group 82 Soundtool, and the Amiga TouchDriver by Stephen Kemp system. Linked lists & doubly linked lists in C. m i i G A KNOWLEDGE Amazing Computing For The Commodore AMIGA''

ADMINISTRATION P u b lis h e r: Joyce Hicks Assistant Publisher: Robert J. Hicks MACHINE Circulation Manager: Doris Gamble Asst. Circulation: Traci Desmarais Discover the power of the Amiga with Corporate Trainer: Virginia Terry Hicks Traffic Manager: Robert Gamble international Coordinator: Donna Viveiros Resource™ Marketing Manager: Ernest P. Viveiros Sr. Programming Artist: E. Paul Intelligent Interactive Disassembler EDITORIAL for the Amiga Programmer Managing Editor: Don Hicks Associate Editor: Elizabeth Fedorzyn Hardware Editor: Ernest P. Viveiros Sr. / Resource will enable you to explore the Amiga. Technical Editor: J. Michael Morrison Video Consultant: Frank Me Mahon Find out how your favorite program works. Change Copy Editor: Aim ee B. Abren annoying features. Examine your own compiled code. Copy Editor: Derek J. Perry Copy Editor: Greg Young Art Director: William Fries / Load/save any file, read disk tracks, or disassemble Photographer: Paul Michael directly from memory. illustrator: Brian Fox R ese a rch & / Automated symbol creation: Editorial Support: Marilyn Gagne Production Assistant: Meiissa-Mae Viveiros JSR -$1E(A6) becomes JSR _LVOOpen(A6) MOVE! #$3EE,D0 becomes MOVE! #MODE_NEWFILE,D0 ADVERTISING SALES Virtually all Amiga symbol bases supported. Advertising Manager: Donna Marie / Now supports user defined symbol bases! 1-508-678-4200 1-800-345-3300 FAX 1-508-675-6002 / Single-key torward and backward referencing makes Hi Quality Version Available on AMIGALAND.COMfollowing subroutines easy! SPECIAL THANKS TO: Buddy Terrell & Byrd Press Bob at Riverside Art, Ltd. ✓ Special support for base-relative addressing. Swansea One Hour Photo Pride Oflset, Warwick, Rl / Many files may be successfully reassembled directly Mach 1 Photo from Resource output. In a trial disassembly, "Preferences" was disassembled, and the resulting

Amazing Computing™ (ISSN 0886-9480) is published monthly by source code assembled into a working program, all PiM Publications, Inc., Currant Road, P.O. Bos 869, Fall River, MA in under 15 minutes. 02722-0869,

Subscriptions in the U.S., 12 issues (or $28.00; in Canadas Mexico ✓ if you’re serious about disassembling code, look no surface. S36.0Q: foreign surface lor $44.00. further!

Second-Class Postage paid at Fall River, MA 02722 and additional mailing offices "Resource is fully-featured and flexible... Everything is fast. The program is astonishing in many ways. POSTMASTER: Send address changes to PIM Publications Inc,. The massive size of its internal tables boggles the P.O. Box 869, Fall River, MA 02722-0869. Printed in the U.S.A. Copyright© May 1990 by PiM Publications, Inc. All rights reserved. mind. I admire the remarkable accuracy with which it makes intuitive guesses at the nature of certain bytes." First Class or Air Mail rates available upon request. PiM Publica­ — Jim Butterfield, Transactor Vol. 2 #5 tions, inc. maintains the right to reluse any advertising.

Pirn Publications Inc. is not obligated to return unsolicited materials. Now shipping Resource V4.00 - Order yours now! Ail requested returns must be received with a Sell Addressed VISA, MasterCard, cheek or money order accepted - no CODs. Not available in relail stores. Stamped Mailer. Circle 168 on Reader Service card.

Send article submissions in both manuscript and disk format with The Puzzle Factory, Inc. ycur name, address, telephone, and Social Security Number on each to the Associate Editor. Requests for Author's Guides should P.O. Box 986 be directed to the address listed above. Veneta, OR 97487 $95 Orders: (800) 828-9952 VISA AMIGA™ is a registered trademark o1 Customer Service: (503) 935-3709 Commodore-Atniga, Inc. Power Users, Jets In The Sky

ON A CLEAR AFTERNOON, IF YOU because it was what everyone else was However, we must determine how' you, look up at the sky, you can see the vapor using. We weighed die factors for and our readers, are using the /Amiga. There are trails of a passing jet. You may not see the against the Amiga and decided the Amiga two ways in which we can discover how' jet clearly, sometimes you never see tire jet wou id do what we requ ired better than any Amiga users utilize die Amiga. at all, but you do see tire disturbance it other computer. First, you can write us and tell us leaves in the upper atmosphere. You know what you are doing. If you have discovered the jet is there by the change it has made. D iversity Is TJje Issu e o fT ftis Issu e somediing w'onderful on the Amiga or have In much tire same way, we sense tire We termed this issue a “power user" used the Amiga in an interesting way, growing number of Amiga power users by issue because of the nature and diversity of please write us. We spend most of our time their level of interest in software and the articles we have included. For the searching for die unusual or important hardware. Power users show their activity programmer, there are three separate ways in which die Amiga is being used by purchasing accelerator cards, hard program listings in addition to our regular today. The best way to develop better users disks, and advanced versions of the latest columns. For the technically inclined, there on the Amiga is to let diem know how far software. We know they exist because they are two hardware projects. We have the Amiga has come, and where it is create elegant graphics and great programs included tutorials and reviews on headed next. that appear on public domain bulletin and graphics. And Our second option is to ask you board systems. Yet, very few Amiga users there is coverage of World Of Amiga, the questions. If you subscribe to AC, you may would say they are power users. Why are launch of the Amiga 3000, insight into the be one of the randomly selected readers these users so elusive? still incomplete Workbench 2.0, and more. who will soon receive a few' questions from Hi Quality Version Available on AMIGALAND.COMOne answer is diat often the really In fact, we have made this issue as diverse us on how you use your .Amiga. Please busy Amiga user has little time to fill out as possible to once again underscore our answer. Your answers will be combined reader response cards, or write letters to a level of commitment to Amiga power users widi those of hundreds of other /Amiga magazine. These people are busy creating worldwide. Now', we must request users to gain an insight into the Amiga on their Amigas. They pursue a challenge information from you. market and its needs. on the Amiga and rarely take the time to let Although you may be tired of anyone know what they have already Amiga Census '90 supplying similar information to the accomplished. The other answer is that all The major problem we have as a Census Bureau, diis information is also of us are power users. publication is discovering all the tilings our important. AC needs your responses to readers have done with dreir Amigas. We consistendy provide a publication useful to Being A Power User are continually searching for the stories and you. Your answers will help Amiga Each of us exploits the Amiga in one experiences that make computing on the vendors design and supply the type of way or another. Each of us pushes the Amiga different from that done on any Amiga products you need most. And you Amiga a little further in a particular field, other machine. wifi show us how' you, our Amiga power direction, or use than our fellow Amiga Amazing Computing has always users, are extending the Amiga’s owners. Some ofus enjoy word processing maintained that a computer magazine capabilities. on the Amiga and take our favorite word should be both an information source and People often ask you how you are or processor to the limit. Some users cannot a source of inspiration. This inspiration is what kind of day you had and never stop distinguish CI.I from BASIC, but are superb presented not by saying how great the to listen to your answers. Now you have an artists and create excellent graphics. Other Amiga is, but by demonstrating the Amiga’s opportunity to speak with someone who is users program, bur do so out of an greatness. We have never had a better not only interested in your views, but intellectual curiosity rather than a way to opportunity' to do this than now. With the reliant upon diem. make millions of dollars creating tire Great advanced Amiga 3000, the Amiga 2000 widi American .'Arcade Game. Some Amiga specialized hardware, and the Amiga 500 owners push themselves and their Amigas currendy equipped widi everything from Sincerely, in many different directions. hard drives to FC-emuIation hardware (see The Amiga is a tool. We chose this the “World Of Amiga” article on page 47 for tool to achieve our own goals. We Pulsar’s new announcement), die Amiga purchased our Amiga through a conscious needs no frantic flag waving. It needs Don Hicks choice. There was no one standing on the reporting. This is w'hat AC was created to Managing Editor sidelines directing us to buy this computer do and it is what we have always done. Now You

Hi Quality Version Available on AMIGALAND.COM

A Profcssiojifil 3D Animation Rendering System for tfie Amiga

For More Information Cali & £ //$ & 612*566*022 M/nc.

Circle 115 on Reader Service card. D ear AC: D ear AC: John Iovine used a single-ended 5 volt In response to Karl D. Belsom’s Your latest issue (April ’90) was Op-amp (by Images Corp.) for his article “Bridging the 3.5" Chasm” in April outstanding! It’s not often that I see a project. You cannot use an Op-amp 1990's issue, there is an easier way of using hardware project in a magazine outside of that requires a bipole poiver-sttpply ‘AREAD” to transfer files in mass from an Popular Electronics, and dais issue had such as the “741”. According to John , Amiga storage device to a Bridgeboard TWO, to boot! any dime or penny can be used, but the storage device. Which brings me to the dime works best because o f its silver First you place all die files you wish “Biofeedback” project bvjohn Iovine. First, content. (Although their silver content to have transferred in one directory’. Next I would like a clarification on die type of is quite small\ US dimes do indeed you use either PKAZIP or LHARC for die Op-amp used in the project, such as “741" contain silver.) While nickels and Amiga to compress them into one file. Then or whatever. Also, you might point out to quarters do contain some silver, dimes use die MS-DOS command “AHEAD” widi your readers that the US dime diat is found fit in the hand more comfortably. —-ED. theHi Quality Version Available on AMIGALAND.COM /b option (to keep the files full binary in pocket change is n o t made of silver. structure) to copy the file to the .MS-DOS About the only dimes made of silver diese D ear AC: storage area of choice. Then use the MS- days are found in collecdons, or high-grade You are truly Amazing! While I DOS version of eidier PKUNZIP or LHARC solder. However, diey are made of a generally7 do not write to magazines, 1 was (depending on which one you used to copper-ni ckel alloy that might do the job. If going to force myself to just to ask if you compress with) to decompress the file into silver is needed, one can get silver dimes wouldn’t devote an issue to comparing its original files. (well-worn, but just fine for our purposes) music sequencing programs. 1 am in die PKAZIP or LHARC for the Amiga are for a couple of bucks at one’s local coin market to purchase one but couldn’t afford compatible with their MS-DOS dealer. to buy all of them. counterparts LHARC or PKAZIP/ PKUNZIP One last thing: for those of you who Well what do I get in the mail but (the latter is two files in MS-DOS). With this aren’t programmers, here are die answers your March issue comparing ail die process it is simpler to run mass files across to Stephen Kemp's questions in April's “C sequencers. Thank you, Thank you, Thank the Bridgeboard than it is by scripting. It is Notes”: you! also just as easy to transfer files from the 1. Yes. A couple of questions remain. Will Bridgeboard to die Amiga in this manner 2. African or European? diere be an upgrade for MusieX? Master using “AWRITE”. An additional version of 3. W ho’s asking ? Tracks Pro sounds great especially7 if the file is that it would be considerably 4. One, but Who’s counting. Passport will eventually port Encore to die easier to send the information to anodier 5. Yes, and the Vulcan Death Grip, Amiga. Is this in die works? computer by modem or networking. too. 6. I told you once. Keep up the good work. Sincerely, 7. What ever you evant it to. Sandy Thompson Brian E. Cucksee S. Male or Female? Safety Harbor. FL Huntsville, AL 9- No, but I read the books, 10. None. Programmers aren’t afraid Regarding any planned upgrades to of the dark. MusieX. Microittusions stated, “If you send in the warranty card you ivillbe See you in the funny7 papers! informed o f the upgrade” plannedfor Jeff Grimmett this summer. We also called PassPort San Diego, CA (continued on page 13 ) With CanDoYou Can Do Just About Anything! You can make CanDo your own personal programmer. Just as you no longer hove to be a professional artist to create "Art)' well now, you don't have to be a programmer to create professional level applications! All you need is CanDo. Because creating a program with CanDo is as easy as drawing a picture with a paint package.

CanDo is a multimedia synchronizer. CanDo can choreograph digitized souncL.music... CanDo is an animator. Just Puint...Clidc...Use. graphic 01 video images in reoftime, by interaction CanDo lets you use any number at With ConDo, programming is incredibly easy. Programs or time. Deluxe Point III brash animations and can be created by simply pointing and clicking. CanDa's display them onscreen simultaneously. graphic interface guides you easily, step-by-step, through Hi Quality Version Available on AMIGALAND.COMthe m o tio n of your own applications.

CanDo has expandable power. Whelheryou're a beginner 01 advanced user, ConDo's powerful scnpling lan­ guage allows you to create the applica­ tions you want.

lo tio n s., .from presen­ tations to education to personal productivity, complete with buttons, means, windows and much, much more.

CanDo Is compatible. ConDo utilizes the files generated by a host of popular software packages. It w o ib with all Aiaigoresolutions,digitized sounds...and even supports ARexx. With tools like these, you really can do just obout anyltiing. The only limitation is your imagination. IVwcr Sut'tiitji HtrThr AmitJB Now too Con Win o ftfff TripTo the '. rtm/go '90 show Pi CanDo is a product of Irovatronlis, Int. Cologne,W est C e r m n y . 8499 Greervile Avenue Suite 2098 Dalles, Texas 75231 214-340-4991 See Year Part impaling Dealers and Distributors should contoct Southern Technologies, 800-647-7741 Dealer far Details. OCLLfXE MWT II is: todm rt of Bectonia ta . kxa is apyrghmf by Wlcm S. Hum. Circle 110 on Reader Service card. c o m p ile d b y E.G. Fedorzyn

SAFETY IN NUMBERS HelpKey Development, a new entry' in die Amiga market, recently released TJje Buddy System For DeluxePaint III, a two-disk set containing over 90 lessons that take die user through the many features of Electronic Among its many features, die Arts' DeluxePaint III. SOUND ADVICE T.F.M.X. Soundtool program pro­ By taking advantage of the Now being distributed by vides an intelligent note and con­ Amiga's multitasking Im tro n ic s is the T.F.M.X. trol panel, as •well as special ef­ capabilities, The Buddy System S oun d to o l, ;i new music editor fects such as vibrato, portamento, can be run at the same time as from Demonware of West Ger­ and echo. DPaint III, allowing the user to many, Consisting basically of The Imtronics package in­ switch back and forth between two parts—the editor (to input cludes 2 samples disk in addition the tutorial interface and DPaint Hi Quality Version Available on AMIGALAND.COMthe music data), and the music to the program disk. The T.FMJC. III. To find information, simply routine (to play back the music Soundtool runs on the A500, select the appropriate icon or data)—die program is designed 1000, and 2000, with a minimum menu item. Each selection re­ to provide users with die ability' 512K memory required. List veals a complete lesson that can to prepare complex musical Price: $79-95. Imtronics. 12301 include text information, a de­ pieces and sound effects and to South West 132 Court, Miami, FL scriptive picture, and/ora guided integrate them into their own 33186; (305) 255-9302. Inquiry demonstration. Tloe Buddy Sys­ programs. * 261 . tem also takes advantage of die Amiga’s built-in speech capabili­ ties, with spoken narration ac­ companying each lesson. All areas of die DPaint III program are covered, from the basic functions of the drawing tools to the advanced techniques of animation. Demonstrations of many practical techniques, such as use of textures, are also in­ cluded. The Buddy System For De­ luxePaint III runs on the A500, 1000, or 2000, w'ith 1 megabyte minimum memory and KickStart vl.3 required. List Price: $4995. HelpKey Development. 6671 West Indianatown Road, Suite56360, Jupiter, FL 33458, (407) 694- 1 756. Inquiry #262.

The T.F.M.X, Soundtool pa ck ag e. PRESENTING WORLD OF AMIGA IN CHICAGO ★ Starring ★ THE AMAZING AMIGA ★ Featuring ★ Amiga Hardware • Amiga Software Hi Quality Version Available on AMIGALAND.COMAmiga Accessories • Seminars • Bargains

Rosemont O’Hare Expo Center, Rosemont, Illinois October 5-7, 1990 Friday, Saturday & Sunday lOam-Spm

Pre-registration: $8 per day or $20 for 3 days Deadline for pre-registration Sept. 18

Registration at show: $10 for 1 day $25 for 3 days Registration includes exhibits and seminars.

WORLD OF Produced by World oi Commodore AMIGA Shows, The Hunter IN C H I C A G O Group

For more information call (416) 595-5906 or fax (416) 595-5093. -in iiimiiiHiiiiniiimiNHiiiiniiiiiiiii 11 GOLDEN BEAR ABROAD Accolade has released the third entry in die ir series of golf simulations created in as­ SOMETIMES YOU GOTTA sociation with Jack Nicklaus FOLLOW THE RULES Productions. Jack Nicklaus For C programmers out Presents the International there looking to push Blue Course Disk, designed ex­ Ribbon Bakery's Bars&Pipes clusively for use with Jack to the outer limits of music Nicklaus’ Greatest 18Holes o f composition, RulesforTooIs Major Championship Golf, may prove key. This compre­ takes the computer golfer hensive guide to tire ins and abroad to tee off on precise outs of Bars&Pipes is designed simulations of three champi­ to help users create their own onship courses designed by- Bars&Pipes tools from scratch. Jack Nicklaus including the Rulesfo r Tools, which is part of Australian Golf Club in Ken­ Harmonizing with A ccolade the Bars&Pipes Add-on Series, sington, Australia, the Saint includes over 100 pages of Creek Golf Club in Nagoya, documentation along with japan, and the St. Mellion Golf numerous source code ex­ & Country Club in Cornwall, INSTANTKARMA achieve ultimate harmony, by amples. Earth Day, dolphin-free gently pushing pairs towards England. To order Rules fo r Tools, The International Course tuna, and now this—a game each other with a pointer, or send a check or money order Disk will run on the A500, the object of which is not to "the seeker". Add to this non­ for S49-00 ($44.00 plus $5.00 1000, or 2000, with a mini­ annihilate objects, but to keep violent image a Mew Age shipping and handling) to them from destruction. Such musical score determined by mum 512K memory required. Blue Ribbon Bakery, Inc., Jack Nicklaus' Greatest 18 is the premise of A ccolade's the random touch and actions 1248 Clairmont Road, Suite Holes is also required. List The Game of Harmony, a of objects on a given level. If 3d, Decatur, GA 30030. Price: $21.95- Accolade, 550 game where players combine you listen very closely, you can Inquiry #265. South Winchester Boulevard, strategy and concentration in hear Rambo dying a slow an effort to maneuver like- death. Suite200, San Jose, CA95128, coloredHi Quality Version Available on AMIGALAND.COM orbs together before Ihe Game of Harmony (408) 985-1700. Inquiry> they explode with tension. will run on the A500, 1000, or #264. The game contains fifty 2000, with a minimum 512K progressively challenging memory required. List Price: levels randomly arranged $44.95- Accolade, 550 South REACH OUT AND windows simply by touching Winchester Boulevard, Suite with orbs which glide around TOUCH AN AMIGA the screen—without reaching, the screen while you attempt 200, San Jose, CA 95128, (408) MicroTouch Systems, orienting, or clicking a mouse. to gain points, and eventually 985-1700. Inquiry #265. Inc. has become the first Fully compatible with tire touch screen manufacturer to Amiga mouse, the driver also announce a fully integrated offers users an expanded Pref­ touch screen system for the erences menu for greater but­ Amiga. The A m ig a ton and cursor control defini­ ToucbDriver system con­ tion. sists of the MicroTouch The all-glass MicroTouch Screen (the company’s high Screen has a high resolution of resolution, analog capacitive 1,024 x 1,024 touch points, al­ touch screen), driver software lowing the user to easily point and optional monitor. The to any size icon or menu item driver enables all mouse- and to locate the cursor down driven software to work with to the pixel level. touch input. The Amiga ToucbDriver The Amiga Touch Driver site license lists for $395, and is the first to provide a two- the complete MicroTouch button mouse emulation Screen with controller sells for touch screen for the Amiga. as little as $350.00 in Original With the Amiga ToucbDriver Equipment Manufacturers users can, for the first time, (OEM) quantities. MicroTouch use a touch screen for any Systems, Inc., 55JonspinRoad, Amiga application. Users can Wilmington, MA 01887, (508) West Hollywood, CA's Trendy Melrose Ave.' is Indicated on the touch 694-9900. Inquiry #266. screen driven videodisc application at the LA International Airport. The select from menus, create system is run on an Amiga that has a MicroTouch screen installed an it. drawings, and manipulate O'*5?100,000 Satisfied Customers NOW EVEN LOWER PRICES!!!

kmODUII MEMORY / v y n c ^ (.KUn Min PROtMJtl’ilSX 28 MHz 68(13(1 33 MHz 68030 M501 A500 79.95 System Packages 28 MHz 68882 33 MHz 68882 Starboard 1MB 289.95 We customize AMIGA 2000 and with 4 MB o! with 4 MB of Starboard 2MB 399,95 AMIGA 3000 desktop video 32 bit memory 32 bit memory 1949.95 2549.95 8-UP with 2MB 289.95 systems to meet your individual 8-UP with 4MB 449.95 with 40 MB hard drive with 40 MB hard drive needs. Call and talk to one of our 2399.95 2899.95 8-UP with 6MB 599.95 system specialists to get the best with 80 MB hard drive with 80 MB hard drive 8-UP with SMB 749.95 price for your requirements. 2699.95 3199.95

HARD DRIVES VIDEO SOFTWARE GVP Hardcard/O 159.95 Flicker Fixer 469.95 Deluxe Paint III 89.95 GVP A2000-2/0 179.95 Framebuffer with I MB 749.95 Digi Paint 64.95 Magni 4004S Digi View 4.0 129.95 GVPA2000-8/0 199.95 with remote 1629.95 Digi Works 3D 79.95 HardFrame 219.95 MiniGen 189.95 Diskmanager MAC 79.95 Hardcard 40MB 499.95 Hi Quality Version Available on AMIGALAND.COMPanasonic 1410 209.95 Homebuilder’s CAD 119.95 Hardcard 80MB 699.95 Panasonic 1500 299.95 Lattice ++ 249.95 Hardcard 105MB 799.95 Panasonic Vari-Lens 39.95 Pagestrcam 2.0 179.95 Quantum Pro 40 379.95 Polaroid Freezeframe 1599.95 Prowrite 3.0 99.95 Quantum Pro SO 649.95 ProGen 349.95 Saxon Publisher 249.95 Qunatum Pro 105 699.95 Sharp JX-100 749.95 Soundscape Pro MIDI 109.95 SuperGen Turbo Silver 109.95 Supra 105/1000 1099.95 669.95 SuperGen 2000 1699.95 Supra 105/500 999.95 CALL FOR UNLISTED TITLES Supra 40/1000 683.95 Supra 40/500 599.95 Supra 80/1000 949.95 FDATA-10 FDATA-20 HP PAINTJET Supra 80/500 875.95 99.95 239.95 1099.95 Supra Wordsync 169.95 Government and School Purchase Orders Accepted.

Circle 116 on Reader Service card. InterComputing, Inc. 1-800-622-9177 2100 N Hwy 360. Suite 2101. Dallas, TX 75050-1015 Customer Service: 214-988-3500

InterComputing Deutschland Inc. InterComputing France Schonbecker Str. 55-57 Telefon: 0202/89155 34, Avenue ties Champs Eiysees Phone: (1) 42821603 5600 Wuppertal-2 Telefon: 0202/89304 75008 Paris FAX: (1)42806649

As always n r /rave the most 'customer friendly' terms; Sill $4,95 in com. USA: S50.00 min. order : MASTERCARD & VISA with NO credit card fee; in Tc.xas add 77r Sales Tax. $12.00 shipping to APOIFPO addresses. RMAtt required on all returns. All prices subject to change. VISA PAWNING OFF The DigiSoft program ■ AMIGA CHIPS, PARTS & UPGRADES • Eagle Tree Software is comprised of two inter­ •Fatter (Super) AGNL S 8372 -S99.50wi[hsifnple 10 minute step by step instructions, has brought Chinese Chess leaved components, Edit FREE Chip/Extractor valued at $15.95 at no charge, to the Amiga. Chinese mode and Prompt mode, • A501-512 RAM 589.50 • 255 * 4/100 $12.50 • A-500 H/D Power Supply $73,50 with the ability to swap be­ ■ I.3KicJcstanROM $27.95 ' 1 MEG X 1/100 $10.40 • A-2000 Power Supply 5149.00 Chess, Tl)e Science Of •8520 517,95 • 8362/64 549.95 • Amiga Diagnostician f*7 Si 1.95 W ar features the ancient tween the two modes at will provided. Using the Edit • AMIGA 1000 RI'.JUVENATOR PACKAGE • cousin of Western chess in mode, text can be typed, New P ro d u ct - The Amiga 1000 Expansion Board is now available with multiple 2D and 3D views, the following feacureslUtilizes the Fatter Agnus Chip, 1.3/1.4 Kickstart complete with sinuous river imported, edited, saved to ROM and New Denise • One Meg of Chip RAM* Clock-Battery Backup disk, loaded, and re-edited that divides the game board. • Simple Solderless Installation • 100% Compatibility with ail Products/ as required. Scripts from Software • Various Packages Available • S479.00 complete. The game includes several otiler word processors or levels of difficulty, clocks, The Grapevine Group. Inc. text editors can also be im­ 35 Charlotte Drive - (9M)35t-H4S on-line descriptions of FAX (914) 354-5696 ported. In the Prompt Wesley Hills, NY 10977 rules, pieces, notation and Send lor complete catalog mode, the text is display'ed. 1-800-292-7445 strategy, the ability' to print, The Prompt mode features Circle 147 on Reader Service card. save or load games, as well user-selectable fonts, and as the ability to create either the cursor keys, custom positions. Pieces TRAVELIN’ M A N Future Wars: Adven­ mouse, or joystick can be can be controlled with New' from Interplay tures to Time is the first re­ used to control the speed either die mouse or die Productions comes lease in the new “Cinema- and direction of scrolling, keyboard. Chinese Chess Future Wars: Adventures tique” system of graphic AutoPrompt supports will run on the A500, 1000, PAL and NTSC in both inter­ in Time, a graphic time adventures, whereby the or 2000, with a minimum laced and non-interlaced travel adventure game in interface utilizes a series of 512K memory' required. List modes, and high or low which the main character pop-up text and command Price.- $32.95. Eagle Tree resolution screens. The pro­ has been hurled back into windows, thus eliminating Software, P.O. Box 164, gram also features a full in­ die Middle Ages. After the need for a parser and Hopewell, VA 23860, (804) tuition interface complete claiming his luggage, he making die game ultra user- 452-0623- Inquiry *268. with menus and keyboard discovers an intergalnctic friendly. shortcuts. plot the horror of which Future Wars: Adven­ AutoPrompt runs on threatens to transcend tures In Time runs on the the the A500, 1000, 2000, or centuries. Your future (not A500, 1000, 2000, and 2500, Hi Quality Version Available on AMIGALAND.COMTOSS THE 2500, with a minimum 512K to mention mankind’s) with a minimum 512K TELEPROMPTER memory and Kickstart vl.2 depends on your ability to memory and Kickstart vl.2- Would-be talking or later required. crisscross through time, 1.3 required. List Price: beads rejoice! Now avail­ List Price: $295-00. solve an assortment of $49-95- Interplay Produc­ able from Australia-based DigiSoft, 12 Dinmore Street, puzzles, and battle the tions, 1575Corporate Drive, DigiSoft isAutoPrompt, a Moorooka, Brisbane 4105, various mutant monsters Costa Mesa, CA 92626, scrolling script prompter Queensland, Australia, 61- and alien storm troopers (714) 545-9001, Inquiry and text editor program de­ 7-277-3255. Inquiry =269■ that one tends to befall *267. signed for television script •AC* during extended periods of prompting and information time travel. display's.

688 Attack Sub List Price: $54.95 Electronic Arts Barney Bear Goes To School The Legend of William Tell 1820 Gateway Drive List Price: $34.95 List Price: $39.95 Other Pro San Mateo, CA 94404 Free Spirit Software Electronic Zoo (800) 245-4525 P.O. Box 128 3431-A Benson Avenue Inquiry #271 58 Noble Street Baltimore, MD 21227 Kutztown, PA 19530 (301) 646-5031 Received (215) 683-5609 Inquiry #272 Inquiry #270 you can check your facts firsthand. Thank D ear AC: SPOC DIGEST you very much for your time. I am having fun with Robert D'Asto’s Magazine-type demo disk Ham Bones, the Ham_Toy program on Sincerely. page 73 of the April 1990 issue of Amazing Marco Papa Computing. As he states, there is no Useful programs, fun and games Felsina Software provision for saving a picture that you have from around the world plus drawn. 1 am using GRABBIT, Discovery interesting articles, news and ideas Dear AC: Software, [to] print or save any screen, from for your AMIGA. Contains much Imagine our surprise to read in Cletus any program anytime. I can save a screen more than magazines costing Baker's review1 in your April 1990 issue that drawn with Ham_Toy and save it with $15.00! Also, info on our SPOC only Online and Baud Bandit commercial GRABBIT, then I load the screen into DIGI PAINT, New Tek incorporated. Once DISK, along with free programs terminal programs and the shareware JRComm have the ability to do file transfers loaded into DIGI PAINT, I can manipulate from this disk. Just send $5.00 to with the ZModem protocol. This will come the picture whichever way pleases me. help cover the cost of this ad to: as a shock to thousands of A-Ta!k III users I dislike using a program where one who have long been transferring files with spends a lot of time drawing a picture and SPOC ZModem. ZModem Resume and ZModem then cannot keep it or work on it at another BOX 299 Remote, and doing ZModem batch time. [M]y suggestions above make the KIOWA, OK 74553 transfers of binary files with a simple, Ham_Toy program more worthwhile. Circle 112 on Reader Service card. menu-supported command. I assume that in Baker’s search for the Sincerely, terminal program, by examining mostly Herbert H. Starkey (continuedfrom page 6) freely-disiributable software and “the more Salem, OR Design, Inc. in regards to your inquiry expensive commercial versions”, he simply about Encore. East Coast Regional overlooked A-Talk III. In fact, every feature —We have tried to contact Discovery Sales manager Joel Heppting said he praises in Baud Bandit is matched or Sofhvare since late last year, but the Passport is now developing Encorefor surpassed by A-Talk III. phone has been disconnected. Since we the IBM and Atari ST. The next For users who have been mislead by are unsure if GRABBIT is Still available development will probably be for the this inaccuracy in Baker’s article, I suggest (or if Discovery Software itself is A m iga.—ED. they look instead for a full-featured viable) we decided not to suggest using telecomm program which offers them not the program to save HamJToy D ear AC: only ZModem, but a complete range of p ictu res.—ED. Hi Quality Version Available on AMIGALAND.COMIn the April, 1990 issue of Amazing standard, XPR and shared-mode protocols, Computing, a review by Cletus Baker of the more than one or two terminal emulations, D ear AC: telecommunications program Baud Bandit support for all the common modem types In your April issue [...] there is a Bio- contains the following quote: (including the new super-high-speed Feedback/Lie Detector Device article “To date, only Online! (and its modems), remote hosting abilities, multi­ which says that there is an included brethren Platinum and The Works serial port compatibility, and a complete program that I cannot locate. I would versions), and the shareware JRComm library of ready-made scripts, including appreciate a reply in this matter. Thank feature ZModem." one for running a BBS. When they find all you. The quote is not simply inaccurate that in one package for less than 5100.00, but blatantly false, and just a little more their search for the perfect terminal Sincerely yours, research on the part of your reviewer program will be over. Michael E. Davis would have easily discovered the full facts. St. Paul, MN The telecommunications program A-Talk Sincerely, III, produced by our company, Felsina Patricia Cummings —The Listing was inadvertently Software, published by OXXI, Inc., has Director of Technical Support omitted in April We did publish it in the included the ZModem protocol since its OXXI, Inc. M ay issu e o f AC, on pa g e 91.—ED. initial release in September of 1988. The mistake is even more surprising —We contacted Cletus Baker and here considering that A-Talk 111 has received is his response: AM letters are subject to editing. numerous awards including innovations “As Ms. Cummings suggests, I Questions or comments should be '89 at Summer CES in Chicago and Expert simply overlooked A-Talk III in my sent to: Choice Award '89 from both AmigaWorld search for ‘The Perfect Terminal and Amiga Plus magazines. Interestingly Program’. My experience encom­ Amazing Computing enough, while Amazing Computing passed the most-often-discussed P.O. Box 869 reviewed A-Talk Pius back in 1988, no programs among my friends and Fall River, MA 02722-0869 review of A-Talk III has ever appeared associates, and in our conversations Attn: Feedback since, while you seem to be able to review' A-Talk III never came up. I must every possible update of Online! Fm sure apologize to Ms. Cummings and Mr. Readers whose letters are published niy publisher will be able to furnish you Papa for my lack of awareness.”— will receive five public domain disks with a complimentary copy of A-Talk III, so Cletus Baker FREE. BY JOHN STEINER PageStream 1.8 PUTTING SOFT-LOGIK'S DESKTOP PUBLISHING PACKAGE TO WORK

NEARLY ALL OF THE FEATURES THAT SHOULD BE IN A TRULY PROFESSIONAL wrap text around the left, the right, or both sides of structured graphics. Text cannot desktop publishing package are in Soft-Logik's PageStream 1.8. If you are like me and do wrap around irregular-shaped objects in a Sot of desktop publishing, vou will no doubt appreciate its many advanced features. bitmap graphic images, but you can outline The best way to test software is to actually put it to work. With that in mind, several the bitmapped image with a structured graphic line that has no color. Then, simply different kinds of documents were created similar to those I normally work with, to see how set the text runaround mode to wrap quickly and intuitively PageStream operates. The major features discussed herein are drose around the invisible structured graphic ele­ ment. I had an opportunity' to work with using these test documents. Tests were done on an Amiga Programs that are the most powerful 2000 with 3 MB of RAM and a hard disk and 2090A controller card installed. also have some capability to automate re­ petitive tasks. PageStream is equipped with To begin, the feature that permits ad­ the tag seemed impossible. Other boxes 1 a powerful macro capability that allows justment of paragraph indents and chose did not exhibit the problem. I also you to do complex operations with a single “outdents" (i.e., hanging indents) is intel­ found that once Lext is tagged, you appar­ macro entry. Once the macro is designed, ligently designed, and very easy to use. A ently cannot change text attributes without you can call it up at any time to perform its graphic display shows exactly where the either changing or removing the tag. which complex function. 1 did not have the op­ new setting is before you have to commit to is as it should be (although there wasn't any- portunity' to test this feature except to try a it. AfterHi Quality Version Available on AMIGALAND.COM all, nobody likes to try a setting and warning that this was happening). Some couple of the macros that were demon­ dick OK, then realize it is not right when confusion ensued when I tried to change a strated in the tutorials. the page is redrawn. The PageStream re­ block of previously-tagged text without The stereotypical image of the pro­ quester lets you see that it’s right before you changing the tag itself, and the text fessional desktop publisher includes that of close the requester. wouldn't change. Initially-1 thought I had an expensive laser printer connected di­ Full adjustment of character tracking, encountered some kind of bug, and it rectly- to the computer. The reality is that kerning and line leading are provided for. would have been nice had a warning many' desktop publishers look with envy' Text height and width is measured in popped up to remind me chat the text I was upon laser printer owners, and must print points, and can be set anywhere from 1/50 trying to modify was tagged. lT.cir own documents on a dot matrix of a point to 1310 points! I had some Manual and batch hyphenation is | printer. PageStream can print on dot matrix problems when working with text over 750 allowed, and a spelling checker is built-in. printers as well as Postscript laser printers points tall, but how often does a desktop Hyphenation can be applied to or removed (Postscript is the standard language of pubi isher work with text so large that each from text selectively, but you may need to high-quality printing devices for desktop letter cannot fit on an 8.5-inch by 11-inch spend a few extra moments with the publishers). PageStream documents can page? The claim that you can work with text manual to master the selection buttons for print at 2500 dots-per-inch, on a Postscript- as large as 1310 points may be accurate, dais feaaire. The spell checking is nice, but based typesetting machine for a magazine- but you must have large enough paper. 1 would rather see the program code used quality print output. The dot matrix output You can even set the point size different for to do something else. Spell checking can be in earlier versions of the program was not horizontal and vertical pixels. I printed a more effectively done within tire word very smooth, but that has been corrected. sign with characters 200 points wide and processor, as the text is being created. Even nine-pin output is acceptable for club 450 points tall. Editorial changes made within PageStream newsletters and for proofing of documents Paragraph tagging is implemented in would then not be subject to spell checking destined to be typeset or laser printed. You a very workable fashion. Tags can be ap­ by the computer—but we all know that can even dot matrix print in landscape plied to paragraphs, making the layout of editors are perfect spellers anyway'! mode (wide rather than tall page orienta­ large documents fast and easy. There does Any desktop publishing software tion, i.e., a page printed sideways) on a dot appear to be one bug related to tagging of worthy' of merit has to be able to wrap text matrix printer. Once you have proofread a text objects. During one test. I had a around graphics. PageStream does, with document, you can generate a Postscript problem wiLh disappearing text. Changing four modes of text runaround. You can file on disk which can be taken to a service bureau for final printout on a laser printer Ed. Note: A t World o f Amiga in New York, Soft-Logik Publishing Corp. announced or typesetting machine. PageStream 2.0. For details on this future release, please see our show report on page 47. PageStream also permits the compo­ grid and page guides can be used to help let’s now- look at a few of the shortcomings sition of pages that are actually larger than place critically-posidoned columns and I discovered. your printer can handle in a single pass graphics. Pages are easily inserted, deleted, My biggest complaint is that, for the through a feature called "tiling". This op­ and moved. most part, the fonts you get with Page­ tion automatically divides each single The structured graphic capabilities of Stream 1.8 are ugly—there is simply no oversized page into several overlapping the program can be used to create special nicer word for them. With dre exception of areas which are printed onto smaller effects and limited structured drawings. Tynre and Helv (versions of dre venerable sheets, cut apart, and pasted together to Lots of fill patterns are available, and you Times Roman and Helvetica), dre fonts form one large master page. The person can even create your own pattern if you generally look amateurish and really give a who does your print job can use the large want. Up to 256 colors can be selected for document a look drat screams “This page master when put ting together final camera- creating graphics in a given document. I has been desktop published!" A powerful ready copy. The tiling option works for had a little trouble selecting graphic ele­ desktop publishing program should natu­ pages that are as large as IS by IB inches. ments that 1 had purposely sized to be too rally create documents that do not call at­ Professional desktop publishing large to fit on a page. If you accidentally tention to themselves. Since standard programs should probably be able to specify' a size drat is too large, be sure to Amiga fonts cannot be used in PageStream handle pages up Ur full newspaper size; change it back to fit on tire page before y'ou documents, and most Amiga fonts aren’t however, and this is not possible with try to select something else. It may take a meant for publishing applications anyway, PageStream 1.8. There also doesn't appear while to selecL dre object again. a source of good-looldng fonts is neces­ to be any way to change the size of a page The ability to rotate text and graphics sary'. Fortunately, Soft-Logik provides once it is created. Here, just create a page is beautifully implemented. The requester many optional font sets (the quality of of the correct size, and move information that allows rotation of any object (or group which I w'as not able to verify). The font over from the former page. of objects) demonstrates with a rotating sets are available to drive eidrer Postscript Though there are several filters for rectangle how dre final position selected or dot-matrix printers. Third-party compa- importing different bitmap graphic images, will make tire object ap­ Amiga owners will be most interested in pear. This feature makes for importing IFF ILBM graphics. IFF bitmap easy placement of text at graphics of any resolution (including HAM any angle. images) import easily into PageStream, There is a bug in the either as complete images or as picture rotate function, however. If windows which can then be cropped. a text object is rotated, then Depressing the shift key while drawing the changed in size, the object box that holds such an image maintains the is redrawn as a mirror im­ correct height/width ratio for tire picture. age. Recall the rotate re­ Hi Quality Version Available on AMIGALAND.COMPageStream also does color separa­ quester, ancl you find that tions, both mechanical and four color, i tire rotate coordinates have printed some four-color separations and changed. Simply change they looked fine out of the laser printer, but them back, and the text re­ I d id not have the opportunity to view' them turns to where it was origi­ as a color printed page. PageStream also nally. To avoid this, be sure prints negative and mirror images if die to size the text or graphic person at your print shop requests them. I object before you rotate it. did not test diese features. The program is not PageStream excels in its layout and without problems, but they page view' capabilities. Each page is dis­ do seem to be relatively Color selection (above) and played in a fully-sizeable window', the view minor in nature, and often font selection (below) in can be changed from 200% of actual size to related to the philosophical Soft-Logik's PageStream 1.8. full page, and the variable zoom feature lets implementation of a desk­ you look closely at any' part of a page. The top publishing interface, Show' Full Width feature diat displays the rather than problems entire w'idth of a page is useful. A set of left caused bv bugs. This is as it TieTarltt* and right Master Pages allows yrou to put to­ should be. Problems w'ith PAGESTHLAM WCItKlMC MCDES A i gether a template of items such as headers, software implementation Tfcae ii r rrvfn * u l n i rvcric in Pi ttSnaa. Ttev ce a h should not mean features ru-iMi i* > J iLi I .... • r „ . - i. L « , l _ foolers and page numbers, as well as se*»ain| fdnt / Point ' □ drat doni work, but radrer, graphic elements, that will automatically font 1 Point :jl2 pt features that are either miss­ !_ appear on every page. Page numbers can / ing or that could be imple­ CYtasn (otanbi* o be placed on die master pages, and they Iiifuss (r*»|iw 0; mented in a more intuitive Rt'topt Hot* w'iil appear on every page in either Arabic Uuadl OrL I rfiolt*n|•( h 0 <1 manner. PageStream cer­ S j ' ii to n H u d or Roman numerals. Page numbers can be tainly has no sirortage of dnvi&r Tvn* 0 b set to start from any' number desired. line.dtt U r iiv R n n features, and wheir vou potyl' ~°i~i Columns for text can appear in any ?r-rAd □ q measure the quantity and nm Ttxt tautin note c ictsve *Vn sukm? panw order on any' page. Columns containing u» BUritonnc^t*. Iruuied«tailstsnftoncoLar, quality' of them against tire lo ts k iu . - i - text can be linked so die text will automati­ program's relatively' low- C ir n w A t * - the m de hi a * * , icon cally flow from column to column, even cost, the program is really a across page boundaries. A background bargain. With this in mind, ■ 1. Dance on a volcano.

2. Live amongst elves.

3. Read every issue of Amazing Computing ever published.

We've just made your life's goals one easier. No doubt you have over the years compiled a list of goals you hope to achieve. And certainly Amazing Computing holds a prominent position on that list. That's why we've made it that much easier for you to acquire the complete Amazing library at terrific savings. For a limited time, you may purchase volume sets of AC at Hi Quality Version Available on AMIGALAND.COMa savings o f over 50%!

AC Volume 1 is now available for just PLUS! We're now offering subscribers freely redistributable disks" at distribution $ 1 9 .9 5 *1 prices. Now's the time to complete your (A regular $45.00 value, this first year of AC Fred Fish, Amicus, or AC disk coliection, includes 9 info-packed issues.) Pricing for subscribers is as follows: 1 to 9 disks: $6,00 each AC Volumes 2,3, & 4 are now yours for just 10 to 49 disks: $5,00 each $29.95* each! 50 to 99 disks: $4.00 each (Volumes 2,3, & 4 include 12 issues each and 100 disks or more: $3.00 each regularly sell for $60.00 per volume set.) (Disks are $7.00 each for non-subscribers.) To order voiume sets, freely redistributable disks, as well as single issues, use your Visa or MasterCard and call 1-800-345-3360. Or just fill out the order form insert in this issue.

Amazing Computing and freely redistributable software—at savings beyond your wildest dreams.

"Postage & handling fo r each volume is in the I S, >".50 for surface in Canada and Mexico, and S10.1K* for all other foreign surface. •*AC warranties all disks for 90 days. \'o additional charge for postage and, handling on disk orders. VC issues Mr. Fred Fish a royalty on all disk sales to encourage the leading Amiga program anthologist to continue liis outstanding work. Let ACDA Open Your Real World Window ! Scientific and Engineering Products for Your Amigas!

P R O T O - 4 0 K

AmigaView 2.0 Amiga View is an object-oriented, C language, Inini- tion front-und interface library that provides over 100 easy-to-use routines ant! macros. Our package features WINDOWS, SCI? Ill-INS, MKNIJS, REQUEST- 15ItS, C.ADOHIS OF ALL IYPES (including auto­ m atic nuitual exclusion), BITMAPS, ALL IMAGERY, IFF, TEXT, and much more. This standari/ed and consistent Intuition/Graphics interface greatly re­ duces programming time and c

Circle 104 on Reader Service card. Hi Quality Version Available on AMIGALAND.COM nies are also producing font sets for Page- Set/Save Paths option would not work arrow pointer with an hourglass shape to Stream. There are several public domain properly. I had put all the PageStream re­ indicate the program is busy. The problem PageStream-compatible fonts available on lated files and drawers in an is that there are times when the program is information services such as People Link FH1 rPageStream directory I had created on busy, but the arrow pointer is still active. and Genie. If you have access to a Post­ my hard disk. I found that in order to make This usually happens shortly after sel ecting script printer, I recommend Font Disk A PageStream work properly on my system, a menu item, and gives the false indication from Soft-Logik, as it contains screen ver­ I had to use die assign command to assign that either die menu selection didn't work, sions and font metrics for the family of fonts PAGESTREAMFONTS: and PAG­ or the program has locked up. built into the majority of Postscript printers ESTREAM DRIVERS: to FhLPageStream be­ There is also a problem with the HP being sold today. These fonts are attractive fore executing the program. Once that was LaserJet driver that is included with Page­ and contain enough variety to give your done, the program started and worked as it Stream, It will not drive my QMS PS 810 documents a professional look. If you don’t was supposed to. This problem also oc­ Plus printer properly when the printer is in have access to a Postscript printer, and you curred when 1 tried to install the software LaserJet emulation mode. The QMS printer want to duplicate the fonts that come with on a stock 1 MB 2000HD. I visited with both is a Postscript printer, and PageStream font disk A. you will find that (unfortu­ a PageStream beta tester and Soft-Logik works just fine with it in die Postscript nately) they have been spread across sev­ technical support about this problem, mode. “When I use the LaserJet driver and eral disks. PageStream font disks sold di­ thinking they had inadvertently left the in­ put the printer into LaserJet mode, I get rectly from Soft-Logik all sell for a sug­ formation about making the assignments about l/l6th of a good page, then it ejects gested retail price of $39-95- out of their manual. Both people told me and several pages of garbage text follow. I also had some installation problems that no assigns are required, and neither There is possibly an incompatibility with when I went to put the program on my hand could explain why I was having tire prob­ die LIP emulation in the printer; however, drive. The instructions were clear and easy lem described here. I even went through we have used diat emulation mode on a to understand and I followed them exactly, the Global Set/Save Paths requester with regular basis while driving IBM software, yet when I was finished, the program did the person from Tech Support to make sure and have never before found a program not work properly, it took much effort to 1 had set my paths correctly. He simply that didn't drive the printer properly. The get the program to recognize where the didn't have an answer, other than to say Amiga Preferences LaserJet driver works fonts and drivers were when the program that since it works with the assigns they fine with die printer also. PageStream does started up. Each time 1 ran the program, I should be left in, even though they are not drive other HP LaserJet-compatible printers had to manually tell the software where to supposed to be needed. properly, and 1 know of several Page­ find all the default PageStream system The program does not use the busy Stream users who are printing on their drawers, and it could never find the import pointer enough to suit me. Normally, when LaserJet without problems. filters or dictionaries because the Global PageStream is busy, it replaces the usual (continued on page 28) Taking steps to avoid steps: WordPerfect

WORDPERFECT CORP. PRODUCES An aspect of WP sadly overlooked in most WordPerfect, long considered to be one of Amiga magazine articles is tire utilization of the computer world's premier word WP’s macros. Macros are a recorded series of processors. Recently, WP released an update mouse movements or keystrokes used to per­ to the .Amiga version which includes many form tasks while keeping the latter to a mini­ long-awaited enhancements. These changes mum, named in one of die following ways: include the addition of a typical Amiga file with an Amiga key + another key, a typed-in requester (instead of the IBM-like file file name for the macro, or by pressing the ‘RE­ requester standard with other versions ol TURN1 key instead of entering a name at die WP) and better utilization of the Amiga’s prompt (which creates a temporary macro that multitasking abilities, offering improved edit­ disappears after exiting WP). Not all keys are Hi Quality Version Available on AMIGALAND.COMing speed when more than one window is used in conjunction with the Amiga keys. The open simultaneously. Priorto this update, WP supported keys for macros are Amiga +: A, D, was not the most highly-regarded Amiga E, F, G, H, M, N, R, T, V, W, Y, and Z. word processor, but these enhancements WordPerfect normally utilizes the function should go a long way toward finally and keys FI—F10 in conjunction with the SHIFT, emphatically changing that. .ALT, and CTRL keys for die word processor’s In addition to this update to WP itself, operadons, preventing their use as macros. WordPerfect Corp. has released a File Con­ Chaining macros togedier (where one macro version program and a Macro Editor, upload­ calls another) is a useful feature of WordPer­ ing both to their BBS for registered users to fect. I chained two macros togedier to 1) save freely download; or, users may send $10 to a file after checking spelling widiin the docu­ WordPerfect Corp. for a disk containing both ment, and 2) clear the screen for a new docu­ programs. The File Conversion program ment. Sometimes there is a need to clear a converts text Files between WP vl.9, WP v2.0, screen without saving a File, and sometimes I WP Secondary, Scribble!, and Scribble! Merge save a file widiout checking die spelling formats. The Macro Editor shows tire text rep­ (especially on the First draft!). resentation for macros in what resembles a The procedure used to generate diese file requester for a favorite text editor of mine handy macros is quite simple to learn, and the (TxEd+), and permits die addition or deletion tutorial aspect of WP covers it in detail suffi­ of any steps (plus changes to scrolling or cient for most new users. Here is a summary: window size) without the need to rerecord the entire thing. This disk is a godsend to 1) press CTRL + F10 keys; heavy WP users with bodr Amigas and IBMs, 2) press eidier left or right Amiga keys, plus since it enables easy transfer of text Files anodier keyboard letter; at that point, AT1 between different word processor formats, records all mouse or function key selec­ and helps to easily modify7 macros created tions—including mistakes—so plan ahead with the powerful macro feature of WordPer­ as to exactly what the macro should accom­ fect. plish; Macros by M ike H ubbartt

3) make the selections the macro will perform the visible macro mode, enter a delay in a (for example. 1 pressed SHIFT + F10 at this macro when defining it and you can see each step to record a retrieve macro); menu accessed by that macro as it executes. 4) when all macro movements/selections are The lack of a quick word count feature made, press CTRL + F10 to stop recording (a lifesaver for any writer) in WP is worked the macro; now press either Amiga bey plus around via macros. The usual WP procedure the letter that defines the macro, to activate to generate a word count is as follows: select the macro. die Spelling checker widi either CTRL + F 2— or use select SPELL from the Special menu— I use macros to customize the WP inter­ then select the word count option from the face to personal preferences as well to generate new window in the center of the screen. After Hi Quality Version Available on AMIGALAND.COMshortcuts, although standard commands like setting up a macro, ! now just need to use Right„Amiga-LJ for enabling/disabling underlin­ Amiga key + w to get the same information ing, and Right_Amiga-B for enabling/disabling without performing extra steps and spending bold type are already supported by \VP, and do extra time. I chose Amiga key + w since die not need a macro defined. Use either die Proj­ “?” sign (used in Transcript from Gold Disk) Ls ect menu or CTRL + FI to open a new CL1 not selectable as a macro identifier in Chaining window, or use a macro such as Amiga (either WordPerfect. Amiga key) + n . Use the Project menu or SHIFT Since die spelling of my documents is macros + F10 to retrieve or open a file for editing, or use sometimes (read; often) called into question, together another macro like Amiga + r. Most shortcuts I I also have a macro (Amiga + h) to bring up choose utilize an Amiga key + another letter die Spelling Checker widi all eight options (where one because they save me time as a touch typist, and still unselected. Another favorite macro de­ they are easier to remember dian those chosen letes text from a window, so 1 can start a new macro calls by WordPerfect. document (Amiga + E) instead of using F7 and another) is a Since macros named with Amiga key + a answering yes or no to bodi exiting request­ letter are accessed by selecting the key combi­ ers that appear. And finally, there is a print useful nation, how do you use macros with file names? current document macro. The normal proce­ feature of To access a macro with a filename, press ALT + dure for printing out a document is: select the F10, and then type in the macro’s name. Macros Full Page menu item from the Print menu, or WordPerfect... with file names are stored in locations other than use the SHIFT + F7 key combination and then die default directory, so they are accessed by die select Full Text from the menu items, or full padi name (i.e., dflrmacros/instext) when­ record a macro (like Amiga + d) to save steps ever desired. To access a temporary macro, when sending output to the printer, My press ALT + F10 and then ‘RETURN’. Macros can .Amiga + d macro loads the printer driver in­ be eidier visible or invisible. Invisible is die formation from the WP Print disk, and prints default mode, which does not display the die current document without further menu menus where selections were made in the selections. macro definition are not shown in this mode. In Here are some more helpful hints on gener­ their word processors). Owners of WP definitely ating macros: need to contact WordPerfect Corp. for both die WP Execute the sequence first, without recording update and the File Conversion/Macro Editor disk, the sequence, writing down all steps if the macro is both welcome additions over the original quite large. In naming macros, stick with familiar version when writing anything from a letter to a labels used in past word processing applications complete book. If you still have some questions when possible, and name newer combinations with about generating macros from tire method I have letters fitting tire description of the macro’s purpose. described here, try the examples in the WP Macros are among the best features offered in WP, tutorial—it’s that easy to develop your own! and I hope all Amiga word processors eventually WordPerfect 5.1, WordPerfect Corf., 1555 N. come to use them (at present, only one or two Technology' Way, Orem, in '84057; Piice: $250.00; companies beside WordPerfect Corp. use macros in Inquiry’#213 ./\C*

which case they can be deleted during the creation of the macro. To start the macro, place the cursor in line 1 position 1 and define the macro as follows: Press CTRL + F10 and at the prompt, give the Macro a simple name like AC. Press RETURN to ac­ cept tire name. If you do not date your letters, skip the next step; if you do, place the cursor at the end of the line preceding the date and press RETURN 3 times. Place the cursor at tire end of the last line of tire address and press RETURN 3 dr 4 times. This isolates the date and information to be transferred to the envelope and moves the first line of dre address to line 13, the appropriate location for busi­ ness envelopes. IF YOU HAVE EVER WANTED TO USE YOUR Move the cursor to the date line and use your printer to address envelopes, and you have a printer mouse to pull down the EDIT menu and select "De­ with capabilities to print 1" or 1/2" from the tear-off lete To End of Line". Then, move the cursor to line (short tear-off), or you are willing to use printer en­ 1 position 1. Enter the BLOCK ON mode by depress­ velopes (Memorex or equivalent)—read on. ing ALT + F4. Use the down arrow key to "BLOCK" Hi Quality Version Available on AMIGALAND.COMWordPerfect and at least two other word the contents of lines 1 to 17. Enter the Move Block processors include macros, which are very simple mode by pressing CTRL - F4 anti select Cut Block to create, and real timesavers. We can devise a 1. macro in WordPerfect (applicable to other word Now Exit by Pressing F7, but do not save dre processors, after doing some homework) that ad­ file and do not exit WordPerfect. This erases all dresses envelopes with no extra typing required. pages, but not tire blocked rectangle. At this point That is, this macro takes the page head (or your the cursor is in the upper left-hand corner, which is name and address) from a letter, moves it to the left, where you want it. Press MOVE TEXT CTRL + 1’4 moves the name and address of the "addressee" to and select Retrieve Text 5. the center, and erases the content of the letter itself, Since printing must start at tire very top of the thus eliminating the need for additional typing. envelope, we have to set the top and left margins; There are two requirements for this macro to be press ALT + F8, PAGE FORMAT, and select Top effective. The location of each line in the head of the Margin (5), enter 0 (yes, zero top margin) and press letter (or the area from which your name and 0 (zero) to exit. Press SHIFT + F8. LINE FORMAT, address are being taken) must be consistent, as and select Margins (3), enter 2 (or whatever works Devise a should line format. The diree or four lines contain­ best with your printer) and press 0 (zero) to exit. macro to ing the name and address of the addressee must To move tire header to the left, press ALT + F3 always be located in the same line from the top of to "Reveal Codes”, Using the BACKSPACE key, address the form. ! have a macro that types my name, ad­ delete the Center [C] or fA] from every litre of the envelopes, dress and date and ends by placing the cursor on header. Delete the top margin normally used itr and no line 10, which is the place where I always start my your letters. Exit the “Revel Code" mode. Place the letters. cursor at the beginning of line 13. which should be extra typing Xame and address usually occupies 3 or 4 lines. the first line of the address. Using the TAB key, required! To cover both cases, let's make the macro a 4-line move all four lines to Pos 35. Finish and save the macro. Type any letter using your preferred format, Macro by pressing CTRL + F10 again. but place the addressee information starting at line To Invoke the Macro just created, load any 10. In order to make the macro work with long or letter, making sure the name and address starts in short addresses, make each line about 30 characters line 10. It can be 3 or 4 lines long. Place tire cursor long. These could be anything—xxxx’s will do [to in line 1. press .ALT + F10 and enter the name of the create the macro]. Macro. If you are using an Epsoir LQ-850 move the In the letter head you can include any printer paper release lever back, place an envelope, and commands (like double height, italics, etc.) to em ­ print it. If you do not have a printer with envelope- bellish the hard copy. These commands will trans­ loading features, Memorex makes printer enve­ fer to the macro unless you do not want them, in lopes that work very nicely. •AC1 THIS MONTH, WE’LL TAKE A LITTLE EXCURSION COMPUTER GAME PORTS away from the parallel port, Our project this time is a The joystick connector ports labeled Joy 1 andJoy2 rapid-fire joystick circuit for game playing on the Amiga, on the computer are standard DB-9 connectors. The DB- (although die circuit should also work equally well on the 9 connector built into the computer is a male pin DB-9. Atari. Vic-20, C-64 and C-128 ). The circuit is The mating connector on the joystick is a female socket placed in-between the computer and the joystick, and DB-9- Since we are placing our circuit in between the becomes activated via depression of the fire button on the joystick and computer, we need bodi a male and female joystick. This causes die circuit to flip-flop the voltage or. DB-9 connector on the circuit board to interface it. The pin 6 from 5 to 0 volts at approximately 17 Hz (Hz is an female DB-9 on the circuit plugs into the game port on the abbreviation for hertz which stands for “cycles per computer and the joystick plugs into the male DB-9 second"). This is equivalent to pressing the fire button 17 connector on the circuit. DB-9 connecLors are available times a second. The circuit saves your trigger finger from from Radio Shack and most odier electronic distributors. overexerdon playing those rapid fire asteroid-type games. The game ports on the Amiga are not just for joysticks, riiey are also used for other peripherals. In each WHAT KIND OP GAME? application the designation of die pin assignment Hi Quality Version Available on AMIGALAND.COMHow well the circuit works depends upon how die changes in respect Lo the peripheral in use at the time— particular game is programmed. If the game in question joystick, mouse or light pen. Since diis particular circuit is performs multiple firing when the fire button is depressed designed for use with a joystick, die pin assignment for constantly, chances are die circuit will not improve your die DB-9 pins is as follows: game score. In fact, in some cases the circuit may slow down an existing multiple-firing feature. This happens Pin Name Description because even though the circuit oscillates pin 6 at 17 Hz, 1 Forward Controller forward it still spends half its time with the line high (not. firing). 2 Bock Controller back 3 Left Controller left The other half of the time the line is low (firing). Depend­ 4 Right Controller right ing upon the moment the computer polls die game port, 5 PofX Horizontal Potentiometer (Paddle) it might not recognize the fire button as being de- 6 Fire Controller fire Games that require discrete 7 + 5V + 5V power (100 ma) 6 GND Ground (individual) fire button 9 PotY Vertical Potentiometer (Paddle) presses are die type of games the circuit is best Only three lines are utilized to interface this circuit, suited for. The circuit the +5V, GND and fire button. All of the other wires are flip-flops diat fire pin passed through, meaning you just solder wires pin-to-pin faster than is humanly between die male and female connectors on the circuit. possible. See schematic Figure One.

b y John lovine It isn't necessary to remove the circuit from the computer when you are through with it. The circuit can be Figure One: left on the game port. The amount of current the circuit Rapid Fire Joystick Controller draws from the port is minimal and should not affect normal computer operations. For most of the games the mouse can remain in Joystick port 1 for use with the workbench. Gaines usually utilize Joystick port 2, so there is not a conflict. But if you are using two joysticks (and circuits) fora particular game you may have to remove the circuit from Joystick port 1 when you are finished, since pin 6, when in use with a mouse, is mouse button 1. Pressing the mouse button with the circuit on will perform a rapid fire on the line, equal to 17 mouse clicks per second.

HOWJOYSTICKS WORK The joystick is a simple device centered on 5 switches (see Figure Two), Four of the switches detect the move­ ments olt he joystick. One of the four is activated each time tire joystick is moved in a specific horizontal or vertical direction. Diagonal movement is read when two adjacent switches are activated at the same time. For instance, when die joystick is pushed diagonally right, both die forward and right switches are activated.The fire button is the fifth switch on the joystick. The lines to the joystick are active low lines. What this means is that the computer holds all dre joystick lines at +5 V. When a switch is activated it connects that particularline to ground (zero volts),

4011 QUAD NANDIC The heart of die circuit is a 4011 quad NAND integratedHi Quality Version Available on AMIGALAND.COM circuit (see Figure Three). The operation of a single NAND gate is illustrated in the truth table. The IC (integrated circuit) in the circuit as stated is a

4011 quad NAND gate. This chip has four (quad) NAND NAND G ato gates. Two NAND gates can be made to oscillate using a 4011 Quad NAND A— \ ^ | s ’ O'-d Figure simple RC (resistor capacitor) network (see simple oscilla­ T h re e tor Figure Three). In our circuit the gates are made to oscillate when pin Trulh Table 6 (fire pin) from the joystick is brought low. The output A 3 1 O ul from the IC is fed into the NPN transistor. The function of P Q c r L L 1 H the transistor is to invert the signal output from the 4011 IC. P ; r ; L H H p c G n d l _ ^ 7 ______1------j _ The inverted output from die transistor is brought to pin 6 H L H (fire pin) on the computer side of the circuit. H H L

Simple Oscillator N cie: CONSTRUCTION 1 KHz Output L (Low) - B inary 0 or 0 V c r GtrO If you have been following this series and doing the n v o H (High) - Bmary 1 o r + V projects, you should construct diis circuit on the soiderless ' j i o o i r 7 bread board we have been using. Test out die circuit on the bread board before you hardwire (solder) it. This makes it easy to correct any wiring errors. would surely put you in a real frustrating position). After the After testing, the circuit can be wired on a small piece circuit is finished with the socket in place, simply install the of PC board. 1 used half of the PC board listed in the parts 4011 IC. This also makes it simpler to replace the IC in the list. If you haven’t done much soldering (even if you have!), future, should it become necessary. it’s a good idea to solder a 14 pin IC socket into the circuit If you don’t plan to use a paddle with die circuit vou instead of die actual IC. By soldering a socket into die can simplify- the circuit by eliminadng the wires between circuit you don’t have to worry about overheating and pins 5 & 9. possibly burning out the IC with your soldering iron (which •AC* by R. Bradley Andrews

LOTS OF NEW STUFF IS COMING OUT FOR THE AMIGA Sprite ships come in several varieties. Some are simply right now, and tilings look promising for future support. Hopefully, obnoxious, such as the Bumper, who diinks he is on a bumper car all the good titles will do very well in stores, so more companies ride. Others may either attract or repel your ship, making for some will devote their full support to this fine machine, and we can have deadly possibilities. Still others fire a variety' of nasty projectiles at more of the hottest games out. you, but the worst of all - die Zapper—is deadly with any contact. The graphics in the game are done well, and very' sharp. The TYPHOON THOMPSON Typhoon Thompson, a recent release fromBroderbund, gets this month’s award for original theme. While the far future is the setting for many games, this universe is a bit different. A tragic crash has destroyed all but one occupant of a luxury cruise ship. The remaining occupant, a small child, has landed on a water planet and has been adopted by a race of sea sprites, who do not want to re­ linquishHi Quality Version Available on AMIGALAND.COM their new charge. You have been selected to redeem yourself from past mistakes by defeating several of die sprites' cities and freeing the child. Two representatives of an ancient civilization that used to occupy the planet will aid you in your quest. The first step is to gather the four magical items needed for your final showdown with the sprites. Each magical item is held in a different sprite city. Of course, die residents will not give up their magical items without a fight. First, you must deal with each of die inhabitants of die seven islands surrounding each city by drawing Broderbund's Typhoon Thompson them out, shooting dieir ships, and then scooping diem out of the water into your sprite bag. Once you have gadiered up all die sound is simple, but completely adequate and also well done. The sprites on die islands, a big sprite will trade you the magical item game's high point is its cartoon-like animated sequences. These you seek for his captured subjects. begin with the intro sequence where you are knocked out and Battling die first city turns out to be fairly easy, as just one tossed into your jet sled. The sprites themselves are interesting to sprite per ship and one sprite ship per island is sent against you. But watch as they jump from destroyed vehicles and flounder in the diese values increase on later levels until on the final level, there water. Each possible way you can die is cleverly animated widi a are three sprites per ship and three ships per island. The top levels sequence that almost makes up for the fact that you have lost a life. can get very “hairy,” since die sprites must be grabbed quickly Also, the sequences in which the owner of each city turns over one before they turn into dolphins, swkn back to their island, and bring of the items you seek are very cute. out more friends. The mouse is used for control of the game, and this is die In addition to your jet sled and sprite-bag you have some game’s greatest shortcoming. It can be very difficult to maneuver weapons at your disposal—one added for each of the first four in diree dimensions. While it may be nice to have two different levels. A laser cannon is your primary weapon and is used to blast buttons and more firing options available right on the mouse, I sdll sprite ships out of die sky. The scatter bomb serves to repel all die would have preferred some sort of joystick interface augmented flyers in a certain area for a while, clearing a path for your sled. The with some key presses. It is too bad someone doesn’t come out with sprite magnet attracts downed sprites, very helpful when you are a good two-button mouse. The Atari-compatable joystick is just too gadiering up lots of the guys you have just shot down. Finally, if the entrenched. sprite ships are oil range, die freeze bomb will stop them dead in There is another problem related to the interface. While you their tracks for a short time. are supposed to be able to easily move near a downed sprite and stuff it into your bag, doing so takes a lot of practice, and it can be The real key to your mission lies in die 25 data diskettes that very difficult to actually fly the right pattern to grab the critter. You contain die destruct code. One is somewhere on each level, and must also move at least a bit between each sprite grab. 1 often found only by inputting diese into die base computer can you complete myself in the midst of a whole bunch of sprites, able to grab only your task; everything else is really just a step along the way. one or two before 1 had to defend against an incoming ship. This The center-right portion of the screen features a three- problem is compounded at the higher levels, given that there are dimensional view common to many dungeon exploration games, more sprites per ship. It is vital to grab all the sprites from each ship, while the center-left portion is used as a modifiable display, the or they will go back and form another ship hill of pesky sprites to primary functions of which are to show a map of die current level harass you. and die list of messages you have stored on your electronic In spite of this, I actually had a good time with the game. I notepad. Your current inventory' of items is displayed at the top of did manage to hang the game with a “too many objects" message the screen, and the bottom of the screen holds various action trying to rescue the child at the fifth and final level, because I found buttons that come into use during die game. it very difficult to identify, let alone grab the three sprites that The graphics look nice and add to the feel of an underground belonged to any one ship. But, I do think that with a little practice. complex. And the enemy robots almost literally dance about the I could even manage to beat that level. At one point on the next- screen in front of you, often a frustrating occurrence. The sound is to-last level, sprites were multiplying like rabbits, but I learned to simple, but complements play. The mouse is used for all control take out one ship at a time, and everything was OK. during the game and works fairly well, though having keyboard While it may not be worth a lot due to the limited number of equivalents would have been nice. levels and tile frustrating interface, I did enjoy Typhoon Thompson, One diing I should note: this game is VERY similar to die and recommend you check it out at the store. game Slaygon, released a while back by Michtron. The graphics are a little better, and die explotable map is much larger (Slaygon only DAY OF THE VIPER had one level as I recall), but most of the other elements are virtually Day of the Viper from Accolade is also set far in die future, identical. I wonder if Michtron knows about the earlier game? but lLi is time it is a rogue machine that threatens mankind. Several Tliis game is very frustrating. Enemy robots are a little too fast, sentient androids were created to aid man in the hazardous tasks and it is very easy to die quickly, as they blast at you before you that normally accompany space exploration. Unfortunately, some­ thing caused them to go crazy after only a short time. Now, led by can use properly placed shots to destroy diem. The setup of the the devious GAR, they are headed back to earth with destruction base in each level is random. While die rooms and walls are always in mind. in the same location, the objects (good and bad) are often scattered The only tiling that can stop them is the sole operational Viper in different locations. While this makes for some variety, it can be remote-controlled combat vehicle. Because of its size, it can sneak frustrating if a needed repair module is hidden behind a door your into their main base undetected. From diere it can gather data keycard cannot open programsHi Quality Version Available on AMIGALAND.COM needed to activate the auto-destruct sequence on the Yes, the game is a challenge. There is enough depdi to allow base's computer, thereby destroying the menace. for a lot of playing time. Unfortunately, aftera litde while, play just The base consists of five different complexes with five levels becomes maddening. But I did manage to do a little better each time each. Your adventure will take you through these levels as you look I played, though I finally gave it up after only getting through most for die keys to GAR’s destruction. Scattered about die complex are of die first building. 1 just could not find any new keycards or useful items, such as keycards that open colored doors to your sufficient repair modules, so death was pretty rapid at the deeper vehicle, energy crystals that can be used to refill your internal levels. The game is worth considering if you like exploring and are batteries, repair modules to fix damage to your craft, and more. good at quick reaction using die mouse. While you may slip in undetected, the base remains hostile to your presence. Enemy robots patrol the halls, dancing gingerly WEIRD DREAMS in front of you until you destroy them. Mines and other traps also Weird Dreams also wins an award for being bizarre, as you block key passageways and must be either bypassed or detonated. take a journey into the mind of a hospital patient undergoing

Accolade's Day offhe Viper Microplay Software's Weird Dreams Order Toll Free ^ornput^hbilitu O rder Toll Free

800-558-0003 'C.on.hu.me.x.juUcttonic* 800-558*0003

CALL FOR ALL YOUR Quantum *oi VIDEO PACKAGE 40 M eg SCSI Pro Drtve...... 369 MASTER 3A PANASONIC 1410 CAMERA 8 0 M e g scsr P ro D rive...... 599 Disk Drive <»2 2 5 100 M eg SCSI Pro Drive...... 679 FREE DEUVEBVDEUVERY <1 to lb*48 NEEDS COPYSTAND WITH LIGHTS S e a g a te DIGIVIEW GOLD 4.0 IVS Trumpcard Hard Drive Trumpcard S00 Hard Drive SI-I26N 20Mog .... . - ...... 4 3 9 D o l ST-I38N 30Mog 459Dol Packages for A2000 Series Packages for Amiga 500 ST-157 N-l 49Mog-28ms..„...... 529 D ol SI-177N 6 0 M o g N EW I 689 D ol S e a g a te Seagate ST-27714-1 6 0 M o g ___.....______559 D ol GVP ST-125N 20 MEG ...... -...339 DEL ST-296N 8 0 M o g ..... _ ...______S89 DH ol C /0 SCSI B osl A d a p to r ST-138N 3 0 M E S ...... 409 DEL ST-125N 20 M b 459 Delivered! Quantum Pro Drive H C 8/0-H D Con1r-0/K e x p . 8 MB ST-157N-1 49 MEG.-2Sm9 479 DEL ST-138N 30 M b ...... 479 Delh/eredl 4 0 M o g SCSI Pro D rtv o 559 DEL GVP 68030/28 4MB-./Mo...... 1W ? ST -I77N 00 MEG HEW1 _.... 539 DEL ST-157N-1 49 M b -26ms..S49 Daliveredl 8 0 M o g SCSI Pro D r tv o 799 DEL 8T-277N-1 60 MEG...... 509 DEL 100 M o g SCSI Pro Drtvo 879 D a 8T-296N SOM EG ...... 539 DEL ST-177N-40 Mb NEW 609 Delivered! C<«i tocilurvi Xotac'i DM A* herd, tw tobod ROM.auto- GEN LOCKS eorVkje tawdry., 25 ph SCSI c u m . dsk utflftoi rrxnucf A m i G e n ...... 95 Quantum Pro Drive FREE DEUVERY IN THE CONTIGUOUS 48 STATES Mognl 4004 w/ Remote 1569 4 0 M E G S C S I P ro D r t v o 529 DEL Quantum Pro Drive S c a n L o c k ...... 739 8 0 M E G SC SI P ro Drt/e ...... 759 D EL 40 Mg SCSI Pro Drive - 599 DEUVERED S u p e r G e n ...... 659 100 MEG SCSI Pro DrtaJ.— . 839 DEL 80 M g SCSI Pro Drive - 839 DELIVERED S e a g a te Super Gen S C ...... CALL Ih&M kJIs Include IVS Trim peart SC SI hard drive C trl, lOOMg SCSI Pro Drive- 909DELIVERED cable, software and FREE delivery In the tonriguaus ST-I25N 20 M e g ______599 Dol Super Gen 2000$ ...... I8 1 9 D H . USA This fe no! arussembfy kK I It Is i package ____ ThmePactocjw fclut** TrjrToccFdSOQenctaij-e. IVS ST-1 U N 30 Mog ...... 619 Dot Injmpcced J C S h d d V * C li, S c f h K n SI-157N-I 49Mog-28rre ______689 Dol MISCELLANEOUS HARDWARE Hard Drive Cards (A-2000 Piwcanhgucw* I S A SI-177U 60 Mog NEWI------749 Dot Flicker Rxer ...... $429 Seagate T rum pcard 500 Rem Expander avaflab**- ST-277N-I 60 M o g ...... 7 19 Dol Perfect S o u nd ...... 569 512k ‘ 1M E9* 2 MEG *4 MEG ST-296N 80 M o g ______. 749 Dol 8T-125N 20 MEG ______------409 DEL Color Splitter...... $119 8T-138N 30MEG ______429 DEL Quantum Pro Drive Mtgrapb Hand S canner $319 8T-157N-1 49 M ES - 23 nw „ ___ 499 DEL PRINTERS 40 M og SCSI Pro D fM e ...... 739 DEL Sharp JX 100 Color Scanner...... $759 8T-177N 60 MEG HEW I ___ 559 DEL 80 Mog SCSI Pro Drtvo ...... 979 DEL Cordless M ouse ...... 599 100 Mog SCSI Pro Drtvo .... 1019 DEL Quantum Pro Drive GP500 O ptoM echanclal Mouse ...549 Syt'e m Ire V jd e tA d a p to r w»1h a u io b a c f lo*-j m 40 MEG SCSI Pro D rV o &19 DEL GUCOO Fully O ptical M ouse...... $65 80 MEG SCSI Pro O rt/o 789 DEL Panasonic rnanuof.Farf 1rofcdjk**1hijfi*« A SCMcofck- With pm*wtupply tyri fa n Gravis Mouse Slick...... $85 100 MEG SCSI Pro Drh/e...... 859 DEL KX-P1124 $277 these cards Inckxte IVS Trumpcard ctrlr, mounting brkl, FREE DEUVERY IN THE CONTIGUOUS 48 STATES Supra 240021 Internal (A2000)...... $139 cbt, software. and FREE dellnryfn the contiguous USA Panasonic 1180.,..* 179 Baud Bandit Modem ...... $106 Panasonic 1191 ...... 239 SBdfJdtB SUPER SALE Mega Midget Racer 25 mg...... $669 r IL-. Supercard...... $75 \SLSlWIIJrtlr'hl'.JrVIi ST-125N 20 M e g-S C S I...... 235 Acflon Replay...... CALL Supra Ram 500 ...... 79 Del ST-138N 30 M e g-S C S I...... 255 Synchro Express...... S65 Supra Ram2000-2 MB,...289 Del NX1000 ST-1S7M 49 M eg-S C S I...... 295 NX1000 ST-157N-1 49 Mog - 28 m s 319 Supra Ram2000-4 MB....449Del Supra 2400 Hi Quality Version Available on AMIGALAND.COMMultifont 2 Rainbow ST-177N 60 M e g-S C S I...... 379 Supra Ram 2000-6 MB....609 Del ST-225N 20 M eg-S C S I...... 255 Ext. Modem A i i r Supra Ram 2000-8 MB.... 769 Del $ 1 5 8 $ 2 0 5 ST-277N-1 60 Meg-SCSI...... 345 FREE DELIVERY ST-296N 80 M e g-S C S I...... 379 & Cable V I 1 0 StarXB 2410 ...... 415 ST-1096N 80 Meg - 2 4m s...... 435 FR EE D E L IV E R Y to 43 Contiguou. Sure. am jg a s o f t w a r e 688 Attack Sub______31.95 C haos ______. 24.95 Empire______31.95 Laser S q u a d ______24.95 Persian S u l Irfem o...... 24.95 Shadow of the Beast 31.95 Ihkitar____ — 57,95 A-Talk 3 ...... ______64.95 C hess master 2100 „ ..31,95 Excellence 1 M a g _____ 158.95 U s lD u e l______24.95 Pha w ri.0 54.95 Shirk Aflack______24.95 T hW Courier — 30.95 Adanllgo.Ttw 114.95 Chronoquwl II .,30,95 Eye Of Horus — ....23.95 Leisure Sull Larry „..25,95 Phoion Paint 2.0., ____87.95 ShufllepuckCafe ___ 24.95 Thteider Blade ... 29.95 After Burner ...... 30.95 Clue ...... 24.95 F-16 Combat P lo l 31.95 Leisure Suit Larry II or I .37.95 Pic M agic______57.95 81m City______30.95 n m w of L o ts ...... 24,95 Airborne Ranger 28 .95 Coderumo Iceman 37 95 F-ISSleallhFlghler CALL LftoandDeath______31.95 Plratesl______28.95 T m atn Ed ___ 14.95 Trackers Quest... 21.95 Al Dogs Go To Heaven..... 30.95 Coloners Beques! 37.95 FA/18lrt«ceptor. 31.95 List A Label _____30.95 Phnef of Lust ...24 95 Skale or Die 25.95 Treasure Trap — 25.95 Alered Bft»!______30.95 Comic 8 e n » . .,59,95 Falcon.. . 31.95 Logfcworks______184.95 Police Ouesl 1 ______.30.95 Bmooth T a ke r.... 25.95 Trumpcard Disk M g r_____ 89 95 Animate______87.95 Comic Ad Disks (each)...20.95 Operation Countersblto .. 16.95 Lo o m ___ 37.95 PcJfce Ouesl R ______37.95 Sollare Royal..._ „„ 18.95 Tumefs of Armageddon 25,95 Aquanaut , 25.95 Conquest cl Camdot 37.95 Fat Tracks______34,95 lords of the F H ln jS m ...31.95 P od of Rjdance 31.95 Space A c t — ._ 34.95 Turbo Orf Pu n ______31.95 ArcHpelagos------23.95 Crealures -- 24 95 Federation ...... 31.95 Lords of W a r _____ 24.95 Populous______32.95 Space Harrier 30.95 Turbo Sfhisr 3.01 Meg _ 11295 Aucto Waster H______82.95 Crfcbags Klng'Ski KJrxj... 25.95 FT^t Slmiialor II 30.95 M 2 A m ija______147.95 Power Whdows I S . .54 95 8 pace Quesl 1 or 2 ______30.95 T V T r t ______84.95 Artec C Developer V5.0_. 177.95 Cross D o s______16.95 Fool s Errand 31.95 M2 Amiga Debugger______77.95 Povm drom e______...25.95 Space Quesl 3 ____ 37.95 TV Ted Professional_____ 99.95 Artec C Pro V5.0______119,95 Curse of the Arurt Bonds .26.95 Future W a rs.. 30.95 Magic Johnson 1 Meg ...... 31.95 Print Misfer P lu s...... 24.95 Space R o g u e ------30.95 Typhoon of 8 t w f ______31.95 BAD------29.95 Cycles______30.95 Qi u K M 11 30.95 M a n h u rfe T -N Y o r8 F _ .3 0 .9 5 Pro Modem______....81,95 Star Fig hi .. ..31.95 Typhoon Thompson . .30.95 B A T... ______31.95 0 B Man, ______167.95 GangNs K h a n ______41.95 Manbc Mansion ______.28.95 ProT cm b T o u ______-.25.95 Star Trek: The Final Front. 34,95 Utlma III, ______24.95 Balance o! Power 1990 30.95 Day ollho Viper______30.95 Grand Prbc C lrcd l______27.95 Matrix Marauders______21.95 Pro Video G old______13995 8tolar Crusade ...... 38 95 UKIma IV ____ 38.95 Bar Games __ ,,,..28.95 Death Brlnger „.„.25.95 Gunsfilp______34.95 Mavis Beacon Typing 31.95 Font P acks ______50.95 Stnrm Across Europe 37.95 U tlm i V ____ ..38.95 Bars and Pipes ....__ 169.95 Deluxe Music Conslr 2.0... 61.95 Kalb of Morferuma...... 28.95 M axlptin3______147.95 Pro Write 3 . 0 ______94.95 Street R o d ... 31.95 U t n Desfcn.. 219.95 Barbarian II ...... 24.95 Deluxe Paint I I I ...... 94.95 Hardball II ...... 30.95 Micro Fkhe Filer Plus 114.95 Pro Fonts 1 m 2 ______21.95 Strike Am ______30.95 UlracardPlus______57.95 Bards Tale I I ______38.95 Deluxe PboloLab 84.95 Heal W ave ______30.95 Mlcroleague Wrestling...... 24.95 Professional D ra w 112,95 Strip Poker t l ______23.95 Universe 3 ______31.95 Batman ______28.95 Deluxe Prim I I ______51.95 Heros Quest______37.95 Midi Rec Sludto V1.T...... 39.95 Profession!! Page______187.95 Stryx______21.95 Vetto______30.95 Barney Bear 0ws/8chool. 21.95 Deluxe Productions ___ 128.95 H lb fa r______31.95 Mighl and Magic 37,95 Project D+ Backup 30.95 Stunt Track * _____ 21.95 Video Effects 3 - 0 ______113.95 Battle Chess ______29.95 Deluxe Video I I I ______94.95 Hound ot Shadow 25.95 Modeler 3 D ____ ..82.95 Prospector Mart* of Zor ..24.95 Super Contra______28.95 VkJoo Tlfler V 1.5______92.95 Battle Hawks 1942..____ 31.95 Dcslgnasaurus 30.95 Hsyles Book of Games 21.95 M onopoly-...... 24.95 Puffy‘s Saga ...... ,25.95 Super Star Basketbal..... CALL VkJopScape 30 ------122.95 Battle Squadron _____ 24.95 Dig Imite 3 ______24.95 If II Moves Sh o d III ...... 18.95 Movie Setter _____59.95 Purzle Storybook 25.95 Superbase Personal ___ 48 95 VNi-AmJgi ____ 122.95 Baffles ol Napoleon ___ 31.95 Dlglpalnt3.0 ______64.95 Imperlum______25.95 Musk: X — 169,95 Quarter Back 42.95 Supertas* Personal 2 ___ 67.95 Voice Recognition ..... 109.95 BatflctechTho Cr Hklnc. ..30.95 DigMew Gold ...... 124,95 Indiana Jones-Actton Qame25,95 Neuromancer 28.95 Ramboll) 22.95 Superbase Pro 3 .0 _____ 189.95 Voile* .. ... 24 95 Baud Bandit______30.95 Dinosaur Discovery Kit 25.95 Indiana Jones-Graphic AdY.30.95 New York Warriors-1 Meg 30.95 Rampago ____ 24.95 Suporbfke Simulator 30.95 War InMkJdte Earth 30.95 Bermuda Project 24.95 Dbk Master______28.95 InfestaBon______24.95 Night Forca______28.95 Raw C opy______34.95 Super plan 87.95 War ot I tie Lance ______25.95 Beyond Dark Castb 22 95 Distant S u n 41.95 IrtroCad 48.95 Night Hunter______25.95 Red Storm R isin g 34.95 8words of Aragon 25.95 Waterloo______37.95 Blade oieiecI Hockey 28.95 Dos 2 D o s ----- 30.95 Irm vlslon*______. 174.95 Nuclear W a r- „ 30.95 Renegade ..22.95 Swords of Twilight 31.95 Wayne Gretzky Hockey 30.95 BbckOUt______25.95 Double Dragon I I ...... 24.95 Iron L o rd ...... 25.95 Omega..,- - „ 30,95 Rhyming Notebook.. ..25.95 T.V. Show V2.0 64.95 Weird Dreams -...24.95 Blue Angels ...... 30.95 Double OrlbWe 20.95 Island of Lost H o p e 23.95 Omrfptay Basebal;5on5 30.95 Rick Dangerous ...— 21.95 T.V, Spods Basketball 31.95 Wiliam Tell 25.95 Bdng - The Gama ..... 24.95 Dragon Force ___.....31.95 II Came From The Desert.. 31.95 Omnlptiy Hsrse Facing .... 30,95 Rick Dads Soccer 1 Meg ..30 95 T.V. Spods Footbal_____ 31.95 Wind Wafcei 25.95 Breki Blister _____ 25.95 Dragon's Lata.... .33.95 Jack Nteklaus Golf ...... ,,.30.95 On Line Platinum______58.95 Rings of M e d u sa 28.95 Targtun 24.95 W in g s______31.95 Broadcast Tiler______CALL Dragon's Lair 8 .. 43.95 Joan of A rc ______.... 28.95 Owr R u n ______37.95 R b k ______24 95 Tax Break 2.0.. ...48 95 Wings of Fury______24.95 Budokan ______25.95 Dragons cf FUme 25.95 Kampfgmppe ...... 37.95 Opera&on Wo I ------.22.95 Robocop------28.95 Teenage Muntart Turtles ..28.95 Works Pktbiun. TTw 167.95 Can Do______84.95 Drakkhen ______36.95 Karafonts Headtnesl o r2 44.95 Page tenderer 3-D ______84 95 Rocket Ranger 31.95 Tetris______20 95 World Atlas______3S.95 Carmen SanOfego'Eijrtf^. 30.95 D.UD.E.______....29.95 Keybd. Control 8eqL3....2l2.9S Page Setter 2 - - 74.95 Romance/Three Kingdoms 44.95 Test Drtw 2 -The Duel _..,30 95 Wo rkj Class Leader B d — 28.95 Carmen SartflegtfJSA „.„30.95 Duigeon Master _ __24.95 K h g 's Quest 1 Z o r 3 _ 30.95 Page Stream ______119.B5 Scene Generator______24.95 Cal Chalenge______15.95 Xenptobe ______25.95 Carmen BanDiegoMorid ..30.95 EartWeawtr Basrtal ...... 31.95 King's Quesl 4 ______37.95 Pagefiipper P h a f X . „ 87.95 Scrabbb______24.95 Euorpean Chaknge ....-15.95 Zak McKracten ______23.95 ChanYScl-Mul Priestess „ 30.95 Comm orMLBPA- „ 14.95 Knights of legend ____ 30.95 Panzer Strike...... 29,95 Scrfcbte PLitkium______87.95 M m d e o r Super Cars ... 15 95 ZorkZem ______38.95 Chamoiora of Krvwi 31.95 Elan Performer ______..35 95 Krtatal.Tho. ..31,95 P e n P a l______84.W SexVbrens-Ouler Soaoe 22 95 Thetr R w ! l k ) t e 37 95 NO CREDIT CARD HOURS INFORMATION VISA MON-FRI 9am-9pm 414-367^181 FAX414-367-7814 SURCHARGE SAT llam -Spm P.O. BOX 17882 MlHwnka*. Wl 63Z17 O R D ER IN G INFORM ATION I Spacfy in b n . Fov lalt O+lrvy w rdaiNti'i cb«c* or r r r* dar. Fcionil ird oompdrfy ch«chl alow 14 bulJftMl 4t>llo UMf. School P.O.'l m to r^ . C.O.D. fhntjM or* K O O. In CoW 'd'lll UAAInclJlN 34.00 'v n h w i onWf* 6% ihijphg lor hi/Aw t, mlnfnj*i JS.OO Un!«Ci"8in4 YW c d fi plow inckio* wcj I. •>9i7hYi tin!* i"4 LQ-aLFi W m ldW .i Yvc'-jOO S V u «i Lll HI, AK. FCO, AFO.f'Drt) rSao vifj C 4 n U * ^ w W i . M w *O d «h p pi . minimum KXO.AMc*h*r ForWgn ordum add 13% •hipping, minimum S13JJ0. AhC"d*m iHppm/o.au* r*Co- UJ1 S- «-» h-_! fnn **d U-G.i*>*». Ii’ .mi-- ch*'9* * t u M d t* minimum Amount you wtl ch*T>»d •dJttor*! umewn; A* pood* ■rm rm andlrtcUda kttoy — rTanty. W« da fwt g-jJirWa nr'MS'SHV I n n b i I I Ouu hoc- low p-cat al u m i f rVva!. All M k IM rvlirm mwtl '«*♦ * mluf* PVim ca-S (414) 357 N181 to otW" v RA. • Of jw r mtym *9 nd ba ■epppwd. rtrYit ;o wmoui rnisu. Shipping p.ra rjnd 'vg m* mnYprunaibW W» »Wip thp latiii vaob-i i« U ia to uc. upOiWi m viiai h*ndmd&s *nd .m d'pcty wth It* manuTtturm.______Circle 117 on Reader Service card. Free Spirit’s Dragon Scape Virgin Masterironic’s Risk surgery, and obviously under the influence of some pretty serious As your energy drains from flying around and making contact anesdiesia! with aliens, your dragon loses its skin and becomes just a skeleton. The subconscious, appropriately enough, is a weird place. If the skin vanishes completely, you explode and the game is over. Giant bees just want to sting you for tire fun of it, two-legged A red power pill is present in most levels and can be used to gargoyles want to stomp you, and nasty flowers want to eat you for recharge your dragon to full strength by direct contact. It doesn't lunch. Not a nice place at all... maybe it was that pizza you had last really want to be used, though, so you must trick it into letting you night for dinner? touch it. Fortunately, there are many items in this realm you can use The graphics are once again very nice and up to arcade to defeat the obstacles set before you. A stick can beat die flowers quality. The background scrolls very smoothly and many objects into the ground and a fly swatter can scare the bee back. The other can be on the screen at once without noticeable slowdown. The obstacles can also be overcome, but it does take a bit of creative sounds are digitized, producing a smooth “You got it“ and “Yeah!'- thinking to do so. when you grab and place an artifact correctly. The graphics in the game are very sharp and clear. They ob­ The problem with this game is mostly one of control. The viously took some time here. The backgrounds are frill of rich de­ dragon is slow to respond to your commands, and often takes a tail and the characters move very smoothly across the screen. Hope­ while to actually go in direction you aim him. And the re-power dot fully,Hi Quality Version Available on AMIGALAND.COM Microprose will realize how good dais looks, and make their seems to hang out right in the middle of a bunch of enemies. For other games just as sharp. the most part they can be ignored, but diey do drain some strength. Control is via the joystick, which generally works w'eli, but And shooting them seems rather worthless since they just seem to can also prove to be a major sticking point. While die puzzles do quickly regenerate, while you tend to take damage as you fly into take a while to figure out, implementing the solutions often causes your own flames. Generally I just avoided firing and making problems, mosdy due to delays by your onscreen alter ego in contact. executing your commands. Because there is no save option, each While the game has fabulous graphics and nice sound I game involves working through the same basic and repetitive cannot recommend it because of the extreme difficulty of success­ puzzles as you seek to make it to the later ones with sufficient ful play. Now if they use what they have learned here and put a strength to confront your adversaries. good interface on top of it, we should have a product people will In spite of this, a complete play-through of the game is rather line up to grab, short, once you get all the tricks down. Perhaps this is why they don’t offer a save feature, with drat the shortness would have really DOUBLE DRAGON II been apparent. Double Dragon H follows the themes begun in the original Weird Dreams is a bit too bizarre for my tastes and the control Double Dragon. One sole survivor of tire original enemy gang has is too difficult for me. But those who really enjoy solving puzzles somehow revived the gang leader and his cronies. Naturally, his and who are moderately good with a joystick may have a good time. first act was to kidnap and torture your girlfriend. Once again, iL is off through waves of bad guys with only your fast wits and powerful DRAGON SCAPE body to aid you. Dragon Scape is a recent arcade release from Free Spirit The bad guys come in a wide variety of shapes and sizes. Software. As usual, dre kingdom is lost and it is up to you to restore Some are relative pushovers and others vail take quite a beating it. Only by gathering each of the magical relics and restoring them before they go dowm for good. Some even fight with deadly' to dieir proper place can you save your planet. weapons that you can capture and use for the remainder of the Each level in Dragon Scape has eight different pairs of relics current level once you defeat them. that must be matched up. While you are riding a dragon, tire objects Not one game discussed here has bad graphics, and Double themselves are mosdy contemporary in nature: a drill bit must be Dragon II is no exception. The backgrounds are detailed and scroll dropped on a drill, a cassette tape must be reunited with its portable smoothly while the characters move easily as well. The sounds are player, and so on. I am not sure how many levels the game has in nice and the joystick control is very easy to use. total since the rules are a bit sparse and I was only able to get into The only' major control problem I had was when I got tire second level after several hours of playing. knocked down and then had to get up in the midst of a group of bad guys. Usually they would get a shot in and I would be down The map scrolls around and only' about a sixth of the world is visible on my back repeatedly until I finally lost my present life. at a time. Other than that I didn’t have too much trouble doing in my The game is a bit slow with computer players. They can take opponents. But that is the other problem. The game seemed really forever to make up their minds, and then their moves are often pointless, It was just a series of successful jump kicks and marches pretty poor. Even when they get on a roll, they tend to make the along the way, until I got caught in the midst of a group of bad guys, mistake of overextending themselves and become open to easy Then I would rend to die quickly, but restart with a new life and conquest, because their forces are spread too thin. mow them down from Lhe outside. My game finally ended when While die game is enjoyable, Risk for die Amiga falls short of I met up with a sword-swinging samurai who was almost untouch­ utilizing the computer’s full potential. Other more detailed conflict able, After a few minutes I was out of lives (he was barely scathed) games are out, or are coming out soon. 1 would recommend and the game was over. This man serves as a guard over the rest skipping this one, unless you just love die board game. of the game, preventing any future progress. The game is actually OK as far as arcade action goes. Perhaps Remember to take a break to see the sunshine during all y'our I am just getting jaded with the genre and want more thinking gaming this summer! involved. While 1 like some mindless entertainment, this seemed a •AC- bit too mindless for me. Aid then hitting that brick (or sword) wall was frustrating to no end. Still, the game is sure to please the true r N action fan. THIS MONTH'S GAMES

RISK Typhoon Thompson, Search for the Sea Child Adding to their line of Parker Brother's licenses, Virgin Mas- Broderbund Software Inc, tertronic has made Risk available to Amiga owners everywhere. 17 Paul Drive San Rafael. CA 94903 While most people have not heard of some of die odier wargames (800)521-6263 discussed in this column, nearly everyone has heard of Risk. With Price: 544.95 its intelligent mix ot a little bit of strategy and a lot of luck, die game Inquire A207 has become a favorite of many game players, young and old. For those who have lived in a cave for most of dieir life, the Day of the Viper Accolade basic goal in Risk is to conquer the world. The map shows the entire 550 South Winchester Boulevard, Suite 200 earth from an overhead perspective, divided up into 42 different San Jose, CA 95128 territories. The person who winds up occupying all of them wins. Price: $19.95 No navy orair force here—armies hold sway, and are the sole Inquiry #208 implement of foreign policy. Each turn, a player gets a number of newHi Quality Version Available on AMIGALAND.COM armies based on how many territories he controls, plus bonus Weird Dreams Microplay Software armies in the event he controls any of the five major continents. The 180 Lakefront Drive player adds diese new forces to existing ones, and dien attacks any Hunt Valley, MD 21030 adjacent territory' he chooses. To end his turn, the player takes one (301)771-1151 “free” troop movement to consolidate or solidify' his global forces, Price: $39.95 and draws a risk card, only if he was successful in capturing at least Inquiry #209 one enemy' territory, Dragon Scope The risk cards are a focal point of play, since they can be Free Spirit Software turned in for increasing numbers of bonus armies as die game pro­ P.O. Box 128 gresses, encouraging broader invasions and expansion attempts. 58 Noble Street The dice are the sole determiner of combat. The attacker rolls Kutztown, PA 19530 up to three, one per attacking army (he can attack with more than (215)683-5609 diree armies, but can only roll a maximum of three dice), while the Price: $39.95 Inquiry #210 defender is limited to a maximum of two (again, one per defending army). Double Dragon II The dice are ranked in order and matched to see who loses Virgin/Masterfronic armies, with the defender winning all ties. Sheer odds often work, 18001 Cowan. Suites A& B but it is not surprising to have a sole army in Alaska fight off a Irvine, CA 92714 (714)833-8710 massive invasion from Asia, thus saving the Americas from domi­ Price: $39.99 nation, Inquiry #2 1 1 Two to six players can compete in the Amiga version of Risk, with the computer filling in for any or all positions. Four different Risk variants are covered: The U.S. Full Game, the U.S. Short Game, the Virgin Mastertronic 18001 Cowan, Suites A & B U.K. Full Game, and the U.K. Short Game. Irvine, CA 92714 The mouse is used for all control during play and works fairly (714)833-8710 well, though it can be a bit tedious for some actions. Keyboard Price: $39.99 equivalents are available for some functions, helping out here. \ Inquiry #212 The graphics are nice—but not spectacular—and the sound for the game is limited to simple beeps when actions are carried out. ! Bs one of the first 100 people to purchase K) 0} R) A) F jlJ S KeyCraft or ProPOD from this ad and we'll Become a power user with KeyCraft, the keyboard and mouse macro-maker for the Amiga. include "PD-Povver”, our exclusive collection Customize applications to work the way you want them to... Double your productivity... of power utilities for the Amiga. FREE! Triple your typing speed... Create realtime animations with any paint program! Act now to receive KeyCraft at this low introductory price (don’t forget to ask for your free “PD-Power") Win $2000 in Fish! Stop searching through those RKMs! Were giving away the entire Fred Fish Program m er's'^ version 1.3 V ProPOD provides instant access to all Collection (estimated $2000 value) to one lucky ^ system structures and function-call member of the Amiga community. To enter, H templates at the touch of a key! You’ll send a self-addressed, stamped envelope to: save valuable programming time when SSI Free Fish Contest P ro < POD r you let ProPOD “look it up" for you! PO Box 59800 ^O nline D atabase^ regularly $39.95 Guaranteed to increase your coding Chicago, IL 60659 now only $ 29.95 productivity, or your money hack! One entry per person. No purchase necessary-. Void where prohibited. Winner's name will be To order, calll -800-458-2995 published in the June, 1990 Amazing Computing. StraiahtLinev ' irm vwrtos Deicnca & oerwwon Software IwO Inc. 3818 North Kimball Avenue • Chicago, IL 60618 IL & overseas call 1-312-539-5506 Contest ends 4/15/90, and entries must be Wail orders to: SS! • Box 59800 ■ Chicago, IL 60859 Visa, MasterCard, and CQDs accepted. received by then. Rules will be sent to all Be sure to ask for your free 'PD-Power' disk. Wnen ordering by mail, include $2 s 8 h. Illinois residents, contestants (that’s why the SASE). Good Luck! olease add 7% sales tax. Introductory prices valid until 2/15/90. Circle 106 on Reader Service card.

fP ageStream , continuedfrom page 17) trying to reach their sales office to get Draw does create the EPS format, so Since Postscript is available in the the number. In fact, none of the appen­ theoretically there is an. option to work QMS PS-810 plus, there is no need for me dices are listed in the Table of Contents. with both programs. Practically, how­ to run it in HP emulation mode anyway. I did find a "Quick Contents" page in the ever, EPS files are not displayable on 1 bring it up only’ because there might be manual (immediately following the screen, so sizing and cropping of the other LaserJet-compatible printers that cover page) drat does list: the Appendix EPS images are impossible. Also, EPS won’t work properly with the program. If contents, but it is located ahead of dre images will only print on Postscript you own PageStream and have decided front matter, not where I would nor­ devices, so if you don’t have access to a to rake the plunge and buy a laser printer, mally expect to find it. Postscript printer, you are still out of be sureHi Quality Version Available on AMIGALAND.COM you have the option to return it if My last major complaint is with re­ luck for making die two programs work PageStream doesn't drive it properly. gard to the list of supported import together. As is the case with most productivity filters. PageStream is lacking in struc­ The few problems notwithstand­ software, the PageStream manual itself is tured drawing import filters. The only ing, PageStream is one powerful and not very user-friendly, in that the index is two formats supported are Aegis Draw capable desktop publishing program. entirely inadequate. Every' time I tried to and MetaFile formats. I don't know of Soft-Logik has demonstrated a commit­ find a specific entry it was not in die any other program that supports the ment to die program that has seen it index, and I ended up paging through tire MetaFile format, though Aegis Draw is a through three major and much-needed manual looking for what I wanted. For rather popular structured drawing for­ upgrades in a relatively short period of example, there were several items I mat on the Amiga. There should also be time. With that track record, I expect diat wanted to find out about while working an HPGL format import as many draw­ work will continue to squash the few with Page values. The only entry in die ing programs have drivers that can remaining bugs and to improve an al­ index that starts with Page is Page Num­ generate plots on die Hewlett-Packard ready' powerful program. I would not lie bering, How about Page Creation, Page Graphics Language plotters. The import afraid to use diis program on a regular Deledon, Page Moving, or any number of filter diat is really missed by this desktop basis anymore to do production desk­ permutations involving the page? Indeed, publisher is one written to import files top publishing. With its use of master the entire index for this sophisticated created from Professional Draw. Profes­ pages and paragraph tagging functions, desktop publishing package manual is sional Draw is currently the only profes­ it has already become my desktop less than two 5 1/2 x 8 1/2 inch pages. sional grade illustrator program avail­ publisher of choice for large document There is also no entry in the index for able for the Amiga—its lack of support production. Technical Support or Customer Support. in Page-Stream is almost inexcusable. ■AC* Appendix A is titled Customer Support Soft-Logik’s answer to diis is that Gold and contains w o pages of technical Disk, the publisher of Professional PageStream 1.8 support information such as phone num­ Draw, won't release details of the file Soft-Logik Publishing Corp. bers and other pertinent information format, and is keeping the format infor­ 11131 S. Towne Square, Suite F about Soft-Logik's support policies. I mation a proprietary secret. St. Louis, M l 6 3 123 could not find a technical support tele­ PageStream does import Encapsu­ Inquiry ~ 204 phone number and spent much time lated Postscript files, and Professional Miniates

by John Steiner

STEVE TIBBETT, AUTHOR OF search text. In other words, the function Another MaxiPlan III bug reported in­ VirusX, one of the most useful virus detec­ appears to find only the first word in die volves the saving of a when tion programs available for Amiga owners, search string requester. Once the files are more than one sheet is active. Occasionally announced via electronic media that a highlighted and you try to search these files during the save, die title bar of the spread­ bogus version ofVirusX recently appeared. for additional words to narrow tire search sheet being saved will contain the file name The phony program is found under the criteria, tire program crashes. of the other active spreadsheet. According name "'VirusX 4.4". According to a posting .Another less dangerous bug—and a to the letter, “The spreadsheet is actually on PeopleLink left by Mr. Tibbett, VirusX workaround for it—was posted on saved to the correct file, and immediately 4.4 appears to be a slightly modified VirusX PeopleLink. If you want to use the List Files after the save, die fide bar is corrected. 4.0 archive. The 4.4 archive contains a new requester to print multiple files and Nevertheless, diis bug can cause substan­ "Virus" entry appended to the docs and has highlight several files to print, and the files tial terror as one sees one's file apparendy a longer description of this virus appended are in a subdirectory instead of tire root being overwritten.” Mr. Stader goes on to to the source file. Also, some punctuation director,', the program cannot find the files. say that he has paid nearly S250.00 for the in Hi Quality Version Available on AMIGALAND.COMthe source file was altered, and the 4.00 It notifies you of this fact for each file you original program and updates, and every version num ber was patched to 4.40. have highlighted. version he has used has had numerous By the time you read this, there maybe To work around tills problem, simply bugs. Many of die bugs have continued to another genuine release ofVirusX available copy (choice 8 on the List Files requester) exist in several versions, even though he that includes a few new features and the tire marked files to RAM:, then batch print and others have reported them. ability to detect some new viruses. It will from there. According to the person who Other correspondence has referenced not be numbered Version 4.4, so there left the posting (thanks Destiny), tliis prob­ additional problems found when using the shouldn't be any confusion. If you have lem and its solufion were acknowledged by latest MaxiPlan III upgrade. These people Version 4.4 VirusX, don’t give it to anyone WordPerfect's technical support. also complained of die non-responsive- else. Destroy it. VirusX is a public domain ness of the people at Intuidve Technolo­ utility, and can be found on most BBS THE SAGA OF MAXIPLAN III AND gies. In early April I again placed a call to systems and information sendees that have Intuitive Technologies continues. In this their customer support number, and left a Amiga software, or you can pick it up from month's mailbag, 1 received more bug message on die answering machine. I have a friend at your next Amiga Users Group reports from readers regarding MaxiPlan now left two messages and have yet to meeting. III. William Statler ot Richland, WA sent a receive a reply, even though Intuitive copy of a very detailed 6-page letter, Technologies’ recorded message assures WORDPERFECT HAS A COUPLE OF complete with screen dumps, delineating users diat their calls will be returned. bugs that can cause loss of data if you are several major problems in MaxiPlan III, not careful. As an avid user of WordPerfect, Version 3-5. Bugs reported include I RECEIVED A LETTER VIA 1 have run across a couple of bugs that are problems with the graphics routines and a CompuServe EMail from Tom Gist related to the List Files requester. I have major bug that can actually result in the regarding a flaw in all versions of M2Sprint. also learned to use the automatically timed spreadsheet generating incorrect data—an Quoting from his letter: backup which can be activated when you unforgivable fault in a spreadsheet "There is a problem widi die M2Sprint first set up and install the program. program. The problem with die generation Modula II compiler’s handling of real and The automatic backup has saved my of incorrect data occurs in minimum iongreal numbers. For instance, the code work for me on several occasions. If you recalculation mode, w hen some cells fail to fragment use tire search option (number 9) of the List update. When cell names are used in Files requester, it works just fine to high­ formulas and the formulas link cells in a x := 0.05; light the names of the files that contain the certain way, not all cells are updated WriteStringCx := '); target search. However, the program seems properly. If you use minimum recalculation WriteReaI(x,15); to stop searching at the first space in the mode, Ire sure to test any data thoroughly. WriteLn; produces x := 0.5 instead of hard disk appended to archive/restoration

X := 0.05 report filenames, Restore Full Subdirectory Structure option improved, volume num­ I’ve been trying since mid-Jan 90 to get ber added to archive/restoration reports, ^ Q H o a a d A n Preferred Technologies to fix it and get me volume number added to QB backup vol­ a corrected copy. After extreme ume disk ID, included/excluded status of pressure...Leon Frenkel sent me version directory shown on catalog, wrong volume ' y p e r c h o R ^ 1.12. Unfortunately, his technical people error messages expanded during restora­ knew in January that 1.12 did not fix the tion, backup volume "test” mode added, by Hologramophone Research problem. Furthermore, he stated, "You file count display increased to 5 digits originally purchased M2Sprint from a (99,999), and volume count increased to 3 company called M2S, Inc. We subsequently digits (999).

FjpjnJfti lfin *p w||H|lil|lll|l^]lu|lll|.»l|lll|jlll«M|lll|| but we did not assume any obligations or in this release. It no longer leaves read libalities [sic] of M2S. Also please note, locks on subdirectories, no longer causes SufHrttiH almost all software published today has a the Amiga to crash after Quarterback exits, disclaimer specifying that it is sold "as is” and no longer crashes upon loading tire and is not guranteed [sic] in any way. Even second disk when the alternate catalog is though we are not legally obligaLed we will split across two disks. Tire upgrade is only always try to help a customer who is having $10.00 including postage, and you must a problem with any of our products.’ ’’ send them your original serial-numbered Bcoonaaaaa E3aEDEGn3an Mr. Gist goes on to say chat further Quarterback diskette. Contact: Betty □□BaacEima assistance was not forthcoming, and that lie Chamberlain, Central Coast Software, 424 Turn your Amiga into a powerful newinstrument would ‘‘hate to see someone spend a siz­ Vista Avenue. Golden. CO 80401. (303) w ith Hyperchord™, the dynamic riff sequencer. able amount of money to get M2Sprint, 526-1030, Inquiry *200. Create themes, from simple scale runs to thinking they could use it to perform real complex "Riff Waves," using original Hg number calculations (as I did), and then GOLD DISK IS EXPECTED TO HAVE functions such as Smear, Rotate, Weave, Reverse, and Mix. Change pitch, speed, rhythm, discover that il doesn't work, and Preferred released Professional Draw version 2.0 by harmoniesandorchestration. For intense riffing, Technologies is not fixing it,” the time you read this. Information posted switch between 60 user-defined scale modes I placed a call to Preferred Technolo­ to PeopleLink indicates that the upgrade and 40 rhythms, or employ unique cyber-musical gies and talked to Mr. Frenkel. He com­ price is set at S60.00 and can be ordered tools such as Holistic Play and Vector Play. Store mented that he sent die 1.12 upgrade to Mr. immediately- Major improvements to for real-time playback or record performance. Gist and waived the nonnal upgrade fee. Professional Draw include the ability to Disk includes three Hyperchord utilities: Mode He said that lie was not aware of the reason create text that follows a curved line, and Maker,Hi Quality Version Available on AMIGALAND.COM Rhythm Maker, and Holistic Window. for the upgrade, but sent the upgrade as a much faster operation, Contact: Gold Disk, Hologramophone's customer courtesy. He said iie was not Inc., Box 7S9, Streetsville, Mississauga ON aware of any problems with the program Canada L5M 2C2, (800) 387-8192, incorrectly handling real numbers, but if Inquiry #201. Mr. Gistwould write with the details of the f X O U f t a problem, he would look into the matter. MICROBOTICS ANNOUNCED AN upgrade to their HardFrame disk P QUARTERBACK, FROM CENTRAL installation utility, RDPrep. The major Coast Software, was one of the first hard advantage of the upgrade is an entirely THE MUSICAL GRAPHICS PLAYER disk backup utilities for the Amiga. The “point-and-click” graphic interface that is Listen to a Lichtenstein! company has sent notices to registered much easier to use than previous versions. Pixound™ is new kind of musical instrument as users of Quarterback that Version 4.0 is You may receive die upgraded version by well as a powerful MIDI controller (uses Amiga now available. Several months ago, you either downloading it from the MicroBotics g ra p h ic sounds loo). Load up any may recall a bogus version of Quarterback user support conference on BIX, or by image or use Pixound's s c r e e n was posted to several electronic bulletin sending $7.00 to Microbotics and generators. Invent a new i n st r u ­ ment w ith every screen, th en play boards. This program was a pirated, modi­ requesting the new HardFrame Installation w ith the fied copy of Version 2, and was not a valid disk. Contact:MicroBotics, Inc., 811 Alpha mouse. Create release from Central Coast Software. Drive, Ste. 335 Richardson, TX 75081, I I shimmering So end users will not confuse die le­ (214) 437-5330, Inquiry *202. 1 1 bursts of notes gitimate update with this bogus version, or slow, lyrical CCS has skipped over Version 3.0, and That’s all for this month. If you have harmonies with gone direcdy to Version 4.0. The company any workarounds or bugs to report, or if the touch of a announced that there is no support for any you know of any upgrades to commercial flay LkhTonililn 11 Woman Sitiing On S Chuli" k e y . 5 JV € y O U f version of Quarterback between 2.3 and software, you may notify me by writing to: work either as a musical sequence or a screen- 4.0. The latest official version contains or both. Great fun for the beginner; endless challenge for the virtuoso. several new features including: available John Steiner hard disk volumes displayed for easy selec­ c/o Amazing Computing Circle 103 on Reader Service card. tion, visual progress bar (fuel gauge) added Box 869 Fall River, MA 02722 ... Hologramophone to volume status boxes, Print Catalog or leave EMail to Publisher on PeopleLink {(m m pf|\] Research added to menu, volume/device name of or 73075,1735 on CompuServe ( | | § ! ! W )j 6225 S.W. 145th Street •AC- r t n r: j - OO-ICQ Miami, i lonoa J j loo A n i m a t i o n

C o m e s

T o

D i g i P a i n t

DIGLMATE 3 IS A NEW ANIMATION UTILITY PROGRAM WHICH, AMONG OTHER

tilings, lets you animate using DigiPaint 3. Before we get into the features, there are a few re­ quirements that you must have in order to make full use of this program:

DIGIPAINT 3

While there are powerful animation processing utilities included, the main part of die pro­

gram is creating ANIM files using DigiPaint3. While most utilities can work with DeluxePaint III Hi Quality Version Available on AMIGALAND.COManimations, die center of the program is controlling DigiPaint 3 “frames”.

AREXX

You may have heard of this program and not known what it was, but when Workbench 2.0 comes out, it will

be as familiar as “IFF”. ARexx is becoming a standard pro­

gramming language, one that will be incorporated into the

new version of Workbench. If a program such as DigLMate

3 or DigiPaint 3 supports ARexx, it means the program has

a “port” ora “backdoor" which allows users and program­

mers to actually control the program! DigiPaint has the

“port” in this case and DigiMate is the “controller", which

is how DigLMate animates DigiPaint graphics.

What does all this mean to you? ARexx is a “transparent” program in this case, and while

you do need a copy of the ARexx program in order to run DigLMate, you do not need to have

any programming skills—you need only to look up how to install the ARexx program. It is very

easily done, I might add. ->- creation" and you probably thought of After you create your first frame Disney, or perhaps the process of drawing (which can be a stamped-down bmsh, a cartoon frames on a peg board. This is the HAM graphic, etc.) click on “Open Anim”. concept of animating with DigiMate and it The previewing of your animation will be is important to note that the program does played directly off your device through the not “move” graphics around the screen for use of an included feature called you. It does provide you with stacks of “DiskAnim”. This plays a frame at a time as blank frames on which to draw the motion, soon as the frame loads. As you might frame by frame. It's not as tedious as it expect, it’s pretty slow from a floppy but WJ/ffisEWS W 0®8 sounds at first, and tire program helps with somewhat faster off a hard drive. The best Since we at Amazhg Computing™ cannot determine different features such as automatic copy­ choice is saving to RAM disk. the dependability of our advertisers trom their ads olone. we want your feedback. ll you have haa a ing to next frame. So all you do is add the Once your ANIM is opened, tire first oroblem with an advertiser in AC™, let us know! Send animating part and click on “Add Frame”. frame is automatically saved and you tire a complete description of your exchange(s) wilh ine advertiser—along with the names of the Individuals Once you have started the DigiMate returned to the DigiMate screen. Clicking involved—and we'll do our best to get to the bottom of things program running your next step is to start on the “screen back” gadget brings the Ad Complaints up DigiPaint. Both programs will be run­ DigiPaint screen up front. Now you create PiM Publications, Inc. Amazing Computing ning during the animating, and you will the second frame. You may either pick up P.O. Box 369 Fall River, MA 02722 switch between then via “front to back” your brush and move it slightly (DigiPaint’s gadgets. It is tire first time I have seen built- coordinates should be on during this pro­ in multitasking in an animation program! cedure), or draw in your next graphic or 2 DISK DRIVES “cell”. Traditional cell animation can be This program accesses your Work­ tough because there is no tracing or "auto- bench, ARexx disk, DigiPaint disk, ON-LINE HELP bluing” like in “Zeotrope" for example. DigiMate disk. AND whatever disk you The main DigiMate screen contains vari­ This would provide an outline of tire pre­ save your animations on! I deleted several ous buttons which only require a mouse vious frame to go by. I recommend using fiies on a backup of my W orkbench disk click to activate. One excellent feature is DigiMate with a genlock and tracing cells and squeezed ARexx on it. This helps, but that if you position the mouse over any that way, or better yet, digitize them and does not eliminate disk-swapping. If all button and hit the “Help” key, context- load them into the program. All DigiMate concerned programs are on a hard drive or sensitive on-line help appears (which can shows is the last frame created, which can in RAMHi Quality Version Available on AMIGALAND.COM at once, the system runs like a even he edited by the user). The help be drawn over or altered. champ, but with disks at least 2 drives are screens are part of the T.A.S.S. system Once you have created your second highly recommended. You might possibly DigiMate runs under. T.A.S.S. stands for frame, switch to DigiMate and click on the get by with one drive—but loose your “Thut Application Suppon System”, an “Add Frame” button. Repeat this as many sanity in the process! application development architecture times as needed and choose “Close Anim" framework which is incorporated into this when you are done with your animation. It 1 MEG CHIP RAM/1 MEG FA ST RAM (and other) Mindware products. T.A.S.S. is that easy. Preview your ANIM at any time We are working with HAM anima­ creates an environment different from stan­ by clicking on the “Play Anim" button. This tions and pics running between two pro­ dard Workbench routines (such as vertical- allows you to check details such as speed grams, and that eats up chip memory fast. scrolling windows and pop-up menus). I and smoothness. There is also a “Play If you want to do interlace HAM anima­ have found this framework much faster and Loop” button for continuous play, A tions, you need the 1 meg Agnus chip and easier to use than Workbench (pull-down “ShowAnim" button with speed control is as much RAM as possible (at least 1 meg). menus, etc.) and that difference adds up to on the main screen. To use it, however, you If you lack either, a smaller version called more productivity. Like ARexx, T.A.S.S. is must first obtain a copy of the Sparta Inc. “Tiny DigiMate” is included which mns an up-and-coming system you will be public domain program and copy it to your from the Workbench screen and omits hearing more about. “C” directory. some of the program's features. CREATING A HAM TRANSITIONS Now that we know what the program DIGIPAINT ANIMATION DigiMate also provides tools to create needs to mn, let's get into what it actually Once both programs are running, to transitions from one HAM graphic to an­ does. switch between the two you need only hit other. Both graphics must be of the same The program is a collection of several the “screen back” button, which brings resolution, and both DigiMate and Digi­ utilities that provide animation cell crea­ either program to the front. DigiMate can Paint provide tools to convert graphics to tion, HAM transitions, image and ANIM be positioned automatically at one-third tire correct size. With the “DIM” gadget in processing, and even a tool kit to work on height so even though it is in front you can DigLMate you can even enter in the exact disk files. You noticed I mentioned “cell still see your DigiPaint graphic. screen width and height, which helps in bringing in overscan graphics of vari­ ous sizes. I have found overscan graphics work with no problem. Transitions include circles, wipes, blinds, rub throughs, reveals, facies, rectangles, and ellipses. Some require two graphics, while others— such as fade—only require one. Addi­ tional transitions can be created using “Ed” on your Workbench to alter the ARexx macros. There are 6 additional ARexx macros to get you started. You can even alter your DigiMate screen to Make Your include your new transitions by load­ ing die screen into Deluxe Paint III and Programs changing die text on a gadget! After you load your two graphics Take Off into DigiPaint, select the transition, and tell the program die correct resolu­ With Lattice C tion (diere are buttons for regular-sized graphics, and “DIM" can be used for Create the fastest programs in the shortest time with the high-powered Lattice" C inputting overscan dimensions), you Development System! Lattice’s optimizing C compiler lakes your code and generates type in a filename. When you hit return lightning fast programs. Hundreds of library' functions and more than a dozen utili­ the program begins to generate the ties help you build your programs in record time. transition. With HAM graphics it can take a while to render frames, but short Order the Lattice C Development System and you get: 10 frame transitions take around 5-10 ♦ Optimizing C Compiler ♦ Compiler Companion Utilities minutes. After die process is completed you have a standard ANIM of the tran­ ♦ Source Level Debugger ♦ Code Profiler sition that can be loaded in and played, ♦ Macro Assembler ♦ Disassembler orHi Quality Version Available on AMIGALAND.COM altered. ♦ Overlay Linker ♦ Extensive Documentation

IMAGE AND ANIM PROCESSING ♦ Lattice Screen Editor ♦ Unlimited Free Support Until now, we have been saving Lattice offers a complete line of programming tools including our C++ compiler. ANIMs to disk or RAM and playing MS-DOS to AmigaDOS C Cross Compiler, Libraries. Utilities, and C program­ them from there. Through the ming seminars. Call or write for a free catalog. “DigiPics" window' we can load graph­ ics or animations into RAM and process Phone: 1-800-444-4309 Lattice, Inc. them. Many options are available, in­ 708-916-1600 2500 S. Highland Ave, cluding: FAX: 708-916-1190 Lombard. IL 60148 Telex: 532253 ANIM SPLITTER Lattice Takes an existing animation (which, through “Delta compression”, Subsidiary o f SAS institute Inc. is only the “changes” from frame to frame) and .splits it into separate IFF graphics. It even adds numbers to the Circle 124 on Reader Service card. root name automatically. SPECIAL TRANSITIONS ANIIM CONSTRUCTING RESOLUTION/BIT PLANE More transitions applied to an exist­ As it implies, this process takes a CONVERSION ing animation include: Half-height/Mirror, series of IFF graphics or an animation you Changes images and animations FlipXAxis, and Half-Width/Mirror. have split into separate frames, and com­ from HAM to Halfbrite, HAM to LoRes, bines them into an animation. Convert to Black and White (Bit-Plane EDGE DETECTION selectable), Toggle HiresBit and Vide­ Allows you to reduce an image to its CHOP LISTERAME oscape to DeluxePaint. component boundaries between parts of This is for handling DeluxePaint III the image. animations, which adds copies of the first you can’t hit “cancel" or “retry” if you animating and not get bogged down in need to, because drey are bodi off the menu commands. The system is very bottom of the screen. And you can't natural and not too busy or clunky. raise the screen until the request is HAM transitions have no fringing, and completed! The built-in HAM transi­ combining different palette images is Exciting New Game tions are fine for home use, but not okay, too. If you want to get into text of sntoodt enough for professional editing, create hundreds of your own Legal Affairs use. custom transition effects and add them C o u r t r o o m Altering them through ARexx to your main screen as buttons. While macros would cure this, but that converting images to different resolu­ o Act as Prosecutor or Defense Attorney should not be tions and bit planes is nothing new, ° Play against the Computer or Another Person 0 Choose from Liberal or Conservative Judges necessary. Image processing on HAM using those tools on animations is— o Select Criminal Cases from the Court Docket animations can take a while, especially and DigiMate does this effortlessly. ° Question Witnesses, Raise Objections on longer ones, and dtere is no abort Customer support is excellent. I = Convince the Jury anti Win the Case key. called just to discuss the program and front... Also the “DiskAnim” feature possible additions, and found Mind- only FairBrother & SoeparMann promises to play animations from hard ware to be extremely helpful and very $4S, 5054 S. 22nd Street Arlington, Virginia 22206 drives and “break die RAM barrier!’’ willing to listen. Their automatic up­ (703) 820-1954 Well it does, but don’t get too excited. date program gets high marks as well. Shipped L:PS Ground. COD or UPS 2nd Day Air Add S3.00 If you have DigiPaint 3 and Circle 179 on Reader Service card. Amiga* Digest ARexx and want to do HAM anima­ two frames on to the end of an Anim. Video Series tions, diis is an excellent low-cost These frames must be removed before choice. Tape 1 - Mastering Workbench’ you add any frames on using DigiMate. and CLI* If you don’t have ARexx, the cost Step-by-step guide on how to get of this package doubles because you Lastly, the T.A.S.S. system fea­ the most from the Workbench and must purchase ARexx separately, at CLI environments. FREE PD soft­ tures an extensive program called least until Workbench 2.0 comes out. ware disk and command summary. “DirTooi". It makes heavy-duty file The DigiMate box includes a discount work very, very easy, allowing direct Tape 2 - DeskTopPublishing offer for the latest version of ARexx, A accessHi Quality Version Available on AMIGALAND.COM to AmigaDOS commands such with PageStream'* small plug must go to William S. Complete instruction that takes you as "path", "assign", and others. Since from start to finish on two projects. Hawes, whose ARexx language is al­ dais is an added feature and not really FREE fonts/clipart disk and key­ lowing programs like these to talk and an animation utility, I w on’t get too board command summary. be controlled by one anotfrer. As die 530 each or both for $50 much into it except to say it is a first wave of tirese type programs be­ Includes UPS shipping VA res. add 4 .5 * tax fantastic program that allows you to Call fis F-tt Diiannl Ccoen ind Prodnd Guide gin, DigiMate III adds a powerful fea­ bypass the CLL Gross Roots Video Productions ture to an already powerful program— P.O. B os 10B89 Burke, VA 22015 (703)569-2652 Animation! CONCLUSIONS MasterCard. VISA, Check, MO. COD ■AC* DigiMate III claims to provide animation to DigiPaint III and that's Circle 106 on Reader Service card. exactly what it does. TradiUonal ‘‘cell’1 It plays at a constant but slow pace, Memory animation but not automatic “moving” maybe 1 or 2 frames per second, and like DeluxePaint III. The edge dais could only be used for previewing and M anagement package has over DeluxePaint is the never for dumping a real-time 10 meg few diousand extra colors, which can animation to video tape. Double-buff­ be used to create some dazzling ef­ ering and preloading several frames Amiga Service fects. The package is not widiout iLs could eventually make real-time hard few problems, titough. drive animations a reality, but Specialists I would like to be able to turn off “DiskAnim” is only a preview tool. It Over three years experience! die huge “busy" icon when an anima­ does play much faster from RAM, as Commodore authorized full service tion is playing front disk. It doesn’t you might expect. center. Low flat rate plus parts. seem to support Animbrushes (and On the plus side, the whole sys­ Proudly affiliated with . .. doesn’t claim to). The DigiMate screen tem of creating frames is easy to use is on the lower third of die screen, and and die T.A.S.S. control system is far The Memory Location if you get a system request, that also superior to most animation control 396 Washington Street appears on the lower third. Of course, panels. You can relax and have fun Wellesley, MA 02181 (617) 237-6846

Circle 186 on Reader Service card. *Am512 512K Memory/Real Time Expansion Board

F o r tke, Amiya 500 Computer

INTRODUCTION THE AMIGA REQUIRES LARGE AMOUNTS OF MEMORY BECAUSE OF ITS superior graphics and multitasking abilities, and the basicAmiga 500 comes with 512K bytes of dynamic memory. This memory is shared between the custom graphics chips and the MC68000 microprocessor. It is also called the “chip memory", since the custom chips have access to it. This project will allow you to double your memory to 1 megabyte and add a real time clock to your Amiga 500 computer. The serious user soon learns that the basic 512K isn't enough. Some of the Hi Quality Version Available on AMIGALAND.COMadvanced games on the Amiga require at least 1 megabyte of memory and you will be seeing more of them in the future. The new “Super Fat Agnus” chip will also open the door for more development of software that requires at least 1 megabyte of memory. Upgrading the Amiga 500 to a 1 megabyte machine is quite easy, since Commodore provides a built-in interface. The 512K memory expansion has been called the “trap door memory”, since the expansion memory installs inside the small door located at the bottom of the A500 computer. The memory expansion also supports a real time clock—this allows the A500 to automatically load the date and time when it boots up. This expansion memory is located at address COOOOOh to C7FFFFh in the memory map. This memory is called “fast RAM” since the custom chips don't have access to it. and therefore can’t cause contention when the MC68000 micropro­ cessor uses it. The new “Super Fat Agnus" custom chip allows this memory to be used by the custom graphics and sound chips. This doubles die amount of memory used forscreen graphics and sound applications. It also turns this “fast RAM" into “chip RAM”, since the custom chips have direct access to it. Those with the “Super Fat Agnus” custom chip that want “fast RAM”, need expansion memory located in the 8 meg space starting at address 200000h to 9FFFFFh. Tire memory board described in this article, the Am512, is functionally equiva­ lent to the A501 memory/real time board built by Commodore with one exception: the

by James Bentley VCC VCC 1 VCC 0 0 n 1 2 3 G T.1 0 HDA7AG 5 M0A7A1 / 7 5 £ ! ! KDATA2 / \J fC A T A i 9 ; 1 2 - KDA7A' / KDA7AS I j £ | 14 KCA7A9 / \ 15 £ , 16 j c a c a i ; HDA7A12 fC A T A J j / \ 8 ’■ lf \ MDA7A14 1 ? § j 2 0 k d a t a : t / GK> a s z MAORI “ A 3R 0 2 3 _ J n 1 HA0R2 25 n 1 M W 10 £ £ , 2E MAT P i MAGRf 7* £ HASR 7 k 1 ’ 2 ■EXP n £ - 34 <7iK •CASO n 1 a t *CAS1 § f a i * M 5 . . •w z - f r CKDATAO 41 0 ^ C lO A T A l CJOATA2 43 £ n ’ *4 C1GA7A, • CKA3R0 45 CKADR1 47 9 48 CKACR5 'C K fX 4 ? 9 S so * c k v * vcc 51 £ £ i 52.. VCC GNj G!C E 5 £ u § u i i - CCWN 56 _L Expansion C K A C P .2 6 : Interface c k a e p .:-

Figure 1 PC?

e a Am512 Schematic • C K V f. Sheet 1

Cans

IC PCWER GROPHP COWKECCIOKS 512K KEM0HY/R£A1 TIME CLOCX EX? AN 51 ON S u e |DOCu»er.t Nusr&er Hi Quality Version Available on AMIGALAND.COM Am512 memory/real time expansion board powers the real time construction and use of the Anr512 board is the responsibility of the clock with a lithium battery instead of a NICAD battery. This is end user. Now let's get to the details. important for two reasons: First, the lithium battery will last for 10 years, while the life CIRCUIT DESCRIPTION cycle of the NICAD battery varies between 3-5 years. You therefore The Anr512 interfaces with the A500 computer through the double your battery' life with lithium batteries. The battery on the memory expansion port located at the bottom of tire A500 Am512 is socketed for easy replacement and can be purchased for computer. This expansion port is a 56 pin connector built-in by about $5.00 at any fine photography shop. Commodore. Refer to Table One for the signal names. In general, Second, there is no power drain on the +12 volt power the signals required for the 512K dynamic memory array' are supply. The lithium battery doesn't need to be recharged. Commo­ numbered 5-20, MDATA(15:0), I/O data lines, numbers 23-31, dore uses tire +12 voit supply to recharge tire NICAD battery' pack, MADR(0:8) DRAM address lines and the control lines numbered 35- while die main pow er is on the A500. The NICAD's don’t require 39, 'WE, *CAS0, *CAS1, and *RAS. Those familiar with dynamic much current for recharging, but the power supply' on tire A500 is memory' know that it requires refresh cycles about every 15 rather limited and when you start adding extra peripherals like microseconds, so the data is retained inside the chip. Tire address floppy drives and expansion memory', all the pow'er counts. multiplexing and refresh is controlled by the "Fat Agnus" custom The Commodore A501 memory/real time expansion also chip inside the Amiga. This is the main reason why building this includes an EMI shield that totally encases dre circuit board. This memory expansion is so easy. Tire 512K dynamic RAM array

makes battery replacement very difficult and probably shouldn't be consists of (16) 256K x 1, 150 nanosecond memory chips. These attempted by the average hobbyist. I recently asked an employ'ee memory' chips come in a 16-pin DIP package and have recently- of an authorized Commodore dealer/service store how to replace dropped in price to die S2.00 level. the battery on the A501. He stated that "the battery' never needs The signals required for the real time clock are numbered 41 - replacement”—i guess he thinks a NICAD battery lasts forever! 44, CKDATAC0-3), I/O data lines, numbers 45-48. CKADR(0-3), Regardless, tire EMI shield is soldered to the circuit board and address lines and the control lines, numbers 49 and 50, CKRD, read battery replacement should Ire left to an authorized service center and CKWR, write signals. The custom chip "Fat Agnus" controls the which is guaranteed to cost you more than the cost of tire NICAD read/write signals. The realtime clock chip is theMSM6242 built by battery alone. OKI Semiconductor. This is the same one used on the A501 board. The Am512 memory/real time expansion described in this This chip features a 4-bit data bus and 4-bit address bus, an auto article doesn't include an EMI shield, and it isn’t FCC approved, leap year adjustment, 32.678k hertz crystal-controlled time base Initial tests show that it doesn't cause any EMI problems, but and CMOS construction that requires +5 volt only. The real lime Hi Quality Version Available on AMIGALAND.COM

chip provides seconds, minutes, hours, day of week, day, month CONSTRUCTION and year to the Amiga for time/date keeping. The It is recommended that a printed circuit board be used for MSM6242 allows standby operation down to 2.0 volts and draws construction of this project, but it also could be wire-wrapped (a less than 15 microampers in standby mode.Thts allows the lithium silk screen for a printed circuit board, supplied by the manufacturer, battery to power this chip for 10 years or more in standby mode. is listed in the parts list). If it is wire-nTapped, make sure you use Figures One and Two are the schematics of the Am512 a board with a solid power and ground plane, and use short wires memory/real time expansion board. The 512K memory array to connect the power and ground to the memory chips to reduce consists of (16) dynamic memory chips, U2—U17, along with a noise and ground bounce switching, (The primed circuit board bypass capacitor for each memory chip. Resistor packs R4 and R5 supplied with the kit, has all the parts olacements marked with the provide under voltage damping for the address lines to the memory silk screen.) array. Address multiplexing and all control for the dynamic RAMs .AH components can be soldered directly to the printed circuit is controlled by “Fat Agnus" on the A500 mother board and board, or the memory array could be socketed for easy replacement therefore will not be discussed here. U1 is the real time dock chip, of a defective memory chip. Notice pin 1 by the square pad for all notice Yl, 32.768k hertz crystal, along with C3 and C4 provide doe IC’s. Connector J1 must be mounted so pins can be inserted from tank circuit for the crystal time base. C3 is adjustable and can be the board edge side. Diodes D1 and D2 have polarity and are used to fine tune the accuracy of the time base. Diodes D1 and D2 marked by the dark band at one end of the diode. Capacitor C3 are Schottky barrier diodes ihat feature very low forward voltage should be mounted with the flat side toward the closest edge of the drops and very high reverse leakage currents. The diode circuits board. The battery socket has no polarity, but when inserting tire allow the real time dock chip to be powered from the Amiga when battery please notice the large plus sign on the board and match it the main power is on and then automatically switch to the lithium with the plus sign on tire battery. All the electrolytic capacitors have battery backup when the main power is turned off. Battery B1 is the polarity and the printed circuit board is marked. The rest of tire lithium batterj' bn ill by Sanyo, part number CR17335SE. This is a 2/ components and bypass capacitors have no polarity and can be 3A size, rated at 3.0 volts, 1.3 ampere/hour and can be substituted mounted either way. with an equivalent battery. Connecter J1 is the 56-pin dual row After construction, please double-check all components on connecter for interfacing with the A500 computer. Jumper JP1 the Am 512 board before proceeding to the installation of the Am512 allows you to disable the 512K memory array when using the real board. time dock function of the board only. The rest of the components are capacitors used for filtering the power supply. Am512 Parts List Item Quantity Reference Part

Tabic One Amiga Built-In i l BTl Lithium Battery Sanyo CR17335SE Expansion Memory Interface Signals Duacell DL2/3A 3 .0 v o l t , 1 .3 A/K

Pin 1 - *5 voli pin 29 - MADR 6 2 i Cl 4.7 uf, 35 volt 2 - +5 v o l t 30 - MADR 7 R a d ia l Cap 3 - Grid 31 - MADR 8 3 17 02,07,09,010 .1 uf, 12 volt 4 - Grid 32 - ♦Exp (enable memory I C llfC12,C13 Ceramic Caps 5 - MDATA 0 3 3 - Gr.d C 14, C IS ,C l 6 6 - MDATA 1 34 - Gnd C17,C18,C19 1 - MDATA 2 35 - *CAS 0 C20,C21.C22 S - MDATA 3 3 6 - *CAS 1 9 - MDATA 4 37 - *RAS0 4 * C3 variable Capacitor 10 - MDATA 5 38 - ■ AAS1 ERIE TZ03Z50Q 11 - MDATA 6 39 - ♦WE (write enable) 5-50 pf. NPO 12 - MDATA 7 40 - ♦CCK clock (3.56Mhz) 13 - MDATA 6 41 - CKDATA 0 5 * C4 20 pf., 50 volt 14 - MDATA 9 42 - CKDATA 1 15 - MDATA 10 43 - CKDATA 2 Ceramic Cap 16 - MDATA 11 44 - CKDATA 3 17 - MDATA 12 45 - CKADR 0 6 3 C5,06,C23 47 uf, 35v, Radial : e - MDATA 13 46 - CKADR 1 C a p a c it o r s 47 19 - MDATA 14 - CKADR 2 n : D1, D2 - 1N5817 Sehotzky 20 - MDATA 15 4d CKADR 3 D io d es 2 : - Gr.d 49 - *CKRD (re a d ) 22 - Gr.d 50 - ■CKWR ( w r ite ) 8 55 ?in dual row 23 - MADR 0 51 - *5 v o l t c o n n e c to r 24 - MADR 1 52 - *5 v o l t Method 9006-226-302 25 - MADR 2 53 - Gnd Cannon U5S4A056A1DL 26 - MADR 3 54 - Gnd Elco £251-056-000-326 27 - MADR 4 55 - •*■12 v o l t 26 - MADR 5 56 - not connected 9 * J ? 1 Jumper block Santee TSW-102-14-LD Note * Active low signal Jumper 5N7-100-BKG 10 I R3 10k ohm, 1/4 watt C arbon Comp r e s i s t o r

11 R4, R5 33 ohm, 14 p i n d ip parallel resistor paks CTS 7SQ-3-H33

12 1 U1 MSM62423RS/GS real time Hi Quality Version Available on AMIGALAND.COMc lo c k c h i p , OKI Semiconductor, Inc.

13 16 U2, U3,U4,U5 256k x 1, 16 p in INSTALLATION U6,U7,U8,U9 dynamic memory chips U10,U11,U12 150 nSec, 41256 (generic) The Ant512 memory/real time clock board includes a jumper U13,U!4,UI5 U16,U17 strap to enable/disable the entire 512K memory array. This allows y i * 32.7SSk hertz clock the Am512 board to be used as a real time clock only. Locate the c r y s t a l jumper strap JP1 marked on the printed circuit board (upper left 15 11 - 2/3A size battery holder comer). With the strap in the top position, the 512K memory array Keystone 131 is enabled. With the strap in the bottom position the 512K memory' Miscellaneous: Printed drcuit board, 16 pin dip IC sockets. array is disabled. The Am512 installs in the bottom of your A500 computer. Make sure the power is off before installing the Am512 board. Carefully remove the plastic door located at the bottom of your computer, using a flat screw driver or coin to pry the door open. computer. See your DOS manual for additional information on how Install the Am512 board with the components facing the to use the DATE and SETCLOCK commands. computer. Carefully align the connector at the end of the Am512 Good luck, and have fun with the Am512 512K memory/real board with the pins inside the computer. Slide the Am512 board time clock board. into place but don't force it, because you may damage the computer or the Am512 board. The Am512 should seat firmly into place. Note: Thefotlowing items are availablefrom Am Tek Computers: A kit of all Check the alignment and replace the plastic door before supplying parts, including double-sided, solder-masked, silk-screened PC board and power to your computer. memoryfor $69.95, same without memoryfor S39-95. PC board alonefor The A5G0 computer will automatically recognize the addi­ S15-00. Lithium battery and holder for S6.00. MSM6242 chip, 5-50 pF tional memory and begin lo use it at boot up time. To set the real variable capacitor and 32.768 kHz cnstal for S8.75. 56-pin dual row time clock for the first time, use the DATE command to set the date connector fo r $6.50. Add $3-00 shipping and handling, Utah residetits and time, then use the SETCLOCK RESET and SETCLOCK SAVE must include sales tax. A m Tek Computers. P. O. Box 575713, 5136 Clover Meadow Drive, Salt Lake City, UT84123. Phone: (801) 261-1115. Inquin' commands of AmigaDOS. YourSTARTUP-SEQUENCE file in the s/ -273. directory should include the SETCLOCK LO.'VD command, so the Am512 real time clock will be loadeci each time you boot the A500 •AC* CHERRYWARE 4 0 /W , l by Julie Petersen I \

Freeware, trojanware, wolfware...

Extend your vocabulary with computerisms that define products, and describe characteristics associated with their use.

WITH NEWTECHNOLOGIE5 COME NEW VOCABULARIES. IN FACT, COM- •Shareware. Shareware is really com­ mercialware diat ends up being every- puter words are evolving so quickly, that publishers are creating separate volumes w'are. That is, die users of shareware often don't pay. Shareware is based on the Try to describe them, radier Lhan trying to add them into regular dictionaries. One ex­ before you buy’ philosophy. It also gives small developers the opportunity to get ample is Webster's New World Dictionary of Computer Terns. In paperback form, into the software business, since they by­ pass some of the advertising and packag­ this reference is over400 pages long, yet even that doesn't seem to be enough space ing costs. Shareware is a superb concepr intended to benefit everyone. However, it to include many common phrases or nuances of meaning. has only partially succeeded due to iner­ tia, or reluctance to pay. A few shareware If terms are too vague, misunder­ NONCOMMERCIAL PRODUCTS standingsHi Quality Version Available on AMIGALAND.COM can result. An example of this "Public domain ’ is sometimes incor­ authors have received compensation for dieir work, but an informal survey indi­ is the catch-all ‘vaporware’. It fails to rectly used as a catch-all term for products cates diat most audiors can count on two make a distinction between companies which are distributed noncommerdally. struggling to put the finishing touches But since PD has a more specific legal hands the number of people w'ho volun­ on a product and those who are using connotation involving the author’s rights, tarily contribute. Recendy, European and North American user groups have begun deceitful practices to extract money I ’d like to suggest everyware as a blanket to coordinate collection of shareware do­ from unwary buyers. term for noncommercial software distrib­ So, for your edification and enjoy­ uted hand-to-hand, through bulletin nations, and forward diem to deserving ment, here are some phrases which may boards, user groups, or as "cost of media authors. This may help to keep the share­ not be listed in Webster, or die pages of plus shipping’ pivducts. Then public ware concept alive. IEEE journals, but which help describe domain software fits more correctly as a some of the characteristics and legalities subcategory of everyware: •Freeware. Freeware differs from public associated with computer-related prod­ domain software in diat die author or pub­ ucts. •Public Domain. The author relin­ lisher retains rights to the software, and distributes it on the understanding that it quishes all rights and control over the will not be altered or sold for profit. COMMERCIAL PRODUCTS software and makes it available to anyone Commercialware is appropriately to modify, extend, sell, or give away. Since flagged with a price tag. There is a com­ the recent revision of US copyright laws •Canclyware. A product which has some key features disabled. Candyware is dis­ mon myth that commerical software is and compliance with the Berne Conven­ tributed to give a ‘taste’ of die complete cheap toproduce. I've watched messages tion, software remains die property' of the product, which is usually commercial- fly back and forth on bulletin boards, audior unless explicit)' stated otherwise. ware. It’s based on the belief that the users arguing that software companies are Personally, I feel diat even if a program is making a killing, based on the assump­ donated to the public domain, profes­ are motivated to inquire further or pur­ tion that ‘diskettes and a bit of photo­ sional ethics, and respect for individuals chase the product if they’ve become fa­ miliar with its features and use. Incentive copying only cost a couple of bucks'. In suggests diat they should be credited for software. reality, publishers only receive about dieir ideas and work. The situadon gets 40% of the listprice, and this has to pay ticklish; however, when someone takes GENERAL TERMS fo r small details like rent, wages, adver­ public domain code, modifies it and dien tising, packaging, shipping, develop­ claims copyright over the new version. In This section encompasses both commercialware and everyware, ment, research, customer service, long court this becomes a complicated issue, describing products according to their distance calls, storage, upgrades, and usually influenced by the degree to which quailty or utility: ->- capitalfo r future projects. die code has been changed or extended. ■Barleywarc. This is a product informed that the product is not com­ which promote destruction or negative which works, just barely. During the plete. Although illegal ventureware discrimination: depression years, barley wratcr was shouldn’t be tolerated, it's also true that cooked up as a substitute for hot a lot of companies got started this way. •Volfware. Predatory software, Soft­ coffee. It was thin, dull, and lackluster. ware that directly damages or devours Barleyware, like barley water, is gen­ •Nearlyware. A product which is ‘es­ data, especially on hard drives. erally bug-free, and gels ihe job done sentially’ complete. It works in most in the most minimal way, without any circumstances and would be useful to •Wormware. Invasive software. In­ bells or whistles, but quickly fades many people, but is not bullet-proof sinuates itself into programs and/or away if a better product comes along. enough to release to a general market. drives. Damages memory and data Unfortunately, the agony and time in­ indirectly by munching away at the •Dismalware. This software should volved in making nearlyware bullet­ available space, never have left die computer that proof pushes up die development spawned it. It usually has a compli­ costs and compromises the ‘business •Trojanware. Trojan horse software. cated or brain-damaged interface, window' during which a product can Programs that masquerade as others, poor to nonexistent documentation, be competitively released. Assuming or which lie in wait, ready to capture and bugs so numerous, it needs fumi­ no release date announcement, we passwords, or other information which gating. Dismalware is sometimes ex­ should probably be tolerant of near­ could be used to gain unauthorized cusably distributed as PD by novice lyware, the frantic developers are access to a system or account. programmers hoping someone will usually guzzling caffeine and working take die idea and improve the im­ 120-hour weeks to complete tire proj­ • Bunnyware. Innocuous programs plementation. This theory of evolu­ ect. whidi display a cute message or pic­ tion sometimes results in useful soft­ ture and then sometimes go away, ware. If it is distributed commercially; •Buggyware. This is almost the oppo­ without compromising program exe- however, people tend to lean towards site of barleyware. Whereas barley- cudon or data. .Although bunnyware a creationist viewpoint, expecting the ware is an average concept reasonably seems harmless, it’s in the noware product to be in finished form at time well executed, buggyware is a good category because the person who of release. The best response to product which just isn’t finished. Bug­ encounters it doesn’t know if it’s bun­ commercial dismalware is to boycott gyware has so many bugs, it is virtually nyware orwolfware, and thus is incon­ the product. unusable. Companies releasing bug­ venienced by having to treat it as gyware have usually had their judge­ wolfware. •Funware. Computer games and ment clouded by contract deadlines, other software written and distributed diminishing funds, or competiton. So what do we call exemplary for entertainment. Jollyware is a sub­ Buggyware sometimes results from products? Well, how about set of funware including screen hacks, misplaced faith in in-house testers. It’s CHERRYWARE as a term reserved for Hi Quality Version Available on AMIGALAND.COMsuprise endings, etc. clear that people who are technically- computer wares diat surprise and oriented or intimately acquainted with benefit us in many ways. Chenyware is VAPORWARE the product do not ferret out die same bug-free, polished, intuitive, and Vaporware refers to products quantities and types of bugs as the loaded with features. which are discussed, demonstrated, or general public. In die long run, bug­ Although diis article is light­ promoted publicly, but which are not gyware engenders more anger from hearted, there’s always a serious side. generally available: users than odier ‘vaporware'. When There are atleast dtree .Amiga develop­ people invest time, money, and trust in ers working on video, animation, and • Beeware. The worst category of va­ their purchase, they should receive a vector drawing products that are, well, porware. It is promoted as a commer­ working product. nearly there. .And, if we’re a litde bit cial product simply to see if there is patient, maybe we can look forward to enough interest to justify develop­ •Neverware. A good idea that died. some new chenyware. *AC* ment. The idea is still on the drawing Money, time, unforeseen problems, board and money collected from or­ boredom with a project, frustration, An active developer, consultant ders may or may not be returned to compeduon, and even theft are all rea­ and writer, Julie Petersen has been an owners if the project is never initiated. sons why neverware never makes it Amiga advocate tight from the beginning. When purchasers try to contact the there. It’s unfortunate when someone In September 1985. she formed PaNorAmA, the Pacific Northwest Amiga company for information, they are steals an idea and implements it first, Association, one of the first Amiga groups, often put off with excuses, and re­ particularly if die implementation is and served as its President for 2 years. Ms. funds can be slow or absent. If you bad. It's difficult too, if die competition Petersen has a long bistoiy oft latioi tat and order beeware, you usually get stung. gets to die finish line sooner. But a international recognition fo r her work in bigger share of neverware results from computer graphics and fine arts. In one of •Ventureware. A nearly finished authors not truly appreciating the com­ her more recent accomplishments, an product being developed by an indi­ plexity of creating a complete product, iiiteractive videodiscforwb ich she created vidual or company with insufficient or the amount of time involved. the graphics received a Canadian funds to finish the job. Collection of National Award of Excellence in 1989- Send questions orcomments to Julie money from orders sometimes suc­ NO WARE Petersen, c/o Amazing Computing. P.O. ceeds in bankrolling the final stages This is software that has no busi­ Box 869, Fall River, MA 02722-0869, or and packaging of a product, thus ness being distributed in any form. she may be contacted on Usenet at bringing it to market. Ventureware is Includes pirate software (also called portal.'cup.portal, com HadyHawke. illegal unless purchasers are explicity ‘warez’), viruses, or any programs Convergence Port Five of the Fractal Series

UNTIL NOW WE HAVE BEEN DEVEL- ever, and for every value of x, there would be one oping basic skills which could he applied to particular solution or value of y for which the many different graphic programs. It is now equation was true. So the equation really has an time to start with the first of a series of endless number of solutions. mathematical concepts that will give us an understanding of the Mandelbrot set itself. A SOLUTION SET Now, don't let the title “Convergence” scare We call all the possible solutions of an Now, don't you, it is not a new religion or political action equation collectively a solution set. It is the set of committee. However, before defining it, let's all possible values of each variable which form Hi Quality Version Available on AMIGALAND.COMtalk a bit about equations. solutions of die equation. In our example die let the title solution set would be a very long list of numbers: SOLUTIONS OF EQUATIONS 'Convergence' So far whenever I have presented an y = 1 when x = 1 equation. I have asked only that you perform y = 4 when x = 2 y = 9 when x = 3 scare you, it a single calculation based on some given y " 16 when x = 4 values of its variables. Let’s do that one more y = 25 when x a 5 is not a new time for the following equation: y » 36 when = 6

y = v * y. religion or The list is infinite! I might ask you to solve the equation for some Similarly, the Mandelbrot set is a whole bunch of political action value of x, let’s say x = 3- In that case, y = 9 is tire answer. We say that y = 9 is the solution solutions, but for a different equation, of course. committee. of tire equation when x = 3 because that value The above equation involves only two vari­ makes the equation a true statement. When­ ables, x and v. I gave you a value for one and asked you to solve for the other. Other equations ever x equals 3, y must equal 9, otherwise the equation would represent a false statement. could involve more variables. You could for But who says that x must equal 3? Nobody, instance be given values for two variables, x and really. X could equal something else, like 5 y, and asked to solve for a third, z. You could also for instance, in which case the solution of die be asked to find die solution set for a particular equation would be v = 25. We say that y = 9, value of z, all values of x and y which represent a and y = 25 are particular solutions of the true statement for a particular value of z. In last month's equadon: equation when x - 3 and x = 5. Each one is a solution for a particular value of x. it turns out that x could equal any number whatso­ J? + y 1 < 25

by Paul Castonguay now let x = 9, and calculate y again. The answer is y = 81. What did we do here? We took the OUTPUT from the first calculation and used it as INPUT to the second. OK, now let x = 81. Go get your hand calculator and confirm that die answer is y = 6561. Are you getting die idea? lam repetitively feeding numbers into die calculation machine, and each time I do, 1 use die OUTPUT from the previous calculation. The OUTPUT of one calculation is being fed back to the calculat­ ing machine as INPUT to the next. The calculating machine Figure One: is sort of feeding itself. We’ve created a monster! G enerated using A SMALL MONSTER 'Calculate' subroutine Let’s write a small test program: of Listing i3 x = 2 c o u n t = 0 Loop: y = :< " x count = count + 1 print "The answer is"; y; print "after"; count; " loops" all points falling within the circle represented a particular solution x *= y set of the equation: GOTC Loop

>? + y-' < z1 Run the program. My Amiga reports that the answer is 1.844674E+19 after 6 loops. The screen flashes orange and a where z = 5- That was the solution set of x and y for a circle of message appears at die top, reporting that an ‘overflow’ has radius 5. Larger circles have larger solution sets. occurred, i told you it was a monster! To regain control I had to first select STOP from the pull down menu and then click CALCULATION MACHINE, INPUT AND OUTPUT on the OK box in die overflow message. Don’t worry, I did I want you now to turn your imagination up to full volume. not damage my .Amiga, and neither will you. But what is When you see an equation I want you to think of it as a little really going on here? miniature calculating machine living inside your computer pro­ This program does exactly what we were doing above, gram.Hi Quality Version Available on AMIGALAND.COM If you give the machine some numbers (which we will call feeding the calculation machine with die OUTPUT from the INPUT), it responds by performing calculations and returning an previous calculation. Only it does it much faster. After answer (which we will call OUTPUT). performing each calculation, it makes die INPUT variable equal to die OUTPUT variable. The important line is: SELF-FEEDING EQUA TIONS Let’s beat this same example to death: x = y That is equivalent to assigning the OUTPUT of the last y » x * x calculation to die INPUT of die next. ] will give you a value for x and ask you to calculate the next input = last output corresponding value of y. Ready? Let x = 3, calculate y. The answer is y = 9, right? The INPUT was 3, tire OUTPUT is 9. Ok, Then the program loops around to perform anodier calcula­ tion. It turns out that we did not even have to use the variable y at all. We could have used the line:

Figure Two: That way both the calculation and the assignment of the Fractal using 'Calculate' OUTPUT to die INPUT get done in the same line. In fact, subroutine of there is even a special notation used for writing what we are Listing If4 doing here. I will tell you about it, because it will help you read diose Scientific American articles called ‘Computer Recreations’, which you may be trying to understand. The notation uses a little arrow:

x(nl <- x(n-l) * x(n-l) o r x (n) < - ( x ( n - l ) )* The term x(n) represents the nth calculation out of a long series of unspecified length. The term x(n-l) represents the previous one. Thus, if n = 5, we are talking about the fifth calculation, and it is MAN SAYS, using the result from the fourth as INPUT. We say chat x gets die square of x from the previous calculation. Incidentally, the magazine column ‘Computer Recreations’ 1 - AMIGA Computer appears in Scientific American every month, and it often covers AND 1 - SaxMan Accounting System ideas about fractals. Note however, diat it is written at a higher or 1 - Billing & Disbursements System technical level than these articles. and YOU'RE IN BUSINESS!! WHA T ABOUT THE ERROR? But die Amiga did not like all this! It complained: SaxMan Systems has taken the best data base available far the AMIGA (tin)-SUPERBASE PROFESSIONAL(fm) from Precision Software, Ltd.-and created two very powerful and easy to use overflow error accounting systems.

Our calculating machine blew up! The numbers got bigger and B illin g & Disbursements(ltn), designed for the small business, bigger until die Amiga could not take it any more. What good is processes cash and credit sales, prints invoices and statements, and ages that? You’ll see. accounts receivable. It tracks cash disbursements, prints a check register and reports o d general ledger accounts sorted by category. Now, activate the LIST window and change die first line of die List Price...... $249.95 program to: SaxMan Accounting System(tm) is a completely integrated, = 0.9 multi-divisional accounting system with General Ledger as its hub. It handles Accounts Receivable, Accounts Payable, Payroll, Job Cost Analysis, Inventory Control, and a revolutionary new approach to Run the program again. Hmmm.... It doesn’t blow up this time. But payroll tax tables! Many easy to use features allow you to follow ail it doesn’t stop either. It simply goes and goes until the OUTPUT data from source to final reporting in the General Ledger. of each calculation equals zero. Over and over again, zero is fed List Price...... $499.95 back to die calculating machine, and over and over again, die answer is zero. How boring! Stop die program, (pulldown menu Call: SALMAN SYSTEMS ^ 4 0 0 Waloot St., Suite 403 or [CTRL-C]) You have just witnessed convergence. Redwood City, CA 94063 CONVERGENCE (415)368-6499 v Convergence occurs when a series of calculations, repeated a large number of times, produces a single answer. In die above Circle 103 on Reader Service card. example, die answer became zero after only a few loops. After diat, it remainedHi Quality Version Available on AMIGALAND.COM zero, no matter how many times die loop was allowed to execute. The equation converged to zero! The opposite of convergence is blowing up, "which is what To demonstrate this I will write a program which uses the happens when the initial value of x is 1.5. You can call blowing simple equation from last m onth’s article, except diat this month I up - convergence to infinity. will write it, so that it uses convergence. If you have accepted, without complaint, that the equation y = x * x converges to zero A FACT OF LIFE when x is less than 1, then you should have no trouble following But wait a minute. How is it possible that die same equation this. By using die simple equation from last month, you will be able can either blow up or converge to zero? Well, it all depends on die to concentrate on exactly how we perform the convergence test, initial value of x and in this example it is easy to understand just without being distracted by any unfamiliar mathematics. You can by looking at the numbers. You see, any number which is greater run the program and confirm that a bunch of concentric circles are than the number 1 will get larger when you square it. It is as sure produced. Then I will do something exciting. I will replace die as the earth lias gravity. Put the number 2 into a scientific calculator circle equation in the ’Calculate’ subroutine widi the Mandelbrot and hit the ‘square’ key. It doubles in size, right? After all, diat is equation, without changing anydiing else. The program will what multiplication by 2 means. Put 1.5 into a scientific calculator operate exacdy the same way, testing for convergence, but die and it also gets larger, 2.25. Conversely, any number which is less pattern produced will change from simple circles to the much more dian the number 1 will get smaller when you square it. Put 0.5 into complex Mandelbrot island. Like magic! a hand calculator and press the ‘square’ key you get 0.25, exacdy Our purpose this mondi is not to understand why the half the previous value. That is what decimal 0.5 means, it is die Mandelbrot set converges. One step at a time. Here we learn that decimal equivalent of 1/2. You’ll find diat for any number which to draw the Mandelbrot set we must test for convergence. And, we is less than 1. pressing die 'square' key will make it smaller. Remember the joke about the chicken crossing the road? must feel comfortable programming die Amiga to do so. Well..., never mind. So, the same equation can either blow up or converge to zero START WITH A TEST FOR BLOWING UP depending on its initial value of x. Let's go back to our example, y = x * x, which I now write like this: WHY DO WE NEED THIS? Guess what! The property' diat we test for when we want to x(n) <— x(n-l) * K(n-1] produce a graphic image of die Mandelbrot set is the equation's convergence. Coincidentally, it also either converges to some low This shows diat we are going to be repetitively feeding die OUTPUT value (although not zero), or it blows up! of the equation back to its INPUT. Let’s pretend diat we did not There was nodiing magic about choosing die value 3000 in my example. 1 could have picked any large value. If the equation is really going to blow up, then it will eventually exceed any Ruto(Prompt number that I pick, no matter how large. I must however be careful to pick a value which is high enough so that the program does not incorrectly think that an equation is blowing up when it really is not. TV SCRIPT PROMPTER In this example, of course, we could have tested using a lower value like 5 or 10, but not a value less than 1. FOR THE AMIGA

AuluFroinpl is a sophisticated scrolling prompter ami text edit program designed for TEST FOR CONVERGENCE TV script prompting und informmion displays, It has been developed in consultation What happens in cases when the equation does not blow up? with TV industry professionals, with flexibility, simplicity and speed us the primary design considerations. Like for input values less than the number 1 in our above example. In that case, the output of each iteration gets smaller and smaller ■ AufoProm pt has a full intuition interface with menus and keyboard shortcuts. and the expression x < 1000 is always true. The loop will continue ■ Selectable font, font size, pallet, speed and scroll direction. • Markers for instant movement to pre-dcfined euc points. to execute forever. The program will never end. We do not want * Message window and graphic scroll speed indicator, that. We must therefore include a second test in our loop. • Simple easy-to-use menu driven text editor with load, save and print options, Note diat although die above equation conveniently con­ - Imports ASCii or IPF FTXT format text files. - Supports PAL and NTSC in both interlace and non-interlace, high or low verges to zero, not all equations do dais. Some converge to other resolution, values, like 1, or 5, or just about anything, and we want a test which * Requires 5 12k of memory and Hicksian ] .2 or later. will work for all these situations. Try this: test to see if the equation

AuloPrompI SI'S 295.00 D igiSnfl is not blowing up. Sound silly? Well... if it is not blowing up, then Demonstration disk...SUS 7.00 12 Din more St it must be either converging to or remaining less than some low M oorooka value, right? An easy way to do this is to count die number of Brisbane 5105 Queensland Australia iterations in the same loop diat we calculated before. We then decide that if after a certain number of iterations, say 500, the International toll free order numbers from the USA and Canada: from USA 1-800-525-2167 equation is still less than 1000, then it has probably converged to from Canada 1-800-663-3940 some lower value. The program below tests for both blowing up othercountries 61-7-277-3255 within Australia (07) 277-3255 and converging, using the above idea. AaioPttHnpt u aipyri(hl 1W0 Kk kauri u i Dfckmvk (4 Commodore-Amiga Inc. f o r i = 1 TC 5

Circle 137 on Reader Service card. INPUT "Enter a number"; x Hi Quality Version Available on AMIGALAND.COMk = 0 WHILE (X < 1000 AND k < 500) already know diat this equation blew up for values of x greater x ” x * x k = k + 1 than 1, and let's devise a method to test it. It is easy to test if an equation blows up, just test if the WEND equation ever exceeds some very' high value. Lei's choose the value 1000 and run the equation in a loop which tests it each time ir k - 500 THEN PRINT "The equarior. converged" to see if it ever exceeds 1000. AmigaBASIC's 'WHILE-WEND' PRINT construction is very' powerful for doing this. ELSE PRINT "The equation blew up after k; " loops 1" P R I N T END IF WHILE < 1 0 DO

N E X T i PRINT "X <*"; x SEND PRINT "The equation blew up!" Note that the variable k counts the number of times that die loop is executed. Two tilings must be true for the loop to continue The WHILE-WEND construction will repetitively execute every­ executing. First die value of x must be less than 1000, and second, thing between the WHILE anci the WEND as long as the logic the number of times that the loop is executed, k, must be less dian statement following the WHILE is tine. The first lime through the 500. If either of these conditions ever become false, the loop loop x equals 1,5. The logic statement x < 1000 is obviously true, terminates and the computer continues with whatever line follows so die calculation line widiiti the loop gets executed. The result, die WEND statement. 2.25, gets printed. Then die WEND statement sends the computer back up to die WHILE statement and again the logic statement x WHA TS HA PPENING? < 1000 is tested and found to be uue. So, again the calculation line To find out whether the equation blew up or converged to is executed, but this time with an INPUT ofx = 2.25. The OUTPUT some value less dian 1000, we test the value of k, the number of is 5.0625. It is growing. Well, w e know from our previous times that die loop was executed. If k = 500, that means diat the discussionthatthevaluewill grow each time through the loop, and value of the equation never exceeded 1000. We conclude dien that it will eventually exceed 1000. At that point die loop will terminate die equation has converged to some lower value. If, on the odier and the program will print “The equation blew up!" hand, k is less than 500, we conclude that the equation must have exceeded 1000; it blew up. I have included some logic statements in the above program which demonstrate this. Run it several times using different initial What about the OTHER half of MultiMedia? values for x. You will find, quite properly, that whenever the initial value of x is less than 1, the equation executes 500 times and the qmlTcch Computer;, present;,... program repons that convergence Iras occurred. Otherwise, die program reports that the equation has blown up after some number of iterations.

SPEED OF THE EQUATION Oh no! Not another concept! Relax! This one is easy. Let’s talk about initial values which are greater than 1. You may have noticed that for initial values which are close to the number 1, like; 1.2 or 1.15. die value of k reported by die above program is greater than for initial values which are larger, like 10 or 25. When die initial value of x is very close to 1, it takes more iterations through die loop qm ibound to determine that the equation is blowing up. We say in this case that it blows up slowly. On the other hand, a larger initial value Sure, graphic* arc great. And luxe, * ith lilllc dixputc. «>n? ol (he HI'S I graphic* machine* aruund The .ihility indirectly nuniputaic »idcu mean* Kiui ihc ('unim iKturc Amiga will he.and requires only a few' iterations to make that determination, and is i% becom ing THE m ajit liirce to be reckoned willt a% the concept ol M ultiM edia entiles into it'% oun (reading some o f Ihc 'other guy V magazines unuld lead you lo belie* e rhji the) invented said to blow up fast. Get the idea? The value of k is an indicator the eoneepi - ihc A m iga has had ihc capability for * yean,only we called it Desktop Video!) oi the speed at which the equation is blowing up. The less the value HUT as good as the graphics are, ihc OTIIF.K side of the M iltiM edia com is often overlooked - of k, the faster the equation is blowing up. This concept will prove high quality SOUND The Amiga with il*s direct stereo oulput is ,t start, hut we hen* at AmiTcch f'urnpulm have found a way m make it even belter to be very valuable when creating different artistic effects with the AmiTcch Com puters presents - AmiSountf, the zrm footprint solution fot adding gieal sound to Mandelbrot equation. But let’s not get ahead of ourselves. any Amiga The internal h watt pci channel stereo am p provides ail the m om -filling sound you need to gel ihc m ost out ol your desktop presentations ( and even your lav onlc arcade gam es!) The AmiSound also acts as a handy switchbox to pul all yuut un-off sw itches up front where you can reach them Huilt-m surge suppression helps protect your valuable equipm ent from those DRA WING THE CIRCLE dangcrvrus line voltage spikes. This will be vine of ihc m ost m dispensible peripheral you will ever Remember how' last month we used the horizontal and hoy for your Amiga system ! And new . bike advantage ol our NEW LOW PRICE! Call TODAY! vertical coordinates of a pixel in an equation to produce a circle?

We calculated die equation: NEW LOW PRICE! ( a l l o r w k i t h R m lT a c h * $69,95 ro B,.% as Computary aesulr = i * i + j * j r7=jf>n p= ] Boy Slow n, NE AHQIO I >> fN>U Phone 402-4uV"x<2 Tiien we tested to see if 'Result' was less than 25. Perhaps you did Hi Quality Version Available on AMIGALAND.COMCircle 114 on Reader Service card. not know it, but the right side of that equation represented die square of the radial distance of each pixel from die center of die screen. That fact comes to us drrough the centuries from a man Similarly, the direct distance between any pLxel and the called Pythagoras, a Greek w'ho lived in about 550 BC. Let’s go over center of the screen is: this slowly. Radios = SQR( i - i + j * j ) We know' that the coordinates of a point on a Cartesian plane, or any drawing surface, are a measure of its distance, bodi horizontally and vertically, from a zero reference point called the Hence, last month we produced a circle of radius SQR(25), or simply 5, by testing if'Result' was less than 25. This month I also origin. A horizontal coordinate o f-10 means ten units to the left of want to draw the same circle, but this time using the concept of the origin. Similarly, a vertical coordinate of +7 means seven units convergence. Here’s what I will do. First, I will calculate the square above die origin. So, in last month’s example the upper left hand of the distance of each pixel from the origin, just like last month: comer of the screen was 10 units to the left and seven unit above die origin. That's sort oflike saying diat your mother-in-law lives r ** i * i + ten miles west and seven miles north of where you live. So, how far away is your mother-in-law, really? Well, it all depends on how I used the letter r because it is the first letter in die word radius. The you go. If you travel ten miles west, then pull a right on Misery Lane actual radius is the square root of r, but that does not really matter and go north for seven miles, you will arrive at your mother-in-law’s here. We can use the r value directly and still get the same pattern place with seventeen miles wear and tear on your car. But what on the screen. Then, I will feed that number to the equation that if you could travel in a straight line, directly in a north-west we have been talking about in this article, y = x*x. I will simply direction? replace the x’s with r’s.

Years of geometric experience guarantee that die exact r(n) <- r(r.-l) * r(n-l) distance can be calculated by using the square root of the sum of the squares. Our experience tells us diat if the initial value of ‘r’ is less dian the number 1, the equation will converge to zero. On die odier hand, Distance “ SQR( west*west + north*north ) w hen T is greater than 1, the equation will blow up. ( SQE means square root ) UNDERSTAND THE PLAN This can be proved, but I wail not do diat here. Instead, I will simply The square of the distance of even' pixel from the origin is trust Pythagoras, It is the old right angle triangle trick. first calculated and then sent as INPUT to our calculation machine. The result of all this is that you will see a bunch of concentric circles of different colors. The one in the center will be black, and C ^ l c m M l g a it represents all pixels which caused the equation to converge to zero. It is the solution set of the equation. The other circles will be of various colors, each one representing pixels which have caused die equation to blow up at different speeds. The larger Hardware Software circles represent the faster pixels, die smaller ones die slower 'Amax Mac Emulator $128 Ami Alignment $33 ’ pixels. Boing Mouse $99 Arexx $32 If all we wanted to do was draw a bunch of circles, the above CA-880 Floppy Drive $135 Bars & Pipes $192 Internal Floppy $94 Baud Bandil $32 method would be pretty inefficient. It is very slow. AmigaBASIC Deluxe MIDI $66 DataStorm $26 has some graphic commands diat can do the job about ten billion Digi-View Gold 4.0 $135 Deluxe Paint III $105 Duel Serial Port Board $234 Dlgi-Paint 3 $65 times faster! Bui what we really want to do is draw fractals, and GVP A3001 Accel. $2,500 Distant Suns $44 AmigaBASIC has no direct commands to do diat. Kronos 500/2000 $252/$214 Falcon $33 Magni Genlock System $1,684 GFA Basic $90 Microbotics Hardframe $250 Lattice C v5.04 $193 NOW THE MANDELBROT SET Lords Rising Sun $33 Microbotics 8-up Ram $151 Replace the ‘Calculate’ subroutine with die one in Listing Trump Card 500/2000 $246/$152 MuslcX $175 Quantum Prod rive 40s $497 PagaStream vl.B $129 Two, keeping everything else the same. Although you cannot be ScanLab $815 Pen Pal $88 expected at this point to understand die actual calculations Seagate Hard Drives $CALL ProWrite 2.5 $80 Sharp Scanners $CALL Sculpl/Animate 4D Jr. $99 involved witiiin this subroutine, you can at least understand that Star NX-1000 MuttiFont$193 Shadow Of The Beast $30 an equation is being repetitively calculated and tested for conver­ SupraModem 2400 $119 Space Ace $35 . Supra RAM 500 (A501) $99 V^Superback______$53^ gence. The principle is the same as in our circle program. The WHILE-WEND loop executes until either k equals 500, the value of Crunch, or r exceeds 4, the value of M. For each pixel, die 1-800-733-AM/GA ‘Calculate’ subroutine ends widi die number of iterations stored in die variable k. We then test the value of k to see what happened. FAX 619670-9732 0 PO Box 2104 La Mesa. CA 92044 0 BBS 619-670-1095 If k - 500, we conclude that the equation lias converged to some At MicroMiga our customar and their Amiga are Number On®. We carry over 1300 Amiga products, WAY too many to list ham. Detective itams rapaimd or mpiacad within 10 days of value less tiian the number 4. It would probably loop forever if delivery. Mon defects subject to 20% rsstocking tae. Shipping charges are S4.00 first item and $1.00 for each additional item. Hardware shipping rates by quote only. VISA 6 we did not stop it at 500. We color it black. On the other hand, ilt fwCanf accoptwd M no eddftfotuf char go! Gat the best for less! if the value of k is less than 500, we conclude diat die equation

Circle 182 on Reader Service card. has exceeded M, it blew up. We color it some other color Hi Quality Version Available on AMIGALAND.COMdepending on how fast it blew up. Almost like magic, the circles of your previous program are replaced by die more complex All die pixels that cause the equation to converge to zero will be looking pattern of the Mandelbrot set. colored black. All other pixels will cause die equation to blow up, and we will give them some odier color depending on the above OTHER POSSIBILITIES mentioned speed of expansion of die equation, die number of Remember how I told you, in die first article, that with a little times through the loop, the k value. The complete program knowledge of the mathematics you could draw fractals that per­ appears in Listing One. haps no one else has ever seen before? Listing Three presents a Notice the use of die variable ‘Crunch’ to represent the 'Calculate' subroutine which draws a solution set that looks like maximum number of times I allow the WHELE-WEND loop to a distorted Mandelbrot set. Replace the ‘Calculate’ subroutine in execute. It is initialized to 500 at the beginning of the program. Listing One widi this modified one and see what happens. Notice also the use of the variable ‘M’ to represent die maximum Wow! A whole new world to explore. That's right, and value that 1 allow the equation to grow. It is initialized at the anybody with a home computer can explore it. In fact, Figure One beginning of the program to equal 4, We know by now diat there & Two show two fractals which were generated using diis is no need to allow the equation to grow as high as 1000 to modified subroutine. Now you are probably drinking that you determine if it is blowing up, 4 is sufficient. The ‘calculate’ subrou­ have to understand what the calculations of the Mandelbrot set tine ends with the number of iterations stored in the variable k. mean, before you can make modifications like diis yourself. It certainly would help. But in fact, even if you do not completely CHOOSING THE COLORS understand die math, there is nothing stopping you from introduc­ The actual color selecdon is done in the subroutine ing a few random modifications (mutations) and testing their ‘Select.Color’ which is called immediately after completing the results. You may accidentally stumble into a completely new ‘Calculate’ subroutine. At this point the variable k is tested in order world, to make color decisions. If k ■= Crunch, i choose color register 2, which is black. Whereas, if k is some other value, a different color A PREVIEW OF WELiTS TO COME register is chosen - more about this aspect of designing fractals Next month we will go through the full design of a fractal, next mondi. Nodce that in this program I did not use the usual step by step. I will explain how you can create different artistic ‘Choose.Color.Numbers’ and 'Use.New.Colors' subroutines like I effects by making various color decisions. did in previous months. I’m trying to keep things as simple as possible, so you can see and learn how to test for convergence. /Please refer to pages 91 & 92 fo r the fractal listingsJ mmodore

World Of Amiga New York '90

On April 27 and 28, The World Of Everyone wanted a firsthand look at their new multimedia presentation and Amiga, New York exposition attracted the new Amiga 3000. With its advanced designer package, Showmaker. Gold 15,233 attendees and over 40 companies. technology, superior speed, great looks, Disk President, Kailash Ambwani, stated: New York's Pier 92 was the setting for both and low price tag, the A3000 provides “Showmaker fills a critical need in new products and new companies to “set dramatic competition to Apple's Mac. (For multimedia and desktop video. Much as a sail" on the Amiga market. Companies a complete description of die new Amiga conductor of an orchestra is die person either attended WOA themselves or 3000, please see the coverage in AC’s May who is responsible for bringing in all the provided support for others-—Great issue.) different components of an orchestra, ValleyHi Quality Version Available on AMIGALAND.COM Products was a major factor with a CBM backed up its “New making sure they all work together in discrete 68030/50 MHz accelerated Amiga Commodore11 commitment with open harmony, making sure they are all synced in the booth of New York Dealer speeches and forums provided by and meet their marks at the right time, that Amugination. Commodore top executives. Both Lloyd is exactly what Showmaker does. Mahaffey, Director of Marketing, and Showmaker integrates all the different Commodore—Front and Center Harold Copperman, President and CEO of mediums—sound, graphics, animation, Attendees were greeted by CBM, spoke before large audiences. live video, music, tiding—and takes all of Commodore Business Machine^ new During Gold Disk's presentation of these components and integrates them booth which sported a host of Amigas and Sbowmaker, Mr. Mahaffey delivered the together into a multimedia presentation or activities. Commodore used WOA to message diat Commodore is aiming a video.” demonstrate the Amiga 3000 and their directly at the multimedia market. He Gold Disk presented Showmaker as new, still unreleased authoring system, stressed the need for products such as the first program with intelligent AmigaVision. Showmaker and AmigaVision to create autoloading of animations and graphics, AmigaVision is a new software advanced multimedia presentations with animation playback synchronized to music package to be bundled with all new A2GOO the .Amiga—presentations which cannot in frames-per-beat, background music and A3000 systems. Driven by an icon currently be produced on any other looping for easy creation of sampled interface, .AmigaVision permits users to computer platform. soundtracks, complete software control of create complicated presentations in a Mr. Copperman announced that genlock functions, video titling over Amiga flowchart format without resorting to a Commodore would now warranty all animation and graphics, production scripting language. Users can manipulate Amigas for one full year from the date of looping, and MIDI sound effect support for text, graphics, Amiga IFF pictures, purchase, This announcement covers all professional effects. animations, digitized sound, speech Amigas currently under their ninety-day Showmaker’s graphic interface synthesis, Videodisc control of Sony & warranty. Mr. Copperman also announced allows anyone to modify their presentation Pioneer players, and more. While the a free pick-up and repair service through by simply dragging out the time bar for that package allows preloading of audio and Federal Express for Amiga 500 computers sequence. The bar can refer to music, graphics to increase speed, it also under warranty. Mr. Copperman was animation, sound effects, text, video disk manipulates external programs dirough enthusiastic about the recent press input, or genlock activity. Showmaker ARexx™. For Amiga owners who did not Commodore has received and die new permits external clock input from MIDI or purchase their machine within ninety days products and management teams now in MTC. Utilizing the Amiga’s multitasking of die AmigaVision announcement, CBM place at CBM. capability, Showmaker will load files for will be offering AmigaVision for $149. future needs while the present animation is CBM’s apparent aim is to entice every Gold D isk’s Shoiumaker Takes A Boiv in progress. This allows the animation, Amiga owner to create presentations Gold Disk started festivities at 10 AM presentation, or video editing process to quickly and effortlessly on the Amiga. on Friday with the first live presentation of continue undisturbed. One of the main advantages of using In the cable area, Pre’spect now The POWER PC BOARD fits in the a system like Showmakerlies in your ability offers inexpensive solutions for expensive expansion slot beneath tine A500 and is to create a fully integrated video or situations. Their Non-Flicker Cable is a both an expansion card for the A500 and a multimedia presentation, edit it repeatedly, $38.50 cable that attaches an Amiga to a PC-XT computer. With the addition of this and then take the entire collection of TTL Hercules monitor for flicker-free card, it is possible for A500 users to run MS- components to a video lab to produce a performance. The TTL monitor cable is DOS software directly from their internal master tape in one take. Showmaker designed to attach a full-page monitor to an 3.51' drive, or it will support external 3-5" presentations are only limited by the size of Amiga. The Amiga/VGA Switch Cable was and 5.25" drives. POWER PC BO.ARD is your hard drive and the other external created for people who use a bridgeboard, designed to support Hercules/CGA and sources such as laserdisks and CD players. a multisync monitor, and a VGA card. They Monochrome video displays. The Gold Disk also announced can switch between the Amiga display and hardware includes Phoenix Bios, Clock/' Professional Draw 2.0 would be available tire PC display at the flick of a switch. Calendar, 704K RAM plus 64K EMS and a this month. The $295 package is five times NEC V30 8MHZ. Software includes fasterHi Quality Version Available on AMIGALAND.COM than previous versions and contains Free Spirit Software Plays Doctor Microsoft 4.01, MS DOS Shell, GW Basic, an auto-tracing feature which will generate Recently, Free Spirit Software has and, on the Amiga, CrossDOS. Pulsar also objects by automatically tracing over received recognition for their educational supplies a spreadsheet, database, and bitmapped images. Professional Draw now game, Barney Bear Goes To School, and word processor for the PC with each unit. will write text along curves, permit color the arcade-style fantasy, Dragonscape. POWER PC BO.ARD supplies the dithering (for an effect of over 1000 Yet they also publish a program to calibrate Amiga with an additional 512KR.AM as well apparent colors on the screen at once), and and correct Amiga floppy drives, Ami as a 512K RAM Disk. According to tire “blend” any two lines, colors, or objects. Alignment System. In this tradition, they demonstration, the POWER PC BOARD Gold Disk noted their new Go Id Disk have just released a new Amiga program runs faster than a comparable PC or XT, and Type series will consist of packages of three called Doctor Ami. Consisting of two even faster than Commodore’s compugraphic fonts per pack ($59.95). The programs (Drive Doctor and Memory bridgeboard for the A2000. The POWER PC Outline Fonts is a collection of over 35 Doctor), Doctor Ami is a memory1 and hard BOARD also takes advantage of the serial Compugraphic outline fonts ($199.95). All drive diagnostic program designed to test port, parallel port, joystick port, and of these resizeable fonts can be used in any memory and hard drive sectors. Memory' mouse. Pulsar was offering the entire program that accepts Amiga fonts. They are Doctor scans all system and expansion POWER PC BOARD package at an best known for their use in desktop memory' for any bad sectors and then maps introductory' price of $550.00. publishing, but are just as handy in video diem out. Drive Doctor reads all disk titling, word processing, and graphics. sectors, automatically mapping out any Soft-Logik, PageStream 2.0 and More! bad sectors. Doctor Ami retails for $49-95- Soft-Logik Publishing Corp., the Pre’spect Technics Inc. St. Louis, M issouri developer of Thomas Bothe and Horst Bothe were Pulsar Creates A PC-Compatible A500 PageStream, used World Of Amiga to extremely busy as they demonstrated Pulsar is the creation of long-time announce PageStream 2.0. This is an several new products they had just brought .Amiga enthusiast Eric Miller. Most Amiga upgrade to tire ir PageStream 1.8 released in in from Canada. Long known for their A.L.F. users know Eric and his alter ego, Dr. January' 1990 (please see the review on (Amiga Loads Faster) controllers for the Oxide, from the Amiga retailer page 14 of this issue), A500, 1000, 2000, MFM/RLL ST506 or SCSI. CompuSave. Eric dropped his Dr. Oxide Soft-Logik’s President, Deron Pre’spect introduced six new additions. attire for a suit on Friday in order to present Kazmaier, and company have been These included a Non-Flicker Cable, an Pulsar to the public. Besides incorporating extremely busy. Along with the release of Amiga/VGA Switch Cable, a TIT Monitor current products from companies such as PageStream 2,0 scheduled for this month, Cable, a backup program for hard disks and joe’s First Company and Micro- their press package distributed at WOA changeable disks, the FileRunner Momcntum, Inc., Pulsar wowed A500 included announcements on licensing Stream er, and a new feature in their ALF2 users with a new expansion card for the agreements with AGFA-Compugraphic software which allows the use of AMax with .Amiga that makes the .Amiga PC- and Image Club Graphics, Inc.. a new co­ anv hard disk. compatible. operative relationship with LaserUp! Software in San Francisco, a special user generator, digital video group promotion for PageSLream 2.0, as effects, color well as a new addition to their line, processing, Business Forms. dual frame Business Forms is a collection of 40 b u f f e r s , customizable forms for day-to-day use in production accounting, invoices, office memos, and sw itch er, purchase orders. preview Licensing AGFA-Compugraphic’s output, linear Bullet outline font technology allows Soft- keyer, digital still Logik to incorporate new fonts into store, a real-time PageStream 2.0. Some of the new fonts (l/<50th of a second) available under this agreement are CS frame grabber, Times in Roman, Bold, Italic, and Bold integrated design and Italic as well as CS-Triumvirate and CS- more. All of these features Triumvirate-Bold. These hinted outline are available through an fonts allows PageStream to produce quality intuitive interface. Each fonts on the screen and output to dot­ process of the Toaster is matrix printers. accessible with the Amiga's The additional licensing of Image mouse. Club Graphics, Inc.’s Image Club The heart and soul of collection will allow Soft-Logik to develop the Toaster is its ability to and incorporate this large variety of dip art control four video inputs -Yi , Saxon Publisher. now available for the into the and produce hundreds of Amiga market. The current library contains digital video effects. All of over 2000 Encapsulated PostScript (EPS) the hundreds of different images. These images can be reduced, digital effects can either be enlarged, or distorted without a loss in manipulated with the dear reduction. The type library, Adobe Type 1 graphic interface or by compatible, contains over 600 licensed using the keyboard. The typefaces. color processing engine PageStream 2.0 appears to have all can create color negatives, the features of V1.8 plus additional monochrome, solarization, posterization, capabilities provided by the new color vignettes, and photographic filter agreements mentioned above. 1l utilizes effects. Hi Quality Version Available on AMIGALAND.COMthe AGFA-Compugraphic hinted outline The Toaster generates 35 ns text in NewTek will be able to supply the entire fonts as well as the Adobe Type 1 IBM 16.8 million colors with variable shadows Amiga market quickly. Company format (without hints). In addition, and other effects through its built-in executives have stated that the demand for PageStream 2.0 allows users the precision character generator. The character die Toaster has skyrocketed following its of 1/100 degree increments in rotation of generator comes with 25 standard fonts, demonstration and success at The Nadonal objects and the ending angles of arcs. Font plus it permits unlimited user-definable Association of Broadcasters convention in sizes can be specified in l / 100th point fonts. With 100 pages of on-line storage, April. (Please see the related article in the increments and the position or size of an graphic separators, full spectrum May issue of Amazing Computing). object can be set to l/ 100th point background color graduations, the Toaster Notwithstanding the stir created in increments as well. Registered owners of even offers a variable speed smooth crawl professional markets, NewTek remains previous versions of PageStream will be and scroll at 60 fps. confident that the Toaster will be used able to upgrade to 2.0 for $75.00. The Video Toaster's highly effectively by a great many non­ User groups can, by written request, professional output device was praised by professional Amiga users. While receive two copies of PageStream as well as graphic artists for its two 24-bit, broadcast- commercial equipment currendy does not a demo copy for their library. It is hoped quality frame buffers. Not only does this give die casual videophile access to tools that one copy will be used for newsletter allow the Toaster to hold two separate which provide completely professional reviews and production, while die second digital images, but, with the correct results, a spokesperson for NewTek was is used as a prize by the group. Usergroups software, it enables 24-bit graphic very excited by the use of the Toaster in live are aiso eligible for group discounts rendering and painting in these two areas. video work. through their dealers. Although NewTek has adhered to the 24- With luminance keying, frame hit graphic IFF standard from Commodore, grabbing, two 24-bit cards, character N eivT ek’s T oaster none of the major 3D, painting, or ray- generation, and coundess digital effects all Meets The Amiga Community tracing products currently available will manipulated by mouse or keyboard on a New Tek dem onstrated its full render to these requirements without using graphic interface, NewTek has aimed for a working Video Toaster before packed a conversion program. (Several such wide market—anyone who wants to do audiences throughout WOA. If Amiga programs are currently available in the more with video. The Toaster's price has enthusiasts were not standing in awe of the public domain, according to a NewTek remained a very attractive $1595, designed special effects and graphic capabilities executive.) to appeal to the home user, graphic artist, displayed on the large overhead monitors, NewTek is now promising early and television producer alike. they were watching the continuous shipments of die Toaster in late June with showing of NewTek's Penn & Teller full quantities available for dealers in July. P roW rite 3-0 demonstration tape for the Video Toaster. Citing FCC requirements and testing as the New Horizons Software, Inc. The Toaster's brochure promises a reason for the delay, a NewTek distributed their first copies of ProW rite multitude of features including a character spokesperson was very confident that 3-0 ($175). .Among die many features of the new ProWrite is a modified wide and allows the user to scan images by technique that, when added to its graphics hand into a black-and-white format. Amiga AudioLink capabilities, is a boon to video scripting. owners with 1MB of memory (and no other With the addition of ProScript ($49-95), applications) can scan in a 4" by 8” image 16-bit Lin ear SI ereo Pro Write will print to any Postscript printer. in 300 dpi, while Amiga users with 2MB of A udio Pro cessc >r with New Horizons has provided a page of memory can scan an area up to 14" tail at system features from better print utilities to 400 dpi. Sounc Sampii ng Ccapabilities tine best feature of all—a Bug Free The Touch*Up™ software allows i 1 l Guarantee. New Horizons has been users to manipulate their scanned images U i!1 applauded enthusiastically for marketing a or other images imported from other product that they guarantee will be trouble- formats including: IFF, IMG, PCX, TIFF, ) jra ■m, iii,, ■ -rr i free, They have established a new level of MacPaint™, and GIF. The Scanner was professional quality for Amiga products. sold with a .9 pre-release version of [lie software at die show, but finished versions 1' 1 ®i * Migraph Hand Scanner will be sent to all users when the product Beta Uinlimited a n d Touch * U p™ ships this month. The scanner with 87 Slimmit St Brocaklyn, NY Migraph demonstrated their new software wall retail for $399. entry into tire Amiga market, the Migraph 11231 Hand Scanner and Touch*Up™ (continued on page 95) Circle 126 on Reader Service card. software. The hand scanner is over 4 inches World Of Amiga, New York '90 Exhibitors

Abacus Software Commodore Business Free Spirit Software Inc, MicnTron/MlcroDeal Psygnosls Limited 5370 52nd St. S£ Machines PO Box 128 3285 Lap eer Rd W Port of Liverpool G rand Rapid. Ml 49512 1200 Wilson Dr. 58 Noble St. Aubum Hills, Ml 48057 1st Floor, Pier Head (6 :6 ) 698-0330 West Chester, PA 19380 Kutzton, PA 19530 (313) 377-8898 Liverpool, England L3 1 BY FAX (616) 698-0325 (215)431-9100 (215)683-5609 Inquiry #241 O il 44 51709 6466 Inquiry #214 FAX (215) 431-9156 FAX (215) 683-8567 Inquiry #250 Inquiry #224 Inquiry #232 MlcroProse A c c o la d e 180 Lakefront Dr, Saxon Industries 550 S. W inchester Blvd. #200 Comp-U-Save Gold Disk Inc. Hunt Valley, MD 21030 14 Rockcress Gardens San Jo s e . C A 95128 414 M ap le A ve, 2175 Dunwin Dr #6 (301) 771-1151 Nepean. Ont (408) 985-1700 Westbury. NY 11590 Mississauga, Ont, FAX (301) 771-1174 C a n a d a K2G 5A8 FAX (408) 246-0885 (516)997-6707 Canada, L5L 1X2 Inquiry #242 (613)228-8043 inquiry #215 FAX (516) 334-3091 (416) 828-0913 FAX (613) 563-9596 Inquiry #225 FAX (416) 828-7754 Migraph Inc. Inquiry #251 AmaginationHi Quality Version Available on AMIGALAND.COMInquiry #233 200S. 333rd., Suite 220 130 W . 26th St. Data East USA Federal Way, Wa 98003 Semltech Inc. New York, NY 10001 1850 Little Orchard Dr. Great Valley Products (206) 838-4677 146 S. Lakeview Dr. (212) 727-3290 San Jo s e , C A 95125 225 Plank A ve FAX (206) 338-4702 Gibbsboro, N J 08026 FAX (212) 727-3293 (408) 286-7080 Paoli, PA 19301 Inquiry #243 (609) 346-9814 Inquiry #216 FAX (408) 286-2071 (215) 889-9411 Inquiry #252 Inquiry #226 FAX (215) 889-9416 New Horizons Software Amiga Video Magazine BBS (215) 889-4994 P.O. Box 43167 Sierra On-Une Inc. 200 W . 72th ST. Suite #53 Disks & Labels to G o Inquiry #234 Austin, TX 78745 P.O. Box 485 New York, NY 10023 Rt. East Ham pton Business (512) 328-6650 Coarsegold, CA 93614 (212) 724-0288 Park Hillside Hard & Soft FAX (512) 328-1925 (209) 683-3472 Inquiry #218 Mount Holly. NJ 08060 Mi. Laurel Rd. inquiry #245 FAX (209) 683-3633 (609) 265-1500 RD3, Box 3420A Inquiry #253 Beta Unlimited FAX (609) 265-0818 Fleetwood, PA 19522 NewTek, inc. 87 Summit St Inquiry #227 (215) 929-9695 115 W, Crane St. Soft-Logik Publishing Corp. Brooklyn, NY 11231 Inquiry #235 Topeka, KS 66603 11131 F South Towne Sq. (718) 852-8646 Dr. T's Music Software Inc. (913) 354-1146 St. Louis, M O 63123 FAX (718) 624-5738 220 Boylston Sf Suite 206 Hologramophone Research FAX (913) 354-1584 (314) 894-8608 Inquiry #219 Chestnut Hill. MA 02167 6225 SW 145 St. Inquiry #246 FAX (314) 894-3280 (617) 244-6954 Miam i, FL 33158 inquiry #254 Britannica Software FAX (617) 244-5243 (305) 252-2661 Octree Software 345 Fourth St Inquiry #228 Inquiry #236 311 W . 43rd St. #904 Softw are Link Inc. San Francisco, C A 94107 N ew York. NY 10036 197 E. P ost Rd. (415)597-5553 Electronic Arts/Lucasfilm/ innerprise Software Inc. (212) 262-3116 White Plains, NY 10601 FAX{415) 546-0153 M ies Computing 128 Cockeysville Rd. FAX (21 2) 581-7703 (914) 683-2512 Inquiry #220 1820 G a te w a y Dr. Hunt V alley. MD 21030 Inquiry #247 FAX (914) 683-5158 San M ateo , C a 94404 (301) 785-2266 Inquiry #255 Briwall (415)571-7171 FAX (301 785-2268 Precision Inc. P.O. Box 129 FAX (415) 571-7995 Inquiry #237 8404 Sterling St #A Spectrum HoloByte 58 Nobie St. Inquiry #229 Irving, TX 75063 2061 C hallenger Dr. Kutzfown, PA 19530 iNOVAtranlcs. inc. (214) 929-4888 A lam ed a , CA 94501 (215) 683-5433 Electronic Zoo 6499 Greenville A ve, FAX (214) 929-1655 (415) 522-3584 Inquiry #221 3431-A Benson A ve Suife 209B Inquiry #248 Inquiry #256 Baltim ore. MD 21227 Dallas, TX 75231 Broderbund Software (301) 646-5031 (214)340-4991 P re 'sp e c t Technics Inc. Spirit Technology 2886 Bluff #546 FAX (301) 646-7753 Inquiry #238 1085 St Alexander. 220 W. 2950 S Boulder, CO 80301 Inquiry #230 Suite 500 Salt Lake City. Ut 84115 (303) 499-3266 Media Tech/ Bethesda Montreal, Que (801)485-4233 inquiry #222 Expert Services Softworks C a n a d a , H2Z 1P4 FAX (801) 485-6957 5912 Centenial Circle 15235 Shady Grove Rd, (514) 954-1483 Inquiry #257 California Freeware Florence. KY 41042 #100 FAX (5 1 4 ) 876-2869 1747 E. Avenue Q. C-l (606) 371-9690 Rockville, MD 20850 Inquiry #249 Zuma Group Inc, Palm dale , C A 93550 Inquiry #231 (301)963-2000 6733 N. Black C anyon Hwy. (605) 273-0300 FAX (301)926-8010 Phoenix, AZ 85015 FAX (805) 273-0672 inquiry #240 (602) 246-4238 Inquiry #223 FAX (602) 246-6708 Inquiry #260 c An Introduction to Object-Oriented Amiga Programming

by Scotl B. Steinman, O.D.. Ph.D.

INTRODUCTION process of modifying the data. These Look at just about any computer descriptions are reusable, and once cre­ journal these days and you will see ated, they can be “plugged into" other scream ing from its pages “OOPs"! Is this programs and adapted to new applica­ a warning from software developers? In tions. Hi Quality Version Available on AMIGALAND.COMa sense, yes. but it doesn’t mean that Several object-oriented languages your software may break - just the op­ have sprung up suddenly. Some adhere posite. OOP is the abbreviation for strictly to object-oriented concepts, Object-Oriented Programming, and such as SmallTalk, but these are also what object-oriented programming interpreted languages (like BASIC) and promises is the construction of large so are slow. Others are “hybrid" lan­ programs that are easier to debug, guages - object-oriented but built upon maintain and modify. Rather than treat­ existing fast compiled languages. C++ is ing programs as a series of procedures one of these hybrid languages. It is an executed one after another, object-ori­ extension of the C programming lan­ ented programs focus upon objects, guage that supports all the features of C, which are groupings of data and al­ plus a lot more. C++ was designed by lowed actions that act as descriptions of Bjarne Stroustrop of AT&T to be the real-world entities and how they be­ successor to the C programming lan­ have . Programmers learn to think in guage - what he calls “a better C”. Let’s terms of the data itself and the problems look first at what makes C++ better they are solving rather than a particular than C.

“C++ offers more than enough new features to justify learning it.” WHYBOTHER? inline functions are subject to argument type Learning a new programming language checking, unlike macros. always requires effort. That learning effort must References, accessed with the& operator, be justified by a later increase in programming permit dre passing of function arguments by ease once ihe new language is grasped. C++ reference widrout the need to use pointer nota­ offers more than enough new features to justify tion within the function, Tor example, if a learning it. The strength of C++ is that you may function argument is int& x, we may access x start by using just a few of its features, and without the *x notation even though we have gradually add more and more as you learn, until passed it by reference rather than by value. This you are truly producing elegant reusable ob­ makes our code easier to read and understand. ject-oriented programs. We’ll start by summa­ C++ has additional memory allocation rizing some of the features of C++. operators. Rather dran call mallocO and freeO as “Object- NON OOP FEA TURES OF C++ in C, we use dre operators new and delete in a Not every feature of C++ was added with simpler notation. For example, to allocate a object-oriented programming in mind. Some character string array str of 20 characters, we oriented were added just to make C programs easier to write sir = new chart 20 j, aird to free it we write write, more bug-free and more understandable. delete str. Let’s look at a few of diem. Function arguments may now be supplied programming C++ supports strong data type checking, with default values. If dre user fails to provide a which helps prevent you from using the wrong value for an argument when calling the func­ data type by mistake. We've seen this in C when tion, dre default values are used. is a new way we specify die argument types and return type Function overloading is a means of allow­ of a function. However, in C, if you pass the ing several related functions with die same wrong data type to a function, the program will nanre to be called with different argument data to break continue to ran, but run incorrectly. In C++, you types. Let's say we’d like to have a function write a function prototype that contains the called printO drat we wish to call with either a down argument types and return type before you use character or a double argument. In C, we'd need the function. The compiler will then generate to have two distinct functions, cprintO and an error message, if you supply the wrong data dprintO- In C++, we’d need only to call a programs into types when calling a function, giving you the function with tire single name printO widr either opportunity to find your error before it finds a char or a double argument! Hi Quality Version Available on AMIGALAND.COMyou! The input/output functions have been small, easy to C++ allows you to create new data types. changed in C++. If we choose, we can avoid While C allowed you to do something like this using the formatted I/O functions scanfQ and with typedef, these “new" data types were printfO- It's too easy to accidentally try to print understand, simply dre same old data types with new a double variable with %d, resulting in bizarre names, just like aliased command names. New output. The new stream class permits you to do data types in C++ really are new data types and stream I/O in a more natural way that avoids reusable and are subject to type checking when drey are used errors. The stream class can also automatically as function arguments or return values. recognize die data type of the variables you The new keyword is ‘const’. It provides a wish to print! adaptable way to define constants without using the pre­ There are numerous other fine points of processor command ^define. It avoids dre er­ C++ that make programming easier. However, rors that stem from preprocessor text substitu­ space prevents me from listing all of them here. modules.'7 tion and allows strong type checking on con­ Rather dian fill up this article with a list of non- stants as well. If a function makes one of its object-oriented C++ features, let’s look at tire arguments a constant, dre passed value is more revolutionary world of object-oriented immune to changes. This allows us to pass programming. pointers to functions without worrying about accidentally altering the data values pointed to. A GENTLE LOOK AT Another newT keyword is 'inline’. When OBJECT-ORIENTED DESIGN we declare a small function to be inline, its code Before we examine how C++ supports is substituted directly when the function is object-oriented programming, let’s talk a bit called, much like a macro definition, avoiding more about what object-oriented design is and the overhead of calling a function. However, what makes it so beneficial. The key concepts of object-oriented pro­ must be within the car class’ code only and not gramming are data abstraction, data encapsula­ elsewhere in the program. Data encapsulation tion. data hiding, the class interface, inheritance also allows us a new degree of control over our and polymorphism. These are big words, but data. Control that helps prevent unwanted they really mean simple things. Simple but pow­ changes to the data. We may allow users of the erful things! class (yourself or other programmers using the As computer programs get larger and class) access to certain class data and actions larger, they also get harder to maintain. It’s one and not to others (data hiding). For example, thing to write a big program, but that takes only we may allow a user of class car to drive it or a small fraction of your programming effort. park it, but not to directly control the engine Let's face it — what really takes up the most time timing or to remodel its parts! The subset of is debugging and modifying programs! Object- actions that risers are allowed to do forms the oriented programming Is a new way to break class interface, the way that die programmer down programs into small, easy to understand, must use the class. It prevents the user’s access reusable and adaptable modules. These mod­ to sensitive data or functions that we don’t want ules are not C functions, but a unique combina­ them to use in ways we did nor plan, if we don't tion of data and functions called a class. A class specifically allow diem this access, diey don't is simply a way to represent a real-world con­ have it! This helps ensure the proper use of the cept. Let's look at a trivial example: Let’s say you class - that is. diat the user makes a car do only need to write a program that simulates different what we think a car should do. models of cars. First, you would think about The user interface and data encapsula­ what parts make up a car — an engine, tires, a tion have a more important side effect - the transmission, etc. - and what a car does - steer, ability to change our class' implementation de­ drive and stop. All cars arc built from common tails without affecting die program that uses die parts that make all cars perform similarly. I Iere's class! As an example, suppose you need to use our object - the car. A car is characterized by sorted data. In C. changing how the sorted data both its parts and the actions it can perform, and is stored and the particular sorting function our class car is similarly composed of car parts would require changes in all code that accesses (data) and a set of car actions (functions or the sorted data - quite a task in large programs. methods). In C++, so long as the user of our sorted-data An object is a particular instance of a class. class accesses that data via die class interface, Hi Quality Version Available on AMIGALAND.COMEach object shares the class' common data and we can change the class’ data representation functions, but may differ in the exact values of and function algorithms as much as we want each data variable. In our example, a Ferrari without the user's code being affected. All diey object and a Porsche object are both instances must do is recompile and relink with our new' of the car class, and so share die common class - no reprogramming is required ! features and behavior of all cars (that is, they Although classes may be used like built- both have engines and they both drive). How­ in data types, they are far more useful. Classes ever, the parts they are built from may differ that are written once may, if written correctly, slightly (such as different types of engines, be used over and over again in other programs different transmissions, etc.), even though they without rewriting the same source code by are still both cars. Similarly, objects created from placing them in class libraries. More impor­ the same class share common data variables and tantly, drey may be built upon and enhanced to allowed actions, but may differ in their data's adapt to new uses. This feature is called inheri­ values. tance. We create nerv subclasses from our Classes and objects provide us with data original class and have the option of adding abstraction —the creation of new data types that new data and actions to it that extend its represent real-world entities. The new data type usefulness. The subclass shares all die proper­ (class car) can be used as if it were a built-in data ties of its parent class by inheriting them, and type like an int or float. Data encapsulation is Lire we may choose what properties we need to term for the packaging of data and functions change for a given application. Returning to our into classes. This packaging allows us to locate car example, we can create different subtypes bugs more easily as well. If a program using a car of cars, racing cars and street cars. Each shares doesn't work correctly because the data within the features of car, such as an engine and the a car objectncts strangely, we know that the bug ability to drive, but racing cars also have roll say we have a class point with derived classes rectangle CANVAS and circle, w'ith functions called draw'O in each. We may For the Amiga then make a list of graphics objects to draw. When we This is a three disk collection of 13 animation drawO each object in the list in turn, the system knows demos and 5 pictures that you can load into your whether to draw a point, rectangle or circle. favorite animation editor, such as Deluxe Paint 111. This collection of animations was developed OBJECT-ORIENTED FEATURE OF C++ in the style of traditional animation. One meg. C++ supports all die key concepts of object-ori­ of memory is suggested as these animations run ented programming, and does so with little sacrifice of at I5fps and range from 60 to 120 frames long. program speed. ______Price S30.00 (-S2 00 shipping? Due to the limited space for this article, we cannot look at all the ways that C++ supports object-oriented [u n a r programming. However, just to whet your appetite, let me show you how easy it is to create and use a simple C onstruction Disks class, and in the process demonstrate a few other Create your own fantastic scenes of lunar powerful features of C++ classes. Here’s die definition of landscapes, tumbling asteriods, and sparkling a class box in die header file box.h: stars on the Amiga with these high quality, full color images This 2 disk set contains over class box t 100 pictures, brushes, and anim brushes -- your private: only i i m i tar ion w i i I be your imagination. int x; double y; char 'name; To order CANVAS or LUNAR Construction disk, public: please send a check or money order to: boxf int a = 6, double b = 1.2, char "boxnamc > 5i 1 ver Fox Software -boxO; P.O Box 55 I 413 void fillxf int a ) [x = a I Dallas,Tx 75355-1413 void displayO; 1; Call (214) 349- 1 68 I for information and Dealer inciulries. m ini— The keyword class tells the C++ compiler that a Circle 105 on Reader Service card. Hi Quality Version Available on AMIGALAND.COMclass definition is to follow. Notice that a class looks a lot like a struct with functions in it as well as data. This class has two regions - a private region and a public region. bars and may race, while street cars have chrome trim and The private region may not be directly accessed by users air conditioning and may parallel park. of the class. Tt may only be accessed by public functions. Inheritance allows us to create general-purpose In the class box, users cannot set die double y. since classes whose uses may lie extended or adapted by there's no fill v 0 function in the public region that could creating more specific subclasses. .As a more realistic access v. We have protected our y variable from being example, we could make a general window class, a altered by the user. The public region therefore forms rectangular portion of the screen, and tliis may be carried our class interface - the actions w'e allow die user to further to make the subclasses textwindow for the pres­ perform. Our class interface contains die functions fill x entation of text and picture window' for the presentation 0 and displayO. As an aside, note that the functions are of graphics. The time-saving benefit of inheritance is that defined as in ANSI C (function prototypes) and allow the you don’t have to start from scratch to write programs with setting of default arguments diat are used if the user does textwindows or picturewindows. Once the general dara not call the function w'ith specific values for the argu­ and algorithms of parent class window' are debugged, ments. In addition, die member function fill x 0 has been they may be reused or modified by its subclasses textwin­ supplied as an inline function (die keyword inline isn’t dow-' and piccurewindow, and only the changed features necessary inside a class if the function code is written coded. inside the class definition). The last advance of OOP is polymorphism. This is What is that oddball function boxO in the class the ability to have the system recognize at run-time w'hich box? Why doesn't it have a return type? Why does this function to call! This makes programs more flexible. function's name match the class’ name? This is a special Rather than having to hard-code the specific function function called a constructor. It's used for initializing the you’re going to call before compiling a program, you may class, if we want to do so. In other w'ords, w'e could have request a general action, and die system W'ill know as the die data in objects of the class box initialized automati­ program runs w'hich function to call. For example, let's cally when the objects are declared! This can include Twilight Gam es Introduces NEW Corporate Raiders

52 years ago, the Orvo first explored what is now known as the Onait Quadrant. The area iro.t forgotten because the natural dangers outweighed any usefulness *- dangers like Gravity Wells, Asteroid Belts, and the Sirsha Aba an. That u as You control Multiple before technology u>as developed to mine raw energy directly Patrols from the Gravity Wells. Now four companies compete for mining rights in the Onait Quadrant. • Form Alliances • Plan your Strategy! Then grab the • Obliterate Enemy joystick and take Bases control • Plunder Enemy • A p erfect blend o f Grav Wells Strategy and Arcade Action

| Please send me Corporate Raiders. ■ E nclosed is a check or money order lor S39 95 - Si ,00 shipping ' N a m e ______I A d d r e s s ______| City, ST Z ip ______Wail to: Twilight Games 0r Call: (503) 293-6593 j P.O. Box 273 COD and 2nd Day delivery available I I Beaverton, OR 97075 I

Hi Quality Version Available on AMIGALAND.COMCircle 175 on Reader Service card.

storage memory allocation for data arrays as well. The even stranger function starting with a Lilcie (~) is a destructor. It does the opposite of a constructor. When a void boxudisplavO class is no longer being used, the destructor provides 1 automatic cleanup, so you don't need to remember to free cout « "Box: n" « « “Name: “ « name « " n” up memory yourself. « “Contents: “ « “x= “ « x How do we use the class? This is simple also. We « “y= “ « v; create a file box.cp that contains the member function 1 code: We include the file box.h containing the class definition at the top of the box.cp file. The first member ^include ^include “box.h” function we write is tire constructor boxO. It sets the values of box’s data members using the memory allo­ box: :box( int a, double b, char ‘boxname 1 cation operator new to create storage for the character 1 string name. Note that member functions can access x - a; data members directly. The next function that we write y “ b; is the destructor— boxO. It frees the memory allocated name = new char[ 30 ]; in the constructor for name by using the delete opera­ strcpy( name, boxname ); tor, The final member function simply prints out the 1 contents of the box. It takes advantage of the stream class for simple output to the standard output stream box;:~boxO ( cout. The data types for x (int), y (double) and name delete name; (pointer to char) are automatically recognized by cout. COMPUTERS, ETC! PRODUCTS — SUPRA SPECIALS! (813)377-1121 SAVE ON AM IGA HARDWARE, SOFTWARE, HARDWARE, IGA AM ON SAVE so er ustom C Service e bx os u o cp a te n o an, its mainO, of end the at scope of out goes box hen w object when automatically is called boxO constructor Tire When reuse). later for alibrary in place could we (which destructor -boxO is called automatically and box’s mem- mem- box’s and automatically iscalled -boxO destructor Finally, displayO. call then and a notation dot with fillxO function structure-like member call We created. is myBox its is in C. d variable program a typedef box, declare type this of you’d that myBox way same object the about an create striking we of First simplicity. advantage What's takes that box. program class executable an produce class box: uses that program a short Here's file box.o. and object the file box.h isheader the look to need All we need code. never at its source we a program, in is used class box the must be done with the object - iiow it's done isunimpor­ done it's iiow - object the with done be must 013 Hi Quality Version Available on AMIGALAND.COM mvBox.dispIavO: box myBox( 5, 7.8, “Empty Box" ); Box" “Empty 7.8, 5, myBox( box mainO ''box.h" “include ) ):3 nivBox.fillx( I A5Q9 O M unu D950.00 695.00 495.00 HD SOQuantum MB HD Quantum MB 40 Drive Hard MB 20 D-5 10Wt) 99.00 Supplies er Watt) Pow (150 HDL-150 cnt aplacem Bridgeboard!) R to A500 625.00 sound adds Install, to (Easy 129.00 eaker Sp eboard ridg B 325.00 w/cable Modem Baud 2400 Supra onboard MB /2 w Card Ram MB 8 HD Quantum MB 80 HD Quantum MB 40 A2000 (populated) 2 MB Ram Card for HD for Card Ram MB 2 D-5D 10Wt. / ult) 129.00 outlets) a/c 3 Watt. (150 HDL-150DL 110.00 Expansion Ram 512K ' is freed up. All the user must know is what actions actions what is know must user the All up. freed is ' We compile this file and link it with box.o to to box.o with it link and file this compile We box.o to box.cp file compile to need only we Now l More nf i n tio a m r fo In e r o M r o f all C AND ACCESSORIES! AND rt 1 ol Servi ar . rd ca e ic v r e S r o d a c R oil 113 lrcto C ! c t e J UES A PUIERS J M O C 19.95 899.00 260.00 (813)378-2394 Technical Support

THE UT R O TH U A E H T T U O B A REFERENCES FEE FEE DBA CK NEEDED C++ the work, functions member die how change to wish Addison-Wesley Publishing Company. Publishing Addison-Wesley the first of a series. series. a of first the of editors die in C++! If tell your interested must you’re that you want Computing Amazing you If “sermons", in-depth description. more “evangelical" simple fast, list a to be easy are features C-+ and concepts programming im­ been has that standard 2.0 version AT&TC++ conforms the C++ that of to version new a as well intermedi­ as C code ate bypasses also is that class Lattice C++ as compiler system. atrue on such working C++,operating AT&T entire the for standard in interfaces found not fea­ .Amiga-specific tures some contain itdoes C++, of version to So allspace die.se features. includes more lot that a a program need we'd demonstrate However, object-oriented of programming, advantages all the support that features of controlled series a becomes A program user. the to tant Wiener R.S. and Pinson L.J. (1988) L.J. (1988) Pinson and R.S. Wiener (1986) B. Stroustrup Company. lishing translator diat converts the C++ code we write into into write any in as we linked and code C++ compiled is which the Ccode standard converts diat translator 1.0. Lattice C++ is a language is Amiga C++, Lattice version from object an it should-create still what do will program ipa .. 18) C++ (1989) S.B. Lippman B.J.Cox (1987) article this make can we maybe enough, isgreat interest to article diis Consider detail. in teach to time require but object-oriented Both C++. with do may you of what face computers. UNIX MS-DOSand on plemented old an of implementation an is it Although program. C implemented is C++ Amiga. how die on discuss and gears change let's has C++ using! worth be not would C++ or box, class no it’s when it destroy use. and in it, longer display it. fill box, class If we closo. to object the “asking" by performed actions search Fou ndation in San Francisco, Lie has Lie developed has Francisco, San in Fou ndation search who optics in physiological isaPh.D. Scott Steinnian Dr. 1.00, corporated. Version Manual, C++ Compiler Lattice Company. Publishing software fo r the Amiga since 1986. since Amiga the r fo software tionary Approach. tionary u n iulsse tteSihKtlwl y Re­ Eye Smith-Kettlewell the at system visual an hum s urnl cnutn sinii rsac o the on research scientific conducting currently is C++. nd A Programming Object-oriented ON THE AMIGA THE ON At present, the sole implementation of C++ on the the C++on of implementation sole the At present, This introduction to C++ barely scratches the sur­ the scratches barely C++ to introduction This Of course, C++ programs offer a lot more than the the than more lot a offer programs C++ course, Of Object-oriented Programming: A n Evolu­ n A Programming: Object-oriented Addison-Wesley Publishing Company. Publishing Addison-Wesley The C++ Programming Language. C++ The Programming Primer. Addison-Wesley Pub­ Addison-Wesley n nrdcin To Introduction An Addison-Wesley Addison-Wesley atc. In­ Lattice. p . .pQ

4 \< ^ TURTLE GRAPHICS

Computer graphics and programming with a LOGO-like system

by Dylan McNamee

A GREAT WAY TO INTRODUCE LISP is similar to Logo in many ways; LISP is computer graphics and programming to actually die parent language of Logo. A turtle beginners is to teach them turtle graphics. graphics system implemented under LISP Turtle graphics are also a great tool for both would be part of an inherently more power­ Hi Quality Version Available on AMIGALAND.COMbeginners and experts for playing around ful language, useful beyond the learning with fractals and odier geometric construc­ years. Scheme is an implementation of LISP tions. Unfortunately, there are not any widi some changes to make it more consis­ public domain turtle graphics packages for tent and easier to learn. Scheme is widely the Amiga. This article presents a package used in education, ofcen in places where that implements turde graphics on the Logo once was. Best of all, there is an Amiga. There are two parts to the article. excellent public domain version of Scheme The first section presents a programming for die Amiga, available in the Fish Disk project that implements a turde graphics collection disk number 149. package. The second part is a tutorial on The project has two components - the using die package with some examples of Scheme half and the turtle half. The Scheme creating fractals with die turtle. half is just a set of routines, written in Tunie graphics are a simple way of Scheme, which set up die turtle environ­ drawing on a screen, using commands ment, providing some interface routines for given to an imaginary "turtle." The turtle sits the turtle half. The turtle half is really two on the screen in a particular posidon, facing parts as well. There is a drawing half, called in a particular direction. Commands (such the turtle server, and a command interpreter as forward 10, or right 45) given to the turde - the turtle client, bodi written in C. The are relative to its current posidon and direc­ client sends command requests to the tion. Turtle graphics are traditionally imple­ server, then the server interprets and exe­ mented as a part of die Logo language, and cutes diem. rarely in any odier way, even diough Logo The turde server is just a graphics and turtle graphics are not inextricably re­ window and a set of routines which draw on lated. die window according to die commands which arrive at its message port. The com­ PARTI: mands are plain turtle commands, such as LISP TURTLE GRAPHICS^ PROJECT left X, forward N, penup, pendown, etc., This programming project imple­ ments turtles using LISP instead of Logo. When a Scheme program that uses these turtles is running, a few things are really happening before a Scheme command like (forward 10) actually draws a line: in Scheme, (forward 10) calls the forward routine with the argument 10. The forward command executes an AmigaDOS system call “parse forward 10". AmigaDOS gets the “parse forward 10" command and runs the parse program with the two arguments forward and 10. Parse (die turde client) runs and sees the command forward 10, packages up a message for die server, and sends it. The server wakes up when it receives a message, sees the forward 10 command, and using the current coordi­ nate and angle, draws die line on die screen and updates the current coordinate. All of this sounds like a computer version of a Rube Goldberg machine; however, there were not many otherways of doing die same diing. I could have changed Scheme itself, Figure One: Fractal produced by Listing Ten making the turtle client built in, but modifying the Scheme source code would be messy, and no one wants lots of special Turtle Sewer 3E E mutated Scheme's running around. Writing die commands to a PIPE: device and starting up the client like “parse < PlP£:tmp': (had ‘ float,sen") l a will not work either, because AmigaDOS buffers files and the !;> (init) commands are not executed until a lot of them have been [shell 41 It written, or the pipe file is closed. :) (float 28!) It One final way to do it, which was implemented as an 0 (shift-left 25!) option, is to have Scheme write its commands to a file instead It :> (shift-dosn 168) of calling die turde client each step. When you want to draw ft the picture, call die client (which is called parse), redirecting :) (icui-in) It in the file Scheme wrote. For example, if the file was called 1:) “turde.cmd", you would see the picture by typing “parse < turde.cmd”, and the picture would be drawn as fast as the file could be read. THE PROGRAM The main server module is presented in Listing One. The Hi Quality Version Available on AMIGALAND.COMserver keeps track of the turtle's current (x,y) coordinate with die global variables turtleX and turtleY. The server accepts commands through its message port and executes them one Figure Two: Demonstrating floating elements with Listing Eleven at a time until it receives an EXIT_TURTLE command. Each of die actions die turde can do is represented by a procedure in the server. Some of the commands just change a state variable: die commands right and left just modify the turdeAngle variable. Forward and Backward use the tur- deAngle, turtlePenDown and die distance argument to draw die turtle's path. The turtle server provides a few other functions as well. The refresh procedure clears the image and redraws the turtle's figure on the window. The clear screen operation resets the ;:) (loac "fret.sta') turde to its original position and direction, and erases the ft image. The shift operations shift the whole image on die (tree 211) It screen. Shifting is useful in conjunction with zoom in revealing (shift-ioim 12!) parts of die image that are off the screen. As die turtle moves It ;:> (icoriii) on the screen, each line is stored in die RefreshArray for the I t refresh procedure to use when it redraws the image. To zoom !:> tioorin) It in or out, all that needs to be done is change die scale and call (shift-left 35) it refresh. :=> I The drawing code is in Listing Two. The main procedure in the drawing code is DrawLine. It takes the line that die turtle Figure Three: Tree figure produced by Listing Twelve server told it to draw, and actually does the drawing. First it plus a few special display commands like zoomin, zoomout, transforms the coordinates according Lo die current scale and etc. horizontal and vertical offsets. Then it ''clips” these coordinates The turtle client is a simple program which is run from the to the screen. Clipping means taking a line which may extend CLI and takes commands (or a file of commands) and sends beyond the screen’s boundaries (which are stored in maxx and them, one at a time, to the turtle sewer. maxy) and drawing only the part of the line that is visible. Finally, DrawLine adds the line to the refresliArray, which is die series of lines diat get drawn when die screen is some amazingly chaotic properties of simple functions. One draw­ refreshed. back of these fractals is that they produce a fixed design; you cannot Listing Three contains the Intuition message passing design your o w t i shapes. With turtles, designing your own recur­ code. It provides the procedure GetCommand to the turtle sive fractals is amazingly easy. server. The corresponding Put command for the client is a My sister’s 7th grade computer class had been learning Logo direct call to Inlu idon's PutMsg call. Listing Four is the header and turtle graphics for almost a year when I visited. After seeing all file for die message code. It defines Intuition’s names for the dieir iterative turde graphic images, I asked if dtey had learned server and client, and die definido.n of the message object recursion. The instructor said no; it was hard enough to teach to structure, Obj.Vlsg. Intuition expects the Message structure at college students. I went home and designed a simple fractal in Logo the top of any messages it passes, but it will also carry around using recursion, and explained it to my sister. She said “it’s so data you tack onto it. In this case, die command type and its simple!” The next day she presented the program, and taught argument have been tacked on. recursion to the class. The fractal 1 designed diat night is in Listing Listing Five is the code diat handles the turtle window. Ten, which produces Figure One. It also provides the internal drawing routines MoveTo, Making fractals using turtles is really easy. First, you draw' a DrawLineTo, and clearScreen used by the draw routines. If shape, using the size passed in as an argument. Then have die we wanted the turtle graphics to be drawn to a custom screen routine call itself with a smaller size one or more times somewhere rather than a workbench window, diis is the file to modify; where you want it. Finally you return the turtle to the same place we would change InitGraphics to open a screen instead of it started, and point it in the same direction. Usually, as 1 have done, a window, and modify the drawing routines to use die you should check to see if the size is above a certain threshold, screen's RastPon instead of the window’s RastPort. Listing SLx before drawing, preventing the presence of an infinite loop. is a collection of header files for the window and drawing Fractals do not have to be connected shapes, they can have functions. floating elements, like Listing Eleven, which made the fractal in Listing Seven defines each of the turtle commands, and Figure Two. There is no reason the fractals have to be geometric the Command structure the server gets from GetCommand. shapes. Listing Tsvelve is the program that drew' the tree in Figure These definitions are shared between the sewer and the Three. client. Listing Eight is the client program, parse. This program EXTRA FEA TURES OF AMIGA TURTLES has two modes of input. If there are command line argu­ If the drawing in the turtle window- is too small or too large, ments, they are taken to be die command, otherwise, it use the zoomin or zoomout commands (you can abbreviate diem accepts a stream of commands from standard input (the to zi and zo). If w'hat you want to look at is off the bottom of the keyboard or a file redirected in from die CLI, as in “parse < screen, you can shift it up with su. Shifting dowrn, left and right are command.file".) also implemented, with sd, si and sr respectively. For reference, A case statement parses the current command, and these functions are all defined in the scheme-init.scm file in Listing Hi Quality Version Available on AMIGALAND.COMpackages up a command message for the sewer. If the Nine. command takes an argument, it reads it into the argument 1 hope diis article inspires you to creaLe some turtle fractals field of the message structure. After die message is all of your owrn. Turtle graphics for the Amiga should help a new generation of Amiga programmers learn that LISP and recursion are packaged up, it sends it to the sewer with Intuition’s PutMsg easy and fun, function. The client program is very simple because all of the FURTHER REFERENCES code diat actually deals with die turde, die window, and There are many excellent books on programming with drawing is all in die server. It would be fairly easy to write Turtles. Most of them, even though they are based on Logo, will other turtle clients. A control panel with buttons for die turtle apply directly to Amiga Turtles as well. An excellent book on learning Scheme is oiled die Structure and Interpretation of commands and sliders for the zooming and shifting functions Computer Programs by Abelson, Sussman and Sussman, from MIT would be fairly easy to write and integrate widi die sewer. Press. All dial is left is the Scheme support file for the turtle graphics. This is Listing Nine. I put this file in the S: directory ACKNOWLEDGEMENTS and called it scheme-init.scm, so it gets loaded each dme I I’d like to thank Ted Griggs for helping me w'idi Intuition messages. Thanks also to everyone w'ho has submitted programs run Scheme. To start using the turtles, just type (turde-Init) to the Amiga public domain. and a new' turtle sewer show's up, and now'you are ready to ------Listing One ------start programming the turdes in Scheme. /* Listing i; turtle.c PARI II. USING LISP TURTLES—AN INTRODUCTION TO main module for turtle graphics Server RECURSION USING FRACTALS * / One of die best ways to learn about the technique of #include tinclude "cmds. a" recursion is to try it, watch die program w'ork, and then figure /* pi / 180. For converting degrees to radians */ out what is going on to make it w'ork. Learning recursion by ^define PID180 0.0174532925199

watching the turdes execute a recursive routine is much /" direction (in d e g r e e s > turtle is facing */ easier than studying a trace of a non-graphical recursive float turtleAngle; program. /* turtle position */ Turtle graphics provide a natural way to express recur­ float turtleX, turtleY; /* boolean. True == pen is down (drawing) */ sive drawings. The most famous recursive drawings are short turtlePenDown; fractals like the Mandelbrot Set, which have been presented in Amazing Computing in die past. These fractals rely on /* from draw.c */ extern float scale/ extern int xoff, yoff; turtlePenDown ** 1; extern int resetScreen () , refPtr; ) void mainlac,av) right(angle] int ac; int angle; char *av[]; ! ( turtleAngle = turtleAngle - angle; Command command; /* negative angles get converted equivalent posit while(turtleAngle < 0) ( turtleAngle = 180.0; turtleAr.cle += 36 0. 0; turtleX = 0.0; ) turtle/ = 0,0; 1 penD ow n( ) ; InirGraphics(I; left(angle) InicKessagePort 0 ; int angle; ( /* loop, process commands unci! Che exit command */ turtleAngle = turtleAngle + angle; do ( /* if angle exceeds 360, wrap around to 0 degrees */ /* process command */ while (turtleAngle > 360) { GeoCommand(Scommand); turtleAngle -= 360.0; switch(command.type) { ) case FORWARD: ) forward(command.argument) ; break; forward(dist) case BACKWARD: ir.c dist; backward(command.argument); I break; float angle; case LEFT: float dx, dy; left (command.argument); int x,y,nx,ny; break; angle “ turtleAngle case RIGHT: . . right(command.argument) ; /* convert polar coordinates to cartesian */ break; dx = (dist * sin(angle)); case PENUP: dy - (disc * cos(angle)); penUp O ; b re a k ; /* only draw if the pen is down '/ case RUNDOWN: if (turtlePenDown) ( penDown() ; = (int) (turtleX + 0.5); b re a k : y = (int) (turtle’/ + 0.3); case ZCGMIN: nx = (int)(turtleX + dx * 0.5); scale = scale'1.5; ny « (int) (turtle/ + dy + 0.5); r e f r e s h (); DrawLine(x,y,nx,ny); break; i case ZCOMOUT: Hi Quality Version Available on AMIGALAND.COMscale => scale/1.5; turtleX ex dx; r e f r e s h ! ) ; turtle/ +- dy; break; ! case REFRESH; refresh() ; /* backing up is implemented as turning around, moving break; forward, and turning around again to save code. case CLEARSCREEK: * / turtleAngle = 180.0; backward(dist) turtieX = 0.0; int dist; turtle! = 0.0; resetScreer. (> ; break; right(ISO); case KSnlr": forward(dist); xoff - xoff t command.argument; l e f t (130); refresh!) ; break; ) case VSHIFT: . Listing Two yoff = yoff + command.argument; r e f r e s h (); I* Listing 2: draw.c break; graphics drawing, clipping, scaling and refreshing default: r o u t i n e s , printf("Turtle Server Exitingln"); */ comaand.type = exitjturtle ; break; /* Out of bounds defines. Can be logically OR'd together *i ) #define TO? 8 ) while (command.type != EXI?_TURTLE); #aefine BOTTOM 4 KillMessagePort[); #define RIGHT 2 UnTn.it () ; #define LEFT 1

; /* number of lines to save in refresh array */ /* #define MAXREFRESH 2000 Turtle command implementation follows: /* aspect ratio of workbench screen. This way, squares are square and circles are not ellipses */ •■define ASPECT 2 penUp() *[ /* screen bounds. These are variables, ana get updated when t urtlePenDown = 0; the window is resized */ : int minx = 0; int miny = 0; p e n D o w n (1 int maxx = 640; ! int maxy = 200; extern int clearScreen (); /* from window.c ’/ t ypedef struct Lir.eElt ( JO, ior.r ir.t x l ,yl, x2, y2; } LineElt; We take a «^*out of the price!

LineElt refreshArray(MAXREFRESH ; /* for redrawing screen »/ int refFcr - 0; /* index into refresh array "/ float scale = 0.2i;

/* center and offsets for window */ int xc = 320; int yc = 100; int xoff = 0; int yoff " 0;

/* draws a line, and adds to the refresh array */ DrawLine(xl,yl,x2,y2) int xl,yl,x2,y2; ( int nxl,nyl,nx2,ny2; O N E B Y T E nxl = (xl - xoff) - scale * ASPECT + xc; nyl = (yl - yoff) * scale - yc; P.O. B o x 455 nx2 = (;-:2 + xoff) * scale * ASPECT + Quaker Mill, CT 06375 ny2 = (y2t yoff) ' scale + yc; (8 0 0 ) 441-BYTE, in CT (2 0 3 ) 443-4623 clip(nxl,nyl,nx2,ny2) ; addRefresh (xl, yl, :-:2, y2 ) ; I : YOUR ONE-STOP^MJCA^STORE

/* resetScreen resets 3cale, offset and the refresh array, and clears the screen *1 Authorized dealer for reset Screen. () ! Commodore-Amiga Computers, refFtr = 0; Great Valley Products (GVP), scale = 0.25; Authorized Commodore-Amiga Service and Repair. xoff = 0; yoff = 0; Authorized Am iga Graphics Dealer. clearScreen () ; Circle 135 on Reader Service card. :■ AMIGA IS A KEGIS'lIiKKD TRAIJEMAHK OF COMMODOKE-AMIGA. INC. /* clip(xl,yl,x2,y2) - internal routine clip elites a line segment and draws the portion which lies Hi Quality Version Available on AMIGALAND.COMw i thin the w i ndow */

clip (xl,yl,x 2,y 2 ) int x l ,y l ,x 2 ,y 2 ; t DrawLine To (:-:2, y2 ) ; int cl,c2,c,x,y; }

cl = code(xl,yl); /* code(x,y) - internal routine c2 = code(x2,y2); returns w h ich limits (if any) a point is out of bounds of "/ w h i l e ( (cl := l) I; (c2 != 0) I { int code(x,y) if ((cl a c2} ! = 0) return; /' don't even draw line ■/ int x ,y ; c = cl; . if (c = 0) c = c2; int c; if (c a LEFT)• /* out of bounds to the left */ c = 0; y = yl + (v2 - y l )* (minx - x i J I (x2-xl>; if (x < minx) = minx; c = LEFT; ! else if (x > maxx) rf (c u RIGHT){ /* out of bounds to the right */ c = R I G H T ; y = yl - (y2 - y l j M m a x x - xl)/(x2-xl); if (y < miny) x - max:-:; c = c - BOTTOM; ! else if (y > maxy) if (c & BOTTOM)( /* out of bounds to the bottom */ c = c t TOP; x = xl + (x.2 - xl)*(miny - yl)/(y2 - yl); return (c) ; y “ miny; ! 1 if (c S TOP){ /* out of bounds to the top */ /* clears and redraws the screen's lines, according to V- ~ xl + (x2 - xlt'tmaxy - yl)/'(y2 - yl); the current scale and offset */ y - • : void refresh!) :■ ■: if (c == cl)( t* (xl,yl) was out of bounds */ r .u t i, xi, yl , x2, y2;

yl - y; clearScreen(); cl = code(x,y); /’ recheck bounds */ f o r d = 0; i < refptr; i-») ( : else ; /« (x2,y2) was out of bounds ■/ xl = (int) (refreshArray[i].xl + xoff) * scale - ASPECT+ xc; x2 = x; x2 = lint) (refreshArray[i] .x2 - xoff) ’ scale ' A.SPECT+ xc; y2 - y; :2 = code(x,y); /■ recheck bounds */ yl = (int)(refreshArray[i].yl - yoff) - scale + yc; •j2 = (int) (refreshArray[i] .y2 - yoff)' scale - yc; clip(xl,yl,x2,y2); /* note: don't want to add to refresh KiliMessagePort() { RemPort (sport) ; FreeMem(sport,sizeof(struct MsgPort)); BRIDGEBOARD USERS! ) Don't waste money, slots, or desk space buying extra IBM-compatible or Amiga floppy drives! The Bridge Drive GetCommand(message) Commander + gives you direct access to all your internal Command "message; { and external Amiga drives from the Bridgeboard, and direct ObjMsg "msg; access to IBM type 360K and 720K drives from AmigaDOS, struct IntuiMessage "intuiMsg; Bridge Drive Commander + is totally transparent and ULONG bits;

automatic. Put an IBM type disk in any drive and use it just /* intuition returns status bits */ like on any IBM compatible! Put in an Amiga disk and return bits»wait(ipcbit I s i g b r e a k f _ c t r l _ c | intuibit); to Amiga use! Just that simple, just that fast! One drive can if(bits £ intuibit) { use Amiga disks at the same time another is using IBM- /* we got a message from intuition */ compatible disks. Disks are completely usable by other while(intuiMsg = GetMsg(wdw->UserPort)) ( Amiga and IBM-compatible computers. All hardware, no if (intuiMsc->Class == NEWSIZE) { {* User has resized software drivers to load, no precious memory or expansion window */ /" new scale is determined by window's smallest slots used up. Plugs onto motherboard at internal drive con­ dimension x or y */ nector. (No soldering or wiring changes.) Compatible with if (wdw->Widt‘n < wdw->Height) all Bridgeboards (8088. 80286), SideCar. all accelerator scale = (scale * wdw->Width) / maxx? boards (any 680x0). hard disks and other hardware and else scale = (scale * wdw->Heicht) / maxy; software. maxx - wdw->Width; /* update our maxx and maxy maxy = wdw->Heighz; Bridge Drive Commander + ...... S 97.50 xc = maxx / 2; /* update center coordinate yc = maxy / 2; message->type = REFRESH; /■ ask server to refresh MJ SYSTEMS window */ Dept 10A, 1222 Brookwood Road, Madison. Wl 5371 1 } ReplyMsg(intuiMsg);

1- 800 - 448-4564 return £1); (24 hours MasterCard/VISA) ; Produc? names are trademarks of their respective compares. /* handle a user command */ Circle 149 on Reader Service card. if((msg=(ObjMsg *)GetMsg(sport))==NULL) return(0); Hi Quality Version Available on AMIGALAND.COMmessages type = msg->type; message->argument = msg->argument; ReplyMsg (msg) ; r e t u r n (1); } ------Listing Four — ------/* adaRefresh (xl, yi, x2r y2) - internal routine /* Listing 4: msgs.h adds a line to the refresh array, clears the array on defines turtle message, which starts with overflow */ en EXEC message, Chen contains the stuff I r.eec addRefresh (xl,yl, x2 , y2 ) for passing turtle messages */ int 1 , y 1, x2 , y2 ; ♦include < l i b r a r i e s / d o s .h> { ♦include refreshArrayfrefPtr].xl = xl; refresh A r r a y i r e f F t r l .x2 - ;-:2; /* refreshArrayfrefPtr].yl = yl; * Name of object to object communication server refreshArray[re£Ptr++j.y2 = y2; */ if (ref?tr > 20C0) refPzr = 0; /* start at zero again */ “define SERVEPORT "TurtleServer" ♦define CLIENXPOKT "TurtleClient" ------Listing Three --- /' /x Listing 3: nsgs.c * This structure is passed by FutMsg to the server. Intuition message handling code V */ fir.clude "rr.sgs.h" typedef struct ObjMsg { ^include "cmds.h" struct Message Msg; #include "window.h" int type; int argument; struct MsaPort ''sport? } ObjMs g; ULONG ipcbit , intuibit? ------Listing Five ------extern struct Window *wdw; /* Listing 5; window.c extern, struct Screen * s c r r sets up a graphics window, provides DrawLine, extern int minx,m a x x , m i n y , m a x y ,xe, yc; MoveTo and elearScreen extern float scale; ■ / ♦include "window.h" InitMessagePort() { extern struct IntuitionBase ‘Ir.tuitionBase; struct GfxEase *GfxBase; if((sport=Create?ort(SERVEPORT,0))==NULL) {

printf("Cannot Create Server!\n"); ♦define INTUITION_ r e v 29 exit (1) ; ♦define GRA?HICS_REV 29 ) ♦define STRLEN 30 /* String length V ipcoit= (lL«sport->mp_SigEit) ? ♦define EP 4 /* Number of bit-planes */ intuibit= (lL<User?ort->mp_SigBit); #define SWIDTH 320 /* Screen width */ 4define SHEIGHT 200 /■ Screen height */ Come see whats Hot struct TextAttr MyFont = { " t o p a z .f o n t " , TOPAZ EIGHTY, for the AMIGA at F3_N0RKAL, FPF RCMFON?, }; The Memory Location struct NewWindow NewWindow - f 0,0, /* initial position */ 640,200, /* bit-a? size */ 3, 1, /* pen numbers */ NEKSIZE, /* intuition message flags */ & SMART_REFRESH [ ACTIVATE I KINDCKDEPTK I WINDCWDRAG | WINDOWSIZING , NULL, T h e MULL, "Turtle Server", NULL, Memory NULL, 46,25, /* m inimum size */ 640, 400, /* m a x size */ Location WBENCHSCRESN /* screen tvue */ 3 9 6 W ashington Stit-ct I; W ellesley. MA 0 2 1 8 1 struct Window 'wdw; (617) 237-6846 InitGraphics () AM IGA Experts! Nothing but the best. { Satisfaction guaranteed. irtuitionBase =• (struct IntuitionBase*( Come in and try-out all the latest software, Oper.Library ("intuition, library", INTUITION REV) ; Gfx3a$e = (struct hardware, and accessories. Gf.xBase*) OpenLibrary (''graphics . library", C-RAPHICS_REV) ; if((wdw = (struct Your full service AMIGA dealer. Window*IOpenWindow(iNewKindow))==NULL) exit(1); SetCoior(1); Store hours: Mon.-Thur. 10-6 Friday 10-8 Saturday 9-5. ) Full Commodore authorized repair service onsite. SetCoior(color) Low flat rate plus parts. int color; •: SetAFer. (wdw->RPort, color) ; Circle 107 on Reader Service card. } Hi Quality Version Available on AMIGALAND.COM

U n i n i t ()

( ♦include ClcseWindow(wdw); #include ) #include #include /* Graphics drawing functions; */ #include DrawLineTo(x,y) int x,y; ♦include ( ♦Include #include Draw(wdw->RPort,x,y); ) ■ listing Seven - MQveTo(x,y) /* Listing 7; cmds.h int x,y; Commands definition file* ( Defines turtle commands for server and client. Move(wdw->RPort,x,y) Defines Command structure. */ clearScreer. () ♦define FORWARD 1 < ♦define BACKWARD 2 Move |wdv->RPort, 0, 0); #define RIGHT 3 ClearScreer. (wdw->R?ort) ♦define LEFT 4 RefreshWindowFrame(wdw); ♦define PENUP 5 I ♦define PENDOWN 6 ------— — --- Listing Six ♦define ZOOMIN 7 /* Listing 6: win d o w . h ♦define ZOOMOUT 8 Header files ♦define HSHIFT 9 */ ♦define VSHIFT 10 P include ♦define REFRESH 11 #include ♦define CLEARSCREEN 12 #include ♦define EXITJTURTLE 127 *include typedef struct Command { ♦include Pinclude int type; /* right, left, forward, et int argument; /* argument for command ♦include ?include -Listing Eight ♦include /* Listing 8: parse.c ♦include Turtle client orocram. ’AMIGA

I s

In recent issues, AC has given you the power to turn your A1000 into a ROM-based machine. Hi Quality Version Available on AMIGALAND.COMI To upgrade your A500 to 1 megabyte.

To transform your Amiga into a biofeedback/lie detector device.

To use your Amiga as the command center for a remote-controlled home of the future.

A future that is in your handS'Wiv, thanks to Amazing Computing. There's plenty of power in our product reviews and tutorials, too, and AC features more informative monthly columns than a any other Amiga publication!

AC previews important new products that are really new, and takes you to all the major shows with complete, timely coverage!

We also put the entire Amiga marketplace at your fingertips in the pages of Hi Quality Version Available on AMIGALAND.COMA C G U ID E ^ m ig A It’s the only publication in the world that lists every product currently available for the Amiga!

Put AC POWER in your hands and save over 48% off : ik* the newsstand price of ■ i t * 3 the next 12 monthly issues of AC,

PLUS AC's Spring Guide! ■ . . ■ ■ * * M L . 7. \ w‘ l m Use one of the cards provided v I y. A 'A' ?■ • in this powerful issue to become a subscriber! Or, just call 1-800-345-3360 ■ (credit card orders only)!

■ ■ ; HE ■■■ ■■ ' ' £ command_line = 1; ANOTHER TIP ; The Krueger Company FROM DR. CHIP /* loop until gettoken returns with nothing */ while (token[0] 1= NULL) { c an provide a wide msg->Msg.nm_Length=sizeof (ObjMsg); variety of MEMORY, msg->Msg.mn_Reply?ort = cport;

MICROPROCESSOR, args =1; /* default number of arguments */

and SUPPORT CHIPS. gettoken(token,argv);

switch(token[0]){ case lf ' : A L L KRUEGER PARTS msg->type = FORWARD; carry an unconditional 30 day break; guarantee. The minimum case 'b': purchase is $50.00. msg->type = BACKWARD; break; Call Mvron Lieberman at case 'r ' : msg->type = RIGHT; (800)245-2235 or FAX break; (602)820-1707. Mention case '1'; AMAZING COMPUTING. msg->type = LEFT; ______z break; case ’z ' : 8 MHZ 68010 S 1.00 args = 0 ; msg->type = ZOOMIN; 12 MHZ 68020 $30.00 break; 16 M HZ 68030 $40.00 case : args ® 0; 5 MHZ 8088 $ 1.00 msg->type = ZOOMOUT; 8 M HZ 8086 $ 1.50 break; case 'c': 8 MHZ 80286 $10.00 args = 0; DP8464BV3 PLCC $ 1.00 msg->type - CLEAR5CREEN; break; case '6' ; ASK ABOUT Z80s AT GREAT PRICES msg->type = HSHIFT; break; case '4': The Krueger Company YWWVW (800)245-2235. msg->type = HSHIFT; args = 0 ; Circle 118 on Reader Service card. gettoken(token,argv); Hi Quality Version Available on AMIGALAND.COMmsg->argument = -1 * atoi(token); break; case '2': msg->type = VSKIFT; Parses input stream, ana senas essage break; to turtle server. case '3': msg->type = VSHIFT; args - 0; fintlude ^include gettoken(token,argv); msg->argument = -1 * atoi(token); #include "msgs.h" break; #include "cmds.h" case 'p': ULONG ipebit; args = 0; short command_line; msg->argument = -1; if (token[3] == 'u') main(argc,argv) msg->type - PENUP; int argc; else char **argv; msg->type = PENDOWN; i break; ObjMsg *msg; case 'e': int args; case 'q': struct MsgPort *sport, *cport; msg->type = sxit_turtle; char t o k e n [50]; PutMsg(sport,msg); e x i t (0); /* initialise port stuff */ d e f a u l t : m s g ® (ObjMsg *)AllocMem(sizeof(ObjMsg) , 0) ; continue; if <(cport-CreatePort(CLIENTPORT,0)) == NULL)( printf("Cannot Create Client Portl\n"); } if (args == 1) { /* if there's an argument to get, get it, e x i t (1); */ gettoken(token,argv); if({sport=Find?ort(SERVEPORT))==NULL) { if (token[03 == NULL) { printf("Cannot Locate Server ?ortl\n"); printf("Unexpected End Of File! (I was exit (!); expecting a ) number)\n"); break; /* bits to wait on for Intuition messages */ ipebit = (1L << cport->mp_3igBit) ; } msg->argument = atoi(token); t o k e n [0] = 42; } command line = NULL; PutMsg(sport,msg); /* send the command to the server port. if(argc>l){ /* we've got a command line command */ */ Wait(ipebit); /* wait for the next message */ if (ctjmmand_line) break; i )

gettoken(tok,argv) NEW- ■N E W char *tok,**argv; I 2 int i; FMSKjO char c; The reviewers have labeled F- BA S IC :

/* get the tokens from argv if it's a command line cal_ */ ; f (com-:and_line) { The FASTEST Growing strcpy (tok, argv[cor\Kiand_line] ) ; command 1 i n e+ r ; FASTEST Performing r e t u r n ; AMIGA Language ) c c - g e t c h a r O , - Basics! if (c == EOF); tok 10] = NULL; return; )

/* consume any non-alpha chars V *A Beginner while () (isalnuin(c))) { c = g e t c h a r O , - in immediately if (c == EOF){ tok i 0 i = NULL; F-BASIC return; * An Expert Can NEVER Outgrow F-BASIC ! ) MUSIC 2.0 With User's Manual & Sample Programs Disk—Only S8935 /* now fill the token */ F-BASIC 2,0 With Complete Source Level DeBugger—Only $14995 i - 0; while (isainum(c) ) { F-BASIC Is Available Only From: t o k [ i + +! = c ; DELPHI NOETIC SYSTEMS, INC. Post O ffice Box 7722 c = g e t c h a r O ; Rapid City, SO 57709-7722 if (c -- EOF) I tok [01 - NULL; Send Check or Money Order, or W rite For Info ______Credit Card or C O D , Call (605) 346-0791______return; dtiadcmaikof DNS, Inc. } lark olCommooore/AMlGA. Inc ! tok[i++] = 0; Cirde 142 on Header Service card. ! ------Hi Quality Version Available on AMIGALAND.COM Listing N i n e ------;; Listing 9: sc h e m e - i n i t . sort ;; turtle initialization and support routines (define file-IC nil) (display "output rile already open") (define turtle-port nil!

(display "To start turtle stuff type (init)") (newline) (display "To exit turtle, type (exit)") (newline) (define (penup) (display "To get help screen, type (help)") (newline) (tell-ccnmar.d "peuu") (display "To quit scheme, type ccri-\\ (or (abort-system)") ) (newline) (define (pendown) (call-system "copy parse ramiparse") (tell-command "oend") ;; use resident instead of copy, if available (define (init) (call-system "run turtle") (define (tight angle: I (define command (string-append "r (number-ostring angle ' (int)) }) (define (tall-command string) (teli-command command) (i f file-IO ) (tell-file string turtle-port) (call-syster (string-append "raccparse " string)) (define (left angle) ) (define command (string-appenci "1 (number->scring angle ) ' (inti))! (tell-com m and' command) (define (tell-file string port) (write string port) } (newline port) (define (forward dist) ) (define com.-ind (string-append "f " (number->string Mint)))) (define (file-orf) (tell-command command) (if file-IO I (close-output-port turtle-oort) 0 ) (define (back dist) (set! file-IO nil) (define command (string-append "b " (number->strir.g disc ) 1(int))) ) (tell-command command) (define (file-on name) (if (not file-IO) I (begin (define (zoom-in) (set! file-IO (ft) (Cel1-command "z") (set! turtle-port (open-output-fila name)) ) (define (scon-out) ------Listing Ten ------(tell-command " x ") ) isting 10: (define (shi.ft.-up dist) (define command (strina-append "8 " (number->string dist (define (fract-tri size) ' (inti) ) I (if (> size 2) (tell-command command) (begin ) (right 150) (forward size) ;; right side of the triangle (define (shift-down distl (right 120) (define command (string-apper.d "2 " (r.umber->string dist (forward (/ size 2)) ;; half of the bottom side ‘ (int)) ) I (left 90) (tell-command command) (fract-tri (/ size 2)) ; smaller upside down triangle ) here (right 90) (define (shift-left disc) (forward (/ size 2)) ;; other half of the bottom (define command (string-append "4 " (number->string dist (right 120) ' (int)))) (forward size) ;; left side of the triangle (tell-comnand command} (left 30) ;; make sure we're pointing straight up ) again ) Idefir.e (shift-right dist) () ;; if size <= 5 do nothing (define command (strir.g-append "S " (numher->string dist ) ■ (int)) I ) > (tell-command command) I ------Listing Eleven ------Listing Eleven ;; exit and new call parse, because they (define (float size) ; shouldn't be called in batch mode. (if (> size 3) ;; if size is big enough, draw the triangle (define (exit) (begin (call-system "parse quit") (triangle size) ;; draw a full size ) triangle (right 30) ;; go off to the right (define (new) (forward size) (call-system "parse c") (float (/ (* size 3) 4)) ;; smaller, recursive call ) (back size) (left 30) (define (help) ) (display "Turtle Graphics help:") (newline) () ;; if the size is too small, do nothing (display "availible commands") (newline) ) (displayHi Quality Version Available on AMIGALAND.COM) "(init) -start up turtle graphics") (define (triangle size) (newline) (pendown) (display (forward size) "(new) -clears screen")(newline) (right 120) (display (forward size) "(forward x) or fd -moves turtle forward x units") (right 120) (newline) (forward size) (display (right 120) "(backward x) or bk") Inewline) (penup) Iciisplay ) "(right x) or rt -turns turtle clockwise x degrees") ------Listing Twelve ------(newline) ; Listing 12: tree.scm (display ;; fractal tree "(left ) or It") (newline) (define (tree size) (display (if (> size 3) "(zoomin) or zi -zooms in on center of screen") (begin (newlir.e) (forward (/ size 3)) ;; draw the trunk (display (right 36) "(zoomout) or zo -zoom out") (newline) (forward (/ size 4)) ;; the right branch (display (tree (/ <’ size 2) 3)) ;; limbs to the right "(shift-up x) or su -moves image up units") (back (/ size 4]) ;; back up right branch (newlir.e) (left 72) (display (forward (/ size 3)) ;; left branch is bigger "(shift-down x) or sd -moves image down units") (tree (/ size 2)) ;; linos to the left (newline) (back (/ size 3)) ;; back to the trunk (display (right 36) ;; straighten out "(shift-left x) or si -moves image left x units") (back (/ size 3)) ;; back to the start point (newline) ) (display (I "(shift-right x) or sr-moves image right x units") ) (newline) ) (display "")(newline)

•AC- A F L +

THE

AMIGA Primitive Functions and their Execution

by Henry T, Lippert, EclD

APL IS A LANGUAGE THAT YOU CAN USE. SO MANY OF THE OTHER COMPUTER LANGUAGES REQUIRE that one must know the entire language structure in addition to linkers, loaders, die CLI, DOS, and so forth, in order to do anything useful. APL is appropriate for the beginner, a child, an adult—anybody! It is also a language that can be used to write an airline reservation system where hundreds or perhaps thousands of terminals access a common data base. While it is an all-purpose language, it may not always be the best choice for all purposes. It is an interpre­ tive language. That means that each statement is stored in die program just as you wrote it and is not converted to machine language until it is ready for execution. The code is said to be “interpreted.” For extremely fast applications, such as die airline reservations problem. APL would probably be a poor choice. It would probably prove to be to slow. The general APL answer might be that although die execution speed is not as fast as compiled code, the fact diat it is array oriented and can do vast matrix operations with very little code to be interpreted, may make it die fastest game Hi Quality Version Available on AMIGALAND.COMaround. The point is that APL is a complete language, with all the bells and whistles that anybody could ever want. It will probably always remain a special language, and it may not be the all-purpose language for all uses, The language and its capabilities, however, will not prove to be a limiting factor for any programmer, no matter what the application. Let us return to the business of how one writes instructions to drive a computer.

An APL program is called a “function." In the is more often die lack of use of the documentation last article we wrote a function that computed the tools that are provided rather than a deficiency of arithmetic mean of a group of numbers. The func­ die language. The lamp will be used on lines of tion listing was: future functions for the purpose of documenting the purpose and acuon of the .APL statement. V R 4— Average X Let’s review. The first use of left arrow was to [1] R t- ( + /X) + p X V specify variables: and used one of the six ways that an APL function TAX .0725 9 SPECIFY A SCALAR, THE TAX RATE can be written. The one used required only a right PRICES «- .37 6.34 I-.90 43.00 fin VECTOR OF PRICES argument and produced an explicit result. The The second use of the left arrow was in the following is a “call" to die function with a set of definition of a program to specify an explicit result, numbers as the right argument: as in the header of the program AVERAGE above. AVERAGE 1 6741; The slash “/" was called “reduction" and was 4 .3 3 3 3 3 3 3 3 used to extend a primitive madiematics function to where APL returned the result on the next line. each element of the array to its right. In executing The symbol used for comments or remarks is the operation, a reduction in die rank of die die lamp ( R ), and it is used for “illuminadon” in variabLe took place, i.e., a vector became a scalar: die form of a comment or a documented action. No t / SALARIES FI a ED UP ALL THE SALARIES attempt is made to execute diat which follows the lamp symbol. While APL has often been criticized The Greek letter for small r was “rho” ( p ) about lack of or difficulties with documentation, it and was usecl to find die shape of its right argu­ ment: . TAX <- +/ TAX R REDUCES TAX TO A SCALAR pPRICSS 4 If we use a comma between two arguments, what happens? indicating that there are four prices in the list stored at PRICES. Let's It is called “catenate,” the useful part of the word, concatenate. Let’s try it (shape) on Lite tax rate: save die answer, also.

p ta x A N SWER +- TAX , 1,00 p □ <- ANSWER and nothing happened. Apparently APL did nothing. Actually, 0.72s 1.00C APL returned an empty line. Hmnun. Think of it this way. The 2 variable TAX contains a single number, a scalar. It is a point on the number line (at .0725) and, as a point, has no shape or Let’s read it. “Answer is specified by tax catenated to 1.00” is dimension. API,, therefore, when asked for the shape die scalar, the first statement. The second was “What is die shape of die display returned an empty vector, i.e. TAX is a single quantity widi no specified by answer?” First, die contents of the storage area called dimension. “ANSWER" was displayed on the diird line and a 2 on the forth line. Many of die APL primitive functions have dual definidons The last display is the answer to the part of the question regarding depending upon whether they are used with one right argument or the shape, it is now a 2 element vector. The dyadic comma joins widi two arguments, one on each side. Monadic rbo, for example, items together into a vector. The following statement returns die shape of its right argument. What happens if it is used □ <- PRICES PRICES, 34.21 23.35 diadically? Let’s try. 0.37 5,34 27.98 48. 34,21 29,95

□ f— "acrix <— 3 4 p 1000 added two more prices to die list of 4 and saved the new list of 6 1000 1000 1000 1000 1000 1000 1000 1000 by specifying PRICES by the new vector. 1000 1000 1000 1000 The following APL statement applies die tax rate to each element of the list of prices, dien adds the tax to the prices, and dien It “reshapes" its right argument according to the left argu­ adds them together by using sum reduction. ment. In this case we asked for a “three by four reshape of the number 1000.” This is the way that a matrix is created. APL -will + / PRICES + PRICES y. TAX handle arrays up to eight dimensions! It is, however, rare to use 157.496625 more dian three or four dimensions. Stop and think about die previous statement, We have read OK. lets look at some new primitive Functions that we can many APL statements before and, of course, diey are read from left now use in APL. to right. The English word statement above the last APL statement The comma ( , ) is called “ravel" which no doubt came from said diat the tax rate was multiplied a n d then the tax was added die word “unravel.” In APL, it does just diat; it (un)ravels its right to the prices, etc. If we read it from left to right, why did APL not argument.Hi Quality Version Available on AMIGALAND.COM also add up the prices first, then add die prices and then multiply , Matrix the tax rate, in the same order? Why did it start on the right by multiplying the tax rate first? 100C 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 The difference in the two possibilities is whether APL works Previously, when we got the empty vector as the “dimension" from left to right or right to left. The last APL statement above would of a scalar TAX, we knew that the variable was a scalar. Lets ask for read “add the prices diat are added to the prices multiplied by the die dimension of die same scalar that has been raveled tax rate.” Let's analyze this statement. It starts by saying: “Sum the , TAX prices.” i What prices? OK, the raveled TAX now has a dimension of one, but since Those that are “added to the prices". iL is a single number (0.725), it now becomes a one element vector. Which prices? Note diat die request for the dimension of TAX: Those “multiplied by the tax rate". If you think about it, you have to multiply the tax rate by die pTrtX pricesfir s t, before you can add the amount of die tax to the prices reveals that it is still a scalar. What happened? Nothing, which is and before you can sum them up to get die total. Yes, you have been correct. Note diat we asked (two statements above) for the tricked into starting at the right. APL executes statements from die dimension of die ra veled variable TAX. Contrast that widi die right to the left. It uses an execution rule called the “right-to-left following statement: rule.” Lets see how it works. In mathematics, the statement: TAX +- , TAX 5 x 7 + 3 and what happens when we ask for die dimension of TAX. could be executed as “five times seven and dien add three, answer pTAX = (38)” using a left to right rule. On the other hand, it could be as “five times the result of seven plus three, answer = (50)” using a right It was changed into a one element vector. This time we said to left rule. to APL, “TAX is sp ecified by the raveled Tax”, we changed TAX In defining any computer language, the order of execution is to a different shape by using the left arrow to re-specify die storage a fundamental decision that must be made by the designer of the area called TAX. language. Most languages use a modified left to right rule. Usually it is not just a simple left to right rule, but one that is modified by Great Prices! Shipping a set of rules that govern the order of execution of the primitive based on weight and zone. elements of the language. Many languages have a set of rules that For Information & Catalog Call read something like; "raise to powers first, multiply and divide next, Voice 414-544-2066 Pursuitable B B S 414-544-6567 then add and subtract," a three level hierarchy of operations.

Using parentheses is another way to force whichever order: Spotlight on Hardware... (5 x 7) + 3 or 5 x (7 + 3), is intended. The parentheses override the 501 Clone. Spirit 512K ...... 80.00 rules. The most common language of the day when APL was 68030/4megs/'882/80Q .... 2899.C0 conceived. FORTRAN, only had five primitive arithmetic operations fltckerFlxer...... 460.00 Spotlight on Sottwaie Floppy Drive. SupraDrive .... 135.00 and used the three level rule stated above. APL, however, has a very 688 A tta ck Sub ...... 37.50 Floppy D iv e . Internal 2000.... 90.00 large set of primitive operations. Depending upon how you group Advantage, GoldDlsk ...... 120.00 Harddrive. Q uantum 40 ..... 420.00 them, the count is from 60 to 80 primitive operations. A set of rules A-Talk III ...... 59 00 Harddrlve. Quantum 80 ..... 625.00 A u to S c flp t...... 71,00 to unscramble such a large number of possible hierarchies would Harddrive, Q uantum 105 .... 735.00 Bars 8: Pipes...... 170.00 Harddrlve. Supra 20M 500 .. 505.00 be hopelessly complex. Bars & Pipes Sound Kit ...... 37.99 M emory, AdRAM 520 Ok 500 120.00 Dr. Iverson devised the rule which has become known as die Bars & Pipes Musfc Box A ..... 37,99 M emory, A d v 2080 8M eg OK 147.00 C a n D o ...... 88.99 "right to left rule." hi APL it is the only execution rule. That is it. It M em ory, BaseBoard OK 500 128.00 C reature ...... 25.50 Meta4. TrumpCard Mem OK 159,00 is simply: "Each function takes as its right argument everything to CygnusEd Professional 2.0 .... 65.00 M odem . Aprotek 2400 ..... 85,00 its right, to the right parendiesis of die pair diat enclose it." Dragons Breath ...... 36.69 M odem , Supra 2400 ...... 120,00 D ra k k e n ...... 36.99 The ambiguous statement 5 x 7 + 3 is no longer ambiguous, Mouse. Cordless ...... 90.00 Dungeon Master Editor 15.00 Mouse, Jin Mouse (K onyo)..., 50.00 the times sign takes the left argument 5 (since there is one) and takes Escap e from Singe's C astle .. 42.99 SCSI Controller, Adv 2000.... 155.00 everything to its right as its right argument. What is to its right? 7 Fat T rack s...... 36.99 SCSI Controller. Byte/Sync .. 170.00 + 3- The evaluation of 7 + 3 must take place before the right Shostbusters II ...... 28.89 SCSI Controller. Word/Sync 170.00 Leisure Suit Larry 3 ...... 33.00 argument needed by the times can be used, Following this Line of Spirit Boards OK...... 224.99 Pen P a l...... 90.00 SuperCard AMI ...... 72.99 thinking, before die left most function can lie executed .everything PIC-MoglC ...... 60.00 SuproRAM 2000 OK ...... 160.00 to its right must be evaluated. Likewise for all odier functions in turn. Putty's S a g a ...... 27.50 SupraRAM 2000 2 m e g s 315.00 The conclusion is that the right most function must therefore be Quarterback 4.0 ...... 43.00 Synchro-Express...... 55.00 Rings of M edusa ...... 3 1,25 evaluated/irst. Let's give the statement above to APL for evaluation: W here/Europe is C arm en ? .. 34,25 Orders Only Please: X-Cad Designer ...... 95.00 800-544-6599 5 7 + j Visa/MC/CODs 50 2414 Pendleton Place ■ Waukesha. Wl 53188 ■ 9 AM to 5 PM M-F The result is 50 since the right most function + evaluates to 10 Circle 134 on Reader Service card. Hi Quality Version Available on AMIGALAND.COMand the second step is 5 x 10, yielding the answer 50. The issue of hierarchy of operations in terms of die order of their execution simply ceases to exist. How elegant! It was a stroke of genius and represents only one of the creative contribudons that did not trust the APL interpreter to use the rule reliably. exist in APL. Dr. Iverson probably used the criteria of simplicity to Another trend in modem computing languages is tighter and make such decisions. It did, however, bother a lot of folks who tighter control over the “typing" of variables. In most languages a couldn’t or wouldn't adjust to this new idea. great deal of time and energy is spent making sure that the variables Alas, the rest of the world is moving in the opposite direction. are integer storage spaces or are "floating point’’ (decimal) spaces, AREXX, die AMIGA version of REXX, which has skyrocketed into or variables that are able to take character data only, etc. You may prominence with great promises of extending the versatility of this have noticed that previous statements have freely mixed whole amazing machine, uses a strict left to right rule except as modified numbers and decimals. APL takes care of all such “typing" that is by parendieses. It lias an expanded set of 23 primitive operations necessary'. Since the storage is dynamically allocated at the time of and an eight level priority scheme for sorting out which operation use of the specification ( <— ) operation, the typing is simply operates when during execution. It is interesting to note diat determined by APL and becomes a part of the description of the AREXX’s priority 7, 6, and 5 is indeed die three level rule quoted variable, without any action on the part of the programmer. If there above about exponentiadon, then multiplication, division, and then are no decimals, the array is automatically stored as integers taking addition and subtraction. The highest priority is Logical NOT and the much less storage dian if there were decimals. Logical ones and lowest is Logical Exclusive OR. It is very likely diat liberal use of zeros take one bit each, making maximum use of storage. If we parentheses will be found in AREXX programs in order to keep track create an integer matrix of what is happening radier dian relying on diis complex hierarchy scheme. □ X- MATRIX 4- 3 5 p!4 APL also uses parentheses in the usual fashion. Because of the 14 14 14 14 14 right-to-left execution nile, two interesting conclusions follow. If a 14 14 14 14 14 14 14 14 14 14 right parenthesis is found at the end of a line, it is die right member of an unnecessary set. Furdier, if two right parentheses are found and then add one decimal value in the middle together, e.g. one of die sets is not required. As you -write APL statements you will find that they can be written with a lot of paren­ □ <- MATRIX 4- MATRIX[2;3] theses or not, depending on your style. If you see APL statements 14.D 14.0 14.0 14.0 14.0 written with a lot of unnecessary parentheses it isn’t wrong, it simply 14.0 14.0 14.7 14.0 14.0 14.0 14.0 14.0 14.0 14.0 indicates that die writer did not understand the right to left rule or APL did a lo: of work for us. The amount of storage required [7.3 increased greatly after the conversion to the decimal notation. But 1 why, Dr Iverson asked, should the user of a computer who wants “Floor" returns the next smaller integer. You should begin to to solve a mathematical problem be requ ired to become a computer have some icieas. Here is one possible idea: To round a vector of scientist in order to do so? Did you notice how easy it is to index numbers (VI) type the matrix at row 2, col 3 in the last APL statement above? ADA and

MODULA2 are relatively new languages that require a lot of the VI 2.3 6.6 4. 5 5.0 5.4 programmer's attention because they have moved in the direction VI - .5 of tighter and tighter controls on the issues of types of variables. 2 7 5 5 5 Let's look at more of our primitive functions: which would be read: “what is the floor of the numbers at VI plus one haLf?” Did you see how it was done? You have to know what 1 10 12345676910 APL is doing and supply (diink) the intermediate steps if you want to follow, With APL, however, at any time you do not understand “IOTA" (x) is die index generator and returns the integers from 1 what happened, you are free to put the problem in step by step to to its integer right argument. Used dyadically, IOTA becomes an see how the answer was developed. For example: index finder and indicates the position that the right argument occupies in the left argument, For example, remember what we had 71 t- 2.3 6.8 4.5 5.0 5.4 fiSET UP VECTOR VI at prices? VI + .5 fl THE FIRST STEP, ADD .5 2.8 7.4 5.0 5.5 5.9 VI - .5 A REPEAT THE EIRS? STEP, TAKE FLOOR PRICES 2 7 5 9 3 0.37 6.34 27.98 46. 34.21 2S.95 Let’s take a test to see if you are thinking APL yet. Let’s think Did you remember diat we catenated two values and respecified APL without giving it to die APL interpreter. PRICES giving die six values? Of course you did. OK, for the dyadic

use of IOTA 5 - 4 = 9

PRICES 1 27.96 What do you think xvould happen? First, you were tempted 3 to read 5 plus 4 equals 9, right? Now, If you also thought “yes, that's indicates that 27.98 is the third element in die vector. correct” you have to go direcdy to jail, cannot pass go, and you Here's another new primitive function: won't get out until you begin to think APL! In all fairness, you really needed another fact before you could have acted as a complete APL r 7.3 enthusiast. Let’s give this statement to APL to evaluate. Before we 8 Hi Quality Version Available on AMIGALAND.COMdo that, lets use APL in a discovery mode. “Ceiling” is the next higher integer above die decimal number right 1 - 6 argument. Let’s see if you can use this one in die reduction of a C vector. 6 = £ 1 2 = 231012302 f ■ PRICES 43. 3 : o o o c : o o i

and... limmm. What did we do? Ceiling was extended by reduction APL uses all the relational operators <, <, =, >, as to the elector PRICES. Recall what reduction does. It places the propositions to be answered true (1) or false (0). So, back to our primitive in between each element of die vector and reduces the problem. One can always fire up APL and ask for the answer: vector to a scalar. Let’s peek inside and w'atch it in operation. 5 + 4 = 9 c 0.37 r 6.34 r -18.0 f 27 .98 f 34.21 f 29.95 27.96 T 34.21 The result should be obvious. In case it isn't, do it one element at 48.0T 34.21 6 . 3 4 T 48.0 a time: 0.37 f 48.0 48.0 4 = 9 0 A THE A N S W E R IS NO, 4 IS NOT EQUAL TO 9 As you can see the larger of each comparison between each 5 + 0 85 PLUS THE RESULT OF THE FIRST STEP, C pair in turn to each of the ceiling (or MAX in diis dyadic use) 5 operations, ending with die largest clement in the vector. Try Let’s move along and t.ty another primitive: another variation: ? 10 3 34 7 9 2 T 5 3 4 7 7 9 4 100 3 which indicates why die statement was made earlier regarding ”60 7 100 ICO 700 100 100 67 0 49 71 67 to 80 primitive operations, depending upon how you count diem." The last three examples above of CEILING/MAX appear as different This one might take a little time for you to figure out just what operations when in fact they are using die dyadic form of MAX in is going on. Random numbers are being drawn from each element each case. of die right argument. The repeat of 67 indicates that die random draws are with replacement so diat each drawr from each vector element is independent of all others. OK... do you suppose it can he used diadicnlly? Try it. CONTROL THE UNIVERSE! ; c ? t o o 4 6 54 5 97 84 9 10 66 23 ‘i'm totally awed by what you have done!...it's beautiful, especially when the lights are oil...congratulations..." Hmmm... Suppose... Arthur C. Clarke 10 7 10 author of 2001: A Sixu o Odyssey 473821956 10 Distant Suns, the award-winning planetarium program, is endless 10 7 10 8 1 10 3562947 entertainment and education for all. S69.95 retail. Ask for ii!

Yep, it gives random numbers, the left argument tells how many and the right argument gives the domain. Ten random numbers from the domain 1 to 10 (10 ? 10) gives all of them in random order! A random permutation. The first request asked for only ten of the 100 numbers in the domain 1 to 100. Neat huh? The diadic use is called "deal,” the monadic use is ''random.'' Yes, you can try it:

100 3 10 DOMAIN ERROR 100 ? 10

Despite all the neat things APL can do, it can’t get more out of mathematics than there is in the definitions. Let's try one more:

DATA <- 7 10COC p 1000 dArtuaf ‘Rgabitij Laboratories, Inc. What did we do? Read it. “Data is specified by random draws from 10,000 reshaped 1,000's." If it sounds as if we independently 2341 Ganador Court drew 10,000 random numbers, each from die domain 1 to 1,000 and San Luis Obispo, CA 93401 USA stored them away at DATA, you are right on track. You might check Circle 121 on Reader Service card. Hi Quality Version Available on AMIGALAND.COMit out. DATA

WOW, are you sure? It will display 10,000 random numbers! unique to BASIC, in order to learn computer literacy and how to Go ahead and try7 it on die AMIGA. The editor, however, wouldn't write programs for a computer. By learning APL, you leam all those want to do it here in this article! On the A2000 it takes about 49.66 things and have a discovery-based mathematics workshop too. seconds to display them at 14 across in each row. Maybe we better Which is more productive will have to lie judged by each individual. check before asking for this display. Next time we will do some statistical calculations and begin to look at the way that APL is implemented on the AMIGA. Now that p DATA A REQUEST THE SIZE OF DATA you have seen that APL is a friendly language and easy to use, it is 10000 fl SURE ENOUGH! IT WOULD HAVE SHOWN ALL 10,000 DATA [ IS I R SHOW THE FIRST RIVE ELEMENTS time to show some of the power of its implementation on the 134 6 689 942 134 AMIGA.

Yes, you can use operations such as IOTA to generate the numbers for indexing die array DATA. ABOUT THE AUTHOR The best way to leam about APL is to load the APL interpreter, click on the APL icon and try things out. If the operation is legal it Dr. Henry T. Uppert is an educator. He has specialized in the will give the answer, if not it may be a DOMAIN ERROR or some application of computers in education and training and to the tasks other indication that die operation is not defined on every7 kind of of the instructor and the instructional designer. He was one of the number or structure in existence. OK, you have been eager to try original developers ofComputer-Based Instruction (CBIatthe Uni­ versity of Illinois during the I960’s. He is the Chief of the Instruc­ 5-i-G flREAD "5 DIVIDED BE ZERO" tional Methods Division at the Academy of Health Sciences in San DOMAIN ERROR Antonio, TX. 5^-t- 0 APL INTERPRETER FOR THE AMIGA but it indicates that dividing by zero is outside the domain of the Not copy-protected, includes reference manuals. Spencer Organization, Inc. mathematician’s definition of division. Just what your mathematics 24 Wampum Road teacher always told you. Neat way to learn madiematics. As a matter Park Ridge. NJ 07656 of fact, learning APL would be a whole heck of a lot more (201)307-9099 productive in contributing to a child's education dian learning Inquiry #203

BASIC. By learning BASIC you learn all kinds of arbitrary rules, ■ A O P D dcE-e-nd libitct

HIGHLIGHTS OF THE MOST RECENT ADDITIONS TO THE FRED Fish collection include virus checkers, a simple encoder program, and a 200-page C Manual with more than 70 executable examples. These programs can be found on disks 331—3*110.

VIRUS CHECKERS The first virus checker I came across is found on FED 331, LVR VI.20. This program detects and removes link viruses from disk, among Insight into them IRQ, BSG9 (TTVI), Revenge of the Lamer Exterminator (a fairly new virus) and die Xeno virus. LVR can either search a directory or an individual file for a known Hi Quality Version Available on AMIGALAND.COMthe World virus. LVR scrolls the names of die files it is checking, but unlike most virus checkers I have come across, it does not indicate the number of files checked when til PH of Public finished. Author: Pieter Van Leuven Select Select VirusUtils can be found on FFD 331. trive Beotlloek Domain VirusUtils contains two virus checkers, VirusHunter and VirusKiller. VirusHunter removes all known viruses from memory. Software Some known viruses include the SCA (and clones), Revenge, ByteBanditand Byte Warrior. For a complete list, check the document file in fo r the the VirusUtils directory on FFD 331. VirusHunter does not scroll files when checking for known viruses; however, it does VirusKiller V3.60's virus checker window. Amiga display a message (“No known virus found”, for example) upon completion. VirusKiller V3.60 removes all known vi­ ruses from memory' and disk. After removing tire viruses, die disks can be checked without the viruses copying themselves back to the disks. When activated, VirusKiller display's a new'window on the screen. Here you give instructions to read the bootblock (readBB), write to die bootblock (writeBB), select die type of bootblock, and select which drive to check.

by A im ee B. A bren At the bottom of the VirusKiller window is a long rectangu­ Each virus has its own personality, 'lire mouse, who is quick lar box which displays messages to the user, such as: “disk on those corners, and the joystick are file milder viruses. The plroto removed”, “no disk in drive”, “disk contains normal BB", and “disk diode is sneaky, so proceed ever so cautiously. The magnet is the inserted'. most dangerous virus. He'll follow' you everywhere, especially on VirusKiller destroys SCA. Revenge, ByteBandit(2) and Turk, the higher levels. plus others. For the complete list, check the document file on FFD While chasing these creatures thru your hard disk, ali is not 331. Author: Pieter Van Leuven glum. There are bonus surprise boxes where you can grab some extra points and gain another life. PROGRAMS The game can be controlled by the numeric keyboard or Kryptor VI.0 (FFD332) is a simple file encoder,'decoder. joystick. To pause the game, move the cursor to the right side of the The program is easy to use once you get tlte procedure down. An screen. Some function keys are used as switches to turn music on encoder is a program that allows you to turn text files into (F6) or off (F7), to skip to level 10 (FI0), etc. Author: A ndersBjerin unreadable “garbage" characters for privacy or protection. These files are password protected, and can only be decoded with the MANUAL correct password. Once decoded, the files are again readable text Included on FFD 336 is a 200-page Amiga C Manual with files. more than 70 executable examples, including source. Some topics The document files come in both German and English. discussed include working with screens, windows, graphics, gadg­ Unfortunately, the requestor boxes are all in German. This makes ets, requesters, alerts, sprites, etc. it a Little difficult when the requestor gives you two choices. After Examples are written in Lattice C V5.02 but will compile with experimenting for a little while, you will learn what responses give older versions as well as with other C compilers. you the results you want. Registered users can update for the cost of a new disk and Encoding is as simple as selecting fire file you want encoded, postage and handling. Author: Anders Bjerin typing in a password, and closing the window. If you do not click tire window closed, you will be prompted to type in anodrer EXTRA, TWO! password. This loop will continue until you click the window Two programs that seem worth taking a peek at are IFF2Ex closed, allowing the use of more than one password for a file. V1.0 (FFD331) and SID VI.06 (FFD33S). IFF2Ex converts IFF Once encoded, your file will be printed as garbage on the pictures to an excutable file. Author: Peter Van Leuven. SID is a screen until the file is decoded. To decode your file, simply repeat directory' utility for tire Amiga. Author: Tim Martin the steps to encode. Author: Michael Balzer UPDATES PPMore VI.5 (FFD334) is a program that reads ASCII files - Csh V4.01a (FFD331) is an update to V4.00a on FFD 207. Hi Quality Version Available on AMIGALAND.COMand files crunched with PowerPacker. This program is an alternative command interface including com­ You’ve probably heard of a similar program called More. mand line editing, aliases, piping and more. Changes include PPMore is different because it uses gadgets and loads the whole file restoring window title after quitting, and long lines in source files in memory, while More loads only sections at a time. can be broken into more than one line. Authors: Matt Dillon, Steve When loaded, PPMore displays a new window. The filename Drew, Carlo Borreo and Cesare Dieni and number of lines in the file are located in tile title bar. The bottom of the screen displays the following options: Next Page, Prev Page, - M ultiplot V XLNb (FFD333) is an update to Y XLN on FFD Next Line, Prev Line, goto N%, Print File, and Exit PPMore. They do 292. Multiplot is a program for making 2D plots. Bug fixes permit as their names imply. the handling of greater than 20 data sets ancl reset plot dimensions As mentioned earlier, PPMore reads files crunched with when a plot is redrawn without text. New' features include the PowerPacker, a program used to compress files for more disk custom plot window' allows selection of different plot symbols, 2nd space, In the document file of PPMore, it claims to be able to read all error reports are displayed by alerts or requesters; no error encrypted files as well. If a file is encrypted, a requester will appear messages will appear in the current CLL Authors: Alan Baxter. Tim asking for the password of the file. Author: Nico Francios. (Look Monney, Rich Campeaux ancl Jim Miller for PPShow, which also was written to compliment PowerPacker. PPShow is similar to Show, in that it displays IFF files. It can be found - Cpp (FFD338) is an update to Cpp on FFD 28, This program on FFD 334 Author: Nico Francios) is an implementation of the C coprocessor. ANSI features w'ere added to this updated version. Version number not known. Source ANIMATION code included. Authois: Martin Miow and Olaf Serbert AniPtxs (FFD332) is a collection of several animated pointers from fish to cats to space ships. These animated pointers will dress -PCQ V 1.1c (FFD339) is an update to V I.0 on FFD 183. PCQ up any Amiga screen. is a sub-set Pascal compiler. This program includes compiler source Images were created with DeluxePaint HI and Pointer Anima­ and example programs. Author: Patrick Quaid tor was used to compile the animations. Author: Bob McKain - Plplot V 2.6 (FFD 340) is an update to VI.00 on FFD 222. GAMES Plplot is a library' of C functions useful for scientific plotting on the Your task is to clean up the viruses in your SYSOP’s hard disk Amiga. Some fixes include an improved intuition interface, new in the game SYS (FFD 336). These creatures have infected every device drivers and the capability of adding additional device drivers sector of your disk and it's your job to get rid of them. easily. Author: Tony Richardson To kill a virus you simply kick a disk, 5-1/4" or 3-1/2". at it. But watch your back—tire higher the level, the trickier they are. •AC* R O

by The Iiandito

[The statements and projections presented 3000 is well received. A lot depends on software base will help sales. The develop­ in "Roomers" are rumors in the purest Commodore’s ability" to generate .Amiga ment tools are mature, so new software can sense. Tbebits o finformation are gathered sales in the United States. be developed quickly. by a third party source from whispers The chance for an explosive Amiga But Commodore is still contemplat­ inside the industry. At press time, they market growth is still there, but hopes grow ing its low end product strategy, and no remain unconfirmed and are printed fo r more distant as Commodore’s big effort decisions are set in stone yet. The pricing of entertainment value only. Accordingly, the over Christmas failed to ignite sales. On the the CD-ROM Amiga will be around $750. staff and associates of Am azing other hand, new developments offer hope The Amiga 500 is dropping to $499 bv this Computing™ cannot he held responsible once more to those who still have not given Christmas. And they have prototypes of a fo r the reports made in this column.] console machine (the Amiga 250?) with die up the Amiga Dream. The Amiga 3000, the chips of an Amiga and plenty of ports Video Toaster, the Amiga CD-ROM project, (including a cartridge port) but no key­ Tl TERE’S PLENTY OI; COMMODORE and AmigaVision have all promised to board or disk drive, which they could sell news this time. Seems that the new admini­ supercharge Amiga sales. The faithful for under $250. The problem is devising a stration has gotten quite a few pots boiling, Amiga fans are still hanging in there. clear marketing strategy for these “similar- and rite soup will be served this year. The The Amiga has never become a vet-diiTerent" products. They all have their Bandito has chased down a few hearty smash seller, but it has demonstrated stay­ good points and bad points. The worst chunks of data, so sit back while the data ing power. Commodore seems to be the thing would be to throw them all on the stew is served. only computer manufacturer left that is market with no marketing support. The AtariHi Quality Version Available on AMIGALAND.COM rushed out iheir STe comput­ even tiying to go after the home market. Bandito thinks they should call an Amiga- ers in the fall before the software was quite The Bandito thinks the A500 is more impor­ based game machine something other than ready, and as a result few ST programs tant than die A3000, because the potential an “Amiga", if they want to sell A3000’s. were able to run on die new machines until market is huge. The success of the C64 After all, wrould you buy a Nintendo busi­ Atari put out a software patch. Even now, could happen all over again if the Amiga ness workstation? there is still a lot of software that does not finds that magic price point. It will take some time for the dust to work on the new boxes. The Bandito has his informants over­ settle, but the Bandito predicts diat Septem­ The latest scuttlebutt is dial the seas, and they report more news on Com­ ber will he a busy month for Commodore launch of the 3000 will highlight Amiga- modore’s CD-ROM machine. The -word is product introductions. Vision, die newr “multimedia" software that working prototypes have been shown FISHING FOR NETWORKS from Commodore that combines the best to major developers in the UK. It's said to Networking is finally moving onto features of UltraCard, CanDo, and De- be an Amiga 500 motherboard with a built- Amigas, and it looks as though 1990 is the luxeVideo, Well, die Bandito isn't sure just in CD-ROM drive and the full complement year that Amigas will finally be able to hook how whizbang AmigaVision will really be; of standard Amiga ports, Pricing is not fixed up to the rest of the computing world. At a you’ll have to wait and see for yourself. yet, but the target is said to be under S750; recent Sun networking show, it was re­ Some developers are annoyed that depending on component costs, perhaps it vealed that Commodore has tested a ver­ Commodore is publishing such an impor­ could lie as low as $600 at introduction. sion of Sun's Network File System (NFS) for tant piece of software and cutting into their Game developers hope and pray for the Amiga. But no versions of NFS for OS/ business, Especially since the latest data CD based entertainment, and Commo­ 2 or Macintosh wrere shown. Could it be our heard by the Bandito is that AmigaVision dore’s widget could be the answer to their friend die Amiga taking the lead? may well be bundled with all Amigas sold. pravers. Imagine games w'itli full CD qual­ A company called Hydra Systems has This has publishers of certain products ity sound tracks, gobs of animation, and an AmigaXet Ethernet/Cheapemet card at running a bit hot about competing with a great sound effects—it would be super! a list price of about $700; it wras dem on­ piece of free software. On the other hand, Commodore’s Amiga CD solution looks strated at AmiEXPO. The card also supports bundling AmigaVision could help sell quite good on paper—it has the lowest initial TCP/IP, for those who know about that a few more Amigas, which means publish­ price point, which is crucial for a machine stuff. And the Bandito hears whispers that ers can sell more software. that wmuld attract game players. It’s still an unnamed Amiga developer (whose ini- Commodore stock is down below 8 more expensive than people are really tals are GVP) may be working on a similar these days, lower dian it has been for years. walling to pay for a game machine; hope­ card, diough at a lower price. And Commo­ But computer stocks have generally been fully, the price can come down fast enough dore has an Arcnet card in the works, for off. The stock could revive if die Amiga to guarantee success. The initial Amiga possible release this summer. CMl’s Ap­ pletalk card may yet find its way to the U.S. In Europe, Amiga is #1 for entertain­ tured in CNN reports on the show. The marketplace. Even ASDG has announced ment. Electronic Arts has a number of Bandito thinks the most interesting part they're working on a networking card. And Amiga titles in development at their UK was the reaction of industry types. They Commodore has been talking to subsidiary, so look for most of their Amiga realized that the Amiga + Toaster combina­ (among others) about software support for action to come from overseas. tion may be able to destroy' the market for Amigas on their popular networking sys­ their current zillion-dollar equipment. tems. NINTENDO UPDATE Makers of inexpensive effects boxes There is some news to report in the (which used to cost 520-30,000) can see WHEN IT RAINS IT POURS Nintendo/Tengen court battle. Give this their doom on the monitors. The Bandito As if Mediagenic has not had enough round to Nintendo, for they won die right predicts that sales of other DVE’s will come troubles lately (losing a patent suit with to sue retailers who buy Tengen cartridges. to a crashing halt in anticipation of the Motorola that cost them millions), they've While the lawsuits won't really he resolved Video Toaster's imminent release. Scuttle­ got another lawsuit on their hands. Medi­ for years, this is an important victory for butt says that NewTek has presold more agenic bought ZSoft (makers of the be­ Nintendo. You can bet it had some influ­ Video Toasters than all the other DVE’s stselling PC Paintbrush) in 1988 for some of ence oti Electronic Arts' decision to sign a ever sold before. Commodore, of course, is their stock. Now ZSoft's president claims licensing agreement. The other big news in breathlessly awaiting die Video Toaster’s that the stock is only worth a fraction of Nintendo-land: Nintendo has told its licen­ impact on Amiga sales. Should move a lot what Mediagenic said, and that it has not sees that they can now get as many car­ of A2000’s in anticipation, say's the Bandito. declared any dividends (and the stock price tridges as they care to order. This solves No one was neutral; they either loved has dropped). Meanwhile, ZSoft stock one of die biggest problems for licensees: NewTek or hated them. Among die hatees: made a profit of 5700,000, which all went since Nintendo was die only manufacturer Apple Computer, which saw its efforts to to Mediagenic. So ZSoft wants control of of cartridges, there was always a shortage. promote die Macintosh as video machine dieir own company (and profits) again. With the availability problem apparently at wholeheartedly ignored. On die flip side, While there's trouble at Mediagenic, an end, publishers can go full speed ahead, all the users of video equipment could see things are looking bright for Electronic Arts. So the Nintendo juggernaut keeps on die benefits of this new technology', and They reported an increase in profits and rolling, though die graphics are looking diey were clamoring to get their hands on sales for 19S9- And Electronic Arts is now pretw old. The Genesis machine looks very the hardware. an official Nintendo licensee, thus putting much like an Amiga, and so far it seems to to rest dieir efforts to reverse engineer the be selling all right. Does the Amiga game SHOW STOPPERS Nintendo cans. The Bandito supposes diat machine have a shot? The Bandito thinks GVP, in an impressive booth, it was cheaper to “join 'em than fight 'em," that Commodore may well decide to forget showed off their A4000 plus 1, a 40 MHz as the saying goes. Nintendo is where the about it and concentrate on their CD-ROM 68030 accelerator card that is a screamer. money is being made, so this should help device instead, even though it is much They’re planning a 50 MHz version for sum­ Electronic Arts’ sales and profits. more expensive. mer release. And when Motorola makes the Amiga entertainment software is DCTV is the latest word buzzing 68040 more widely available, you can bet Hi Quality Version Available on AMIGALAND.COMbeing developed in Electronic Arts' UK around Amigadom. Supposedly, Digital GVP will have a board out. division, since the Amiga is the -] com­ Creations has a low cost way to expand the Showed off was the Rejuvenator, a puter in Europe. Electronic Arts is also Amiga’s palette with some sort of frame board to upgrade the A1000 to die A2000 avoiding roleplaying games unless they buffer that will sell for around 5500. But level, able to use the new Enhanced Chip can import them. Roleplaying games tend they are not the only one. and Digital is not Set and even a flickerFLxer (they have to take a long time to develop, and the exactly rushing to the marketplace. What­ added a video slot that is almost the same payback is chancier. Then again, the big ever happened to the V-Machine, which as the A2000 video slot). Their booth was hits are great moneymakers. was supposed to be a Toaster-Killer? Looks crowded, and they sold quite a few Rejuve- While we’re talking software, the like it won't be out for a while, and when nators to eager A1000 owners looking to Mouse is planning a frontal assault on the it does happen it will be considerably more bring their machine up-to-date. entertainment and creativity business in tire expensive and less effective than the On die odier hand, a company called Amiga market. Disney apparently plans a Toaster, However, the V-Machine will Delaware Valley Software announced a stronger presence in lire software business, work with Macintosh or IBM. Once again, board similar to the Rejuvenator (the DVS showing their muscle recently by hiring owners of other computers can expect to Wonder), but they did not show a working Accolade's marketing veep and a former pay more to get what the Amiga gives you version. Just a few' fly'ers. which means Electronic Arts producer to run their opera­ for less. nothing when someone else is actually tion. Apparently, the mouse folk are seri­ selling a product. ous about making money on software. SOME JAM WITH THAT? The World Of Amiga show in New Their new animation package should carve It is finally gening real, sports fans. York was a bit of a turnaround for Commo­ itself a good niche in tire market. Disney The long-awaited Video Toaster was die dore. Previously, they insisted that the apparently hopes to imitate LucasFilm's smash hit at the National Association of show be called the World Of Commodore success in turning movie titles into hit Broadcasters (NAB) show in Atlanta. and used the opportunity' to show off C64's software. People were stacked up like airplanes at and Commodore PC clones as well as The latest Software Publisher's asso­ O’Hare waiting to see the ultra-cool Penn & Amigas. After the fiasco in Los Angeles last ciation figures are in for 1989- For entertain­ Teller videotape, and live demos of the year, where they' had fewer attendees than ment publishers, the news was not so Toaster’s effects (by their new media star, an Atari ST dealer's convention, Commo­ good. Tire overall market shrank by 12%. Kiki). The product is in FCC approval now, dore wised up. The only reason for a While IBM and Amiga software sales grew so volume shipments will begin when the Commodore show is the Amiga, no one (and Amiga grew the most), the C64 and Feds finish (probably in the summer). Jaws cares about the C64 anymore, and if you Apple II markets took a nosedive. Amiga is were dropping all over die convention, and have a PC clone, you go to a PC clone show now recognized as the -2 target market for the Video Toaster won the award for Best entertainment software development in the New Product. The Toaster was also fea­ •AC* ( l i d L , „

by Rich Falconburg

he variety or systems in this w orld of In my daily usage of various operating computers is astounding. How can you possibly systems, I find that it becomes tedious to con­ choose the type of hardware you want and still stantly try' to remember which system I'm using find software that will run on a particular ma­ so that I enter the correct commands for that chine that will let you accomplish the job you system. Through the use of Aliases, both at work wish to do? For many, this is not a question of and on my Amiga, I’ve been able to alleviate great importance, just pick the greatest com­ much of the headache. But that is only a stopgap puter (the Amiga, of course) and buy it. For measure. This becomes obvious when I acciden­ some, however, the purchase of a system to use tally tty to perform an operation specific to a Hi Quality Version Available on AMIGALAND.COMat home is often driven by requirements of a given environment. I have yet to find a machine daily job. Will I be able to finish work at home that doesn't complain when you don’t speak its if I need to? Are tire programs I am comfortable language. Very intolerant, drese technological with and use on a daily basis available on a beasts! Air well, artificial intelligence is in the machine that I would like to own? All too often, making, and some day it will help make up for the answer is a resounding NO. Inevitably, you my bungling. Until then, I must learn to adapt or Tend up making some sort of compromise and find ways to teach my old dog some new tricks. learning to live with tire consequences. Occa­ With the help of programmers such as sionally, a piece of software might actually be Steve Koren, I am doing just that. I-Ie has file compatible with a program you must use at provided the Amiga community with a com­ work. In even rarer cases, you vail have an mand interface that is very similar to the UNIX identical program written for your specific com­ Korne shell (interesting play on names, eh?). His puter. Obviously, tire preference would be the SKsh shell is an environment that not only last choice, especially if the data files are com­ provides most of the UNIX commands that I use patible. The program we’ll look at this month daily, but also gives me much of the same com­ falls somewhere in-between the last two de­ mand line functionality that I've grown so accus­ scriptions. it provides an interface that retains a tomed to. This package offers some excellent format many will be familiar with. In many cases, features, for both the casual and tire power user. it performs equally as well as the program it is The tremendous effort put into this Freely designed after. Nevertheless, it does fall shon in Distributable bundle of software speaks of certain areas, requiring some adjustments. someone with a flavor for professionalism. Steve went to great lengths to produce a package that in my opinion for..do..done: Executes a statement list in order rivals the quality of those produced by some commercial software houses. The extensive documentation is dearly written and well force: Forces the shell to interpret die given command as one of organized. Included are a User’s Guide and a detailed Reference a function, a buiitin, or an alias. Manual, both impressive in themselves. The User's Guide is function: A function is similar to a C function and allows you to packed hill of information and examples covering the operation establish a command that executes a series of statements to of SKsh. In die 100-page Reference Manual, he explains in detail perform its operation. the operation of every command, complete with short examples, usage templates, and cross references. Each includes a Table of if..then..elif..else..fi: This is die standard testing mechanism Contents, and the User’s Guide includes an Index. Other docu­ used in most programs. ments cover installation, error codes, differences between SKsh and the Unix ksh, hints on using the shell more effectively, bug time: Displays the execution time, in seconds, ot a given com­ reports, limitations, technical information, update addendums mand. and more. All in all, it is a very complete package. And each page is nicely formatted to print on a standard page. The following is while..do..done: The standard looping construct used to per­ an overview of what this shell does. form a sequence of operation based on a set of conditions.

The built-in com m ands include; Environment variables used by the shell: alias set or examine aliases SKSHINIT: Two files are included, .skshinit and .skshrc, which argcount obtain a count of the arguments supplied get executed at each invocation of the shell. The SKSHINIT bascname print the base (file) name of a given path variable points to the user configuration file .skshrc. This may be break break from an enclosing for or while loop altered to point to a different file. cat copy files or stdin to stdout (similar to TYPE) cd change the current working dir (similar to CD) CliNUM: This variable contains the CLI process number of the clmiod change file permissions (similar to PROTECT) continue resume next iteration of loop current shell. cp copy files (similar to COPY) date print date and time (similar to DATE) CMDNUM: This variable increments each time a command is dec dec 1st argument by 1 or 2nd argument entered. dimame print directory name of a given path echo echo arguments (similar to ECHO) COLUMNS an d LINES: These two variables contain the height exit leave sksh and width of the current window. Only the COLUMNS variable is exportHi Quality Version Available on AMIGALAND.COMset value of an AmigaDOS env: variable extname print extension part of tile spec currently used and will allow SKsh to adjust the line length if tire false do nothing; return false size of the window is changed. getenv get value of an AmigaDOS env: variable (similar to GETENV) HTSTSIZE: This variable contains tire size of the this history buffer. history list command history inc increment 1st argument by 1 or 2nd argument HOME: This variable defines the default destination for the cd info get device information (similar to INFO) command, that is, when cd is entered by itself with no directory local make local variables specification it will check this variable and change to the directory Is list directories (similar to LIST) match print arguments matching first pattern that it finds there. mem list system free memory (similar to AVAIL) mkdtr create directories (similar to MAKEDIR) EPS: Or Internal Field Separator. This character is used to break mv move files or directories (similar to RENAME) text from variables and command substitution into separate para­ options set or examine sksh option flags meters. ps get process status information (similar to STATUS) read set a variable value from standard input LOGOUT: This variable is executed when the exit command is return return from function or script nil remove a file or set of files (similar to DELETE) used to quit tire shell. rmdir remove an empty directory set list vars, aliases, builtins, or funcs OLDPWD: This variable contains the previous directory. The -p shift shift arguments to function or script switch may be used with the cd command to return to this sksh the main executable for the shell directory'. sleep delay for n seconds source execute a file in current context PATH: This variable contains a list of tire available paths. touch update modification times on files true do nothing; return true unset remove a variable PNPC: This is a special variable used by SKsh to define the version print sksh version identification number of non-printing characters in tire current prompt string. whence print info on interpretation of name which print the full pathname of file (similar to WHICH) PS1 andPS2: Each of these contains the primary and secondary prompt strings, respectively. Shell script keywords include: PWD: This variable contains the current working directory. expr: A type of calculator with embellishments. This command is useful for extracting or matching strings. SHELL: Set initially to ‘'sksh”, this variable may be used to in shell List Of Advertisers Need more information? Need help ? Need to know?

Contact the AC advertisers!

Please use the Reader Service Card to contact those advertisers who have sparked your inter­ est. Advertisers w ant to hear from you. This is the best way they have of determining the Amiga Amazing Computing Subscription Questions community's interests and needs. Take a mo­ PiM Publications, Inc. m ent and contact the com panies with products P.O. Box 869 you w antto know m ore about. And, if you wish to Fall River, MA 02722 contact an advertiser directly, please tell them you saw their advertisem ent in Amazing Computing Please remember, we cannot mail your magazine For The Commodore Amiga to you if we do not know where you are.______

Advertiser P age Reader Service N um ber Please allow four to six v/eeks for processing. ACDA Corporation 17 104 AmiEXPO CHI 119 Hi Quality Version Available on AMIGALAND.COMAmiTech C om puters 45 114 Beta Unlimited 50 126 scripts to establish execution criteria. Although not 100% compat­ Computability 25 117 ible with die UNIXksh, some ksh scripts may run under SKsh and Computers Etc. 56 113 limitations can be defined using this variable. Delphi Noetic 67 142 Digisoft 44 137 SYSNAME: This variable may also be useful as described above. Fairbrother & SoeperMcnn 34 179 Currently SKsh only runs on tire Amiga and such is die contents 147 of diis variable. Grapevine Group Inc., The 12 Grass Roots In addition to die commands described above, several Video Productions 34 108 aliases are defined in the .sksinit file which has die affect of adding Hologramaphone Research 35 109 several useful commands to the collection. The command line Flunter Group. The 9 111 editor is fashioned after the EMACS editor, thereby making diis Impulse, Inc. 5 115 shell useful via odier devices such as a simple .Alpha-numeric Imtronics CIV 151 terminal. I’ve experimented widi diis approach using AUX: and Inovatronics 7 110 have been very happy with the results. We’d examine that more interCoputing.inc. 11 116 fully next issue. Krueger Company, The 66 118 This command shell lias proven to be very reliable. The only Lattice Inc. 33 124 difficulty I ran into was covered very clearly in the documentation. M em ory Location, The 63 107 If you intend to use diis shell, be sure to get a copy of die latest Memory Location, The 34 186 version of arp-Iibrary (1.3 version 39) and save yourself a lot of Micro Migo 46 182 headache. I had an earlier version and had trouble getting SKsh MJ Systems 62 149 to parse AmigaDOS commands properly, O n e Byte 61 135 Next issue I'll begin a short series on how to turn your Amiga Puzzle Factory, The 3 163 into a multi-user powerhouse through some more programs S.P.O.C. 13 112 available in the public domain. -AC* Safe Harbour Software 71 134 Saxm an Systems Send questions or comments to Rich Falcon burg, c/o 43 103 Amazing Computing. P.O. Box S69. Fall River. MA 02722-0869, or Silver Fox Software 54 105 send Email to R.Falconburg on GEnie. StraightlineSoftware 28 106 Twilight G am es 55 175 Virtual Reality Laboratories 73 121 AMIGA 3000 Launch 4^ Multimedia and AmigaVision Take Center Stage

Neiv York, April 24, 1990. In the dark, historic Palladium, the Amiga 3000 made its debut in front of over 350 members of the press, Amiga dealers, developers, and a host of VIP’s. The event not only sponsored Commodore’s newest addition to Amiga line, but established CBM's hold on die multimedia market. Preceded by a “countdown” flashed on overhead screens, Commodore introduced multimedia via demonstration with a superbly produced multimedia video Commodore's Cast: Amiga developers and Commodore executives tea m e d together to create the m ultim edia event. created entirely on the Amiga. From Professor Corey, to a space launch, to the impact diat comes from great visuals plus a The icon-driven, graphically oriented moon, and back to the past, CBM pulled all dynamic sound track. For everyone with a AmigaVision is Commodore's key device to aspects of multimedia together for one message to deliver, it unleashes extra­ place multimedia at the home user level. powerful punch. ordinary ability7. For die businessman, David Archambault, CBM's director of CBM’s President and CEO, Harold D. educator, or government manager, it turns business markets, said, “Unlike other Copperman, was instrumental in any ordinary meeting into an experience.” authoring systems, AmigaVision is a non- generating Commodore's and die .Amiga’s intrusive environment which allows predominanceHi Quality Version Available on AMIGALAND.COM of multimedia staling, The Amiga 3000 applications to run without die .AmigaVision “Today’s event—and, later this week, After listing the benefits and needs menus being visible. Enhanced design World of .Amiga—give us an opportunity to for multimedia, Mr. Copperman introduced capabilities allow7 for immediate on-screen re-introduce you to die Amiga technology7. die A3000. (For details on the A3000 see the preview7 while die presentation program is It’s a technology7 positioned to take May issue of Amazing Computing.) As part running. This allows the user to create advantage of the hottest marketing of die full effect of a multimedia unique user interface elements quickly and opportunity of die 90 s: Multimedia. presentation, Commodore used prepared with ease.” "It’s our turn, it's our time. We had the video tapes of Jeff Porter, Commodore’s Mr. Mahaffey wrent on to say, technology 4-1/2 years ago. In fact, we had Director of Engineering, and Walt Simpson, VAmigaVision is a key component of the product ready7 for multimedia before Director of Product Marketing, to discuss Commodore’s product marketing strategy7 multimedia was ready for a product. Today die A300O. for the Amiga family. While professional we’re improving the technology ...and The Amiga 3000, starting at S3299 for users comprise the majority of the we’re in the catbird seat. It is our Lime. It is the 16MHz 40MB hard drive system, boasts multimedia related markets today, future Commodore's time.” a long list of special features. New designs plans call for penetration into the consumer Mr. Copperman went on to say7, "... in its hardware allow the A3000 to advance market as home users begin to discover die I’m at Commodore just as multimedia to a higher level of hardware and software benefits of multimedia.” becomes the most important item in die technology while remaining compatible marketplace. Once again I'm with the widi older versions. Its new display and Multimedia: Commodore's Territory leader. Of course, in this industry a leader operating system not only improve the There is little doubt diat Commodore doesn't have any followers; he just has a lot look of die screen but provide die Amiga is going to continue to push dieir advantage of odier companies trying to pass him by7! user with a new set of tools. in die multimedia market. The event drey But take a close look: the other companies staged at the Palladium, as well as dieir are talking multimedia...but diey're not A miga Vision ™Annou need presence at World of .Amiga (please see the doing it. They're a long way behind AmigaVision, CBM’s hot new related article on page 47 of this issue), has Commodore—not even close.1’ audioring system for die Amiga, will now demonstrated Commodore’s commitment Mr. Copperman later described be bundled with all new7 Amiga 2000 and to maintain their advantage. With tools such multimedia. “Multimedia is a first-class way 3000 systems sold, according to CBM as the A3000, the new7 Workbench 2.0, and for conveying a message—because it takes Director of Marketing, C. Lloyd Mahaffey. AmigaVision, CBM has taken more than a die strength of the intellectual content... Mr. Mahaffey said that a special offer w7ould lead over their compeddon. They have and adds the verve—die emotion- be available to all .Amiga owners who staked their claim on multimedia with an grabbing, head-turning, pulse-raising purchased dieir computers within 90 days open challenge to all. of the announcement. •AC- IF YOU'VE BEEN IN COMPUTER PROGRAMMING A QMAIN is a header structure for die queue of items. This while you have probably heard the terms “linked list” and structure contains a pointer to the first QITEM (top) and a pointer "doubly linked list”, and you may have read one or more of the to die last QITEM (hot). Additionally, the queue header will numerous articles that have been published on these subjects. contain a counter (cnt) of the number of items contained in the Of tire articles that 1 have encountered, the author usually spends list. Notice that die order of the stmcture variables “top” and lots of time covering the theories and definitions of doubly “bot” is important. By aligning “bot” in the same position as linked list technology without spending much time on implem­ “prev” in die QITEM structure and “top" with the “next” position, entation. Rather than reinvent the it is possible to make a complete “circle” through die items. Of wheel, I'll spend more time on actual course you don’t want to accidentally treat the QMAIN as an Linked Lists: examples. Some basic definitions are element but there are times when you will intentionally treat the . i n order, however, for those who queue's head as a QITEM. (More on this later.) Data location may not be familiar with linked lists Given these two stmcture definitions it is now possible to ltl'ld c S illin ic and as a refresher course for every­ write code to handle doubly linked list. The most important part one else. of diis implementation is the queue functions that will do all die A linked list is a method of storing tedious work for you. You don’t want the burden o! maintaining information (data) in such a way that one data item “points" to the queue everywhere you use it, so listing Two has the basic theHi Quality Version Available on AMIGALAND.COM item that logically follows it. In other words, if you know functions required. where one member of the list is stored, it is possible to find all At the very least, three of these functions are required, but the elements that follow it. All the items are “linked” to each it has been my experience that these three are enhanced by the other. A doubly linked list fallows die same principle, but lias addition of the odier functions shown in die listing. The 3 the added capability of "pointing” to items diat occur prior to the primary functions are "qinitO”, “qaddO". and “qdelO”. current member. This means that you can traverse a list forwards Before using a queue for die first time it is necessary to and backwards. initialize the QITEM pointers, top and bot. The function qinitO Since the items in the list are linked to each odier, it is easy will "point" the start and end pointers to the QMAIN itself and to have any number of items in die list (often called a queue). set the count of items to zero. It is important to initialize a queue This means you don’t have to know ahead of time, as with arrays, once before using it. Using a non-initialized header in one of the how much data space to reserve for the list. Making room for a subsequent functions will certainly lead to doom, Be sure to only new' item in a queue is as simple as calling a memory allocation initialize a queue w'hen you know that it has not been used (malloc) function and setting the pointers to maintain the links. before. Initializing a queue that contains elements will result in The implementation dial i’ll be discussing uses doubly linked your losing all the elements and the memory associated with lists. diose elements. The key things to know about a queue is where die first The second primary function is qadd(). A list is of little and last elements of the list are located and how.’ to reach the value if you cannot add new things to it. Notice diat the member that occurs before and after any particular element. The parameters to diis function include die QMAIN of the queue easiest way to handle these tasks is through structures. Listing being referenced, a QITEM pointer to a member of the queue, One is the “include" file that is used by die subsequent code. In the data's pointer and die length of data to be stored. You might it is defined die prototypes of all the functions, as wrell as two drink to yourself, “Why pass an element pointer' when you are key structures. simply adding?” The answer is that this function actually “inserts” The First stmcture type is named QITEM, Given any a new member. This functionality means that you could build a member, you must be able to find die previous member (“prev") sorted list, if you first determine where die item should be and the member diat occurs next (“next”). .-Mi additional item is placed. In actuality, the same code is required W’hether you are included in this structure to enable die members to handle inserting in the middle of a queue or simply adding to die end variable length items. The “len” will represent die amount of of die queue. Therefore, die added feature only “costs” you a memory required by die data but will not include the overhead parameter value. of the QITEM structure. As you can see, if each member Remember how I stressed that the position of a QMAIN’s maintains its QITEM structure, it will be possible to reach the top and bot pobiters was important? Adding a new element dem­ items dial precede and follow' it by referencing die structure onstrates why. If you are adding a new element, you have to variables next or prev. point to the previous element (the current last element) and make it point to the new one. Likewise, you have to make the qaddO, the qputO function first determines whether the new current element (which in the case of addition is die QMA1N) and data will fit into the same size location that is already used by die make its previous pointer point to the new element. Finally, you old element. If it will not, the old data is removed and the new have to make tire new element point at the previous end and data is added in its place. If it will, the data is simply moved into point the next at the QMAIN. By ensuring that llie poinLer in a the old location. QMAIN can be referenced like a QITEM, it is not necessary to add Finally, when your program is finished using a queue it is code to specifically check to see if you are addressing the QMAIN necessary to release the memory associated with the elements. itself. .-All you have to remember is this: To add a new element The qfreeO function does tills task by deleting each element that at the end of a queue pass die address of the queue as the first remains in a queue. Remember, if you don'trelease the memory, two parameters. your program cannot reuse it. This is an important point to note, Also notice how qaddO actually stores the data. First, the especially if the queue is a variable on the stack diat will be lost size of a QITEM is added to die lengdi of the data as an overhead after your function returns. Also, be careful not to simply re-init to maintain die doubly linked list. In diis implementation, diis die queue using qinitO. This will definitely cause you to "lose” means that me largest element that can be stored is 65525-bytes memory. long (65535 minus 10, or the maximum value of an unsigned As mentioned, there are a number of other functions that short minus the size of the QiTEM structure). It has not been my could be added to this list to aide in the usefulness of queues. In experience dist this size limitation causes any problems in pro­ die next couple of monUis I will probably include several others, grams. but these are die key functions. Of course, a number of enhance­ The third required function is qdel(). As the name implies, ments can be made to these functions to improve their perform­ this function is used to remove an element from the list. ance both in speed and integrity. For instance, I also use Tixed- Removing an element from the list works almost in the reverse length” queues. These require similar functions (with “qf1 as the of the add code. First, point to die previous element. Set diis prefix) that do not require you to pass lengths — except for pointer's next to the element following the one being deleted. qfinitO which stores the fixed length indicated in the QFMAIN The following element also has to be changed to point back to structure. Additionally, other checks can be performed to ensure the prior element. Once these two element pointers have been that elements from the “wrong’’ queue are not accidentally changed, the member in question has been removed from the changed. But I will leave many of these types of enhancements chain and die associated memory can be released. to you the programmer. Notice that the qdel() function returns a pointer to die Relying 011 queues and queue functions can be both won­ element diat followed die one deleted. This is most often die derful and terrible. Wonderful because of their flexibility in ma­ desired results since diese functions are often reference in nipulating all types of data easily, and terrible when one or more "loops”. By returning the pointer to the next element you can of the functions has a bug 111 it. As a precautionary measure, it is easily keep track of where you are in die queue. Also, note that good to do a little Quality' Assurance (QA) on the functions and aHi Quality Version Available on AMIGALAND.COM special check is made to ensure that you do not accidentally try I have provided such a program in Listing Three. In addition to to remove die QMAIN from memory. The QMAIN is not an being a test, this program also demonstrates how to use the element and trying to release the memory associated with that queue functions that I have included. pointer can be devastating. The test program will test most of the features of the queue Initialization, addition, and deletion are die primary' func­ functions. A comment block has been provided in each area to tions required to make queuing work. In practice, however, the explain the test that is being performed. Notice that in many area need for several other functions arise to enhance the useability tire entire queue is traversed either forwards or backwards. This of linked lists. Aldiough there are a great number of functions that is accomplished by making a pointer to store the current QITEM. can be written to aide the use of queues (some of which I will Adding 1 to a QITEM pointer [i.e., (ptr + 1)] actually tells the cover in later articles), I think the ones diat I have included compiler to add the "size” of a QITEM to the pointer. This is a constitute die ground level. A discussion of each follows. quick method that can be used to point passed the overhead Often it will be necessary to point at (and perhaps retrieve) structure to the actual data that has been stored as tin dement. a particular element in the list. To accomplish diis, use die qsetO Eight major tests are performed on the functions provided. function to return the QITEM pointer of the element you require. Within each major test, several minor tests may also be done to As an additional feature, and to help prevent errors, qsetO check the reliability' of the queue. In the event of a failure, the expects a pointer to the variable diac contains the offset position. variable “error” will be assigned a unique number where it failed. This allows die function to alter the requested value if it falls If at the end of die tests, your program prints an error value other outside the range of the queue. A small attempt is made to than zero, it either means that the test program or one of die increase the speed of the locating process by determining queue functions has a bug, Use the error number to find the whether die requested offset is in the first or second half of the specific area that failed and then you will know what to begin queue. checking. For instance, an error of 7 indicates that in test 3, the Another positioning function that is useful is die opposite data in the queue does not match the expected value of count. of qsetO. This function, named qpos(), will return the relative This might mean that the qaddO function lias a bug in storing the position of an element in a queue. This function expects a QITEM data properly. pointer to an element and searches for it in the queue indicated Linked lists might Look like a lot of work but once you have by the odier parameter. If die element is not part of that queue, several well established functions, you will be surprised how or is the QMAIN, a value of zero is returned. many solutions to everyday programming problems they pro­ Updating existing elements is a common task for programs vide. They can offer more efficient memory use, which increases that use queues. Rather than making the programmer include the useability of your programs. Take some time and do a few code to remove an old element to add the revision, the function experiments. I hope you find queuing as useful as 1 do. qput() can been included. Accepting the same parameters as memprev->next = /* the previous item now points to new •/ Listing One- member->prev = memaddr; /" the next item points beck to new */ typedef s;ruc: x { memaddr“>Ien = len; /* the length of the item, stored •! struct x *prev; movmen(data,(memaddr+i),ien); /* store the data passed */ struct x 'next; que->cnt++; /- count increments for this queue */ unsigned short ien;

1 QITEM; return(memaddr); /* return the QITEM pointer to new item

typedef struct {

QITEM "bet; "/ QITEM "top; /■ QDl L will remove the item pointed at by the passed pointer */ unsigned long cnt; /* from the queue indicated. r/ } QMAIN; /* -/ void qir.it (QMAIN -que); QITEM * qdel(QMAIN "que,QITEM "member) QITEM * qadd (QMAIW "que,QITEM "member,void "data,unsigned short

QITEM * q d e l (QMAIN "que, QITEM "member); {

QITEM * qset(QMAIN "cue,unsigned long *iten); QITEM *ptr;

unsigned long qpostQMAIN 'que,QITEM "ptr); if (memcer [QITEM *)que) /" first check to see if pointer is MAIN QITEM * qput(QMAIN "que, QITEM *ptr, void "data,unsigned short ie: D; return(member); /+ if so then return (nothing to do */ voic qfree(QMAIN "cue); ptr - member->prev; /* point to the item before the element */

Listing Two ^ ptr->next * member->next; /* it now points to the item after member #include "queue.h"

rinclude ptr * member->next; y* point at the item after the element /' •/ ptr->prev - member->prev; /* it now points back to the item before

i* QINIT establishes a new Queue by pointing the top and bottom que->cnt-; /■ the queue has one less element */

/* pointers to the head of the queue and sets count of items to free(member); ;■ free the item */

/* zero. WARNING: if you do this function is passed an "active" return(ptr); /* return the pointer to the next item •/ /* queue then the memory and elements that it contains will be

/* lost. Hi Quality Version Available on AMIGALAND.COM■/ /• QSET is used to return a pointer to the element at the void qir.it (QMAIN "cue) /" sequential position indicated by the value in item. If { i * item is greater than the number of items in the queue then que->rop = (QITEM *)que; /* point top to MAIN */ /* item is set to the count of the last item.. que->bot = (QITEM *!que; /* point bottom to MAIN * /" In order to speed the process cf positioning (somewhat) que->cnt * CL; /* No items in queue yet /• it is first determined if the item can be found faster by

/' starting from the last item in the queue or the first.

/* QADL is used to add a new item to the queue in front of the

/* QITEM pointer that was passed. To add an element to the end QITEM * q s e t (QMAIN "que,unsigned long "item) .■'* of a queue the pointer to the QMAIN should be passed as the :

/• member. Because of the overhead required to maintain the unsigned long start; !* QITEM links the maximum element size that can be added is: int inc;

/* (maximum unsigned short value - sizeof(QITEM)) or 65535 - 1 0 QITEM "ptr;

QITEM " qadd(QMAIN "que,QITEM "member,void "data, unsigned short len) ("item > que->cnt) /* check to see if in this queue

t "item » quo->cnt; /* cannot be longer than queue "/

unsigned short recsize; ("item == 0) /* Check for a value of zero •/

QITEM "memaddr,"memprev; return((QITEM ■)que); /* return the pointer to MAIN "/

in reqsize ** ien + sizeof (QITEM) ; /* adjust size "/ I "Item > (que->cnt » 1)) { if item is in second half V

if ((memaddr = (QITEM ■) malloc(reqsize)) “*■ NULL) /* get memory */ inc - -l; /* look backwards */

return((QITEM ")NULL|; /* no memory */ start = que->cnt; /* start from the end */

memprev - member->prev; /* point to item before member */ ptr = que->bot; /■ point at last item •/

memaddr->prev = memprcv; /* make new item's previous pointer * I lse ( /" in the first half */

memaddr->next = member; /* new item's next is the member */ inc - 1; /* look forward */ start. - 1; /* start at position one 7 Listing Three ptr = que->tOp; /* point to first item */

[' This program will test the integrity of the queue 7 /* functions. It will perform, several test to ensure 7 for ( ; *item ! = start; start +* ire) /* look for item 7 /* that each is working properly.*/

ptr ° (ir.c > 0} ? ptr->next ; ptr->prev; /* forward of #include "queue.h" backwards 7 #include

return(ptr); /* return the pointer to item 7 typedef struct ( /* element structure that is used to unsigned short count; /* test the integrity of the queues unsigned short len; char data[31); /* */ )ELEMENT;

I" Q?OS is used to determine the relative position of an item in 7 void ain () { /* the queue indicated. If the item is not found then 2erc is 7 QMAIN queue; ELEMENT item; /* returned. The function starts at the MAIN queue position. 7 QITEM 'ptr; unsigned long pos; unsigned count; unsigned error; unsigned long qpos (Q M A IN *que,Q IT E M *ptr) qinit (iqueue); /* initialize the queue 7

/* 7 QITEM ’srch; /* First check to ensure that the top and bottom pointers 7 /* point to the queue's address when after initialization.*/ unsigned long item; /* ‘ / printf("3egin Test i\r\n"l; srch = (QITEM * ) q u e ; /* point the header 7 error = 0; assume no errors *7 for (item « 0L; item <» cue->cr.t item-*-*) (/" check entire queue 7

if (srch ptr) return(item); /* if found, return if (queue.top '- (QITEM *)4queue>/* is top incorrect 7 count 7 error - 1; /* set the error condition 7

srch srch->next; go to next item V if ([error ll queue.hot != (QITEM *)£queue) /* is end incorrect 7 error = 2; /* set error condition*/

if ([error &£ queue.cr.t I*1 0L) /* length is not correct 7 return(0L); f* does not occur in error = 3; /* set error condition 7 queue 7

/* Next we will add to the queue 3C0 elements of 7 /* varying lengths and data.*/

/’ CPU? is used to re-store an element back into the queue at the 7 if ([error) « if no errors yet /*Hi Quality Version Available on AMIGALAND.COM same position that it held. If the element is the same site 7 printf("3egin Test 2\r\n'f); /* it is simply moved into the same spot. Otherwise, to old item 7 fcr (count = 1;count <** 300; count+~) { item.count = count; /* set the item count 7 /* is removed and the new item added in its place. 7 item.len - count % 30; /* set variable length 7 if (item,len ==0) /* on zero set to 30 7 /' ------V item.len = 30; /* reset 7 mercset(item.data,35-item.len,item,len); /* random data QITEM * qput [QMAIN *que, QITEM *ptr,void ''data, unsigned short ien) ptr = qadd(Squeue,(QITEM *)iqueue,fitten,(unsigned { ort)(iten.len+4)); if (ptr == NULL)( /* if failed to add 7 if (ptr->lcn •=- ien) ( /* if data fits into same slot 7 error *= ; /* indicate error 7 break; /* end the test 7 movrr.en(data, (ptr-1), len); /" move data into old space 7 ) if (count != queue.cnt){ /* check counts 7 return (ptr); / * and return this element */ error = 5; /* indicate error 7 break; i J ptr = qdei(que,ptr); /* remove the old pointer 7

return (cadd (que, ptr,data, ler.) ) ; / - add the item back here 7 Nov verify that the entire queue can be traversed in both ■ directions and verify that the proper data was stored.*/ /*------7 7 long as no error yet 7 /* QFRES will free ail the memory associated with the members of ([error){ /« printf("Begin Test 3\r\nw); count ~ 0; /* assume no value yet 7 /’ the queue indicated as the parameter. for (ptr « queue.top; ptr !- (QITEM *)&queue; ptr = ptr->next}{ /*------/ if (count == 300) ( /* failed to find er.d 7 error ° 5; / * set error 7 void a free(QMAIN *que) break;

count++; /* increment the count 7 { n {(ptr-:), iite eof(item)); /* move largest size */ for(;que->cnc > G;){ if (item.count != count){ /* verify data */ error *= 7; /* error */ cdel(cue,que->top); break; /* step 7 } ) i: (item.len != count % 30)[ /* check proper size 7 if (I (item, len 30 Si (count % 3 0 -« 0 ) M 1* except */ I error = B; /* set error */ break; /* stop */ ) ) if (item.len ptr->ler.-*() { /* check length stored */ error =9; /' set error 7 break; /* stop */ if (iten.dataE0} !■* 35-item. len) { error - 1C; /* wrong data */ Now check the code that puts data back into the queue.*/ break; This time use a fixed size for all itens so that some */ should fit into the existing space while others have to be deleted and added again.*/ if (!error 44 count !» 300}{ J* not enough items ’/ error = 11; /* indicate error */ ) if (Ierror)( ) print f (’’Begin Test 6\r\n"); for (ptr = queue.top; ptr != (QITEM *)£queue; ptr « ptr->r.oxt) 1 if (’error)! /* as long as nc error yet •! r.ovmem {(ptr+1), 4item,ptr->len); /* get the data */ court = 0; /* assume no value yet *i memset(item.data, ' 15); /* reset data */ for (ptr " queue.bet; ptr != (Q1TSK *) £queue; ?tr = ptr->prev) { item.len - 15; !* reset length */ if (count =■ 300)1 /* failed to find er.c */ ptr = qput(4queue.ptr(iitem,(unsigned short)(item.len+4)); error = 12; /* set error "/ if iptr == NUL L } ( /* if out of mem */ break; error = 27; break; count--; /* increment the count */ )

:t (count 1= 300) /* not enough items */ error - 13; /* indicate error */ /* •/ !* After the puts, check to insure that the integrity of the linked */ /* list has been maintained by traversing the queue in both Now test the positioning within the queue using the */ directions.*/ position by offset and by pointer functions.*/

if (lerror){ if (lerror) f / * if no errors yet */ printf("Begin Test 7\r\n"); printf (‘'Begin Test 4\r\n“}; count = 0 ; pos •= 100; /* position in first half */ for (ptr = queue, top; ptr ! = (QITEM *) fiqueue; ptr - ptr- ptr = cset(Squeue, 4pos); /* get the pointer */ if (count == 150){ /* too many */ if (pcs != 100) /* proper place */ error = 26; error = 14; /* incorrect value */ break; } ) if (1 error)5 count**; if (qpcs (Scueue, ptr) ! - pos) /* is this the same place */ ) error - 15; /* nope */ if (count != 150 44 queue.cnt I* 1 5 0 check counts } error = 2 3; if ( !error)[ if ( ( (ELEMENT ") (pcr^l)) ~>cour.t 1= pos) /* check data */ (lerror) ( error = 1€; l r nope */ count « 0; f o r (ptr - queue,bot; ptr (QITEM *)iqueue; ptr = ptr->prev){ (lerror){ /* if no errors yet */ if (count == 150) i /■ toe many */ pcs ■ 200; /* position in second half error = 30; ptr a qset(iqueue,4pcs); /■ get the pointer *1 break; if (pos !- 200) I " proper place */ ) error - 17; /* incorrect value "/ count— r;

(’.error) { i: (count != 1 5 0 check if (qpos (4queue#ptr) ’= pos) /* is this the same place */ error = 31; error - 18; /* nope */

if Hi Quality Version Available on AMIGALAND.COM (lerror){ if (1(ELEMENT *) (ptr+1))->count !3 po3) /* check data As a final test# the free code is called to release ail the error = 1?; /* nope '/ elements from the queue. Afterwards the top and bottcn •/ pointers should point to the queue's address. •/

if (!error)( pos = 500; /* set invalid site */ if (error ==011 error > 3){ /* if queue inited if (qset(Squeue,4pos) != queue.bot) /* does it return end */ printf("Begin Test 8\r\n"); error = 20; qfree(4queue); if (I error){ . f (!error){ if (queue.top 1= (QITEM *)4queue) if (pos Is queue.cnt) did it reset pcs */ error a 32; error = 21; } if (I error)( (I error)• if (queue.bot I* (QITEM •)4queue) pos = C; /■ set MAIN */ error = 33; if (qset(squeue/spos) I- (QITEM k) iqueue) } error - 22; ) I if (lerror){ •/ ptr “ NULL; set a bad pointer */ As a verification to how successful these tests have beer., print the if (qpos (Squeue, ptr) lB 0) should not find this */ error = 23; error code's value. If error has a value ether than sere then there

is either an error in the queuing functions or in this test code.*/ Use the number printed to determine where the failure occurred.*/ Mow test the deletes code by removing all the odd numbers elements.*/ printf ("Error « %d\r\n",error);

if (Ierror){ printf("Begin Test 5\r\n"); for(ptr = queue.top; ptr != (QITEM "Uqueue; ptr = ptr->next){ •AC* if (queue.cnt < 150)! /* too many */ error = 24; break; ) ptr = qdel(iqueue,ptr); /* delete returns next oointer*/ ) if (lerror 44 queue.cnt !** 150) error ■ 25; ) if (lerror) ( /* check for only evens -/ for (ptr « queue.top; ptr I* (QITEM *)iqueue; ptr 3 ptr->next) { if ((((ELEMENT *) (ptr**l) )->eount % 2) 1= 0)! /* oops */ error = 2£; break; Display a la mode by Ernest P. Vlvelros, Jr.

ALONG WITH THE NEW WORKBENCH 2.0 software After setting the Width and Height of the display mode, you comes new display modes. Unlike the w o previous display can set the number of colors that can be displayed. Using the modes for the Amiga (normal and Interlace), these enhance­ Color slider gadget, you can increase or decrease the number ments are more easily accessible by the user. They also add of colors. Again, this is limited by Max Colors and available a great deal more flexibility and choice for die Workbench CHIP RAM. display. Finally, if you create a display mode wider titan the Selecting a Workbench display mode is accomplished monitor’s display area, you can select the AutoScroll feature. simply by using the WBScreen editor. To do this, open the AutoScroll scrolls the screen automatically when the mouse Preferences drawer, and double-click die WBScreen icon. reaches die edge of the visible screen. It's fast and smooth. Welcome to the WBScreen editor! The available display modes, depending on die system hardware and monitors, are G o o d in theory, a n d in p ra c tic e shown in a scroll gadget. Just point and dick on the mode of Using an .Amiga 3000/25 (with only 1MB CHIP RAM) 1 your choice. Each display mode has certain additive proper­ have routinely created and worked with Hires-Interlaced ties. A display box in the WBScreen window displays the displays which would lie the size of a 4-page display (approxi­ properties of the selected display mode. Possible display mately a 20" x 25" display...it’s hard to measure a scrolling properties include: display).

Interlaced The display mode supports an inter­ The Soapbox laced screen. These new display modes in addition to the oversize ECS Uses the Enhanced Chip Set. display bring new life (and powerful life) to the Amiga. PAL PAL display mode available, (Only However. I really can't do anything spectacular with it right Hi Quality Version Available on AMIGALAND.COMOn NTSC Amiga with ECS.) now. Much of die current 1,3 software runs buggy with plain NTSC NTSC display mode available. {Only on PAL Amiga with ECS.) vanilla Workbench 2.0, never mind with oversize displays. If Supports Genlock Supports the use of genlocking only more .Amiga developers would create applications that hardware. take advantage of the /Amiga’s unique Workbench display Draggable Supports a draggable Workbench modes. The Amiga is ready. *AC* screen. Panelled The selected display mode is mode up of several panels.

Also displayed in the WBScreen window is information about the screen sizes of the currently selected display mode. Information Hires Supports Genlock SuperHires D r a g g a b i e displayed includes; H ires-lntertaced SuperH ire s -In te r laced Product tu itv visible Size The size ot the Text over- scon area. 648 x 288 Min Size The smallest size that the 6 4 8 x 288 Height: m — i j£ i default display mode allows. 32752 x 32768 16 Max Size The largest size that the display mode allows. Cancel | Max Colors The maximum number of colors that can be dis­ played on a screen. JQj p«ft»fil«,litii;.3W bltduatJ ______E l l ■£» V ,V| 1 V 1 This is where it gets good! In tire W n i f WBScreen window, next to the screen size in­ wtrtciwo 9 K U Q L formation, there are twro text gadgets labeled v c u || “Width” and “Height". Here you can set the size v - i ■ fe d 'i______1 kwtiipl pmicifTi u p t u r n p o n tlr of the display mode. Your only limits are Min V 1 Size, Max Size and the available CHIP RAM. ‘■ W | M ii3D» II v c r |! t i n t prutci Plltttf iCIUl

Hires an d Super Hires are am ong the Workbench 2.0 display types. PIPE DREAM

by Miguel Mulet

Pipe Dream is Lucasfllm’s latest entry To build a pipeline, you take pieces in die arcade game market, In it, you play from tlie parts bin on die left side of die a plumber trying to control die excess screen. You really don't get to "select” each “flooz" being produced by Acme Chemi­ piece—you must use whatever is die next cals (“flooz" is a new brand of sewer available piece from the bin. Pieces are cleaner). To accomplish this, you must placed on die 7 X 10-piece playing field by build a pipeline long enough to contain the moving die cursor (using die joystick, “flooz” coming from the plant. You score mouse, or keyboard) over die desired loca­ points for every piece of pipeline through tion, and then pushing the fire button. You which the “flooz" flows, and lose points for cannot move a piece once it’s placed, but any piece of pipeline through which it you can put anodier piece on top of it. doesn't flow. What makes the pipeline Replacing a piece takes a hide longer, and long enough? It depends on the level also decreases your score by 50 points, you’re on—die higher the level, the longer The pieces of pipe come in assorted the pipeline required. The upper right shapes and sizes. There are are four right- corner of the screen shows what level angle pieces (which turn die “flooz” 90 you're on (L:) and the distance in pieces the degrees), horizontal, and vertical pieces, as ‘flooz" must travel CD:). well as cross-shaped pieces which allow Hi Quality Version Available on AMIGALAND.COM BATTLE SQ UAD RO N

by Tony Preston

This game was first shown at the rescue two comrades that were captured World of Commodore show in Valley returning from a secret mission to Urania, Forge, PA. It looked something like Hybris, the Barrax Empire home planet. The infor­ one of my favorite “shoot-em-up” arcade mation they have will make die difference style games. After watching my sons play between success and failure of future for a while, I realized that it is alot more. I counteroffensive actions! Commander talked to Paul Lommbardi, die gendeman at Mayers and Bergin only managed a partial die boodiand President oflnnerPrise, and transmission of warning before they were found out diat it was created by the authors captured. Your mission is to eliminate all of Hybris, After talking for awhile, I ar­ Barraxian life forms from the planet's sur­ ranged for a review copy. InnerPrise Soft­ face and subtenanean levels to rescue your ware has a real winner here. This game has comrades! If you are successful, rescuing all the elements needed to satisfy die most your comrades you help to defeat the ardent arcade adventurer! Barrax Empire. The pictures and story at Battle Squadron starts out with a the beginning set the scene and can be short series of black and white pictures and bypassed with a click of die fire button. a story of the attack of the Barrax Empire. Battle Squadron is a one or wo It seems that die Earth defense forces must player game, at die start you can select your you to form “loops” in the pipeline. If you and read the code which appears under the double die number of pieces, and 100 can get the “flooz” to cross itself in the correct color. After the correct code is bonus points for getting die “flooz” to flow pipeline, additional points are awarded. entered (you get three tries), the main through pieces selected from alternating Any of the pieces above (except the cross) menu is revealed, allowing you to custom­ bins (and you thought plumbing was may appear as a "one-way valve"—mean­ ize die game. easy!). The two-player mode allows the ing that the “flooz” will stop if the piece is There are several different playing participants to place pieces both competi­ placed in die opposite direction of the modes. In the trainer mode, “flooz” travels tively and cooperatively—but eacb player pipeline flow. slowly, giving you time to study the level Some levels include “bonus” pieces. and place the pieces. “Flooz” speeds up in If you can get the “flooz” to flow through the basic mode, them, more points are awarded. Of particu­ but gameplay is lar interest are the reservoir pieces, which otherwise the slow the “flooz” temporarily (giving you a same. The expert chance to catch your breath!). As if life as a mode allows a plumber isn't hard enough, there are often player to choose obstacles (such as fire hydrants, broken pieces from two sidewalks, etc.) which prevent you from different pipe running die pipeline dirough diat space. bins. You select Lastly, if you place pieces on the “board” which bin the through which the “flooz” doesn't travel, next part will you lose points. come from by Pipe Dream is provided on one non- pressing the fire copy-protected disk. The manual encour­ button and mov­ ages you to make a backup copy and use ing the joystick that for game play. To start die game, insert in the direction the Pipe Dream disk at the Workbench of die bin you prompt. Although the disk is copyable, you want the next do need die code wheel to begin. Once the piece to come title screen is shown, the game displays a from. The advan­ Pipe Dream by LucasFilms Games picture and die name of a color. Using the tage of this is code wheel, you dial in the correct picture two-fold: you get Hi Quality Version Available on AMIGALAND.COM options such as joystick or mouse, one or is heavily armored and armed. If two players, etc. You can turn the music you destroy the ship, it will leave Battle Squadron from InnerPrise Software and sound effects off individually, but they a floating pod which when add alot to the excitement! When I first saw scooped up will eidier switch or this game it was playing on an A500 upgrade the current weapon. The hooked to a stereo, die sounds were in­ color of die pod is what deter­ credible! This game really uses die Amiga mines which weapon it will stereo sound to its fullest. There is over 30 upgrade. You have one addi­ minutes of true stereo, digitized sounds, tional weapon that is very useful and music in a special format that only in tight situations, the Nova Smart takes up about 38 K 011 die disk. Because Bomb. Nova Smart Bombs are of the special compression techniques, In- packed with terrific destructive nerPrlse is considering marketing a music power, eliminating all enemies editor using this format and plans to license near you. You start the game with the technology to other developers. three Nova Smart Bombs, but will Similar to Hybris, is an optional setup find floating capsules marked screen where you can adjust specific game widi an “M” that you can use to play features and difficulty. I like to setup increase you supply. die game with slosver enemies and die The instruction manual for maximum number oflives. That way I sur­ the game is fairly simple and straightfor­ simple, shoot everything in sight! There are vive a lot longer! ward. It gives all the essential information ground gun and missile emplacements to My favorite weapon is die Anti-Mat­ on weapons and options. It even includes watch out for in addition to the many dif­ ter Particle Beams (Blue weapon) when your orders from Headquarters! ferent attacking aircraft. upgraded, it will fire both forwards and Once things are setup and you start, Battle Squadron has a nice feature, backwards! There are 25 different weapon the action is fantastic. The screen scrolls with two players during level one, you can configurations. As you fight along your as­ smoothly in all four directions as you fly get killed and restart joining your comrade signed mission, you will run into a ship that your fighter. The basic idea of the game is again and again! If you get killed while still scores points only when flooz flows through pieces he or she has you press die fire button to go to the next level (this allows you to actually placed. Any combination of joystick/keyboard, mouse/ regain your composure after a particularly grueling ievd). Also, if joystick, etc. can be used in the two-player mode. Once you select die phone should ring while you’re playing, hitting the 'P' key wall the number of players and what input devices they’ll be using, you pause the game in mid-stride. can then specify the level at which you'd like to start by typing in Pipe Dream also has some drawbacks. Game graphics and the password for that level (you get the password by successfully sound ttre adequate but not spectacular, and die dieme music that completing the previous level). plays at the beginning of each level tends to grate on your nerves Pipe Dream is a well-thought-out action-strategv game. The aftera while. The documentation is also confusing at first. The main player must right against time in order to build a continuous manual is written for the Macintosh, and die screen dumps are from pipeline with the pieces available. If a piece has no immediate use. the Mac as well. The code wheel used for copy protection iias some the player must think ahead as to where the pipeline may go. rather generic symbols, while the Amiga uses graphics which differ Flexibility is also important, as players may find that drey have to from both the code wheel and die manual. Thus, it took a little bit reroute the pipeline in order to meet a specific goal of the level of time to decipher the codes when things didn’t look too much they're on. The two-player game is particularly interesdng, as each alike. The "Amiga specific” reference card also makes reference to player scores points for the amount of “flooz" that flows through "making a folder"—another carryover from the Mac. It would be his/her pieces. If players don't cooperate, die "flooz" won't flow nice to see at least a reference card which was truly written for die long enough, and both players will lose. On the odier hand, once Amiga. the "flooz" has flowed through the required number of pieces on Pipe Dream is not the type of game that you can’t put down, a level, both players are at each other’s throats trying to get the but the betier you do, die more you want to play. Game play is both ■’flooz" through dieir equipment. An interesting arrangement to say interesting and challenging. The two-player mode is great fun. 1 like the least! Pipe Dream, although it's not the type of game that blows your Pipe Dream has some other nice features. For instance, you socks off. Take a pipewrench to your local dealer and give Pipe can restart at almost any level desired. After eveiy four levels, a Dream a try. *AC* password is displayed on the screen. Enter that password the next time you play and the game bypasses earlier levels, returning you PIPE DREAM to the level at which you left off. You are encouraged to make a Lucosfilm Games backup copy to play die game; this is important because die game P.O. Box 10307 San Rafael. CA 94912 does store the high scores to disk. There are also two ways to pause (415)662-1902 the game. Once you have completed a level, the computer requires Price: $39.95 Inquiry #206 Hi Quality Version Available on AMIGALAND.COM on level one, you don't have to wait for your partner to die before missile emplacements not only have a feeling of depth, but down playing again! A quick click or two of the lire button puts you back below are more targets for you to destroy! in the action! Once you leave level one and proceed into the sub­ The Graphics uses 32 colors, with vertical and horizontal terranean levels (level two and onward), dead is dead, you have to scrolling that is die smoothest of any game I have played. With over wait till your partner dies before joining in again. 30 different enemies to worry about, you rarely have time to rest. You start out on the planet’s surface fighting your way to the In some situations, you may have as many as 70 objects on die entrance to the next level. The entrance to the second level is well screen at the same time! The game has several levels of different marked and takes you inside the planet where you come up against sceneiy with each containing more deadly enemies to attack. You a wide variety of creatures. These creatures are all out to end your actually have a choice at the end of level one, you can bypass the mission in a ball of flames! At the end of the second level you return passage into the next level and continue on to see more of the first to die upper surface for the third level. Again fight your way to the level. Once you leave the first level and then get killed, your game fourth level entrance and go down to face more of the planets crea­ is over. The game allows play with botli the mouse and a tures. You alternate above and below the surface with things joystick(my preference). getting more and more difficult at each level. Eventually, you reach The game is great, well -worth the suggested retail price of die end of what seems like an impossible mission for one last battle. $39-95- Battle Squadron runs on any Amiga and only requires 512K. If you succeed, you are declared a hero and have rescued your An update is planned with additional sound capabilities that will comrades. It isn't easy at all to get thru the different levels, I died only be available if you have 1 meg or more of memory. The game many a time. I did finally make it tliru to the very end (I had the help comes on a copy protected disk. of a magic word diat makes you invincible). Widiout the help, i If you enjoy a fast paced shoot-em-up arcade type game don't think my reflexes are fast enough to defeat die Barraxian Battle Squadron is the game for you! *AC* Empire! Maybe you can succeed -where I failed! 1 had a lot of fun with diis game of fast action, super grapliics, BATTLE SQUADRON and superior sound. From an enjoyment standpoint this game is the InnerPrise Software. Inc best I’ve seen. The Graphic images for the ground emplacements 128 Cockeysville Road have a 3-D effect that has to lie seen. The pyramid shaped gun and Hunt Valley. MD 21030 (301) 785-2266 Price $39.95 Inquiry #205 (Listingsfor "Convergence",page 41} Listing Two

Listing One------LISTING r2, Calculate subroutine for Mandelbrot set, AmiagBAS’

LISTING *1, Drawing circles using convergence, AmigaEASIC Calculate: x « 0 REM y = 0 KEM * Program to test for convergence k = 0 REM * by Paul Castonguay r = 0 REM * December 13, 1933 WHILE r<=M AND k

SCREEN 1, 640, 200, 4, 2 LISTING 13, Modified Mandelrot subroutine, AaiigaBASIC WINDOW 2, , (0,0)- (631,186}, 0, 1 Calculate: Crunch “ 500 x *= 0 M - 4 y = 0 CLS k = 0 xk = 0 LOCATE 10, 23 r = 0 PRINT "... Pattern is beir.g generated ..." WHILE r

WHILEHi Quality Version Available on AMIGALAND.COM INKEYS <> CHRS(13S) listing Four ------WEND

WINDOW CLOSE 2 LISTING #4, Listing to draw figure 42 SCREEN CLOSE 1 REM END HEM * Sixteen Color Fractal HEM * by Paul Castonguay Rjjj I*****.****.**,.***..****..,,**.***,,,.,,,,.,,.,,,....,, C a l c u l a t e : r = i* i * j«j DEF FNx(x) = INT(((x-xmin)+dx/2)/dx) k = 0 DEF FNy(y) = (Vertical.Pixels - 51 - I N K ((y-yrain)+dy/2)/dy) WHILE r<=M AND k

Select.Color: Vertical.Pixels = 400 IF k -* Crunch THEN COLOR 2 dx ** (xmax-xmin] /631 ELSEIF k>= 11 THE) COLOR I IF Vertical.Pixels *> 200 THEN ELSEIF k>= 5 THEN dy = {ymax-ymin)/195 COLOR 12 SCREEN 1, 640, 200, 4, 2 ELSEIF k=4 THEN WINDOW 2, , (0,01-(631,186), 0, 1 C OLOR 11 ELSEIF Vertical.Pixels = 400 THEN ELSEIF k=3 THEN dy = (ymax-vmin)/395 COLOR 10 SCREEN 1, 640, 400, 4, 4 ELSEIF k=2 THEN WINDOW 2, , (0, 0)-(631, 386), 0, 1 COLOR 9 ELSE ELSEIF k=l THEN PRINT "Set Vertical.Pixels to 200 or 400" COLOR 8 GOTO Done ELSE END IF COLOR 0 END IF GOSuB Choose.Color.Numbers RETURN GOSUB Use.New.Colors Crunch = BOO COLOR 0 END IF CLS RETURN

LOCATE 1C, 23 Choose.Color.Numbers: PRINT "... Fractal is being generated ..." LOCATE 10,20 p r i n t "... Please wait while I adjust colors FOR j=ymin TC ymax+dy/2 STEP dy Reg.0.Red = 0 FOR i = xmin TO xraax+dx/2 STEP dx Reg.0.Green = 0 GOSUB Calculate R e g . 0.Blue = 0 GOSUB Select.Color R e g . 1.Red - 15 PSET (FNX(i),FNy(j)) R e g .1 .Green ~ 15 IF INKEY5 " CKRS(138! THEN C-OTO Done R e g . 1.Blue = 15 NEXT i Reg.2.Red = 15 NEXT j Reg . 2.Green = 15 Reg.2.Blue - 0 REM Wait for operator to press function key [F-1Q) R eg.l.Red = 11 WHILE INKEYS <> CHRS(138) R e g . 3.Green - 15 WEND Reg.3.31ue = 0 Reg.-I. Red = 11 Done: Reg.l.Green = 13 WINDOW CLOSE 2 Reg.l.Blue = 6 SCREEN CLOSE 1 R e g . 5.Red = 12 Reg.5.Green •= 11 END Reg.5.Blue = 3 Reg.6.Red *> 12 R e g .6 .Green - 6 C a l c ulate: Reg.6.Blue = 0 x = 0 Reg.7.Red ■» 13 y = 0 Reg.7.Green = 6 k = 0 Reg.7.Blue = 0 xk =* 0 Reg.S.Red = 14 yk = 0 R e g . 8.Green = 4 r = 0 R e g . 8.Blue = 0 WHILE r<=M AND k Reg.10.Red = 3 y = yk Reg.10.Green = 9 k - k-1 Reg. 10.Blue = 13 Re g . 11.Red = 2 WENDHi Quality Version Available on AMIGALAND.COMReg.11,Green = 9 RETURN Reg.11.Blue =12 Reg.12.Red = 0 Select.Color: Reg.12.Green = 9 IF k = Crunch THEN R e g . 12.Blue = 11 COLOR 0 Reg.13.Red = 3 ELSEIF k>=l00 THEN Reg.13.Green - 9 COLOR 1 R e g . 13.Blue = 10 ELSEIF k>=31 THEN Reg.14.Red = 4 COLOR 2 R e g .1 4 .Green - 9 Reg.14.Elue = 9 COLOR 3 Reg.15.Red = 0 ELSEIF k>=21 THEN Reg.15.Green = 9 COLOR 4 Reg.15.Blue = 9 ELSEIF k>=l8 THEN RETURN COLOR 5 ELSEIF k>=16 THEN Use.Hew.Colors: COLOR 6 PALETTE 0 , Reg.0.Aed/16, Reg.O ,Green/16, Reg.O.Blue/16 PALETTE Reg,1.Red/16, Reg.l ■Green/16, Reg,1.31ue/16 CO LOR 1 PALETTE 2, Reg.2.Red/16, Reg.2 ,Green/16, Reg.2.Blue/16 PALETTE 3, R e g .3 .Red/16, R e g . 3 .Green/16, Reg,3.31ue/16 CO LOP. S PALETTE 4, Reg,4.Red/16, Reg.4 .Green/16, Reg,4.31u=/I6 ELSEIF k»10 THEN PALETTE 5, Reg.5.Red/16, Reg.5 ,Green/16, Reg.5.Blue/16 COLOR 9 PALETTE 6, R e g .6.R e d / 1 6 , R e g . 6 ,Green/16, Reg.6.Blue/16 ELSEIF k-9 THEN PALETTE ", Reg.7.Red/16, Reg.7 ,Green/16, Reg.7.Blue/16 COLOR 10 PALETTE 8, Reg.8.Red/16, Reg.8 . Green/16, R e g .S .51 re/16 PALETTE 9, Reg.9.Red/16, Reg.9 .Greenilo, Reg.9.Blue/16 COLOR 11 PALETTE 10, Reg.10.Red/16, Reg . 10 .Green/1 6, Reg.10.Blue/16 PALETTE 11, Reg.11.Red/16, Reg .11.Green/1 6, Reg.11.Blue/1 6 COLOR 12 PALETTE 12, R e g .1 2 ,Re d / 16, Reg .12.Green/1 6, Reg.12,slue/16 ELSEIF k=6 THEN PALETTE 13, Reg.13.Red/16, Reg .13.Green/1 Reg. 1u.Blue/1 6 COLOR 13 PALETTE 14, R e g .1 4 ,Red/16, Reg .14.Green/1 6, Reg.14.31ue/16 ELSEIF k=5 THEN PALETTE 15, Reg.15.Red/16, Reg ,15-Green/i 6, Reg.15.Slue/16 COLOR 11 RETURN

COLOR 15 ELSE •AC- The Fred Fish Collection

more. Thisi5versionV24'01a,anupda!eloFF!76. Fred Fish Disk 323 three weeks programming 4 debugging it. In ths Due lo the increasing size of the Fred Fish B ria ^ only. Author G fe™ E ’/erhan M crToofeThree tools that manipulate The c d a s of your screen. program R ail uses s e r e very delicate treks to let Hames Some .miscellaneous program.s from Chris Hames. Collection, oniy the latest disks are Binary oniy. Author Deter Bans h s h iem ipi routine work with totiAbon aterts. D rWork V1.01 is a fast, small, simple effidert CZEd A complete micti package tor use with afl Casio CZ Version III. binary only. Author; RallTharmer represented here. For a complete list ol all D-.rUtility. FSDire V1.3 is a floppy accelerator synthesizers. Contains a M l fledged sound editor, a RexxHostlib This is a shared i&rary package to simplify program. VMK 727 is a sm^l vires detector killer AC, AMICUS, and Fred Fish Disks, split simulator for CZ-10N100&230S, a bank loader the Aflexx host creatiorVmanagement ptocedure. that knows a t a t 27 dillerent viruses and car detect cataloged and cross-referenced lor your and a memory dump lor CZ-i. T h s is a formerly Retx message parsing is also rnd Jded making it new ones, N o W oV l.O stops programs from commercial package now released as shareware. pcsstofe to control Aflexx bom program s such as convenience, please consult the current producing' jnlo’ Res. Binaries only. Autoor: Chris Binary onfy. Aulhor: Oliver Wagner AmigaBASIC (can you imagine Am igaBASIC AC's Guide To The Commodore Amiga UnkSound Two examples of functions that you can ink with your controlling Am igaTeX?). Includes source. Author Hames RoadRoute A trip planner toat takes a list of cities and a own code to produce a short musical 'beep* or a sound OiaiBarthei available at your local Ama2ing Dealer. fist of known rou'es between cities, a id generates that is sim lar to striking a drum, Includes scu ce . Fred Fish Pi S.U2S toe ^stance and im e req>Jred tc reach your Author Dieter Bruns CBDump This is a C L I trtJriy for toose who are working with destination. An update to F F 251. with an expanded Show A very versatte program to display IF F 1LBM files. the Amiga's clipboard device, it's sde purpose in dalebase of ones and roads lor New Mexico, Texas, Erpri fis h Disk H?0 Features realtime unpacking scroll, smart a n aly st ol life is to dump the current contents cf the clipboard ArmgaTrekA continuation c? M te 's Am ga Trek stories, which Oklahoma. Kansas. Nebraska, South Dakota, any IF F tile, total control over display modes, simple to stdout or by redirection to a pipe or a fie . Useful Louisiana, Arkansas. Missouri. Colorado and are parodies ol the Star Trek series, with an Amiga slideshow process-ng, patten matching, and a dozen lor testing and interfacing with programs that do net flavor. E a rie r stories are on cfisk 278. Author Mfte Mississippi, s ite d by Fred M ayes and Gary Ddzor. other options. OnlySK. Vers-cniO.bfiaryeffy. suppcto toe clipboard. Source inducted. 3y; induces sourae. B y: J.m Butterfetd, Fred Mayes. Smiffiwick Author. Sebasbano Vigra Stephen VermeiAen. Am-Omega Amiga pod of the Omega game. Omega is DispMod One c l too series ol R 0 8 B S (Rexx Object Building Gary DeZer FrftL5sfiDisU2iA similar lo hack cr rogue, but is much more complex. This Fred Fish D sk is offered a s an abridged disk until Fred can Block System ) modules by Larry Phillips. DispMod Fredfi5lLDifi.y23 There is a city, several lowns. a wilderness, lots ol createa replacement disk- One program has been is a dsplay module that oniy understands Aflexx C PU Two programs, ene in C and one in assembler, dungeons. a rraJfeude cf monsters, k&s o! sp e s. which d e c k for C PU type. This verster. can detect removed from this d sk due to ccpynghl problems. messages t! al'ew s. under program control, toe magic items, e x . There are several quests lo 6S » Q , 63010.63020. and 68831 processors. A N SIEd Derrc version ol an A N SI screen fife ecdor. Hallows cSsptey of text and toe acceptance of keyboard cccnpiete. All in a J. it is an exce'fent game Includes source. Author; Ethan Dicks, based on you to easily create and modify a screen of ANSI-styte data. Version0.11. includes sourra. Author. Larry Requres 1 Mb or more of memory. Amiga version led/graphics on the Amiga. The standard A N SI color Phillips W haiC PU by Dave Haynie 1.0 .binary only. Author: Laurence Brothers. Amiga DiSkSpeedA d«sk speed testing program sp ecifcaiy desgneri set (red. green, yellow, blue, magenta, cyan, white) and ftb T h s propam convert s an icon to an IF F pe Schaefer through a modem, Tins is vetsteo IJW w , an update conta n conditionals, and creating relative console enhancements tor D PFFT include addifon of a Fast PopScreen A small hack to pop a hidden screen to toe to FF118, and includes many changes 2nd windows. Includes a utility called AtaU which Fourier Transform (F F T ), dbplay o l a customized from from toe CUL T h s was written to allow toe enhancements. B in ary. B y: Chris Gray, Davd attaches c r detaches a script tolrom an icon lie . amplitude and phase spectrum. a prewhrten’ng author to use VLTjr with ether programs that also Wright. Peter Langston Version 1,0. induces source m JFo rth . B y : R ch capabiriy, and a Welch window tor spectral smooching use custom screens. Source included- Author FileSystem s Distfa ys AmigaCXJS tSsk de-vces wrto Franzen This is version 2.1. binary only, Autfior: A A Walma Stephen Vermeuten. information abou- toe head geometiy, BufMemType, its An Iterated Function System viewer which Mailchk A mail client lor Dnet, which wifi inform you of any new Snap A tod for clipping tert or graphics from the screen, and ihe lower level exec device. Includes source. Hi Quality Version Available on AMIGALAND.COMgraphically displays iterated function systems and Author: EthanDcks maJ and wilf give the choice of viewing, deleting, or using toe clipboard device. Snap finds out allows the user to interactively create the a fin e printing a message. Version 2 01, includes source. character coord rates automatical)1, handles OnePtane Removes toe h g ie st number btplane Irom toe functions Ptal define such systems. An IP S can Author; Stephans U n x h e dftftrem b r a , keymaps, accented ^ aracters. and WcxkBench saeen, Normally used to take represent complex pictures very ccnpacdy. Simpfe Fred Fish Piik 325 more. V l.a , an update to FF27A Includes source. Workbench screen Irom 2 b tyianes to 1 bilpiane. iF S s can describe an infinite number of different and Baichman A program that allows the user to execute CLI By; MkaelKarlsson This allows CON: st^e devices to scroJf text faster. interesting Irama; displays, includes a number of programs and batch files simpfy by cScking on a VS,nap This is an enhanced version ol Snap 1 -3„ submitted Indudes source Author: Ethan Dicks dsplays that the author and others have discovered. gadget. It can be used as the center of a tunkey by Stere Vermeuien. w tirtt adds toe a bJity to save EEam sflDisxaa Verson l i . indudes source in C . Author. Glen system, where the user Ssmp'y dicks on gadgets to tfpped graphics a s IF F FORM lLBM "sto toe Mcstra A very versatile p’ogra.m to cksplay IF F IL3M ffes. Fi/tin er launch applications. Version 1.1, includes source in clipboard, so toey can be imported to ether Features realtime unpacking sao fl. smart analysis Planets Som e routines ported to the Amiga by Bob Ldvian. ModJa-lt. By: Mchal Todorcvic programs that understand IF F and too clipboard. ol any IF F file, tout control over display modes, that compute the location ol the planets (a s viewed DC feck A ‘Durti b Clock’ utility that displays the date and time in Dubbed it VSnap, since the o lftia l 1.4 Snap is also simple slideshow processing, pattern maichino, and from a specific point on the earth! and the phase of the Workbench screen title bar. Uses only about 2 included cn this disk, tockictes s a irte . By: Mikael a dozen ether optons. Oniy U K . This is verecn the moon, for an arbitrary date and time. Indudes percent o! the C PU time and about 10Kb ol memory. Karisson. enhancements By Steve Vermeuien 1.0, an upgrade to to# Show program on disk 323, source. Author Keith Brandt V III, Jim Cobb. F. T. Also has an alarm dock feature artt audble beep lor FlrtFlshlM&Z and adds SHAM , double buffering, fap.er Mendenhal, Wan Paefh. Petri Latmmen, Bob programs that calf DisplaySeep, This is version 1.12, ARTM ARTM (Amiga Rea) Time Monitof) displays and decompresson. color cycling. TeXdocs. startup files Leivan an update to version 1.5 cn disk 298, with many ccntrois system activity such as tasks, windows, for easy customizng. and complete Wcrk3ench Turtle A shared Itbrary cf tu rtle ' functions for drawing in a enhancements and a few bug fixes. Includes Source. libraries, devices, resources, ports, residents, support through ToofTypes and Style icons. Bnary flastflo n. indudes source in assembly and C Author Ota? Sartoel in tero p s, vectors, memory, mounts, assigns, loots only. By: Sebastiano Vigna Author: Thomas Albers DcRevision T h s program implements easy creation ol and hte'dware. Includes both a PA L and an NTSC ^atese A tod which allows you to change another UnixOrs A program w fich intercepts calls to dos.library to source code revision headers (very similar to the log version. Ths is version 1.0. an update to version program’s custom screen colors. T h s is version add the UNIX style'.' and syntax for current and headers lo be found al Ihe top ol too Amiga ’C include 0.9 on disk 277. Binary only, A u to r; Diotmar 1.1. an update to toe version on disk 55. New parent directories, respectively, to tile and path tie s). Version 1.0, indudes source. Author Ola! Jansen and F . J . Mertens featores indude checks for WorkBoncri startups, names I.E.,youcanrefef toftesrthea/rem Bartoel MM. AnimpementaticnottoegameUasterm rd. intos checks for HAM. Half Bnte. or more than five tfrectory as ’/too' and fifes m toe parent R e cto ry as FAM A Fife Access Manager tor the Amiga P a l slow s gam# you must try to guess a cdor combiraton b p ian es, and more g racefii exits, includes source ■ Jtoo '.orany combination of the two. tndudes multiple Aflexx programs to access a buffered verson which n e amiga sets via a random generator. in assembly. Author: Randy Jcuett, C J Frege, Source in assem by. Author; Murray Bennett and cf a directory in a consistent and serialized manner. I There are 6 colors which can be set in any Carolyn Scheqpner, Charlie Heato MarkCyster buffers ait the names, dates, sizes and so on. for quick combination, Inckxtes source. Author; Dietmar V1100 AvtlOO emulator fcr toe Amiga, which also supports Whereis A x th e r ‘ End-that-fife' utility. W hereis searches on access. Version 1.1 w ill source. B y: Darren New Jansen various fie transfer protocols ik e term s, xmodera. your (hard-)cSsk for a B yn am e ) and displays tie FarPrinj Debugging funchons tor programs wtech don't have MRBackUp AharddiskhackuputiSTytoaidoesafife By yrr.odem, zmoderr. etc. has an Arexx pert, can use petit to fia t fie . Some features are case any links lo toes’ environment FarPm t consists of two He copy to standard Am igaDOS floppy tksks, custom external protocol modules, and more. This independent search, wildcards, interactive mode {cd major parts; a harbour process open to receive and Includes an ritution interface and fife compression. is version 2.9a. an update to verson 2.9 on ng K a ra ! eum pte crog.ra.rn, wto sx re e . toat d em crstrates« A g rw to e a sly swr.m between PA L and NTSC dspay r.egaaiast whsJe you are w x rg a b crrg essay. Sheet use. Aubxr: Dssxtentj Software modes Version l.Q .irtoudes source in assemNy. art/Ttng that moves, and t i doesni more, shoot it K eytoa'd Fa ctio n s to translate RAW KEY Lhtusbcn messages n » D sEdtor This is a demo cf toe d ss dents shareware text ed tor. Author. Vico Frax crS anyway. V1.00. bnary only. By: Anderj Bjern usabte keyatees, Trar^iaaon into Mod-Ja-S of C source Verscn 1.1. binary orty. Autoor: D.ssderts Sortwaio P atM o a d S e g T h s program patohes me toadseg rouble to Sys Agame buitonmeadictvegamePONGObuiwth (by F a t6 a .i G 0 ^ » , in) on d$k 291. Version 1 jQ. D-sSeceury This program can be used to fife mformation r autornaacaty d e e r firk .ru se s *n en a program is severi added features Youhaiebeerias&grvedme indudes so i/te. Autoor Fab&an G . Dufoe I" . Peter a “Tife cabttet' hype envinnmenL 5 e we" sated fa Joaded O spiays an alen when a w u s is detected in a OemantfTj task of cteanrg vvuses from your SY SO P 'S Graham Evans jobs such as m a n arin g a cSSt cata'og. or user group program beng toaded lo re a e cu tca Version t ,20. hard t s>._ To toll a vars. you srr.py took a risk at ft. RKMCcmparoon A two disk set of materaf Gteaied by Commodore membership, etc. included is a data f ie cf toe fitrary includes source. Authcr; Piete: van Leuven Thera are filly cSffereirt levefs, and on each level, the for use with the 13 revison cf the Amiga RDM Kernel catalog, disks 1 lo 310. Version ’Wanda*, bna7 ony V iru sJals Two programs to detect viruses on risk and in rr*rr viruses in memory Start to hunt you V2,10. b rw y ony By, Anders B,«nn Addson-Wesey. Almost 300 files, in d uin g C sou’ce FifeiO Contains updated fi'es ter versten 1 6 of the c e d e n ts Viruskfld removes a l known viruses in memory and Eiidfish p.ijji 137 code examples and eiecutabtes. have been packed into requester fibrary. There s a bug fu 10 the fibrary as after removing the viruses the disks can be checked C Manual A ccnp lele C manual for Jhe Amiga wfuch describes two hare archives, one for each disk of the two disk set. wef: as a r.ew function. See FF257 f a the compete without the virus copying itself to the disks. Version 3.60. how to open and work with screens, windows, graphics, These exampes are not public domain, but may be used documentation, arte examples. By; Dissidents binary only. Author Pieter van Leuven gadgats. requesters, alerts, menus. IDCMP, sprites, etc. and dsinbotod under the conditions specfed in toe Software Fred F is fiP is k Ui The n a rta ] conssts of more than 203 pages in i 1 copyrights Author Commodore Business Machines, toe. iLBM Lb Cortams updated fi’e s fa toe d s s d a ts fibra^ cn AniPtrs Some w e animated p orters i have adocted one cf chapters, iogemer r b mere than 70 W y eiecutabte F rtd F ts h Disk 345 FF237. wch new Lb Searaes and a rew Ltrary Afso then as my permanert replacement tor the bcm g red examples w th source code. When trpacked. me CRobots A gar.e based on computer programrrsg.U-^ke arcade me.ucted is a much improved (better o g a a ze d l doc arrow. B-nary onfy. Autoor: Bob McKam manual and ettm pfes nearly fil up trv w standard Amiga type garn.es wfxh require human mput contrblmg seme He. and new C exampes toat show how to use toe DevPatch ApitigramthaTinsatisapatontorOperWrvdc^tocheck ftoppes.Thisis verston i .00 and ndudes soutoeforal obrect. at strategy m CRobcfS is condensed mto a C I-brary f a any knd of IF F fife. Se e FF23 " ? a otoer the ffewVAreJcw i t u u e . if the r te m a th n a sp ecfc examples. Author A d n B;em language program toat you design and wnte, to cortrcJ a t o n n e s Author. Dissidents Software String. t ie h e g ft w-rt ;e fa ce d to 45 p ie ts . Ths ffeps to FrcdFiihCir t ttg robot whose m s s io iis to seek outi ra c k and destroy MSJaTLibs A program to copy fJes to toe U B S d r of a boot ds*. recuce chip memory usage lor programs mat open Cpq This s a copy Cl the Deems cpp. ported to me Am.ga otoer robots, each ruovng different programs A J robots Can be used to create a handy r ,s a pa tix program overly large wridcws and then seldom use them. This cpp is more powertu! and complete than either of are equally coupped. and up to tour may compete at (hard d sks especially) for programs that need dsk- incrudes source. Author Jo n t Tyberghen, Nco the burt m epo s in Manx cr U r x e C. This is an update cnce. Ths is version 2.2w, a t update to FF331. Binary ba sed libraries, to ^ jje s sdurce. By: D s s d e t ; Fraxcrs. P. Warivoet to me le r s c r cn disk 29 ,1 has had some A N S! featues onfy. source arailabte Irom autoor. Author Tcm Software Helper A W e 'nputEverrt hade, activated via the H EL3 key, aPded. Includes s au c e. B y; W arn V now. Otef Seibert Poindexier. Amiga verson by Davto W n g fl SA M ? An IF F sampled sound torma: designed fa Ohginaity mean* to provide a unique method of g^ng SASToois VancuS submtssiors from *S-Ck Amiga Soft*. Irxdudes Du Pnnts nt/Tibe1 ol d s c bocks used in selected lie s or profess,-onal muse use. It can be used l a i 6-t*T the user help (you dor t havo la put that h^p slulf into some virus tods, some screen hacks, some small directories. Modified bom original version on disk 48 to samples, multiple waveforms, etc includes a SAM P your own p'ogram). New also contains a color requester games, and miscellaneous utilities, inctodes source in make output more readable, and handle "C exit, includes reader tenter shared library, interface routines, anti and a sma1'notepad. Version i.O i. includes source. assemoy and ModutaTi Author Jorg S *i soutee By: Joe Muetef,enhancements by Gaw Duncan programming examples Aiso includes 3 program to Author: U cftae! Balza' S O A vt-'y e n p re rte rs i.e drEctory uclty tor n e Am.ga r u : Get .mage An enhanced vers.cn cf ‘gi* from ask 14 t new looks for ccrvert BSVX to SA M P. Author: DuwJerrts Software K 1 _Ed i!a An editor !cr the Kaw a K i(m ) sy rto e s je r wito two supports s i least a coupe of dozen ftffao n ! commands tne G RA B marker, in the brush N e. instead of assuring Frttfritf.0a.KJfl auxilfery programs fee managing sound dumps. Thus is for operating cn files, V erscn i .05. binary only. Author: that it is at a specific place, sets up the PU nePidt value n MED AmuSlC«^citw^^llch!ikeSountiTracke., A scng version 1.00, shareware, indudes sc-jrce. Author: H o n Martin toe Image structure, and dfeetes any im e d btcfanes to ca n ssb of uo to 50 blocks of music, wh'Ch c a " be Mc-aei Batrer Frctf Fish P M a S save memory and d$k space includes s o rc e Authcr played m err/ o d a Edfeng features inckitie cut paste K ry p y a sraal, smpte and ccrafortafete fife encoder Decoder. PCQ A freefy reosrix-t^e. se« compfcng. Patcai ccrpier Mke Famen, enbancererss by Chwx Brand ccqy b&tos cr x c s , c•na.'cng toe .lo ato tempo. Verson 1 C. inetafes source Author Mcnaei Baler fgr the Am ga, The onfy major toatore d Pascal T a t is MemFrag Displays rur per cf memory tfv n k s »zes to show cresceridQ, and note vo o n e Ore' features ircute R w Bu t Another InputEvent hack, giving you a toggling right nctim p'enem edissots Tims is vw scn M e . an update memory fragmentation. Chunks are dspiayed as 2 "N switching cf the low-pass-fiiter on a o l on a per song mouse button Verson i ,o, includes source Author: to vtrso r. 1.0 on 1 ismuch enhaix^d and bytes wtxch i i a rcxugn gutee fx.1 s * J u s e fJ. Th-i n an basts, and a cute kite animated p o rte r of a guy Oorg Michael Baker about to u bmes farter Ixtodes toe compter w u c e and enhanced vxrs-on cf 'Frags* from dsk 69. todudes ■jLnp-n; ;acks* n tim e ti: to e r.u s c 1 V a s « n 2 00, an EadfMUBttaa example programs Authcr’ Patrick ^ a d source By; M *e Meyter. enlargem ents by G a y D jx a n, update a v tr s c r T.12 on FF255 Now -ndudes f j: M u rtP a A p a ra g e tor making 2D plots ccrr.-erw xy. Tin FreflFii?!PiaKM Q Roses A program r a t Craws sine roses, tirpiements an source. Autoor Te^o K m n e n Mooney wrote the original program, w itch was then NorthC A compfete fteeiy rafistnbutobfe C environment for the atgorihm grren in toe article 'A Rose is a Rose by EffitflStLDaKaa enhanced by Alan B aite r with a nicer user interface, Am ga based on me Sozcbon L d C compiler. Chartie Peter M. Maurer in American Mathematical Monthly. Vol Icons A large variety of icons l a many uses, of practically support for the P L T : device, and supoort for fite conver­ G ib 's assembler, the Sohware D stilery's Inker, and & i. No. 7 .1937. p 631. A sine rose is a graph cf the polar every description. Most are animated. By B r a ie y Vi. sions. Rich Charrpeaux and Jm Mi Ter wrote toe PLT: p c o x s from o n er sources. Steve has puled everything equation *r - tn fn ’ d)* for vanous values d n and d Scrienck handler when emulates a plotter by accepting H P-G l together and added some enhancements in toe process Author. Carmen M u o Mem Mometer a program that opens a narrow window and commands, creating a raster m age, then dumpngit to Version 1.0, partial source only. By: Stove HawBn, c t al. Unshar This prograrr extracts fifes from Urtx shat a 'ch ve s. It graphically displays your memory usage Ike a gauge. Hi Quality Version Available on AMIGALAND.COMPipfot A library of C functions useful tor scientific ptoning on tne scoresovcf itm lar programs by bemg smal a,id fasti Based on W Frags, by Tomas R o k jck Version 2.10, any preferences supported graphics printer, T M ij verson XLNb. an update to FF2S2. and npudes many Amiga. The lir a iy ts Lattce C COmpatfite Contour handing ertraew n of suWkrectorfes. recogajing a wide :ndudes source Author. Howard Hul bug fiie s. Style changes, and enhancer erts. Indudes ptortng, three dm ertsioral ptottng, u s tede'nxn. log- >ar«ty cf seT and ca r r tw fe rra ts . and handbig large Stiitoery Ths shareware program taadi un IF F m ages and source. Authcr A ^r. B aiter. Tim M ooney,Rde up to 640x299 p ie ls m size (also dual render), ft can set well known 'Lo adW B' and *EndCU* command pair. This aware ol any violation of me authors' wishes, pease v a r t y c l f.'e types (executables. F F . cons. :o o Hes. stack se e . p c s tc n U to cn iatso free-Toaang), defaUt release fixes a se.rere bug n toe frst verscn wff.ch used etc), but prints interesting reformation about the structure tod. 10 tool types and control over opened wndow. rt la guru if run out of a s a p : Incfudas source n C . Authcr. contact us by mail. or contents of the recognized file types Version 12a. can also generato the C source code boh md the icon tor Oliver Wagnw binary onfy. Author: J . T ybergfxfm program inctosion Version 1.0, binary only, source PacketSupport A Inx library, tor use with Lattice C. providing a IMPORTANT NOTICE! a r a b le from author Autoor Peter Kiem few functiora to handte DOS packet postage. Indudes EfriRihPiiKM i Th s list is compiled and published as a service to the BongDemc Demo 'rersionpfa neat game due lor reease in SKsh A ksh-lke shell for toe Amiga. Some of its features source. Authcr: Of.ver Wagner Commodore Amiga community for informational March 1590 ftis f Jly fiA rto n al but the piay time is LXiude command substtw on. shei tuvrjo ns with PatchNTSC O S fix la alicw the growtog number c f PA L dspiay purposes only. Its use is restricted to non-commeical limited to fwe minutes per play. Verston 0 30. binary parameters, aliases, local variables, o ca] functions, local programs to be run on NTS C machines. W JI p ald i the only. Author: Kevin Kdm, Alternate Realities aliases, powerful control stnjctues and tests, emacs im xtcn OpenScreenf) function to assure screens wth groups only! Any duplication for commercial purposes DTC AutLtyprcw-xSnga £impiecatenda'WFhke D e lu ctPan !) and Aurcsr: Mrtch W yie, A r.g a port by G le rr Evertan Any non-commercial Amiga user group wishing to du­ SeeHear A progran to do a soecrogram c? a sampled sot/id fua. commands, sm aler and faster erte'n ai ccmmands, and much more 6 nary only, iha.rewa.te- ByrO tver W agn^ plicate this list should contact: Ttvs is a graph with time on one axis, frequency on tne m oe. Binary only. Autoor: Stere Koren T m etefl Working example to show toetirreO anc gm tn)e() other and the sound inserts 1y at each point determining Sbftfoni Ccoverts ponrat soft k m for H P LaserJei compatible functons or the Laltice C support library, indudes sw ree PiW Publications, inc. L ie pixel color With source m C, inducing FFT ro-Tre. Laser printers to landscape lorm ai Tr*s rs an update to in C. Autoor: Oliver Wagner P.O.Box 869 Ths is verscn 1.1. Author: Da.hef T. Jch n sw i FF327, Inc'udes sou se Author: Thcrras Lynch W 8 D Po ssbiy th jsm ale s! uWdy to set the wcrVbench screen Fall River, MA 02722 EredHatiPiai33a to any depth Includes source m C. S y : D-ver Wagner Car A Mvo-dflienstonal fjH screen scrolling racng game with SnakePit A simple, yet addictive game m whch you must get toe FttdHahPiam realistic four channel stereo sound and overscan, tor snake (you) off o! the screen. There are. however, some Cursor A 3-pass BASIC Compiler lor B A SIC programs written in PiM Publications Inc. is extremely interested in helping ether NTSC or P A L Am igas. The goal s to guide you* rough spots and some obstacles that may need to be Am igaBASC , does net yet SuppCrt ait t f toe B A S C any Am ga user groups in ron-commercial support for car around ere c f te r s^ e ce d tracks. Each trac* has its c v e w n e . E xceTert e lamps© cf a game toat is as commands but u able to compile itself. This is verscn th e Am .9 a, individual n*gn score E s i Version 2 0 , bnary crty. system trendy as possble(*rtfi scucs/. By: Mchaef 1 0. r c ir t e i source. Autocr: Jurgen Fa ste r Author Anders Sysnn Sn z (continued from page 50) Saxon Publisher Makes Its Imprint! S axon In d u stries demonstrated their first Amiga entry— the next few months. Treasure Trap is an undersea treasure hunt Saxon Publisher ($450), an Amiga professional desktop through multiple puzzles ($39.95). Tennis Cup is a simulated tennis publishing package. Saxon's documentation describes Saxon competition played on a variety of surfaces against 32 seeded players Publisher as being“... based on a more structured system of style text ($39-95). XIPHOS is a combination flight simulator and arcade action and tagging, in which elements of a document are given identifying game due in mid-summer ($39.95). There is also Black Gold, billed as names which can be stored for later retrieval, When creating a new a game of “Sabotage, Speculation and Strategy in the Oil Industry,” it document, you can draw on any work that you've done before, and should be available bv mid-summer ($39.95). can reformat entire paragraphs with a click of the mouse button." Representatives from Accolade were exhibiting three new This system allows a user to give a name to a particular style, Amiga contributions, Blue Angels (a simulation of the famous including font, font sizes, and position, and then recall that style by precision flight group), Day o f T he V iper (a multilevel sci-fi action name as needed. In the same way, a user may recall pages, text, bit­ puzzie), and Harmony (a cool and thoughtful new turn in maps, boxes, and structured drawings used in other documents. entertainment technology). Accolade now has over 40 games or AccordingHi Quality Version Available on AMIGALAND.COM to the documentation provided by Saxon, auxiliary disks for the Amiga. additional features of Saxon Publisher include: artificial intelligence Electronic Arts showed 688 Attack Sub (a wartime submarine routines for improved resolution of output, professional four-color simulator) and the Indianajones titles. EAwas also providing a look separations (including full trapping and under color removal), at their new versions of DeluxePaint EQ and DeluxeVideo III. bitmapped textures on text and structured drawings, vertical Media Tech&BethesdaSoftworks, creators ofWayne Gretzky justification and drop caps, text sizes over 8000 points, non- Hockey, combined to show the new Dragon’s Lair: Escape front rectangular lext boxes, and the ability to directly import 24-bit Singe’s Castle with all the great graphics which has made Dragon’s images without the need for conversion utilities. Lair such a hit on the Amiga. When asked about the attention Saxon was receiving from Another great graphics entertainer is Spectrum HoloByte. attendees, Haris Majered, Saxon’s President, responded, “Many Spectrum was demonstrating the ever-popular Falcon and Falcon's people at the World of Amiga asked if we were using an accelerator new Operation: Counterstrike disk, as well as Tetris, a game of in our demonstrations on the A2000, but we were in a basic 68000 falling shapes which combines dexterity, strategy and problem-solving machine. We believe this confusion is caused by the extreme ease skills, and W eltris, the new Tetris-style game in three dimensions. of use and processing speed of our program." M usic Superbase 4 Amiga On the music frontier, Dr. T’s Music Software Inc. created a stir Precision Software, famous for their Superbase with their KCSv3.0 Sequencing Program. Music Mouse, and Tiger Professional and Superplan, announced a new version of Cub. KCS, or Keyboard Controlled Sequencer, ($275) is listed as “the Superbase. Not to be released until Fall 1990, Superbase 4 Amiga only complete Desktop Music Workstation," with a long list of ($495) will include features available in Lhe PC-compatible professional features including “drum machine style" automatic loop Superbase 4 for Microsoft Windows. Precision states that Superbase recording, mouse-controlled editing, and more. Music Mouse ($79) is 4 will be the first Amiga database to support connectivity through another fun and educational way to make music. The mouse is moved local area networks based on either Ethernet or ArcNet "hardware to create tones, while the keyboard is used to select different patterns and network software currently under development for the Amiga. for an endless assonment of possibilities. Tiger Cub ($99) is a small, Superbase 4 features will include faster processing, an powerful music program with plenty of features to entertain and expanded Database Management Language (DML), plus a new educate real music editing and recording, forms creation tool which incorporates check boxes, radio buttons, Hologramophone Research introduced upgraded versions of images as buttons, and 3-D push buttons with the “tactile” look and Pixound and Hyperchord. Pixound ($99) transforms graphic art into feel of the new Amiga operating system. music. Using the graphic image, Pixound moves the cursor across any picture and creates sounds based on the graphic "fingerprint" it Entertainment discovers and the conditions the user sets. Hyperchord ($159) lets you Electronic Zoo, a new face in the Amiga market, was among create riffs or sequences of up to 40 notes to lie stored and then used the many entertainment publishers at WOA. Electronic Zoo in real time, it can store up to 30 riffs for real-time playback, displayed a new graphic adventure game, WilliamTell(S39.95). EZ •AC* also announced several new entertainment pieces to be released in &MIGA A C G U D E J^M Two Great Ways to SA VE on the Original Amiga Monthly Resource Complete Today, or Telephone 1-800-345-3360

Name__ Address. City.____ State _Zip_ V/SA Charge my UVisa DMC #_ Expiration Date______.Signature. Ail Charges are subject to a 520,00 Please cirde if this is a New Subscription or a Renewal minimum (charges under S20.00 PROPER ADDRESS REQUIRED. In order to expedite and guarantee your order, all large Public Domain Software orders, as well as most Back will receive a $2.00 service charge). issue orders, are shipped by United Parcel Service. UPS requires that all packages be addressed to a street address for correct delivery. PAYMENTS BY CHECK. All payments made by check or money order must be in US funds drawn on a US bank. One Year Our regular subscription now includes 12 monthly issues of $28.00 U.S Of Amazing Computing plus die Spring edition of AC* G U ID E ^M ld t □ $44.00 Foreign Surface Amazing! □ $36.00 Canada and Mexico Our 12 monthly issues of Amazinc Comoutine PIUS AC) ClllDFj&MfGA FI $36.00 U.S New 3 Product Guides! Spring, Fall, and Winter! A savings of $32.25 off the O $52.00 Foreign Surface SuperSub! newsstand price. The Product Guides alone reLail for $6,95 each $44.00 Canada and Mexico

Please cirde any additional choices below: (Domestic and Foreign air mail rales available on request) Back Issues: $5.00 each US, $6.00 each Canada and Mexico, S7.00 each Foreign Surface. V I.1 V I.2 V1.3 V1.4 VI .5 V1.6 V1.7 V1.8 V1.9 V2.1 V2.2 V2.3 V2.4 V2.5 V 2 * V2.7 V2.8 Subscription: S_ V2.9Hi Quality Version Available on AMIGALAND.COM V2.10 V2.11 V2.12 V3.1 V3.2 V3.3 V3.4 V3.5 V3.6 V3.7 V3.8 V3.9 V3.10 V3.11 V3.12 V4.1 V4.2 V4.3 V4.4 V4.5 V4.6 V4.7 V4.8 V4.9 V4.10 V4.11 V4.12 V5.1 V5.2 V5.3 V5.4 V5.5 Back Issue Volumes: Volume 1-S19.95* Volume 2-S29.95' Volume 3-S29.95* Volume 4-$29.95* 'A ll volume orders must include postage and handling charges: $4.00 each US, $7.50 each set Canada and Mexico, and Back issues: $_ $10.00 each set for foreign surface orders. Airmail rates available. Freely Distributable Software: Subscriber Special {yes, even the new ones!) 1 to 9 disks $6.00 each 10 to 49 disks $5.00 each 50 to 100 disk $4.00 each 100 or more disks $3.00 each $7.00 each for non subscribers (three disk minimum on all foreign orders) Am azing on Disk: AC#1. . .Source & Listings V3.8& V3.9 AC#2.. -Source & Listings V4.4 AC#3.. .Source & Listings V4.5 & V4.6 AC£4.. .Source & Listings V4.7 & V4.8 AC#5.. .Source & Listings V4.9 AC#6.. .Source & Listings V4.10 & V 4 .lt AC#7.. .Source & Listings V4.12 & V5.1 AC#8.. .Source & Lstings V5.2 & 5,3 AC#9.. .Source & Ustings V5.4 & V5.5 AC#10 ..Source & Listings V5.6 & 5.7 InNOCKulation D is k : in # i ...Virus protection

1 2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 IS 20 21 22 23 24 25 26 PD S Disks:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Fred 26 27 28 29 30 31 32 33 34 35 36 37 33 39 40 41 42 43 44 45 46 47 48 49 50 5" 52 £3 54 55 56 NA 53 59 60 61 62 63 64 65 66 67 63 69 70 71 72 73 74 75 Fish 76 77 78 79 NA 81 82 83 84 35 86 NA 83 69 90 91 92 93 94 95 96 97 98 93 100 101 102 103 1W 105 105 107 103 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 Disks 126 127 128 129 130 131 132 133 134 135 135 137 133 139 140 141 142 143 144 145 145 147 148 149 150 15i 152 153 154 155 156 157 158 155 150 161 162 163 164 165 156 167 163 169 170 171 172 173 174 175

176 177 178 179 180 181 182 183 184 185 185 187 183 169 190 191 152 193 194 195 196 197 198 199 200 201 202 203 2 0 i 2C5 206 207 2C8 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 Total: 226 227 223 229 230 231 232 233 234 235 236 237 233 239 240 241 242 243 244 245 245 247 248 249 250

251 252 253 2=4 255 256 257 259 259 260 261 252 263 254 265 266 267 263 269 270 271 272 273 274 275 Please complete this form and 276 277 273 279 280 281 232 283 264 285 265 237 268 239 290 291 252 293 294 295 295 227 233 299 303 mail with check, money order or 301 3C2 303 3C4 305 306 307 3C8 309 310 311 312 313 314 315 316 317 313 319 320 321 322 323 324 325 credit card information to: 343 349 325 327 323 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 350 PiM Publications, Inc. (NA Denotes disks removed from the collection) P.O. Box 869 Fali River, MA 02722-0869 Please allow 4 to 6 weeks for delivery 4 THE i m I * & F

PERSONAL COMPUTER SHOW

June 29 - July 1 at The Chicago Hyatt Regency Chicago, Illinois

Sponsored by / j L / V f . VV O R L I)^> Admission includes the Exhibition, Seminars, Keynotes & Amiga Artists Theatre! Hi Quality Version Available on AMIGALAND.COM120 Amiga Exhibitors Featuring State of the Art Software and Hardware, at the lowest prices! Master Classes Available in Amiga Graphics, Video, Programming, Animation, Rendering and Publishing! Seating for Master Classes is limited; call for schedule and availability before registering. PRE-REGISTRA TION DEADLINE IS JUNE 15,1990 (No cancellations or refunds after deadline)

For Hotel Reservations Call the Chicago Hyatt Regency at (312) 565-1234 Hotel reservations deadline: June 13,1990 For discounted airfares, call American Airlines at (800) 433-1790 and give them this ID: 12Z 04F ______hr A rm * a n

Register by Mail, or Bring This Coupon to the s/ton' or Call 800-32-AMIGA Nationwide (or 914-741-6500) For Your Ticket to The Amina Event!

Yes, I want to come to AmiEXPO-Midwest NAME _ _ Friday Saturday Sunday COMPANY ADDRESS One day - $15 Registration is $5 Additional Two days - $20 CITY STATE ZIP At The Door Three days - $25 For MasterCard or VISA Payment Master Class!es) - List Class and Time - $60 Each Expiration Date______Account Number______Name as it appears on card: Signature______Make Check or Money Order Payable to: AmiEXPO 465 Columbus Ate., Ste. 285 Total Amount Enclosed Valhalla, NY 10595 L . ______c irc le 172 on Reader .Service card. _ lmtronicsinc is making history bv introducing the worlds fastest PC clocked at 50 MHz.

The HURRICANE 2800 brings ultimate performance to your Amiga 2000. The 68030Hi Quality Version Available on AMIGALAND.COM CPU is clocked at 28 MHz and now also at 50 MHz, with the 68882 FPU up to 33 MHz. Now including a standard SCSI autobooting FFS hard drive controller which works under both the 68030 and the 68000. The board is asynchronous and gen-lock compatible. The hardware is switchable between 68030 and 68000 operation. A performance increase of more than 1200% compared to a stock Amiga is possible with 28 MHz and even 2000% can be achieved with our 50 MHz design. Memory is expandable with our MEMORY board and the complete system fits into only one slot!

The M2000 memory board can be used with the HURRICANE 2800 and the HURRICANE 2000 accelerators. Ultrafast 32-bit RAM multiplies the performance of the HURRICANE boards. Due to our innovative design, the RAM speed on our board rivals those of 'burst' mode designed boards.

The HURRICANE 500 board turns your Amiga 500 into a 32-bit work station and is extremely easy to install in the 68000 socket. A performance of over 500% is possible with the 68020, additional performance increase can be reached with the 68881/68882 FPU of up to 33 MHz. The HURRI­ CANE 500 is hardware switchable between the 68020 12301 South West 132 Court Phone: (305) 255 9302 and the 68000 operation. Miami, Florida 33186 Fax: (305)2556903

Circle 151 on Reader Service card.