FacebookTwitterGoogle Bookmarks

 the Amiga (perhaps taken from video footage) rotoscoping becomes an Amiga reality. Hash Enterprises "Animation: Rotoscope" will allow the Amiga user to utilize this technique on personal productions, and is the first of its kind in the entire microcomputer industry. As far as I know, nobody has yet dedicated their Amigas to Claymation productions. Will Vinton's California Raisins still make their way to your screen using traditional Claymation techniques. But it is possible. Clayrnation takes a lot of time and a lot of planning. Multiple figures have to be created co replace those that melt under the hot lights. Any of you Amigans interested in the adventure? Don't you love those Spielbergian clouds that flutter across the sky? Well, the animation technique that is used to produce many of them and other effects as well is called Stop Motion Photography. Through stop motion, we can see an apple slowly give way to the pierce of an arrow, and we can witness the sacred hidden magic of the opening Rose to the light. Now, with the Transport Controller from Microillusions (and the other necessary hardware) we can produce Stop Motion effects with the Amiga. You can construct and move a multitude of puppets and process the results through the Amiga. They can be constructed from a wide variety of materials in either two or three dimensional versions. Puppetry is one of the oldest forms of animation. You can be among the first to translate it to the Amiga screen.

Click image to download PDF

Document sans nom COMPUTING Your Original AMIGA ™ Monthly Resource Js° $ 3.95°'caiada 1$ l.?
95 nimatior roducts Reviewed Move over Mickey!
Animation & Alive in 3D A review of AmigaBASIC Industrial strength menus In X”: Introduction tq Poi : Scrolling supegM " x 2 Ml lus much' ? ¥ Second generation 2D animation software The AIR DRIVE Dual-Sided. 880K Color-coordinated chassis and faceplate Smaller and lighter than the Amiga drive External drive pass-through Extra long 30" interface cable Spring-loaded dust door Compatible with all Amiga systems One year warranty Internal drive also available CALL FOR DEALER NEAREST TOU.
1 ESS®;?
:¦ - . r Avatex 120QE nmn n $ a so us e» m aa «*« «••«* ¦
- ________ (jjn'A Small and powerful yf The Avatex 1200E.
I Avatex MODEMS $ 105 ....1200P $ 99 ....1200HC INSIDE UTAH: (801) 752-2642 FAX: (SOI) 752-8752 CALL FOR A FREE CATALOG.
Ask about our LOWEST PRICE GUARANTEE FREE WITH EACH MODEM Amiga communication software & CompuServe access time.
MEGATRONICS. INC. BOX 3660. LOGAN. UT 84321 smooth, las: animation in any resolution powerful compression easy to a-dd edit static cr dynamic backgrounds and foregrounds library of preset effects [transitions!
Create your own transitions easily interactive context-sensitive editor makes changes simple compact player p-ogram allows you to distribute your animations Animates ALL IFF Images. Particularly Productive 3D Animation with PageRender 3D.
WHAT THEY SAY Media: "This definitely looks like a very hot new animation package..." "The manual is well written... this is a truly great program, easy to Users: "PFX is wonderful!!!" Use' friendly, and sophisticated perfect for our production needs”.
"This is an excellent program. The user interface is transparent, is a great program”, as it should be". "This is the first program I have found that will allow truecel animation".
Mindware International 110 Dunlop Street West, Box 22158, Barrie, Ontario, Canada L4M 5R3 For more information on the dealer nearest you! 1-705-737-5998 Order Line: 1-800-461-5441 Amiga is a trademark ot Commodore Business Machines. Inc. Page Flipper Plus FIX Is a registered trademark of Mindware International.
COMPUTING AMAZING PROGRAMMING Death of a Process 71 by Ma rk Cash man The polite multitasking guide to error handling in Modula-2 77 Industrial Strength Menus by Robert D’Asto Some snazzy submenus for your AmigaBASIC cuisine Scrolling Through 101 SuperBitMap Windows by Read Predmore How to implement SuperBitMaps for viewing or drawing into large graphic areas.
Pointers, Function Pointers, and Pointer Declarations in C 109 89 by Forest W. Arnold Reducing data type dependencies What’s The Diff?
By Gerald Hull A review-' of Lattice’s Compiler Companion Sync Tips 97 by Oran J. Sands III Dot crawl, the Amiga and composite video devices.
98 C Notes From the C Group by Stephen Kemp Structures - A powerful feature of C On the Crafting of Programs 94 by David J. Hankins What Format is right for you 67 The Command Line by Rich Falconburg A look at new and improved Assembly Language commands AMAZING DEPARTMENTS Amazing Mail Index of Advertisers Reader Service Card 112 Public Domain Software Catalog 121 Your Original AMIGA Monthly Resource
• TABLE OF CONTENTS* Volume 4, Number 1 January 1989 AMAZING
ANIMATION II 1 1 . I . .
... ;’V‘ ..... • -y V • • • : - ;: | ..A::......: .
A, ; ;•; m aq' ""AT: n : •T'Ay AMAZING REVIEWS & REPORTS How May I Animate Thee?
Let Me Count The Ways 10 15 by Sham ms Mortier An overview of animation techniques.
Alive in 3D by Shamms Mortier A review of Caligari, a high-end 3D sculpting and animation package.
Stop-Motion Animation On The Amiga 23 by Brian Zupke A hands-on approach to animation on the Amiga.
25 The Wonderful World of Hashnique by Shamms Mortier A review of the Amiga software products of Hash Enterprises Second Generation 32 2D Animation Software by Geoffrey Williams Cel Animators and Key Frame .Animators how they differ and a look at their use.
42 STELLARYX Review by Stephen Kemp Exciting & challenging! Terrific stereo and sound effects Arkanoid Imposters: 39 Unmasking the impostors by Jeffery Scott Hall A look at Arkanoid look-alikes 44 Questron II by Jeffery Scott Hall Questron II - A journey back in time 47 Las Vegas Comdex Report by Louise Brinkmann Commodore’s new 2500, 2500 UX, and more!
50 Philadelphia World of Commodore by Chris Darsch & Rick Rae Highlights of Philadelphia’s Commodore Show Roomers by The Bandito Commodore’s deal, RAM chip crisis, and more!
58 In this competitive world there is only one winner.
The results are in and Hurricane has won. According to the August AmigaWorld: "Currently, the Hurricane board is the best way to increase the performance of your Amiga."
Now Ronin has designed a whole family of Hurricane products that will make your Amiga 1000 or 2000 run up to 20 times faster. You'll save hours on ray tracing, desktop video, animation, and other math intensive applications.
The Hurricane family is fully modular, so you can start for as little as $ 600 and upgrade in stages. Start racing with the 68020. You can then add a 68881. Later move up to our 68030 and maybe the 68882. Add up to 4 megabytes of 32-bit memory and your Amiga will sprint faster than a VAX minicomputer.
Why waste time and money on less performance. Run on in to your favorite dealer and get a Hurricane, or call us for more information. But whatever you do, don't be left at the starting line while everyone else passes you by.
Dealer inquiries invited RRICANE TM SlRonin
P. O. Box 1093, Alameda, CA 94501 U.S.A Telephone (415) 769 9325
Fax (415) 865-9852 Twx 9102502720 Ronin UD Amiga is a
trademark of Commodore-Amiga, Inc. 68020. 680SD, 688H1, 68B82
are trademarks of Motorola.
Hurricane is 3 trademark ol Ronin Research & Development Inc. VAX is a trademark of Digital Equipment Inc. Publisher: Assistant Publisher: Circulation Manager: Asst. Circulation: Asst. Circulation: Corporate Trainer: Traffic Manager: Joyce Hicks Robert J, Hicks Doris Gamble Traci Desmarais Donna Viveiros Virginia Terry Hicks Robert Gamble International Coordinator: Marie A. Raymond Marketing Manager: Ernest P. Viveiros Sr.
EDITORIAL Managing Editor: Editor: Don Hicks Ernest P.Viveiros Jr.
Ernest P. Viveiros Sr.
Richard Rae Michael Creeden Amy Duarte William Fries Paul Michael Brian Fox Donna M. Garant Hardware Editor: Music & Sound Editor: Copy Editor: Copy Editor: Art Director: Photographer: Illustrator: Production Manager: ADVERTISING SALES Advertising Manager: Alicia Tondreau Marketing Assistant: Melissa J. Bernier 1-508-673-4200 FAX 1-508-675-6002 SPECIAL THANKS TO: Buddy Terrell & Byrd Press Betsy Piper at Tech Plus Bob at Riverside Art. Ltd.
Swansea One Hour Photo Amazing Computing™ (ISSN 0886-9480} is published monthly by PiM Publications, Inc., Currant Road, P.O. Box 869, Fall River, MA 02722-0869.
Subscriptions in the U.S., 12 issues for $ 24.00; in Ginada & Mexico surface, $ 36.00; foreign surface for $ 44.00. Application to Mail at Second-Class Postage Rates pending at Fail River, MA and additional mailing offices.
POSTMASTER; Send address changes to PiM Publications Inc., P.O. Box 869, Fall River, MA 02722-0869. Printed in the U.S.A. Copyright© Nov. 1988 by PiM Publications, Inc. All rights reserved.
First Class or Air Mail rates available upon request. PiM Publications, Inc. maintains the right to refuse any advertising.
Pirn Publications Inc. is not obligated to return unsolicited materials, All requested returns must be received with a Self Addressed Stamped Mailer.
Send article submissions in both manuscript and disk format to "Submissions, C O PLM Publications, inc. Requests for Author's Guides should be directed to die address listed above.
AMAZING MAIL Dear AC You published my letter of reply to the Roomers column in this past November Issue. Something got lost either in my printout or your editing. I didn’t save a copy of die letter I sent. The last line reads “two 880 floppies and two meg 3 1 2” miniscribe hard drives.
It should have read "and two 32 meg, 3 1 2" miniscribe hard drives."
Don Morgan Parsippany, N.J. Thank you for the correction and the quick response.
Dear AC I would like to have our User Group published in your magazine. 1 have respect for Amazing, and trust that your readership will be happy to leam of our Chicago area group. Unfortunately, our schedule does not permit meeting dates such as “the fourth Wednesday”, so I hope you can publish at least some of our meeting dates. Below is our announcement that I hope you can print as soon as possible.
Hello from the Chicago Northwest suburban Amiga User's Group, or CNSAUG (pronounced sin-sawg). We meel monthly, and provide a monthly Public Domain software disk. We currently list about 130 members, and can always use additional support from Amazing readers who want to participate! We hold Special interest Groups (SIGS), and will soon hold one for 1.3- We are also dues-less.
Officers: Tom Karlmann-Pres. (312) 934-3334 Don Vanni Librarian (312) 478-7362 Meeting Place: Arlington Heights Public Library 500 North Dunton Ave.
Arlington Heights, IL Meetings 1989: (from 7:00 pm to about 10:00 pm) Jan 25, Feb 22. Mar 23, Apr 20, May IS, Jun 22. Tul 26, Aug 30, Sep 27, Oct 23, &. Nov 29 Mailing Address; CNSAUG c o Thomas Karlmann 4437 Westbridge CT Hoffman Estates, IL 60195 I thank all the Amazing people for their Amazing magazine, 1 have an amazingly good time reading it, now join our amazing user's group and publish my amazing notice I had to get that out of my amazing system!
Amazingly, Thomas Karlmann I think you will be amazed at how much fun you wilt have.
Dear AC, All of the letters I've seen in Amazing Computing and other Amiga magazines iliat deal with modifying the startup- sequence to copy frequently used commands to RAM:c also require that C: be reassigned to RAM:c. This is fine until you need to execute a command that is not in RAM:c. In this case you must either assign C: back to SYS:c or type in a full path name.
A better way which avoids all this extra typing is to add RAM:c to the search path in addition to paths for RAM: and any other directories you want searched.
Note that the RAM: path does not cause RAM :c to be searched.
Add the following to the list of paths in your staitup-sequence: Path RAM:c add Delete any reassignment of C: After you save your changes and reboot, the search path sequence will be: The current directory (first) The paths you added in the order you added them C: (last) Now you can type commands without worrying about where they are.
Sincerely, Spence Blakely Portsmouth, RI.
Dear AC: While working on an error trapping routine in AmigaBasic I attempted to trap eiror 74, which in the Amiga Basic manual is listed as “Unknown Volume”.
The trap failed and it took a few minutes to discover that the errors that I should have been trapping were in the manual!
Alrirough error 74 is listed on page A-ll as the code for “Unknown Volume”, when you run “error 74” in direct mode you get the message “Rename across disks”, which is not listed in the manual.
Since there are a possible 255 error messages, 1 wrote the following bit of code to find which er.ur number corresponds to "Unknown Volume".
By “inputling" a volume which wasn't in a disk drive, I caused a requester to appear asking for the named volume.
Cancelling the requester generated an “Unknown Volume” enor which was then trapped and its error code (49) was printed on the screen. Running “error 49” in direct mode verified that it is the proper code number for "Unknown Volume”.
Obviously, the third and fourth line of the program can be changed to simulate other errors to verify the manual’s error codes.
ON ERROR GOTO 10 DIM X (255) INPUT FILES OPEN FILES FOR INPUT AS =1 10: FOR X=0 TO 254 X=X+1 IF ERR=(X) THEN PRINT (X) NEXT X PRINT “DONE" END I hope this is helpful to anyone who might have 11 problem with AmigaBasic error codes.
Yours Truly, John M. Salimbene Columbus, OH Dear AC: For those bothered by the interlace flicker, and the price of flicker fixing boards (availible only for the 2000), the Flicker Master™ is a low cost fixer. The Flicker Master™ is a screen that attaches to the front of your monitor via velcro.
This screen improves contrast, reduces eye strain, etc. in addition, to greatly reducing flicker. The Flicker Master™ fits the following monitors: A-1084, A-108Q, AMIGA 500 USERS!
THE WORLD'S FIRST AUTOBOOTING HARD DISK FOR THE AMIGA 500 GREAT VALLEY PRODUCTS INC. PLANK AVENUE, PAOLI, PA 19301 TEL (215) 889-9411 FAX (215) 889-9416 Sony KV-1311. Magnavox RGB 80, NEC .Multisync, and others. The screen sells for 516.95. The manufacturer is: T.S.R. Hutchinson Co., 110 W Arrowdale, Houston. TX 77037-3801. Phone (713) 448-6 Ti3- Sincerely, David N. Winner Stevens. PA.
Dear AC.
Paul is responding to a letter from a reader who was having trouble with the Computer Aided Instruction, article in AC Void.9. Thank you Jimmie for correctly pointing out a bug in my program. When you want to use the Editor, and you choose “OPEN CREATE LESSON” from the pull down menu, you will see a list of previously created lessons (if there are an)’) followed by the prompt: Enter existing or new filename: If you haven’t created any lessons yet, you must enter a filename. However, il you mistakenly hit return, without actually entering a name, you do get the response: There is no Want to
create it?
YES NO 1 agree that this is a .silly response. Also, if you pick YES at this point (with left mouse button), the program seems to become stuck. But it really isn't, lor if you select NO, the program returns to the previous prompt, thus allowing you to properly enter a filename for your new lesson. If you then enter a name, French_l for example, you will see the prompt: There is no French_l Want to create it?
YES NO And now, if you select YES the program correctly creates your new lesson. 1 realize that this part of the program is a little confusing and needs cleaning up in the next revision.
Remember, for the program to operate proper!)1 you must install on one floppy disk the following files: Amiga BASIC Tutor Editor diskfont.bmap graphics.bmap empty directories: Lessons This Disk I intentionally wrote the program to require this because it simplifies operation for users of single drive systems. There is enough room left on one floppy disk for over 1000 questions!
I'm glad you finally got the program to work and 1 will certainly consider all your suggestions for the next revision.
Your’s is exactly the kind of feedback I was looking for. At the same time T hope that this program lights a small spark of initiative in you and that you consider performing your own modifications to it.
After all, the program is public domain.
Anyone is free to do whatever they like with il, in fact, 1 encourage it.
1 a iso hope that this program, and others like it, are interesting enough to you that you will consider becoming a subscriber to Amazing Computing. I am busy right now writing a series on fractals and I wouldn't want you to miss out on them.
Yours Truly Paul Castonguay If anyone is having trouble with a program appearing in AC, please write the author c o of Amazing Computing.
Although most of the writers for AC are freelance and not staff, all are Amiga fanatics.
We will forward your letters and concents to the appropriate authors, who. If at all possible, will respond courteously and quickly to their fellow Amiga enthusiasts!
Dear AC We read with surprise and concern Amazing Computing’s V3.8 “Roomers” column, in which a lawsuit involving Electronic Arts, Bethesda Softworks, and MaxiSoft were addressed. Although you print the message at llie end of the column that “The Bandito" cannot be held responsible for tire reports made in the column, I doubt you would disagree that the sign of a professional journalist is one who takes responsibility for checking his facts and for the slant with which he writes his column.
I lad "The Bandito" checked his facts on the information he reported he would have learned that Bethesda's fraud, unfair business practices and bad faith charges have been dismissed by the court. What remains is a dispute regarding the terms of the contracts between parties. Further, the amount claimed by Bethesda is now S400,000-not S7.5 million, in addition, EA is confident that Bethesda's contract claims will ultimately be dismissed as well. Finally, EA's lawyers had filed EA’s motion to dismiss those charges weeks before your column appeared. These are matters of public record and should
be checked out before they are published.
“The Bandito’’ is misleading your readers.
As for the Maxisoft suit, it is in our opinion an unreasonable attack. Had your editor taken the time to contact us, he would have learned that, thus allowing him to write a factual and fair report.
Anyone has the right to sue another, at almost any time. It should not come as a surprise to you or "The Bandito" lhaL since Electronic Arts and many of its products are critically acclaimed, we are an easy target for random lawsuits.
It is our opinion that the “Tire Bandito” has attacked Electronic Arts’ credibility without cause. 1 hope you will publish this reply, and thereby correct the misperceptions created by the column.
Very Sincerely, Randall Thier Vice President, Affiliated Labels We apologize for any inconsistencies Ixtween the statements in the ‘’Roomers’1 column and the facts as they were at the time you read them. Howeier. You are certainly aware of the time difference between when a story goes to press in a magazine and when it is seen on the street. Most stories are written two to three months before they appear in print and since nothing stands still, this does lead to inconsistencies.
'the story, as it was published, was directly from releases by reliable parties involved in the disagreement. The depth and detail of the information, left little room for misunderstanding. The suit was filed as staled.
Do you have an Amiga related concern?
Please Write!
Amazing Computing Letters
P. O. Box 869 Fall River, MA 02720 PROGR€ IV€ ???gen.
OEISILOOIC Grabber Image Digitizer Captures 4096 colors in i 30th of a second FrameGrabber Real-time Video Image Digitizer for the Amiga 500, 1000 and 2000
• Grabs images from VCR or home video camera
• Captures color images in 1 30 of a second (1 60 of a second for
black & white)
• Supports screen resolutions from 320 x 200 to 640 x 400 Also
supports overscan (352 x 240)
• Includes image processing software from the creator of PIXmate!
• Automatic Time Lapse Animation feature
• Multiple exposure mode
• Stores images in IFF format or as raw RGB images
• Allows you full control of Hue, Color and Saturation with con-
veniendy placed control knobs
* Software-Selectable Foreground, Background, Amiga Out and Video
• Select one of 32 colors as transparent for video effects
* Now available from Progressive Peripherals St Software, Inc. or
your local dealer
• Meets RS-170A standards ProGEN is a must Eor Amiga desktop
video! Editing studios, artists, television studios, in- house
production departments can all use ProGEN with their Amiga 500,
1000 and 2000
• Make your own desktop video productions
• Overlay Amiga Graphics on any video signal
• Transfer images from your Amiga to VCR Progressive Peripherals
& Software, Inc. • 464 Kalamath St. • Denver, CO 80204 • (303)
825-4144 Amiga 500,1000 and 2000 irr mdemirk* of
Commodcre-Amiga, Inc . ProGEN, FRAMEGRABBER tod PIXmatt art
tradtmifb of Progrwtfvt P npbcr*U it Software. Inc. How may I
animate Lhee?
Let me count the Ways- by R. Sbamms Mortier, PbD(c) The wonderous images that wind their way across the Amiga screen did not suddenly arrive with the introduction of Commodore computers, or even with computers in general. Animation began even before film itself entered the picture, with the "magic lanterns" or zoetrope wheels. Even before that, painters would now and again try to elicit motion by doing a series of static paintings and placing them side by side.
I remember seeing a series of images that the painter Goya produced in the early Nineteenth century. As I remember, the images depicted a monk being robbed, and they were placed in succession so that the eye was forced to take them in one after the other. They were static, but a definite movement was implied. And who has not been exposed to the futurist "Nude Descending a Staircase”, an experimental painting that tried to show where the image had been, as well as its intended future direction. Because movement is commensurate with life itself, the urge to depict static form in a way that
implies movement has been the visual artist's obsession for millenia. In the Paleolithic caves, splendid red ochre wall paintings show Bison and Antelope with six and eight legs,..the work of some pre-dawn-of-history protoanimators.
Certainly animators existed before Disney. But he had one talent the rest of them lacked, and that was the ability to gather working groups of very talented individuals in one place in order to focus all of their energies on singular projects.
It is with Disney that tiie main child of the Industrial Revolution, assembly line production technique, is allowed to jump into bed with the arts. From that marriage in 1928, the Rodentia Magnificat, Mickey Mouse, was given birth. Right up until this very day, from the political adult animations to the Saturday Morning Mania, the art of animation continues to be the result of a many faceted collaboration of large numbers of individuals on each production. But there’s some revolutionary changes a-comin'.
The main lure of computer graphics, especially that comer of the field flowering forth from developers dedicated to the art of the microcomputer, is that the individual, the lone creator rather than the group, can regain the ascendancy as the all-around animator. Yes. Large projects with short deadlines still work better if the work is spread among several animators, each dedicated to a specific task or characters.
But if the deadline is only one of convenience (or if it is realistic enough) then it is completely possible for a single individual to do all of the animation on a computer. By "all of the animation” I mean the original concept, the storyboarding and layout, the drawing and colorizing, the titles, credits...AND the soundtrack. Aside from being an egoistic enterprise (and still a very' long and dedicated process) the mere fact that it is possible (with very' professional results) breathes new life into a traditional industry.
In my opinion, the animator who would stretch her his wings in the Amiga nest would still be best served by studying the variety' of traditional methods and terms used to produce animated visuals. Why? Well for one thing, the guild demands it. Respect comes in part from dues paid. But there's more than that, more than the love that suffering has for company. There is also the fact that certain techniques and methods are best learned slowly over time with a master of the craft. Art is more than the production of a thing, it is the involvement in a transformative process. That very process gives
back, releasing options into the blood stream of the individual over time.
.Aside from the philosophical and aesthetic considerations is the exposure of the animator to a variety of techniques. Many of the Amiga animation packages to recently hit the market seem to dwell upon only one way of producing meaningful animations, as if the art itself were boxed into a definatory style and direction, usually equated with the work of Disney, f low many recent packages have you seen that compare themselves with "flipbook” style productions? I've seen quite a few. It might be best, then, to share with you a number of animation methods that are also doable on a microcomputer,
and any of which (or perhaps several in combination) can be used to produce "meaningful” visual pieces.
Let’s start with the flipbook method, also called “cel" animation.
Traditionally, cels are sandwiched pieces of acetate painted with special polymer paints. Each cel is meant to be joined with a background, which can be seen because there are areas of the foreground cel that are left unpainted and transparent. When the two (or ihree, four...) are joined together, they are usually placed on a copy stand, and the entire scene is captured with a camera on a single frame (or two or three) of film. Most of the advertisements that accompany Amiga animation software, attempt to center upon the cel animation process. For the beginning or novice computer artist, it
sometimes seems as if mastering this procedure alone would qualify one for admission to the animators arcane guild. Not so. There are several other ways to shape an animated piece, and all are doable in some fashion on the Amiga.
Now in addition to the software that I’m going to mention, there is a standard list of hardware items that you should consider procuring (either through single purchase or shared expense with other animators) that will allow you to develop your finished work in a most professional manner suitable for showing and broadcast. As far as the hardware is concerned, it is not inexpensive, and the vendors (and quality) vary. This is an area so far neglected by Amiga or microcomputer third parties. All that exist here are the sources that have answered professionals over the years, and some of the
vendors have bloated their prices accordingly.
Just as we have a wish list for economical products to answer the blossoming desktop publishing needs of home businesses (real-world priced laser printers, etc.), there is a growing need for qualitative yet lower priced animation tools. Perhaps even big C itself should be thinking of entering this marketplace. For qualitative results the computer video animator needs a professional video deck (with “flying erase-heads”), a single frame controller, maximized storage capability ( a hard drive, preferably with removable replacable media, or a read write CD ROM device), access to editing decks
and controllers, and at least two megs of RAM on the system. All of this in addition to the computer hardware and software. Oh yes. If you’re going to be producing images that are generated in 3D on your screen, then you should also think about an accelerator board with a 68020 or 68030 processor, and a math co-processor chip, In animation, time is not only money, it is also sanity. Digitizers, Frame-Grabbers, and Genlocks are also valuable here.
So, what other animation techniques exist besides cel animation?
Let’s start with something called “process animation". Process animation allows you to witness the evolving artistic process as an integral part of the “feel” of the story. We’ve all witnessed this technique at one time or another, and whole beautiful pieces have been created by just utilizing this method alone. In process animation, you may see a figure being drawn before your eyes. After it is outlined, colors magically fill areas of the work. All of the while, the narration is superimposed over the visuals, carrying on with the story. Anyone with a video machine and a paint package could at
least begin to experiment with process animation. Dpaintll, PhotonPaint, ExpressPaint, Digi-Paint.,.al! Will work.
Best to plan your moves first, maybe even tape a tracing paper version of your work to the screen as a guide. 1 prefer to do this without the obtrusive cursor, so I disappear it. This also adds to the magic.
The variety with this technique alone is limitless.
Of course there’s 3D computer generated animation. Here's where you really need a single frame controller and a top of the line recorder that it can address. Usually the 3D packages (Caligari, Sculpt 4D, Animation Apprentice, Forms In Flight II, and Turbo Silver, to name a few) have dedicated drivers for a single frame controller, or will allow you to address third party' hardware. The idea here is to develop only the “key frames", the points in your story that are major orientations. Later, the computer can grind away and fill in the ''in-betweens”. It's best here if you also have an
accelerator board installed to speed up the process. Animations of this type really require post production editing of sequences, so access to that level of hardware is vital. Before you can engage in this animation, you have to design and create the 3D objects and elements...which is where Aegis Modeler, 3Demon, and other dedicated modules come in handy. With the Syndesis handshaking programs, it is possible to design with one package and animate with another. Added to these would be the animation utilities, of which the Amiga can boast a superlative line that keeps getting bigger: VideoEFX
3D, Photon Cel Animator, PageFlipper=FX, Dvideo 2.0, and DeluxeProductions come to mind, readily.
(continued) "Tracing Paper Animation” is yet another "look" or form. With this procedure, the aim is to allow the previous frame to “show through” the one you are shooting. The final result is a piece that allows the moving elements to leave "traces” as they fly around the screen. My teacher and master, David Ehrlich (a world class animator) uses this method exclusively and with hand tools.
There are only a few packages that allow this on the Amiga at present. The “Pencil Test Mode” of Photon Cel Animator, and the '‘Strobe” modes of other packages.
Perhaps someone will take the hint and expand upon this capacity. Of course another way to accomplish Tracing Paper animations is to allow y'our digitizer to do the work. Do your separate frames on tracing paper, and digitize either two or several while leaving the previous ones showing through the present frame. I haven’t done it yet, but I’m betting that there’s some interesting results possible.
Tom Paper animation produces some wonderful and evocative results.
This method is really a cousin of the process method, but different enough so it is in a class by itself. Pieces of torn paper or fabric move under and over each other until a scene is produced.
Narration and or music is continuous.
With the Amiga, you could use either paper or other 2D material (ie., fabric) to achieve similar results. In addition to digitizing your work frame by frame, you could create electronic "paper” composed of polygonal shapes, entirely on the Amiga screen. Perfect programs for this would be Aegis Animator, Broderbund's Fantavision, and Zoetrope from Antic Software. You could also digitize elements from newspapers or books for that "Monty Python” [00k.
Canadian animators, recognized the world over as some of the most experimental and creative around, have pioneered in using shifting shapes in sand as variable form. With the right Amiga equipment, this method would be open to you as well.
“Object Animation” exists in a world all of its own. One piece that I did some years back (with super 8 film) was to allow my keychain to chase my key around a table for about thirty seconds, it was quite effective. Any 3D objects would do, as movement brings them to life. With the Amiga and a single frame controller (or many individually digitized frames), and a video camera pointed at a work surface, you could do some very rewarding experiments in the “Object Animation” category.
Pixelation can be defined as allowing some moving footage to become vagued out and smeared by purposefully allowing the small picture elements of the screen (Pixels) to become enlarged. On static images, "Butcher” and “Pixmate" give you many ways to experiment with this. This technique is used much in music videos.
With the A-Squared “LIVE'’ hardware (and also the software called “InVision from Elan Design), you can pixelate moving images till you drop (or your audience does). With the addition of “Mandala", you can also superimpose live actors into the scene, much as was done in Disney's most endearing features.
“Rotoscoping" is the procedure whereby live footage is translated into painterly images. This is being used more and more in advertising on the tube. It was first pioneered by (guess who?) Disney in Sleeping Beauty back in the Thirties. With a series of frames digitally resident in the .Amiga (perhaps taken from video footage) rotoscoping becomes an Amiga reality. Hash Enterprises “Animation: Rotoscope” will allow the Amiga user to utilize this technique on personal productions, and is the first of its kind in the entire microcomputer industry.
As far as I know, nobody has yet dedicated their Amigas to Claymation productions. Will Vinton's California Raisins still make their way to your screen using traditional Claymation techniques. But it is possible. Claymation takes a Sot of time and a lot of planning.
Multiple figures have to be created to replace those that melt under the hot lights. .Any of you Amigans interested in the adventure?
Don't you love those Spielbergian clouds that flutter across the sky? Well, the animation technique that is used to produce many of them and other effects as well is called Stop Motion Photography. Through stop motion, we can see an apple slowly give way to the pierce of an arrow, and we can witness the sacred hidden magic of the opening Rose to the light. Now, with the Transport Controller from Microlllusions (and the other necessary hardware) we can produce Stop Motion effects with the Amiga.
You can construct and move a multitude of puppets and process the results through the Amiga. They can be constructed from a wide variety' of materials in either two or three dimensional versions. Puppetry is one of the oldest forms of animation. You can be among the first to translate it to the Amiga screen. I remember reading that the creator of Saturday7 Night Live’s “Mr.
Bill” was experimenting with the Amiga.
Many industrial and instructional animations begin and end with “Flow Charting”. The Amiga has tire capacity to produce awesome flow charts, Tire colors can either cycle (DPaintll) and or can shiver and reform as morphed polygons (Aegis Animator, Fantavision, and Zoetrope). It is amazing what a clear narration and some flowcharting can bring to consciousness. I have produced literally hundreds of pieces on the Amiga utilizing color cycling and polygonal metamorphing alone for instruction at the University' of Vermont and for industrial clients front ray home business.
Both are unique forms of animation made very available by the advances in microcomputer (and specifically Amiga) graphics.
What you strive for in animation is a "look”, a way of organizing the moving visuals so that they themselves tell a story and come to life. This look can be as representational as Disney or as abstract as a latter day Picasso. “Looks” carried on over lime becomes “style”, and style becomes the artists trademark.
Style is achieved over a long period of time by risk and experimentation, by trying to bend and warp the processes in unexpected ways. Even the experience and history’ of the animator cannot supercede the taking of necessary’ risks to achieve welcome surprises. Risking and stretching into the realm of tire unexpected is what an animator does constantly, and in the realm of computer graphics and computer enhanced animation, soon we will all be able to say' with confidence..."Amiga does it better".
• AC- Biographical Notes
R. Shamms Mortier is a graphic designer with some thirty-five
years of experience in all areas of visas? Design and
production, including soundtrack composition for film. His
work has been presented in professional galleries. The
production of his animated film "Lhe Secret Dreams oi Older
Men" was funded by the American Film Institute Boston
Film-Video Foundation, and he hopes to translate and
revise enhance it in the future with the Amiga. He has
prepared instructional demonstration tapes for industry,
including one based upon atomic orbitals for secondary school
learners (MacMillan and Co.) Utilizing Amiga graphics. His
doctoral studies (Union Graduate School, Cincinnati) focus
upon symbolism and upon the transformative possibilities of
the arts.
Currently, he is the manager of the Graphics Service of tire University of Vermont, and owns and operates Iris own business (Eyeful Tower Communications) in Bristol, Vermont.
He teaches graphic design at the UVM, and an transpersonal psychology courses at Burlington College, Burlington,Vt. He is most open to comments and criticisms on articles and reviews, and can be reached via this magazine.
Introducing new Lattice C for Amiga DOS, Version 5.0. In recent benchmarks, Lattice C 5.0 was off to the races before Manx 3.6 was even off the starting line. In fact, statistics prove that no other language, no other compiler, gives you faster, more efficient programs.
Period. And it now supports 68020 and 68881.
BYTE* Benchmark lattice C 5-0 Manx C 3-6 % Difference dhampstones
42. 4
62. ~ .32% dhrystones sec.
1605 1017 58° n matrix manipulation
15. -
50. 4 68% scbigrd
70. 2
82. 8 1 S" ii sorto
76. 4
110. 9 31 sieve
34. 4
40. 5 15% Overlay Linker • Assembler • Disassembler • Librarian
• Sample Files ilk Examples • Lattice Screen Editor • In
stallation Program • Comprehensive Documentation.
Our new, easy-to-use, Source Level Dubugger, Code Probe, supports both C and Assembly language, and multi-tasking debugging. And our new Global Optimizer will actually enhance your programs' performance up to 40%.
So choose Lattice if you want to program on the fast track. Or choose Manx and finish at the back of the pack.
To purchase Lattice C 5.0 or for more information, see your fen orite software supplier.
And it's the most comprehensive, exclamation point.
Nothing else gives you such a complete programming environment. All these tools and utilities are included in the Lattice C 5.0 package:
• Lattice C Compiler • Compiler Companion Utilities
• Source Level Dubugger (CocleProbe) • Code Profiler
• Global Optimizer • 304 C Function Libraries * Blink 'BVTK is a
registered traderTUirk of McGraw-Hill 8 Lattice Lattice,
Incorporated 2500 S. Highland Avenue Lombard, [I. 60148 Phone:
800 533-3577 In Illinois: 312 016-1600 Subsidiary of SAS
the Ultimate Strategy War Game, allows you to play against the
Ultimate Opponent.
Playing against an unpredictable human opponent assures you that victory is only sweet until the next game and that each TeleWar match is an exciting clash of intellect and intuition. $ 39.95 TeleEpic is the Medieval Version of the Ultimate Srategy War Game. Instead of commanding tanks and artillery, you lead a band of heroes waging war against your mortal foe. Test your skills wielding a mighty axe or sword. Throw a dagger or check your accuracy as an archer. $ 39.95 TeleUJarH Tuo Playc i-f Owr Phone Or-fit Hone By Scott LaMb TeleWar II, the Ultimate Strategy War Game TeleGames , like all our
'Tele'’ products, provides the Revisited with new terrains and enhanced game play. Enjoyment of competition without the problem of Experience the ecstasy of blasting your best friend to where to play. Competition is enhanced with smooth rubble or disintegrate someone you don’t even know. 3D perspective graphic animation and digitized Watch out! You may be the next casualty peering out sound effects. Players may compete on one computer of a twisted pile of smoldering steel. $ 39.95 or ’TeleConnect’ via modem. $ 34.95 The Intruder Alert Monitor allows your computer to become a monitoring, logging,
or security system for your home or business.
The system includes a startup kit including several types of detector switches and wire.
Each of eight individual ports may be programed independently. Intruder Alert software allows for digitized audio alarms, speech synthesis, modem interaction, date and time stamping of events, external program launching, and utility support for BSR X-10 controlling, Like all Software Terminal products direct support from the author and designer is available though our BBS service or via BIX vendor support area 'TeleGames'. $ 159.00 AVAILABLE FROM YOUR LOCAL 3014 Alfa Mere Drive nPAT TDI Fort Worth, Tx 76116 JJJLciLJiflx! Phone: (8 17) - 2 44 - 4 150 BBS: (817)-2 44-4151 Alive in 3D... Pi review
of * Canaan A high-end 3D sculpting and animation package by jR. Shamms Mortier Background When 1 began using the microcomputer to produce visuals around seven years ago, what was referred to as "state-of-the-art” was a far cry from our minimal expectations today. I remember about ten of us crowding around an Apple screen, watching the lines we were tracing on an ancestral digitizing tablet replicate themselves on the screen. Of course, we had fantasies of being able to utilize more than sixteen (or was it eight) colors, of manipulating objects in a 3D environment, and of translating various
realms into visual form. At that time, tire Commodore-64 was just being introduced to the market, and upon securing the necessary funds from the credit union, my present obsession was firmly rooted in an exploratory reality.
Of course, other recourses were available even then. With a little stiffer loan (around thirty to a hundred thousand dollars) I could have opted to tap into one of the vendored graphic work stations being offered. But I just couldn't see doing that, so 1 had to content myself with packages like Sorcerer’s Apprentice and Flexidraw on the C-64 while Cranston-Cusiri productions was designing all of those magical graphics dtat fluttered around the screen during NFL halftime breaks. Little did 1 suspect the graphics revolution that was rushing my way.
I have been a graphics designer and producer for over twenty years, and have attained a moderate degree of proficiency in a number of mediums, from illustration through page preparation. Having experimented with it all, I am not easily impressed by new graphics tools, although I maintain an openness to any process or technology that will allow me to produce qualitative visuals with ease and variability. That is why I chose die Amiga in the first place, and it is also why 1 pleaded with the University of Vermont (where I now manage the Graphics Service, designing and producing instructional
visuals) to invest in it.
Over the last two years, my point choice has been validated. ! Have managed to purchase software dtat equals what would have cost hundreds of thousands of dollars worth of capability just a few short years ago, and the development is just beginning. You name the graphics package or the hardware interface, and I've either got it or am making devious plans as to its procurment. This is a padi of no return, (continued) not dial I’m having any second thoughts in anyway. I’ve also noticed that my business has gone through a radical shift in the last two years, comensurate with the development of
the Amiga. ! Am being called upon to produce more and more slide and video graphics, while the standard processes (those aided and abetted by the "tee-square" and the triangle) slowly atrophy into the distance, Graphics Design is slowly becoming Computer Graphics Design, and new tools and techniques are in constant demand, Money When I first began my Amiga obsession, the high-end cost of a software package was around two hundred dollars. We all used to gloat over the discrepancy between Amiga software costs and the cost (and quality variability) of IBM packages (not that many of those
packages could do what the .Amiga packages could). Of course, there was only a limited amount of software availability for the Amiga then (Remember?!!). Most of the software that I use everyday costs less then a hundred dollars a package, and some of the most useful much less. So why even consider speaking about a two thousand dollar package (and that is die "pre-release” price!)? Well, it all depends upon the level of your Lnvolvment.
Dialogue with a developer I dislike writing cold reviews of products, and instead prefer to pepper my comments with reflections gathered either from my own experience and or (best case scenario) remarks and anecdotes drawn from direct conversations with die developers themselves. I’ve always found the most creative people are the most generous with their time in granting such interviews. Roman Ormandy, die originator of Caligari, fits this pattern.
Many of us have known about the development of Caligari for quite a while, ever since Its speculative debut at SIGGRAPH some years back. At that time, Octree presented a videotape that allowed die viewer to travel between and amongst a graphic cityscape of looming shapes and byways. The presentation of this video, and rumors concerning the direction of Amiga software development just around die comer, sent expectatory shock waves (continued) zoe trope (zo'a trop)
n. [irreg. F. Gr. Zoe-, life + tropos, turning! 1. A device that
gave static images an illusion of motion. Known as the "wheel
of life", the zoetrope brought the magic of animation to the
parlours of the mid-1800's. 2. A new state-of-the-art advanced
animation system for the Amiga computer from Antic Software.
Now! The program you've been hearing so much about... Zoetrope puts you right on the cutting edge of animation.
Its high end features satisfy even the most demanding of professional users. Its unique layered structure makes it easy-to- use for the cas- Bring your imagination to life with Zoetrope: the faster way to animate.
Now with Zoetrope, The Animation System1'’, you can create magical motion.
Here are just a few of Zoetrope's exciting, advanced features:
• Spin and swoop titles and images through 3D space.
• Apply computer power to classic "cel" animation.
• Overlay and underlay (compositing) your favorite pictures or
Taking animation into the 21st Century By Jim Kent, the creator of Aegis Animator' HI Another great Cyber Graphics product.
To see the entire line of Cyber Graphics from Antic Software, visit your favorite Amiga* retailer.
To order direct, call 800-234-7001.
MM8AW3 Antic Software Amiga' is a registered trademark of Commodore- Amiga, Inc. Aegis Animator is a trademark of Aegis Development.
Zoetrope. The Animation System; Cyber Graphics, Antic Software and Antic are trademarks of Antic Publishing, Inc from one end of Amigaiand ro the other.
No doubt, this videotape either enhanced the developments of other developers, or may have catalyzed some developers into particapatory action.CThis piece of videography, by the way, is included on an instructional videotape that accompanies die release cum pre-release of the software). When I read about that presentation, I immediately found Octree’s phone number, and begged Roman for more information. He was most congenial, and explained the actual release was a way down the road, but said that he would take my name and keep me informed. I shuddered at the prospective investment, and filed
the conversation away in a fantasy drawer.
It was with a stir of memory diat I opened a letter from Octree in September of 1988 listing die availability of die pre-release version, including a price sheet of addendum hardware suggested for its use. Again, I reached for the phone. There’s been too much vaporware on the market lately, too many vendors offering their wares for sale and dien using die money to continue development. I dislike waiting six or more months for something advertised as “available now”, so it’s become a habit to call for die details before I sign checks or give out credit card numbers.
Speaking with Roman Ormandy can be like having a conversation with an electronic Picasso or a mensch in any odier field of endeavor, if you ask die appropriate questions. Caligari, 1 learned, was not only at the introductory stages of its planned development with many upgrades promised to owners, but die sheer depth and breadth of Mr. Ormandy's knowledge and interests may cause future seismic eruptions in die visual dataverse. I was certainly left with, the impression that I had spoken to someone whose mind roamed (as in Romin’) widi ease in fields as seemingly diverse as philosophy,
psychology, an, and AI.
Roman Ormandy is an emigree from Czechoslovakia, in his own words a defector. Some of us may think stories of America as a continuing land of freedom and opportunity are eidier passe’ or chauvenistic, but when you meet someone who has been able to struggle and succeed in an historical American fashion, a certain kind of shiver runs up your spine, even if you keep it secret from your more jaded friends. He has an advanced degree in Artificial Intelligence from the Prague Department of Computational Linguistics, one of the more advanced and prestigious institutions in Eastern Europe.
He has also studied computer sciences and psychology, and mentions exposure to the work “A Philosophy of Symbolic Forms” as a seminal text in his development. After saving enough money to fly to SIGGRAPH in 1985, he was exposed to and fell in love with graphics and visualization on the computer. Bob Periseau made a presentation with two Amigas at that meeting which immediately “turned Roman on”. He was not a developer at that time, but was concerned about the issue of the "human interface ’. He wrote the prototype for Caligari in the next diree months.
Realizing die prototype needed die kind of finnese only a master programmer could give it, he formed an association with Peter Kennard, a programmer widi very strong design experience who reprogrammed the module from scratch. Mr. Ormandy insists that die two and a half years that Peter spent working on Caligari was the main reason it was implemented, and he praises Peter's work unashamedly.
You may not agree with his philosophy in toto, but you have to appreciate the depth of his thought process once you engage him in conversation... ‘‘Technology defines the meaning of human life, even though we might be much more human without it. The strongest potential of 3D graphics communication is that it can enhance all of human communication. The original idea of AI was to create a human alter ego, which could enhance human capabilities. AI is the strongest science, and it can bring an expansion of human capabilities. New models will deepen our concepts of evil and goodness."
On November the 22nd, 1988, Roman Ormandy will engage in die legal ritual diat will make him a citizen of the United States. He complains diat this is too lace for him to be able to vote.
The Software Caligari comes widi an oversized manual packaged in a three ring binder with wo disks tucked away in a plastic pouch at the back. The disks are not copy protected, but are inscribed graphically and electronically with die users name and serial number for reference. One disk contains die program while the other is named “data base" and is used for storage.
The opening selection menu contains what appears to be two documents represented by icons familiar to notepad users. These are actually dedicated start-up sequences meant to tell Caligari whether die user is operating with an Amiga 1000 or a 500 2000.
Double-clicking on either writes the correct start-up sequence to your program disk. Then one double-clicks the left mouse button on die unassuming Caligari icon. After being presented with a high-res title screen, the screen blanks for a few seconds. The first workscreen that appears is called the Object Design screen. Instead of looking at a window of a world, you are looking through a window into a world. Before you stretches an XY grid, and in a short time you are made to feel much more like a sculptor then a graphics manipulator.
You get die unmistakable feeling that you can reach in and touch the objects.
The closest experience 1 can relate this to would be to assume die operation of die robotic hands that manipulate various substances behind protective glass panels. Quite a metaphor for microcomputer graphics!
The screen is in high-res overscan (736 x 482). You could also opt to toggle the overscan off giving you the normal 640 x 400 screen. You could also operate in video-res (eidier 362 x 482 or 320 x
400) . The manual mistakingly calls this "lo-res". At diis moment
in its operation, the program offers little in the way of
anti-aliasing, so high-res seems the appropriate choice.
These resolutions effect the rendering of the solid view
displays alone, and are useful to consider if you want to
save die image in IFF format for later manipulation in a
paint or animation program.
One of die most useful features when it comes to utilizing a Calgiri sculpture in a paint program is centered upon the way the color render options are designed. You are free to have your object rendered in a very small amount of colors in a paleue, but this does not mean the finished piece will have only those colors! No. It will invariably have a much wider range as a finished product.
When I first saw' the color menus, i had to reassure myself I was in Amiga's high- res mode because there were some 1 continued) HardFrame 2000 8-UP! The Eight Megabyte The Super-speed, DMA, SCSI Hard Memory Card with Amiga-specific Disk Interlace with 1.3 Autobooting DRAM Controller Logic I low fast is fast? HardFrame 2000 transfers data at Amiga bus speeds! It's actually faster than the hard disk mechanism itself! And even more important in the Amiga's multitasking environment, HardFrame 2000 has extremely efficient DMA circuitrv to get on and off the bus in almost no time at all: 28()ns
to get on; 200ns to get off. HardFrame 2000 autoboots under AmigaDOS™ 1.3 and is fully compatible with the new Fast File System. The core of anv DMA SCSI interface is its SCSI protocol chip and DMA chip. MicroBotics has chosen the new, high performance Adaptec AIC-6250 SCSI chip, capable of up to 5 megabytes per second raw transfer speed, and the Signetics 6S430 DMA chip running at 12.5 megahertz. Then we added additional FIFO buffering and enabled 16-bit wide data transfers for maximum throughput. The sophisticated design of HardFrame 2000 provides for automatic SCSI arbitration,
selection and reselection. The hardware supports either synchronous or asynchronous data transfer. HardFrame 2000 can function as either the SCSI bus initiator or the target and can reside in a multiple master environment. Physically, HardFrame 2000 is optimally flexible: the compact, half-size card comes attached to a full length, plated aluminum frame. The frame has mounting holes positioned to accept standard, 3.5” SCSI hard disk units such as those manufactured by MiniScribe, Seagate, Rodirne, and others (hard disk mechanisms must be supplied by the user or his dealer as a separate
purchase item). Alternatively, you can cable-connect to a SCSI drive mounted in vour Amiga's disk bay or in an external chassis. As many as seven hard disks may be connected to a single HardFrame. There is no size limit on each disk. HardFrame 2000 includes a 50-pin SCSI cable and header connectors for either 50-pin or 25-pin cable connection.
Also included is a current tap to power frame-mounted drives directly from the slot itself. HardFrame 2000 comes complete with driver, installation, and diagnostic software. Available September to.ss Suggested list price, $ 329 (hard disk not included).
All the memory space you and your Amiga 2000 need -in a modern, highly integrated FastRAM expansion board. In 8-UP!, MicroBotics went all the way to provide you with a truly Amiga-specific memory design to meet the special demands of the Amiga's high speed multitasking environment: The heart of anv memory expansion is its DRAM controller circuitry. Rather than compromising with off-the-shelf parts, MicroBotics developed its own, custom controller design and built it into high-speed, Programmable Macro Logic chips (Signetics PLHS501). These new, super chips (each 8-UP! Uses two PML's)
permit MicroBotics to employ sparse refresh technology to assure that your 8-UP! Is a truly zero wait-state minimal-refresh- collision memory design. If you're putting eight megabytes in only one slot, that means that you probably have plans for your other A2000 slots. 8-UP! Gives you new freedom to do that planning since, unlike other ram peripherals, it is an extremely low- power memory card- a single, fully-loaded, 8-megabyte 8-UP!
Draws an astoundingly efficient 800 milliamps! That's less than two-fifths of the power "budget" for a single slot! Low power draw also means that the card is cool-running for reliability and long life (not to mention a cooler Amiga!). 8-UP! Offers you maximum flexibility in memory configuration: it is organized into two separate PIC's (Amiga-speak for autoconfiguring peripherals). Each 8-UP! PIC consists of four SIMM module sockets; these sockets accept either 256k-byte or 1 megabyte SIMM’s (Single Inline Memory Modules). You can also purchase optional PopSIMM boards from MicroBotics; fill
them with conventional RAM ; then use PopSIMM's to fill your 8-UP! The card can run with as little as 512k of memory or as much as eight megs -with many intermediate configurations possible (particularly the six megabyte configuration, most desirable for use with a BridgeCard™). 8-UP!
Is speedy, efficient, custom memory technology for your Amiga 2000 -and it's available now! S-UP! Suggested list price is $ 199 (Ok installed).
Optional PopSIMM's are $ 49.95 per pair.
The HardFrame 2000 photo shows the product with a MiniScribe 20 megabyte hard disk installed. Hard disks are not ncluded in the purchase price of Hard- Frame. Note that if placed in the first slot, HardFrame uses only one slot.
The 8-UP! Photo shows the card hall populated with conventional SIMM modules and half with MicroBotics PopSIMM's. PopSIMM's (without ORAM installed) are available as separate purchase items.
Great Products Since the Amiga Was Bom!
811 Alpha Drive, Suite 335, Richardson, Texas 75081 (214)437-5330 SOLD ONI y THROUGH YOUR AMIGA DEALER Tell your dealer he can quick order from MicroBotics directly - no minimum quantity -show him this ad1 "Amiga* is a registered trademark of Commodore-Amiga. "HardFrame OOO*. "8-UP!", 'PooSimm-. Are trade names of MicroBotics twenty-four separate colors on screen instead of the standard sixteen! What this means to the IFF user is astounding, although the awake and aware user has probably already guessed at how this is accomplished. I found it out when I dumped a creation saved in IFF format to
Dpaint for further rendering.
Intermediate colors are dithered, utilizing mixtures of two adjacent colors in the palette. This means a full color model can appear on screen utilizing only two bit planes (four colors). This leaves you with the other twelve colors for more extensive painting. If you desire to utilize the dithered colors, just make a brush of an area of that color and use it as a patterned fill in a bounded area. The dithering is so exact that you have to use an on screen magnifier to appreciate it.
Of course, color rendering is the last step in Calgiri’s design process. The first is the actual modeling of tire sculpture under consideration. I've found that the first necessary step is to tell the program where your storage is to be directed and the path that must be taken to get there. This is the most difficult, in my opinion, operation in Caligari. I’ve already mentioned this to Roman, and perhaps others have loo. Don't be surprised if your copy allows you a much more friendly pathway. Five separate kinds of graphic files can be saved and loaded at this time:
• Objects-sculpted elements or parts libraries
• Poly,gotis-shapes to be extruded and or spun on an axis
• See nes-compilatio ns of glued together objects
• Animations-scripted wireframe or solids
• Lights-positions and options for light placement Caligari uses
scripted animation files drat can also be saved and loaded.
They are created on a word processor of your choice, and a complete breakdown of die appropriate terms and syntax is notated in the manual. As of this first pre-release, the system only dumps die frame-by-frame animations to a single frame controller hooked up to a VCR, but an immediate release will address saving the frames in a compressed IFF format as well. Mr. Ormandy was very excited (as I am as an owner user) concerning the release of Pageflipper+FX from Mindware International (about S150.00 US). This package allows magical manipulations in the IFF animation environment. For those of us
unable at this time to afford single frame controllers and professional VCR's, diis is a way to save Caligari creations to video.
Mr. Ormandy is adamant concerning wanting as few hierarchical menu selections as possible in Caligari, and has succeeded in that wash even in this first version. Non-hierarchicality means there is little branching in the user controls, everything being present on the screen in a block. This is accomplished by separating various menu choices into blocks so some operations can be accomplished with as little screen clutter as possible, giving you maximized views of your designs. He says “other software has hierarchically expanding menus the more options that are added. In die future, we will
eliminate most of these,’' At this writing, there are no print functions in Caligari although that will probably be remedied by die end of 1988 or sooner. I have successfully printed Caligari screens from the program by utilizing the program from IrseeSoft in Germany, TURBOPRINT (about $ 50.00 US), but was not able to prinl the 3D Object Design or Screen Design environments. Of course, you can print your finished sculptures from many programs once diey are saved in the IFF format. Future upgrades of die software will also address plotter output.
This only makes sense, as Caligari could prove to be one of the most professional micro-computer tools on the market for industrial design. Cost-wise and performance-wise, it will undoutatably find its way into the hands of engineers, mechanical and architectural designers, as well as lire art and animation community. When die print function is added, it will also hopefully allow the user to dump the wireframe creations in die 3D environmental workspaces to die connected printing device lisLed in Preferences.
Two present methods exist for entering visual creations into Caligari’s 3D world. One is a -primitives” menu which contains all of the standard 3D figures expected.,.cube, sphere, triangles, truncated figures...and there’s room for more in die menu. The other method is the use of die "extruder". This choice presents die user with a grid (which may also be reconfigured). On the grid, the mouse is used to create a dosed polygon in a step by step fashion. This polygon can then be extruded (given depth), used to make a cone like figure, or spun around eidier an internal or external axis in a lathe
like operation. Caligari is so fast, I mean SO FAST, diat you barely have time to breathe before your directions are translated into 3D artifacts in the workspace. Whatever this program benchmarks at must be astounding!
Once on screen, various elements in the design can be stretched or squashed in any or all of the XYZ dimensions. Then tiiey can be glued together and unglued, and moved on, above, below, or very7 far away from die 3D grid. You can zoom in close enough to almost smell diem and out far enough to almost lose them. In addition, you can spin and move the whole grid, including tilting it 360 degrees. The manual is dearly written, tiiough I myself would prefer a smaller size because of limited workspace. The inclusion of an index would also be useful in a future version, as would be some
representative graphics in die manual. Multi-tasking is not yet possible, but may be redressed in die near future.
Animation As stated earlier, an instructional videotape is included with your purchase. On it are several animations that give you a basic idea of what Caligari can accomplish now, and where it's headed. One demo animation is also included on the disk, and you can preview all animated creations in wireframe mode. The biggest advantage Caligari offers as both a sculpting and graphics too! Is speed. If you've got the right amount of memory' (I’d say three megs or better, although you can function in a limited fashion with two) you’re in good shape. Script files can be created on any word
processor or text editor, and a very finite amount of terms produces a very complex animated sequence. A complete listing of the syntax is at the back of the manual. I am sure more "animation scripting primitives” will be offered in die future,
i. e.. pre-designed scripts that will take y'our creation and
manipulate it in a preedited fashion. Once you design and
proof your script, it can be used widi any sculpted creation
if it is des:red.
(continued) There are a million great reasons to write an Amiga Program.
This year, The Disc Company will spend more than one million dollars acquiring new Amiga software programs to market around the world.
Which is great news for all the programmers and product designers hoping to cash in on the software they’ve developed.
The programs we're looking for need to be innovative.
And they must meet the highest quality standards. Were especially interested in games, audio and music products, video programs and graphics software, but any original product will be considered.
Once they’ve been accepted, programs will be translated into eleven or more languages, and marketed worldwide through our international distribution network.
As the world’s fastest growing Amiga software publisher, we’ll make sure your product reaches more people, in more countries than you ever thought possible.
If you've got a program you’d like us to consider, call or write us for a free Software Submission Kit. All the details will be enclosed.
In the United States and Canada: The Disc Company 3135 South State Street, Ann Arbor, Michigan 48108 Phone 1-800-456-8418 or (313) 665-5540 Fax 1-313-761-9586 In Europe: The Disc Company-Europe 1 Rue du Dome, F-75116 Paris, France Phone (33) 1- Fax (33) 1- In Australia, Asia & New Zealand The Disc Company- WordLine
P. O. Box 404, Round Corner, NSW 2158, Australia Phone (61) (02)
484.8086 THE DISC COMPANY Amiga is a registered trademark of
Commodore International, Ltd.
Presently, I am using Caligari in rwo very different ventures. In the first, I am creating an illustration for a national diskazine (JumpDisk) for a scene from Dicken's Christmas Carol. In this scene, Old dead Bob Marley, chains and all, is approaching die open door to Scrooge’s bedroom. With Caligari, I have designed the hallway, walls, bannisters, and downward stairway in Scrooge's house. 1 will then render diis in 3D after getting die proper angle of view, and paint other elements into the scene. The second project Pm involved in concerns a design idea that a friend of mine has for a new
commercial aircraft. I’m going to render it in 3D, spin it around in an animation sequence, and videotape it for the proper agency in Washington D.C. Calgiri will make this possible without any of the upgrades that can only improve its current magic.
The biggest battles Mr. Ormandy faces in convincing users in the bulging- at-the-seams Amiga 3D Animation marketplace to invest thousands of dollars in Caligari centers, it seems to me, are on three issues: Comparative cost, IFF compatibility, and die finished smoothing characteristics of one’s work.
At this time, you are paying for the use of Caligari’s unbelievable interface and speed. As long as no-one else releases a similar design, Caligari will indeed attract users who lust after its speed and ease ol use. But given the history7 of competitive fervor in die industry and the rock-star accolades great software designers receive, who can say how long Caligari will remain alone on the peak of Mt. Interface. As to IFF options, Caligari is at a serious disadvantage at this time. All of the odier vendors offering professional 3D Animation tools at least allow the user to input IFF
backgrounds, and four that I use also allow for IFF hrush-wraps on 3D objects. Caligari has to redress diis as soon as possible for those of us to whom the Amiga is more man a toy7. As for die current smoothness of the finished product, Caligari isn’t. Mr. Ormandy promises a quick fix in diis area, and the quicker the better.
Polygonal shading is apropos in a very limited number of situations.
The Future Roman Ormandy can tell you about near and far plans to upgrade Caligari, some as close as weeks away and others two years down die road. I'll just list a representative number of them to give you the flavor of what’s ahead in Amiga graphics engines:
• IFF input as well as output
• VLAN & IFO animate
• Full color rendering (16 million colors widi the proper
• Addressing a Targa board on an .Amiga 2000
• Free upgrades for a year to purchasers of the pre-release
• A complete graphics animation workstation with die Amiga as the
central artifice for under $ 10,000
• New primitives in the extruder environment
• Marketed libraries from odier users
• Dedicated materials and surface textural rendering
• Suggestions as to professional hardware interfaces
• State-of-the-Art desktop videography The list is even longer
then diis.
But you get the idea. The name of the game is support and continuance, as well as designing and marketing an original offering. The computer graphics multiverse will be a lot different five years down the road, and I’m sure Caligari will be playing a veiy central role.
No matter what your decision regarding a purchase of Caligari at this time (although if you are a professional designer in any area that utilizes computer graphics and the Amiga, I would urge you to jump on board) 1 would plead with you to purchase the demo disk from Octree (about S18.00). It does everything that die pre-release version does except to save your creations, and if nothing else, you’ll have a lot of fun. Here's a few words gathered in an interview with Roman Ormandy himself... ‘Caligari has no competition. We will present a family ofproducts in the future. Human 3D communications
is our business. Imagine Caligari moving solids rather then wireframes, simulation rather then animation... interactive microworlds and new forms of communication. Octree will provide social simulations in interactive 3D. We will be working upon human problems with 3D simulation products, work stations hooked up to fiber optics networks, F1DN networks within five years. Business applications will be introduced more and more to 3D applications. We Macintosh opened up a whole new way of dealing with information in a 2D way, and now the Amiga is a bridge to a more advanced computer architecture.
Amiga is the best current video-output computer for 3D graphics. ” But Commodore, take heed. By his own admission, Roman Ormandy is not an Amiga fanatic. He is just using the best system currently available, and will port his wares to other dedicated systems in the future. If Commodore doesn’t stay on top of die heap, it will be surpassed, and developers like Roman Ormandy will market their wares elsewhere, is Caligari for everyone? Obviously not. Is Mr. Ormandy’s philosophical stance an indication of a brave-new-world mentality? Perhaps, Only time will tell.
Editors Note: An updated version of Caligari will be out by mid-December. It contains specific troublesome data base fixes, and a completely revised look and feel for the file requesters. It also boasts being enabled to access the 68020 68881 configuration which significantly increases modeling and rendering speeds.
A number of commands have been added to the animation module as well. Both VLAN and VSIO are now fully supported, Caligari OCTREE SOFTWARE 311 W.43rd St, Suite 904
N. Y, N.Y, 10036 Pre-release version: $ 2000 Creak tfoaf° Own...
Stop-Motion Animation on the Amiga by Brian Zupke Most of you
are aware of the Amiga’s graphics, sound, and specifically,
animation capabilities. There are many animation packages
available for the Amiga, from Aegis Animator to Antic
Zoetrope. Some of these packages generate objects from a set
of coordinates while others use IFF pictures. The problem I
have with the latter packages is that I’m not an artist and
cannot draw very well. For those of you who are like me (and
everyone else too!), there is an animation technique that can
bring about amazing results. This technique is called
stop-motion photography.
Stop-motion photography is a process where a static scene is photographed over and over with minor changes made to the scene between photographs. When the pictures are shown in sequence at a fast rate (typically 8 to 24 frames per second), the objects in the scene appear to have motion. Stop action photography is used often in animation. Many short films have been made this way- using clay models. It is also used for special effects in motion pictures. For example, the Star Wars movies used stop-motion photography to animate all the spaceships.
With very little equipment, stop-motion photography can be done on the Amiga. All you need is a video camera, video digitizer, a paint program, and programs to create and play back animation files. I have created several black and white animations of some toys and other household objects using a video camcorder, Digi- View, Deluxe Paint, MakcANLM (PD program, author unknown) and ShowANIM (PD program by Gary Bonham of SPARTA, Inc.). 1 was really surprised with the results!
Enough people have asked me how I made the animations that I decided to share what I've learned with everyone. When reading this, keep in mind that I'm merely an amateur in animation and photography. The techniques that I will describe are for black and white animation. They are not definitive nor will they work for everyone, but they have worked for me and hopefully you will be able to use this information to your advantage.
Choosing a subject Objects that have a high contrast in brightness seem to work fairly well. I had no luck whatsoever with a white fuzzy horse (it showed up as just a white blob). Rubber toys that have wires inside, such as Gumby and Pokey, are excellent for body movement. I used a “Noid” rubber toy in my animations with fantastic results.
Choosing a background Using a black background and surface works best. This way only your subjects will show up in the picture, providing for quicker editing and smaller IFF files. I used a black cloth to cover the surface where 1 placed my subjects and used another for a back drop. If you are working with a dark subject, then it may be better to have a white background although the IFF pictures will be larger in size and you will probably need to do more editing in a paint program.
Lighting Use at least two lights and place them at approximately 45 degrees on either side of the camera (this is the best lighting method for digitizing pictures).
Do not have a light source close to the camera because your subjects will not have a good contrast causing a loss of detail. The amount of light (brightness) to use depends on your subjects. What 1 have found to work best is to set the lighting so the background shows up as all black (the background color), This greatly reduced the amount of "retouching” I needed to do with Deluxe Paint.
Camera The video camera you use should be placed on a tri-pod or on some sort of stand. It is important to have complete control over the camera and its movement. Having the camera point at the exact same location requires less editing later. 1 used a Sony 8AFU 8mm camcorder for the animations and it worked fairly well. Although it doesn’t have the resolution the B&W security cameras have, it is convenient to use since it has a viewfinder, I can quickly see what is in my field of vision.
Having a zoom lens is also handy.
I can make my subjects appear to move towards or away from the camera by changing the amount of zoom over a series of frames. Special effects in motion pictures are often done by having the subject remain stationary while moving the camera to give the appearance that the subject is moving.
Script Before you start to digitize a sequence of frames, it is a good idea to write up a script or storyboard describing what kind of action is to take place. If you describe or sketch each action in terms of frames, then digitizing the action is simplified. For example, I wanted my "Noid” toy to spin around in a circle, and decided that 16 frames were enough to show that action. For each frame of the spin, I rotated the subject l l6 of a circle. Without a script, it's easy to get lost and forget which direction objects are supposed to be moving.
Digitizing Procedure Once you’ve got a script and have set up some sort of stage (where all the scenes will be shot), make adjustments to the focus and lighting. These adjustments should be made before you begin saving digitized pictures to disk.
Digitize test pictures of some of the key scenes in your script to fine tune the set.
Now that you have everything set up, you’re ready to start digitizing the scene. For each frame you digitize, write down any important information about it, such as necessary editing. Save each frame with the name of the scene and a frame number (example: noidl.bw, noid2,bw, etc.). This makes it easier to keep track of the frames you've digitized.
While each frame is being saved to disk, start making the changes to the scene for the next frame. This will reduce the amount of time it takes to digitize all the pictures. Continue this process until all the frames you want have been generated.
Editing Once all the frames have been saved, you may want to create an ANIM file before you do any editing, just to see how the sequence turned out and what kind of editing is required. The "MakeANIM” utility is the easiest way to create an ANIM file. First, create a text file listing the names of all the frames in the order you want them shown (include the file pathname of the pictures if necessary) and save it to disk. If you want the animation to be a continuous loop, be sure to list the first two frames in the sequence again as the last two frames.
Run the "MakeANIM” program by typing: MakeANIM sequence name.ANIM where "sequence" is the name of the file containing the frame sequence you've just created, and “name.ANIM” is the name you want the ANIM file to be saved under. The "MakeANIM” program will load in each picture and display it on the screen. It then calculates the differences between the current picture and the previous one and sat es this information in the ANIM file. When the ANIM file is complete. "MakeANIM” will report how many frames were processed.
Now use "ShowANIM" to see your animation. Type: ShowANIM -1 +5 name.ANIM for non-continuous loop play or type: ShowANIM -c +5 name.ANIM for continuous loop play. The "+5” specifies that each frame will be shown for 5 jiffies (1 jiffy is 1 60 of a second).
Version 5.3 of ShowANIM allows you to control the animation while it is playing with the following keys: FI to F6 - set frame delay to Fn jiffies per frame F7 - set frame delay to 10 jiffies per frame F8 - set frame delay to 20 jiffies per frame F9- set frame delay to 30 jiffies per frame FIQ - set frame delay to 60 jiffies (one second) per frame down arrow - pause animation up arrow - continue animation right arrow - show next frame left arrow - restart animation C - switch to continuous loop mode L - switch to non-continuous loop mode (continued on page 31) Wie Wonderful World of Was Unique
by R. Shamms Mortier A review of the Amiga animation software products of Hash Enterprises If you are considering doing animation on your Amiga, any kind of animation, then you would do well to investigate the numerous software packages offered by Hash Enterprises. If you skip over these on your way to animating your fantasies, then you truly do so at the expense of your own creative potential and capacity7 for mastering microcomputer animation. A few years from now, if their creative potential and determination hold out, Hash Enterprises will stand in that rarefied company at the top of the
animation developers mountain. Even now, the ripples of their efforts are beginning to make waves that wash over all Amiga animators, and their work is pushing the "expected" and the "possible’’ to new states-of-the-art. Don’t take all of this laudatory verbiage as gospel, judge for yourself. Investigate the products and you'll "see” what I'm saying.
Ilash-History To hear Martin tell it, he’s been an addict of the Saturday Morning animated madness since he was eight or so, and even expanded upon that obsession in his teen-age years by amassing a huge comic book collection. His grandfather was the recipient of many of Martin's early graphic works. He admits to “living for things animated’’, and at one time was a guest on the Art Linkletter show because of his interests and habits. Later on he received his B.A. in Electrical Engineering and an M.B.A. in business, to be enhenced still later by a Masters Degree in Computer Science. .After a
stint in industry as a “nameless cog in a giant machine” where he observed that his soul tvas being lost, he started to find his way back to those life adventures that had always attracted him: Animation and the arts.
The return actually began back in 1981, when with "visions of floating spheres” he contacted a special effects producer in Portland. Oregon. Through this association, he met Gene Ellis (animator, photographer, cameraman) and they founded a business that lasted some four years. They created a special camera which produced and filmed animation and special effects. “Computer animation was just beginning and 1 jumped right in”. It was at this time that he envisioned attributes of a system Lhtii would eventually find their way into Hash's Animator: Apprentice software..,”n character animator like
no other...treating each character as an actor in a play, each of whom had dialogue, a script, and direction...! Formulated the concept of a Scene Editor".
Although he believes “mechanical animation" has its place, his first concern is to preserve the fifty years of animation history that have allowed the audience to identify with the animated characters on the screen. The heart of “Apprentice” is the modeling section, based on a process he unashamedly calls “Hashnique”. It allows you to construct 3D fully painted organically perceived models, creatures that run, walk, crawl and behave in legitimate “alive” ways.
My introduction to Martin's work came from my response to an ad placed on the back page of one of the haughtier Amiga magazines. It was a rather small unobtrusive announcement considering its content, obviously designed without the help of some slick agency. What it offered was simple..."Disney style animation on the Amiga". No beating around the bush or qualifying statements. Just that. At that time, the program was one of the most expensive on the marketed as far as graphics and animation. $ 500.00. It was called “Animator: Apprentice" and my lust was ignited. There was a phone number listed
(and good thing, because without one, I would not have considered the purchase.
Phone numbers assure me, rightly or wrongly, that the vendor has some degree of stability' and potential for longevity). Martin himself answered the call. In a world where "service" often means being shunted from one level of ignorance to the next, 1 was actually speaking with the developer himself. He gave me all of the details that I needed to take the plunge.
Service with a capital “S''.
That was a little more than a year ago, and at that time the “line” of Flash products was a monafilament line,..Apprentice and nothing more. As you will discover from my description of the products that they now' offer, (and read "now” as “available now" and not as “vaporware”) though their product line has become a veritable rope, intertwined products that answer needs that many computer animators didn’t even know they had. Products that handshake with each other and also with other non-Hash works. When I listen to Martin speak about his work, I get the impression that I'm listening to an
excited teenager ready and able to revise history and the tvay things are done. I've never heard the jaded overworked crotchety beleaguered entrepeneur in his voice, so I'll have to assume that those all too common traits are not a part of his persona. I’ve always suspected that he leans to the artist side of the artist- scientist personality.
Animation: Apprentice nky dim ink-jet ink f specially formulatt and Dtablo c-150 p 3 sizes, 4 colors, tested over a year half the price of the manufactures ink.
I or printers d for the Xerox 4020 rimers.
Brummbar's Backgrounds a series of IFF painted backgrounds, brushes and objects. Brummbar is recog- iiiz.eu uuuuynuui mt try as a master of th Palette.
1 IllUUb- e Amiga ii cable interface connecting Y-C video to S-vidco (super vhs, ed bela) VCR s and monitors sw This first offering from Hash Enterprises still stands out as the most unique, and remains at the center of the entire product line. The present version as of this writing is 2.0, and it has been revised and upgraded too many times for me to list, each time at a minimal cost to owners. This is the most unique animation engine on the Amiga market.
(213) 277-8272 Not that you can't design those "floating spheres"
with this package, but that's not really its main purpose.
Martin wasn’t kidding w'hen he offered the Amiga community
tire chance to design, render, and animate Disneyesque
characters. Within the limits of the resolutions of the
machine, this is quite possible. The heart of Apprentice
gives the Amiganimator the unheard of capacity for not only
creating, but storing these creature parts in a library'
for future use. They can then be used to produce features
limited only by the creative extent of the animator’s mind
and her his access to the right recording equipment.
How close is that to your Amiganimation dreams?
The whole operation is tied together in a fairly complex hierarchical system, one that requires a good amount of study and experimentation. My main complaint is that the manual doesn’t offer as complex a tutorial as is necessary' in this quest. Perhaps this is because Animation: Journeyman, the next phase of the task, is soon to be released (Spring 1989?), and all creative juices are flowing towards that end. 1 don’t know. The Apprentice manual also has no index, and that’s an oversight needing redress.
Those of you familiar with other review's articles that I pen, recognize this to be an ongoing complaint I have with many of the Amiga packages, especially the more complex ones. All manuals MUST have compleLe indexes! Users should demand this as their birthright! One last negative and then on to the mashed potatoes. The present manual is a reduced version of the first one, which came in an oversized binder. Obviously, the original was put on a copier and reduced to its present size. This made its production more economical for Hash Enterprises, but for folks like me with the ocular capacity
of a snail, it makes it much more difficult to read. Hopefully, this will not be the case ¦with Animation: Journeyman.
The very soul of Apprentice's engine consists of the Object Design Module. Here, one designs unique body parts. For my previous complaints concerning the manual, I should also state that it progresses very' clearly through each of Apprentice's stages: Sculpt (Object Design creation editing of 3D "parts”), Character (relating or building the full objects), Action (defining the parameters and boundaries of motion that an object may display), Director (defining the speed of an objects movement across a stage), Rehersal (running through a test of the final animation), Record (the finished
rendering of the piece), and Display (playback). It is in the Sculpt section that Apprentice best demonstrates the ingenuity' and creativity of Martin Hash.
Objects are called “segments”, discrete body parts. You load in a “visage” (front silhouette) and a “profile” (side silhoueue), w'hich you have previously manufactured in a dedicated paint program. On top of this, a texture map (surface features) is placed. The computer then combines tire totality of this information into a 3D object, w'hich, ¦when married to other objects, represents a dedicated character. The non-textured form is called a segment blank, and is composed of 3D slices computed from the silhouettes, much like present scanners in hospitals are able to generate visualizations of
internal organs and processes through non- invasive techniques, Specific palette locations are demanded for foreground, background, and shaping colors, and must be adhered to in the paint program design stage. Varying the axis of spin will allow shapes to bulge and protrude at (continued) Amazing Computer Systems is hoi Our sizzling selection of Amiga products has become the talk of the town. From more than 1000 software titles in stock to the hottest selections of the sculpt stage. A special touch-up procedure is offered after texture mapping occurs, and the object is ready to be saved for
future participation in the final character design.
Amazing Computer Systems. Inr.
Franklord tillage Shopping Center 3030 N. Josef lane Mt |2 doors South ol Skaggs) Carrollton. Texas 75007 (214] 394-8383 Open Mon.-Sir. Ifam-ipm Ihtin. LOim-Spm A-A-.rg Ccno -ttf StVtn IS VX r Yf. N any • n ? V PtfkiOTiXr. Inc C Ptr&rq CompJ X Character implementation is next.
It is in this phase that much familiarity with the program is required. Characters can be composed of one or of several “figures”, and several levels of object hierarchy are possible. Attributes such as “siblings'* and "progeny" ad infinitum can cause you to lose your way if care and attention are lost. Each segment can represent one ‘ bone" of a completed figure, and if care isn’t taken, strange unexpected Frankensteins can result (has Martin checked with the EDA and AMA for the appropriate license to practice digital genetics?). Everything can be open to Editing, Culling, Divorce, Adoption,
and Placement, giving you the tools for very complex character development.
In "Action", you are allowed to define the movement parameters of a character. This is a great screen, and you might spend many hours here without ever considering moving on. Here is where you witness die amazingly lifelike hardware, accessories and books.
All at red-hot prices. So remember. When you’re hot, you’re hot. And whtn you're not, you're not shopping Amazing Computer Systems.
Movements of a stick figure moving in real time from front, side, and top views.
You can tweak the angles of selected bones, adjust the starting-ending positions of the figure, and have it engage in bouncing and stretching actions. You are advised to keep a chart of the actions, as they can quickly become extremely complex. It would, in fact, be smart to keep dedicated journals of all of the procedures you experiment with for future reference and post-edits.
“The Director” allows you to control the choreography of a scene.
This is done through a combination of camera, stage, and viewplane movements. All results can be previewed. "Rehearsal” allows you a preview of the entire choreography, including playback at Frames-Per-Second (FPS) ranging from 4 to 60. The maximum rate might not be achievable if your work is too complex. Then "Record” does what it says. You can either “pack" the frames for maximum storage, or render them in IFF for further treatment. You can choose the color range for 2, 4, 8, 16, 32. Or HAM.
Shading can be added so that the object responds to light sources and specular attributes, and overscan is also possible.
“Display" is the final choice, allowing you to speedup or slowdown the action during playback, or to view it one frame at a time. It can also be played backwards.
This package can be immensely valuable to the Amiga animator, and is truly a precident setter. The present cost is $ 299.95. jr Animation: Flipper ''Flipper” animation is becoming a generic term in Amigaland. Many vendors produce Flipper style programs in various levels of difficulty and application. The easiest type (of which the Hash version is an example) is good for “pencil testing”, pre-checking a series of frames before render and record operations. The most optional for comparison would probably be PageFlipper+FX from Mindware International (retail: 5150.00). THEHOnEST AMIGA STORE IN THE
Considering the price of Hash’s Flipper of 559-95 and its options, it is a good package for the price. Resolutions supported are of the IFF type, not ILBM, so that HAM is not available. All other resolutions and parameters are supported including overscan, although you should take care not to mix resolutions or palettes in any one sequence. Two types of “packing" are offered: ANIM files and special HASH files (for use with other Hash programs). The technique is simple. Load and display a number of IFF frames or paintings, speed of playback being somewhat determined by the complexity of tire
images. A range of 4 to 30 FPS is possible. The manual is adequate and clearly written. This is the easiest program in the Hash series.
Animation: Effects I have made good use of this package in the production of some very involved titling and instructional videos at the University of Vermont. At a suggested retail price of 549-95, this software is a good bargain. Once you learn the interface operation, which is a cousin to Apprentice, you can create very complex choreographies useful for fanqr titling applications. Although not as seemingly sophisticated as VideoEEX-3D from Innovision Technology, which operates exclusively in HiRes (retail for about $ 150.00), “Effects” will allow you to utilize any of the Amigas IFF modes
including overscans. Wipes, scrolls, and You thought Microfiche Filer was just for WIMPS*?
Now it’s for PROGRAMMERS, too!
The easiest-to-use database has just become the most powerful with the introduction of Microfiche Filer Plus™.
Microfiche Filer Plus™ includes a full programmer interface using Arexx. Its 33 powerful new commands allow database access from any Arexx macro.
In addition to Microfiche Filer's lightning sort and search facilities, Microfiche Filer Plus™ adds: ? Automatic Field Calculations . . HAM Picture Storage '? Database Programming u Direct Control of Other Applications D Dynamic Data Import and Export with Other Arexx Compatible Applications ‘Window, Icon, and Mouse Persons!
Mr Use Microfiche Filer Plus™ to: ? Control your terminal program and store your downloads ? Index your disks and execute programs directly ". I Cut and paste data to such programs as TxEd or TeX ? Store and execute Arexx macros in the database Only a REAL PROGRAMMER can appreciate the full power of Microfiche Filer Plus™!
MiGROFIGHE plu; Only M 79. (ARexx sold separately) r= OFTUJflRE vmonyinc.
P.O. Box 3319, Framingham, MA 01701 For your nearest dealer call 1-800-527-7014.
In MA call (508) 875-1238.
Flips can be jammed into a choreographic listing and applied to any chosen screen or brush, depending upon the quantity of RAM your machine lias. The larger die matte though, the slower the display is likely to be. I like to work with smaller text brushes and genlock them for the final result. Like VideoEFX-3D, the finished work is saved to a special data disk one frame at a time for later replay.
Unlike VideoEFX-3D, this package also olfers you the option of adding a light source and variable shading possibilities.
Packing options accompany the saving process, and IFF backgrounds can be included. Acceleration of frames from one to another can be individually controlled. The 68020 68881 is advised and supported. “Effects" is really three separate programs: Wipe (allows you to generate various screen transitions), Scrolls (great for scrolling credits and Olher graphics), and Flip, the spinning rolling functions. For the money, this program is a bargain. The manual is a bit harder to read than ‘‘Flipper’, but clear tutorials are included.
Animation: Stand There is an opening scene i.s Disney's Pinnochio that moves the view from a night sky, through the streets of a small village, right to the puppet maker’s doorway. This whole scene was painted on one giant canvas, and then the camera was moved accordingly. Ail of this work was meticulously accomplished on an animation stand, and Hash’s “Animation Stand” can be utilized in much the same way. One experiment that I hope to attempt in the future is to use ExpressPaint (P.A.R.iS 100.00) in this process. ExpressPainr allows die user to define a giant screen size that can be scrolled
in steps, so that a very large painting i.s possible. Imagine floating over an ever changing background. Hash has made it possible. The manual suffers from too small a type size, but it's clear enough to get you addiciively involved.
Animation: Multiplane This is one of Martin’s latest offerings, and answers many animators needs in the Hash environment. It retails for S89.95. The old definition of a “multiplane" relates to the Disney multiplane camera used for the first time in the production of “Bambi". It consists of several movable layers or plattens upon which artwork is placed. The camera shoots through each sandwiched layer that has transparent areas so that the underlying layer can be seen, allowing for amazing depth and action.
Hash’s Multiplane allows the Amiga animator much the same alternatives.
Depending upon your machine’s memory constraints, you can shoot through your frames stacked background colors from one level to the next. One Meg is required, and 2.5 is needed for PliRes stuff.
The manual is the best of the Hash series so far, clearly written and well documented in large bold type, with adequate tutorials sprinkled throughout.
Various effects can be produced that push multiplane into new experimental areas: Color Control alters the RGB color guns in any animated sequence: Contrast sets the threshold values; Brightness allows you to transit from a black all the way to a white screen; Dissolve fades one layer into another; Image Offsets (continued) Jjyp t its se t for AMIGA 51210 Unleash your creativity Organize your thoughts THINKER An Outline Processor & A Word Processor & Picture Display with Hypertext links to Text and Applications THINKER helps you write programs, books, and articles or organize reference
material, pictures, and documentation.
Introductory Price $ 59 No Credit Cards, CA Res. Until add tax, 30 day guarantee 4 89 Poor Person Software 3721 Starr King Circle Palo Alto, CA 94306 415-493-7234 controls the XY presets; Pixelate changes the width height of pixel boundaries; Polarization remaps the pixel colors; Strobe Motion Blur simulates speed effects; Shadow allows you to drop shadows on the back layer; Wipe offers sophisticated transitions. All changes can be controlled on a frame by frame basis as well as globally. I have only begun to test drive this package, but already question how71 was able to do without it.
And On And On... The Hash Enterprises Animation Newsletters are packed with upgrade information, hints and tips lor beginning and advanced animators, and special pricing on new and revised products.
Also supported are the animators that design and submit addendum products.
Ail of Hash's future works will be copy protected using the “key disk" method, and who could blame him, considering the state of rip-offs in the industry. 1 wouin't like to have authored this stuff only to have it appear on some teeny- bopper's bulletin board for downloading.
Extensive testing and listening to user feedback assures the user that all of the Hash line will be constantly updated and revised at a very nominal user charge, usually jus: S5.00 per disk. There is even an automatic update program whereby users are sent the upgrades automatically and billed for the difference. Miss one payment for a long enough interval, and no more service for you. Just tell them you want to sign up and send in serial numbers of present Hasheries. The current newsletter (volume two number four) also includes a list of commands allowing you to run everything from the
CLI. I'm convinced that Hash and Co.
Want to offer their version of even' possible program that can be used in the CompuAnimation environment. Let me hint at some of the releases that will either be available when you read this, or that are just around the comer... Animation: Editor (559.95) Edits files created for display.
Included are conversion routines that allow for handshaking with other animation formats and products.
Animation: Rotoscope (579.95) Hand modify previously generated animations. Load a background animation into the computer and draw into an overlay animation. Supports all resolutions including HAM, and includes a special HAM black and white conversion module. Allows HAM backgrounds for norma! 52 color overlays.
Animation: Soundtrack (Beta release on Dec.l, 1988) Synchronizes soundtracks with animations. Promised to be simple and intuitive to use, yet offering powerful results.
Animation: Quick 2D (no release date set yet) Animation: Journeyman (Spring 19S9? Upgrade from Apprentice around S100.00) The much awaited professionally oriented upgrade to Apprentice.
The Farther Future Martin Hash dreams about being a major player in the transition of animation from film to video, and from the expensive studios to the home workspace. To this end he has met with Bill Hanna himself, and has gathered some disquieting facts that will effect this transition. Foi one, he learned that most of the work done on the Saturday Morning cartoon shows is done in Asiatic markets, and that the animators are paid about 25 cents a cel! Thai's about fifreen dollars for a full days work, Can you imagine an American professional animator working for that? Not hardly!
This means ways to produce more cels in a day than currently possible must be found, and that's where the computer comes in. That means better hardware and new standard peripherals for all interested parties. Of course there's a built in conundrum here. Instead of bringing work like this back home to the
U. S., the same Asiatic markets may opt for the same technology.
Well, I'm sure that whatever happens. Martin will be there
somewhere, marketing his state-of- the-art wares.
Other dreams that spin in his animated consciousness, concern utilizing 3D animation in the 3D stereoscopic realm and also In holographic work. He is already engaged in supplying animated sequences for a new generation of video games, and in working up new 3D scenes for the Viewmaster stereoscopic viewers. Not to be caught with all eggs in one basket.
Hash Enterprises is porting its wares to IBM, Atari, and Apple systems.
They also offer an expanding series of character disks at 524.95 each.
Now available are Dinosaurs, Dragons.
Knights, and Santa and Triends. Two disks of Geometric shapes arc also offered. Anything purchased direct from them gets you a 20% discount. .Many contests are available for entry, and a professional film group is supported and open for your enrollment. He continues to exhort users to pay attention to the aesthetic and artistic elements of their work, instead of relying soley upon the technological miracles. This is a refreshing change than the opinion that the technology is an endall in itself. If you've been bitten by the Amiga animation bug, scratch the itch by investing in the Hash line of
animation helpware.
Hash Enterprises 2800 East Evergreen Vancouver, Washington 9S66l
(206) 693-7443 The internal sound capabilities of the Amiga are
better than that of any other personal computer. These
capabilities mean nothing though, without quality digital
sounds, which up till now have been scarce. Sound Oasis
gives Amiga owners access to a large library of
studio-tested digital samples, by using the Amiga’s built
in disk drive to read disks made for the Mirage Digital
Sampling Keyboard. Sounds can then be played from a MIDI
keyboard, the computer keyboard, or saved as an IFF
standard file. Mirage is a trademark oJ Ensoniq Inc
Transform your Amiga into a professional-quality drum
machine with this software package. Easier to use than
hardware-based drum machines because everything is
displayed graphically on screen. Enter drum patterns
quickly and easily in real time with visual feedback and
editing. Create realistic drum tracks with any of the 100
drum and percussion samples that are included or use your
own unique IFF one- shot samples. Dynamic Drums also has
full MIDI implementation and even becomes velocity
sensitive when triggered from a MIDI keyboard.
A powerful MIDI sequencer that takes full advantage of the Amiga's sound, graphics, and sophisticated user-interface.
Dynamic Studio is perfect for professional applications due to its sophisticated editing capabilities and SMPTE support.
It is also ideal for home studios, because in addition to sequencing MIDI instruments, Dynamic Studio has a built-in drum machine, and the ability to playback instruments translated with Sound Oasis.
(Stop-Motion. Continued from page 2-i) Make noies of editing required while playing the ANIM file. Some of die frames will probably have unwanted background pixels that will need to be removed. If there are many of them, you may need to remove these before you create your first ANIM file simply because the file will he too large to fit in memory. This depends on how much memory your Amiga has.
It’s possible that a subject’s location in a frame or a scries of frames will need to be moved to make it a smoother animation. This is easily done in Deluxe Paint II by making die subject into a brush, erasing it, and moving it to its desired position. A nice tiling about DP II, is that you can load two pictures into memory at once and flip between them by pressing the 'j' key. This allows you to check two consecutive frames for continuity. If you do this, you may want to type the frame number in one of the comers on each picture it's very easy to forget which is which. Once you’re ready to
save tire pictures to disk, remove tire number from the picture.
If your scene requires an object to be held up on a stand or hung by wires, these items can be easily removed from the frames with a paint program, Non-digitized graphics, sudi as props, scenery, or special effects can be added to an animation by using a paint program also. If you add graphics to the animation and are using “MakeANIM”, be sure to use the same color palette for each picture of the animation.
“MakeANIM” cannot handle a change in the color palette during the animation.
If you have a genlock device, you can show your animation on top of a video background. The possibilities here are endless!
For digitizing color animations, I imagine a lot more fine tuning of tire set would be required. The lighting and color of the background become much more important when working with color. I haven’t experimented with color since my camera produces terrible digitized color pictures.
The ANIM file formal is only one of many methods of creating animation on tire Amiga. There are dozens of animation and graphics programs (public domain and commercial) that can be used to help create animations with stop- motion photography. So much more can be done than just black and white animations. You can add color, digitize in color, add graphics from other programs, use a genlock device, and add sound. Use your imagination! 1 know that I’ve only scratched the surface of the veryr tip of the iceberg! Let’s see what our Amigas can do! Happy digitizing!
Deluxe Paint n Electronic Arts 1820 Gateway Drive San Mateo, CA 94404
(415) 571-7171 $ 99.95 Digi-View NewTek, Inc. 115 W. Crane St.
Topeka, KS 66603 ©13)354-1146 SI 99-95
• AC- (Second Generation by Geoffrey Williams (Top and Bottom)
Scenes from an animation created with Photon Cel Animator.
From the moment of its unveiling, the Amiga was billed as a powerful animation machine. The first generation of 2D animation software hinted at great promise, but was far too limited in speed, resolution, and color. The second generation of animation software has arrived, and it fulfils much of that earlier promise.
While the first generation of software seemed geared to the home user, the second generation is aimed solidly at professional animators and the educational and corporate video markets.
These new products have undergone extensive Beta testing by video professionals who have used the products in projects for their clients. With the feedback from these serious users, developers have been able to create some very stable and powerful programs.
There are two basic types erf 2D animation software for the Amiga: Cel Animators and Key Frame Animators.
Cel Animators load in and manipulate individual images created in other programs, flipping through them so quickly that the illusion of motion is created. Key Frame Animators do the animation, you just have to provide the key points of movement.
In this article, we will take a look at the new cel and key frame animation programs, how they differ, and how they are being used by professional animators. Most of these products were reviewed in pre-release versions, so there may be some minor changes and additional features in the final releases.
They should all be on the shelves by the time you read this.
Cel Animators In traditional cel animation, the animator draws black and white line art of his backgrounds, characters, and other objects using a special punched registration board that lets him keep all of the images lined up with each other.
These are either drawn on or xeroxed onto clear acetate (originally celluloid, hence the term “cel”). He assembles these elements in layers for each and every frame, and shoots them with a video camera a frame at a lime. The animator can then play the video to watch the animation, noting any changes that need to be made. After making changes, lie must shoot the entire animation all over again, since video must be shot from beginning to end. This is called pencil testing. When all necessary changes have been made, the animator colors in the cels, reassembles them, and shoots the animation all
over again. Besides the arduous process of assembling each cel and capturing it on video, the animator must also worry about dust, scratches and fingerprints getting on the cels 2D Animation (Software Animating with Photon Cel Animator, Page flipper Plus FX, Animator:Flipper, Backlight, Zoetrope, and Fantavison, With a computerized Cel Animator, the artist can use any Amiga paint program to draw each cel. When all of the cels are loaded into the Cel Animator, he can play them in any order, at different speeds, add new cels, and play with color palettes. The advantage is instant feedback, as
the changes are made,the animation can be viewed immediately. When any change is made in an animation using traditional techniques, the process ot video taping each frame must be done all over again.
While individual features may vary, Cel Animators all have in common one basic function. They load many- individual images into memory and flip through them very rapidly, just like the cartoon flipbooks you played with as a kid. The standard frame rate for video is 30 frames a second, which means you may have as many as 30 individual drawings for each second of animation.
Even for fairly simple animations, you should have at least 2 megabytes of memory.
A way to save memory is to use delta compression techniques that save only the changes in pixels between each frame. This is the technique that is used in the Anim format, a compression standard officially recognized by CBM and supported by many animation programs. While generally used to save Scenes from Fantavision (top) and Zoetrope (bottom) animations.
(continued) animations in single compressed files, some programs allow you to manipulate compressed animations in memory. This saves a lot of memory, but there is a trade-off in speed and capability.
Photon Cel Animator Part of the Photon Video line of products published by Mircolllusions.
Programmer Jim Donaldson has added many features that make this a useful too! For animators. It will handle images in any resolution including HAM and overscan (although all frames must be in the same resolution and color palette, a general limitation of this type of program). It has a special pencil test mode that will turn full color IFF images into two bit planes, making the images black and white and allowing you to get a lot more frames into memory. Pencil test playback also ghosts previous images to let you see paths of motion.
One of PCA’s strongest features is the ability to aid the animator in synchronizing sound. This has been a difficult task for animators, either requiring a lot of trial and error, or you have to slow down the tape so that you can distinguish how much sound is in each frame. It is very difficult to figure out wiiat you are listening to when the tape is slowed down this much.
Traditionally, the sound track is created before the animation, and you follow the same procedure with PCA. Load the digitized IFF sound samples into memory, and synch them up to specific frames (which at this point will still be blank). You will then be able to play each frame and hear what sound is associated with that frame in real time.
You can enter a three letter code, such as a phoneme, into each frame, and get a printout of an exposure sheet which includes these three letter codes. You then use the exposure sheet as a guide when drawing the animation so that each frame is drawn exactly for the sound associated with it.
For animations larger than memory, Photon Cel Animator is designed to work interactively with Photon Video Transport Controller (also by Microlllusion) so that you can record each image to video tape frame by frame. Flave both programs running, set your frame rate from within Photon Cel Animator, and let the Transport Controller automatically dump each frame to tape. You also need a frame by frame controller such as the Lyon Lamb Mini Vas, which is the actual hardware that the Transport Controller controls.
Photon Cel Animator supports the Anim format. By saving an animation as an Anim, you create a single file of your animation which can be run independently by using the public domain PlayAnim program. The compression can be quite dramatic, depending upon how similar the frames in your animation are to each other. I borrowed a 15 frame HAM animation that took up three disks (almost two megabytes). By saving it as an Anim from PCA, the resulting file was only 300k. PCA will also load in Anims, even those created by other programs, and decompress them so that you can make changes.
Rich Stein & Associates, Inc. Public Relations Consultants Because the quality of your reputation is just as important as the quality of your product.
There are some simple drawing tools, which would lx* handy for doing touch-ups, but are certainly no replacement for a good paint program.
Instead of drawing on the computer, some animators prefer to sketch out each frame in pencil, then digitize them. The area fill and palette controls would be useful for coloring digitized line art.
PD Box G95 Denver, Colorado S0201 TEL (303] 733-3707 There have already been several commercial projects created with PCA.
Ernie Poivin has used it to create animations for point of sale video displays. Adventures Unlimited, under the direction of Tom Miller, created a full length animation to promote a water purifying system. Two short animations from this are included on the two animation disks that come with the package. One is of a flowing river with waterfall, and the other of a fairy splashing water on her face from the stream.
The program is easy to use. And very straightforward. In most cases, you have a choice between pull down menus or keyboard equivalents. Its biggest downside is that it is very memory hungry. The more megabytes you have, the better. Although the manual was written by a professional animator Heidi Tumipseed and is very clear and informative, the program is easy enough to use that you will be able to jump right in.
Page Upper Plus FX in contrast, you will have to spend a lot of time with the PageFlipper Plus FX manual. As one user remarked, "It is a deep program”. PFX takes an interactive script approach, reminiscent of the Director although not as versatile.
You can write the script in a word processor, but you are far more likely to use the interface that allows you to click on various options to edit and create the script.
Even with the interface, the process takes a little learning. You select your frames from a file requester, which automatically creates a script for you. On the left side of the screen there is a scrolling window with a script and gadgets that you use to edit the script. To make changes, you must choose the type of change you want to make by selecting a gadget, dick the area in the script you want to change, and then select various options from a pop-up menu. While this seems easy, there are many nested commands which you must use the proper syntax and ihc proper order. The script uses a
display language, and you must have an understanding ot the language to use it. A major saving grace is online help. Click on any gadget, menu option, or command in the script with the right mouse button, and a contextual help file will pop up.
The user interface is not difficult to master, once you understand the script structure. It is inelegant in appearance, but the manual points out that this was a compromise to save memory. Pop-up menus replace pull down menus for the same reason.
PFN works only in compiled mode, meaning that animations are always compressed in memory. This saves large amounts of memory, although you have ter remember to recompile the animation after every change. Recompiles are very fast.
The advantage of a script language is flexibility and power. PFX lets you dynAMIGAlly adjust individual colors, speed, and dimming through sixteen levels of color as an animation plays. It also has a single step mode, and an interactive mode that uses the function keys to trigger animations and effects. You can create loops, and load in brushes to save memory. You can flip entire animations upside down or backwards.
Individual frames can trigger Intermmezzo (sequential) or slave (parallel) animations. Slave animations run concurrently with the animation that triggers them. This works because both animations are running in different bit planes at the same time. Since this is a major feature of the program, the manual has an in-depth explanation of how bit planes work, and this knowledge is necessary to utilize this feature.
Slave animations are very useful for special effects, and this is where the FX of the program comes in. There are 76 single bit plane effects on the disk, including a variety of wipes. They will not work with HAM or half-bright images though, since they use all available bit- planes. Using these set effects is far from automatic. You must go through quite a series of menu options, making several changes to the script in the proper order and in the proper place.
FOR SOLE Hi-Resolution HP ± Pen Plotter $ 50 The claim of Anim support is somewhat misleading. PFX will no; save in Anim format. It saves in a proprietary format, which is supposed to be more efficient than Anim. I tested two simple animations, one saved in Anim from Photon Cel and one saved in PFX. The results: HAM Anim- 320k. HAM PFX- 449k, Hi-Res Anim- 105k. Hi-Res PFX- 385k. I suspect there is a lot of overhead in the PFX fonnat, and that it might well be more efficient if you have a lot of looping or special effects. For more straightforward animations, it is much less efficient. PFX will
not directly read in Anims either. Their sole Anim support is a separate public domain utility that decompresses Anims into IFF files which can be saved to disk and individually loaded into PFX.
PFX has been in the hands of beta testers for a year, and Canadian production company ani FX has used it to create an animation to show the names of Uniroyal and B F Goodrich coming together for a series of employee training videos that dealt with the merger of the two companies. Pixelight created an animated commercial for C.l.L. to advertise a weed killer, and the commercial was aired during the Stanley Cup Playoffs. They combined digitized images with Dpaint graphics, and the entire project, from storyboard to tape, was completed in 24 working hours.
Animation: Flipper For the cost-conscious animator, Hash Enterprises has been turning out a series of low cost animation tools. Their page flipping product may not have a lot of frills, but it gets the job done.
In one module, you select the frames you want (o use from a file requester. Once the order and basic parameters are set, the program will ioad Order: HPP-IJ $ 50 Standard fluugas UPP-T $ 100 68020 68881 ftniges Check, money order, or COD only. Include $ 2.00 S*H. Dealer inquiries are welcome.
Order from:_ Hi-Tech Graphics
P. O. Bo* 446 TalImadge Ohio 44278 ‘Software Product---No Plotter
In the images, compress them, and save them as either an Anim or in Hash format.
Once saved, you play the animation through the player program, which works with the entire line of Hash animation products. The player has pause and function key speed control, and gives you an easy way to control playback of the animation.
If you have other Hash products, this is designed to integrate well with them. Its low cost makes it an excellent entry level product, and it may well do all that you will ever need.
Backlight Backlight started life as an in- house development tool for Silent Software. It was originally conceived by Reichart Von Wolfshield. And evolved under his direction with primary programming by Leo Schwab (of cape and Workbench display hack fame).
Reichart also gives special credit to animator Eric Daniels for helping with lire fine Luning. Eric worked on Disney's “Who Framed Roger Rabbit?”, and he created the walking chrome Sculpt 3D _ (continued) legs that made the rounds on the BBS’s.
Since (here is nothing like Backlight on the market, and a great need for a tool of this type, Silent Software decided to make it available to Amiga artists and animators.
Backlight is designed to aid the artist in drawing an animation, as well as in animating it. One of its key features is the ability to layer drawings. As you draw each frame, Backlight shows you the sequence of previous frames in successively lighter shades of grey. This is enormously useful, as you can clearly see the paths of motion as you draw, and you can use the previous drawing as a guide to your current drawing.
You are not stuck with crippled drawing tools either. A lot of effort went in to making the program as Dpaint compatible as possible. There are the familiar drawing tools (although in the early version of the program I saw, they were available from pull down menus), the keyboard shortcuts are the same, it uses the same brush concepts, and even has a J .screen, that is available throughout a sequence of drawings. You can cut and paste, and even append sequences of an animation.
While Backlight works in all resolutions, it only supports the two color mode. This is not really a limitation, since animations are generally created as line drawings, and colored later when the sequence is complete.
When you have the animation the way you want it, save the files in IFF format, loud them into Dpaint, and add the finishing touches.
One of its most astounding features is real time compression and decompression. Backlight keeps all of the frames stored in compressed lonn in fast memory, decompressing them on the fly so they can be displayed. This happens so fast you do not even realize it, giving you ail of the memory savings of compression, with none of the speed losses. You never have to wait for an animation to recompile. You can also save animations in this compressed form, or as individual IFF images.
Backlight also supports the film frame rale standard of 24 frames a second, a feature Photon Cel Animator lacks. In fact, you can set any frame rate, or choose from set .speeds of 30. 24, 15.
Or 12 fps. When an animation is playing, you can instantly start or stop it.
Beta tester Rusty Mills has worked as an animator for just about every major shop, doing work on projects from “Sport Goofy1' for Disney to “American Tail1' for Don Bluth. He now works freelance, and is using Backlight to develop an animation series for Fox television called Latidga (an anagram for digital). Rusty bought his Amiga because of the potential of Backlight after being introduced to it by Eric Daniels.
Rusty first designs his backgrounds in Sculpt 3D, animates them in wire frame, and imports them into Backlight and draws his character movement over the backgrounds. The backgrounds are rendered in Animate 3D, and the characters and foreground objects are colored in Dpaint. Color testing is done in Photon Paint, and final assembly will be done by Genlocking foregrounds over the sculpt background.
With its speed, ease ol use, and thoughtful design, Backlight will become an important development tool for animators. It has almost everything you could want in a basic animation tool, including features I did not think possible. With its very low cost, no animator should be without it.
Key Frame Animation In key frame animation, you draw the beginning and end point of a specific movement, and the computer fills in all of the images in between in a process called tweening. This is what most people think of when they think of computer assisted animation, but in many ways it is inferior to cel animation.
The artist does not have the same level of control that the cel animator has, and the animations tend to be less rich as complex objects are much more difficult to control.
Having the computer do the animating lor you can save an awful lot of time. With careful planning some very high quality animation can be achieved. Both Deluxe Video and Aegis Animator, the first two animation programs for the Amiga, did tweening.
The following two key frame animators go far beyond them in capability.
Zoetrope The zoetrooe, invented in 1831.
Was one of the first animation players.
By spinning a wheel and looking through the slots, the images inside appeared to move. Zoetrope is also the name of the animation package written by Jim Kent, the author of Aegis Animator. Zoetrope combines the flexibility of cel animation with the ease of use of key framing. Its one major drawback is that it provides only lo res output, which gives it the lowest quality output of any of the programs in this article. This does limit it tor manv professional applications, but it has enough features to justify a serious look.
With a number of simple drawing tools, you can create the images in your animation frame by frame. Objects from the last frame turn blue and act as a guide as you draw the next frame. With the history command, you can easily do what animators call in-betweening. You draw the frames with the most significant action first, and then keep drawing between those frames to smooth out the animation. Using the history command, you can draw a new frame while seeing tiie previous and following frame in blue. You also can edit, delete, insert, and duplicate frames, as well as adjust the timing.
You do not have to animate frame by frame. Once you draw an object, or load it in as an IFF file, you can do key frame animation. Draw a box around the object, creating what the author calls a clip, set its position in the start and end frames, and choose the type of effect you want to create. These clips are just like Deluxe Paint brushes in that they are easily moved and manipulated and can have transparent areas. You have many options under several categories: Pixel effects, moves, and APM fx. You can make a clip rotate around its x, y or z. axis (although not in 3d) as it enlarges and
moves across the screen. You can trace a path, even one with a lot of curves, and the clip will be animated along that path. You can choose two types of anti-aliasing, which really cleans up clips as they go through movements.
You can distort clips in several ways, or do unusual special effects with options such as crystallize, which builds up a pattern of colored pixels over an object.
Piav this in reverse, and it would create a Star Trek like materialization of an object. Effects can also be generated that affect the entire screen, and you can do color manipulations and fades. It would take a lot of space to describe all o! The effects, and they can be combined in dozens of ways.
Unlike Animator, which moved Polygons in real time, Zoetrope manipulates bit maps. When you setup The best personal accounting package for the Amiga has just gotten better.
Introducing PHA$ AR version 3.0. Updated to take full advantage of the Amiga's friendly user interface, PHA$ AR now incorporates more powerful analysis, reporting, and financial functions.
PHA$ AR 3.0... the only way to make sense of your personal finances.
New Features:
• Enhanced online calculator with 5 level memory buffer
• Sorting by account name or number • Improved tax program now
doubles as report writer • Custom define screen colors
• Recall most recent transactions « And many more General
* 130 expense income categories • 40 accounts (VISA, checking
• Up to 500 transaction per month • Artificial Intelligence
parser predicts input, minimises typing • Instant
context-sensitive help function • Relational design integrates
financial data Transactions
• Create transaction macros for repetitive entries •
Point-and-type spread- shcet-style relational summary table
Reports and Analysis
• Analyze loan saving plan • Geaily formatted printed reports
include: Account summaries Category summaries Net worth
statement Tax calculations • Sort categories in any order •
Built in data graphing Tax
• Completely integrated tax preparer and report generator.
Date Address Organizer
• Online organizer stores up to 250 names, addresses and phone
numbers • Integrated scheduler stores special occasions. *
Event alarm feature an animation effect, it creates each frame
that is a part of that effect. This means that each frame of an
animation can be saved as an IFF file, whether the computer
animated it or you drew it frame by frame. Not only that, but
you can use the Over and Under commands to merge animations
together. You can create a tweened animation of a moving logo,
and create a separate cel animation of a walking man, then
combine the two separate animations into one. You can even
position the starting point of objects with the mouse, and have
the man walk behind or in front of the animated logo.
This is a powerful and flexible feature.
You can also set loop points and run animations backwards, or back and forth in ping pong mode.
The one major impression I have of this program is that it is fast. When you fill a shape with a color, it happens almost instantaneously. An entire screen fill takes about half a second. It also generates the frames of an animation with remarkable speed. Changes are fast and easy, and there is tremendous flexibility built into it.
Despite its limited resolution, Zoetrope is being used in professional applications. Animator Steve Segal, of "Dance of the Stumblers” fame, created an animated scoreboard for a Canadian commercial which was piayed in enlarged mode to create the proper pixilated look. For the film "Face of the Enemy’', Steve created a simulated computerized library catalog system with different sections of text that scrolled underneath moving highlighters.
One of the features Steve really appreciates is the ability to load in .Animator files. Zoetrope automatically converts them into bit-maps. The moving searchlights in the Zoetrope picture started out as objects in Animator. The background and sky was created in Deluxe Paint, while the theatre is a composite of two digitized images.
Zoetrope can also load in the .rif files created by the Live digitizer.
One of the standout uses for Zoetrope is as a fast animation sketchpad, allowing you to quickly experiment with a wide variety of effects and looks. Even if the final product needs to be at a higher resolution, (continued) Zoetrope would be a great tool to use when you sit down with a client and rough out ideas. Since it uses both computer animation techniques, it would also be an excellent tool to work with to teach yourself basic animation techniques.
Zoetrope is not Anim compatible, but you can use the provided Player program, or dump your animations to videotape. I suggest that you use one of the public domain programs such as Lacer or DoLace to change the screen to interlace without changing the resolution.
This gives you a better quality image on tape.
I suspect that a program with this much power, but with higher screen resolution, would outrun the chip memory capacity of the current Amigas.
It would also make it one of the best tools on tire market. As it is, the resolution is limiting, but 1 think it will find many useful applications in the professional community.
Fantavision Brodurbund's Fantavision is a pure interpolation program, and does not generate individual frames between key frames as Zoetrope does. For doing quick and simple animations in almost any resolution, including HAM and Overscan, it is a very useful tool.
Fantavision allows you to draw squares, circles and freehand objects with multiple points. The points can Ire moved and dragged to change the shape of the objects. It is very similar to the polygon objects of Aegis Animator. You can also easily add or delete points, do rotations, size changes, and numerous other manipulations to these objects.
Each object is numbered, and you can done the key frame and its objects to make the next key frame, or you can make a blank key frame to create new objects. Similarly numbered objects will metamorphise from their shapes in the previous frame into the nets1 shapes. You can also cut and paste objects from frame to frame. By pressing the GO gadget, you can play your animation at any time.
A simple example would be to draw a circle in key frame 1 on the right side of the screen, and a square in key frame 2 on the left side of the screen.
You can set the number of tweens between key frames (up to 128) and set the animation speed. Play the animation, and the circle moves across ihe screen as it changes into a square. You are not limited to a single object either. In fact, you can have up to 16 objects per key frame.
You can also load in IFF and HAM backgrounds, which can be changed without effecting the animation.
To create an animated bar chart, I loaded a grid created in Dpaint to use as a guide, drew small boxes at the boitom, and in successive key frames I moved each box up to the appropriate position while using the Trace mode. Trace moves the object while tracing an image of it behind. I then changed the background to an IFF image of a company logo. In five minutes I was able to create a very effective animation of growing bars representing company sales.
IFF images that you have loaded in can have sections of them cut out, like brushes in Dpaint, and these cutouts can then be animated to move around the screen (although their basic shape cannot change). They can be mixed along with the metamorphic shapes, and even layered so that objects can pass behind or in front of other objects.
Fantavision supports Colorfonts (although fonts are not metamorphic objects), and it is easy to use whatever fonts you have available. A requester allows you to set the directory for fonts, so you can keep them on a separate disk.
Even though the metamorphic shapes you create are essentially single colored, Brodurbund provides 38 preset palettes to work with (or edit your own).
Most of these palettes have textures and patterns to improve the appearance of your objects. Objects can also be combined together to make more complex objects.
One of the most impressive features of the program is its ability to incorporate digitized sounds and even "tween’ them. There are nineteen digitized sounds on the disk, or you can use your own IFF sounds. A sound requester allows you to adjust the volume, balance, echo, pitch, duration, and looping of each sampled sound. I drew' a large image of a rocket in key frame 1 and had that trigger the thunder sound at full volume. In key frame 2. I reduced the size of the rocket and moved it to the top of the screen, and used the same sound but set the volume to lowc When played, the rocket takes off
and the roar of the engines diminishes as the rocket gets further away. By setting the balance controls and changing them from right to left between key frames , you could have the sound appear follow an object across the screen in stereo.
You can have up to four sounds going at the same time.
Fantavision is fast and easy to use.
It seems to me that i: particularly shines as tin educational tool, allowing you to quickly and easily create animations to illustrate key concepts. You can have an IFF image of an engine as a background, with animated moving parts over it. You could create moving molecular structures, or show' the flow of electrons in a circuit diagram. There is a simple but effective demo on the disk showing the side view of the head of a Cro- Magnon Man, which progessively transforms itself into the head of Modern Man. It uses only two key frames, and clearly illustrates the power of metamorphic objects.
In the dinosaur picture, the background was created in Dpaint, while the dinosaur is a metamorphic object that lumbers across :he screen and stops to nibble some metamorphic leaves. The ferns in front of the dinosaur arc clips created from a Dpaint image, and the dinosaur moves behind them.
Although it does not approach the quality of true cel animation, Fantavision is well thought out and very intuitive to use, with many options and features. It is not Anim compatible, but does include a distributable player program. You can create some very effective animations with it, and you’d have to use it quite a while before you explored all of its capabilities.
There are two public domain programs you should also add to your animation tool kit. MakeAnim takes a list of frames and turns them into an anim file, and the latest version (5.0) offers tight compression and sound. GrabAnim works as a background task with any program. Hook up a joystick or mouse to the joystick port, and even,7 time you click the button, whatever is on the screen will be added to the Anim file that the program generates. This turns Dpaint into a much more efficient animation tool, as the additional step ol saving each frame and then compiling them is eliminated.
No single program described in this article is the ultimate animation tool, but by using them together you should be able to do almost anything you need to. The Amiga is powerful enough to create professional quality animation, and with the second generation of animation software, you have the tools available.
Product Information Pnoion Cel Animator Backlignt S149.95 $ 49.55 Microillusions Silent Software 17403 Cnatswortti St, 706 W. Broadway Suite 202 Granada Hills, CA 91344 Glendale, CA 91204
(818) 350-3715,
(818) 243-4540 Outside CA (800) 522-2041 Zoetrope Pageflipper
Plus FX $ 49.95 $ 159.95 Antic Software Mindware
International 544 2nd. Street 110 Dunlop St. West San
Francisco, CA 94817 Bo« 22158
(800) 234-7001 Barrie, Ontario Canada L4M 5R3 Fantavision
(705) 737-5998 $ 59.95 ! Orders (800)461-5441 Broderbund Software
17 Paul Drive AnimatorrFlipper San Rafael. CA 949C3 $ 59.95
(803) 527-6263 Has i Enterprises 14201 SE 16!h Cirde Vancouver,
WA 98634
(206) 256-6567 Since Discovery Software released Arkanoid, four
games similar to this classical game each with a different
twist of their own have been released.
Now that you have greater variety , it will be more difficult to choose among them. This feature will describe all four Arkanoid-type games so drat you know their differences. Before we start looking at tire four different games, let’s answer one simple question.
What is Arkanoid?
If you have never heard of Arkanoid before, you must have been stationed on another planet. (Or you're a college student like me; which is close to tire aforementioned). Bul to answer the question, Arkanoid is a reincarnated brick and paddle game of the old classic with some major enhancements. The object of Arkanoid and its "imposters” is to hit a bouncing ball with your paddle to knock out every brick in tire wall. The mouse controls the paddle, and tire ball’s speed depends on tire row of bricks you hit. And as if that weren’t enough, moving obstacles will change tire ball's current
direction. Other enhancements to the original include different backgrounds, brick patterns, music, sound effects, and even bright colors.
But wathout any further delay, let’s explore the first of the five games.
Arkanoid From out of the arcade and into the home comes the 1 1986 smash game Arkanoid. This is the first and only game licensed direct from Taito by Discovery Software. When the game is loaded, you will be in demo mode.
Arkanoid provides you with a choice of either one or two player competition.
When the game begins, the spaceship Arkanoid is under attack, while the shuttle craft Vaus is escaping. Your plans of a safe departure are foiled by a sinister alien whet has trapped you in a space w'arp a dimension in which objects are formless. Choose your starting level by rolling the mouse left or right, levels range from 1 to 20. Even though there are actually 66 levels ol play, the highest level you may start at is
When you move your mouse, you’ll see each game level exactly as it appears when you’re on that level. Each level is unique and provides you with a variety of scenery, ranging from a space invaders-type alien to die sinister evil alien himself. When you choose your starting level, click the left mouse button to start play. The Vaus will be at die bottom of the screen along with die energy ball (die little thing diat bounces around the screen). To release die energy ball, either click the left mouse button or wait for the automatic timed release. It is your job to shatter the space (continued)
walls and defeat the enemy forces, which is no simple task. The energy ball’s speed depends on the color of the wall; and the faster the ball moves the faster your score moves.
Opopo, do I have to take my power pill?
Sound too easy lor you arcade “wizards"? Then how about adding some obstacles, such as Pyradoks, Opopos, Tri- Spheres, and Konerds to make it more challenging? These obstacles will come down toward you, hover above your ship, try to deflect your energy ball, and make you wish you had never seen them. The higher the level, the more advanced die obstacle. Each time you defeat the space walls and obstacles, or break into the next level with a power capsule, die levels get tougher. You’ll need die reflexes of a Sunday driver on a downtown expressway!
At times, you’ll break through the bricks to find "power capsules" drifting down toward you. These help re-enforce die Vaus, and diey give your ship an extra function. There are seven different capsules in all: catch (allows you to catch the energy ball); slow (slows down die energy ball); expand (enlarges the Vaus); disruption (splits the energy ball into three); laser (enables your ship to fire lasers); break (allows you to break in the next level widiout completing the one you are currently in); and paddle (gives you an extra ship).
Arkanoid is an almost exact reproduction of the coin-op version. The graphics, sound effects, and music are duplicated almost exacdy, as are a few extras not available on the arcade version. These include on off toggling sound effects, game and resume play. This last one lets you keep advancing after die game i.s over, with your score will be set to zero, You can also change die speed of the energy ball from very slow to very fast. Arkanoid loads into RAM and never accesses the drive, You can put your name in die top five bravest players if you qualify; but your score will be erased when you
reboot or turn the computer off. This is die only minor inconvenience I have found, so 1 can safely say that Arkanoid is true to the original.
Amegas Amegas, from Digitek Software, takes die same ingredients Arkanoid uses, but lightly sprinkles on some magic of their own. After die game is loaded, you will find yourself in demo mode while a stereo soundtrack plays.
Press the left or right mouse button to choose a one or two player game. Your object is to shatter through 40 different levels of play.
While this game remains close to Arkanoid, you wili find some very unique differences. For one, you must start at level one and work your way up. Also, when advancing from level to level you will find that die background scenery changes along with the bricks. For example, on level two you will see only four bricks until the hist one i.s hit, then it will explode revealing more bricks in a different pattern. The Amegas Stones (i.e. power capsules) are the same, but the colors provide die paddle with an enhanced function. And while the obstacles act the same as those in Arkanoid. You wall find
that tliey're different in appearance and variety.
You can’t pause during game palay. However, when you get killed or start a new level, you will be prompted to press the left mouse button to continue, dius allowing you to take a break if you want. There is no sound toggle. This can be very annoying when you make it to die 31st level and hear the pong for the thousandth time. Whenever the game is over, you wiil be prompted to press the right mouse button, if you wish to continue play from where you left off, if you not, press the left mouse button to start over. If your score is among the top ten, then you will be prompted to enter your
initials, which will be stored on disk. The different graphics, sounds, and music combine to make il unique while providing you with the same rules of Arkanoid.
Star background. The “tokens" (i.e. power capsules) are the same as the others with the exception of die following four. Torch lights up invisible bricks; smart bomb kills all aliens until the next level; missile destroys multi-hit bricks with a single hit; and force field encircles the ball and allows it to pass through aliens and bricks without any deflection. To choose a weapon, press the right mouse button until the weapon you want is highlighted.
Deposit another token for the next weapon, please.
Each weapon requires a certain amount of tokens, Force field, for needed break.
This is definitely the most unique game, of all die “Arkanoid Imposters” described here. However, 1 feel that this game lacks in one specific area; graphics.
The graphics are comparable to that of Blockbusters on the Commodore 64, and is a noticeable port from rhat computer.
Even though I detect a slight enhancement over the graphics, 1 feel thev could have done a better job Despite this. I have found the sound to be excellent, and the ability to design your own brick patterns is a plus. If you are looking for a different version, look no further.
Blockbusters Blockbusters, from Mindscape Software, certainly provides a different approach to the Arkanoid games. The object is to use your paddle break through all the bricks in the jam-packed 80 levels of play. One difference is that you can create up to 48 screens of your own, which combines with the original 80 for a grand total of 128 different brick patterns! It is impossible to describe how this is done in the space requirements of this feature, 'out 1 will assure you that it is very easy to learn, The background scenery doesn’t change. In lact, there isn’t a background at all.
Instead, die different brick patterns will be displayed on a vertically scrolling example, requires 9 token. The floating obstacles react die same way as that in tire other games and appear as only two different shapes. Another important feature is the password access on the title screen which appears before game play.
After you complete a set of 10 screens, you will be given a password for future use. Depending upon die password you enter on die tide screen, you will be taken to a more advanced level, allowing you to skip the easy ones you have mastered. I: your scoring is high enough to be in the top ten Blockbusters, you will be prompted to enter your name in order to save it to disk. It does include a pause option during game play, which is nice for a Cry stal Hammer Have you ever wanted to break crystal in outer space? Well, it might not be exactly number one on my priority list, but on the game list
it's a different story. Your object, as you mavb have guessed, is to smash through 30 levels of crystal* How is this done? With a hammer, of course. There are eight special pieces of crystal (i.e. power capsules) drat when caught, gives your hammer a special weapon.
Tire background and floating obstacles are wacky and funny. Crystal Hammer gives you some extremely beautiful backgrounds along with some well known characters, including wiggle worms or a pacman chomping across your screen, as well as some other (continued on page 46) AMAZING REVIEWS STELLARYX by Stephen Kemp Remember Asteroids, the arcade game? Perhaps yon found it challenging and spent hours blasting those rocks. Or maybe you grew tired of it because there wasn’t enough variety. Well, no matter how you fell about the original, something better has come along. It's STELLARYX, from Laser
Asteroids with a twist STELLARYX is a new game that is much more exciting and challenging than Asteroids ever was. Of course, you are expected to shoot rocks and aliens, but there are also other tasks to perform. Blasted rocks can reveal beneficial equipment that your ship can use or might reveal aliens. You can collect lasers, guided missiles, stasis grenades, tractor beams, shields, cloaking devices, and astronauts. All of these things can make your job easier if you know when and how to use them effectively.
The ship can be controlled by either the mouse or tire joystick. However, i found that using the joystick was rather difficult.
Players can select from three different skill levels when the game begins. Once a screen has been cleared of rocks, aliens, and other space debris, you advance to the next screen to face a new (more difficult) assortment of space '‘things". For those with at least 1 meg of memory, you occasionally get to earn a bonus by performing a docking maneuver at a space station.
This game also Iras something not usually found in a game HELP. That’s right, just press the Help key and the game pauses and lets you review the online help. The help contains information about the game controls, the enemies, weapons, and strategies to use during play. Help is another fine element of this game, but even if you don't need it, it is sometimes convenient to pause the game just to take a break.
Color copy protection Tire only unsatisfying thing about this game is tire copy protection scheme.
Although many people have very strong feelings against copy protection, some of us are a little more tolerant. But unlike other programs that have hard copy protection or require you to type in a word from the manual, this one uses a color chart. The color chart proves more effective than the ‘‘key word” method because it can't be xeroxed.
Unfortunately though, it is sometimes hard to enter the correct codes because of variations between the color shades on the screen and those on the chart.
Overall STELLARYX Laser Gamesmanship
P. O. Box 1223 Alta Loma, CA 91701-8223 It is ven1 easv to spend
hours playing this game. The graphics are very good and the
game contains terrific stereo sound effects. Initially, it may
seem that it is not easy to play this game, but after a few
minutes the addiction takes over. Asteroids move over.
STELLARYX is here!
• AC* The FASTEST Hard Disk Backup Utility!
Protecting your valuable hard disk files is easier and faster than ever before!
m, Backup to or restore from: ? Floppy Disks ? Streaming tape (AmigaDOS-compatible) ? Cltd's Konica 107IV1B high-densiiy floppy drive ? Inner-Connection's Bernoulli drive ? ANY AmigaDOS-compatible devise ? Fast backup-20MB in 30 minutes or less ? Uses iwo (loppy drives (if available! Lor backup restore with automatic switching ? Builds, sorts and displays catalog of files and subdirectories ? Provides FULL Subdirectory lndividual file backup restore ? Includes or excludes tiles by name (with wild cards), file date, or archive bit ?Calculates the number of floppies you'll need before you siart
? Handles files of unlimited length, unlimited subdirectories and unlimited files per subdirectory ? Automatically formats diskettes v ith no delay as it writes ?Sequentially numbers and date time stamps backup diskettes ? Checks the sequence number and date time stamp of each diskette before restoring files from ii ? Restores original date lime stamp, file notes, and protection bits on both fries and subdirectories ? Runs with Workbench or Cl.l ? Produces backup restore report to disk or printer ? Beeps for floppy change ? Accepts CL! Parameters and batch command files ? Detects bad disks
during backup nr restore ?Convenient user friendly error recovery ? Multitasking ? Runs in 512K ? No copy protection ? Works with all AmigaDQS compatible hard disk drives.
Only $ 69.95 Plus S3,00 shipping ana handling, CA residents ass 6% sales tax.
Nun iiiitil O ill'll if ) IIH'H Mill!
Niiii ™ WlKli Convert C64 C128 Files to the Amiga DISK-2-DISK 1 makes it easy and convenient to transfer C64 C1ZB flies to and from the Amiga! DISK-2-DISK programs the Amiga model 1020 external 5.25" disk drive to read and write 1541 4040 and 1570 1571 disk formats including 1541 Hippies".
? Converts Commodore PET ASCII to AmigaDOS standard ASCII and vice versa ? Transfers word processing text tiles (such as PaperClip.
SpeedScript and Pocket Writer) to and from the Amiga for use with popular Amiga word processors ?Includes 3 public domain programs for converting C64 Koala. PrintSfiop and Doodle tiles to IFF formal ? Finds and flags dialect differences between Commodore Basic and Amiga Basic files ? Provides VALIDATE BAM and CHECK DISK utilities (VALIDATE BAM verifies the directory structure ol the 154V1571 diskette; CHECK DISK reads every block of a 1541 1571 diskette (o detect diskette errors).
DtSK-2-DiSK requires the Amine model 1020 525 disk drive Only $ 49.95 Plus S3 00 snipping and liantll ng CA -esirieo’s add 6’-t sales tax.
D0S-2-D0S transfers MS-DOS and Atari ST files to and from AmigaDOS!
DQS-2-D0S version 3.0 permits access to any MS-DOS volume available via AmigaDOS. Including MS-DOS partitions on hard disks and MS-DOS volumes on LANS or SCSI networks.
? Supports Single and double sided 5 25-inch as well as 3.5-inch 720KB MS-DOS diskettes ? Reads Writes 3,5-inch Atari ST diskettes (GEM format) ? Reads a variety of 5.25-inch MS-DOS floppy formats via the CLTD Konlca high-densily floppy drive ? Converts ASCII file line-ending characters and provides Wordstar compatibility ? Supports full directory path names, with wild cardsinthe file names ?Allows selection of MS-DOS and AmigaDOS subdirectory and displays sorted directory listing ? Formats 3.5-mch and 5.25-inch MS-DOS diskettes and Atari ST diskettes ? Provides duplicate file name detection
with query replace options ? Provides TYPE and DELETE commands ? Permits renaming ol files where file name restrictions occur ? Remains resident to permit AmigaDOS disk swapping Only $ 55.00 Plus S3 DO skipping arc dandling CA resicsnts add 630 sales tax Central Coast Software 268 Bowie Drive, Los Osos. CA 93402 • Telephone: 805 528-4906 • FAX: 805 528-3138 DEALER INOUiFES WELCOME Questron II by Jeffery Scott Hall A journey back in time and space Mesron, the great wizard, has sent you back through time and space in order for you to stop the Evil Book of Magic from being created by six mad
sorcerers. It is your job to find them and prevent the consummation of their abominable deed. You must explore Landor, gaining knowledge as well as weapons for use in your quest.
Questron II, from Strategic Simulations Inc., sends you back in time to destroy the Evil Book of Magic. Once the game has loaded, you will find yourself looking into die book of Questron. From here you have three options: Start a new game, Demo, and Instructions. Once you have decided to embark upon your journey, the fun and danger begins!
While exploring Landor, you will encounter dungeons, combs, cathedrals, and castles, each posing a different threat. While you explore these underground dwellings, a map at far right will show you where you have and have not been. But, once you leave the underground dwelling, the map is lost forever. The view you have inside one of diese underground dwellings is a solid 3D perspective of both your surroundings and your enemies. It must be seen to be appreciated.
There are 60 different monsters in Landor. Some are very friendly while others are vicious. Some monsters you encounter will be strong, others will be weak. When you defeat a monster, you may find special items such as weapons, gold, food, and armor in its place.
On the far left of the screen you will find a listing of the options available during game play like magic, inventory, etc. To activate one of these items, click the left mouse button over it. Either the appropriate action will occur or you will be presented with a requestor from which you may choose other options, use magic, cast fireball, etc. Just below the options, you will find your character's current status displaying his hit points, food, and gold.
To explore Landor, you must either walk or run through it by either clicking the left mouse button or moving the joystick. Your character will react accordingly, and move in the direction you choose. The screens scroll constantly, even during underground exploration! And during your journey, you will find many different towns to enter which will help you in your quest.
A stranger in town.
In town, you will meet many friendly and not so friendly characters.
You can find out a lot about the town and tire surrounding area if you approach these characters in the right way. In the town you will find areas to eat like a barbarian, sleep, cheat at gambling, and buy weapons and armor your average adventurer's night out. If you play your cards right, vou’ll come out of town rested, full of food, heavily armed, and a few thousand gold pieces richer. On the other hand, if you get a bad reputation, you might find yourself six feet under!
Summary I have been playing Questron II for quite some time now' and it seems like every time I play I see something new. It requires a fairly long time to get your character built up, but once you do you’ll have more fun playing. I only two minor complaints: there's no pause option; and you can’t save an underground map. It would have been very nice if to have a save routine to recall the map of an underground dwelling you’ve already explored. I found the lack of a pause option to be very inconvenient w'hen 1 needed a break from all tire hack and slash.
However, these are just minor complaints, and overall I found Questron II very' enjoyable.
Questron II is a very exciting dungeons and dragons type game with great graphics and sound effects. You will find an option which will allow you to save your character to disk so you can continue if you get killed. 1 have had a lot of fun playing Questron II, and I think you will too!
Hints and tips When first starting out, find a town with a gambling casino and bet heavy. Before you do, though, be sure to save your character. This way you can win lots of money; and even if you lose, you can just go back and re-load your character. Now, all you have to do is sit back and hold out your hand!
If you have armor, Ire sure that you don’t forget to wear it. Armor is no good to you unless you put it on. But the heavier the armor, the more strength you’ll need to wear it. If you find heavy armor when first starting out, stay with the leather until you have built yourself up.
While attacking high level monsters, know when to call out the heavy stuff. If you’re getting kicked from one end of the map to the other, check your book of spells and start casting.
However, if you have bitten off more titan you can chew, it is safer to cut your losses (unless you back up your character).
Make sure that you talk to the people inside towns and villages. They might have very useful information which could come in handy later in the game. It is best not to pick a fight with any of the town’s people if you can help it, for they might have some pretty mean friends that don't take kindly to strangers.
• AC* Hook for a full-length review in an upcoming AC. Ed. C’-5]
Questron H 549.95 Strategic Simulations, Inc. 1046 N.
Rengstorff Ave.
Mountain View, CA 9-1043 415-964-1353 w 9 GEN ONE : Professional Quality Gen- locking For All Amiga Computers Specially designed for compatibility with the Amiga' line of computers. GEN ONE is the premier genlockmg encoder.
If you're serious about your video graphics. This interactive desktop accessory is a no-norisense component. And to back our commitment to quality and customer support, we give the best warranty in the business GEN'ONE from CSI... Quality. With the commitment to match.3"’ GEN ONE's Advanced Features Include: USER CONTROL
• Separate RGB and Video Gam
• H, V. Subcarrier Computer Timing
• Computer or Video Sync Source Selection
• Separate Y C and Video Gain
• 3 Modes of Operation SPECIAL FEATURES
• Y C Output for Super-VHS
• Comb Filtering In Luminance Channel ¦ Separate Power Supply
• Convenient RGB Computer Output $ 895.00 with 1 year warranty
Call For More Information And A Free Brochure
(516) 273-0404 ® Communication s M Speciaiiias, If ;C 89A Cabot
Court Hauppauge. NY 11788 Amiga is a registered trademark
of Commcdore-Amiga. Inc. GEN ONE is a irademark of
Communications Specialties nc.
(Arkunoid, continued rompc ge 41) strange faces known to us arcade addicts. If you are lucky enough to shatter enough crystal, you will be prompted to enter your initials for tire top ten, which will be saved ter disk.
I have three minor complaints with tire game: no sound toggle, only thirty' levels of play, and no pause feature. This does not detract from game play at all. The faultless combination of stunning graphics, sound, and overall appearance make this the most wonderful of all the “Arkanoid Imposters.” Decisions, decisions.
You might find all die different “Arkanoid Imposters” confusing, and you might W'ant need of some advice about which one is the best, right? Allowing for personal taste, I can make two suggestions which might interest you.
First, if you are looking for an almost exact Arkanoid reproduction, go widi Arkanoid from Discovery Software.
Which “Arkanoid Imposter” to choose?
Well, my' two personal favorites are Amegas and Crystal Hammer, which provide die most unique twists of all.
However, I can safely say dial no matter which one(s) you select, none of the above will be a disappointment.
The Arkanoid saga concludes...Or does it?
Whew! If you've managed to make it to the end of this feature you deserve a medal (or even better, some free tokens for different games at the local arcade)! Hold on to your eyeballs for just a little longer, were almost done.
In die latest news bulletin from somewhere deep within Arkanoid space, there is word that another Arkanoicl game is in the works. Yes, Taito themselves have decided to market their own original version of .Arkanoid which is due out sometime this winter, and thus the saga continues. Now, if I can just decide which version to play, any suggestions?
• AC* Arkanoid Discovery Software International 163 Conduit
Street Annapolis, MD 21401 1 (800 ) 34-AMIGA $ 49-95 Amegas
DigiTek, Inc. 10415 N. Florida Ave Suite 410 Tampa, FL 33612
(813) 933-8023 $ 34.95 Crystal Hammer Constellation Software 17
Saint Mary’s Court Brookline, MA 02146
(617) 731-8187 $ 19.95 BLOCKBUSTER Mindscape. Inc. 3444 Dundee Rd.
North Brook, II. 60062
(312) 480-7667 $ 39.95 Las Vegas COMDEX Deoort by Lottise
Brinkmann Another COMDEX was at hand, and there was a
feeling of anticipation and excitement in the crowds
waiting to get into the show. Commodore’s booth in the West
Hall was outstanding its wall of monitors displayed the
"Only the Amiga Makes It Possible" video and the Amiga
commercials currently airing on MTV'. These commercials,
created entirely on the Amiga, are entertaining and
It was sometimes difficult to get around the Commodore booth because of all the people the Amiga still attracts a lot of attention at COMDEX!
Commodore announced a number of new products at the show, including the Amiga 2500 computer. The Amiga 2500 is basically an Amiga 2000 with a 68020 chip and standard 3 megabyte of memory which is expandable to 9 megabytes. The computer will be available soon, at a 55,000.00 list price.
Also announced was the Amiga 2500 UX, an Amiga 2500 with the multitasking, multi-processing environment called AMIX, which is based on UNIX System V. This workstation is an outgrowth of the Amiga 2000 system with addded features like fast mass storage, memory management, high speed processing and integral tape backup.
An Amiga with a Transputer board was also announced and demonstrated.
The Transputer is a board containing a parallel processor which allows it to run simultaneously with the Amiga's CPU.
So in addition to multi-tasking, you also have multi-processing. The Helios operating system, included with the Transputer board, was designed to be multi-tasking, multi-user, and multiprocessing. Th is operating system uses ail of the available processors and coordinates their activities. .All of this is integrated into the Amiga and is transparent to the user and the program being run. The Transputer board and Helios operating system are not yet available in the United States.
New to the Amiga 500 line is tire A590, a 20 megabyte hard disk with 2 megabytes of RAM. It also has a SCSI interface so you can easily add hard drives or CD ROM units. The A590 is very compact and fits on the left hand side of the Amiga 500. I was impressed by its speed.
The area of the booth that really drew the crowd was the demonstration of the high, resolution color graphics card. It permits faster color bit map processing with graphics displays of up to 1 million pixels, It also has programmable resolutions of up to 1024 x 1024 pixels, with 8 image bit planes providing 256 colors, plus 2 overlay bit- planes providing an additional 3 colors simultaneously. The graphics and animation sequences generated with this board were outstanding. As of this writing, no release date or pricing had been announced SpcctraScan color scanner Perry Kivolowitz from ASDG
used a JX-300 scanner to demonstrate SpectraScan, ASDG’s professional color image scanning system, Tne interface is very easy to use and allows varying resolutions of 30 - 300 dpi with increments of 1.'100th of a dpi.
SpectraScan software allows four color separations, color adjustments, and resizing the scanned image. All operations are in 24 bits, and you can save in tiny format such as IFF and FLAM.
I was pleasantly surprised with the speed of this scanning system. The official release date is January 1989. The JX-300 scanner will list for $ 4995-00, and the SpectraScan software will cost $ 995.00. Scanned images were printed out on Howtek's Pixelmaster printer, a wax printer which prints using melted wax instead of ink. The results are simply marvelous.
DeluxePaint III to Offer Animation Dale Weideman of Electronic Arts demonstrated DeluxePaint TIT, which adds animation capabilities to their superb painr program. Finally animation made easy! Some of the improved features included in the painting portion of die program are extra halfbrite, 64 color mode, overscan painting, new fill modes, more extensive air brush capabilities, and ability to use fonts from any drawer or disk. The speed is now done in real-time with no delays.
The animation included in DeluxePaint III makes animation as easy as painting. The demonstration I saw was fantastic. Dale started out with a painting of a waterfall and a river, then animated a boat moving along the river.
Finally, he did another animation of a flag waving and attached it to the boat.
So, DeluxePaint III allows you to have animation on top of animation a neat feature, If you are interested in animation, 1 suggest you take a look at this package.
It’s due during the first quarter of 1989, at $ 129.95 list. DeluxePaint III nans on any Amiga system with one megabyte of memory, and is compatible with all Amiga products that work with DeluxePaint I and II. Owners of DeluxePaint I or II who purchased the product before Dec 1, 1988, can upgrade by sending in the manual cover and a check for $ 50.00 plus 37.00 for shipping and handling. If you purchase DeluxePaint II after Dec 1, 1988, send the dated receipt and $ 7.00 for shipping and handling.
Sculpt-Animate 4D Speaking of animation, BYTE by BYTE's Scott Peterson was demonstrating Sculpt-Animate 4D, which is similar to the original Sculpt-Animate with added features for power users. New features include interactive object editor, enhanced file requestors, assignable hot keys, significantly faster ray tracing, improved anti-aliasing, and animation scripting language. Sculpt-Animate 3D users can upgrade for only $ 195. Sculpt- Animate 4D lists for $ 499.95 and is currently shipping.
Copper Bittner from the Zuma Group displayed TV Text and Zuma Fonts. TV Text allows you to create professional quality lettering for screen shots, videos, or hard copy printouts. I found it an easy to use and invaluable program. TV Text is available now for 399-95. Zuma Fonts volumes I. II, and III are fonts packages featuring range 12 to over 100 point sizes. These font packages list for $ 34.95 I expected to sec WordPerfect demonstrated in Commodore’s booth; instead Jack Applemnn from Micro- Systems Software showed Excellence!, a “what you see is what you get" Amiga word processor. Features
include Indexing, spell checking, thesaurus, grammar checking, graphics, and multiple column capability. It is currently available and lists at $ 299.95. Notes From Aegis Scott Oransky and David Hodges from Aegis showed Sonix and AudioMaster II. Sonix as a music program that allows you to compose your own music by pointing and clicking with the mouse. The interactive sound controls allow you to change the tempo, transpose, or tune your music as it is playing. AudioMaster il is a digital sampling and editing program that loads a digitizing sound into the Amiga and transforms it into a totally
new and unusual sound just by cutting and pasting different segments of that sound.
Just think of the sound effects that you can create! The retail prices for Sonix and AudioMaster II are $ 79-95 and $ 99,95, respectively.
Burton Robson from Gold Disk demonstrated Professional Draw vl.0, a drawing program that creates high- quality professional illustrations and drawings which can be printed on a dot matrix printer, PostScript compatible printer, or color PostScript compatible printer. The output generated on the QMS ColorScript 100 (.color PostScript) printer was very impressive! Professional Draw is very powerful but very easy to use. It offers a variety of geometric and freehand drawing tools, access to over a million colors, full text and color separation capabilities. Professional Draw iists for $ 199.95 and
will be released in December 1988, Digi-Paint and Digi-Yiew were shown by Laura (Maxine Headroom) Longfellow from NewTek. This combination of digitizer and HAM paint program is still one of the best buys in the Amiga market. Digi-Paint offers an impressive array of colors and drawing tools. With just the flick of the mouse, you can change die color of a specific area in your RAM (digitized) picture.
One thing I noticed was that easy to use but powerful programs are becoming the norm rather than the exception in the Amiga marketplace. All in all, COMDEX was an enjoyable experience.
• AG-
* ¦ * * ¦ - „ Build an expert system application with the
MAGELLAN™ artificial intelligence expert system building tool
and win a MONITERM Viking I high resolution monitor for your
Imagine the possibilities: the power of the AMIGA coupled with the flexibility of MAGELLAN!
Categories for the First Annual MAGELLAN Application Contest are: Most Productive Application Business or Diagnostic systems, decision assistance tools for financial investment, production control systems, or inventory management systems.
Most Creative Application.
Music or Animation systems, or innovative approaches to traditional expert systems.
Most Bizarre Application.
'¦ . !*?* •' ¦ .. ¦ ? . ”
• ¦ .** »..v. •: V- : ,ir Let your imagination run wild!
3 Grand Prize Winners will receive: A Moniterm Monitor A MAGELLAN Developer Package Retail Value $ 3000.
2 Runners-Up in each category will receive: MAGELLAN Developer Package Retail Value $ 1000.
All finalists will also receive a MAGELLAN designer sweatshirt.
All entries must be received by Emerald Intelligence by June 1, 1989. Contest void where prohibited. Contest Winners will be announced at Ami-Expo Chicago in July
1989. All entries become the exclusive property of Emerald
Intelligence Inc., and cannot be returned. Winning entries
may be used in a promotional campaign and any entry may be
included in promotional materials or application manuals.
For a complete set of rules and an entry form, send a self
addressed stamped envelope to MAGELLAN Contest Rules, c o
Emerald Intelligence.
Si THE EXPERT SYSTEM SOFTWARE Emerald rCHCC ' ' ' *334 South State' Street, Ann Arbor, -Michigan. 48104. (313) 663-8757 ; , MAGELLAN is a trademark of Emerald Intelligence' inc. AMIGA is a registered trademark of Commodore-Amiga Inc. Moniterm is a trademark of Moniterm Corporation.. _ _ 1 Philadelphia World of Commodore by Chris Darscb Rick Rue The first U.S. World of Commodore show was held at the Philadelphia Civic Center from November 3-6. A long-standing fixture in Canada, this was the first time Commodore spomsored the show in the United States. Representatives from organizers The Hunter
Group and Commodore said they were pleased with attendance, which fell near the lower end of the expected range of fifteen to twenty- five thousand people.
Thursday and Friday were exceptionally long days, running from 10 AM until 9 PM. Each evening’s announcement that the show was closing was greeted with a spontaneous burst of applause from the weary' exhibitors. Crowds were heaviest on Saturday; Eric Miller of Comp-U-Save a company which appears at upwards of 75 show's a year said wras the biggest sales day Compu-Save ever had.
The show' featured over 75 companies ranging from Commodore and its mammoth “media center” to one-man operations and product representatives working under other companies' banners. The vast majority of the exhibitors showed Amiga-oriented products and services, whoch caused some C64 and C128 owners to express disappointment at the lack of representation for their machines.
This trend will no doubt continue.
In fact, many Amiga-specific companies who didn’t have booths indicated they would be back in force next year once they saw' the emphasis placed on tiie Amiga.
“We insist on professional-looking convention space and exhibitor displays, but w'e have no aspirations to be a Comdex," said Gordon Hunter, president of The Hunter Group. “We want to keep a fairly small show, one that caters to the average Amiga owmer and potential owner, where someone can not only see the products but purchase them from one of the retailers, “ he added. Mr. Hunter, who makes a point of attending each show his group produces, wras pleased with the turnout.
"Attendance figures are comparable to the first Toronto show six years ago, ” Hunter said. “ And this year, the Toronto show will be three times the size of this show-. So, w'e will growr in the U.S. as we have in Toronto, slowly and carefully."
FLASH! CARD A2000 Hard Disk Interface DMA SCSI AUTOBOOT The Flash1 Card 2000 is a new SCSI DMA hard drive interface for tire Amiga A2000, The Flash! Card takes full advantage of the improved features available under AmigaDOS
1. 3. including sockets that allow your Amiga to hoot directly
from the hard drive. The Flash! Card also features ram cache
DMA circuitry providing up to 4 megabytes per second transfer
rates (Under the Fast File System transfer rates are even
faster than the drive mechanism). The Flash! Card allows
direct low-profile mounting of readily available 3.3 inch hard
drive machanisms or the interface can be connected to the
internal drive. The DB25 connector allows the use of external
drives or other SCSI devices.
Flash! Card 2000 ..$ 229-95 Flash! Card 32 ..$ 749.95 Flash! Card -i8 ..$ 8-»9.95 TOOLBOX A 500 1000 ESCORT HD 32--18 MB A500 1000 DMA SCSI Hard Drives li your Amiga has a really voracious appetite, but your pocket book is on a diet, try our Escort 30Mb SCSI hard drive at a 20Mb price. Controllers, with a bus return are available for both A2000 2 Slot Expansion Cage The Tool Box is an expansion card cage that permits use of the new Amiga 2000 cards on the A500 and A1000 computers. It provides 2 vertical 100 pin slots and will accept memory ex
pansion cards, .1 A20S8 IBM Bridgecard, the Asnn as well as the A1000. Each hard drive controller cards including accepts our 3.5 or 3,23 inch drive Commodore's A2090 and the Flush! Chassis (available in sizes up to 80Mb) Card, (as well as other A2000 specific with fan and power supply and is fully cards). The Tool Box provides a bus compatible with Workbench i.,3. If return for future expansion, rear you prefer buffet, buy the kit and mounting panel, power status indicator supply your own drive. However you light and one year limited warranty. Do it you'll enjoy lots of storage space
Dimensions are 14 5 8D x 4 3 4W x 6 at a great price.
1 2H. The EEC-2520 and 2120 permits installation of a hard card type interface without additional power for the drive mechanism.
.Xotr yoii're cooking with gas ' Escort Hard Drive kits A500 1000 32mb 3 xin 28ms...$ 799-95 A500 1000 38mb 3 Sin 28ms., $ 899.95 A500 1000 A50D 1 amp PS $ 189.95 A sun 3 amp P.S $ 259.95 A1000 No P.S $ 179.95 A1000 3 amp P S....$ 259.95 EEC-2510 EEC-2520 EEC-2110 EEC-2120 Kit (No Mechanism) $ 335-95 Sizes to 180mb - Call for prices EXPANSION TECHNOLOGIES 46127 Landing Pkwy, Fremont, CA 94538 415-656-2890 Feed your power hungry Amiga right, give it peripherals from Expansion Technologies.
* Twibpiih nut VISA and MasterCard accepted Dealer Inquiries
Incited lunch fi't Liwycfx Anug.1 i j Irjiknurk of G mmt»di fv
Amiga. Inc IBM t* a trademark ri!
International Business Machines korptir.ilion Kvor! Is j irjiktrurk of Expansion Tc«.hn I i In every' case, lie said, people had a positive attitude. “Hie exhibitors here were encouraged by the show, and they will support the future regional shows which are planned," Hunter said.
“They're making suggestions, and we’re listening to those suggestions. We have announced a show in Los Angeles the third weekend in May, and we expect most of the booths to be sold in the next couple of weeks ” Attendees also made their feelings known, in more ways than one. “People were spending more money here than at other shows, not only because they’re charged less to get in, but because they get more for their money," Hunter said.
"We plan to do surveys of the people who came to the show, to find out what they want. For instance, it would be foolish to have another show in Philadelphia if everybody’s coming from New York,” Hunter said.
Future plans include increased emphasis on seminars. According to Hunter, “This will require better planning further in advance; we're just now getting to know the exhibitors, It's like a first date." Attendees are encouraged to send their comments and suggestions to The Hunter Group, and anyone can receive a newsletter by writing to them at 204 Richmond Street West, Suite 410, Toronto, Ontario M5V 1V6.
A number of activities were available to show-goers, often simultaneously. Many demonstrations were held on the stage at one end of the show floor, and they utilized a huge, color CRT. Instructional meetings and press conferences were held in various rooms throughout the Civic Center.
Support was also provided for user group meetings during the show, When not being used for demonstrations, the large-screen monitor on die stage usually previewed eight new Commodore Amiga commercials to be aired on MTV and VH-1. These commercials are significant in that they were produced entirely on the Amiga and cost just S75,000. Commodore representatives estimated diat such a group of commercials would normally cost more than one million dollars to produce.
• Standard Reports • Free Form Memo Area
• Supports Over 10 Million Family Members
• Easy To Learn and Use tmiga Genealogy?
Here's a rundown of what we found to be new and interesting at the show: Burocare Graphic Design, a company based in the U.K., showed AmiScan, a flatbed scanner with optical character recognition capabilities. The OCR software is capable of learning any font, and the system will sell for about 51600. Also shown was a software package that lets you connect the Polaroid Palette and Palette Plus (with RGBA inputs) to an Amiga 500 or 2000 with no intervening hardware. This package will be available at a substantially lower price than other systems now available. According to Burocare, “We couldn't
get consistent results from the other package on the market, and we couldn't figure out why they needed hardware, so we decided to write our own software, and the results are now consistently better.” Both items should be available by the time this article reaches print.
YOUR FAMILY TREE" Contact Your Local AMIGA Dealer or Send S49.95 + 6% Sales Tax ( PA. Residents Only). $ 4.00 Shipping and Handling ( Within U.S.A.) to: MICROMASTER, INC. 1289 Brodhead Road, Monaca, PA 15061 PH. (412) 775-3000 AMIGA u a Reg Trademark ui COMMODORE AMIGA Moniterm, a company experienced in the IBM and Macintosh markets, unveiled the Viking 1 for the Amiga, a 19-inch grayscale monitor with 1008 x 800 resolution. The display is not interlaced, and the results are stunning.
It’s eerie to grab an Intuition window and drag it for what seems like several miles across the screen. Geared for high-end CAD and desktop publishing applications, the Viking 1 is driven by a card that uses the video sio: in an Amiga
2000. There are currently no plans to support color, due to the
way the Amiga blitter handles graphics. Moniterm says the
main reason they decided to become involved in the Amiga
market is that Commodore approached them asking for a
large, high resolution monitor for high- end applications.
Good work, Commodore! It would be nice to see this trend
Comspec was showing their SCSI adapters which allow autobooting even on an A1000 running KS WB 1.2. Recently upgraded for KS WB 1,3 and TO WIN THE AMIGA HARD DISK CONTROLLER GAME... YOU'D BETTER HAVE A s? ‘ m&MiP€A m” THE ACE OF HARD DISK CONTROLLERS... SCSI INTERFACE SUPPORTS UP TO 7 DRIVES CHAINED TOGETHER
PRICE: $ 1 89.95 !
ASK YOUR DEALER TO CUT YOU IN ON THE BEST DEAL AROUND... mCAJRB ” 1 ivf vintq 15201 SANTA GERTRUDES AVE. STE Y102; LA MIRADA. CA. 90638 PHONE: (714) 994-4443 Don't Miss Your Best SHOT... ... read Amazing Computing™ for the most thorough coverage of the Commodore AMIGA, Amazing Computing is the leader in providing more solid information to the Amiga user. Isn't that why you read an AMIGA specific magazine? Read the original monthly resource. Amazing Computing, and see the difference a complete resource can make!
( 8000 DISASSEMBLY [otg| announcing... DSM VERSION l.Od DSM is a full-featured disassembler for the Amiga. Cheek cut these features and you'll see why programmers agree, "DSM is tire best disassembler currently available for the Amiga, bar none."
• DSM disassembles any Amiga program that docs not use
« DSM produces assembler-ready output that is 100% compatible with the Amiga assembler, assem. Excellent results can also be obtained using the
C. A.P.E. assembler from Inovatronics.
• DSM features true text detection.
• Improved disassembly is supported using the built-in expert
system mode.
If your local Amiga dealer doesn't carry DSM, send check or money order to: OTG Software 200 West 7th Street Suite 618 Fort Worth, TX 76102 TX residents add 7.25% sales rax. Price S67.50 supplied with a menu-driven setup program, the several month old 2000 version was joined at the show by tire new 500 model.
ASDG attracted much attention with their new SpectraScan professional color image input system. The software hardware combination package is based on the Sharp JX-450 seamier, which has a resolution of 300 dots per inch. The software is very sophisticated, yet easy to use. !i allows real-time manipulation of HAM images without any color fringing common to other HAM programs; and it uses paged virtual memory techniques which allow even huge images to be manipulated using a surprisingly small amount of RAM. The back of ASDG’s booth was papered with a huge mural of the city of Madison, pieced
together from 42 pages of color output from an HP PaintJet. The original picture only 8x1 0 inches was displayed alongside.
Spirit Technologies had the covers off all three Amiga models to show how their well-known memory expansions fit into the machines. Just beginning to ship at the time of the show, their ST506 interface allows cost-conscious Amiga owners to use an IBM style hard disk and controller. Although the Wedge and Palomax products have provided this capability for some time, the Spirit entry requires no "hardware hacking” and is nicely dressed up in an Amiga-beige box.
Also discussed but not shown was Spirit's MIDI Star, a new high-end MIDI interface with 2 Ixs, 6 OUTs, and an RS232 feedthrough. According to the representatives at the show, it should be shipping by the time you read this.
RGB Video Creations attracted the interest of video professionals with the CVC Video Workstation. This video post-production package consists of a special rack-mounted version of the Amiga 2000 developed by Computer Systems Associates, and a software package that can control up to 32 video decks at one time. This is a breakthrough system in that it has more features than dedicated professional workstations costing tens of thousands of dollars more. It fully utilizes the multitasking environment of die Amiga as well, allowing programs such as character generators to run concurrently.
RGB Video Creations stresses support for their products apparent from the tutorial module available for the workstation. The tutorial is similar to their Deluxe Help series of programs, and makes the system a breeze to use.
Ataik III, the newest telecommunications program from Oxxi, was debuting at $ 99-00, and is shipping now. Atalk HI supports the IBM character set and emulation, allowing Amiga owners to call into IBM "color'’ boards. Owners of Atalk+ can upgrade to Atalk III for their old program plus $ 25.
The C Ltd. Challenge C Ltd issued a challenge at the show: They are betting one thousand dollars that their new SCSI controller is the fastest of them ail. The results of this challenge should be interesting, considering the competition in the Amiga market for SCSI these days. C Ltd also says that their non-DMA design is as fast as a DMA controller under most conditions, and faster at times. The new SCSI controller is scheduled to ship by January I, and is slated to be the lowest priced SCSI controller on the market. In addition, the controller will allow multiple Amigas to be connected to a
single hard drive, and it will allow multiple SCSI devices (Bernoulli boxes, optical disks, WORM drives, etc.) to be used.
NewTek had a large, bright display, but everyone missed Laura “M- M-Maxine" Longfellow. They announced Digi-View Gold, an upgrade to then- popular digitizer, which requires no gender changer for the .Amiga 500 and
2000. Two impressive demos played on their large monitor: an
Allan Hastings animation and the unfinished “Demo Reel 2".
Allan Hastings is now working with New Tek on a super
secret hardware and software project that was developed
while the Video Toaster was on hold. A New Tek style user
interface will figure heavily into the new product.
If the "Rush Hour ' demo is any indication, the product will be drop-dead gorgeous. Any guesses?
Toast in the New Year?
The Demo Reel, a showcase of New Tek’s capabilities, combines three minutes ol color video and stereo audio onto two disks. The demo was choppy at this stage, but what a compression ratio! The long-awaited Video Toaster should finally be released in February', priced in the $ 1200 to $ 1500 range. The design has been finalized, and the chips that have been a holdup are now available at a reasonable cost. It will be the first of a new product family, and New Tek is now freely releasing spec sheets. “It was ready to go before, but now its really ready to go," said one enthusiastic staffer.
Finally, took for Digi-Paint 2 in January'. It will have such new features as CoIorFom support and 1000x1000 resolution.
Interactive Microsystems was "hiding" in the Software Visions booth, providing an example of an extended MicroFiche Filer application. Using the Arexx port in the new release of the database, MicroFiche Filer communicated user selections to Interactive’s MediaPhile infrared controller module, bringing up scenes from a laserdisc version of The Princess Bride.
Supra Corp. featured an internal 2400 baud modem for the Amiga 2000.
It will be available in January' for $ 179.95. They also plan to release an autobooting SCSI interface for tire Amiga 500 at about the same time. Great Valley Products may have beaten them to the punch, however, as they were ready to THE SKY’S THE LIMIT Don’t limit your potential! Experience excellence!, a wordprocessor designed for your Amiga, with 250 available fonts, a Spell-As-You-iype 90,000+ word Dictionary, Grammatical Style Checker, Thesaurus, Index and Table of Contents generator, Headers, Footers and Footnotes! Sail through PostScript output.
True WYSIWYG, automatic Hyphenation, Math, beautiful resizable Color Graphics, flexible Mail Merge, Columns and an easy-to-use Macro-Language making complex actions a breeze! The fastest wordprocessor for your Amiga is the only one you’ll ever need! Have an excellence! Summer!
Mtro-SrttemsSoltwie Committed to excellence since 1978 12798 Forest Hill Boulevard • West Palm Beach, Florida 33414 • 407-790-0770 Sec your local dealer or call our Sales Division 1-800-327-8724 Amiga is a registered trademark of Commodore Business Machines * PostScript is a registered trademark of Adobe Systems, Inc. cxeccllencc! Is a registered trademark of Micro-Systems Software, Inc. 51 Norwich New London Turnpike Rte 32 Quaker Mill, CT 06375
(203) 443-4623 We take a byte out of the price Not oat of your
Amiga is a registered name ol Commodore Amiga, Inc. ship autobooting SCSI controllers at the show. The CAT producL is interesting in that the controller is built upon a 2-meg unpopulated RAM card. The card can be populated at any time by using 16 1-meg RAM chips, currently the most economical chip available.
Michtron demonstrated VIVA the Visual Interactive Video Authoring system by Interactive Images to interested showgoers. The demonstration consisted of a laserdisk system being driven by VIVA software, interfaced to a Commodore monitor with a touch screen. It was an excellent example of what the Amiga can do, given the proper environment.
Progressive Peripherals and Software was showing Ultra Design, their soon-to-be-released CAD program, on an Amiga 2000 equipped with a Flicker Fixer. This is tire type of application that really shines on a flicker-free monitor.
Trust us, if you’ve never seen a 640 x 400 non-interlaced display, don't even look at one unless you're ready to buy.
The temptation is just too great.
Ultra Design is a very professional CAD program that not only supports every feature available in Amiga CAD programs today, but breaks new ground as well. Even with all this power, the program is simple to use. Each action you take is accompanied by unobtrusive context-sensitive help displayed in the title bar. An especially nice feature is the PasteUp system which allows complicated printing jobs, like murals, to be generated easily. This means you can now create a high resolution D-sized plot using a dot matrix or laser printer. The user interface got much attention, and it allows every task
to be completed in clear, concise steps using either the mouse or the keyboard. Ultra Design is being created as an expandable product, so expect it to grow in several dimensions.
Precision Incorporated spread its American wings at die World of Commodore, debuting two new products and showing a third. The two new products available at the show were Superplan and 5uperbase Personal 2.
Superplan is a sophisticated 74 function spreadsheet with macros, 18 different kinds of charts, and Arexx compatibility.
Arexx compatibility allows the spreadsheet to communicate freely with other programs such as Superbase Professional, This integrated database spreadsheet capability is tough to beat.
Superbase Personal 2 is an upgrade to the original Superbase which benefits from intelligent data handling algorithms used in Superbase Professional. Although a '‘dongle” is still used for copy protection on Superbase Personal 2 (it has been dropped from Superbase Professional), an unprotected copy is available at very low cost when you send in your registration card.
Precision Audio Precision also showed a product that marks a new direction for the company: Pro-Sound Designer. This is a high quality stereo audio digitizer with impressive features such as automatic gain control. In addition, there are many editing functions which advance the state of the art for audio digitizers on the Amiga. The product, priced at $ 159-95, should be available as you read this, and there will be an introductory offer allowing a fifty dollar trade-in on your current digitizer.
In the MindWare booth, representatives were debuting PageRender 3D, a new 3D rendering package scheduled for January release.
Targeted at $ 159, PageRender 3D supports both Haitex and colored 3D glasses. Also being shown was PageFlipper Plus F X, MindWare's upgrade to their PageFlipper animation package.
Brown-Wagh showed the latest upgrade to their Express Paint program.
Although the program does not support HAM, just about every other feature is available. New features include a page size of 8000 horizontal pixels and vertical pixels (limited only by available RAM); sophisticated perspective mapping; color PostScript support; tinting, dithering, and smudging; extended gradient fill capabilities; and six ranges of color cycling. Stephen Vermeulen, the developer of the package, says that the program is aimed squarely at DeluxePaint. Some of the features of that program, he says, are awkward and hard to use. With Express Paint, many more features are available
in an easier to use format.
ReadySoft showed two very exciting new products that will be ready for market soon. The first is the famous Dragon’s Lair game by Don Bluth. It has been painstakingly brought to life on the Amiga with all the action and quality of the LaserDisk version. Eight hundred megabytes of data have been compressed onto six disks for this epic game. A different part of the game is featured on each disk, and the player works his way through a maze while each disk is loading, so that there is no break in the action.
In a totally different direction, ReadySoft also showed a hardware software product called the Mac Emulator to enthusiastic crowds. This technological wonder actually converts your Amiga into a fast Macintosh for about $ 200, including the price of the Macintosh ROMs. The hardware plugs into the external disk drive port and takes over the machine. (Pity.., how many of us might dream of a 2000 with a bridgecard and Mac Emulator running a different computer's software in each of three windows!)
The Mac Emulator will run nearly every application available for the Mac, including Word, Excel, and Mac Draw.
Ironically, Macintosh drawing programs run even faster on the Amiga than they do on an actual Macintosh, since the Amiga has the “blitter advantage.” Now, anyone who has decided that they want a Macintosh (yes, Virginia, those people do exist!) Can have one for less money, and they can get an Amiga for free!
What a deal!
Gold Disk drew crowds with demonstrations of MovieSetter (their new animation package), ComicSetter, and Professional Draw (claimed to have 95% of the functionality' of Adobe Illustrator).
The debut showing of MovieSetter was complemented with demonstrations by James “Max” Morehead, one of the principle programmers. On several occasions, Max showed everyone just how easy it was to create an animation, putting together a complete scene with sound effects in a matter of minutes.
Companies Mentioned ASDG, Inc. Michtron Progressive Peripherals & Software 925 Stewart Street 576 S. Telegraph 464 Kalamath St. Madison, WI 53713 Pontiac, MI 48053 Denver, CO 80204
(608) 273-6585
(333) 334-5700
(303) 825-4144 Brown-Wagh Publishing MindWare International Ready
Soft 16795 Lark Ave 230 Bayview Drive
P. O. Box 1222 j Suite 210 Suite 1 Lewiston, N.Y. 14092 Los
Gatos, CA 050300 Barrie. Ontario
(416) 731-4175 1(800) 451-0900 Canada L4N 4Y8
(705) 737-5998 RGB Video C Ltd.
2574 PGA Blvd 723 E. Skinner Moniterm Corporation Suite 104 Wichita, KS 67211 5140 Green Circle Drive Palm Beach Gardens, PL 33410
(316) 267-3807 Minnetonka. MN 55343
(305) 622-0138 Contspec Communications
(612) 9354151 Spirit Tccnology 74 Wingold Ave.
NewTek, Inc. 220 West 2950 South Toronto, Ontario 115 W. Crane St. Salt lake City, Utah 84115 Canada M6B 1P5 Topeka, KS 66603 1(800) 433-7572
(416) 785-3553 1(800) 843-8934 Gold Dlsk Oxxi Incorporated Supra
Corporation 1133 Commercial Way
P. O. Box 789, Streetsvilie
P. O. Box 90309 Albany, OR 97321 Mississauga, Ontario Long Beach,
CA 90809
(503) 967-9075 Canada L5M 2C2
(213) 427-1227 1(800) 387-8192 Interactive MicroSystems Precision
Incorporated 8404 Sterling St. '
P. O Box 1446 Suite A HavenHill, MA 01831 Irving, TX 75063
(617) 372-0400
(214) 929-4888 (See “MovieSetter: A Chat with Max Morehead” for
more information.)
All things considered especially the fact that Comdex was scheduled for a mere two weeks later the first U.S. World of Commodore show was an exciting four days and a definite success.
We’re already looking forward to the second show... and we hope to see you there!
• AC* II I I I I ¦ I ¦ I I ¦ l l ¦ ¦ ¦ I I I r Templicit 60
Ready-made Templates For Your Spreadsheet!
Available for Analyze!. Logistik, MaxiPlan, and VIP Professional
• Easy to use
• New1 1988 tax returns w upgrades
• Personal Financial Planning
• Real Estate Decisions
• Accounting
• Credit and Loan Analysis
• Personal and Business Budgets
• Business Forms and Bookkeeping
• Try for 30 days on our no-risk money-back guarantee.
Sample set-20 templates-$ 14.95 Complete pkg,-60 temp!ates-$ 29.95 To order, send check money order to: The Sterling Connection Box 4850 Berkeley, CA 94704 Specify which spreadsheet you have.
To order by phone: Call (415) 655-2355 Mastercard and Visa accepted.
California res. Add 7% sales tax.
I i i i i i i i i i i ¦ i i i i i i i i !The statements and projections presented in “Roomers” are nttnors in the purest sense. The bits of information are gathered by a third party source from whispers itiside the industry. At press time, they remain unconfirmed and are printed for entertainment value only.
Accordingly, the staff and associates of Amazing Computing™ cannot be held responsible for the reports made in this column.] Roomers & Replies by The Bandito There's more to some Amiga developers than meets the eye. The Bandito got a phone call in the dead of night from the informant known only as Deep C, who told a fantastic tale. It seems that early on in the Amiga's history, at least one major Amiga developer was financed by Commodore to create a software package that Commodore thought would be vital to their Amiga marketing efforts. This software package addressed an important, rapidly
growing market segment. Commodore offered a sweetheart deal: they would pay for development, advertising, and marketing costs. The developer agreed, and as a result has had plenty of advertising paid by Commodore, special brochures, prominent position in Commodore ads, etc. In fact, Commodore pays for all the marketing and advertising of their software package. Not surprisingly, the software has come to dominate its market segment (although, to be fair, it is the best piece of such software).
This deal worked out so well for Commodore that they have approached several other companies to do software and hardware that Commodore would dictate the specs on. No takers so far, except guess who: the same developer they worked with before. Their new piece of software is designed to dominate an important market segment when it comes out in the near future.
Why the secrecy from Commodore?
Well, naturally, other developers might perceive that lots of dollars and prominent placement in Commodore marketing materials is unfair competition.
(Amazing how such erroneous impressions can circulate.) Of course, part of that is sour grapes, because those developers weren't asked to be part of the deal (if they had been asked, the ones who complain the Loudest now are probably the ones who would say yes the fastest). Until the software market for the Amiga really matures, Commodore will probably keep trying this strategy to fill in the gaps. Given the fact that Commodore hasn’t yet succeeded in wooing the really big software companies to bring their products lo the Amiga, this is the best thing Commodore can do for the future of the
Amiga. But if any of the large software companies do enter the Amiga market, they might take a very' dim view of this software subsidy. (A similar situation occurred with Apple Computer, which is why they spun off their software division as a separate company.) Come to think of it, that may be one reason why some of the software giants have stayed away from the Amiga so far. Something to ponder, eh?
HAM Paint Wars Update: A new version of DeluxePhotoLab is in the works, adding 3D perspective features among other things. No word on when it might appear, but the flowers will be blooming when it does, you can bet.
Another interesting data point about the HAM Paint Wars: No advertising for any of the products lately, which could mean that the publishers are creating ads for new products. The Bandito is still waiting for the other contestants to come on down and join the fun. There probably won't be any new entries until early next year, which wus about the time they were announced last year.
You don't think that some of those companies were a mite premature in announcing their software, do you?
[.Informed sources at Electronics Arts indicated no work was being done on a version of Deluxe PbotoLab which supports 3D perspective. Ed] Speaking of premature announcements, the Video Toaster should win an award for the Most Anticipated but Delayed Product it’s been over a year now that NewTek first displayed it, and still no shipments.
Information leaks picked up by electronic surveillance indicate that the Toaster is getting much closer to being reality, and is starting to be shown to a select few. In fact, a brand new' Toaster tape w'as shown to the dealers at Comdex, and the picture quality looks much better than the previous showings, according to those who have seen it.
The Bandito expects from all indications that the Toaster will appear before the groundhog sees his shadow in 1989.
Reports are that it has many more features than the version previously shown, and the price tag will be around a thousand smackers. No word yet on exactly all that it does, but the Bandito's spies are busy putting psychoactive drugs into Topeka's w'ater supply, so more data should become available.
Unformed sources at NewTek indicate the Video Toaster will become available in March or April of1989 Ed] Comdex report: The usual Commodore trade show booth was in place, with the usual developers displaying the usual products. The most interesting news came from the seminars Commodore held for dealers. (The Bandito has made friends with some Commodore dealers. Nonnally, wildlife experts recommend that you keep well away from computer dealers and avoid feeding them, hut the Bandito has discovered that if you catch them young and treat them right, they can make good companions.) The seminars
were packed with more dealers than ever before, so it’s obvious that Commodore is succeeding in expanding its dealer network. New 15 second TV spots created by Griffin-Bacall (Commodore’s ad agency) were shown, but the reaction wasn’t quite what Commodore had hoped for. These spots were created for MTV, and were far too hip for the mostly post-teen dealers. In fact, when a Commodore rep said “How' about those commercials!’’ in an excited tone of voice, only about two dealers out of a thousand applauded. But even if the dealers were underwhelmed, tire commercials will probably do well with the
MTV crowd. It's also part of Commodore’s strategy to reach out to the music dealers by getting to the clientele that goes to music stores.
The big Comdex news from Commodore was the announcement of the A2500 and the A2000HD. The A2500 is, as the Bandito may have mentioned before, an A2000 with a 68020 Sluffed inside, 1.3 ROMs and 4 megabytes of RAM. Unfortunately, Commodore's price is very expensive (no word yet on what the street price will be). The A2500 should be available before Christmas, but you don't really need to wait for it you can put one together yourself with an A2000 and third-part ' hardware, and a darn sight cheaper than Commodore's list price. The A2000HD is just an A2000 with a hard disk. The important thing
about these announcements is that having "official" 68020 Amigas and hard disks helps the machine and the third- party hardware sell better. In effect, Commodore legitimizes these add-ons.
Yeah, sure, it s cheaper with other people's components, but business buyers need the reassurance that “official" parts provide. So the dealers are very pleased that Commodore is listening to them and providing the machines the customers want a good sign for the future of the Amiga.
It’s clear from their statements at the show that Commodore finally sees the Amiga and the desktop video as hot topics. There are now (according to Commodore) over 1700 software packages available for the Amiga, and somewhere between 600,000 and 800,000 Amigas have been sold worldwide. The A2000 is now selling exceptionally well it’s even outdoing the A500 in some places. Commodore is clearly looking to the future where rhe Amiga replaces their C64 and PC clone product lines, and becomes a true "third force” to be reckoned with alongside of IBM and Apple.
Amiga’s clunk}' external drives may be replaced by a slimline model next year, according to some stray bits collected from Westchester. This may or may not be the same as the higher capacity drive previously hinted at.
Cynics believe it’s just a new injection mold for the standard drive. The Bandito just wants a drive that doesn’t ciick when it's empty'.
Deep C reports that Commodore is planning to bundle a VCR with every Amiga 500 purchase for a limited time promotion for Christmas; the deala will also include some software packages.
Another deal offers a MIDI keyboard instead of the VCR and a different set of software. Looks like Commodore is serious about moving hardware over Christmas, and thereby keeping those new dealers happy. It's a good deal for those of you about to buy an A500 anyway. Don’t look for any price reductions after the promotion ends, because the Bandito hears that none are planned for the near future.
What's Uncle Jack up to these days? The word is that Uncle Jack no longer has an active role at Atari. He’s semi-retired, taking it a little easier while his sons worry about the business. What the hey, he's rich enough that he doesn’t have to worry'. The Bandito should have such problems.
But Atari does have some troubles, what with Atari ST sales languishing in the U.S. While their videogame sales are strong, only a committed optimist believes that videogames will never slump again. So how does Atari plan to grow? Of course, there’s been the minors about a low cost UNIX workstation and the ABAQ transputer. But the Bandito thinks those machines will never appear, simply because that's not the type of market die Tramiels have gone after in the past.
(Although word has reached the Bandito that Atari is looking for engineers with UNIX backgrounds, which would lend credence to that theory.) A new 4096 color Atari is in the works, and was shown to select groups at Comdex. But the price is substantially higher than an Amiga, and performance is not as good (no high-quality sound chip, lor example). They’ll have to work real hard to match Jay Miner's chip artistry.
A more likely occurence would be taking an Atari ST, stripping it down and making it into a videogame (as the Bandito reported that Commodore is considering for the Amiga 500).
Remember, Atari has already done this with their 65XE (formerly an Atari 800), and it’s done reasonably well. Of course, the market's getting crowded for 16 bit videogames or is it? No one has released their machine in the U.S. yet. The first one to do so could gain extra market share simply by virtue of being first, which is something that the Tramiels wouldn't overlook.
On the other hand, maybe Atari will finally try7 to make some money with an IBM clone. Knowing Jack's Taiwan connections, he may well be tire first to brave Apple's legal department and try7 to bring a Macintosh clone to this country.
Or how about an Amiga clone?
Some Atari partisans would argue that an ST is already a Mac clone (with the addition of a Magic Sac cartridge), and there is an Amiga version of the Magic Sac on the way. But the Bandito has found out that even if the Amiga Sac comes out, it will have trouble with a good deal of Amiga software, particularly software that depends on the Amiga’s hardware tricks (for instance, any program that supports HAM graphics).
Doesn’t sound like you'll be seeing an Amiga clone.
Falling RAM prices mean the return of reasonably-priced memory expansion, probably in time for you to spend the Christmas money you get from Grandma. Real techno-yuppies buy extra RAM just so they can run games from a RAM disk (now that’s a status symbol). With RAM getting cheaper.
Commodore is looking at the possibility (continued) of increasing the standard A2000 RAM to 2 or 3 megabytes, and bumping up the A500 to 1 megabyte, But don't hold your breath; you'll probably have to wait for an A2500 before more RAM is standard.
If you want AmigaDOS 1.4, be prepared to hang on until Spring 1989, and mayrbe later. Word is that they're adding more features, and debating exactly what should be included. Given the length of time it took to debug 1.3, we should see 1.4 before the Amiga centennial celebration.
The RAM chip crisis has been affecting some software companies. The supply of Nintendo cartridges is short because of RAM chips, and companies like Mediagenic, Broderbund, and Mindscape are not getting all the cartridges they want. All Nintendo cartridges are manufactured by Nintendo, so companies like Mediagenic must ship their software to Nintendo, order the cartridges from Nintendo, put up a lot of money in advance, then get a fifth of their order three months late. The recreational software market (for all computers) this year will total about $ 300 million dollars, while the market for
Nintendo cartridges will be about SI billion dollars. Doesn't take an Einstein to figure out which market developers would rather have their products in, does it? But Nintendo makes it hard for them by restricting the number of games they allow. That’s part of the reason other companies want to jump in to the videogame hardware business: software companies will eagerly support them if it looks like they have a winner.
Nintendo's 16 bit videogame machine will be unveiled this December.
Commodore will have private showings of its A500 “videogame" for certain special buyers, to gauge tire reaction.
What does all this mean to you?
Probably more Amiga games, since “potting" to the Amiga will be easy and these new machines mean a big, juicy software market.
Speaking of the popular market, the rumor being floated by Commodore sales reps concerns the A500 appearing in Toys R Us. It appears to the Bandito that the salesdroids are testing the waters of dealer reaction to the idea. Of course, selling to mass market accounts was the thing that lost Commodore its previous dealer base back in the good old C64 days. This time, Commodore is hoping that the A2000 will be the machine for dealers, and the A500 will eventually be the mass market machine. It’s possible this could begin sometime next year, but it's still a subject of heated debate.
Hot game tides in the stores these days: Battlechess, Interceptor, Menace, and Rocket Ranger, look for some intense competition at Christmas time for your holiday dollar, with a lot of new releases and overseas imports. Amiga versions of the arcade hits Star Wars and Empire Strikes Back have appeared from a small company in England. They are faithful translations, and anyone who likes the arcade versions will want them.
Be prepared to dig through the dealer’s shelves to find the little CD boxes these games come in. But it's worth the hunt.
This Christmas, if you like arcade games, you’re in luck. But if you want to buy all of the arcade game titles for the Amiga, plan on getting a second mortgage on your house.
Even Up The Score!
Let your Amiga give you the Advantage in making better investment decisions!
Color graphics of Individual Stocks and General Markei 1 rends help you make more profit in this volatile market.
High Low Close, Moving Averages, Centered Moving Averages, Volume, Relative Strength, Stochastics, Wilder’s RSI, Cycles, Trend lines and Momentum, Powerful reports such as the Relative Strength Report help you pick the best performers. Use ihe Market Barometers to help you time your market entries. Update Slocks, Mutual Funds and Commodities manually or automatically. Easy to use communications included.
Only $ 99.95 See your local Dealer or Call: Software Advantage Consulting Corporation 37346 Charter Oaks B!vd Ml. Clemens, MI 48043 (313) 463-4995 Amiga and Ihe Investor's Advantage are trademarks ol their respective companies.
Despite all the new products, the big entertainment software companies are privately expecting a dull Christmas this year. The anticipated sales surge for October did not materialize, though this is perhaps due to the lackluster titles presented for the fall buying season.
Some facts and figures about the software business: A good sell-in (that’s the number of copies sold before shipment) of a new entertainment product is about 10,000 units for an Amiga title. Comparatively, a goo sell-in for a C64 or MS-DOS title is about 30,000. The biggest entertainment hit on the Amiga market has sold maybe 50,000 copies, while the biggesL hit in the C64 or MS-DOS market has done about 500,000 copies. Perhaps this will make it clearer why it's important that there are more Amigas out there, and that there’s less piracy. Even those publishers who love the Amiga have to make
IBM versions to make the big money, and if Amiga versions can’t make as good a return on investment, they may stop doing Amiga products. So convince ail your friends to get an Amiga and buy software, since that will mean more and better software for everyone.
"TxEd Plus'"1 The Text Editor for the Amiga" Plus a whole lot more.
"Ol * ,yTA-j rjlr- Disk cache, speeds up floppy and hard disk OlllZUioK reads up to 2000%.
FastFonts Speeds up text display.
FunKeys Hotkey window manipulator.
A "D TD Latest versions of the
- ti-LV-L AmigaDOS1"1 Replacement Programs.
A "D Th1 YY Demo version of the AREXX, the macro processor used by TxEd Plus.
TxEd Plus is a powerful yet simple text editing environment designed to meet all of your text editing needs. It's small, fast, and fully configurable. The AREXX macro language connection makes TxEd Plus an ideal foundation for your complete multitasking system.
"As a programming and general-purpose text editor, TxEd Plus sets the standard.'
- Warren Block, Sept '88 INFO Magazine "( TxEd VI.3 is) ...a very
good editor and an excellent value."
- Jan&Cliff Kent, Vol. 1 9 Amazing Computing "FastFonts
IblitzDisk provides much more than Face II for a similar
- Warren Block, July '88 INFO Magazine "Yes, get TxEd if you're
editing almost anything on the Amiga."
- Bruce Webster, July '86 BYTE Magazine "I found the ARP commands
to be smaller, faster, and more powerful than their BCPL
- Jeff Blume, July '88 AmigaWorld Microsmiths, Inc PO Box 561,
Cambridge MA 02140
(617) 354-1224 BIX: cheath 018:76004.1766 MC and Visa accepted.
Mass Residents add 5% sales tax.
Amiga and AmigaDOS are trademarks of Comm adore-Amiga, Inc flickerFixer eliminates your Amiga 2000 s interlace flicker and visible scan lines. The result: superior quality color or monochrome graphics and text for o full range of demanding applications, including CAD, desktop presentation, graphics, animation, and video.
Reviews are impressive: Commodore Magazine 12 88: Best of 1988 Award. AMIGAWORLD 12 88: 1 Readers' Choice Award. AMIGA GURU 5 88: ‘The display is fantastic... It is the best display we have ever seen on any computer system. " flickerFixer fits into the Amiga video slot, is fully compatible with all user software, and does not modify the standard Amiga video signals. The board upgrades the Amiga 2000 with a flicker free 4096 color palette, has an overscan mode that features a screen size of 704 x 470 pixels and drives most of the popular PC Multiscon and VGA monitors, including the NEC
Multisync ond Mitsubishi XC1429C.
Fcte rF xer™__ Advanced Graphics Adapter For TheAMIGAli 2000 flickerFixer is priced at $ 595. It is made in the USA ond is FCC Class B approved. For more information or to order, call MicroWay Soles at (508) 746-7341 or your Amiga Dealer.
P. O. 0o* 79 32 High St., 58 Atchison St., Kingston, Moss. 02364
USA Kingston-Upon-Thames, U.K., St. Leonards, NSW, Australia
(617) 746-734 1 01-541-5466 02-439-8400 Piracy is concerning more
and more Amiga developers these days. Some developers
estimate that they're losing 50% of their sales to pirates.
(The Bandito thinks it’s interesting that the publishers of
a major copy program for the Amiga have dropped their
support for the product now that (hey produce games.)
Publishers would rather not copy-protect the disks because
of the growing number of hard disk owners out there, but
the lost sales may force them to do so. Worse yet. It could
force some publishers out of the Amiga market entirely.
If you don't think that can happen, take a look at the Atari ST market, where piracy grew so bad that the software market collapsed (consequently, so has the hardware market). Some developers have tried putLing in a code wheel or a map with a game, but that doesn’t help enough. The Bandito hears that things may get serious soon, with some of the major, well- known pirates (you know who you are) being the object of legal action.
Developers would like to see the pirates behind bars, and that just may happen in a few cases.
Speaking of software, DeluxePrint II has shipped is the Bandito the only one who noticed?
Gold Disk’s Professional Draw package looks like another important product for the Amiga a full featured draw program that uses Postscript for high-quality output. Those who’ve seen it say that it beats the bits out of Adobe Illustrator for the Macintosh, and ProDraw offers color support, besides.
Yet another good reason to buy an Amiga instead of a Macintosh.
In fact, if you stack up a Macintosh II against an Amiga 2000 with similar equipment, the Amiga competes extremely well; when you throw in the price, it’s no contest. One difference that you car i yet overcome is the number of colors available; the Macintosh boasts a palette of 16 million colors, and with some expensive boards (S2500) you can even use all of them (or at least as many as you have pixels on your screen). The Bandito hears that some Amiga developers are aiming to fix this lack on the Amiga's part. The answer may be expensive, but you will be able to gel millions of colors on your
Amiga, and perhaps even larger screen sizes. Look for these solutions to arrive next spring, but expect to pay more than $ 1000 for the privilege.
While the Amiga developers are working on getting a larger palette, Apple knows that Amiga's desktop video power is a major selling point. The Macintosh II is a poor machine for video because the signal it puts out is far away from NTSC, and must undergo considerable (and expensive) manipulation to become NTSC compatible. The Bandito has learned through his sources that Apple has created a new generation video chip that will make future Mac It’s much more video capable (though still not as compatible as an Amiga . Of course, they’ll still be much more expensive than an Amiga, but it’s clear
that Apple intends to narrow the technological gap to compete more strongly in the growing desktop video market.
¦AC- [In an attempt to verify the above comments concerning Commodore, we have notified them of these comments via FAX. As of December 2d, 1988, we have not yet received a reply Commodore's comments will be published in Roomers when a reply is received. Ed] We're back, with another exciting installment of PD Serendipity! Ibis month we'll cover Fred Fish 163-172. So let's go!!
PD Perendfpftcy Insight into the World of Freely Redistributable Software for the Amiga™ Fred Fish Disk 163 Bankn V1.5 Update to FF120 A complete checkbook system offered by the author as shareware. By Hal Carter FivelnLitte A board-playing game similiar to Go- Moku, Ristinolla, etc. Fast-paced and quickly addictive! Includes tire source.
Macbll V2.4c Update to FF 130 A "mouse accelerator" program that also includes hotkeys, tire features of sun mouse, clicktofront, popcli, title bar clock with a bbs online charge accumulator, and more. Includes the binary only. By Brian Moats MemTrace Routines to help debug memory allocation and freeing during program development. Will complain if you try to free memory you didn't allocate and will report on memory not freed when your program finishes. By Jojo Wesener PcPatcb Patches for PCCopy and PCFormat from the 'EXTRAS 1.2’ disk, to allow reading writing formatting 3-5 inch 360k (2
sides 40 Tracks 9 sectors) MS-DOS disks. By Werner Guenther ReadmeMaster A nifty little database for finding those programs that you know exist somewhere in die AmigaLibDisk library.
Maintains a key-word dictionary of tire Contents descriptions that allows searching by disk number, program title, author’s name, or some odier descriptive word. Currently supports disks 1-154 with planned updates from the author.
Binary' only. By Harold Morash View A mouse-oriented text File reader.
Sample operation is demonstrated in reading die View.doc file, instead of using the usual "Less" text file reader.
By Bryan Ford Fred Fish Disk 164 C-Functions A group of four little C-functions to add to your library to make your programming life a little easier. Includes source and a small demo program showing some of the results. By Lars Thuring DiskSalv V1.3 Update to FF 20 Very' useful program to recover files from a trashed AmigaDOS disk. Can also "undelete" files deleted by mistake, so long as drey have not overwritten by further disk activity. Requires two disk drives. Binary only. By Dave Haynie lied A handy little editor that is more user- friendly than "Ed", yet doesn’t require die memorization
of complicated keystrokes of some of the larger, more powerful, editors. Binary only. By Hal Carter (continued) Newton VI. 0 Uses the “Newtons Mediod" algorithm to estimate both real and imaginary roots of a polynomial of degree 20 or less.
Includes source. By Daniel Barrett NewZAP V.3.18 Update to FF 58 A third-generation multi-purpose file sector editing utility, from the author of FileZAP. Displays and edits full 512-byte sectors via a 106 character wide internal font. Includes a search feature to find specific strings or hex digits, forwards or backwards. Binary only. By John Hodgson PcView Provides die PC community' widi the opportunity to display IFF pictures to the best of EGA’s ability. Displays Amiga pics, IBM-PC Deluxe Paint Pics, Apple II- GS Deluxe Paint Pics, and others in the IFF standard format. Includes the
source. By John Hodgson Poly Root V2.00 Another Polynomial root-finder using the Newtonian algorithm. Nicely done in AmigaBasic with good documentation file. By Jon Giorgini PrtDrivers A couple of new Printer Drivers. One for Digital Equipment's LNG3+ laser printer, and one for Mannesmann Tally’s MT420d dot matrix. Authors: DEC LN03 Bernie Mentink MT42Qd Sascha Wildner come.
All Foreign Computer Stores Magazine Dealers Welcome to the amazing world of Amazing Computing™ - one of America’s leading magazines for Commodore Amiga users. Amazing Computing™ was the first magazine to document CLI, the first magazine with a I Meg Amiga upgrade hardware project, and the first magazine to offer serious programming assistance.
Don’t deny your large English- speaking audience the kind of magazine that will provide them with complete information on the Amiga.
Come and join our Amazing world as either a dealer or an advertiser.
For details on becoming an Amazing Dealer or an Amazing Advertiser, please contact: Marie A, Raymond International Coordinator PiM Publications
P. O. Box 869 Fall River, MA 02722
(508) 678-4200
(800) 345-3360 FAX: (508)675-6002 . COMPUTING' Your Original
AMIGA Monthly Resource Zoo V2.00 Update to FF136 A file
archiver, much like “arc” in concept, but different in
implementation and user interface details. Includes some
nice features that “arc” lacks (such as file path names up
to 255 characters in length). Binary only. By Rahul Dhesi,
Amiga port by Brian Waters h zdc Fred Fish Disk 165 Connmn
VI.3 Update to FF 133 Extremely useful replacement for the
standard console handler, provides line editing and command
line histories.
Completely transparent to any application program that uses CON: windows. This program is shareware, and well worth a donation to the author.
Binary only. By William Hawes CPM Another CP M emulator independendy authored from the version that appeared on disk 157. Emulates a CPM computer with a Z80 processor connected to an ADM3A terminal. Assembly source included. By Ulf Nordquist Parsnag A program to aid in performing color separations on Epson JX-80 printers.
Includes source. By John Hodgson PlotView A couple of programs, Plotview and Plot2Am, for viewing UNIX plot files.
Also included are two sub-directories: Plot a device independent plotting package for the Amiga, compadble with the UNIX plot subroutine package and Plot2Tek converts UNIX plot format files to Tektronix 4l0x terminal graphic commands. Source included. By Joel Swank RamCopy A copy program designed for machines with 1 meg or more of Ram and only one disk drive. Allows you to copy a complete disk in only one pass. By Stephen Gunn SPUDclock V1.2 A simple program that uses the narrator device to speak the time at certain user specified intervals. Lots of command line options, includes source.
By Robert E. Beaty and H, Bret Young Fred Fish Disk 166 AutoGrafVl.O Collects and graphically displays information on auto mileage. Features such as miles per gallon, cost per mile, miles driven, highs, lows, averages, etc. Includes sample data file, a couple utility programs and source. By Joel Swank Cref Update to FF 103 A C cross referencer program. Prints out your code with llne-numbers and complete key-word cross-referencing.
Includes source. By Mike Edmonds; Amiga port by Joel Swank MutiiCalc Yet another RPN type graphic calculator.
This one generates answers with extreme precision (if 3000 digits is enough!) Features a 48-digit scrollable display, mouse driven with lots of keyboard shortcuts, and iconification during non-use. Binary only. By Kennethjohnson Stevie V3.10a A public domain done of the UNIX Vi1 editor. Supports window-sizing, arrow keys, and the help key. Version 3.10a, includes source. Amiga port by Tony Andrews Fred Fish Disk 167 Cdecl Update from FF114 English to C (and vice versa) translator for C declarations. This little gem will translate english such as "declare foo as pointer to function returning
pointer to array 10 of pointer to long" into “long '1(*(*foo)0)[10]”, and vice versa. Includes source. By Graham Ross with enhancements by David Wolverton, Tony Hansen, Merlyn LeRoy, Udi Finkelstein and probably others!
CLIcon Mows you to run cli programs from tire workbench, similar in operation to IconExec, but more versatile. By Bryan Ford ,.xr Am r Schedule Assistant f I ; } J ' Software for ihe AMIGA1 M computer Voice and Sound Reminders - Create your own or use NAG PLUS iihrarv.
Perpetual Calendar -Enter 99 cwnis per day.
Auto Dialer Connects YOU, r r your modem.
ARKXX Port ¦Commands any timed event or actum.
Notepad -Click on any word to open text editor.
Print •One dirk prints any file or appointment list.
Suggested Retail $ 79.95. Ask your dealer or contact: 17730 15th Avenue N.E. o'o. Suite 223 nramma Seattle. Washington 98155 FrVwlfcintinl W,VUtn CloseMe Another ingenious perversion in the screen hack category. Don’t miss this one...surely destined to become a classic!
Includes source. By Charlie Gibbs DSM (Dynamic Sound Machine) Demo version with “Save" disabled of a program that will take any IFF sound or raw data and save it as a totally self-contained, runable program. By Foster Hall MRPrint VJ. I A cli-based text file printing utility with lots of nice features, including tab-to- space expansion, page headers, line numbers, margin control with line- splitting and pagination correction, ARP wildcard support, and auto- rejection of files containing binary characters.
Includes source. By Mark Rinfret Smas3.6a Update to FF 58 An enhanced version of the smus player that last appeared on FF58. By John Hodgson Sounddemos Some very nice demos for showing off die incredible audio power of die Amiga!. 100% assembly language, make sure you have the stereo connected for these! By Foster Hall Fred Fish Disk 168 This is the also the first disk of a two disk “Matt Dillion special'’ containing binaries and sources to tire latest versions of a great deal of Matt’s many programs.
Fred Fish Disk 169 This is the also tire second disk of a two disk “Matt Dillion special" containing binaries and sources to the latest versions of a great deal of Matt’s many programs.
Because of the nature of Matt’s programs and the need for his support libraries to recreate many of his programs, Fred opted to keep these disks pretty much as 1988 TAXES Calculate your 1988 Taxes with Quality Business Systems' TAX PLAN FAST, EASy, ACCURATE
• Prints Forms
• Audits Taxes
• Multiple Returns
• 20 Forms and Schedules
• Saves to Disk
• Forecast 1989 Taxes Commod o re-A m iga ONLY S34.95 Add Sd Sti
MA add 5% Sales Tax. Check, M.O., Credit Cards Quality Business
P. O. Box SOS, Hudson, At A 01749 1-800-ZZ5-5800 Matt sent diem
to him, radier than follow die usual AmigaLibDisk format of
binaries and sources in one directory'.
This would have undoubtedly increased diis to a diree disk set. Please note that if you plan on recreating any of these programs, then it is quite possible that you will need information from both disks.
Pteose don't fo'get to let us know.
If you are having a problem with your subscription or if you are planning to move, please write to: Amazing Computing Subscription Questions PiM Publications, Inc.
P. O. Box 669 Fall River, MA 02722 Fred Fish Disk 170 Afttenn
Commmunications program utilizing IBM 3278 terminal emulation.
Binary only.
Pbase remember we cannot mail you mogaane to you if we do not knew where you ae.
By Don Brereton Picosc otfow four to six wooks for processing.
Dis6502 A ported 6502 disassembler widi support added for C64 binary' files. Includes source. By Robert Bond, .Amiga port by Udi Finkelstein FastText Blitter based fast text rendering routines written in assembly. Unique in the fact that they speed up rendering of non- proportional fonts of any height, and from 4-16 pixels in width. Source and test program included. By Darren M. Greenwald MRBackUp V2.4 Update to FF129 A hard disk backup utility' drat does a file by file copy' to standard AmigaDOS floppy disks. Includes an intuition interface and file compression. Binary only. By Mark Rinfret
PtrArtim Nifty pointer animation program, includes lots of samples, a utility program and instructions on creating your own animations. Be sure to also read the ‘'Disclaimer'' in the author’s ReadMeFirst file. Binary only, shareware.
By Tim Kemp Surf Generates bezier surfaces of revolution.
Will produce sotne amazing pictures of wineglasses, doorknobs, or odier objects one could turn on a ladie. Includes the capacity to map IFF image files onto any surface dtat it can draw. Source included By Eric Davies (continued) Turbo Opens a small window with a gadget that when selected, turns off bitplane, sprite, copper and audio DMA, presumably to increase system speed.
Includes source. By Oliver Wagner Fred Fish Disk J 71 AZComm VI. 00 Modified version of Comm 1.34 that contains Zmodem send, receive, and resume receive. Binary only. By SS. Patel Maze A couple of veiy nice demos for the creation and use of single-solution mazes, one of which is practically a stand-alone game. Includes source. By Werner Gunther Sozobon-C Atari ST version of what appears to be a full K&R freeware C-compiler, assembler and linker. The compiler main pass and the assembler were compiled and tested on an Amiga A2000 with only minimal changes, and they appear to work (to the extent
that they believe they are running on an Atari-ST), so an Amiga port should be relatively easy. By Sozobon, Limited.
Xoper Very comprehensive program to monitor and control system activity. Monitor cpu, memory usage, ports, interrupts, devices. Close windows, screens, show loaded fonts or last Guru code number.
Clean up memory, flush unused libraries, devices, fonts, etc. and a whole bunch more! Spawns its own process. A very handy background task to have loaded.
Assembly source included. By Werner Gunther Fred Fish Disk 172 DataFoObj A utility to convert raw data files (sprites, image data, text, etc.) directly into object code which can then be linked to die main program without the need to go through the compiling process. Includes source. By Werner Gunther Handshake V2.12a Update to FF60 EDUSOFT™ A full featured YT5;! VT100 Vn02.. VT220 terminal emulator, he author has taken great pains to support the full VT102 spec, Now supports ANSI colors, screen capture and more. Binary only, shareware. By Eric Haberfellner MfixVl.O A small program to insert
in the startup- scquence of the commercial program, Marauder II, from Discovery Software, International. Whenever die copy process is started, trie rainbow screen is covered by a bare screen until the copy is finished. The author claims a 25% decrease in copy time is achieved.
Enlighten Your Child Introducing . Crayons And Rainbows The Amazing Talking Computer teaches your preschooler about colors as your child plays a game to help the crayons paint a rainbow. Animated characters offer many challenges in color recognition and identification by providing entertaining scenes and situations.
Order our preschooler software from us or from a dealer near you.
The Trumor Company 299 Coon Rapids Blvd NW Suite 103 Coon Rapids, MN 55433
(612) 785-2289 An all Amiga company For All Amigas. 512K memory
required. More recommended.
AMIGA is a trademark of Commodore - AMIGA, Inc. Binary7 only. By Stephen Gunn Pop Info V2.0 A “shrinkable" workbench utility to show you some info drat Workbench doesn’t, such as free memoty on external devices, chip, fast, and total ram usage and more.
Includes source. By Jonathan Potter ProCaic VI.2 Update FF139 A program diat simulates an FIP-11C programmable calculator. Lots of enhancements and bug fixes since die original version on FF139. Binary only, shareware. By Got;; Muller Spiff Make controlled approximations between two files. Similar to “diff’ but more versatile. Allows for die handling of numerals as string literals or numeric values with adjustable tolerances.
Provides for embecded commands, scriptfiles, and tnanv other command-line parameters. Potendally very useful, but needs some Amiga-specific work. Source and some example files included. By Dan Nachbar, Bell Communications Research (BELLCORE)
• AC- New Cli Window THE COMMAND LINE AmigaDOS Replacement
Project (ARP) by Rich Falconburg AmigaDOS commands allow a lot
of control over the Amiga’s various functions and operations.
Unfortunately, the inconsistent templates for those commands
can cause some frustration. Because of a curse called BCPL (a
programming language used to write much of AmigaDOS)
programmers have to re-invent the wheel to accomplish seemingly
simple tasks.
Charlie Heath and his band of magicians at MicroSmiths Inc., took on the monumental task of correcting some of these deficiencies. The result is the AmigaDOS Replacement Project.
They have standardized the command templates and where possible, improved or added multiple argument and wildcard support and provided abbreviations to command switches.
Those lamenting the loss of the asterisk (’) as the universal wildcard take heart. ARP supports it, in addition to the normal AmigaDOS format. Because the replacement commands are nearly identical to their AmigaDOS counterparts, it won’t be necessary to start from scratch and learn a new environment. The compatibility is such that if you don't use any of the new features provided by the ARP commands (inconceivable!) You probably won’t notice any change.
Something you may notice is the difference in the size of commands. It’s fascinating to copy more commands to a Workbench disk and watch the free space on that disk increase!
All of the new commands are written in Assembly Language which makes them significantly smaller. The collection will include a new library that is required by the commands and must be copied to the LIBS: directory'. This file, arp.library, is also partly responsible for the smaller size of the commands.
When you copy the ARP commands to your Workbench disk you will have an extra 20k Bytes of free space. New and Improved!
Several new commands added by ARP but before we get to them let’s look at some of the improvements made to the old ones.
ADDBUFFERS You can now add new buffers to DFO: through DF4: with a single command line.
ASSIGN As well as being able to make several assignments at once you can remove an assignment by using a dash as the logical name.
CD .'(Hows wildcards to be used and will set CD to the first qualifying match. A new switch, ROOT, will force a CD to Drive 0, not the Volume in the drive.
CHANGETASKPRI Now allows you to select the Task number to change.
COPY To define the current directory' as the destination use the asterisk (*) (AmigaDOS allowed ""). A new switch, FLAGS, controls the copying of FileNotes, the date, and the protection bits with the file. (See the discussion on Environment Variables for more information.)
DATE The addition of an environment variable allows changing the display format to one of four varieties. See the section on Environment Variables for more information.
DELETE You may specify' any number of files or directories and use wildcards in any position. A new switch, ASK, provides a confirmation request allowing you to answer Y or N to delete each file displayed.
DIR Wildcards and filenames may be used and options have been expanded. These include OPT F - files only, OPT H - print directory names in reverse video, and OPT S - print the sizes in bytes.
ECHO No longer requires quotes and will recognize escape sequences in both quoted and unquoted strings.
INFO This command now displays the actual formatted capacity of the volumes shown. Devices are now shown in ascending order regardless of the order they were mounted in.
JOIN You may use wildcards and select any number of files to be joined together. Effectively obsoleted by ARP's TYPE command.
• Over lOOCi Puzzles Included
• Create Your Own From Any Source
• Automatic Tracking Of Player Progress
• Supports Up To-2D- Players With Histories
• Beginner ft Advanced Help With Cheat Button Phone 712-252-4604
King Publishing 921~52nd St. Sioux City 1A 51104 LIST Wildcard
pattern matching of the filename directory is now supported,
making the PAT and S switches unnecessary even though they are
still included. You may now get a sorted listing with the new
switch SORT. The date format displayed is determined by an
environment variable.
MAKEDIR Create multiple directories with one command line.
MOUNT This command now allows more than one device to be specified. A new' switch, STARTPROC, will also load the device handler at the same time. The handler is normally loaded on the first access of the device.
PATH Now allows as many definitions as you wish.
PROMPT Will recognize two special characters - %N, provides the current process numbers and %p which works with the ARP CD command to display the current directory. If the prompt string exceeds 69 characters, this value is ignored until the length is less than 70 characters.
PROTECT This command now- supports wildcards. If wildcards are used, the name of the file and the protection level it's being set to will be displayed. If the QUIET switch is added, then that information will not be displayed. Unlike AmigaDOS. Many of the ARP commands will check the protection bits arid respond accordingly.
King Publishing PRESENTS RENAME Now supports wildcards in various combinations allowing you to move several files at a time. The wri!dca:‘ds also make it easy to substitute various parts of the name while preserving or adding to die rest. This command is a BIG improvement over its AmigaDOS counterpart.
SEARCH Now supports wildcard specification in the search string.
SETDATE Supports wildcards and multiple arguments and the date format environment variable. If no date is specified the current date and time is assumed.
SORT This command now provides the CASE keyword to allow- you to make the sort case sensitive. You can also specify the number of characters to check per line. No more crashes with this one.
If there is not enough memory' to do the sen, it tells you so.
TYPE Type supports multiple filenames and wildcard specifications. If a wildcard is used, the name of each file is showm as it is displayed. TYPE entered without a file argument TYPE TO dfUTenipfile will cause it to send keyboard input to the TO destination. To terminate the send or close the file enter Control .
VERSION Displays the current Kickstart, Workbench, and ARP version numbers.
New Commands Normally, when you run a program, it is loaded into memory each time it is called. If several piocesses use the same program, a new' copy of that program is placed in memory for each process. This is most common with commands executed from the CLI, The RESIDENT command works in concert with the ARUN command to help reduce the memory overhead used by programs. RESIDENT allow's only one copy of the program in memory' at a time regardless of the number of processes using the program’s code. To make some of the most common commands Resident you would enter: 1 RESIDENT C:EIR C:CEPY
C:RENAME C:TYPE C:DELETE RESIDENT stores only the last component of a path specification. If you want more information about the commands that have been made Resident use the FULL parameter.
~ t ** .A M' ptoS* 0 o & Ui 0 if you use wildcards, each program name will be displayed as it is added. To suppress this, use the QUIET switch. Some programs cannot be made Resident. If so, RESIDENT will make the determination before running the program and post a requestor to inform you there is a problem.
The ARUN command is an enhancement to the normal Run command and allows you to set the size of the stack, the priority, and detach status for the new process. A detached process will not force the parent process to remain open until it is finished. To start a detached program with a priority of -5 and stack size of 5000, use: 1 ARUN DEMO NOIO STACKSIZE 5000 PRI -5 Although ARUN does much of the same work that the AmigaDOS RUN command does, it cannot as yet completely replace it. Because ARUN does some things a bit differently, it may be incompatible with certain programs that rely on features
unique to RUN. Actually it’s more of a programming problem than a usage problem and is related to some of the internal functions of AmigaDOS. You may have seen some documentation notes with various programs that urge to insure that Run is in the C: directory. This indicates a program that would have problems with ARUN.
Special features of ARP commands allow ARUN to change the stack size for them automatically. This helps prevent system crashes and makes memory usage more efficient.
A new command that is mostly useful to programmers is the LOADLIB command. However, with all the new run time libraries showing up, this command might come in handy. For example, if you decided you would not need one of the libraries on your boot disk because you rarely use the program that needs it, you can load it in when needed from the LIBS directory of another disk with LOADLIB. Because LOADLIB cannot use the arp.library, it does not support some of the standard ARP features such as the multiple argument feature.
Environment Variables Okay, so ARP commands use environment variables.
What's the big deal? Flexibility and ease of use. The SET command is a spinoff of the UNIX™operating system. Many of the Amiga developers have experience with that environment so it’s no surprise to see the Amiga environment grow more similar to UNIX every day. (Stop groaning. Where do you think most 1 RESIDENT DEL DIR To remove a program from the Resident list use: 1 RESIDENT FULL Name UseCount Checksum Seamen!
DIR G 72ES7357 0031CC35 COPY 0 EF2D2AB4 00312F12 RENAME 0 BE5D4C30 00313041 TYPE 0 3F6BEB53 0Q31312B DELETE 0 FD8A62EC 003132413 100% better than any other hard drive back-up program EZ-Backup is a genuine breakthrough '", • ~ * EZ-Backup actually manages the space on your backup disks- Before EZ Backup the only way to get rid of the piles of incremental back-up disks that littered your desk was to do another full back up. This method is inconvenient and requires a whole new set of unformatted floppy disks With EZ-Backup you use the same set of disks for every incremental back-up. Only one
full back-up required-Ever! Space on the disks is managed by deleting obsolete archive files and allowing you to save from 0-255 versions of each file Your files are saved-even if you have completely deleted them from the hard drive!
EZ-Backup comes with an optional warning screen- We aD tend to put off dong backups E2 Backup's warning screen reminds you If you would rather not be reminded you have the option to shut the warning screen off, EZ-Backup prevents you from damaging valuable data- By checking the volume label. EZ-Backup keeps you from wnting over important files EZ-Backup uses Standard Amiga format- Piles are archived in standard Amiga formal and work with all standard utilities EZ-Backup provides easy recovery of individual files A simple to use mouse-oriented program allows you to recover individual files.
Not more expensive just the best ¦ $ 49.95 • from: EZ-SOFT or an Amiga Dealer near you.
21125 Chatsworth Street Chatsworth, CA 91311
(818) 341-8681 Dealer Inquires Welcome
* Provides archive-bit ulifilies * Wot copy protected
* Multi-tasking * Complete manual wild examples
* Upgrades provided free for the firsl si* monlhs alter program
purchase I
* Freelelephonesupport!
Works with all Amiga-DOS compatible hard drives.
(Amiga-DOS version 1.2 or higher) laCaEa*! Integrated Calculation Engine SRP $ 89.95 921-32nd St SiouxCity IA 51104 Ring Publishing of those nifty utilities came from anyway?) Environment variables allow you to establish some general operating features of the command environment. For the ARP commands these variables include: ESCAPE = - changes the Escape character (as used by ECHO etc.) to the backslash (the default character is ’)¦ You may set this to the character you prefer to use a.s the Escape character.
ARP commands recognize the following characters as special characters when preceded by the defined Escape character: N - Newline T - Horizontal Tab V - Vertical Tab B - Backspace R - Return F - Form Feed E - ESCape (ASCII 27) Xim - Flex value nn With the exception of the new ECH3 command, these characters will only be recognized when placed between quotes.
Each of these variables may be changed with the SET command. To establish a variable, simply provide SET with the variable name and a value to set it to. For example: 1 SET DaCeFormat=l CopyFlags=NCwd ESCAPE You could also establish some of your own variables with the SET command. The ones shown are those recognized by ARP commands. If you find that some of the ARP commands have problems with old script files that use the asterisk as the current window (such as the AmigaDOS COPY command) SET BCPL TRUE causes those Aid5 commands to not use the asterisk as a wildcard character. To display
what all the current environment variables are and what their values are use:
- default Amiga format: DO-MKM-VV D;-.TE?ar.T,=' = C = 2 = 2
- International format: YY-MM-DD
- 1'SA format: XX-DD-YY
- Canadian farmat: DD-XX-YY Every command that includes a date
display will use the DATEFormat variable to determine how the
date is displayed.
CopyFlags = C - preserve the original date stamp = N - copy the FileNote = rweda - Protection bits; Disallow = RWEDA - Protection bits: Allow This variable will customize the COPY command actions and may be overridden with the FLAGS parameter of the COPY command. An example of the usage is shown below.
I covered ASK,the other new commandin detail last issue.
As you have seen, there are some very nice features provided by the ARP command collection. I have been using them for a while now and find that 1 definitely prefer them to the original AmigaDOS versions. You will fine! The ARP collection on Fred Fish Disk =123 or you can contact .Microsmiths Inc. for order information at: Arp Support c o Microsmttbs, Inc
P. O. Box 561 Cambridge, MA 02140
v,v:u L xw:'»-:xv:sw'SvXv :x.;vX'jXvXwy.vw :'XCv:v:vXh’;;’:'
• AC- (Death of a (Process The Polite Multitasking Guide to Error
Handling ...in Modula-2 by Mark Cashman Somewhere, deep in the
hierarchy of modules and procedures, something has gone wrong.
A memory allocation has failed, a task could noi be spawned an
Amiga program falters, HALTs. But what about its resources: its
screens, windows, and memory? Are they returned to the system,
or left claimed until the next warm reboot?
That depends on your error handling strategy.
Most programming examples, including those in the ROM Kernel Manuals, and those in Amiga programming textbooks, give short shrift to error handling, This is necessary to cover the topic at hand. But in real life, if resources have already been allocated it is not enough to call Exit to terminate.
The resources must be freed.
The Modula-2 language allows the programmer to write the various sections of program with the greatest possible independence. This independence simplifies a program’s design.
However, handling the type of errors that can arise during program execution can significantly complicate program logic in any language.
For instance, observe the following Modula-2 main module: IF OpenedLibrariesO THEN IF OpenedWindowO THEN IF Allocated I m a geO THEN IF OpenedFileO THEN IF ReadlmageO THEN Displaylmage; ELSE ErrorCUnable to read image.'); END; ELSE ErrorCUnable to open file.'); END (continued) CloseFile; ELSE ErrorCUnable to allocate image memory.'); END; Freelmage; ELSE ErrorCUnable to open window.'); END: C! Ose Window; ELSE ErrorCUnable to open libraries.'); END; Clearly, the code is verbose. After all, concentrating on the normal case, we’d really prefer a main module that looked like this: OpenLibraries;
OpenWindow; Allocatelmage; Readlmage; Displaylmage; Freelmage; CloseWindow; CloseLibraries; The example program solves this problem. The example is written in Modula-2 using the TD1 libraries.
The example relies on some properties of the Modula language its MODULE program unit, and its PROCEDURE variable. It also uses the Exec List and Node structures in the implementation.
MODULE;; are the most important construct in Modula.
There are three types of modules in Modula: Program modules Executable programs clients of library modules Local modules Modules local to a program module, library module, or PROCEDURE Library modules which have separately compilable DEFINITION and IMPLEMENTA TION parts Regardless of the module type, a MODULE always has the following characteristics: Defines Variable constant types, constants, variables, procedures Imports Externally defined variable constant types, constants, variables, procedures Exports Internally defined variable constant types, constants, variables, procedures Controls
access to Internally defined variable constant types, constants, variables, procedures Retains Values of any module local variables as long as the surrounding scope lasts. Library' modules retain their local variable values for the duration of the program run, as do modules local to a program or library' module. Procedure local modules retain their local variable values as long as the procedure is active.
The following program module shows how variables in a module retain their values from one procedure call to another: MODULE ShowVariableValuePersistence?
IMPORT InOut; MODULE Accumulator; IMPORT InOut?
EXPORT QUALIFIED Display, Increment; VAR Accumulator: CARDINAL; PROCEDURE Increment(Cardinal: CARDINAL); BEGIN INC(AccumulatorVariable,Cardinal); ENT) Increment; PROCEDURE Display; BEGIN InOut.WriteString("Accumulator = "); InOut.WriteCard(AcctmulatorVariable,5); InOut.WriteLn; END Display; BEGIN AccumuiatorVarlabie0; END Accumulator; BEGIN Accumulator.Increment(5); Accumulator.Display; Accumulator,Increment(5); Accumulator.Display; END ShowVariableValuePersistence.
When run, this module displays 5, then 10, showing how the AccumulatorVariable retains its value 1 ctween calls to Increment. Of course, library' modules also have this property.
A library module has a ' client'’ that uses its services. The client may be another library module, a program module, or both.
The PROCEDURE variable allows the programmer to define a variable in which a procedure's address can be stored.
It preserves the strict typing required by .Modula by defining the expected parameters of a procedure whose address will be stored in tire variable. For instance: MODULE ProcedureVarDemo; Tvp£ ProcedureTYPE = PROCEDURE(CARDINAL,BOOLEAN); BOOLEAN * Defines a procedure with a CARDINAL and a BOOLEAN parameter. The procedure also must return a BOOLEAN value *); VAR MyProcedureVariable: ProcedureTYPE; PROCEDURE OKProcedure (Cardinal: CARDINAL; Boolean: BOOLEAN): BOOLEAN; 3EGIN RETURN TRUE; END OKProcedure; BEGIN MyProcedureVariable:= OKProcedure; END ? Rc cedureVarDemo.
Is a valid program. But this next one is not, because the parameter list of WrongTypeProcedure does not match that declared in the ProcedureTYPE definition: MODULE ProcedureVarDemo; TYPE ProcedureTYPE 3 PROCEDURE(CARDINAL,BOOLEAN): BOOLEAN?
VAR MyProcedureVariable: ProcedureTYPE; PROCEDURE WrongTypeProcedure (Cardinal: REAL; Boolean: BOOLEAN): BOOLEAN; BEGIN RETURN TRUE; END WrongTypeProcedure; BEGIN MyProcedureVariable:= WrongTypeProcedure; END ProcedureVarDemo.
Note that when a procedure is assigned to a procedure variable the parameter list is not specified.
Any procedure variable can be used as a procedure call.
To extend the tiny example above: MODULE PrccedureVarDemo; TYPE ProceiureTYPE = PROCEDURE (CARDINAL, BOOLEAN) : 3Q0LEAN; VAR Boolean: BOOLEAN; My? R oce dureVa r iab1e: ProcedoreTYPE; PROCEDURE OKRrocedure Cardinal: CARDINAL; Boolean: BOOLEAN): BOOLEAN; BEGIN RETURN TRUE; END OKProcedure; BEGIN MyProcedureVariable:“ OKProcedure; Boolean:** MyProcecureVariable (5,TRUE); END PrecednreVarDeno.
Most Modula program modules use the services of many library modules. Some of these are used indirectly tire program module calls upon a procedure in a library module that in turn calls upon a procedure from another library' module, and so forth. Programmers frequently create library modules, both general and application dependent. Handling errors in these various modules, or freeing die resources allocated by various modules when an error causes termination, requires explicitly calling a procedure in each library module that is responsible for termination.
If such a policy is followed, which module calls the termination procedures? The module where the error occurs?
Such a module might be able to call upon the termination procedures of the library modules it uses but how can it call the termination procedures of library' modules used only by the program module? .And how do you prevent two library modules that use the same library module from calling that module's termination procedure twice?
You will see how' to use a library module to keep track of the termination procedures of any set of modules, and how it guarantees the reclamation of all resources allocated by those modules.
The example consists of two modules the library module TerminationService and the program module TestTermi- nationService.
The following is the definition of TerminationService: DEFINITION MODULE TerminationService; TYPE ProcedureTYPE ¦= PROCEDURE; PROCEDURE kegisterProcedure (TerminationProcedure: ProcedureTYPE); PROCEDURE Assert (Condition: BOOLEAN; ModuleName: ARRAY OF CHAR; ProcedureName: ARRAY OF CHAR; ConditionMessage: ARRAY OF CHAR); PROCEDURE NormaITermination; END TerminationService.
As you can see, the module defines a type the TerminationService.ProcedureTYPE and three procedures.
RegisterProcedure accepts a ProcedureTYPE expression and adds it to a list of termination procedures kept internally by TerminationService. Assert tests that Condition is TRUE. If it is not TRUE, it calls the termination procedures in the order they were added to the list, tries to display the ConditionMessage, and terminates the program with an error code. (Note that the term "Assert" comes from a construct popular in programming language design a few years ago). NormaiTermination should be called at the end of the program module in fact, it must be called there if all resources are to be
returned to the system at the end of a program run. NormaiTermination will call all of the termination procedures (just like a Failed Assert), but will RETURN to the caller without either a message or a DOS termination. For more details we have to turn to the IMPLEMENTATION part of this library' module.
IMPLEMENTATION MODULE TerminationService; IMPORT DCSFiles, r PC? *’ r. y, DOSProcessHandler, Ir.Out, Intuition, Libraries, Lists, ListService, Memory, Nodes, SYSTEM; TYPE * These types are private to this module. The types declared in the definition module are also available here, *) ProcedureNodeTYPE = RECORD Node: Nodes.Node; TerminationProcedure: ProcedureTYPE; END; (conti?iued) ProcedureNcdePtrTYPE - POINTER 70 ProceduraNodeTYPE; (* The values of these remain as long as the program module is running *) ProcedureList: Lists.List; RememberPtr: Intuition.RememberPtr; PROCEDURE
RegisterProcedure TerminationProcedure: ProcedureTYPE); VAR ProcedureNodePtr: ProcedureNodePtrTYPE; PROCEDURE AllocateProcedureNodePtrO : P rocedureNodePt rTY?E; VAR Ptr: SYSTEM.ADDRESS; BEGIN ?tr: = Intuition.AilocRemember (RememberPtr, SYSTEM.TSIZE(? Ro cedureNodeTYP E), Memory.MemReqSet!Memory.MemClear)); Assert ;ptr * SYSTEM.NULL, "TerminationService", "RegisterProcedure", "Allocated procedure node'') ; RETURN Ptr; END AllocateProcedureNodePtr ; BEGIN ProcedureNodePtr:= AllocateProcedureNodePtr(); FrocecureNodePtr'’.Termination?rocedure:= Terninaticr,Procedure; (* Note: Procedures are
called in FIFO order *| List;.AddTail (Lists.ListPtr(SYSTEM.ADR(ProcedureLIst)), Nodes.NodePtr(ProcedureNodePtr)); END RegisterProcedure; PROCEDURE CallRegisteredProcedure (NodePtr: Nodes-NodePtr); VAR P rocedureNodePt r: ProcedureNodePtrTYPE; BEGIN P rocedureNodePt r: = ProcedureNcdePtrTYPE(NodePtr); P rocedu reNodePt r'.Te rmi cat i or? Rocedur e ; END CallRegisteredProcedure; PROCEDURE CallRegisteredProcedures; BEGIN ListService.TraverseList (Lists.ListPtr(SYSTEM.ADR(E rocedurelist) CallRegisteredProcedure); END CallRegisteredProcedures; PROCEDURE Assert (Condition: BOOLEAN; KodtlleName:
ARRAY OF CHAR; ProcedureName: ARRAY OF CHAR; ConditionMessage: ARRAY OF CHAR); BEGIN IF Condition THEN RETURN; ELSE IF DOSFiles.Is InteractIve(DCSFiles.Output THEN InOut.WriteString("Assert failed: ") ; InOut.WriteLn; InOut.WriteString (’’ Module - "),- InOut.WriteString(ModuleName); InOut.WriteLn; InOut.WriteString(" Procedure - "); Ir.Out .WriteString (ProcedureName) ; InOut. WriteLr.; InOut.WriteString(" Assertion - "); InOut.WriteString(ConditionMessage); InOut.WriteLn; END; CallRegisteredProcedures; IF RememberPtr SYSTEM.NULL THEN Intuition.FreeRemember(RememberPtr,TRU END; Libraries
.CIoseLibrary (Intuition.IntuitionBase)• (* Can't close DOS before using one of i procedures, so no CioseLibrary (DOSLibrary.DOSBase) hen: *) DOSProcessHandler.EKit(20); END; END Assert; PROCEDURE NormalTermination; BEGIN CallRegisteredProcedures; IF RememberPtr SYSTEM,NULL THEN Intuition.FreeRemember(ReneniberPtr,TRUE); END; Libraries.CloseLibrary(Intuition.IntuitionBase); Libraries.CloseLibrary(DOSLibrary.DOSBase)r END NormalTermination; BEGIN (* Module initialization *) Lists.NewList (Lists.ListPtr(SYSTEM.ADR(ProcedureList))) ; Remember?cr:= SYSTEM,NULL; DOSLibrary.DOSBase;=
Libraries.OpenLibrary(DOSLibrary.DOSName, 0); IF DOSLibrary.DOSBase = SYSTEM.NULL THEN (* Can't use unopened DOS to Exit.,. *) HALT; END; Intuition.IntuitionBase:= Libraries.OpenLibrary (Intuition.IntuitionName, 0); IF Intuition.IntuitionBase = SYSTEM.NULL THEN DOSProcessHandler.Exit(21); END; END TerminationService.
As you can see, TerminationService has its own module initialization section. In a program module, this would correspond to the C language mainO function. In a library module, the initialization section sets initial values for internal variables.
Since the initialization section of a library module is performed before the initialization section of any module importing from it, it is guaranteed that TerminationService will be initialized before any of its clients can call upon it.
The initialization section sets up a list that will be used to record the termination procedures passed to RegisterProcedure.
This list is a standard Exec List, with an extended Node structure for each list element; the extension stores the value of the procedure variable passed to RegisterProcedure. The RememberPtr, used in conjunction with the Intuition library calls AllocRemem- ber and FreeRemember. Is initialized to SYSTEM.NULL to signal that it is empty. Later, it will contain a list of memory allocated by TerminationService procedures. This memory will be the Nodes of the ProcedureList.
The initialization section also opens the Amiga libraries (which are not the same as library modules) for Intuition (used to implement the AllocRemember and FreeRemember procedures) and the DOS (used by the Exit procedure). This frees the program module from needing to open these libraries, and means the program module need not knowr that Termination- Service uses either of these libraries.
The RegisterProcedure procedure creates a ProcedureN- odeTYPE area of memory, and sets the TerminationProcedure part of the ProcedureNode to the value passed by the client. It then links the properly initialized node to the tail of the list.
Note that, if the allocation of the list node fails, the Assert procedure is used to make sure that the various registered termination procedures are called before Exit. This is how7 you would use it in your own library module. Also note that Assert is called from a position in the program before its definition.
Modula allows this because the Assert procedure is declared in the DEFINITION MODULE. Normally, everything in Modula must be declared before it is used.
The CallRegisteredProcedures procedure uses a list scanning procedure from my module ListService. The implementation of this procedure (and those it calls) is given below: PROCEDURE ArEr.dCflist (Lis-Prr: Lists.LisrPer; CurrentUodePtr; Nodes.NodePtr); BOOLEAN; BEGIN RETURN [* TRUE IF *) Currer.tNcdePtr .InSucc = SYSTEM.NULL; END AtEndQfList; PROCEDURE NextNoae (CurrentNodePtr: Nodes.NcdePtr): Nodes.NodePtr; BEGIN RETURN CurrentNodePtrA.InSucc; END NextNcde; PROCEDURE TraverseList (ListPzr: Lists.ListPtr; ListTraversalStepRoutine: LiscTraversalStepRoutineTYPS); VAR.
NcdePtr: Nodes.NodePtr; BEGIN NodePtr:= ListPtrA.lhHead; WHILE NOT AtSndOfList(ListPtrrNodePtr) DO ListTraversalStepRoutine(NodePtr); NodePtr:= NextNcde(NcdePtr); END; END TraverseList; InOut,WriteCard(Count,5); InDut.WriteLn; INC(Count); The Bit Bucket END Test; BEGIN COMPUTER STORE We Want Your Business!!
We Have the Best Prices!!
Oldest Commodore Dealer in the Areal!
Count:= 0; OK("Register procedure"); TerminationService.RegisterProcedure(Test); TerminationService.RegisterProcedure(Test); TerminationService. RegisterProcedure (Test) ; TerminationService.RegisterProcedure(Test); InOut«Writestring ("Press RETURN to fail, anything else to w); InOut.WriteString("continue..; InOut.ReadString(Input); 2 Locations to Serve You 1294 Washington Street
W. Newton MA 02165 617-964-3080 621 Boston Post Road Sudbury MA
01776 508-443-9731 Authorized Commodore Amiga Dealer and Com
modore Service Center CK("Assert");
* Software
* Hardware
* Service
* Information Assert (Strings.Length(Input) 0,
"TestTern.inationService", "Program module initialization",
"String entered"); OK("Normal termination"); TerminationService
.NormalTemi nation; END TestTerminationService.
This program displays a sequence number for every' call to the termination procedure. Since the termination procedure was registered five limes, the program will print die numbers from 0 through 4. Your entry to the prompt determines whether the Assert will fail, or whether NormalTemiination will occur.
HBSSEE391 Note diat the procedure variable is used to generalize the TraverseList procedure, which can simply implement scanning of die nodes. This helps keep die ListTraversalStepRoutine simple.
The last module is a test program module that tries out some of the TerminationService module features: There were no major problems in developing this module. In fact, it was up and working within one evening. Yet it will save me hundreds of lines of error handling code over die next year. An inexpensive investment lor a large payoff.
The hardest thing to understand is the PROCEDURE rype variable that it can be a variable and a procedure at the same time; how to call it; and that your call parameter list must match die requirements. The next hardest thing to understand is that module variables keep their values even between using procedures from die module. The third hardest tiling to understand is setting up, adding to, and traversing the list structure.
MODULE Te s t Te rminat i onS e rv i c e; IMPORT inCut, Strings, TeminationService; FROM TerminationService IMPORT Assert; VAR Count: CARDINAL; PROCEDURE OK(Message: ARRAY OF CHAR); BEGIN InOut.WriteString(Message); InOut.WriteLn; END OK; For more information on modules and procedure variables, see Nikiaus Wirth's Programming In Modula-2 (1983).
That's allfolks!
One final note according to Wirth's Programming in Modula-2 (1983), procedures assigned to procedure variables must not be nested within another procedure they must be global to die module. It cannot be guaranteed what will happen if you violate diis, 1 have not yet tested this module with a Workbench activated program, which would be interesting. Maybe you can try it and let me know.
PROCEDURE Test; BEGIN .? : ye Bye...");
• AC* INDUSTRIAL STRENGTH MENUS Add Some Snazzy SubMenus To Your
AmigaBASIC Cuisine by Robert D’Asto The ability to quickly and
easily create practical menus is a terrific feature of Amiga
BASIC. We can lay out a rather extensive bill of fare in very
short order using the powerful MENU statement and link tire
offered selections to your program as neat as you please with
the MENL'(O) and MENU(l) functions.
Up to 10 separate menus, each with up to 20 items can be produced in this way, an ample number of choices for nearly any application. We can thank not only tire language, but that section of the operating system known as Intuition for this useful feature. It is Intuition which supplies all the needed "building materials" which BASIC then assembles to our specifications in workmanlike fashion via simple MENU statements a much simpler state of affairs than the C programmer faces when constructing menus.
That’s the good news. The not so good news is that our creative menu craft seems somewhat limited in scope in comparison to that of the Cjockey. The latter could naii up as many as 1,953 selections, arranged in both menus and submenus, and all with a wide array of color and display options to boot! Kind of leaves BASIC in the dust, doesn't it?
Wait a second... AmigaB ASIC is no wimp! Our beloved language is capable of producing professional menu features quite beyond those described in the "factory manual" including submenus, color options and others. We simply have to “bypass tire middle man” somewhat and deal directly with some of the inner regions of the Amiga operating system itself. There are some new things that need learning, to be sure, but I think you'll find it’s well worth the effort as these new concepts can put your BASIC programming on a whole new level of expertise, as well as greatly enhancing your understanding
and enjoyment of the Amiga.
Enter the SubMenu Jdemo listed at the end of this article into your BASIC editor. The listing contains two LIBRARY calls, “intuition.library” and “exec.library”, so the appropriate bmap files must be available. The code, as written, assumes that the intuition.bmap and exec.bmap files exist either in the “libs:” directory of the Workbench disk or in the same subdirectory as the program itself. If you prefer another arrangement you'll need to adjust the LIBRARY statements accordingly.
Take your time entering the code and be sure to save the program before trying it out. Errors can be more difficult to track down when dealing with library routines and POKE statements as a goof is more likely to cause a system crash, requiring a reboot, rather then simply an error message. It’s easier to just go slowly and double check your code as you type.
Now, run the program and let's take a look at what we’ve wrought. Holding down the right mouse button should reveal two menus, each with a number of item selections and,..gadzooksL.SUBITEMS!!...and our program can even detect which subitem’s been chosen!!!., think of the possibilities!!!!
All humbleness aside, what we have here is a collection of subprograms which can be used with any BASIC program to generate submenus containing up to 10 selections each, and then link them to any existing menu item we wish. This now gives us a potential of 10 menus, each with 20 items, and up to 10 subitems per item, or a theoretical total of up to 2,000 menu selections! To tell you the truth, I haven’t really tested out this maximum limit, but it certainly does a dandy job of adding all die submenus I've needed so far. It also adds some visual pizazz to diat ordinary, 3 la carte menu, doesn't
it?...and it gives the user interface added utility and a more professional look in die process. We can even tweak a parameter here and there and add some other options which we’ll get to in a moment.
As you’ve probably noticed, the program accomplishes its submenu tasks almost entirely through the use of subprograms. This was intentional. Once you've entered the code into the editor you can simply save all the subprograms with the ASCII option (SAVE “filename",A) and then MERGE these subs into any future program to which you wish to add SubMenus.
The subs were also designed for ease of use and to parallel die MENU statements as much as possible. These subs will be explained in more detail later on...first, let’s backtrack a bit and explain the “how” and the “why” of them.
Programming Mysteries Revealed You may have seen programs like this elsewhere, containing PEEKs and POKEs, and ¦wondered how the heck die writer ever figured out where to PEEK and what to POKE in order to produce some arcane feat of Amiga wizardry. It’s not all that mysterious, really. If you've never used the PEEK and POKE commands before, take a moment to look them up in your AmigaBASIC manual and familiarize yourself with them and their variations. They’re simply used to read or write values from or to specific locations in RAM. Each has three variations: one each for 1-byte, 2-byte or
4-byte values.
Using these two commands for advanced .Amiga programming requires some familiarity with the Amiga operating system and an understanding of a particular programming concept with which many BASIC programmers are unfamiliar.
This concept is called “structures” and is a very important one to (continued) die Amiga because its system is absolutely loaded with them and any "deep" programming of die machine requires a grasp of what they are and how to use them. Unfortunately, discussions of structures are usually omitted from AmigaBASIC tutorials so documentation of "deep AmigaBASIC" procedures is hard to find. Some say that AmigaBASIC doesn't support structures...well, not directly perhaps, but we can still support them "indirectly” just fine and thus add a vast array of new tricks up our BASIC sleeves. Perhaps the
rumored 1.4 upgrade of AmigaBASIC will include some improved support of structures but, in tire mean time, we can do handily with what we have. It just takes a little homework to get a grasp of what structures are and how to use them.
A structure is simply a type of organization of data. If you understand variable arrays you're about half way home to an understanding of structures. An array is a named group of variables. Each variable in the array is assigned a number (called a subscript) and can then be referred to by stating the array name and its number, like this: BoomArray(17), which means the 18th variable (we start counting from zero) in an array called BoomArray. One limitation of arrays is that every variable they contain must be of the same type: Long integer, short integer, single float, double float, or string.
A point w'orth noting is that all the array elements occupy a single, continuous block of memory arranged in the sequence of their subscripts.
The word normally used to describe this type of memory storage is “contiguous”, which just means: Arranged in a sequence, each touching the next with no spaces in between.
Imagine a Los Angeles freeway with rush hour, bumper-to- bumper traffic and you'll know what contiguous means.
A structure is also a group of variables but it differs from an array in that it can contain any mixture of different variable types. That’s really die most important aspect of a structure.
Let's say we create a mixed bag of values like this: 1641022 3741729 314 1227 61 In this example structure we have a sequence of two long integers (requiring 4 bytes each), two short integers (2 bytes each) and our fifth “element" is a number requiring only one byte of memory space. This is perfectly acceptable as a structure. The "elements" of a structure, by the way, are called "fields" and, like an array, the structure's fields occupy a contiguous block of memory. In this case, we'd have a sequence of “4 bytes...4 bytes...2 bytes...2 bytes... 1 byte" to hold our structure. One might ask why
we don’t just use a long integer array to hold all the values and forget about structures.
We could do that but it would result in a somewhat wasteful result memory wise. We'd end up using 4 bytes multiplied by the five fields or 20 bytes of memory if we used an array, contrasted by only 13 bytes using a structure. AmigaBASIC arrays also have a certain propensity for shifting around to various memory locations during a run and diere's no easy way to keep them nailed down for the kind of operations necessary7 here. Structures, though, don't mind being assigned a permanent address which makes diem much simpler to locate when needed.
There are basically four dtings that a programmer can do widi a structure: Create one, "unoreate” one, read a value within a field in an existing structure, or change die field in an existing structure. Some structures are “automatically” created by the operating system and some are created solely by die program.
For example, when we create a window within our programs widi die WINDOW statement, a Window Structure is created in RAM which contains all of its parameters and other necessary information needed by the system to interact with diat window.
We didn’t create that structure directly (though we could), but we can gain access to it and make desired changes in the window by changing values in its Window Structure. A structure, then, can be used as a son of “control panel” for various system objects. Thus, die more you know7 about structures, the more control you have of the system.
Creating a structure with AmigaBASIC could simply he done widi a sequence of POKE statements, but there’s one problem widi diis approach: Where do eve put it? If we just choose a memory address at random and start POKEing away we run the risk of destroying some needful data dial already- existed in that particular area of RAM, We need a way7 to find an “unoccupied” area in memory of the correct size first.
Fortunately there is a System Routine which specializes in just this exact “service”. It’s an “exec.library” function called AllocMem and its function is to allocate memory7 requested by7 die program and once it has done this it returns die memory address of the area so allocated. The programmer can then simply POKE the desired fields, beginning at the address provided by AllocMem. There is also anodier exec routine called FreeMem which does die opposite: We “feed" it a particular memory address and die length (in bytes) and it returns that part of RAM to the status of free memory. These two
routines are easy to use and are described in more detail below.
Changing a field in an existing structure is also quite easy. .411 we need is the structure’s starting address. For example, if we wanted to change the "314’ in the above structure to “315" we could do it like this: POKEW StartingAddress& + 8,315.
Where “StardngAddress&" is the memory address of die first byte of the strucaire. Since the field conta:ning the "314" begins 8 bytes beyond die beginning of the structure we just add 8 to die structure’s address and POKEW in the new 2cbyte number.
Reading a field in a structure is done die same way. If we program; PRINT PEEKW (StartingAcidress& + 5) we'll now7 get the “315" that we POKEWed earlier.
Getting a handle on the above four basic actions with structures opens the door to a great many “deep" or "low level" programming activities for AmigaBASIC and puts it in the same development language ball park as C. The Amiga makes extensive use of structures in delineating various objects and constructs which make up its operating system and user interface. The better your understanding and ability lo control these structures, the more y7ou will lie able to create your own brand of magic with the Amiga.
The Stmcture Plot Thickens A menu display is simply a network of structures. These are of two types: Menu Structures and Menultem Structures.
The arrangement and explanation of these structure follows but don't concern yourself with memorizing this information or trying to absorb it all at once. It’s here for reference as needed and will become more familiar tlirough use. The following two structures are used by the operating system to “describe” a Menu (a single category of selections) and a Menultem, that is, each contains all the information needed by the system to display, use and interact with these objects. A Menu Structure must exist for each Menu (category of Items) and every Item must have a Menultem Suucture. They look
like this: Menu Structure: field 1 4 bytes containing the address of next Menu Struct field 2 four 2-byte numbers: LeftEdge.TopEdge.Widtti.Helght field 3 a 2-byte number called Flags field 4 4 bytes containing address of MenuName field 5 4 bytes containing address of 1st Menultem Struct Menultem Structure: field 1 4 bytes containing address of next Menultem Struct field 2 four 2-byte numbers: LeftEdge JopEdge.Width,Height field 3 a 2-byte number called Flags field 4 a 4-byte number called MutualExdude field 5 4 bytes containing address of Menu Item text field 6 6 bytes called
Command field 7 4 bytes containing address of Subitem Struct field 8 a 2-byte number called NextSelect First I’ll explain the Menu Structure. The first of its fields is self-explanatory. It's just the address in memory of another Menu Structure which defines the next Menu. The last Menu would have a “0” in this field. When a structure contains the address of another structure this is called “linking1' and all the Menu Structures so linked are referred to as a “linked list”. A memory' address used for linking is referred to as a “pointer”.
Moving to field ~2 we see A numbers of 2 bytes each, for a total of 8 bytes within this one field. Tire first two numbers give the screen location of the box containing the Menu tide and die last two give its dimensions. The 3rd field. Flags, describes certain display options and will be discussed later. The fourth field is a "pointer” to (memory address of) anodier structure which describes the text of the Menu title, and the last field contains the memoryr address of die first Menultem Structure in that Menu.
The second structure above is the Menultem Structure.
Most of its fields are analogous to those in die Menu Structure, but there are a few new ones. The MutualExdude field ( 4) contains a number used to describe which, if any, Menu Items will be “ghosted” when diis Item is selected by the user. Field
* 5 contains a pointer to a text string describing what, if any,
keyboard key can be pressed along with the RIGHT Amiga key as
an alternate method of selecting this item. Field S1 is of
special importance here as it contains die address of die first
Subitem Structure associated with this Menultem. What does diis
Subitem Structure look like? Its idendcal to a Menultem
Structure and the first field of each is linked to the next in
the same manner as Menultem Structures. The last field above
contains a number called NextSelect. Intuition provides this
Would you use your Amiga like this?
Without ENCORE you might as well be!
Encore allows you to build macros by recording mouse movements and keystrokes. You can assign each macro to a key combination so that with a touch of the finger any macro can instantly be played back.
Macros can have spoken narration.
Macros can have scrolling text at the bottom of the monitor.
Macros can loop back for repeated playback.
Macros can be either relative or absolute.
Macros can be appended.
Macros can be user interactive.
Macros can be time or file compressed.
Macros can be of unlimited size.
Automatic mouse and keyboard lockout.
Works with any Amiga program.
Speech preferences program with phonemized word database.
No matter what you are using your Amiga for, Encore is a must for your software library.
See your local dealer for details.
ENCORE is NOT COPY PROTECTED Suggested retail S69.95 Dealer inquiries invited.
Cl I DC VC PO Box 16757 (206)938-0825 CLIrOIO Seattle, Wa 98116 FAX (206)932-9520 Amazing JL JL COMPUTING Cr flmazin Computin Rmazing Computing pppfcr IX n '« .W Miinw h mf*‘ COMDEX Spring Sidecar A First Look &&$ M v- i' i*-: U An Interview with
R. J.Mtfal W'Vj Im w S ST' VOLUME 1.5 ::V: VOLUME 1.1 Amazing
Count on the Anng3 V ?jp Wa
- &S il VOLUME 2.11 VOLUME 2 12 B VOLUME 3.4
'A »,t*iUUK4fe.r-- v mmmg Your Resource to the Commodore
Amiga™ Expanding reference is not just an empty promise. The
pages of Amazing Computing™ are filled with articles on
technical operations and procedures, basic use, and
just-plain-fun. The growing library of Amazing Computing's Back
Issues contains articles ranging from building your own IBM
Disk controller, to setting up your own startup sequence.
Amazing Computing™ has repeatedly been the first magazine to
offer the Amiga users solid, in depth reviews and hands on
articles for their machines.
From (lie Beginning Since February 1980. Amazing Computing™ lias been providing users with complete information for their Ainigas. This store house of programs and information is still available through our hack issues. From the Premiere issue to the present there are insights into the Amiga any user will find useful. AC was tire first magazine to document Cl.I. tell its readers how to connect a S ! I IBM drive, describe a i meg upgrade hardware project for the A1000. Anti many more. Please read the list of topics AC has covered below to find tiie information you have been missing.
Back Issues are $ 5.00 US, $ 6.00 Canada and Mexico, $ 7.00 Foreign Surface All payments must lie made by check or money order in U.S. funds drawn on a U.S. Bank.
L imited Supply I 'nlorumately, nothing lasts forever, and the availability ol some ol our Back Issues is definitely limited, Complete your Amazing Computing™ library today, while these issues are still available, by completing the order form in the back of this issue.
Volume 1 Number 1 Premiere 1966 Super Sphere* D? Kauffman An Abasc Graphcs pvog Diio Virus By J Fousl A dseaso fray attack your Aroga1 EZ-Term by Kcd Kauftnan An Abosc Termrul program M$ a Mania Cry P. K,YobwSz Programming Sim & mouse care Inside CU byG ktosseragadedinsigttiiHihaAjmjaDas™ CU Summary byG. Moswfjr. AI$ tc(CLIcofnT.3,Xs AmlgaForum by B. Lutwn V»1 CompuServe's Anvga SIG Commodore Amiga Development Program by D. Kicks Amiga Products A ftstfig of present and expected prodicS Volume 1 Number 2 March 1986 Electronic Ana Comes Through A rev*ew cl sonata from EA Inside Clk pan two G.
Ltoss& Invastgass CU & ED A Summary cl ED Commands Urt! Ty Rkh M'er A review offeSed verwn cf Live!
Online and the CTS Fatale 2424 ADH Modem by J Fees: Superterm V1.0 By K. Kaufman A an prog in Amiga Saso A WorkbencfTMcre" Program by RtokWifCft Amiga BBS number j Volume 1 Number 3 April 1966 Anafyzel a review by Ernest Vwenos Review* ol Rader, Baraaccss and U lnd*h*dow Forth! The fjsl ottxr orvgong tutorial Deluxe Drawl! By R Wirtfi An Amga Base ad program Amiga Bask:, A begrms cjsriai inside CU: part 3 by George Wy$ $ er George gives us PIPE Volume 1 Number 4 May 1986 Sjryf oi and Artidox Reviewed Build your own! 1 4 Drive Connector By Ernest Vtoros Amiga BesJc Tip* by Rtft Wircfi Scrtmper
Pari One by P. FovcwCwtr prog to pm! Amiga sawn Microsoft CD ROU Conference by Jen Ckeax Amiga BBS Numbers Volume 1 Number 5 1986 The HSI to RGB Conversion Tod by S. Pesowia Color manipulation in BASIC AmlgAHoles ty Rick Rao The first ol the Amiga music columns Sidecar A Firal Look by John Foust A hrsi "under ihe hood* John Fousl Talks with R. J. Meal at COMDEX1" How does Sidecar atleci the Transformer an Interview will Douglas Wyman of Smite The Commodore LayaHs by J Foust A lock Commodore "cub* Sctlmper Part Two ty Perry Kwotowtr Marauder reviewed by Rvk Wrcft Building Tools by Dartei a-y
Volume 1 Number 6 1986 Temple of Apshal ThdogyrgMOwd ty Stephen ?e7 G The HiBey Project: A Mission renewed ty S PietQMCZ Flow: renewed by Ejv Bobo Tencrarc Pius a First Lock ty joa Lower?
How to start your own Amiga User Group 7? WiLan Srnpson Amiga U*er Groups Mailing Usl by Kafly Kau5nart afcasc mad rs; program Pointer image Editor by Stephen PetowG Scrtmper: pari three by Parry Krvotawia Fun Win ihe Amiga Disk Controller By Thom Stoning Oplmbe Your AmigaBaslc Programs lor Speed bj Potfowcr Volume 1 Number 71986 Aegis Draw: CAD cooe* to Ihe Amiga by Kef y Adam* Try 30 by Jan Mjadows an inroduewn to 3D graphcs Aegis Images' Anlma lor: a review by Erv &oOo Deluxe Video Cons (ruction Sel iwfamd by Joo Lcwory Window requesters In Amiga Basic by Steve fcAcNy ROT by Colin French a
3D graphics editor 1C What J Think” Ron Petersen wtfi a lew C graphc progs Your Menu Sir! ByBCafey program Arnga B»ic menues IFF Brush lo AmlgaBfisic 'BOB' Base editor by M Swnger Linking C Programs with Assembler Rcutl ne*.~fry Gerald Hjt Volume 1 Number 3 1986 The University Amiga By G Gant* Amga a! Watfwgton Stole Micro Ed a look at a one man am-y tor Atuga Micro Ed, The Lewis and dark Expedition reviewM Fnarte Soifctie Version 2.0 2 review Computers Ln ffve Classroom by Robert ;naae Two tor Study By Fnzeie Deavery & TheTafeng Cocng Soc* True Basic reviewed -1 Brad Gr«r Using your primer
with ihe Amiga Marble Macros* renewed ty Stephen Pwtowc: Using Fonts Iron AmlgtBehc by Tm Jcroi Screen Sever by P K rotowtz a monte protection prog r C Lattice MAKE Utility renewed by Scon P Everndon A Tale ol Three EMACS by Stow Pofrvg bmap File Reader In Amiga Basic By T Jena Volume 1 Number 91986 Inslant llusic Reviewed ty Stert Ptoirowic; Mind walker Reviewed by Rchard Kropper The AJ egra Memory Board Revwred Dy Rch Wuch TxEd Rwreeed By Jan and CW Ko« Amazing Dlreclory a gcOe to no souces AX ro*ouTtt Amiga Developers A tstng of Sjppoo and Dtrretopore Pubilc Domain Catalog A fating cfAmcui
and Fred Fish PDS Dcs 2 Dos renew fl. K,nep(»" Transfer tes ten PC.WS-DOS MsiiPtan r*iew by Rchard Kn«Wf Amga Spreads’Vrel Gtanoi by reviewed by Peter Wayner A.mga ei?as' The Loan Information Program By Bnan CaSey basic prog tofcryourFnanaa opBons Starting Your Own Amiga Related Business try W Smpscm Keep Track of Your Business Usage lor Taiea by J. Rummer The Absolt Amiga Fortran Compiler reviewed by R A, Roalo Using Fonts from AmlgaBasIc, Part Two by Tim Jones 68000 Macros on the Amiga by G Hid Advanca your atHiity TDI Modla-2 Amiga Compiler review by S Farwdro Volume 2 Number 11987 What
Digl-Vew u_ Or. What GwJock Should Be! By J rccs: AmigaBasi'c Default Coksra by Bryan Cabey Amiga Basic Tl'Jes by Bryan Cadey A Public Domain Modula-2 System reeved by Warren Ecc Cne Drive Compile By Dougjd Lover LahceC r* cne3r,e A Megabyte Wltwt Uegabjcks ty Cnra tvng An htemg Ueg yte wCg'Me DigKView reviewed ty Ed JakoWf Defender cf the Crown renewed by Keift Cor.ton Leader Board reviewed by Chuc* Raudcya Round hiJ Computer System's PAH EL reviewed ty Ray laxo Digl-Paint by New Tek aevwitd by John Fousl Deluxe Pain! II „lrom QeCtronlc Arts preoewed by J Fousl Volume 2 Number 21987 The
Modem by Josph L ficdxnan o«orts of a BBS Sysop MicroUodem revre*i d by Siep«n R P ircwia GEMINI or It takes two loTsngo" byJmMeadovs Gaming between rrai ines BBS-PCl reviewed by Stephen ft Pietwnca The Trouble with Xmodem by Joseph L Rcthman The ACO ProJecL-Graphlc Teleconferencing on the Amiga by S. R. Piercwia Fughl Simulator II A Cfos Country Tutorial ty John Rafferty A Disk Librarian In Amiga BASIC by John Kenr n Cretling and Using Amiga Workbench Irons Oy C. Hansef AmigaDOS version 1.2 by Ciflord Ktfit The Amazing MIDI interface build your own by fichan: Rae AmigaDOS Operating System
Calls and Disk Rle Management ty D Hayni* Working with the WortbenOi ty La« A UamaAcs Prog in C Volume 2 Number 3 The Amiga 2000™ By J Fous A Frsl lack at T» new. Hgn end Anvga™ The Amiga 500™ by John FbjC A toot £ tv mw. w peed Anga An Analysli ol the New Amiga Pcs by J Fx-st Sperofaton on New A,-»gas Gemini Part ll by Jim Mead 7« The consudng amco on two-player games Subscripu and Superscripts In AmlgaBASlC ty Nan C. Smth The Wlnier Consumer Ejecronlcs Show By John Fous!
AmJgaTriibyW BlockArrega™ shortcuts In tuition Gadgets ty Harnot Maybeck ToSy A jfrjrvy rrough gad¦jct-iand usng C Shanghai reviewed by K&J- M Contort Cheismuter 2000 & Chessman revnwedby Edmn V Ape!. Jr.
Engt from Meridian Soflware t?.ewed by Ed BerooviJ2 Forth! By Jon Bryan Ge! 5 ter so sound nto your Fan programs AasemWy Luvguage on the Amiga™ By Chre MattLi Roomers ty tveBardto Genocks are fraly sh.pxx & MORE- AmigaNoles t R. Raa Hum Busters- ‘No stereo? Y nol?,.. The AMICUS Network by J. Fousl CES, user group ssues and Amiga Expo" Volume 2 Number 4 1987 Amaiing Inlervlews Jim Sachs by S. Hut Amiga Arts!
The Mouse That Got Restored by Jerry Hull and Bob Rhode Sjuething Public Domnin Disk* with CU by Jbhn Foust Highlights: the Sen Francisco Commodore Show By S Hu!
Speaker Sessions: San Francisco Commodore Show H ToCy Hcusehcld Inventory System In AmlgaBASlC™ bySCsSey Secrets cf Screen Dumps ty Natkun Okn Using Function Keys with UlcroEmacs ty Greg Dcu ss Amlgetrlx II by Warren Bkxk Mere A-»ja shortroto Basic Gadgets ty Br-jr. Cany Create gioje: toxtons Gridiron revev« d by k Contort Real tootoal tor rve Am.gi Star Fleet I Version 2.1 revowoc By J Tracy Atuga.n Spas TheTTCre. Iewed ty J Feus: Baaery e-ed Cca CaexSar Meta scope rev- e* by H To*j An eajy-c-use Ktugger Volume 2 Number 5 1987 The Parted Sound Digntwr -er-ow p? R The Future Sound Digrttw By
W. Stock Applied Vsion's SD Forthl By J. Bryincomparng .¦Fonhama Murt-Fom.
Basic input byB CaPay AmrgaBASICrpgi routine lor use in at yew programs Writing a SoundScape Module n C By T. Fay Proyarommg we MIDI. Anga and SoundScape by ScuxScape a.r.cr Volume2 Number 5 1987 continued programming in «0W Asaem&ty language by C Marti Caermtog wlto Counters £ Addre«.:ng Modes U sing FulureSound with AmigaBASJC fry J Meadows AnjgaBASIC Programing difywTh reaf. Dxgrored STEREO AmigaNoles fkh fiaa reviews SoundScape Soxvd Sarnpier Mora AmigaNoles by R. Rae A tortherlook a; PwlecrSound.
Wavs form Workshop In AmlgaBASlC 3 J. Shields edii A save wmlonn tor usa in other AmgaBASlC progrars The Mlmellcs Pro MIDI Studio by SuSvan Jeffery A review cf Mmetcs' muse ediBrjplayer.
Intuition Gadgets Part 11 by H. MaybeckTply Boolean gadgets provide Tx user wth an cn'cfl user interlace Volume 2 Number 6 1987 Fortni By j & asi Access resources in rva RDM Yer i The Amartng Computing Hard Disk Review By J Foust A S Lwxr : d?pr oo*a a: rve C Ejt Haro Dr'.e Mcrotctcs MAS D6v*?0. Byte fry Byte s PAJ Jr Supra's 4M Hard Drve aX xebec's 3T2CH Hard Cr e Asc a toek a: cssk drver soNare Currency under d vtopm *.t. Modula-2 AmigaDOS™ Unities by S Fawstews* A Cafc » AtvgaXSand ihe ROM kamal Amiga Expansion Pertpherii by J. Foust Eipianatonor AngaeipaxotpaciprieiiUs Amiga Technical
Support ty J. Foust How and where to get Amga tech sucoort Goodbye Los Gslos by J Fous: Casing Las Gatas The Amicus Network By J. Fousl West Ccasi Cax»ijto Faxa Me tscomco Shell ind Toolkit fry J Foust A review The Magic Sac by J Fousl Run Mac programs cn your Amga.
Whit You Should Know Belore Choosing an Amiga 1000 Expimion Device by S Gran* 7 Assemble rs hy the Amiga ty G Hul Cxo» your asserX er Shakeup Rep-iaces Top Management si Commodore by S HJ Peter J. Beeor'ty S Hull Manager alCBM g-ves an njx}« look Loglstlx A review fry Hicham Knoppor Organize1 By A review Rcianl Knepper Oaatase 68000 AsaemBly Lsnguege Programming on the Amiga fry C ms Marin Superbase Personal Relational Database ty Ray McCabe AmlgaNotea ty Ran, Richard A took o! FutucSouX Commodore Shows me Amiga 2000 snd 500 at Ihe Boston Compuier Society by H Maybeti. Toily Volume 2, Number 7
1987 New Breed of Video Products ty John Foust.
Very Vivid I By Tin Gr arthar .
Video and Your Amiga ty Oran Sancs III Airlgas A Weither Forecasting By Srenoer Iterscn A-Squared and the Urt I Video Dkgitfaer By Jcnn Foust Aegis Animator Scrtpa and CelAntmiBon fr? Jpnn Feus: Quality Video from a Carellty Computtr by Drar. SaXs I I I* LPF Realty a Slanderer! By John Fousl.
Amtrtng Stones and the Amiga™ By John ;ou$ l AH about Prtnser Driven ty Rchart Bretek Intuition Gadget* by Harriot May Beck Ta y Detone Video 1.2 By 5db Efer Pro Video Cgi By On Sands ill Dlfll-Vkew 20 Digitizer Software fry Jenreter M Jan* Prism HAM Editor from Impulse By Jenrttar M Jan* Easy! Drawing tiMel ty John Fou«.
CSA's Turbo-Arrtlgi Tower by Aired Afrurto 5SOOO Arnmbly Language by Chra Martn Volume 2, Number 8 1937 This monti Amazing Computing™ focuses on w.teftarvrefl: packages for the Anuga. Amaz ig game renews.. Sof, Earl Weaver Baseball. Porta, The S urgeon. Little Computer People. Sn&ad. StarGWer. King's Ojesl Mi and I u, Faery Tate Adventure. Ultima III. Faces o! Adventure. Vdeo Vegas and Bards Tate Plus Amazing monthfy columns... Arn a Notes. Roomers, Jaxtute-
2. 68000 Assembly language and The Amors Network OiSk-J-DJsk Dy
MatTiOw LfiOQS The Color Fonts Standard by John Foust Skinny C
Programs Dy Robert Riomresnia, Jr.
Hidden Messages in Ycm Amiga'" Dy John Foust Tha Consumer Electronic* Show and Comdex by J Foust Volume 2 Numbers 1987 Analyze 20 reviewed by Kim Schaffer Impact Business Graphics revow by Chuck Raudonis Microfiche Flier review by Harv Laser Pagejetter review by Rick Wydi Gizmos Pioductlvlly Set 20 renew by bob Bier Klckwork review by Harv laser Dlga Telecommunications Pactage review ty Steve Hul Meuse Time and TlmeMver rev w by jjhn Foust Insider Memory Expansion i renew &y j,mes Okeane Ulcrodotics Starboard-2 review by 5 Fawrerewski Leather Goddesw cf PtiobOi ty Harr Mayrieck-Tofy Lattice C
Compiler Version 3.1 J reviewed by Gary Sarfl Minx 3.4a update rntfwed by Jomci Foust AC-BASiC revcwed Dy Shetoon Lwnor aobaSiC Compilier an atemaffve compar*on by B Casey Modula-2 Programming S F&wiszawsh Raw Console Dev Evens Directory Listings Under Ami 3j DOS by Dave Haynie AmlgaBASlC Patterns by Bran CaSey Programming with Soundscape Tatar Fay mampulalB's samples Bll Volk, Vice-President Aegis DevthxnenL ty Ster* KjJ Jim Good now, De vtkoper ot Manx C interview by Harriet M Tofy Plus a great collection ol monthly columns- Volume 2 Number 10 1987 Mu Headroom end the Amiga by Jcfti Foust
Taking the Perleci Screen Shot by K®tn Contort Amiga Artist: B rlan Will lams by John F oust Amiga Forum on CompuServe'"...Schwa re Publishing Conference Transcript by Rfohard Rae All About Online Conferencing by Rchard Rae dBMAN reviewed by Clifford Kent Amiga Pascal reviewed by Mchaei Mc-Vod AOBASIC Compiler reviewed by Bryan Cafloy 68000 Assembly Language by ChrisMnrtn Amiga Programming: Amiga BASIC Structures by Steve Mcfd Quick and Dirty Bobs by Mchaal Swinger Directory Listings Under Amlga-DOS, Part II by Dave Haynie Fast File 10 with Modula-2 by Steve F&wtszewski Window 10 Dy Read
Precmora Plus a great collection of monthly columns .
Volume 2 Number 11 1987 Word Processors Rundown by Gteof! Cambte ProWnta, Scnbbte1, and Word Perfect compared LFO Writer Rertew by Manon Detand VteaWrue Review by Harv Laser A edit Review by Warren Bock WordPerfect Preview by Harv laser J« San interview by Ed Bercovltz StaiG&der author speaks!
DoHl-yoursell Improvement* to die Amiga Genlock DigPPaini Review by Harv Laser Sculpt 3D Review by Steve Pteaowla Shadowgate flevtew by Lnda Kaplan TeteGames Review Dy Mchad T. Cabral Rreson Preview an intense grammar ouimirabon appfcafion As i See H by Eode ChurcfeJ WordPerfect Gizmoz V2.Q arid Zing' AmlgaMotes by R Rae 4 otectwx muse bocrt Modula-2 Programming by S Fawszrexskjdevces. LT3. Iserfal pert 66000 Assembly Language by Chris Martin Exsctey routines The AMICUS Network by John Foust-Desktop Pubfcfer-g, Seyboti C Animation Part II by Mka Swinger Arimatxn Objects BASIC Texl by Brian
Cattey Pixel perfect toil posrtioorg Soundscape Part 111 by Todor Fay VU Meter and more Fun with Amiga Mumbera by Alan Bazroti Fite Browser by Bryan Caltey-Ful Feature BASIC fife Browsing Plus a great collection ol monthly columns... Volume 2 Number 12 1987 The Ultimate Video Accessory by U-ry White The Sony Connection by Slewart Cotib 15-Puzzle In AmlgaBASlC by ZolLan Szepsl Life, Pan I: The Beginning try Gerald Hull The litra-compiex nine bi t solution to th i ‘Game ol Ufe ‘ Amiga Virus I by John Foust CD Arguments In C by Paul Caitonguay MIDI Iniertace Adapter By Barry Maswnl Amga lOOGstjfe
MIDI interfaces can Si A2Q0C5 or 5COs Modula-2 by S. FaferiwewskJ Part l:command ixie calculator AmigaNotes by Rick Rae auto changes made in toe A500 4A2000 AilmaUon tore Rookies:Part 13 by M. SwingerOouble-bjftetrtg.
The Big Picture by Warren Ring Assembly language program™ Karate Kid Revfewby Stephen R.Pteiriowta GOI64 review by John Foust, James D Keane, and Rick Wlxh Three C-6* eiports investigate a new Amiga &z emiator A-Tafk-Plus Review by Brendan Larrpn Calligrapher Review by John Foust Animator Apprentice Review by John Foust Paying Dytvamlc Drums on the Amiga by DavM H. Blank WordPerfect Review by Sieve Hut IrslderKwiksiart Review by Ernest P. Viveiros Sr RAM 4 ROM exparson: Comments and retaJabon tps Forth! By Jon Bryan DtfrpRPorl utility tor you kfofe-Forth toofoox.
As l See ll by Eddie Churchill Dgt-Part, Port3t. Jvfoecscape 3D The Commodore Show and Ami Expo: New York!
Plus a great collection ol monthly columns- Volume 3 Number 11938 AnigiNotes by Richard Rm Amga d tal mustogeneration, CanimationPartiV by MchaeiSwnger Forth by John Bryan Sorting out Araga CHIP ard FAST memory The Big Picture ty Warren Hng Daring assembter language progranvning. CU system cads and manputeing dsk files.
6SOOOASssemtrfyLangueage Programming byChnsMartm ¦Create & mJ5 cia screen witvx' using Lisj'jon rcuines'* Modula-2 Programming by S. Farwiszewski A rew nx»jla-2' Amicus Network Special Report: Fall COMDEX Dy J FouSI The ultimate YweoAcccsso ; Part n by Larry Wrtiio UfeiPartll by GeraM HuS The Amiga bitter ‘ FormatMasler: Professional Disk Formatting Engine byC.kfann Put Batch language lo work on iho drudgery ol disk tormadvng Bspread by Brian Cadey full featured AmigaBASiC spraadsheot!
AmlgaForum Transcript ed. By Rick Rae Anuga's Dave Haynte Halcalc Review by Chu Raudcris easy la use, spreadsheet.
VIP Professional Review by S. MkheH Manage stock porfofio Money Mentor Review by S Kemp Personal frarva system.
Investor's Advantage Review by Rchard Knefper plus ‘Poor Mans Gutoe DtheStxk Market ’ Plus a great collection ol monthly columns... Volume 3 Number 21988 Laser Ugni Shows with the Amiga by Patrrtt Mjrpfty LasersandreAngaiADazzl ig Tandem The Ultimate Yid« Accessory: Partlll by Lary Whie Take fte finai sspstMia*: ces-jnmg your own vdeas Our Flrat Desktep V’ldeo by Larry While Siep-by -steo gjxfe to organ ng 4 presensn; )c.x Arga vdeo Hooked on the Amiga with Fred Fish nmw by Ed Berkwia.
Phcio Qualify Reproduction with the Amiga and Dlgl-Vlew by Stephen Lecafis Salanclng your Checkbook wt’Ji WordPerlect Macros by S-Hul Hand your cnedrtcck wemes ever to the Arjga Mora Basic Tart by Bryan Cattey easier lertonan Auga screen Ufe: Part III by Gerald Snes winds up wit famed nine-bl4 caic aaon 4 source to U F ER.
Solutions to Unear Algebra through Uatrtx Ccmpufettons by RopbertESs Simplify radix algebra wrlh toe operators 4 routnes Modula-2 Progranmirig by Steve Fawszewsk Catdimg up wth CaJc-a source foncw-up.
6SOOO Assembler Language Programming by Chris Martin Graphics- PartiiolAssemgram.
Arazok s Tomb irterview by Kenneth E. Schae’er ART by S. FawszewsJu rrvovaive *ayvbas£ fe program tang Forms in Flight by S. Ptetrcrwicz Bonder 4 Animate 30 objects Silicon Dreams and the Jewel of Darkness try K E. Schaefer Leisure suit Lamy by Kenneth E. Schaefer Two New Entries From uicroblotics by John Foret M50t Expansion 6 Starboard ll lAisFunctonboaid Ulndllgh! 7 end People Meier by John Foust Phantasfe Ken E. Schaefer Amazmg PfiantasieCharaaor Editor Plus a great collection ol monthly columns.- Volume3 Number 3 1988 Desktop Vldeo.Pcrt rv DyUny White Pul as toe ofeto lowtoer-fie desktoo
video cqmr foai.
The Hidden Power ol CU Batch File Processing by J Rodman Mate your Amiga eas 9' to use wto CU Baer. Stes, A Conference wtti Eric Griham edted by John Feus!
The mastermind behind Sar'p! 3D and Artmate 30 Perry Kivolowttz kitervtewed by Ed Bercovltz Amgarsgc.5 trom a major developer and peraonaify.
Jean 'UoeWus'Glraud Interviewed by Edward L Falgsn Avant-garde art comes to toe Amiga-in dazzling term.
PAL Help by Perry KjvctowrtZ A1000 expansion retebify.
Boofeen Function Uwmtatiori bySievenWHart A useftJ ttegn too* in A raga5AS!C Amiga Se rial Port and Midi Compatibility tor Your A2OO0! By L Rtter and G. Bent; A*: an AiOOO-5fyfe send pert to too A2tx»' Electric Network Solutions the Matrti Wty by Rcierf E*S Enpneers1 Practxde rouv«s tor isrg malm algebra The A.U.U.G. BBS List compiled by Joe Rotoman. Chet Solace.
4 Dorotoy Daan 5*4 BBS phone numbers In r»l) S 4 Canada FACCII reviewed by Graham Kinsey Speed ytw floppy tfves.
Uninvited reviewed by K E. Schaefer Flow reviewed by Pamela Rothmai brainstorms into mental art Benchmark Modula-2 Compiler reviewed by ftffue Bielak Modula-2 Programming Cy Steve Faiwiszewslg The gameport device and sample sprites to action.
Amiga Holes by R-FtaeAiOOO'Software-swictoaato output filter.
Roomers byTho3anditoAmtExpo, Kicksiarti.t.Convriodoro The Big Picture by Warren Ring- Unifiod field Theory!!
Plus a great collection cf monthly columns- Volume 3 Number 41983 Highlights from AmlExpo, Los Angeles by Steve Hull Writing a SoundScape Patch Librarian T Fay Systern Exdushe Upgrade Your At COO to A50&2000 Audio Power by H 3as»n Mdd5cffi ons to help ycur A1000mai wwt music, ©o' Amiga Audio Guide Listing of a5 Amga audio prodt' s Gels In MultHFonh by John Bushakra Maaobatica by PatockJ Morgan Ease toe tsuma of assemtfy language programrraig Amiga Audio Sources The kAs bentod ail tocse aud© products Take Five! By Steve PkJl five Anvga games reviewed AmigaNotes tyrTxpiFiseA basctouofAm»gaau3o
The Ultimate Video Aocesory, Part V by La.-ry Write Bug Bytes by John Stewer The Big Picture by Wansn Bng Pan a Urxted fiek) Theory Roomers tjyTheBandto Harthvare h ru_. Toastedvoeo ...redrBamArr-ga. a.'dmcro!
In the Public Domain byC W Flatse Time Bandit review by teth Contort AudloMasler review by 9 Laraon Real-tsnedgitiangwmfiies Musk: House review by j Henry Lowengard Makng muse wuxwt Lfeng a finger irom toe mcuse- Antiga-TaxCanadian Version revw by Ed Bercowtz a Canadian income tax pfanrtng. Prepaation, 4 analysis package.
SAM BASIC review by Bryan Cadey A new BASIC which expiois even more ikiiqjo Amga feato.res Volume 3 Number 5 1988 Interactive Siirtup Sequence by Ido Pemrez The Command Une part ity Rich Faiartxjrg AmigiTrlx in by Warren Bfcck Tips and tctxis to ease Amiga life Amiga Product Guide: Hardware Edition Proletariat Programming by P Quad PutJc Oorar comgters The Companion by P.Gosseiin Amiga's Evens Handling capaWdy.
Mind Light 7 revtewed by David H Blank VkJecScape 3-D 20 reviewed by David Hopkins Extend reviewed by Bryan D Caifey An ArfegaBASlC extensor) AssemPro reviewed by Stephen Kemp 0ponng a door to assembly language programming.
APLWOOC reviewed by Roger Nftison Book Reviews by Richard Graco Three *C* programming texts.
CBTREE reviewed by fMiaoi Lstnan A bdy coi«tK*i of functions to ad tha C programmer.
The Big Picture by Warren Ring The three-part Unified field Theory wines up Moduli-2 by Steve Fawiszewski 'ermnaton modules tor BerKhmark and TDI compilers 66000 Assembly Languege by Chrre Martin Pee'ing away toe compfccaton o! (Sspfey routines Plus i great collection ol monthly columns .. Volume 3 Numbers 1983 Bear Time Reviewed by Steve Carter What makes ris ina*pens:.q A100C baUBty-backed dock tick?
Acquisition Reviewed by David N. B*arw A k»k mstoe toe latest release of a powerful reLslonai database.
Butcher 20 Reviewed by Gerald kkl A Ky coiocscn cf dww image pracessn; utitties.
Reasiigning Workbench Disks by John Keman EncSess disk swappng comes to a nercrtJ end Product Guide: Softwsra Tools Edition A lotng cf id too cvoducs you need to pu I your Amiga to work.
An IFF Reader in UuHFFcrth by Wanen Boa Create an easy to use IFF reader vi Muft-Fcrto Basic DirKtory Service Program by 5ryan Cattey A programmng atemabvB n the GmmeeZeroZero windews C Notes Irom the C Group by Stephen Kemp A begmnefs gu te to toe power of C programming An Amiga Forum Conference with Jim Mackraz The Amiga markef as seen by the ‘Steplatoer ol intutan.* Son ol Seven Assemblers Reviewed by Gerald H J A ocr.parativa taino be oen seven nab*e-code assembters The i9W Commodore Amiga Oevetopers Conference A too* inside the conferences held in Washington, DC.
Amiga Working Groups by Perry Kivoiowttz and Eric Laviisky An outtma ol toa innovative Amiga Working Groups aoncepi The Command Une Dy Rich Fakanburg Eipk ing the multi-talented LIST command.
Plus a gteal collection ol monthly columns- Volume 3 Number 71988 Look, Up On Ihe Screen, It s an AmL. It s a Pro- It s SuperGen reviewed by Larry White Genlock comparisons An Interview with "Anim Man,' Gary Bonham by B. Larson An animated conversation wtfi toe .man &eh nd the format The Amiga at Spring COMDEJ In Atlanta by Ed Berocvt!
Amiga Product Guide: Video Graphics Edition Thirteen pages devoted to toa Amga’s dazzing strong sut The Developing Amiga by Steve P«trow« Oevetopers'notes Pdvs sharewarevs ireefy 5strbu!ab'«t; Roll These Presses! By Barney Scriwairtz Welcome to the dandy, demand.ng worfd ol desktop putisriv)1 Unked Lists In Cby W E Gamma Putdynarmc memory towcrtl FrameG ribber Preview by Oran Sands Capt rz an image car. Now be 2S test as puntfuno a Stfigte key!
A First Look at Interchange reviewed by David Hoptarre Bridge toe gap between tocse incompaMfe animation paefcages.
Perfect viskwi renewed by Bryan Cattey Cap rire. Agtiza and pfobres Yom a,ny wJeo source ProWflte 20 Review rev tewed by Pameta Rotfman A gfephe word processor spocai z ig in effidont editing Doug's Math Aquarium: The Art of Mathematlca by R &elak Bear Pioducti UegaRex n Expansion RAM by Ste-o Carte Tha Command Une by Rth Falcon dug Amiga Notes by Rpk Rae The Other Guys' Synffua: A d*jila£ synthesizer features won! Sfop- C Notes from the C Group by Stephen Kamp Vieatoonrg toe unknown *C'of Pas©obtect and data typos.
Plus a great collection ot monthly columns- Volume 3 Number 81988 The Command Une by Rich Falaxfourg The journey info toe CU continues The Developing Amiga Dy Stephen R Pietrowicz A ga jglo of great programming toos.
Modula-2 Programming by Steve Fawszew ki Libraries and toe FFP andJEE Mato Routines, C Hotes from the C Group by Steohen Kemp Arrays and pointers unmasked.
Dark Castle Tovtewd by Koto Conloifr The Blac* Krvghtkjrks Ports ol Call reviewed by Juf»e Laid Lea toe meek renewed by Mchaei Qeeden-Rambos no? So fougrt1 Capone reitewcd by Joyce and Ribby Hfts- ugh: Guns aare Casino Fevtr reviewed by Mchart T. Cabral vegas on Ar.iga Ferrari revewod by Jeffery Scctt hal Start yoi engine ArtsnoW reviewed by Graham Kinsey 1rtwodaustar" Ebonstar by Kteto Contort back hefe te ang Deluxe Productions.-fN-te*ec Dy Bar* Laser Ycec wizardry Game Ptzm ty Jeffery Sees Hall Regster yew qusssorts hers.
Irack Mouse by Darryl Jo,tie Convert a standard Atari trackbaf into a peppy Amiga Track Meuse Amiji interface for Blind Uwrs KnewtC by Cart W. Marr An ingenious kuertaa toat opens toe Amga M eren more users' video In the Sunshine State reviewed by Stephen R. Ptebomcz RGB Video Creators Ixss a v.oeo unveing!
Amiga Product GuWe: Games Edition Tumbtln' Tots by David Ashley a&senpfy language program.
Plus a greal collecfion of monthly column*-.
Volume 3 Number 31988 The Kldeo Tapes by xhn Oandjrand A Georgia e'ementary school pus OasMcp vdoo to work.
Speeding Up Your System by ’cry Preston floppy disk cacfeng Amiga Product Guide: Educaiion Edition Everything you need to send ytx t Atnga to tne neac cf toe doss Computer Ajded Instruction b) Paul Castongtay Authoring system in AmgaBASl 2 Gets In MuhHForth, Pari II: Sc eenplay by Jcton Bushakra Make toe IFF convener from Pail I easy lo use-gacgets, menus,etc Ami Expo Midwest'W by MchietT. Cabral After taking the coaste by storm, the Amiga wows Chic+KjO Infellllype by Harv Laser Lear img lo type made easy and tun?
Shakespeare by Barney Schwa tz Desktop publishing In hjl color.
Xspecs 3D by Slave Hl-'I A newdmenson in Amiga graphics AmfoaNotes by Reftard Rae How IFF sound samples are stored?
Take Five! By Steve Hull Beal toe back-to-sohoO blues!
The Command Une fiy Rich Fa corburg continuing tour ol CLI Hot on toe Shelves by Mktoaef T Cabral 4 MchaeiCreeOen wnal to you gel when you centime intense wa: strategy wto a monochfome monitor and Oesktijp presentation? Check it out Bug Bytes by John Steiner G Hales from the C Group by t.tephen Kemp Operators, eiyesscns and sta emer.ts rn C uncovered Roomed by The Bandito Can Apple tigs Plus keep Am.gaawa)'5 Volume 3 Number 10 1988 A First Look AI Dslux Pholoub ravtewed by D&id Extoemnan A pant package, posfef-m ker, ito inuage processing program DiskMaster reveweC by Steve Hjf file
DSU: A MC630000 Qsissemtfer r viewted try Gerft'd Hifl Lookng for easiy n oq fia&fe, assembly-ready code?
Fbisfo Languige System rgv *«J by PabckQuad BASIC compiier and tov-etopmeit system Hoi on toe Shelves by Uchaef T CatraH-Oe.- nt ice, gnppng gray scales, cofor cartography, mauling modems, and much more The Command Line by Rich Fiicontug NEWCU: A pariiess way to creue a new correcte wrtfow.
The Developing Amiga by S. Feaowicz Usenet 24-Hour News C Noiea horn toe C Group by iitepnen Kemp focps Roomers by The Eand.to W? Wire, ignomnxxre interfaces. 4 more PD Serendipity by C W. Fbae Fred Fah asilecMr.passes 150 Compertson ol MultlScan Mor itors ty Steven Bender Fr*e mu!6scan atamadm square oil on the desktop.
Record Keeping forFreeHancufs: A Superbase Professional Tutorial by Marion Deland Record keeping system for free- ance photographers and otocrs On The Crafting ol Programs )y David J Hardens A look at optimizaSon kicks off a series cl aides on programming sawy.
Bob and Fay Meet Frankenstein by Robert D Asto-Create, animate, arw metamorphose grtipricsobjects in AmgaBASlC Digital Signal Processing In AmlgaBASlC by Robert Ells Perform your own dgei experiments with Fast Fourier Transforms HAM 4 AmlgaBASlC by Bryan Catfey Pack your AmigaBASlC programs witfi many cf the Anna's 4096 shades!
CA1 Computer Aided Instruction: Part II by Paul Casionguay The Editor program waps up wr autnomg system r ArrsgaBASIC.
Volume 3 Number 111988 Desktop PuWIshlng wlto Profiisslonal Page by Barney Schwartz tutorial in documen creation, pins some jazzy ennanewner ts Game Pizzazz by j HaT gamoj hints, tps, hgh-score secrets.
Structures In C by Pad Castorguay C programmnj r an rmtshel On The Craiting cl Programs ?jr D Kafeure speed up your pregs Desktop Video vi Adding the Thtrd Dimension by Larry Write Urvaveirtj He compfetfy of 3C lo your vxfeo aeatons A2000 Hard Drive Round Up ty Shefocn Leemon Keydlck by k&s M. ,pgong a typewriter Cck n your keyboard More Linked UstsInC:T«hrIquesand Appiicabons toy- Forest
W. Amort Procedues for mana?ng kSJs. Sforng rtivoree date types n
he same hst arri purtng ksb to work in your programs BASIC
Linker by Brian Zupko (w&f« irdvkduai iccsnes tom your program
library to creaa ai eucutabia program The Developing Amiga by
Steten Petrcwrcz A look at mysteries and succev es behind
efficient beta ttrsfng Modeler 30 Preview revvewod xy Davd
Hcpkxre A peek rre«teanew,open-en&d3DpackA)e AprcDraw Graphics
Tablet re tewed by Keith Confers Arrests' Meet Tie Mure of
Amiga graphics.
StarGilder ll reviewed by Jeffeiy Sect! Hart Those irritating Ergons are bad for another laset-iasfang W'Sheil reviewed by Lawrence JchtmarCLI substitute.
Hoi on toe Shelves ty M. Caria! Viruses, music, mcrofiche mastery PD Serendipity by C W, Ftatte Fred Freh dsks 14&-152 Roomers by The Banjito GoUtin RAM. 16-bi vwdecg.imes, CD-I, anodief HAM skvnreh . What ccxikS possibfy bo NeXTf To be continued To Order Back Issues, please use the order form on page 112 (Mettus, continued from page 79) number in this location when the user selects more than one menu selection at once by clicking die left mouse button on them.
This may all seem complex at first but it gets much simpler (honest) after you've had a little practice using this information and seeing tire results. The “big picture” regarding these structures is analogous to the entire Menu display itself.
Each Menu Structure is linked to (contains the memory address of) the Menu Structure to it's right. Each Menu Structure is also linked to die structure of die first Menultem beneadi it. Each Menultem structure within a particular Menu is linked in a “vertical” list and, if a Menultem has a list of Subitems, these are also in a linked list and the Menultem structure contains the address of the first one of these Subitems. This entire network of linked structures describes die whole menu display and is known as the MenuStrip. The beginning of this Menu Strip, and thus its memory address, is die
first field of die first Menu Structure within it.
More information can be gotten on all these structures and fields as well as other detailed aspects of Intuition from the Intuition Reference Manual by Robert J. Mical and Susan Deyl, published by AddisoncWesley, a fine text and definitely a must read for all Amiga programmers. The purpose of this article is to give the AmigaBASIC programmer a general grasp of the principles involved with menu creation and, hopefully, to encourage further study and experimentation.
There’s one odier Intuition structure intimately involved with creating menus: The IntuiText Structure. The fourth field of the Menu Structure and the fifth field of die Menultem Structure point, not simply to a text string, but to an IntuiText Structure which contains data describing how die text is displayed: Colors, text style, and so on. The specifics on this structure are as follows: IntuiText Structure: field 1 two 1-byte numbers: fgColor, bgColor field 2 a 1-byte number stating the Draw Mode of the text field 3 2-byte number: LeftEdge field 4 2-byfe number: TopEdge field S 4-byte
number: pointer to a font structure field 6 4-byte number: pointer to text string filed 7 4-byte number: pointer to next IntuiText struct The first field is just die PALETTE-id numbers as normally used in AmigaBASIC for the desired foreground and background colors of die text. Field *2 is the Draw Mode. AmigaBASIC uses Draw Mode 1 as a default. Draw Mode 0 is usually better for menus as it doesn't automatically place a background color behind the printed text. Fields *3 and -4 are text placement parameters. The fifth field is beyond the scope of this article, but you don't have to worry
about putting any value here as a “0” will produce the default topaz font. Field ~6 is the memory address of the null-terminated text string, which means "textstring$ + CHR$ (0)” in AmigaBASIC. The last field is reserved for die address of another IntuiText Structure in case you want a linked list of these structures, which isn't needed for menus.
Another NEW Product To Make The FASTEST Development Environment Even FASTER The F-BflSIC Source level DeBugger (SLDB) The Only DeBugger Quick Enough For The FBASIC' System Finally, a full featured DeBugger that doesn't requite a working knowledge of assembly code. Use the SLDB to quickly debug your F-Basic programs without all those PRINT statements Check these features of SLDB
• Debug F-Bas c programs a; the SOURCE level
• Fully windowed Intuition interface windows for Source Code
68000 Registers. Memory' Dumps, Program Variables, etc.
• Set break points and single step trace by either source line or
by Assembly Code Line.
• Display all variables, arrays, or RECORDS by name.
• Full reverse-assembler included
• A comprehensive User's Manual with full documentat o" of all
SLDB supported features and windows.
The F-BASIC Language System An Enhanced Compiled BASIC Language You’ve READ About It Now EXPERIENCE It!
: Beginning AMIGA™ programmers choose F-Basic due to its simplicity and ease of use. If you know BASIC, you can use F-Basic immediately.
? Programmers of all levels choose F-Basic because its hundreds of built-in features provide an AMIGA language environment that coincides with your experience. F-Basic can't be outgrown, due to features like:
• Extensive Control Structures • Recursive SUBROUTINES &
• LOCAL & GLOBAL FUNCTIONS Var a pies ¦ 32, is. And S Bit
• Ultra Fast Floating Point • Powerful String Facilities
• RECORD Structures & Pointers • D reel ROM Kernel Access
• INCLUDE & APPEND Separate F.ies • Bitwise Operations
• PATTERN Matching Support • Access to 66000 Registers
• Easy high level access to AMIGA Screens. Windows. Menus. Sound.
Speech Graphics ana Events.
~ The F-Basic M Language System includes
• Comprehensive User's Manual- Full Documentation of All
Supported Features Of The F-Basic System
• Sample Programs Disk "Hands On" Tutorial
• FastCom™ single pass compiler, which quickly compiles F-Basic
programs into assembly code. FastCom is written in F-Basic..
That's your guarantee of the speed and efficiency ol F Basic.
The F-BASIC Language System Only $ 79.95 FBASIC"'1 System and CompleteSLDB Only £129.95 SENDCHECKOR MONEYORDERTO: DELPHI NOETIC SYSTEMS,INC.
Post Office Box 7722 Rapid City. South Dakota 57 709-7722 Credit Card or C.O.D. Call (605) 348-0791 F BASIC and FasComaferegsleredlradenafksc DNS Ire AM IGA is a fegise'ed iraoemafK Commodore AMIGA !x Okay, that's the lowdown on the Intuition structures direcdy related to menus. There are oilier system structures that come into play but it isn’t necessary to have a complete listing of them here. There is, in fact, an entire complex of interlinked structures created automatically every time we boot up the Amiga which defines its basic operations. Every screen, window, gadget and icon has a
structure which defines it; and there are many other structures used for graphics display, inter- svstem communication and many other activities. These structures are defined in the above Intuition manual as well as the ROM Kerne] Manual and other texts. They are listed in these volumes in the chapters labeled “Include Tiles'' and are written in C language, but it isn't necessary to leam C to be able to use them. All that's needed is some familiarity' with the C terms used to denote variable types and pointers so that the fields of these structures can be understood as to size and type.
Any basic C text will have definitions for these terms. From there it’s just a matter of locating the addresses of die structures one wishes to manipulate.
The AmigaBASIC programmer has three ways of getting this address information. The functions VTNDOW(7) and WINDOWS) return die addresses of two often-used structures: The Window Structure mentioned earlier (for defining Windows) and the RastPort Stmcture (defines graphic drawing information). The second method is to use one of several System Routines which were created for the purpose of providing structure addresses for die programmer (more on this in a moment). The third method oflocating a structure address is to locate a field within one structure which is known to contain a pointer to
the structure you seek. I’ll give you an apropos example of this last method. Let's say we wanted to find the address of an existing MenuStrip. We know that AmigaRASlC's WINDOW(7) function returns the address of the Window Structure. It so happens that die Window Structure contains the address of the MenuStrip within a 4-byte field that begins 28 bytes from its “top”. Thus, the address of the .MenuStrip can be gotten with this code fragment: PRINT PEEKL(W!NDOW 7)+28) Here we're using one structure to locate the address of another.
You might be wondering why we can’t just look up die address of a structure in some manual when we need to access it for programming purposes. This can be done widi other computers, why not the Amiga? The reason is, because of its multi-tasking nature, the .Amiga does not use absolute (fixed) addresses in its system. It uses relative addressing instead. This means that memory addresses are established in relation to some odier address. An analogous example: How do you find the end of a yardstick? Easy. Just find the beginning and measure 36 inches.
The MenuNumber and Other Oddities If you're with me so far you may still be wondering how we can set up a program so that it can detect when a Subitem has been chosen by the user. AmigaBASIC commands only include die MENU(0) and MENU(l) functions for returning Menu and Item choices. Is there some secret BASIC function for detecting Subitems as well? No, theie isn't. Fortunately, though. Intuition is kind enough to keep track of this information for us and to make it available to programs which know where to find it and how to interpret it. I use the word “interpret” because the information
itself exists in a sort of codified form and must be converted before being used by the program. First I'll explain the form of the information and then I’ll cover where it can be located.
When we’re dealing with menu selections wre have three possible variables: Menu, Item and Subitem. These values comprise relatively small numbers and could be recorded using single byte numbers for each, a total of three bytes, to give a complete description of a menu selection made by die user.
Intuition, though, doesn't like die idea of using three bytes for this data: it prefers to use only two bytes. So, it “packs” these three numbers into a single word (two-byte area) of memory' and the result is one 16-bit binary number which describes the three values we seek. This “packed number” is referred to as the MenuNumber and here is a binary' example of what one might look like (the spaces are for clarity only): 0000 1000 01000011 At first glance it doesn’t look much like three different numbers...four, perhaps, or maybe two...but three? Yes, it is dirce different numbers. This
MenuNumber tells us that die user has chosen Menu 3, Item 2, Subitem 1. How? Let's chop diis number up a little and it will become apparent.
0000 1 000 010 0 0011 We’ve broken up the 16-bit number into three parts. The middle part has 6 bits, the end parts each have 5 bits. The group of five bits to the right gives the binary number of the Menu, the middle group of six bits is die Item, and the five bits on the left represent the Subitem. Taken all at once this example of a MenuNumber is equal to 2115 in decimal or &H0843 in hex, but this value is not terribly important to us (yet); right now we just want the three individual numbers so our program will know where to jump when the user makes a selection, .-An important point to
remember is that these individual numbers begin counting at zero. The first Menu, Item or Subitem is always numbered as zero, number 1 will be die second and so on. 'This, then, leaves us with die need of a way to represent “no choice" as something other than zero. For example, if die user picks an Item which nas no Subitems we don’t want the Subitem part of die MenuNumber to register a zero as diat would mean that die first Subitem was seiectecl.
Which would make no sense as there are no Subitems in this case. To take care of this situation Intuition would fill that pan Meet a team of the friendliest financial organizers you’ll ever run across.
Smart Scrolls for speed.
Money Mentor has a truly unique system called Smart Scrolls, that handles a diversity ot otherwise tedious data entry’ functions and clips along saving you up to 70% of your typing time. It's a smart addition to Money Mentor, that ’s why we call it Smart Scrolls.
Money Mentor sells for only $ 95.95!
VISA SEDONA SOFTWARE What they’re saying about us!
"Money Mentor bus to be the nicest look and feet of any money manager package for fyonte use that I hare erer seen." Amiga Sentry “Money Mentor is an excellent product ” Amazing Computing Money Mentor is for everyone!
It does more than just keep your checkbook balanced Money Mentor helps you manage your personal finances which is important to any family or individual With Money Mentor, you can he looking better financially Order Mnnrv Mentor today.
Money Mentor Features:
• Net Worth Statement
• 2(H) Budget Categories
• 30 Integrated Accounts such as Checking. Cash. Savings and
Credit Cards
• Elaborate Search Routine allows editing of transactions
according to your specific guidelines
• Automatic Check Printing
• Automatic Account Balancing
• Color Graphic Repons illustrating actual vs. budgeted amounts
• Over SO Reports to choose from!
SEDONA SOFTWARE 11828 RANCHO BERNARDO RD SUITE 128 20 SAM DIEGO, CA 92128 CALL (619) 451-0151 of the Menu Number with ones to represent a ’“null” choice. If nothing at all was chosen (right mouse button pushed and released with nothing selected) die entire MenuNumber would be set as ones. Here's an example of a MenuNumber which contains a null Subitem: Hill 000 001 0 0000 This translates to Menu 0 (left most Menu), Item 1 (second item) and Subitem null (no Subitems involved).
Our program code contains three subprograms which extract these three values from the MenuNumber for us: MENUNUM, ITEMNUM and SUBNUM. These represent AmigaUASIC “translations" of the functions a C programmer uses to obtain these same values. The only one a BASIC programmer really needs is SUBNUM, since the MENU(0) and MENU(l) functions provide Menu and Item choices. All three are given here for the sake of completeness and tea assist in further explorations by the reader.
Now that you know how to interpret MenuNumbers all that’s needed is die location of this MenuNumber so it can then be read and used by the program. This information can be found within a special system structure known as the Mes- sageKey Structure. It’s not necessary to have all die details of this structure here. All we need to know is where it is and where, within it, die MenuNumber can be found. The address of this MessageKey structure resides within the Window Structure mentioned above, to be exact, in die field beginning at “Window Structure + 94". Additionally, the precise information we
want is contained in the field which is 24 bytes from die beginning of the MessageKey Structure. The MenuNumber, then, can be found with this coding: (continued) MessageKey&=PEEKL(WINDOW(7)+94) MenuNumbeF%=PEEKW(MessageKey&+24) Notice the “fit” and "%” endings to the above variables and die Nvo variations of the PEEK function used. Addresses are long integers and the MenuNumber is a short (16 bit) integer. After the user has made a Menu selection we simply use the above code to obtain the MenuNumber and pass it on to the MENUNUM, ITEMNUM and SUBNUM subs to extract the appropriate values.
All that's needed now is a description of the library routines which are used in the accompanying code and you’re well on your way to being a menu artiste extrordinaire. These ROM Routines are simply subprograms and are used in much the same way as AmigaBASIC subprograms. There are two general types: The type that performs a task and the type that returns a value (some do both). The first type always has an “=” in their syntax and they must be declared with a DECLARE FUNCTION statement before using them. This simply declares whether the value returned will be a short or long integer by tagging
on a “%" or a at the end of its name in the declaration, The other type is simply called with the same syntax as .AmigaBASIC subprograms and requires no declarations.
I’ll give a brief description of each of the system routines used in our code example.
AllocMem is an exec function and it, as stated above, allocates a block of memory for a specific use and returns the address of that block. It needs two things to do its job: The length (in bytes) of the desired block and a number which corresponds to one or more options. Its syntax is: Addressfk=AllocMem&(length,option&) The value denoting tire length should be in multiples of 8 bytes, if not it will automatically be rounded up to the next multiple. The option parameter determines the general location of the desired memory and its status. For our purposes we use the option with the value of
65537 (or 2Al6 + 2A0) which tells AllocMem to clear the allocated memory to zero and keep it from being shifted around. This gives us a "clean slate” to create our staicture and a permanent address with which to access it. There are other possible option values but they don’t concern us here. The “Address&” variable (or any other we choose) will be automatically assigned the value corresponding to the address of the memory' block provided by the function.
Another very' useful exec routine is called FreeMem. This one isn't used in our Sub lenu_Demo listing, but it should be knowm if one is starting to work with structures. It requires no DECLARE FUNCTION statement and its syntax is simply: FreeMem address&, byteSize where “address&” is the starting address of the block ol memory- one wishes to clear and “byteSize" is its length in bytes.
It’s always good programming practice to free up any RAM previously allocated before ending or exiting a program.
The Amiga system provides a variety of ways ro both allocate and clear memory. Our SubMenu_Demo listing doesn't use FreeMem as there is a special routine (described below) for clearing menu structures.
One other exec memory handler which is used in our Using is CopyMem. This routine copies one area of memory' into another. It’s syntax is: CopyMem& source&. Destination&.size where “source&” is the address of the block you wish to copy and “destination :” is where you want the copy to reside. "Size" is the length of the block in bytes. It's very useful when you need several copies of a particular structure.
ItemAddress is an Intuition function which provides the memory address of any Menu I tem or Subitem structure. Since a complete menu display can contain quite a few structures, this routine can be a real time saver when we wish to access one of them. We "feed" it the address of the MenuStrip and the MenuNumber of the desired item and it produces the address of that item by assigning it to the variable we provide lor that purpose. This is where the rota! Value of the MenuNumber comes in and the reason we need to understand how MenuNumbers work in order to use this routine. When the structure
address of a particular Item or Subitem is needed we must figure out what the MenuNumber of that item would be, compute its total value and insert this value into the ItemAd- dress statement. Its syntax is: MenultemAddress&=ltemAddress&(Men jStrip&. MenuNumber) In the parentheses we provide the address of the MenuStrip and the MenuNumber of the desired item. The variable on the left will then be assigned the value of the memory' address of that item’s structure.
The Intuition routine ClearMenuStrip does just what it sounds like: It clears the entire MenuStrip from memory in one fell swoop. It needs only the address of the Window Structure to do its job, so its syntax is simply: ClearMenuStrip&WINDOW(7) since “WINDOW(7)” provides the Window Structure address for us. Notice that we can mix AmigaBASIC and system functions in die same statement. Use ClearMenuStrip in the exit routine of your program or before replacing one menu display with another.
Now, let's scan though the various routines and subprograms of our code. The heart of this system consists of the subprograms SUBMENU and SubMenuSet. The first is used for each Subitem we wish to include in a particular SubMenu.
As such it is used in a manner similar to the standard MENU statements. Be sure to number your Subitems correctly and consecutively when using it. The syntax is: SUBMENU SubMenuNum%.SubMenuText$ The first parameter is the number of the Subitem in a SubMenu list (start counting at 0) and the second is the text of die Subitem title which should be enclosed in quotes. That's all there is to it. Right after the last SUBMENU call of a given list of Subitems wre use SubMenuSet to link all the Subitems just given into a linked list and to link this entire list to the desired Menultem. The syntax is:
SubMenuSet MenuNum%, ltemNum% The parameters are simply the numbers tlrat correspond to the Menu and Item to which we wish to add the list of Subitems. Remember, the first Menu, Item or Subitem is always considered to be “0". This is important because AmigaBASIC starts numbering Its Menus at "I", yet it starts its Items with "0", an annoying inconsistency. If you have trouble remembering that AmigaBASIC MENU 1 is really MENU 0 and prefer to keep the numbering system consistent with AmigaBASIC’s you can do so by adding a line of code at the beginning of tire SubMenuSet subprogram which
subtracts I from the Menu number parameter.
Tweaks and Tricks The POKEW statements within die SUBMENU sub are labeled as to which parameter they control. The first one (Left Edge) is die number of pixels between die left edge of the Menu and die left edge of die SubMenu. This is arbitrarily set at “68” in the code listing because that’s what works with this particular demo. Your program may well need another value here, so change it to suit your program’s needs. The three following POKEW statements are various dimension parameters of the box that holds the Subitem tide, also measured in pixels.
Try different values and you’ll see how they work. The “Flags” parameter describes various display options. Space does not permit a complete mndown on all the possible values and combinations that can be used here, besides...I’d be spoiling the fun by telling you everything! The Intuition manual has all die data about die various Flags values in its “Include Files” section.
I will give you one more little tidbit, though: try erasing the “&H40’’ and substituting “&HS0” in its place. Now, run the program and move the mouse pointer over the Menu selections.
Do you see the difference in the way the items are highlighted?
The CreatelntuiText sub, also containing some noteworthy parameters, is not called direcdy by the program, but rather by die SUBMENU sub. It does exactly what its name implies: It creates an IntuiText structure for the text of each. Subitem and then passes the address of that structure back to the SUBMENU sub so it can then “plug” this address into the appropriate field of the Subitem structure. Most of its parameters are set to “0“ in our example code and, as such, don’t even need to be there.
I’ve included them to give you die option of trying different values in these positions.
For example, die first two (Front Pen and Back Pen) are just PALETTE-id numbers. These values will depend oil how the SCREEN depth and PALETTE statements are set up in your particular program. You want a chartreuse-on-turquoise menu?
Go for it!
Draw Modes are different mediods of rendering text or image data on die screen. The possible values are 0, 1, 2, 3 and combinations (sums) of these values. The modes these values represent are called JAM1, JAM2, COMPLEMENT and IN- VERSVID respectively. Again, space does not permit a complete explanation of these modes here. JAMI works well with menus but feel free to experiment.
The “taPtr&” means “text attribute pointer’’ and is used to incorporate different text styles into the Menu. You're on your own on this one, Try the ROM Kernel Reference Manual and or the Amiga Programmer’s Handbook. A pot of coffee may help.
In the mean time you can just keep this parameter set at “0” for good ol’ topaz.
TO ORDER CALL 1 000-620-2828 ERT 029 HIE HCOEPT VISA, HASTES CARD AMD AMERICAN EXPRESS ( OflLV $ 4335 ) OR SERD CHECH OR ImfflEV ORDER TO: RMRS09S EDCE FRDOOCTIORS ttW Also avaUbla 30 MAPS, 30 FONTS, 30 LTTTLfTES C$ 29.95) A pccdhc? NofM Tr Jefttrkt of thair rMfoctiu* comparies.
As stated earlier, the MENUNUM, ITEMNUM and SUBNUM subs are there to extract die appopriate values corresponding to the Menu, Item and Subitem so your program knows where to jump after a selection has been made by die user. This is done by performing die necessary bit manipulation of die MenuNumber value and assigning the result to die variables MenuPick, ItemPick and SubPick. Note that a null Subitem selection will equal 31 (all 5 Subitem bits set to one), so a trap is included in the code to provide an avenue of execution for this possibility.
This information is by no means all there is to know about menus, structures or Intuition. It’s meant to be an introduction to diese subjects only and a spark for furdier study.
For those AmigaBASIC programmers interested in expanding their grasp of die operating system, Intuition is a good place to start. Its objects are familiar and its routines are relatively easy to learn.
The “missing link” for many is the structure. Learn it well and you will dispel much of the Amiga system’s mystery.
(continued) Listing One '*** SubUeru Der.o ""' ’*** source c: 3e *'* ’*¦' by '¦•* Robert D’Asac *'' declare eunitic:: AiiccMe-.fi o library
iicl. ape function itemAaaretss O lisra:- y LIBRARY ''exec
.library" LIBRAS: "intuition.library" SCREEN 1,SAC,2C3,2,2
WINDOW 2,"SubMer.u Demo",,1,i ON BREAK GCSU3 Sndlt BREAK OK
PRINT "Select a Menu item" :RINT "To quit cress CTRL-C"
PRINT MENU 1,0,1, " Menu 0 " MENU 1,1,1, " Item 0 “ MENU
1,2,1, Item 1 " MENU 1,3,1, " Item 2 w MENU 1, ,2, %v Item
3 w MENU 1,5,1, Item 4 " MENU 1, 5,1, * Item 5 “ SUBMENU
."cublter SUBMENU I,"subitem i” SUBMENU 2,"subitem i”
SubManuSet ',0 S'JK-SX'J 0,"subitem 0" SUBMENU 1,
"sufclteir. 1" SUBMENU 2,"subCte:r. 2" SubMenuSet 0,2
SUBMENU 1,"subitem 0" SUBMENU I,"subIce- I" SUBMENU
2,"subitem 2" SUBMENU 3, "subitem 3" A U.U-iC.irL -I , 5
MENU 2, 0,1, Menu 1 " MENU 2, 1 i Item 0 " MENU 2, 2,1,
Item 1 " MENU 2, 3,1, " Item 2 " MENU 2, 4,1, Item 3 MENU
2, 5,1, Item 4 " , C, "subl tern 0" SUBMENU 1,"subitem 1"
3uB:-2MU 2, "suclttn. 2" SubUenuSet 0,1 SUBMENU "SUClCCT 0"
SUBMENU I,"ruble-” 1" SUBMENU 2,"subitem 2" SUBMENU
3,"subitem I" SubKcP.uSet l,i menu “ MENU 4,1,1, " ON MEN 1
Ica . Z Xeniaa rc MENU IN lacp:3C"C Ircp Mer.uSort:
MessageKey: =?se?:l tv; uui. A') ¦ ¦; ] Mt'.c.UIir.birl A
111. 'r'," Nias ST .'-iKeyr ¦ .11 !
MENUNUM Mer.uNumber ITEM.UM Mer.uNurber% SUBKUM Mer.uNur.ber4 PRINT “You picked Mt-r.u: ";Mer.uPick PRINT It er. : "; P t e :r.F : c k IE SubEick THEN PRINT " Subitem:“;SubE1ck EP IE PRINT " Sub I tern: tone" ENT IE RETURN SUE SUBMENU (SublterNinOe, subli: le; ¦ STATIC IE SabPtar.Nur.: 3 CP. SubIcer.Nubi% ¦¦ 0 '.‘HEN EMIT SUB IE Sub: t:um% = C THEN DIM SHAREI Addr A.rrayi ( S I r uriMM AddrAmyi (Subl teir.Uum%) =AllocKemS j 32 , opt 5) MIS -.Add r At re y I [ Sub 1 terNum . J POKEW Mpi-1,68 'left Edge FCKEW MIS-6, SublrerNu-TM *10 'Top Edge POKE'S MIS-o, LEN(SubTitleS) *5 'Nidt.'l PCKEV;
HIE»iG,3 'Haight PCKEW MIS»12,SH2t«H1C+«H40 'EA-.gs CreatelncuiText subTitleS,TTaddrE ECKEL Mii+18,ITaddrS ENT SUB SUB SubMenuSet jKEHBKUK*,I7EKKUH*| STATIC HenuNumber -aHES 00+- (32-ITEMNUM41 imekuh JM3 ms4=PSEK;. (WINDOW(7) M, IA6=ItemAddressS msU, Mer.uNurber%) POKEL IA4+23,Addr.ArrayS(01 t= 0 while AddrArrayfi imol an: ••• POKEi AddrArrayS (r.l , AddrArrayi (r, *1)
r. :. - 0 ERASE AddbArrayi INI SUB SUB Create:rtuiText
(TextS,ITTAi) STATIC Text$ * Texc$ -CHK$ (Cl Sitei=LEN[TextS)o
opt ¦: =2' 0 -2AI6 PTE =A.llc r Me in a ; 2 -i, a p c 1
Te.xtAddrfi=AllocMem£ ,Snre£ , opts s CALL CcpyUeir.S (SAIT
(TextS) , TexcA cr.ri , Si rei 1 POKE ICS, I Tier.; ret POKE
ITS-l,1 'Beck Per POKE 175-2,0 'Draw node PCKEW m-4,0 'Left
POKEW IT5+6,0 'top POKEL 115-3,0 'tiPtrS POKEL IT £+ 12, Text
SHARED MeruPicx Metu?iok=ni AN: SH1F ENI SUB SUB ITEMNUM |nt)
STATIC ShiiRED I tar Pick ItemPick=INT(n% 32 ) AMD SH3F END
SUB SUB SUBNUM (r.sl STATIC SHAPED SubPi :k s Lb pick.-: nt
(r.% 2 C 4 3) a: :: : f in: sub Er.dPt: ClesbMebuStripi KIN:
• AC- Compiler Companion A review of Lattice's by Gerald Hall
Like many registered owners of Lattice's Amiga C Compiler, i
recently received a notice in the mail concerning their “new"
COMPILER COMPANION product. It features “10 important time-
saving file-management tools designed for Amiga programmers".
Many of these tools are indeed quite useful. However, similar
programs also exist in the public domain. So the question is,
are Lattice's versions worth the price?
Lattice Compiler Companion Prog ra m Ala nagement with LMK I currently have a program under development whose source is distributed among seven C, four header, and four more assembler files. More than once I have wasted an entire day trying to find an apparent "bug" that actually was die result of accidentally linking in the wrong version of one of these files.
LMK is designed precisely to help programmers avoid this kind of costly niixup. The key to its function is the datestamp on die various starting (source), intermediate (object), and final (executable) files that together represent a program as 2 whole.
Enclosed in parentheses Lo alert LMK that it is a macro. The next line lias die executable file name, followed by a colon and its immediate antecedents in the development process.
The colon indicates diat die target prog has cpartl.o, cpart2,o, and asmpart.o as dependencies.
Consequently, if any of them have a newer datestamp than prog, LMK will perform the action specified. In this case, diat action is an invocation of die blink linker, which gels passed along to die AmigaDOS operating system.
Note the use of die backslash to indicate that the invocation is continued on line 4. The next line “.c.o;" illustrates a second use of the colon; tliis is called a “transformation rule." It says, that whenever LMK encounters a target which differs from its first listed dependency only in having a For each such program you (perhaps with a team of others) are working on, you prepare a command file which lists, for each file, the antecedents required to generate it. In addition, you specify die “actions” that need to be taken compiladon, assembly, linking, etc. to generate each such
“target" from those '‘dependencies."
So when you feed diat command file, typically called “makefile" or “lmklile" in the Lattice environment, to die LMK program, it checks to see if any of the direct or indirect dependencies of a program have a younger (or later) time and date. If so, it takes the indicated actions, thereby ensuring that those revised files are re-integrated into their intermediate and final targets.
For example, suppose you have a program, prog, whose source code is divided into three components cpartl.c, cpart2.c and asmpait.asm plus two header files, cpart.h and asmpart.i. Your makefile might look something like die following: LCFLAGS -s-r-ilNCLIJDE: prog: cpartl.o cpart2.oa$ mpart.o blink FROM LIB.c.o+cpartl,o+cpart2.CH-o$ mpart.o TO prog LIBRARY UB:lc.lib+UB:amigalib .c.o: lc S(LCFLAGs) S’ cpartl.o: cpartl.c cpart.h cpart2.o: cpart2.c cpart.h csmpart.o: asmpart.asm asmpart.i assem asmpart.asm -i include.i The first line illustrates the “macro" capability of LMK: “LCFLAGS"
acquires die value of the string following die equal sign. It is used later on in line 6, preceded by a dollar sign “S" and (continued) ,o instead of a .c suffix, it should take the action indicated in line 6: Ic SCLCFLAGs) S* This, of course, is a call to the C compiler, which indeed (in common usage) transforms ,c files into .o files.
We see here another use of the dollar sign, this time coupled with an asterisk: $ *. This combination is a special symbol which LMK interprets to mean tire target file name, stripped of any path specifications and of its suffix.
Consequently, as LMK reads tire dependency statements Ln lines 7 and 8, it knows it should perform the action specified by that transformation rule, if die file dates so require.
So, for example, if you (or one of your colleagues) have made changes in cpartl.c and asmpart.h since the last time prog was compiled, this makefile would result in asmpart.asm being reassembled and cpartl.c being recompiled. Finally, prog would be relinked from the new cpartl.o and asmpart.o object files, plus the old cpart2.o file (there being no need to recompile cpart2.c). LMK has many more features, options, and capabilities. For example, if you invoke it with the “-t" option, instead of performing any actions, it will simply replace the datestamp of all files mentioned with tire current
time and date. You can do the same thing for individual files with the TOUCH program: By “touching" them, it brings diem up to date.
Widiout going into all those features, you should by now have a good idea how the LMK can help to automate the program development process in an efficient and practical manner. Note that LMK will work just as well with Modula-2, Pascal or other high- level languages. Indeed, all of the COMPILER COMPANION programs, with tire exception of CXREF, are general- purpose programming tools.
BUILD and EXTRACT EXTRACT and BUILD are basically support tools for generating various kinds of command files quickly.
Suppose you have a directory containing the files that are needed for a program.
Let’s simplify' our earlier example, and suppose that the source for prog is contained hr just two C language files, cpartl.c and cpart2.c. In such a case, you may not feel that you need the full apparatus of LMK, but stiil you would like to generate an “executable” command file to direct tire compilation process. First, you put tire source components in their own directory, let's say, called “prog," EXTRACT now can be used to put the names of the files in that directory, each on a separate line, into a text file named “progtemp": EXTRACT prog:emp -r prog ?
The “-r" option indicates drat padi designators and suffixes should be stripped, and the use of tire standard AmigaDOS wildcard, ?. Indicates all the files in die prog directory should be included. Consequendy, the contents of progtemp will be cpartl cpart2 The point of this becomes more obvious when we look at the functionality of BUILD. This latter tool typically takes input from two sources: A text file containing a list of file names (like that produced by EXTRACT , and the keyboard. Three special characters are distinguished in die keyboard input: The exclamation point, forward slash,
and ciri backslash.
Every line of keyboard input provided to BUILD represents a template drat is repeated for each file name in the text file specified. In that template, “I” will be replaced by the file names, and 7 " represents the newline character. (To get an ordinary forward slash, you need to repeat it twice: “ ,") Finally, keyboard input is terminated with ctrl backslash. Suppose drat, in our example, we would like to run each source component of prog through the stages of compilation separately.
First, we would invoke BUILD: BUILD makeprog progtemp The program is now awaiting keyboard input. So we give it Ic I -b -1INCLLDE: -o!,q ! Ic2 -r -v !
ctrl As a result, the newly created file makeprog will contain icl -b-iiNCLLDE:-ocpartl.q cpartl Ic2 -r -v cpart l Icl -b -ilNCLLDE: -ocpart2 q cpart2 ic2 -f -v cpar2 Although it may seem a bit of a bother to learn to use BUILD and EXTRACT, they clearly will save time once mastered. Tnere are many occasions when programmers need relatively repetitious command files, and these tools significandv simplify die process of creating them.
Regular Expression Parsing Regular expressions are one of the “neat diings” you learn about in computer science. They consist of those strings that can be defined in terms of literal characters plus the operations of concatenation anc. Disjunction. The name of die GREF program, according to Lattice, stands for “Global Regular Expression Search and Print." I prefer to interpret it as “General Regular Expression Parser."
Regardless, die program represents a powerful tool for searching text files for specific kinds of character strings. If you are like me, you capture and save your sessions on networks like PeopleLink and BIX, Suppose, for some reason, you want to search a for all references to specific Amiga mode!
Numbers. If you use the AmigaDOS “search” function, you would have to issue at least throe separate commands: seared capture “amiga 500" searcT. Capture "arnica 1000" search capture "arnica 2000“ However, even this wouldn’t necessarily find all the references you are looking for. Since sometimes diere might be two spaces, or none instead of one, between the name and model number.
GREP provides a much more powerful tool for such searches. You would only need to command GREP -[Aa)miga ‘(512J00+' capture ?
The search pattern is specified by die characters inside die double quotes (they wouldn't be needed if there were no spaces). Since the Lattice GREP, unlike “search,'' is case sensitive, we use brackets Lo indicate that the first letter can be both lower and upper case: [Aa].
This is how GREP accommodates disjunction: It looks for strings in which one, but only one, character matches what’s inside the brackets.
Following die space after die computer name is another special symbol, the asterisk. This tells the program to look for zero or more instances of the preceding character (in this case, a space). Next see have sequence of numbers in brackets, since we are looking for either a 500, 1000, or
2000. If we wished, we could instead specify “[1-9],” where the
dash allows us to represent the range of numbers between 1
and 9, thus broadening the search to include Amiga models
as yet unborn and unnamed.
Our search pattern ends with two zeros followed by a plus sign. The latter is another special GREP symbol, telling it to look for one or more instances of die preceding character. There are many more such special characters. You can require, for instance, diat the string occur at the beginning of a line C'A”), or at die end (“$ ”), and so forth. Here again there is a significant learning curve to overcome, but die reward is a powerful tool that will repay diat effort many times over.
FILES and SPLAT Indeed, dicse GREP-type search patterns are used by two other programs on the COMPILER COMPANION disk: FILES and SPLAT. The first is similar to AmigaDOS “list,” but widi additional functionality for copying and deleting files. It can use GREP patterns as well as AmigaDOS wildcards in determining which files to look for: FILES -pet cpart(0-9]+ .c cfiles The backslash is used to indicate diat the following character, a period, is to be taken literally. Odierwise, a period is interpreted as meaning any character whatever (printable or not).
The potential utility of the FILES command lies in its ability to search for File names recursively. That is, like “dir opt a", it will also look in subdirectories, subsubdirectories, and so forth. I qualify this with "potential'’, because, unfortunately, there are serious problems widi FILES. ' LET YOUR WORK LOOK ITS BEST!
AMIGA _ , |si»c .ii.i.| TpiU- iSTlRGE i 1 0 I For one thing, the program contains a bug. Widi the COMPILER COMPANION disk in dfl:, for example, the following command dfl TILES -name w ? Dfl: turns up nodiing, even though die disk contains files named “wc” and “wc.c.” When it does work, die program is very, very slow: it took 23 seconds to search a disk containing 32 files and only one subdirectory. Searching an entire hard disk will put it to sleep for a long time.
Another tool diat uses GREP-type patterns is a little utility called SPLAT. It will perform search and replace operations on a text file or group of text files, without the need of first loading them into an editor (as you need to do widi AmigaDOS “ed”). Lattice's documentation offers an example where you want to put a “-cc" on the end of every line that contains die expression “lcl" in the command file comp.bat: SPLAT -dbak ‘lcl,‘S' '& -cc” comp.bat The “-d" option specifies a directory' for the transformed version of comp.bat. SPLAT will not overwrite a file unless you explicitly tell it
to. The after “lcl" in die search string is an instruction to include everything that follows, up to die end of the line.
Finally, the ampersand (“it”) in the replacement string tells SPLAT to insert a copy of die search string. It’s easy to imagine circumstances in which this program could be a helpful timesaver.
What's the DIFF D1FE is a program that compares two text files and prints out their differences. It’s very' useful to a writer or (continued) Professional 35mm 5liriES S Now you can have reproduction and presentation quality slides of your work S Distortion free TiMi in raster lines crisp bright colors, converts all IFF flies ® Photographic prints in various formats also 3v.iil.ihtc Call (212) 777-7GQ0 FOR DETAILS Ask lor litre -or write TRU-IMAGE
P. O Bo* 660. Cooper Station Hew Yvik, ti.V. Wtlh programmer who
wants to see die changes made in different versions of the
same text. It has cropped up in a number of different
computing environments: DEC RT-11, VAX VMS, CP M, Unix, and
now of course die Amiga.
I first encountered it a long time ago in the Digital environment, and wasted a workday trying to figure out the algorithm. I later learned that there are many such algorithms, but when I got my Amiga, I decided it would be interesting and instructive to implement the one 1 had come up with.
Later 1 learned that Lattice had already released a DIFF, as well as various other folks in the public domain.
My algorithm simply prints out the sections in which the compared texts differ. Lattice’s prints out the changes you would need to make, one die same as die other, which means that the results will differ depending on the order in which 'ou list the files being compared.
That is, DIFF -p newfiie oiafiie will generate the changes, insertions, and deletions necessary to make oldfile the same as newfiie. And unlike my simple program, Lattice's DIFF recognizes of number of useful options. For example, the -p” above screens out non-printable characters. You can filter out tabs and spaces (whitespace) as well, display tire lines in common instead of those different, or restrict due range within the litres in which the comparison is performed.
Wcand CXREF Two final tools complete Lattice's COMPILER COMPANION. The first is a C code cross-reference generator name CXREF. As I mentioned earlier, this is the only tool in die package that is specific to die C language; all the others are equally suited to any high-level language, as well as other text processing tasks.
The basic output of CXREF, is a line-numbered listing plus a series of alphabetically ordered tables of preprocessor identifiers, functions, labels, structure identifiers, and (ordinary) identifiers, plus all the line numbers where they appear. You can run the program on a single file or on a whole directory full, with the appropriate use of AmigaDOS wildcards. For example, CXREF vdO:orbi,lst ;l4 orbi ?,C -ilNCLUDE: -X will produce a file named vdOiorbi.lst containing cross-reference tables for all die .c files in directory :14 orbi.
Once again, a number of different options allow the user to fmetune the results. For example, you can include the -include files in the processing O'-i” in tire above example), generate listing or cross-reference table separately (“-x”), and control die format of die output.
Table One LATTICE PUB. DOMAIN DISK AUTHOR SOURCE INCL'D CXREF XREF Amicus 3 Philip T. Anstech Yes WC WC Fred Fish 69 Steve Summit Yes GREP GREP Amicus 1 DEC US Yes LMK MAKE Fred Fish 45 Hewlett-Packard Yes MAKE Fred Fish 69 Steve Walton Yes DIFF DIFS3ED AM 11. FF 51 Chuck Forsburg No DIFF Fred Fish 87 ErikBaaibergen Yes Fred Fish 107
D. Krantz Yes DIFF Fred Fish 142 !Johan Widen i Yes DIFF
PeopleLink Geraid Hull No One thing that CXREF does not do,
unfortunately, is indicate which occurrences of an identifier
represent initial definitions, or assignments where its value
can change. That sort of information can be very useful in
U’aeking down bugs.
The final tool in the Lattice package is a modest little program entitled WC that will calculate the number of characters, lines and words in a text file. When I run it on the file containing this text, for instance: WC latcc.txt it prints out at the screen Characters: 23134 Woras: 3584 Lines. 475 Such information can be very useful. For instance if 1 am getting paid by die word, 1 can infer how much padding will be required to take care of my rent.
Critical Remarks As you can see, Lattice's COMPILER COMPANION is a nice package of software development tools, which perform some very useful functions. But there are some flies in the ointment. The documentation is pretty' bad, even by computer culture standards.
Worse yet, in mar v places, it is inconsistent, vague, or incomplete.
The description of the “-b" option I’or EXTRACT first says “any filename extension (suffix) is ignored,” but five pages later says "the file extension is to be included,” The documentation of LMK seems Ilke it was written for people who already know how it works, by someone who doesn’t. A clear statement of LMK’s datestarrp dependent behavior does not appear until the appendix.
We never get a satisfactory' discussion of the special characters SPLAT recognizes. Tabs, newlines, and ampersands are introduced in a backhand manner; in the case of the ampersand, one is referred back to a GREP discussion that doesn't exist. One wonders what else has been left out.
The user interface of the different components of the COMPILER COMPANION is less unifonn than it could be. The options for the different tools are needlessly varied, making their fussy details harder to remember.
Sometimes you need to redirect the screen output to get an output file (EXTRACT) and sometimes you need an “-o’ option (DIFF). Sometimes you cannot redirect output even though you try (WC).
With GREP you need to specify V” to get die vers.on number; all the odier programs provide it automatically when you call them without arguments.
And in general, the version numbers are odd. Programs that appeared oil the TEXT MANAGEMENT UTILITIES disk as Version 1.01 Copyright 1984 show up on the COMPILER COMPANION disk as Version
1. 00, Copyright 1988.
Does the bug in the CC version of FILES reflect the fact that it is more primitive than the bugfree
1. 01 TMU version? Since the COMPILER COMPANION disk as a whole
FnatU-in c i4C. R. rn- • Fgy 1010 Compatible ¦ Dasy ChairaDle
• Udid I U Single 3,5 External Drive .v I , ynra
c0npac; ¦ Extra long Catre rnotM OH t OQO QC • Acoustically
Quiet ¦ High Performance rUdld'AU Dual 3.5" External Drive
w Power Supply ¦ A~-gal Color Coordinated • Super Low Price
fixi .e Da ?
LEXIBLE ATA Systems, inc. 10503 FOREST LANE * FAX: £14 669-0021 SUITE 143 ¦ DALLAS, TX 75243 POLICY: Shipping and handling exlta. Personal and company chocks require 3 weeks la clear. Forfaslor delivory, use your credit card or send cashier s check or Dank money order. Credit cards are nor charged until wo ship. All prices are U.S.A. prices and are subject to change, and at! Items are subject to availability. These prices rellect a 5% cash discount For all crodrt card purchases Ihore will be an acaiiional 5% charge. Defective software will be replaced wnh the same item only. All sales are
final and returned shipments are subject to a restocking fee 214-669-3999 Amiga* is a registered trademark of Commodore-Amga. Inc. Version 1.00. someone apparently decided all the programs should get the same number also. But can only confuse things to give presumably later versions of programs earlier numbers.
The Bottom Line Still, those aren't hanging offenses, even though frustration with bad documentation may sometimes make you think otherwise, The tools on tire COMPILER COMPANION disk can be very' helpful if you take the time to master their intricacies. In particular, LMK and CREP are utilities I confess I had not previously taken the trouble to learn. They are well worth the effort.
The issue on tire bottom line is whether Lire COMPILER COMPANION is worth the $ 100 list or approximately $ 75 discount price. In terms of previous Lattice practice, the evidence is ambiguous. On the other hand, tire disk appears to be tire combination of two previous Lattice disks, TMU and LMK, which sold for $ 75 and $ 125 respectively.
This implies a savings of 50%, whiclr isn't bad at all. On the other hand, I received lire TEXT MANAGEMENT UTILITIES disk free with my upgrade to Lattice Amiga C Version 3-10.
This question is especially relevant because many of the programs on Lattice’s CC have public domain equivalents. There are fine PD versions of LMK (usually called "MAKE”), D1FF, CXREF, WC, and GREP; see Table One.
In general. Lattice’s versions are somewhat more functional, for example, tire indirect file capability of LMK. But tills is not always the case.
The public domain DIF-SSED package, for example, can build a new file from tire old, plus the list of differences generated, which helps to minimize phone bills. So if you feel you can do without BUILD, EXTRACT, a buggy FILES, and SPLAT, you probably' can save yourself $ 70 to $ 100. (TOUCH exists as an option in the PD MAKE, as in LMK.)
On tire other hand, Lattice is a reputable, well-established source of dependable Amiga software. They provide excellent support: A BBS, technical and customer service hotlines, and a conference on tire BIX network.
(You want to belong to BIX anyway for Amiga technical support, and Lattice helps out by including an $ 11.00 discount certificate.) If a public domain program messes up or acts funny, on the contrary, you usually have nobody to complain to but yourself.
Furthermore, Lattice gives y'ou some other extras. You get “an unconditional 30-day, money-back guarantee” and of course are registered for update information. So far as software is concerned, tire source code for WC is provided, plus useful code examples for using a library of GREP functions that is also provided. Then again, as you can see from Table One, almost all of the public domain equivalents come with complete source.
1 would say that if you can afford the support, reliability, and extra functionality that Lattice provides, COMPILER COMPANION is worth the price. Otherwise, if your software shop is more economically oriented, you probably will be more than satisfied with programs in Amiga's rich and diverse pool of public domain software.
Disk Information Version 1.00 of Lattice’s COMPILER COMPANION comes on a single, unprotected disk, accompanied by a 154-page manual. It retails for $ 100, and is available Irom Lattice, Incorporated, 2500 S. Highland Avenue, Lombard, Illinois 60148; telephone 312- 916-1600.
• AC* On the Crafting of Programs C Format by DavidJ. Hankins
Once again, welcome back. In this month’s column. I’ll take up
the controversial topic of C format. Nothing, it seems, can
stir up as much heated debate among C programmers than to
suggest that they change tire way the.r programs are format
ted. So, when the fur begins to fly I wish to be prepared.
Doit Full Battle Gear Let’s see - got my plate armor, got my shield, got my visored helm, got my gauntlets, even got my trusty longsword (1 call him Stonrtbringer). Yeah, I think I’m ready to take on this month's topic. So without further digression, let’s plunge ahead!
Aloof One of tilings I like best about C is its syntax. 1 mean, what other language offers you the ability to write perfectly functioning, yet completely unintelligible (at least to those who don’t yet know C) programs. In C you can let fly with cryptic symbols such as +, or ++, or .
* =, or ==, !, or 1 I, & or && leaving those who don’t know C
scratching their heads in wonderment. And what about brackets?
What other language offers you the choice of (, [, and [? Isn’t
this great! Knowing C we can write such nasty expressions as
for( x = I, y = (int) foo( z.at 3 1) ; x y : x+r ) and leave
our poor Basic friends in the dust. Kind of makes you feel
smug, doesn't it?
Obfuscation In all seriousness, however, the purpose of good format is to promote the ready comprehension of programs.
Partially because of C’s reliance on punctuation symbols, programs written in C can often be hard to understand. Good format can help remedy this.
As an aside, there is a yearly contest to see who can write the most unintelligible C program. Last year’s winner of the 1987 International Obfuscated C Code Contest was Paul Heckbert. His entry is as follows: ?include ctype,h ?include stdio.h ?define _ define f_ A putchar _ B return l_ C index char'r, c [30001J, ',d=w = =! »=¦ I I &&- ++- »«", +i, -l, * j, "nij »k, *n, "h, "y;efU“ 1, v,w, f*l, p, sf x;r.3in (a,b) char**b; p=a l?atoi (b[l]) :79;r=c+read(0, j=l=i=c, 30000) ;v=g j, for (H- m;v! =2; j=k, ir.=n, v- t, k=a) w=g (k, &n); if (v==ls&n- j=*=35) ei&A(lD) , e-f-0; if(if4fii
v==3fi &(char*)C(j 10) m)A(10),e=Q,f=l;else if(v 266 u j Iw)&& £![u && (1 i 11 I *i!= 611|n-k iI|1C("-*&",*k)3)continue;else if(v==3)if(fi&e+l+n- k p4Se)A 10) ,e*=0;else A(32),e++;else(if f££e+n- j p&&e) A 10), e=Q;e+=m~ j;k=j;while(k n) AI "k++3 ; U»j;l=m;u=v; }e&&A lO); )g (j ,r) char* j, "*m; if (j =r) B*m=» j, 2;s**isdigit *j) I I "j==46&fiisdigit(j[1]);for(h=j;h r;h++)if I!isalnuml*h)&s*h!=95&& Is[I*h!=46) !
Si lh(-l] !=l0l4fih[-l] 1=651 I ICT+- ”, *h)) ) break; if (h j) B*jn=h, Q;x=l;for(h=j? H r&£C( l' *h) ;h++); if (h j) h- f x=3;if " j==*34| I * j~39) for h“j + l;h rfifi*h!-* j;h++)if
* h=s=92)h++: for (y=d;*y&&stjrncmp ly, j, 2) ;y+=2) ; if I*y) h=
j + 1; if (! Strncmp (" j,2
h=j+2;while(*++hl=42I]*++hl=47);x-4;}*R=h+l;B x;} A Survey of
Formats Well, I don’t think diat any of us crank-out
monstrosities like the one shown above, but, nevertheless, we
may be writing our C programs in less than optimal format.
So what constitutes good format? And who can we look to for guidance on this matter? Since most people who know C possess the book “The C Programming Language” (frequently referred to as K & R) by Brian Kemighan and Dennis Ritchie perhaps diis is as good a place as any to start. Using the format show in K & R, we would write the function tabO as follows: * Format shown In K & R * tab(s.i) charsO; int i; ( int!; I = strlen(s); if(i + l 12C) errorO; while (I i)[ s(l++) = ' ) SCO = ACT; 1 This function appends space characters to the end of character string s until it reaches length i.
Braces - you know what braces are don’t you?; they're die little curly guys “(“ and “)”
- have purposely been used in the while construct to show the K &
R brace format.
(continued) Another logical place to look for format guidance would be the C compiler manuals supplied by Lattice and Manx.
Judging by die examples Lattice supplies, I would guess diat die Lattice format for die tabO function would appear as follows: I' Format shown In Lattice C Programed Reference Manual 7 tab(s.i) char s0; int i: !
Int I; I = strten(s); if(i +1 120) errorO; while (I i) i s[l++) = ‘ 1 SCI) = A0'; ) Note that Lattice moved the errorO function call onto the same line as the if statement, and that braces for the while loop were placed on separate lines and were indented one tab set.
Now for Manx: f Format shown in Manx C source code (supplied with commercial package) 7 tab(s, i) charsQ; Int 1; 1 int I; I = strien(s); if(i + l 120) errorO ; while (I i) 1 S0++) = "; ) SCI) = A0'; ) Notice Manx separates function arguments with an extra space (i.e. tab(s, i.) versus tab(s.i) ), the errorO function call is on its own separate line, and braces used in the while construct do not appear on separate lines; instead, the opening brace is on the same line as die while statement and is preceded by a space, while die closing brace appears on its own line and is indented to die
same level as the while statement.
Here's die format I've come to use. By the way, if you violendy disagree with this format, remember - I'm wearing plate armor and have in my hands the sword of doom, Stormbringer (I knew this battle gear would come in handy!).
!' Format based loosely on "Amended Proposal for C Code Layout"' tabC s, i) charsU: int i; int I ; [ = strien s); if i + I 120) error(); while (1 i) ( st I++ ] = 1 ’ ; } St 1) = AO1; } This format is a little more liberal with whitespace than some of the previous ones. Each semicolon is preceded by a space as are function arguments and binary' operators. Like the Lattice format each brace is placed on a separate line, but unlike Lattice, braces are indented to the same level as tire construct to which they belong. Like Manx, the errorO function call was placed on its own line.
For those who are interested, the above format is loosely based on the “Amended Proposal for C Code Layout’’ which can be found in Dr. Dobb s Toolbook of C pp 44-47.
A Matter of Taste Like many C programmers, I started out using the K & R format since this was the first text I had to draw upon for examples, And the K & R format is a good format - the code is reasonably easy to follow and whitespace is used to aid comprehension. But, if this format is so good, why did I change?
Well, the reason 1 eventually changed was that K & R seems a bit too skimpy with whitespace. I like to use lots of space - ic seems to help me comprehend a program more readily (and as my friends wail tell you. I need all die help i can get!). Also, I like to think of braces as marking off blocks of code. By placing braces on their own separate lines, die block nature of the code is emphasized. Besides, how many times have you left out a “]” in a program? It’s not much fun staring at code for hours on end trying to pair each “!“ widi its corresponding “1”. Believe me, placing each brace on a
separate line makes finding die missing “1” a heck of a lot easier.
What it really boils down to. However, is personal taste.
If you haven’t decided on a 0 format you’d like to use. Review- each of the formats shown above. Which format was easiest for you to understand? Perhaps you like some of the “features” of one format and some in another, In this case, create your own format. However, whatever you decide to do, you should bear two diings in mind:
- if you insist on even bringing up this subject you may wish to
invest in some medieval armament - works wonders at winning
So What's the Point?
So what's the point? Well, I guess the point of all diis discussion is good format is critical to the understanding, and therefore to the debugging of code. I seem to recall reading somewhere that in die life of a program, 10% of the time is spent on initial program development, and 90% of the time on debugging and later modification. Given these figures, good format is not only critical, it is essential.
Next Month In next month's column, I hope to discuss the new ANSI C “standard”. Since Lattice already supports ANSI C, and Manx will support it with the 4.0 release of their compiler, it might be interesting to see what impact this might have on our C programming.
So until then, ma[n() printfCGoodbyeworld! n',);j er, that is main() I printff “Goodbye wor!d! n") ; Sieves ted Reading If you’d like to explore this topic further, the following references may prove helpful: Kernighan, Brian W. and Ritchie, Dennis M., The Cprogramming Language. Prentice-HaU, Inc.. 1978.
The Editors of Dr. Dobb’s Journal, Dr. Dobb’s Toolbook of C. Brady, 1986.
About the Author Having recently made the profound discovery that a block of data is 512 bytes long, and that compilers and linkers are beasts of an entirely different kind, Mr. Hankins is well on the way to complete enlightenment (yeah right). At times Mr. Hankins can be found on BIX [dhankins], CompuServe [76515.1650]. or PeopleLink [OCS378I.
1. Be consistent - don’t mix formats within programs or you, •AC*
and everyone else who has to look at your code, will no doubt
end up helplessly lost.
2. Never try to force your chosen format upon others. C
programmers are a proud lot and most are likely to defend
their own format with something akin to religious fervor (by
the way SYNC TIPS by Oran Sands Welcome to Sync Tips, a
monthly column that will serve up tasty morsels of byte-size
information about video, graphics, the Amiga and how they work
together. Every month, we'll cover a separate topic and try to
explain some of the peculiarities of the video world. Please
feel free to send in any questions, comments or answers you
may have. If I don’t know the answer, you can believe I’ll
find it!
Chroma Crawl This month’s topic is dot crawl (sometimes called “chroma crawl”). Dot crawl is one of die most annoying problems you’ll see when using Amiga graphics with composite video devices. If you've ever looked at the vertical edge of a graphic, you’ll see what I mean. The edge literally seems to be made of dots that are crawling upwards. It is most noticeable on die edges of saturated color graphics and is almost undetectible on graphics that are shades of gray. Hence, the term “chroma" crawl.
What is it and what causes it? Contrary to popular opinion, it’s not due to any insufficiency on die part of die Amiga. It’s a problem that's inherent in all NTSC composite video signals. Don't believe me? Watch HBO, Showtime or MTV and look at their graphics closely. You'll see every bit as much dot crawl. I recently used a broadcast color encoder worth $ 4000 to make a composite signal from my Amiga. The signal looked great but Uiere was just as much dot crawl as die Amiga 1000’s signal.
If we look at what causes dot crawl then we can better understand how to avoid it. In die standard NTSC video signal the chroma (color) portions of your signal are carefully intermixed widi die luminance (brightness) information. Normally diere would be no interference between die two but in real life, certain conditions can be created whereupon the luminance information can interfere with the chroma and cause die dot crawl effect. The actual physics of this are beyond the scope of this column but the conditions that cause it aren’t.
Whenever the luminance level of a graphic changes suddenly, say from a value of 0 to 9, dien spurious signals are generated diat cause die dot crawl to become evident. Don't forget that although the graphic may be blue or red it still has a brightness value associated with it. It is this sudden change from one level to another that is the cause of our problems.
Xs it avoidable?
So how do we avoid dot crawl? Simply eliminate those abrupt changes in brightness. If you have a graphic with a vertical or slanted edge then find some way of gradually making the transition.
1. Using the BLEND or SMOOTH feature in most paint programs is an
excellent way of doing this. You’ll be anti-aliasing the edges
as well as smoodring out the brightness transition.
2. Simply place a one pixel-thick line of a dimmer color (but the
same shade) alongside the edge of the graphic. Then place
anodrer such line next to that one, diis one a little dimmer
yet. This also gives your graphics a very pleasing look.
3. Don’t make your graphics all one color. Texture the graphics
wadi other shades and colors. This can reduce, but may not
eliminate, the dot crawl.
4. Since the problem is luminance transitions goofing up the
color, then we can also control dot crawl by controlling our
color. The problem of dot crawl is most pronounced when our
graphics consist of very saturated colors like strong reds,
blues, etc. In most paint programs you have control of your
palette by two mediods, R,G,B values or Hue, Saturation and
Intensity values. By using the HSI controls you can stud '
your colors and reduce the saturation levels.
Normal television practice has never used a saturation level greater than 75% ( a value of 12 to 13 on a scale of 0 to 15). This gives the dot crawl pattern less chroma to interfere widr. Try to think pastels.
5. Reduce your colors to shades of gray. If reduced color is
best, then no color is even better. Dot crawl simply doesn't
show' up in true shades of gray. Of course if this was all you
needed you could have bought a Macintosh!
Although dot crawl is inherent in die NTSC video signal, there is really no reason you should have to watch it. A good television monitor or receiver with a comb filter can remove almost all of die dot crawl intereference. Unfortunately, these sets are often more expensive and won’t be found in die average home.
And remember, if you're designing your graphics for use on TV, dien most of your viewers won’t be watching on expensive TV’s.
There are a number of such problems that are inherent Ln NTSC video signals. Dot crawl is one of the most annoying to users of computer graphics but there are others we need to watch out for. In the followring months we'll cover a few of diem. But first we'll talk about interlace, genlocks and other video Amiga concerns. See you next mondi!
If you would like to contact the audior please do so via this magazine or on PeopleLmk's Amiga Zone (ID- ojsands).
¦AC* C Notes by Stephen Kemp Plink ID: SKEMP Structures are one of the many useful and powerful features of the C programming language. Some people try to avoid using structures, but I think this may be due to lack of understanding on the user's part rather than lack of useability on the structure's. Using structure variables In your programs will help simplify7 data manipulation and program maintenance.
In fact, understanding structures is almost a must if you plan to interface with the Amiga’s operating system using the C language.
A structure is simply a convenient way of referencing related variables as a single group. Unlike arrays that allow you to define a group (multi-dimension) of the “same” data type, structures may consist of multiple data types including other structures. (If you are familiar with the “record” data types that can be defined in other languages, then you are already familiar with the structure concept.) Although a structure can be referenced as a group, this does not prevent us from addressing the individual elements when necessary.
To understand structures, think about a simple program that maintains a file of names, addresses, and phone numbers.
We will assume that each ''record” (logical group) in the file contains three character arrays to hold each of these items.
Without using a structure, we would have to handle the input and output of the file at the variable level first a name, then an address, then a phone number, then a name, then an address, etc... As you can tell, this could become a very complicated procedure to perform if we had a more complex file definition.
Manipulating the “records” of the file with a structure is more efficient since it treats the related information as a single unit.
The following is an example of how we might represent the structure for our imaginary file.
Struct record ( * Record structure 7 charname(20); * The name area 7 char address(30); * The address area 7 char phonefl 0); * The phone number area 7 The word “struct1' is required to indicate a structure definition. In this example the word “record” is considered a structure tag or name. The rules for naming tire structure tag are the same as those for naming variables. (Using die name "record" for our example is simply convenient and allows us to refer to this as the “record structure”.) The individual components of die structure are placed between the open and close brace characters
]. As with all variable declarations, each element's declaration must be terminated with a semicolon.
Since the structure is also a declaration, it :oo must be terminated by a semicolon alter the closing brace.
This type of structure definition (with the structure tag) does not declare any actual data space, rather, it defines a “record" structure. (Remember that “record” is simply die name of this structure.) The following example shows how to declare a variable that does reserve data space using this structure definition.
Struct record myrecord; * my file ‘ecord variable 7 Again, the word struct is required to tell die compiler the variable "myrecord" is a structure of the type “record”. The compiler will set aside enough room in the data area to hold this record structure and reference it by the name myrecord.
There is a way to declare a structure variable that does declare data space without defining an intervening structure type. Using the same program example we could have declared the record variable like this: struct charname(20), * The name aiea 7 charaddress[30); ' The address area 7 char phone(lO); ’ The phene number area 7 Imyrecord; * record structure 7 As in the first example die word “struct” is still required.
Notice, however, dial no structure tag was indicated. Instead, a variable name is declared after the structure definition (after the closing brace and before the semicolon). The inclusion of the structure name (not tag) tells die compiler that space should be reserved for this variable.
Now your next question should be, “Why would I want to make a structure tag definidon rather than just defining the structure variable that 1 want to use-1' The answer has to be based upon what your program does and now it is written.
Most programs will require several structure variables to be of die same “type”. Without the structure tag, die definition of each variable would have to include the st-ucture definitii in.
'Xddi the structure lag, however, the definition of die suucture resides in one place and you merely have to declare a variable of that structure type.
|$ I9.95‘| m c= This means we don't have to declare die same structure over and over. Another advantage exists when it is necessary to alter the structure for some reason. Changing the structure tag definition will (after recompiling) change all the variables which use that definition. Other advantages can be found when it is necessary to “pass" structures to other functions or manipulate functions in different “modules" (when it takes more than one file to hold your C program).
Referring back to the phone number program, once we have a structure variable defined, the steps required to perform the file I O become simplified. Reading and writing strucaires (which contains the three elements) is a much more effective way to maintain the data file since a single unit is being manipulated.
Addressing the individual elements of a structure variable requires die element’s name as well as the structure's name.
This is necessary because it indicates ro the compiler which element of which structure is being referenced. For instance, the following statements would set die elements in our structure variable to John Doe, Nowhere Road, 555-1211.
Strcpy(myrecord.name, ‘John Doe"); * name 7 strcpy(myrecord.address,‘Nowhere Road'); * address 7 strcpy(myrecord.phone."555-1211 ’); ' phone 7 Naturally, die purpose of defining structures is to simplify die manipulation of related data. Alter die individual elements have been initialized to appropriate values, die entire structure will probably be "moved" somewhere else for further manipulation or I O. This raises die questions of how to "pass” a structure as a parameter to another function or how to "assign" die values from one structure to another of the same type.
The answers to these questions will depend upon your C compiler and how “compatible" you want you program to be with other C compilers. Some compilers now have die technology to assign and pass structures by "value” (all die values of die elements), while many do not. Assigning a structure by value means diat you could write a statement like the following (assume stl and st2 are structures of the same type): stl = st2; 'assign the values of structure st2 to stl * Notice how these statements address the individual elements of the structure. The structure's and elements’ names are connected
via a period (or “clot” as some programmers say).
Tliis dot tells the compiler that an element of the structure myrecord is being addressed, not the entire structure. Notice too, that these variables were defined as character arrays in our original definition. Since we omitted the index from each array, the compiler will assume they are address references (which is appropriate for this example). If a single element of die "name" array needs to be referenced, do it like any normal array by adding the index after the complete variable name.
Myrecord.name(O) = 'J'; * set element 1 of the name 7 For the most part, it will be better if you avoid assigning and passing structures by value. This will help to ensure that no problems arise should you change compilers (or give your code away). Structures are normally handled by "address" and not by value. To indicate die address of a structure include die & character in front of the structure’s name. Study the following example: movmem(&st2,&stl.sizeof(sfl)); ‘stl = st2 7 Assuming diat “movmem" is a function that will move the contents from die address of parameter 1 (st2) to the
address of parameter 2 (stl) for the length indicated in parameter 3 (sizeof(stl». (The “sizeof directive will instruct the compiler to determine the number of bytes required by this structure.) This function accomplishes the assignment of the previous example.
As noted, the compiler "knows" to use the address of the structures because die address sign (&) preceded die structure name. I know that diis may not be as straightforward as the simple “value” assignment, but it is compatible with all compilers (assuming the same definition of the function movmem). If your compiler supports su-ucture assignments and you 11x1111 to take advantage of that feature, then by all means do so.
Finally, we have to talk about how to receive and manipulate a structure when it is passed by “address" to a function. This is accomplished through the use of pointers.
You may remember from my previous column about pointers to arrays, that having a pointer variable Is almost like having the actual variable at your fingertips, Since that discussion, and in an effort to aide in your understanding of pointers to structures, I have come up with another “real life" example of a pointer.
Think about a television. That's right, a good ole’ TV.
Now when you want to change channels, do you get up from your sofa and walk over to punch the channel buttons, turn the volume up or down, or to turn it on or off? Of course not... that is why remote controls were invented. With the remote you can do all diese things from your chair without having to touch die TV’ set. In this sense then, a remote is a “pointer" to your TV. With a pointer you can manipulate the original widiout having to have the original defined locally.
15 Crosby Drive Bedford, MA 01730-0523
(617) 275-8892 Tired of the high cost of computer repairs?
- + FLAT Labor charges
- »FREE Estimates *$ yL95'
- ?Warranty work Also: 1764 to 512K: !61 128 64K vdc RAM: *40
NEW: C= 1902 conversion to RGB-TMO® (continued) Time saving
utilities for EVERY Amiga owner!
Create multiple preference settings- Quicklv and easily restore them as needed Edit, Sort, Delete tind Undelete any of them Fast, Fun and Easy to use, from WorkBench or CLI Runs on ALL Amigas , , . 500, 1000 and 2000 (V1.2 required) Multi-tasking Not copy protected.
Plus ... 3 other time saving utilities are included Available NOW!!!
Just send $ 29.95 plus $ 2 00 S&H to: SOFT'LINKmc PO Box 304, Coventry. Rl 02816 Dealer inquiries invited Amiga is a registered trademark of Commodore-Amiga. Inc 5TUFF- IT Design your own menus and use them with your favorite Amiga software!
• Each menu is like having thousands of user definable,
descriptively labeled, function keys
• Quickly and easily create all the menus you like
• Modify any of your menus, as often as needed
• Each menu can restore other Stuff-lt menus
• Also included are a tew menus we've created to get you started
(CLi-Menus, ED-Menus, etc.)
• Runs on ALL Amigas...From WorkBench or CLI (V1.2 or higher
• No hardware requirements • NOT copy protected Stuff-lt is a
MUST for ALL Amiga owners, beginner to expert!
Just send $ 39.95 plus $ 2.00 shipping & handling to: Look at this program that builds upon what we have already discussed and demonstrates the use of a pointer lo a structure.
* This program defines a record structure that contains 7 ’ a name, address, and phone number, calls a function to ' * initialize the structure with some default values and 7 * then prints the values to the console 7 inciude "stdio.h" * include file lor standard I O 7 struct record [ ' Record structure 7 char name(20); ' The name area 1 charaddress(30); * The cddress area 7 char phone(lO); " The phone number area 7 1; main() ' main function and program start7 I struct record myrecord; ' record structure variable 7 set_record(&myrecord); * set record to defaults 7 prinfffName-
%s nAddress-%s nPnone -%s n", myrecord. Name.myrecord. address, myrecord. Phone); 1 set_record(myrecord) * set the record to defauits7 struct record ‘myrecord; ' a pointer to a record 7 ( strcpy(myrecord- name, "John Doe”); * name 7 strcpy(myrecord- address,"Nowhere Rood"); * address 7 strcpy(myrecord- phone,"555-121 T); * phone 7 I Focusing on the function “set_recordnotice that when the parameter of a function is the address of a structure, we still have to use the “struct" declaration as well as die structure tag definition. Since diis is a pointer to a structure, the asterisk (*)
must precede the variable name.
Next, notice diat unlike the example we used earlier in the column, the structure’s and elements’ names are not separated by a dot. Since this is not die actual structure (remember it is a pointer to a structure) we have to use a different symbol to indicate this to the compiler. The arrow (- ) indicates Lhat we are addressing an element of die structure "through” a pointer. (Actually, the arrow is a shorthand mcdiod for referencing elements via die pointer. II' we wanted to manipulate the “name" variable without die arrow it would be written like this; (‘myrecord).name. Most programmers (if
not all) opt to use the "arrow” convention.)
This finishes our discussion of structures for now. Try typing in die example program, or writing your own program using structures. Keep working until you feel confident you understand diem (don’t forget to read about diem in you reference materials). Remember a great deal of understanding comes with experience, so don’t be afraid to try something new.
P. O. Box 304 Coventry. Rl 02816 Amiga is a registered trademark
of Commodore Amiga Inc. Scrolling through SuperBitMap Windows
by Read Predtnore This article and its accompanying program,
Scroll.c, describe how to implement SuperBitMaps for viewing
or drawing into large graphic areas as well as moving them
around with proportional scrolling gadgets. My curiosity7
about Super- BitMaps started writh the Lines demo program on
the workbench disk and my desire to utilize some of the same
features in my graphics programming.
The following sections discuss creating SuperBitMaps, attaching them to a window, attaching horizontal and vertical scroll gadgets to the window and then interacting with the scrolling gadgets. A straight- forward drawing routine, patterned after the Lines demo program, is implemented as an example.
Overview of SuperBitMaps A SuperBiLMap is just a graphics work area that is usually, but not necessarily, larger than tire window to which it is attached, and can be up to 1024 by 1024 pixels for the original Amiga graphics chips and at least 2048 by 2(M8 with the new ones. The SuperBiLMap is created independently of any Screen or Window and its image can be retained while a screen is resized. An example use for a SuperBitMap w7ould be to zoom in on a particular view of a MandelBrot calculation while being able to see the adjacent areas by scrolling them into view.
In the Scroll.c program, Listing 1, the function create_bitmapO is used to allocate the CHIB (graphics) memory7 for the SuperBitMap. First, memory for a BitMap structure is allocated and the Plane pointer array is set to zero. Then, the function tests as each bitplane is allocated and if there isn't enough room for the entire SuperBiLMap the memory for the previous bitplanes is released by calling close_bitmapO. Note that the BitMap structure itself can be in either Fast or Chip memory.
When the entire BitMap is successfully allocated, its SuperBitMap pointer is passed to the create_windowO function where it is stored in NewWindow.BitMap. The create_w4ndowf0 and create_screenO functions are derived from tire make_windowO and make_screenO functions from Inside the Amiga by J. T. Berry [Ref. 1], but create_windowO has been embellished to include SuperBitMaps and gadgets. Note that the Window flags must call for a GimmeZeroZero window7 w7hen a SuperBiLMap window7 is used [Peck, Ref. 2}.
Creating Proportional Scroll Gadgets A good source of information on proportional gadgets i.s the set of articles by Harriet Tolly in Amazing Computing, Volume 2, issues 3, 5 and in particular issue 7, pages 72 to 80 iRef. 31- The book, Programmer's Guide io the AMIGA TM, by R.
A. Peck [Ref. 2] is another good source of information.
(continued) Each proportional gadget requires three structures for proper operation, the Image, Proplnfo and Gadget structures.
For default proportional gadgets such as are used in the window7 borders, the Image and Proplnfo structures do not have to be initialized, but the Gadget structures Horiz_gadget and Vert_gadget are initialized. For the Horiz_gadget, the LeflEdge, TopEdge, Width and Height are 1, -7, -16 and 8 respectively.
WiLh similar numbers for the Ven_gadget. The negative numbers indicate that the TopEdge and Width are relative to tire bottom and right-hand side respectively so that the gadget will resize properly w'hen the window7 is resized.
The LeftEdge must be greater than zero for proper feedback of the gadget position. Under Intuition 1.2, if the LeitEdge is equal to zero the HorizPot member of the horiz_prop Proplnfo structure does not reliably return a zero value when the gadget is pulled all the way to the left. The HorizPot value is used in the scroll_SBMO function to reposition the SuperBitMap with the ScrollLayerO function.
Pointers to the previously defined Image and Proplnfo structures are stored in tire GadgetRender and Speciallnfo member of the Gadget structure and the address of the Horiz_gadget is stored in the NextGadget member of the Vert_gadget to provide a linked list. Finally, the address of the Vert_gadget is passed to the create_window70 function w7hich stores this gadget address in NewWindow.FirstGadget. Gadget and 1DCMP Parameters The gadget parameters include the Flags, Activation and GadgetType.
Tbe flags are: GADGHCOMP Show gadget selection by complementing trie colors.
GRELBOTTOM Position the horizontal gadget relative to the bottom of the window.
GHELHEIGHT Size the gadget relative to window height.
GRELRIGHT Position the horizontal gadget relative to the right side at the window.
GRELWIDTH Size the gadget relative to window width.
Do you have a good idea for an article?
We can guide you from idea to published article Please Contact; Editor Amazing Computing
P. O. Box 869 Fall River, MA 02722
(508) 678-4200 Ti:e activation parameters are: BOTTOMBORDER
Attach the gadget to the bottom border of the window.
FOLLOWMOUSE Generate mouse position messages when this gadget is selected.
Also requires the MOUSEMOVE flag for the window IDCMP pert.
GADGIMMEDIATE Immediately tell that this gadget hcs been selected by sending an IDCMP GADGETDOWN message. The IDCMP flag GADGETDOWN is olso required.
RELVERIFY When used with the IDCMP flag GADGETUP, a GADGETUP message Is sen: when the gadget selection is finished.
RIGHTBORDER Attach the gadget to the right border of the window.
The GadgetTypeparameters are: PROPGADGET Designates a proportional gadget.
GZZGADGET Signifies that the gadget is used with a GIMMEZEROZERO window.
Interacting with the Proportional Gadgets The flags that are important for receiving messages about proportional gadget selection and repositioning are the FOLLOWMOUSE, GADGIMMEDIATE and RELVERIFY flags in the Activation member of the Gadget structure, and the IDCMP flags, GADGETDOWN, GADGETUP and MOUSEMOVE. Which are set when opening the Window to which the Gadgets are attached.
When the Window is created or resized the variables dxmax and dymax in the mainO function are recalculated. They define the maximum amount the screen can be scrolled and are determined by finding the width and height of the SuperBiiMap and subtracting the width and height of the GimmeZeroZero window. The SuperBitMap size is constant but the GimmeZe- roZero size will change when the window is resized. At the same time, the function update_scroll_gadgetsO is used to recalculate the HorizBody and VertBody sizes in the horiz_prop and vert_prop Proplnfo structures.
The proportional Gadgets have a GadgetID of HORlZ_SCROI.L or VERT_SCROLL, These ID's are not system values but are defined in the scroll.c source code and are used by the function scrolLSBMO. The function scroll_SBM() positions the SuperBitMap within the window by using the HorizPot and VertPot settings to determine how much to move the SuperBitMap. Scroll_SBMO is called by three cases of input events; MOUSEMOVE, GADGETUP and NEWSIZE.
When the mouse is clicked on the gadget itself, the gadget_state variable is set to GADGETDOWN and the FOLLOWMOUSE activation in the Horiz„gadget and Vert_gadget causes IDCMP MOUSEMOVE messages to be sent. As long as die Gadget state is down the event loop will call scrolLSBMO to move the SuperBitMap along with the mouse movements, The GADGETUP case occurs when the left mouse button has been clicked in one of the scroll gadget boxes. If the gadget itself was selected the MOUSEMOVE case has followed the mouse movements and no additional motion is necessary.
However, if the mouse is clicked within the gadget box but not on the gadget itself, the gadget will be stepped toxvards the mouse and scrolLSBMO is called to reposition the SuperBitMap.
The NEWSIZE case is used whenever the window7 is resized.
The variables dxmax and dymax are recalculated as discussed above, update_scroll_gadgetsO resizes the scroll gadgets, and scrolLSBMO repositions the SuperBitMap if necessary7.
Prowling Around in the Amiga Bata Structures The Amiga data structures, while essential for the management of the Amiga's multitasking and windowed graphics display, present a labyrinth of structures nested within one another that is worthy of any Dungeon Master. I haven’t conquered this maze, but have poked around in sub- dungeons 1 and 2 just enough to get things working smoothly.
I utilized several tools to find my way around. The first source of structure information is the Structure Browser program [Ref. 4], which is available on Fred Fish disk number 69. This program gives the real time values of Screen, Window and Gadget structures, etc., and was used to determine the SuperBitMap location within a Window structure and the gadget flags used for scrolling the SuperBitMap around in the Lines demo.
The second source of structure information is the Source level DcBugger (SDB) which is available as an accessor)' for the Manx Aztec C compiler version 3.6 (Ref- 51 and is one of the best debuggers available on any computer system. For example, a simple “p Window" command displays the entire Window structure with each member labeled. A "p *Window- RPort” shows the RastPort structure within the Window.
Drawing into the SuperBitMap Once the SuperBitMap was attached to the window it was not clear where to point the Amiga graphics routines.
Listing 2 is some output from SDB when it was used on die scroll.c program. Just after the SuperBitMap was created its parameters were printed out with the command “p ’pSB.Vl”. It shows a BitMap with a size of 800 by 300 pixels. Next the Window structure is printed out and then the RastPort within tire Window and the BitMap within that RastPort. (I told you this was a maze.) This BitMap is only 640 by 200 pixels and its Planes are not located at the same addresses as the Planes for the SuperBitMap. Finally, the original SuperBitMap was found within the Wlayers member of the Window structure by
printing “*pwindowO- WLayer- SuperBitMap”.
Note that the actual output from the SDB program is not formatted exactly in this way. Comments have been added and the output has been moved around with appropriate indentation to emphasize the nesting of structures. Ellipsis (...) have been used to skip over structure members that are not relevant to this discussion.
There are two RastPorts in Listing 2, the Rport member of the Window' structure and the rp member of the Window- Wlayer, but it turns out that they both point to the same address. My conclusion was that the Amiga graphics routines draw into die SuperBitMap and then copy the visible portion into the Window'- RPort for display in the window.
As an example of drawing into a SuperBitMap, the drawJinesO function creates patterns of lines which can roam over the full extent of the SuperBitMap. Although, only a portion of the SuperBitMap is visible at a time, any pan of it can be viewed by using the horizontal and vertical scroll gadgets.
The drawJinesO function chooses the endpoints of lines to randomly fill the SuperBitMap using the random number generator, IranO, derived from Ref. [6]. A web of 32 lines is drawn between the current and previous line. Before the drawJinesO is finished the current line is stored in the previous line by swapping die end points. The pen color is incremented evert' fourth set of lines.
Makefile The compiling and linking steps for Manx Aztec C version 3-6a are summarized in the makefile: scroll: scroll.o In +cb -g scroll,o -Ic SDB Scroll scroll.o: scroll,c cc -n scroll.c The linker option +cb forces uninitialized data to be allocated in CHIP memory, The compiler option -n and the Sinker option -g are for the source level debugger.
An entire store dedicated to the commodore AMIGA.
Genlocks, Digitizers, Harddrives, Printers, Monitors, Modems, Memory Expansion, Books, and Magazines. Along wiLh all of the latest software, in stock and on display.
As always customer satisfaction, and support come first!
Nothing but the best.
Remember... The Memory Location Where Only AMIGA makes it possible, COM4 COMMODORE We’re Commodore specialists!
Only what works!
Cr Open 10-6 Mon.-Thur. 10-8 Fri. The Memory Location 396 Washington St Wellesley, MA 02181
(617) 237 - 6846 9-5 Sat. We ship UPS Commodore authorized repair
in store. Low flat rale plus parts.
Warranty service I hope that you find this useful. I can be contacted via Amazing Computing or on People Link as Rpredmore.
References John Thomas Berr)', Inside the Amiga, Howard W, Sams & Co., Indianapolis, IN', 1986.
R. A. Peck, Programmer's Guide to the Amiga, Sybex, Alameda,
California, 1987.
H, M. Tolly. “Intuition Gadgets: .. the workhorses of Intuition", Amazing Computing, Vol. 2, No. 3, pp. 81-88, 1987.
H. M. Tolly, ‘Intuition Gadgets: Boolean Gadgets", Amazing
Computing, Vol. 2, No. 5, pp. 69-77, 1987,
H. M. Tolly, “Intuition Gadgets: the workhorses of Intuition",
Amazing Computing, Vol. 2, No. 7, pp, 72-80, 1987.
C. Zamara and N. Sullivan, "The Transactor Amiga Structure
Browser," Transactor, Vol. 7, Issue 6, May 1987, pp. 62-71.
Manx, Aztec C compiler and Source level DeBugger (SDB) Version 3,6a. Manx Software Systems, One Industrial Way, Eatontown, NJ 07724, Tel. (800) 221-0440.
W. H. Press, B.P. Flannery, S.A. Teukolsky and W.T. Vetterling,
Numerical Recipes in C Cambridge University Press, New York,
1987, Section 7.1, pp. 211.
(continued) Makefile Makefile to build SCROLL using Aztec C V3.Sa for “he AMIGA, by Read ?re±nore, 21 July 1988, ???????????????????????????????????????????????????I ????? ??? ??? ? scroll: scroll.o In + cb -g scroll.o -Ic SD3 Scroll scroll.o: scroll,c cc -n scroll.c Scroll c *sii3DEEise££si:::ass3Si:3E=s: = :s:== SCROLL ¦ C Copyright (CJ 1988 by Read Predncre * ?include intuition intuition.h ?Include exec exec.h ?include graphics gfxbase.h ?include stdio,h ?include functions,h ?define DOUBLE double * Resource Flags * ?define F_INTUI7I0N OxOOGOOlL ?define F_GRA?HICS
0x0000021 ?define F_LAYERS3ASE OxOOOOQ4L ?define F_MATHTRANS OxOOCOOSL ? Define F_SCRZEN 0x0G002CL ?define F_W1NDOWO 0x0000401 ?define F~SU?ERBITMA? OxOOlOOOL defineSCRN_HSIGHT 200
* defineSCRN_WID7H 640 ?define SCRN DEPTH 3 * SuperBitMap
parameters. * ?defineSBM_KEIGH7 300L ?defineSBM~WIDTK BOOL *
Ids for scroll gadgets. ¦ ? De fineHORIZ_SCROLL OxGOOl ? De
fIneVERtJsCROLL 0x0002 function definitions
¦¦aaBiaBatissEastisaBaiiaiBB' j unsigned long IranO; void
close_bitmap 0, draw_lines (), init_color_map (), initialize
• malice (), nyabortO, scroil_SEM(), update_scroli_gadgets ( ;
struct Screen *ereate_sereen ); struct Window *create_window );
GRAPHICS DEFINITIONS is3BS3as:R:ss:s:s::i;Esii:B* j struct
GfxBase *GfxBase; struct IntuitionBase *IntuitionBase; struct
LayersBase *Layers3ase; char screen_title[SO],
window_title0[SO]; long curaresource; struct SitMap "pSBM;
struct Screen •pscreenO; struct Window "pwindowO; struct Image
Horiz__image, Vert_image; struct PropInfcKoriz_prop, Vert_prop;
struct Gadget Horiz_gadget = ( NULL, 1, -7, -16, 6, GADGHCOM? I
Struct Gadget Vert_gadget « iKoriz_gadget,
&Vert_prop, VERT_SCROLL, NULL }; Enabie_Abort = FALSE; *
Global argument count which will be zero if started from
- 1 int Cargo; = = = == = = = = = = = = = = = = = = = =030 3
=== yj Zl'i main(argc, argv) int argc; char *argv(}; long
dx, dy, dxmax, dymax; ULONGgadget_state; SHORTkeep_going =
(SHORT) TRUE; USHORT gadget_id; struct intuiMessage
nsylntuiMessage, *templntuiMessage; struct Window *pcur_wind;
cur_resource =0; Gargc » argc; initialize 0 ; pcur_wind *
pwindowO; dxmax - (8 ¦
pcur_wind- WLayer- Super3itMap- 3ytes?erRow)
- pcur_wind- GZZVi'idth; dymax ¦
pcur_wind- WLayer- SuperSitMap- Rows - pcur_wind- GZZHeight;
gadget state = GADGETUP; while (keep_goirtg} (
draw_lines(pcur_wind); while (tempIntuiMessage ** (struct
IntuiMessage ") GetMsg (pcur_wind- UserPort) ) nylmuiMessage
° "teiapIntuiMessage; ReplyMsg (tempIr.tuiMessage);
switch(myIntuiMessage.Class) ( case GADGETUP: gadget_id a
((struct Gadget •) mylntuiMessage,lAddress)- GadgetID;
scro!l_SBM (pcur_wir.d, Skoriz_prop, fiVert_prop, dxmax, dymax,
gadget_id); gacgec_state = GADGETUP; break; case GADGETDOWN:
gacget_state * GADGETDOWN; gadget_id - ((struct Gadget *)
mylntuiMessage.lAddress)- GadgetID; break; case MOUSEMOVE: if
(gadget_state == GADGETDOWN) scroll S3M(pcur wind,
iHoriz_prop, &Vert_prop, dxmax, dymax, gadget_id; ; break; case
NEKSIZE: dxmax = (8 ’
pcur_wind‘- WLayer- Super3itMap- BytesPerRcw)
- pcur_wir.d- GZZWidth; dymax =
pcur_wind- WLayer- Su?erBitMa?- Rows - pcur_wind- GZ2Height;
update_scroll_gadgets(pcurwind, 4Horiz_prop, &Vert_prop);
scroll_S3M(peur_wind, &Koriz_?rcp, iVertprop, dxmax, dymax,
(USHORT) (H0RI2_SCR0LL [ VERI_SCROLL)); break; case
CLQSEWINDOW: while(tempIntuiMessage - (struct IntuiMessage *)
GetMsg (pcur_wir.d- UsGrPort) } ReplyMsg(templntuiKessage);
keep_going « (SHORT) FALSE; break; default: break; } " End of
switch loop. * ) (* End of while(IntuiMessage) loop. *!
] " End of while (keep_going) loop. * main_exit:; myabort("End of Scrolling through SuperBitMaps"); I AC's remedy for survival of the winter time blues: The winter season is upon us and with it brings not the anticipation of cold feet and joyous months of sub-zero tempura- tures, but the arrival of a sizzling new item. Complete with an educational background, business knowledge, and an excitement for fun and games! Amazing Computing's Winter 89 Product Guide will keep you warmed up to the latest software and programming packages of the comming year. If you thought this winter would
return along with bugs and the flu,your right! But we ll prescribe the Amiga remedies for all your ailments.
Look for complete descriptions (and recommended dosages) for many software packages. From VTP--Virus Infection Protection which is a sure-fire cure for what makes your Amiga sick; to Hollywood Poker, guaranteed to heat up the at mosphere. You'll also enjoy a compilation of tutorials and referenced tittles authored by the experts who have helped shape the Amiga market. AC has taken the time to catalog over 1-tOO products for your Amiga, as well as a complete breakdown of the Public Domain Software Library. So keep this in mind when you can’t seem to find a remedy for the winter-time
blues. Turn to your Amiga with your best Amiga resource; Amazing Computing's Winter '89 Product Guide.
- nr
- at I * End of if (depth, etc.), if(error_flag == TRUE) (
close_bitnap (pbitrr.ap) ; pbitr.ap = CL; struct Screen *
create_screen(topedge,width,height,depth, colorG,cclorl, name)
short t opedge,wideh,height,depth; unsigned char coloru,colorl;
char *na.T.e; struct NewScreen ns; struct Screen ¦pscreen;
ns.LeftEdge - 0; ns.TopEdge = topedge; ns .width - width;
ns.Height = height; ns .Depth = depth; ns.DetailPen = colorO;
ns .3icck?er. = colorl; Amazing Computing™ cannot dotermine the
dependability of advertisers from their advertisements alone.
We need your feedback. If you have a problem with an advertiser
in AC™, please send a complete description of the ncident, in
writing to: Ad Complaints PiM Publications, Inc. Amazing
P. O. Box 869 Fall River, MA 02722 Be sure to include ony
correspondence you have had with the advertiser, along with
the names of the individuals involved. Your assistance is
greatly appreciated.
¦ Mode options are HIRES, LACE, SPRITES and HAM in INCLUDE GRAPHICS view,h. ¦ ns.ViewModc-s - NULL; if(width = 640) ;hich are defined ns.ViewModes 1= HIRES; if(height = 400) ns.ViewModes I¦ LACE; if! (depth - c) it C!(ns.ViewModes i HIRES) ) ns.ViewModes I** HAM; ns.Type a CUS7GM3CR.EEN; ns . Font - NULL; ns.DefauitTitle = (U3YTE *) name; ns.Gadgets = NULL; ns.CustcnSitMap » NULL; pscreen «* Gper.Screer. (ir.s); return (pscreen); = ** CREATE WINDOW * struct Window • create_window(leftedge,topedge,width,height, c ilorO,colsrl, flags,IDCMPflags, pFirstGadget, windov_title, pscreen, psbm)
short le f yerige,topedge,width,height; unsigned char color0,ccicri; unsigned long flags,IDCMPflags; struct Gadget *p?irstGadget; unsigned char *window_title; struct Screen "pscreen; struct BitMap ?psbm; ( struct NewWindow nw; struct Window -pwindow; = leftedge; = topedge; = width; = height;
* * colorO; = colorl; = flags; = IDCMPflags; = CUSTOMSCREEN; =
pFirstGadget; = wmdow_t itle; = NULL; = pscreen; nw.Left Edge
r. w.TopEdge nw.Width nw,Height nw.DetailPen nv.BlockPen nw.Flags
nw.IDCMPFlags nw.Type nw.FirstG adge nw.T i 11e nw.checkKark
nw.Screen if(flags i SUPER_BITMAP) nw.B i tMap = ps bn; else
nw.BitMap nw.MinWidth nw.MinHeight nw.MaxWidth nw.MaxHeight
NULL; = 200; = 50; = pscreen- Hidth; = pscreer.- Height ;
pbitrr.ap = malloc(sizeof (struct BitMap)); i f ( pbitrr.ap !*
0L) ( pw i ndow - CpenWi nd ow(inw return(pwindow); I
initBitXap(pbitmap, depth,width,height); for (i=*0; i depth;
i++) pbitmap- Flanes(i]=(unsigned char *) OL; for (i =
0;i depth;i+*) planepointer ** AliocRaster (width,height);
if( planepointer ) pbicmap- P lanes [ i. “ planepointer; els
error flag ** TRUE; large ofttoarc all imbrr list price'!'
We are Located at the north-end of the Miller's outpost shopping center in Rancho Cucamonga 8005 Archibald OPEN 7 DAYS A WEEK Corner of Foothill Blvd. Fir Archibald Atc.
Aaiqa in a trndmark ot Co**orore A"tga Inc, void draw_iir.es (pvdnd) struct; Window upwind; ( static int idum = -I; static long color_count a 0, coior_tines = 4, per._color = 0, xl~0, x2=10, x3,x4, yi=Q, y2=10, yV *, dx!2-10, dx34, dyi2-10, dy34, npts =* 32; long i, xl2, x34, yl2, y34, xterrp, ytemp; unsigned longxnax, ymax; cclor_ccunt = (color_count + 1) % coIcr_tirr.es; if( ! EolOr_count) per._color = (pen_color + 1) % (1 (pwind- R?ort- BitMap- Depth) J; SetAPen( pwir.d- RPort, pen_color); } xzi&x “ a * pwind- WLayer- SuperaitHap- BytesPerRow; yirax = pwind- WLayer- SuperBitHap- Rows;
x3 = (xmax * Iran () LRAN_MAX; y3 = (ynax * lraa(] ) LRAN_KAX; : 4 = (xmax * IrantJ ) LRAN_MAX; y4 ** (ymax - lranf) ) LRAN_MAX; dx34 ¦* (x4-x3) f npts; dy34 - (y4**y3) ! Npts; for(i»0, xl2-xl, yl2-yl, x34ax3, y34-y3; i npts; !»-*¦) Move(pwind- R?ort, x!2, y12); Draw(pwind- RPort, x34, y34); xl2 += dx 12; yl2 += dyl2; x34 +- dx34; y34 +- dy34; ) xl ° x4; yl - y4; x2 « x3; y2 - y3; dxl2 =» -d :34; dy!2 = -dy 3 4 Fisher's Clomputers and Software 7tH S7-i!J32 ®» cfciiJ end idid£,d AITVIOCIIFD COM MOD Oft! Amiga DEALER liatli sales and seruice dfcnon... imm (X ==== = ij;tT COLOR MAP
* = INITIALIZE = s, screen and windows.
CciorO, flags.
Color1; IDCMPflags; GfxSase = (struct GfxBase "J OpenLibrary (’'graphics.library**, OL) ; if (GfxSase == NULL) nyabort ("Car 1 open graphics . Library") ; cur_resource |“ GRAPHICS; Intuit ionBase*5 (struct Intuit! Or.Base
* )OpenLibrary("intuition.library",OL); if (IntuitionBase ==
NULL) nyabort ("Car 1 open intuition, library"); cur_resource
!= F_INTUIT10N; LayersSase=(struct LayersSase
*)OpenLibrary("layers.library",OL); if (LayersBase == NULL)
nyabort("Can't open layers.library"); cur_resource 1=
f_layersbase; static short map %’alues [32] “ ( •Format OxORGS
CxORGB OxORGH CxORGB * 0 * OxOFFF , * 1 - 0x0000 !• 2 *
3 * OxOOOF • 4 * OxOOrO ' 5 • OxOFFO ¦ 6 - OxOOFF ' 7 ¦ CxOrCF * 8 * 0x0444 , ¦ 5 • 0x0888 • 10 ¦ OxOCCC ¦ 11 - 0x0950 !* 12 * 0x0090 , * 13 * OxOFCA * 14 * 0x02CD - 15
* OxOFCC * 16 * OxOFFF , * IT • 0x0000 ¦ IB * OxOFOO ¦
19 - OxOOOF * 20 • OxOOrO , * 21 * OxOFFO * 22 * OxOOFF
• 23 OxOFOF • 24 • 0x0444 , * 25 0x0888 ' 26 * OxOCCC ¦
- 0x0950 • 28 • 0x0090 , ¦ 25 • OxOFCA * 30 • 0x02CD - 31
• OxOFCC LoadRG34Upscreer.- View?ort, rap values, 32L) ; " Set
up colors for the screen.
• void init_color_nap(pscreen) struct Screen *pscreen; i *••
* Open AMIGA lihrarit void Initialize 0 I unsigned char unsigned
long strcpy (scret-n_t itle, "Scrolling Through SuperBitMap
Windows, Copyright 1988 by Read Predmore") ; colorO - 0; colorl
c 1; pscreenO = create_screen(0, SCRN_WIDTH, SCRNJiSIGHT,
SCRN_DEPTH, colorO, colorl, screen_title)?
If IpscreenO -= NULL) nyabort ("Could not open the screen cur_rescurce 1- F_SCREEN; ScreenToBack(pscreenO); init_color_nap(pscreenO); pSBM - create_bitasap(S8M_WIDTK, 53M_HZIGH7, (long) SCRNJ3SP7N) ; iflpSBX « NULL) .xyabort ("Cculd not open the Super BitMap ; cur_rescurce 1- F_SU?ER3I7MAP; Horit_prop.Flags - AUTOKNOB I FREEHORI2; Horiz_prop.Horiz3cdy - OxlFFF; Vert_?rop.Flags - AUT0KN0B ! FREEVERT; Vert_prop.VertBody ° OxlFFF; IDCMPflags - MOUSEMOVE I GADGETDOWN I GADGETUP ! CLOSEWINDGW ) NEWSIZE; strcpy(windowtitleO, " SuperBitMap Window
K) ; pwindowO 3 create_vindcw(0, 10, SCRN WIDTK,SCRN_HEIGH?-I0,
cdorO,colorl, flags,IDCMP flags, (struct Gadget ') 4Vert
gadget, window_titleO, pscreenO, pS3M); if (pwindowO ¦*" NULL)
xyabort(“Could not open the window !”}; cur_resource !¦
F_WINDOW3; SetRast(pwindowO- RPort, OL); update_scroll_gadgets
(pwindowO, £Hcrir_prcp, 5iVert_proc) ; Screer.TcFro.nt
GIMME2ER0ZER0; (continued) Mi"ABORT
* Routine which closes windows and screeens and frees up memory
which " has been allocated for RasterPcrts, etc.
* void myabort (s) char *s; if (cur_resource & FWItfDOWO)
CloseWindow (pwindowOl ; if (cur_resource i F_SUPEREITMAP)
clase_bltmap(pS3M); if (cur_resource i F_5CREE'.') CioseScreen
(pscreenO) ; if (cur_resource & F_LAY£RSBASE)
CloseLibrary(Layers3ase); if (cur_resource & F_GRA?HICS)
CloseLibrary(GfxBase); if (cur_resource f. F_INTUITION)
CloseLibrary IntuitionBase); if (Gargc 0) puts(s); exit (0);
} = = = = = LRAN unsigned long Iran () t def inelM 2592Q0L
fdefinelA 7141L def Ir.eIC 54773L static unsigned long ulran =
197; ulran = (ulran*IA + IC % IM; return ulran; ( .=™ = == =
== = =, = = = = = = ==5a. DD™™ SCROLL_S3M void scroil_S3M
(pwind, horiz_prop, vert_prop, dxmax, dynax, gadget_id) struct
Window *pwind; struct Proplnfo *horiz_prop,*vert_prop; long
dxmax, dymax; USHORT gadget__id; 1 long dx - 0L, dy = 0L;
if(gadget_id & HOR2Z_SCROLL) dx = (dxaax * (unsigned long)
horiz_prop- Horiz?ot)) OxffffL; dx = dx -
?wind- WLayer- Scroll_X; } if(gadget_id £ VSRT_SCROLL) dy =
(dymax * ((unsigned long) vert_prop- Vert?ot)) OxffffL; dy =
dy ** pwind- WLayer- Scroll_Y; ) if(dx I| dy) ScrollLayer
(pwind’ WLayer- LayerlnfO pwir.d- WLayer, dx, dy); I
*««¦»»assa=a========I*=== UPDATE SCROLL_GA£GE?S void
update_scroll_gadgets pwind, horiz_prop, vert_prop) struct
Window Upwind; struct Proplnfo -horiz_prop, "vert_prou;
horiz_prop- HorizBody « (Gxffff * ((unsigned long)
pwinti- GZZWidth)) (6 -
pwind- WLayer- SuperBitXap- Bytes?erRcw); vert_prop- Vert3ody =
(Oxffff " ((unsigned long) pvind- GZZKeight))
pwind- WLayer- 5uperBitXap- Rows;
RefreshGadgets(pwind- FirstGadget, pwind, 0L) ; Structure
Information from Source Level Debugger print -pSBM ¦
SUPER_3ITMAP * struct BitMap = unsigned int BytesPerRow -
100 * 800 by 300 pixels, unsigned int Rows = 300 unsigned char
Flags n 0 unsigned char Depth = 3 unsigned int pad = 64
unsigned char ‘Planes(0) *» 0xQ002bf60 unsigned char *Planes[i)
= 0x00038760 unsigned char -Planes[21 = QxQQQ44f60 print
-pwindowO struct Window = struct Window *NextWir.dcw =
0x00000000 int LeftEdge = 0 int TopBdge - 10 int Width = 540
int Height = 190 int MouseY = 108 int MouseX = 560 int MinWidth
= 200 int MinReight =50 unsigned int MaxWidth = 640 unsigned
in* MaxKeight =190 unsigned long Flags = 1167 struct Menu
-MenuStrip » 0x00000000 unsigned char ’-Title = 0x000l3e64
struct Requester *FirstRequest • 0x000000)0 struct Requester
-DMRequest = 0x00000000 int ReqCount = 0 struct Screen -WScreen
= 0x00234768 struct RastPort *RPort = 0x00235ff8 - In FAST
- print ‘pwindowO- RPort *t struct RastPort = struct Layer ‘Layer - 0x00234ff8 struct BitMap *3itMap = 0x00234320 t* print ‘pwindowC- RPort- SItMap * struct BitMap » unsigned int BytesPerRow = 80 - 640 by 200 * unsigned int Rows = 200 unsigned char Flags = 0 unsigned char Depth = 3 unsigned int pad = 0 unsigned char *?lanes[0j = 0x0CC203e0 unsigned char ‘Piar.es [1) = 0x00024260 unsigned char ‘Planes[2j = 0x000230e0 ) unsigned int "AreaPtrr. = OxOOOOCOOO struct Trap Res *Tr.pRas = 0x00000000 J unsigned long IDCMPFlags = 527 in* G2ZMouseX =556 int GZZMouseY = 97 int GZZWidth = 618 int
GZZHeight = 171 unsigned char "ExtData = 0x00000000 char "UserData = 0x00000000 struct Layer -WLayer - Qx00234ff8 * Window Layer * * print *pwindowO- WLayer * struct Layer ( struct Layer ‘front = 0x00000000 struct Layer ’back = 0x00234e63 struct ClipRect ‘ClipRect = 0 :Q020eclG struct RastPort *rp = 0x00235ff8 struct Rectangle bounds = ( int MinX = 4 int MinY =21 int MaxX = 621 int MaxY = 191 I unsigned char reserved[0] = 0 unsigned int priority = 559 unsigned int Flags = 4 struct 3itMap ‘SuperBitMap = 0x00001998 * print "pwindovO- WLayer- Super3itMap * struct BitMap = unsigned int
BytesPerRow ¦* 100 unsigned int Rows = 300 unsigned char Flags = 0 unsigned char Depth = 3 unsigned int pad = 64 unsigned char ‘Places[0] = 0x0002bf60 unsigned char ‘Planes[1] = 0x00038760 unsigned char -Planes[2] = Qx0QD44f60 j struct ClipRect -SuperClipRect = 0x00235e88 unsigned char “Window = 0 ;00232c38 int Scroll_X = 0 int Scroll_Y = 0 struct TextFont -.Font = 0xC02006f8 ) 1 ¦AC- Introduction by Forest W. Arnold POINTERS, FUNCTION POINTERS, AND POINTER DECLARATIONS IN C In my article about linked lists, I promised to show how pointers to functions could be used to reduce data type depend
encies. This article and the demo programs which accompany it, do just diat. Listing 1 is a small program which shows how to declare and initialize function pointers, how to call a function using a pointer, and how to pass a function pointer to another function. Listing 2 is the output of the program. Listing 3 is a modified version of the linked list demo program which explains how to use function pointers with lists and shows how to declare and use complex pointer combinations.
The pointer is probably the most powerful feature of the C language, but is also the most difficult feature of the language to understand. Without pointers, C wouldn’t be much of a language; with them, almost any programming task can be accomplished. After you learn to use pointers, you will be able to write programs which would be impossible to write in languages without pointers, and after you leam to use function pointers, you’ll be able to write C programs which work like LISP programs, but faster.
Before jumping right into tire subject of function pointers, I’ll review what pointers are and how they are declared. First.
I’ll discuss pointers and simple variables, then pointers and arrays, lollowed by pointers and functions, and finally, complex pointer declarations. If you already know how to declare and use pointers, you will probably want to skip to the section on function pointers.
Pointers in General A pointer is simply the address of some memory location in the computer or a 'virtual' memory location if the computer has virtual memory. In C, pointers are basic data types, and thus C contains two operators for manipulating the pointer type.
These two operators are the and the *•’ operators. Given a variable name, tire & operator will return the memory address of the variable. The & operator can be thought of as an ‘address- of operator. The * operator is called an ‘indirection’ operator and can be thought of as a ’pointer-to’ operator. The ’*’ is used in two ways: it is used to declare a variable name as a pointer, and it is used to indirectly access the contents of a memory location.
Rules for using tire & operator are that (1) the operand must be a variable, and (2) the operand cannot be an array name or a function name. The reason why the & cannot be used with array and function names is that both are already addresses.
(continued) The * operator can be used with any variable of any type.
When used with a name in a declaration, the * operator declares that ‘name’ is a ’pointer-to’ whatever ’type’ appears in the declaration. For example, ‘int ’intptr' declares intptr to be a pointer to an int, and 'double ’dblptr' declares dblptr as a pointer to a double. The important thing to remember about pointer variables is that the variable does not contain the data, but the address of the data; and until the variable is initialized, the address it contains is arbitrary' (and thus garbage).
Since pointer variables contain only addresses, all pointer variables are the same number of bytes long (generally four bytes), and the address contained in the pointer variable is the address of the first byte of the pointed-to data. Thus pointers can be cast to any type. I generally use 'unsigned char *var- Name' as a ‘typeless’ pointer. However, before referencing the pointed-to data, it is important to cast the pointer to the correct type. This is because the compiler needs to know the type to determine how long the data is and how to generate offsets if the pointer points to an array or
Pointers and Simple Variables Suppose we have three variables declared as follows: int intVol.newVal; int *in1Ptr; intVal and newVal are simple integer variables. ‘intPtr is a pointer :o an int. Now suppose the compiler generated the following addresses for the variables: name: intVal newVal intPtr address: 10000 11000 12000 contents: ? ? 7 The C code ‘intVal = 10; newVal = 11; intPtr = &intV'al;’ will place values at the above addresses as follows: name: intVal newVal intPtr address: 10000 11000 12000 contents: 10 11 10000 The variable intPtr now points to intVal's address, so intVal can be
indirectly referenced through intPtr. The statement ‘newVal = ’intPtr;' causes the contents of the address pointed to by intPtr to be fetched and places the fetched contents in newVai's address. The table will now look like this: name: intVal newVal intPtr address: 10000 11000 12000 contents: 10 10 10000 If you now use die statement '*intPtr = newVal * 3;', the value of newVal will be multiplied by three, the address stored in intPtr will be fetched, and the result of the multiplication will be stored at the fetched address. The table will then be: name: intVal newVal intPtr address: 10000
11000 12000 contents: 30 10 10000 Since the indirection operator has higher precedence than the addition operator, parenthesis must be placed around arrayPtr + n. The statement "arrayPtr+2' will fetch the value stored at array(O) and add 2 to the value, bi.t the statement ‘arrayPtr+2’ will generate a new address. When an integer n is added to an address, the value of n is automatically scaled by the correct number of bytes for the type of data being referenced. For example, if 'arrayPtr' points to address 10000 and the pointed-to type is a long integer, 'arrayPtr+T will point to 1000-1 If
the pointed-to type is double, ‘arrayPtr+T will point to 10008. This is why pointers have to be declared as pointing to a data type.
Since an integer can be added to or subtracted from a pointer, you will frequently see the '++' or' ' operators used with a pointer variable to iterate through ar. Array. An example of this is the following code fragment: The chart below shows the syntax for accessing the addresses and contents of the variables in the table: newVal intPtr &newVa &intPtr newVal intPtr 'intPtr name: intVal address: &intVa!
Contents: intVa!
Indirection: As can be seen from the chan, the only difference between syntax for a pointer variable and a non-pointer variable is that the operator can be used with a pointer to fetch the value stored at the pointed-to address.
Basically, only five things can be done with pointers: an address can be assigned to a pointer (intPtr = &intVal), the value at the pointed-to address can be accessed (newVal = 'intPtr), the value at the pointed-to address can be replaced ('intPtr - newVal * 3), some arithmetic operations can be performed with pointers (below), and logical operations can be applied to pointers( ptrl == ptr2).
Pointers and Arrays As mentioned above, an array name is already an address, so it is illegal to use the & with an array name. With the declarations int arraynO); int 'arrayPtr; arrayPtr = itarray;' is illegal, but either ‘arrayPtr = array;’ or ‘arrayPtr = &array[0];’ is perfectly legal and will assign the address of the first byte of‘array’ to ‘arrayPtr1. You may wonder why the statement ‘arrayPtr = &arrjyl0)‘ is iegai, since I’ve already said the & operator can’t be used with an array name.
The answer is that ‘an aylO)' is not the name of an array, but the name of the first element in the array. It is because of little details like this that pointers are confusing.
After arrayPtr has been initialized to point to 'array', the following statements are equivalent: int array(DIM); int ‘arrayPtr; &array[DIM-l); arrayPtr-t--?-) for(arrayPtr = array; arrayPtr = "arrayPtr+= 10; This fragment will loop through the array beginning with the first element and ending with the last element and add 10 to each array value. In the ‘for’ loop, arrayPtr = array sets arrayPtr equal to the address of the first array element, arrayPtr = &array[DLM-l] compares the address stored in arrayPtr with the address of the last array element, and arrayPtr++ increments the address
stored in arrayPtr. The statement 'arrayPtr +- 10 fetches the contents of the pointed-to address, adds 10 to the fetched value, then places the calculated value back into the pointed-to address.
Pointers and Functions After the above discussion, function pointers are EASY.
Function names are simply symbols which represent addresses tagged as a ‘code’ section. The compiler converts this symbol to an address, which is an offset from the beginning of the file in which the function is defined. The linker then uses the offset to create a new address for the function relative to the beginning of the load module. The loader then assigns an absolute address to the function when it is loaded. At least, I think that's how it all works. At any rate, declaring a variable as a pointer to a function and then getting the address cf tire function are the simplest pointer
operations of all. The only thing to keep in mind is that all functions have to return some data type (or void), and the function pointer has to be declared as returning the same type as the function. If you have a function declared as ‘double divideByTwo( number.)’, and you want to use a funtion pointer to execute the function, the way to declare the function pointer, assign it a value, then use it is; double divideByTwo(),number,result; * regular stuff * double CfunctionPointeOO; * declare it 7 functlonPointer = divideByTwo; * initialize it ' result = ('functionPointerXnurmber); ' call
it 7 assign a value array(2] = 5 "(array+2) = 5 array notation: pointer notation: pointer notation; ’(arrayPtr+2) = 5 k = '(arrayPtr+3) access a value k = array(3) k = *(array+3) The way to interpret 'double ('functionPointer)0’ is 'a pointer to a function which returns a double’. Once again, because of the precedence of operators. "lunctionPointer* must be enclosed inside parenthesis. Without the parendresis, the declaration ‘double 'functionPointerO' would declare function- (continued') Pointer as ‘a function returning a pointer to a double’, which is something entirely different. And that’s
about all there is lo function pointers!
The short demonstration program in listing 1 is an example of how to declare and use function pointers. The program has three functions: mulOp, divOp, and evalOp.
MulOp simply multiplies two numbers and returns a pointer to the result. DivOp divides two numbers and returns a pointer to the result. EvalOp receives a function pointer and two numbers, and calls whatever function is pointed-to by the function pointer, then returns a pointer to the result.
A function pointer, 'binOp', is used as the pointer to either mulOp or divOp. It is set to point to either of these functions, which is then called from ‘main’ using the function pointer. Then, to demonstrate passing function pointers to other functions, mulOp and divOp are passed to evalOp as function pointers and evalOp calls the function using the pointer, Listing 2 contains a print-out of the function pointer data, the function addresses, and the results of the function calls.
Notice that each of these functions accept exactly the same number and lypes of arguments, and return the same type of data (an int defined as a BOOLEAN). Unfortunately, even when function pointers are used to avoid hard-coding function calls, the code still contains knowledge about the arguments which go into and are returned by the functions. This is not as severe a restriction as it first appears, because generally many functions within a program have the same calling protocol. This is especially true for interactive graphics programs. Functions which have the same argument protocol and
calling sequence can be grouped into classes, and a function pointer can then be used to call any function within the class.
Even though the program in listing 1 is simple, the technique used could be applied in an interactive program which parses typed input, determines the desired operation, gets a pointer to the function for the operation from a table, then calls the function through the pointer. And speaking of tables of function pointers... Complicated Pointer Declarations Pointers can be combined with variables, arrays, structures, and functions to create all kinds of (almost) unreadable declarations. You can create tables of function pointers, pointers to functions which return pointers to other function
pointers, function pointers inside structures, and many other combinations, some of which can be quite useful and most of which are quite confusing.
To compose and interpret complex declarations, you need to understand the precedence of the C operators and the order in which the operators are evaluated. I’ll present only the precedence for operators which are commonly used in composing complex pointer definitions or which have been discussed.
Each operator within the same group has equal precedence with the other operators in the group. The group of operators having the highest precedence are: () function call () array element . Structure or union member
- struclure or union member using a pointer.
(continued') This group of operators are evaluated from left lo right.
The group of operators having the next highest precedence are: & address operator
* indirection operator ++increment operator
- - decrement operator (others) These operators are evaluated
from right to left.
What all of this boils down to is that since the operators for functions and arrays have higher precedence than the indirection operator, parenthesis have to be used to declare a pointer to an array or function. Thus ’an array of pointers' is ’ptrArray [DIM], but 'a pointer to an array’ is (*arrayPtr)[DLM]; and ‘a function returning a pointer’ is ’ptrFuncO, but ‘a pointer to a function* is (’funcPtr)O.
In. ‘C Programming Language - An Applied Perspective’, authors Lawrence Miller and Alex Quilici present methods for composing and interpreting complex declarations. To compose the declaration, first write a description of it in English, with each part separated. Next, go through the description from left to right and find a C declarator for a variable of that type.
Finally, go through the description again from left to right and replace each declarator for the identifier in the declarator to its right. I’ll use declarations from the demo program in listing 3 to show how this method works.
The program stores function pointers in arrays dimensioned by the number of actions the program implements. Each action has a corresponding action procedure. For example, the search action is implemented by either searchLineO or search- PointO- The program thus has an array which holds function pointers to the 'line' action procedures and an array which holds function pointers to the ’point’ action procedures. These two arrays make up a table of function pointers indexed by the data type (line or point) and the action (search, delete, display, or displaylnfo). Each action procedure returns
an integer value of 0 or 1 indicating success or failure. Macros for BOOLEAN, FALSE, and TRUE are used for the function type and function return value.
Using the method described above, tire function pointer array declaration is composed with the following steps:
1. English description - an array of - pointers to - functions
returning - BOOLEANs
2. The first left to right scan produces.- funcPtrf) ‘ptr
functionC) BOOLEAN
3. Left to right substitution with parenthesis for precedence:
a. substitute funcPtri) for ptr - *funcPfr()
b. substitute 'funcPtr() for funcfionO - (*funcPtr())()
c. append to base type - BOOLEAN (*funcPtr())() Wow, AC has done
it again!
COMPUTING Reader Friendly - Reader Service Due to the tremendous response of our original Reader Service Program, Amazing Computing announces an easier way to contact AC advertisers: The AC Reader Service Card Mailer.
To use die AC system, simply locate all the Amazing Advertisers you wish to contact below, find their appropriate AC Reader Service Card Numbers, and mark them on the card to the right.
Fill in your address and mail die card. It is that easy!
Index of Advertisers Advertiser Page Reader Service Advertiser Page Reader Sendee Number Number Amazing Computer Systems 28 128 Microsmiths 61 163 Andc Publishing 17 117 Micro Way 62 162 37 137 Mind ware international l 101 Central Coast Software 43 143 New Tek CIV 200 Communications Specialties Inc. 46 146 New Wave Software 31 131 D-Five Associates 99 199 One Byte 56 156 Delphi Noetic Systems 83 183 OTG Software 54 154 Elipsys 79 179 Oxxi. Inc. CIT 205 Emerald Intelligence 49 149 Poor Persons Software 30 130 Erich Stein & Associates 34 134 Progessive Periphals 9 109 Expansion Technologies 51
171 Quality' Business Systems 65 265 EZ Soft 69 169 Rainbow’s Edge Production 87 187 Fishers Computers and Software 107 210 Ronin Research and Development 4 104 Flexible Data 5ystems 93 193 Sedona Software 85 185 Gramma Software 65 201 Soft Link 101 204 Great Valiev Products 7 107 Software Advantage Consulting 60 160 Great Valley Products (Dealers Only) 7 207 Software Sensation 27 127 Hi-Tech Graphics 35 135 Software Terminal 14 114 Interactive Video Systems 53 153 Software Visions 29 129 King Publishing 70 170 The Bit Bucket Computer Store 76 176 68 168 The DISC COMPANY 21 121 Lattice 13 113
The MEMORY LOCATION 103 203 Megatronics cn 100 The STERLING CONNECTION 57 157 Micro Masters 52 152 The TRUMOR COMPANY 66 166 Micro-Systems Software 55 155 TRU-IMAGE 91 191 Microbotics 19 139 The AC Difference OK, diis is not really a new idea. But, we have added a new twist.
Gone are die awkward lines "Reader Service Card Number XXX" that reside somewhere on an advertisement. Instead, AC has listed all the advertisers in the Index Of Advertisets with their page numbers and special codes.
Now it is easy to find all die information you want for any AC advertiser in just one place. As always, Amazing Computing has placed their readers first!
Rather than constantly having to figure out declarations in the code, C's 'typedef can be used to simplify the program syntax and make it more understandable. In the demo program, the above array of function pointers is defined as type FUNCPTRJT. The actual declaration is: typedef struct func I BOOLEAN CfuncPtrCNUMACTIONStX); 1 FUNCPTRJ; This type is then used to declare the table of function pointers as an array of two FUNCPTRJT structures: FUNCPTRJ functionTable(2); I’ll give one more example of the technique for constructing complex declarations with another declaration from the demo
To manage the function pointer table, two procedures are used. One procedure simply initializes the table values.
The other procedure accesses the table using the data type and the action code as indexes, and returns a pointer to the indexed function. A description of the access procedure is: a function returning - a pointer to - a function returning -a BOOLEAN The first left to right scan produces: func() *ptr func(} BOOLEAN left to right substitution then produces:
a. *func() b (‘func())()
c. BOOLEAN *func()) ) The access function is named
‘getFunction’, so the final declaration is BOOLEAN
As you can see from the above, this technique for composing complex declarations is very useful and understandable. I was certainly happy to learn it. I knew that all types of declarations could be constructed in C, but didn't know how to make them until I read about the above method.
The method for converting a declaration to an English description is recursive: determine the type of an identifier by finding the type of the innermost declarator, write down the identifier type, substitute the identifier for its declarator, then continue the process until only a single identifier is left. C’s operator precedence is used to determine tire innermost declarator: it is an identifier followed by [) or 0, or if neither of these is present, an identifier preceded by *. I'll use the two declarations from the demo program to show how this works.
The function pointer array, BOOLEAN (,funcPtrO)0, is decomposed as follows:
a. find innermost declarator - funcPtrf) - an array
b. substitute 'x' for funcPtrf) - BOOLEAN Cx)()
c. find innermost declarator - *x - of pointers
d. substitute 'x1 for -x - BOOLEAN x()
e. find innermost declarator - x ) - to functions returning
f. Only one identifier - BOOLEAN x() - BOOLEAN The English
description is thus ‘an array - of pointers - to functions -
returning BOOLEAN’.
The function declaration, BOOLEAN CgetFunctionC))(), is decomposed in the same way:
a. innermost - getFunction ) - a function returning
b. substitute Y for getFunction - BOOLEAN (*x)()
c. innermost - *x - pointers to a, substitute Y for *x - BOOLEAN
e. innermost - x()-functions returning
e. Only one identifier - BOOLEAN x() - BOOLEAN The English
description of the declaration is then 'a function returning -
pointers to - functions returning - BOOLEAN". Magic!!! Now you
should be able to easily construct and interpret just about
any C declaration.
Applying Function Pointers To show the usefulness of function pointers, the program in listing 3 is a version of the linked list demo program from my article about linked lists. The program demonstrates how function pointers can be used in place of hard-coded function calls to increase reusability of frequently used procedures, and shows one technique for managing the function pointers.
For those readers who missed the linked list demonstration program in my last article, the program graphically displays several lines and points in an intuition window and waits until an object is ‘picked' with the mouse. Information about the picked object is then displayed in a text window, which remains displayed until the close gadget is selected. This continues until the graphical display window is closed, which ends the program. Pointers to the individual lines and points are stored in nodes in a linked list, and the entire program works by manipulating the list nodes. Each node
contains a type code which is either POINT.TYPE or LINEJTYPE, and a generic ( unsigned char *) pointer to the actual point or line structure.
There are several procedures for manipulating linked lists in die program. As originally written, some of the procedures were general-purpose, but several of them contained data type dependencies. The procedures searchList ), displayListC), displayNodetnfoC), and delete.Node( ) had to determine the type of data pointed to by a node and then call either a 'point' procedure or a 'line' procedure to accomplish their purpose. As coded, the procedures could not be used for any type of data other than points and lines.
Linked lists are very useful creatures for interactive graphics programs where the user is constantly adding and deleting objects, so procedures which can deal with linked lists in a generalized manner without code modifications or code additions are also very useful. I'm a lazy programmer and don't like to rewrite the same basic procedures over and over, nor do I like adding to or modifying almost every procedure in a program when I add new data types or change existing data types. But hotv can this be avoided? You guessed it - with function pointers!
I mentioned above that most data types in graphics programs have basically the same procedures with the same argument lists, return values, and calling sequences. The linked list demo program from my last article is no exception: it has two data types, a point and a line, and each of these types has (continued) [he same set of procedures with the same calling protocol. If arcs, circles, and rectangles were added to the program, they would also have the same set of procedures and calling protocol. This being the case, a single line of code with a function call via a function pointer can replace
every specific function call in the list procedures and can also handle new data types. The only problem with using a function pointer is that some method of getting the correct pointer is needed.
There are two pieces of information available for each function call in the linked list procedures which can be used to select the correct function pointer. Each list node contains a type code for the pointed-to data, and each procedure implements a single specific action for a single data type, These two pieces of information can be used as indexes into a table of function pointers.
The type codes were defined in the original program. To use action implementions as an index, an action code is defined corresponding to each procedure. There are four action codes: SEARCH. DELETE. DISPLAY, and DISPLAYINFO. These correspond directly to tire point and line procedure calls originally hard-coded in searchNode, deleteNode, displayNodc, and dispIayNodelnfo.
I’ve already discussed the declarations used to construct the table of function pointers. With the action code indexes, here is what the table conceptually looks like: action type SEARCH DISPLAYINFO POINT.TYPE searchPoint ... d splayPointlr.fo LINE_TYPE searchline asplayLinelnfo Rather than store the table as a two-dimensional array, it is actually defined as an array of structures, with each structure corresponding to a row of function pointers for each type of data.
To simplify table creation and access and remove details about the table from the remaining code, the table is initialized in InitFuncTblO and accessed using (*getFunction0)0- The initialization routine is called from mainf). This procedure then calls bindPointO and bindLineO with a pointer to each data type's junction pointer array. The procedure bindPoint fills in the function pointers for the point data type and bindLine fills in the function pointers for the line data type. Eor example, inside bindPoint the code to initialize the function pointer for the point's search procedure is
'functionArray- funcPtr[SEARCH] = search Point1.
Although initFuncTbl contains type dependencies, the dependencies have all been removed from the four node procedures and placed in a single initialization procedure.
Placing the type dependencies in a single procedure simplifies code modification and increases the reusability of the node procedures.
The access procedure (’getFunctionO)O is called with the data type from the list node and an action code. These two input arguments are used as function selectors by indexing into the function pointer table. The code which indexes tire table is ‘functionTableltypel.funcPtrfaction]’ (remember that funcPtr is an array defined as a structure and functionTable is an array of funcPtr structures). An example of a call to the access routine (from deleteNodeO) is 'delete = getFunction(node- dataType,DELETE)', where 'delete' has been declared as 'BOOLEAN ('delete)O’. Note that the procedure
'getFunction' is not really necessary.
The table can be directly accessed by any procedure in the program. Direct access inLo Lite table is certainly faster than calling a procedure to access it. The problem with doing this is that if the table data structure is changed, all of the procedures directly accessing it may also have to be modified.
The significant differences between this version of the list demo program and the previous version are that each data type now has a binding- procedure which links application specific code to general purpose code, two procedures for managing the linkages have been added, and type dependencies are no longer embedded in the linked list node procedures. The ‘report’ procedures in tire original program which wrote information about the linked lists have been removed, and only one type of linked list (a LIFO list) is used in this version.
In a small demonstration program with only two types of data and which doesn't really do much, the impact of using function pointers probably isn't apparent. In a large application with 10 or more data types and 10 or more top-level actions, the reduction in the amount of code and the simplification of the code can be truly astounding.
Summary Before I learned C, i bad used a language which fully supported function pointers and recursive data definitions. !
Discovered how powerful and useful these language features were, and when I began learning C. I wanted to know how to use the same features. Unfortunately, it was difficult to find examples of C programs which used function pointers, or to find textbooks which discussed complex declarations and function pointers in enough detail to be useful. So through trial and error (mostly error) and visits from the dreaded .Amiga GURU, I figured out how to declare and use complex structures and function pointers. Hopefully, the material presented in this article and the demonstration programs have
provided enough information for you to exploit C's more esoteric features while avoiding some of the pitfalls.
The following three statements summarize what has been discussed and demonstrated:
a. Pointers can be combined with C's basic built-in data types
and with user-defined data types to construct almost any data
structure imaginable.
B. Complex declarations in C can be methodically constructed and
interpreted with a few simple rules,
c. Function pointers can be used to simplify code, reduce code
volume, and increase the generality of procedures.
Further Reading One of the best books I have found for learning C and which covers the material presented here in much greater detail is C Programming Language - An Applied Perspective, by Lawrence Miller and Alex Quilici.
Published by John Wiley and Sons.
This book is available in paperback. It contains many clear examples of just about all of C’s features and the best explanations of pointers I have seen anywhere.
Listing One fpDemol.c * Listing 1 - function pointer demo, fpDemol.c *
* simple demo of declaring, setting and using a
* function pointer.
* Lattice compile 4 link command: Ic -Lm fpDemol.c
* (c) Copyright 1988 by Forest W. Arnold * t«6a!!S==: = =
==«Bsc = ==x = == = 3a=i. = =i==2===a = aas«"ss:sssS* I
include stdio.h ?include math.h ? Ifr.def BOOLEAN ?define
BOOLEAN int ?endif ?ifndef FALSE ?define FALSE 0 ?endif ?ifndef
TRUE ?define TRUE 1FALSE ?endif ?define ABS (x) ( x) 0 ?
- x1 ; (x)
* declare some binary functions.
* These will all accept two double operands as input
* and a double pointer for output. The function
* return value will be ’TRUE' for success, 'FALSE'
* for an error condition (divide by zero) • BOOLEAN mulOpO;
BOOLEAN divOpO; * declare an 'evaluate' function * BOOLEAN
evalOp O; main () ( double operl,oper2; double result; BOOLEAN
(*binOp)(); * The function pointer * binOp » NULL; * set
func ptr data to NULL " printf("XnFunction Pointer
Demo... n n"); printf("Function pointer data: n n"); printf (“
function pointer address: %x n", fibinOp) ,¦ printf(* function
pointer contents: %x n",binOp); printf PvnFunetion
addresses; n n"); printf (w MUL function address: %x n",mulQp);
printf(w DIV function address: %x n",divCp); operl = 10.0; *
set test values * oper2 = 15.0; *
* Execute each function via its pointer " First, set the function
pointer tc point to
* che address of the operator function.
* Next, output the function pointer.
* Next, call the function using the function ptr.
* Finally, output the results of the call * *- multiply using
ptr to ’nulOp' -" binOp = muiOp; * set function pointer *
printf (“ nKultlplying numbers. BinOp = %x n"rbinOp) ; (void)
(*binOp)(operl,oper2,sresult); * call it * printf(M %f * %f a
%f n",operl,oper2,result); • divide using ptr to 'divOp' -*
bir.Op = divOp; ¦ set function pointer *!
Printf(" nDividing numbers. BinOp = %x n",binOp); (void) (“binOp)(operl,oper2,firesult); * call it *!
Printf(" %f %f 3 operl,oper2,result); ¦
* Demo passing a function pointer to another
* function. We'll use same operands 4 perform
* same operations * *- pass multiply function s operands '
evalOp( muiOp,operl,oper2,4result); printf("Sack from evalOp
multiplication. n"); printf(* Product = %f n",result); *- pass
divide function a operands * evalOp(
divCp,operl,oper2,4result); printf("Back from evalOp
division. n"); printf (" Dividend =¦ %f n", result) ,- exit(0);
) ¦ muiOp - multiply operands 4 return ptr to result *
BOOLEAN muiOp(operl,oper2,result) double operl,oper2; double *
result; ( "result = operl ¦ oper2; return ( TRUE I; ) * divOp
- divide operands 4 return ptr to result * BOOLEAN
divOp(operl,oper2,result) double operl,oper2; double "result,-
if ( A3S(oper2) = l.e-15 ) return( FALSE ); "result = operl
oper2; return( TRUE ); ) * evalOp - perform a binary
operation via a func ptr * BOOLEAN evaI0p(
operator,operancl,operand2,result ) BOOLEAN ('operator)()? *
function pointer *t double operand!,cperand2; ’ operands *1
double "result; !* function results * ( if ( ! Operator ) !*
check func pointer *!
printf("XnevalOp: NULL function pointer."); return! FALSE ); I else ( printf(M nevalOp: function pointer = %x n", operator) ,* return( ("operator)(cperandl,operand2,result) ); Listing Two Output of fpDemol.c Listing 2. Output of fpDemol, simple function pointer demo Function Pointer Demo... Function pointer data: function pointer address: 22a350 function pointer contents: 0 Function addresses: KUL function address: 226dC2 DIV function address: 226d32 Multiplying numbers. BinOp - 228d02
10. 000000 * 15.000000 = 150.000000 Dividing numbers. BinOp =
10. 000000 15.000000 - 0.666667 evaiOp: function pointer =
22Bd02 Back from evaiOp multiplication.
Product = 150.000000 evaiOp: function pointer 226d32 Back from evaiOp division.
Dividend = 0.666657 Listing Three fpDemo2.c Listing 3. Linked List Demo Program Source Code fpDemo2.c - program to demonstrate generic linked lists with different data types using function pointers lattice compile link command: ' lc -L fpDemo2.c*
(c) Copyright 1988 by Forest W. Arnold = , = === = S = = = = =
:!==S= = = = = = === = = = = i = tS === = = = = = = :: =
S=iSV ?include exec types.h ?include
intuition inruition.h ?include stdio,h ?define
INTUITION_REV 33 ?define GRA?BICS_RSV 33 struct IntuitionBase
“IntuitionBase; struct GfxBase “GfxBase; * 'make life easy'
stuff * ?define BOOLEAN int ?ifndef FALSE ?define FALSE 0
iendif ?ifndef TRUE ?define TRUE 1 ? Er.dif ?ifndef NOT
?define NOT I ?endif (x *)mailoc( sizeof(x) ) ) ( free (
(char *)x ) ) ? Define NEW(x) ? Define FREE (x) ?define
ABS(x) ?define MXN(x,y) ?define MAX(xry) ( (x) 0 7 - (x) :
(x) ) ( (x) (y ? (x) : (y) ) (x) (y) ? (x) : (y) )
typedef struct point ( short x; short y; ) PQIN7_T; ?define
?OINT_TYPE 0 typedef struct line I short xl,yl; short x2ry2;
} LINE_7; ?define LINEJTYPE 1 !* define a node for the linked
list. * typedef struct node ( struct node *next; * the list
'link' pointer * int datatype; “ code for type of data *
unsigned char 'data; * pointer to the actual data * |
NODE_T; " define a list header for a LIFO list. ¦ typedef
struct header I NODE_? “topNode; } HEADER_T; * define
function selector action codes * * These will be indexes
into function array which will ¦ “ 'select' the function
pointer * ?define SEARCH 0 ?define DELETE 1 ?define DISPLAY
2 ?define DISPLAYINFO 3 ?define NUKACTIONS 4 I* define a
function pointer array to hold pointers to * !* functions
returning 'BOOLEAN' values * ¦ using ‘typedef* makes this
easier to deal with ’ typedef struct func I BOOLEAN
(“funcPtr[NUMAC7I0NSj)(); « func ptr array * J FUNCP7R T;
* declare a function pointer table * This declaration
allocates two FUNCP7R_ " for the POINT T and one for the
LINE T arrays, one FUNC?TR_T functionTable[2]; • declare
procedures for managing function pointers BOOLEAN
initFuncTbl(}; I* initialize func ptr table * BOOLEAN
(“getFunctionO } O ; * return function pointer V " declare
the procedures for manipulating the data types* N0DE_7
* create?oint O; I* return point & node * BOOLEAN bindPoint ();
* set 'point* function ptrs BOOLEAN searchPoint (); • look
for point at x,y * BOOLEAN deletePoint I); * delete
point-node combo * BOOLEAN displayPoint (); * graphic point
display * BOOLEAN displayPointlnfo(} ; “ textual point display
“ M0DE_7
• createLine(); j • return line & node
* j BOOLEAN bindLine O ; * set 'line* function ptrs *1 BOOLEAN
searchLine 0; * look for line at x,y *1 BOOLEAN deleteLine();
f* delete line-node combo * BOOLEAN displayLine(); • graphic
line display * BOOLEAN displayLinelnfo ); * textual line
display •!
BOOLEAN insertNode(); * ’push* node onto node list * BOOLEAN removeNode (); * remove node from list - BOOLEAN deleteNode I); * delete a node s data * BOOLEAN deleteList (); J* delete entire list * BOOLEAN displayList(); - display entire list “ 300LEAN displayListlnfo(); * display info about a node • N0DE_7 “searchList(); * search list for a datatype « define some data types We'll use a simple pixel point and a line void cleanup(hdr,window) HEADER_T "hdr; struct Window ‘window; ( if ( hdr ) deleteList( hdr ); if ( window ) Ciose'Window( window ); closeLibs (); BOOLEAN openLibs();
void closeLibs (},- void cleanup (J; struct Window ‘ailocWindow(); void gpDispIayMsg(); void handlelnput(); * struct window "window; HEADER_T listHead; NODE_T "node; unsigned long wFlags; unsigned short iFlags; short i, x,y,xl,yl; short xlnc,yInc,temp; wrlags = WINDOHCLOSEIWINDOWDRAGISMART_REFRESHI ACTIVATE; iFlags = CLOSEWINDOWIMOUSEBUTTONS; initialize the list header. Make sure list pointer starts out as 'NULL'.
• Procedures for managing function pointer table " initruncTbl()
- call ‘bindPoint' 4 'bindLine' to set function pointer array
* getFunction() - return a pointer to a function - • BOOLEAN
InitruncTbl0 ( * call ‘binding' routine for each datatype.
Send * each routine a pointer to its func ptr array if ( NOT
bindPoint( 4function7able|POINT_T¥?E] ) ) printf("Can't get
pointers to 'point' routines. n" return( FALSE ); if ( NOT
bindLinel ifur.cticnTable(LINE_7YPEJ ) ) listHead.topNode =
NULL; ( create the list, alternating between points and lines.
Return ( TRUE ); * printf ("Can't get pointers to 'line' routines. r.") ; return FALSE ); x « 120; y = 30; xl = 135; yl = 20; xlnc = 40; ylnc - 0; for ( i = 0; i 5; !¦+ if ( node = createPoint( x,y ) ) (void) insertNode[ 4listKead,node ); if ( node = createLine ( xl, yl, xl+xlr.c,yli-ylnc ) ) (void) insertNode( ilistHead,node ; x += 60; y += 20; xl +» 60; yl +*¦ 2 0; BOOLEAN (‘getFunction())( type,action ) int type; • the datatype 4 the table 'row' index int action; ¦ the action code 4 ptr array ir.cex if ( type 0 I[ type 1 II action 0 [| action ° NUKACTIONS ) return( NULL );
return( functionlabie[type].funcPtr[action] ); 1 •- • • *- insertNode() - insert a node into a LIFO list ¦ initialize the function pointer table if NOT initruncTbl () ) i printf("Can't initialize function pointer table. n"}; cleanUp(ilistHead,NULL); exit (1); " initialize intuition stuff 4 display the data * if ( NOT openLibs() ) cleanup(4listHead,NULL); exit (1); } if I NOT (windowoallocWindcw(NULL,NULL,40,20,560,150, “LIST DEMO",wFlags,iFiags,-1,-1)) ( cleanup(&listHead,NULL); exit (1) ; I SetAPen(window- RPort,1) ; Move(window- RPort,130,140); Text(window- R?ort,"Pick entity to
show data.”,25); (void)displayList( window, iiistHead ); * process input until window close gadget picked * handlelnput(window,ilistHead); cleanup ilistHead,window ); exit(0); BOOLEAN InsertNode(hdr,node) HEADER_? *hdr; NODE T ‘node; check for valid hdr 4 node pointers if ( NOT hdr II NOT node ) return( FALSE ); node- next ** hdr- topNode; " link it hdr- copNode = node; * make node the new 'top' return £ TRUE ;
• BOOLEAN deleteList 0 - delete an entire linked list • BOOLEAN
deieteList( hdr ) HEADER_T ‘hdr; NODE_T "node; * the current
node to delete if ( NOT hdr ) return ( FALSE ); while ( node ¦
hdr- topNode ) * stop when 'NULL' ( hdr- topNode = node- next;
* update list top ptr (void) deleteNgde( node ); f* delete it
return( TRUE ); ) 'ii«noBt»jl»nonnynqBS=3anflBBPiiPBUSSS=
aawnsn P H 3 S3 S3 SSBHHBSS *
* searchListO - look for a node at input coordinates
* by calling 'search' function for the
* datatype via a function pointer (continued) ¦is this it 7 !*
re-link nodes * reset previous ' r.ot in list node curr )
NODE_T "searchList( hdr,x,y ) HEAD£R_7 "hdr; shore x,y; I NODE
T "node; I* the current search node BOOLEAN ('search) (); '
function pointer if ( NOT hdr ) return ( FALSE ); node =
hdr- topNode; * start at top while node ) * stop when node
is NULL if ( search = getFunction(node- data7ype,SEARCH) ) if
( ('search)(node,x,y} ) " call function return( node ) ; '
found the node node “ node- next; " get next node in the list
prev- next = r.oce- next; return( TRUE ); prev - curr; return!
* deieteNodeO - delete a single node 6 its data using
* func ptr to ‘delete' procedure * BOOLEAN deleteNode( node )
NODE_T "node; i BOOLEAN ('delete) () ; if ( NOT node ) return(
FALSE ); if ( delete = getFunction(node- dataType,DELETE) )
return! ("delete)( node ) ); else return( FALSE ); ) *
* Procedures for points;
* bindPoint0 - initialize point's func ptr array
* createPoint0 - create and initialize a point i its
* list node
* deletePoint() - delete an instance of a point
* searchPoint() - see if a point is at input coordinates
* displayPoint() - graphically display a point
* displayPointlnfo0 - display data in message window * BOOLEAN
bindPoint( functionArray ) FUNCPTR_T *functionArray; ( if ( NOT
functior.Array ) return! FALSE );
functionArray- funcPtr[SEARCH] = searchPoint;
functionArray- funcPtr[DELETE] - deletePoint;
functionArray- funcPtr[DISPLAYl = displayPoint?
FunctionArray- fur.cPtr [DISPLAYINFO) » displayPointlnfo; return! TRUE )?
¦ didn't find one at the x,y return( NULL ); displayList() - graphically display entire list using func ptr to 'display' routine * BOOLEAN displayList( windowrhdr ) struct Window "window; HEADSR_T *hdr; tJODE_T 'node; ' the current node BOOLEAN ("display)(); * ptr to display function if ( NOT hdr || NOT window ) return( FALSE ); node = hdr~ topNode; * start at top ' stop when node is NULL while( node ) I if ( display = getFunction(node- dataType,DISPLAY) (void) ('display)( window,node ); get next node in the list node = node- next; return( TRUE ); displayNodelnfo!) - text display of
data for a node using ’displaylr.fo' func ptr ' NODE_T 'createPoint x, y ) Short x,y; [ NODE_T 'node; * the list node to carry the point POINT_T "point; * the point structure BOOLEAN displayNodelnfo( window,node ) struct Window 'window; NODE_T 'node; ( boolean ('display) 0; ' 'displaylnfo' funcptr if ( NOT node I I NOT window } return( FALSE ); if ( display = getFunction(ncde- data7ype,DISPLAYINFO) return( ('display)( window,node ) ); else return( FALSE ); ( NOT (node=NEW(NODE_T)} return( NULL ); * allocate the node if ( NOT (point»NEW(POlNT_T)) ) * allocate the point * didn't get it
* release node nemcry 1 FREE( node ); return! NULL ); } point- x = x; point- y * ir.it the point removeNode(} - remove a rode from a FIFO list.
BOOLEAN removeNode(hdr,node) HEADERJT *hdr; N0DE_T 'node; I NODE_T *prev,*curr; * previous,current nodes if ( NOT hdr I I NOT node ) return( FALSE ); * check the top node first if I NOT (prev = hdr- tcpNode) ) return ( FALSE ); * list is empty * initialize the node. Coerce point to unsigned char node- next = NULL; node- data?ype = POINTJTYPS; node- data = (unsigned char')point; return( node }; ) " * BOOLEAN deletePoint! Node ) NODE_T “ncde; !
POINT T "point;
• make sure we have a valid node pointer, correct ’ data type,
and valid pointer to free if ( prev == node ) * is it the top
node ?
* re-link nodes I hdr- topNode = prev- next return( TRUE ); ) • it wasn't the first one - have to search the list while ( curr *• prev- next ) ( if ( NOT node I I node- dataType != POINT_TYPE ) return! FALSE ; if ( NOT (point - (POIN?_T*)ncde- data) ) return( FALSE ); FREE! Point ); FREE( node ); return! TRUE ); BOOLEAN searchPoint( node, x,y ) NODEJF -node; short x,y; POINT_T ‘point; short xDlst,yDist; short cps = 4; if ( NOT node f| NOT (point = (POINT_T* node- data) ) return ( FALSE }; xDist * ABS( x - point- x ); yDist = ABS( y - point- y ); if ( xDist = eps £4 yDist = eps ) return
TRUE ); return ( FALSE ); } BOOLEAN displayPcint( window,node ) struct Window ‘window; N0DE_7 ‘node; I POINT_T ‘point; short x, y; * make sure we have valid data, then display it * if ( NOT window || NOT node ) return( FALSE ); if NOT (point = (?OINT_T ')node- data) return(FALSE); point- x; point- y; Move (windcw- R?ort, x-2, y-2) Draw(window- R?ort,x+2,y+2) Move(window- RPort,x-2,y+2) Drav(wir.dow- R?ort, x+2, y-2) return ( TRUE ); I ' ¦ BOOLEAN dispiayPointInfo( window,node ) struct Window ‘window; N0DE_T ‘node; ( ?OINT_T ‘point; char strl [61],str2161J,scr3[61 ] ; * make sure we
have valid data, then display it * if ( NOT window II NOT node } return! FALSE ); if ( NOT lpoint=(?GIiJT_7 *)node- data)) return(FALSE); SetAPen(window- R?ort, 3); * highlight it * (void) displayPcint( window,node ); * put data into strings 5 display message window sprintf(strl,"Node a 4x, next = %x, data - %x", node,node next,node- data); sprintf(str2,"Picked entity type is PQINT_TYPE"); sprintf (str3, "x ~ %d, y - %d'',point- x, poir.t- y) ; gpDisplayMsg(strl,str2,str3 ; ¦ display the data SetAPen(window- RPort,1); • unhighlight it (void) displayPcint( window,node ); return( TRUE );
NODE_T ‘node; ¦ the list node to carry the line LINE_T ‘line; * the line structure if ( NOT (node-NEW|NODE_T)) ¦ allocate the node return( NULL ); if ( NOT (line-NEW(LINE_T)) ' allocate the line * didn't get it * release node memory ( FREE( node ); return ( NULL )?
) lir.e- xl - xl; line- yl - yi; line- x2 = x2; line- y2 - y2; • initialize the node. Coerce line to unsigned char ncde- r.ext - NULL; ncde- daaaType - LINE_7Y?£; node~ data = (unsigned char*)line; return ( node ); BOOLEAN deleteLine node ) N0DE_T ‘node; LINE_7 ‘line; ¦ make sure we have valid data if ( NOT node I I r.ode- dataType I return( FALSE ); if ( NOT (line = (LINE_T‘)node- data) ) return( FALSE ); LINE TYPE ) FREE( line ) ; FREE( node ); return TRUE ; } • BOOLEAN searchLine! Ncde,x,y ) M0DE_T "node; Short x,y; shcrt min minYjmaxX, naxY; short eps = 4; if ( NO? Node !l NOT
(line = (LINE_T‘)node- data) ) return ( FALSE ); ‘ NOTE: this method of determining if point is or* line only works for horiz i vert line segments !* build an 'epsilon' box around line segment minX = MIN;line- xl,lire- x2) - eps; minY = MIN(line- yL,line- y2) - eps; maxX = MAX(line- xl,1ine- x2) + eps; maxY MAX(line- yl,line- y2) + eps; if ( mir.X * x i* y. = maxX mir.Y = y ii y = naxY ) return( TRUE ) ; return( FALSE ); Procedures for Lines: bindLineO - fill in line's function pointer array createLine!) - create and initialise a line & its list node deleteLine() - delete an instance of
a line searchLineO - see if a line is at input coordinates displayLine;) - graphically display a line segment displayLinelnfo ) - textually display line info BOOLEAN displayLine( window,node ) struct Window ‘window; NODE T ‘node; ¦ LINE_? ‘line; * make sure we have valid data, then display it if ( NOT window II NOT node ) return I FALSE ); if ( NOT (line = (LINE T *)node- data)) return(FALSE); BOOLEAN bindLine functior.Array ) FUNCPTR_T ‘functionArray; ( if ( NO? FunctionArray ) return; FALSE ); functionArray- func?tr[SEARCH] = searchLine; functionArray- func?tr[DELETE] = deleteLine;
functionArray- funcPtr[DISPLAY] = displayLine; functionArray- func?tr[DISPLAYINFO] = displayLinelnfc; return ( TRUE ); * !• ))ODE_T ‘createLine ( xl,yl,x2,y2 ) Short xl,yl; short x2,y2; Move (window- RPort, iir.e- xl, line- yl) ; Draw(windcw- RPort, iine- x2, Iir.e- y2) ; return( TRUE ); SetAPen(window- RPort,3); * highlight line * (void) displayLir.e ( window,node ); * put data into strings 4 display sprintf(strl,"Node = %x, next = %x, data - $ x", node,node- next,node- data) ; sprintf(str2,"Picked entity type is LINE_7YPE'r) ; sprintf(str3,"xl = %d, y! ~ %d, x2 e %d, y2 %dwf
line- xl,1ine- yi,line- x2,line- y2); display the data gpDispiayMsg(strl, str2, str3) ; SetAPen(window- RPort,1); * unhighlight li (void) displayLinet window,node ); return( TRUE );
* Intuition Utility Procedures:
* oper.Libs() - open libraries
* cioseLibsO - close intuition libraries
* ailoc'WindowO - allocate, inititaiize 4 open window
* gpDispiayMsg(} - display a message to a graphical
* message window
* handlelnput - intuition input handler - BOOLEAN OpenLlbSl)
IntuitionBase = (struct IntuitionBase *)
OpenLibrary("intuition.library",INTUITION_REV); if ( NOT
IntuitionBase J return! FALSE ); GfxBase = (struct GfxBase *)
OpenLibrary("graphics.library",GRA?HICS_REV); if ( NOT GfxBase
) return! FALSE }; return TRUE ); return; if ( strlen(strl)
60 ) * clip txt len to 60 chars "
* (strl+60) = ' 0'; if ( strlen(str2) 60 )
* (str2+60) = ' 0'; if ( strlen(str3) 60 ) ’(str3+60) = ' 0';
SetAPen(msgWindow- R?ort, 19; * display messages *
Move(msgWindow- R?ort,10,20); Text (m.sgWindow- R?ort, strl,
strlen (strl)); Move(msgWindow- RPort,10,30);
Text(msgWindow- R?ort,str2,strlen(str2)); Move
(rasgWindow- R?ort, 10,40) ;
Text(msgWindow- R?ort,str3,strlen(str3)); * wait for message,
then clear port 4 close window ' for(;;) [ Wait t 1 «
msgWindow- User?ort- rr.p_Sig3it ); while! Msg = (struct
IntuiMessage") GetMsg(msgWindow- User?ort) ) I class «
msg- Class; ReplyMsg! Msg ); if ( class == CLOSEWINDOK M class
== INACTIVEWINDOW ) ( while! Msg = (struct IntuiMessage")
GetMsg (msgWindow- UserPort) ) ReplyMsg( msg I; CloseKir.dow (
msgWindow return; 'continued) ) * * void cioseLibsO if (
IntuitionBase ) CloseLibrary(IntuitionBase); if ( GfxBase )
CloseLibrary(GfxBase); } *-* struct Window "allocwindow(
screen,gadget,x,y,w,h, wFlags,iFlags,cO, cl ) struct Screen
"screen; struct Gadget "gadget; SHORT x,y,w,h; char "name;
ULONG wFlags; USHORT iFlags; SHORT cO,cl; struct NewWindow
NewWindow; struct Window "window; NewWindow.LeftEdge ** x;
NewWindow.TopEdge ** y; NewWindow.width = w; NewWindow.Height *
h; NewWindow.DetailPen q cO; NewWindow.BlockPen = cl;
NewWindow.Title = name; NewWindow.Flags = wFlags;
NewWindow.IDCMPFlags = iFlags; NewWindow.Type = WBENCHSCRSEN;
NewWindow.FirstGadget = gadget; NewWindow.CheckMark = NULL;
NewWindow.Screen screen; NewWindow.BitMap = NULL;
NewWindow,MinWidth = 20; NewWi n dow,Min He i ght “20;
NewWindow,MaxWidth = 640; NewWindow,MaxHeight = 400; window =
(struct Window *)OpenWindow( SnewWindow ); return( window ); 1
---- void handlelnput! Window,hdr ) struct Window ¦window;
HEADER I "hdr; struct IntuiMessage "message; NODE_T "node;
unsigned short mCode; unsigned long mClass,iFlags; short nX,mY;
iFlags - window- iDCMPFlagsr " save IDCMP flags * * wait for
a message to arrive * for (;;) ( Wait( 1
window- UserPort- mp_SigBit ); * process messages until there
are none * while( (message ¦ (struct IntuiMessage ")
GetMsg(window- UserPort) ) ) * get message info we'll need
and process it *!
MClass = message- Class; mCode = message- Ccde; mX = message- MouseX; mY = message- MouseY; ReplyMsg( message ); * see if this is an event we're interested in * if ( mClass CLOSEWINDOW ) * shutdown s stop* while( (message = (struct IntuiMessage ") GetMsg(window- UserPort) ) ) ReplyMsg( message ); ModifyIDCMP window, NULL); return; * halt input " void gpDispiayMsg(strl,str2,str3) char "strl,"str2,*str3; ( struct IntuiMessage "msg; struct Window "ir.sgWir.dow; unsigned long wFlags,class; unsigned short iFlags=CLOSEWINDOW|INACTIVEWINDOW; if ( "strl == ' 0' 44 *str2 -= 1 0' 44 "str3 == * 0'
) return; * allocate the message window « wFlags c WIHDOWCLOSEIWINDGWDRAGI ACTIVATE; if ( NOT (msgWindow = allocWindow(NULL,NULL,50,20,550, 70,"= MESSAGE = wFlags,iFlags,-1,-1)} ) if ! MClass « MOU5 E BUT TON S 44 mCode -= SELECTUP ) I * search for entity 4 show entity info • if ( node = searchList(hdr,mX,mY) } ModifylDCMP(window,NULL); * block input * (void) displayNodelnfo(window,node); ModifylDCMP(window, iFlags); * resume input* The AMICUS & Fred Fish Public Domain Software Library This software is collected from user groups and electronic bulletin boards around the nation. Each
Amicus disk is nearly full, and is fully accessible from the Workbench. If source code is provided for any program, then the executable version is also present. This means that you don't need the C compiler to run these programs. An exception is granted for those programs only of use to people who own a C compiler.
The Fred Fish disk are collected by Mr. Fred Fish, a good and active friend of the Amiga.
Note: Each description line below may include something like 'S-O-E-D', which stands lor 'source, object file, executable and documentation’. Any combination of these letters indicates what forms of the program are present. Basic programs are presented entirely in source code format.
AMICUS Disk 1 AMICUS Disk 2 Abasc programs: Graphics C programs: GDSoGds 3d solids modeling prog, w sampie ali AmigaDOS object library manager, S-t data files ar text file archive progran, S-E Bocks draws tJccks fixobj auro-chops executeole fi’es Cubes draws cubes shell scipia CU shefl, S-E Durar draws pictures in TO stylo cf Duror sq, usq fie compression programs, S-E Fscape draws fractal landscapes YachtC a familiar game, S-E H«dden 3D drawing program, w hdden fine Make a simple ‘make* programming utility, S-E removal Emacs an eariv version cl TO Amiga text editor, S-E-D Jpad simple parnt
program Assembler programs: Optical draw several optical iiusions bsearcha&m binary search code PainSox simpie paint program qsortasm Unix compatibfe qsort(J furcton, source Shuttle draws TO Shuttle in 3d wireframe and C test program SpaceArt graphics demo soiynpasm setjmpo code (or Lattice 3,02 Speaker speech utility Svpnntif Unix system Vcompatible pmtf() Sphere draws spheres frees-o Jrex com pas be ireeri functicr. 0-0 Sp ral draws color spirals (Thiscdtsk f orrr.erty had IFF specification files and examples. S nce ThreeDee 3d function plots tNs spec is constantly updated, TO IFF spec files
have been TCWiplT artfoal lopogrepiy moved to their own disk in TO AMICUS cdiedon.)
Whees draws circle graphics John Draper Arnica Tutorials: Xenos draws fractal pi arc: landscapes Animate describes animation algorithms Abaac programs: Tools Gadgets tutorial on gadgets Address3o6 simple database program far addresses Menus learn about htijtcn menus Cardriia simple card TO database program AMICUS Disk 3 Demo mud window demo C programs: KeyCodes shows keycodes for a key you press Xref a C cross-reference gen.. S-E Menu run many Abasic programs from a menu Gotcdcr extra-rial f-bnghi crtp gfx demo. S-E MoreCokxs way to get more colors on TO saeen Chop InjTKfite chop} files down
to size. S •£ at once, using aliasing Cleanup removes strange characters Irom text Res shapes simple color shape designer Speakt CR2LF converts carriage reroras to fine feeds in speech and narrator demo Amiga files, S*t Abasic programs: Games Errcv adds compile errors to a C file. S BrickOut classic: computer brick wall game HeGo window ex. From TO RKM, S OTOfo also known as’go’ Kemti generic Kerm.t implemeraaton, flakey.
Saucer simple shoot-em-up game no terminal mode, S-E Spellng simple talking spoiling game Scales sound demo plays scales, S-E ToyBox selectable graphics demo Skew 9 Rubk cube demo in hires coiors, S-E Abasic programs: Sounds AmigaBasicPrcgs(dir) Entertainer pays that tune Automate cellular automata sur.iiatior HAIS000 pretends it's a real computer Crazy Eights cardgame Police simple police siren sound Graph function grapnrg programs SujsrPtum plays The Daxe cf TO Suga-plum WfahTOHcur a game Fairies* AbasiC programs: C programs: Casno games of ptftef, blackjack, tfico, and craps Aterm simple
terminal program. S-E Gcmoku also known as‘otneiio’ cc aid to ccrop&ng with Laface C Sabotage sort ol an adventure game docvnt opposite of CONVERT fcx cross Executable programs: developers Disassem a 68000 disassembler, E-D Dctry source code fa TO ‘dotty window demo DpSlide shew? A given set of IFF pictures, E-D echcx urc-style rrename expansion, paroai S.O-D Arartce a text formating program, E-D fasterfp explains use of fast-floating point math Assembler programs: FaOate fixes future dales on all files cn a disk. S-E Argoterm terminal program with speech and Xmodem, freedraw simple Workberch
drawing prog ,S-E S-e GfxMem yaphc memory usage rxScatcr. S-E AMICUS Disk Fite* from the original Amiga Grop searches lor a given string in a ffe with Technical BBS docs ham showsoff Tohold-and-modify Note that some of Toso files are okl, and refer to older versions ol method of cdcr generation TO operating system. These files came Irom TO Sun system trial ©MZAraiga last parallel cable transfers between served as Amiga technical support HQ lor mcsi of 1SS5- These an I9M and an Amiga files do net cary a warranty, and are for educational purposes Mandef Mandelbrot set program, S-E onl y. Ol
course, that’s no: fa say they don't work.
More patterned graph; demo. S-E objfix m ikes Lattice C cored file symbols Compiene and neaity up-todate C source to 'image.erf, an early visible to Wack. S-E version of TO icon Edta. This is a little fiaky, but compiles and quck quick sort strings routine runs.
Raw example sample wndow 10 setiace turns on interlace mode. S-E An Intuition demo, in full C source, induing files: Oemomenu.c, sparks qix-type grapbc demo, S-E demomenu2.c. denr.oreq c. getasoi.c, ktemo.c, idemp.guida, Other execuUble programs: iderriomake, idemoallik nodcs.c. andtxwrte.c SpeeehToy speech demonstration addmem.c add external memory fa TO system WhichFont displays all available Ion's bobtestc example of BQ3 use Texts: conscieK3.c console 10 example 68020 descrbes 5SC20 speedup board from GSA creapono create and delete ports Ajases eiplans uses ol the ASSIGN command aeaskfi.c
create standard IO requests Bigs known bug list in Lattice C 3.02 creataskc creating task examples CUCard reference card ler AmigaDOS CLI ciskoc example of lra ck read and wn» CUCommands gude to using TO CU dotry.c souroe to TO ’dotty window1 demo Commands shorter guide to AmigaDOS flualpiay.c dual pfayfiefd example Cucommands Ifood.c food IlI example BJ Commands gude la TO ED editor t«map.c old verson oCfreemap' Renames AmgaDOS fienar.g wildcanl gelfaoiso tools lor Vspntes and BOBs ccnvenfions gtxmem.C graphic memory usage indicafar HaH Bright explains rare grapficcs chips Tot can do hef’o.c
window example from RKM more colors mputdev.c adding an input handier to to input stieam Modem Pira description d TO senai port pinout [cysSfec rearing TO joystick RAMdsks lips on setting up your RAM: disk keybd.c direct keyboard rearing ROMWack tips on using ROMWack layertes.c layers examples Sounds explanations! Insfrument demo sound mousportc test mouse port Ge format ownfibo, Speed refutation of Amiga's CPU and custom chip speed owniibasm exam pie of making ycur own library wiui Lattice WackCmds tips on using Wack parateslc tests parallel port commands seritestc tests serial port commands
Sensamp-F example of sensl port use primrcr.c sample printer interface code prtbase.h printer device definitions regimes z region test program setlace.c source tc interlace cnoff program setparaltel.c set the attributes of the pallet pod SetSeriaf.c set the attributes of theseriat port smgpfay z single pfayfefa example speech! Eye source to narrator and phene:cs demo timedeiy.c simple timer demo timer.c exec support timer functions tinrstufic nore exec supped timer functions WhichFcmc loads and d splays all avaiabte system fonts processj and prfaaso.i assmebler include files: auiorqstr.txt
warnings ol deadlocks win auiorequesters consoieO.w copy ol TO RKM console LO chapter diskfont.W waning of disk font loading bug fuMunc.txt list of fttefines. Macros, functions Toufaev.txt precmnary copy cl TO input device chapter License irJormation on Workbench dstrburon license printer pre-release copy of the chapter on printer drivers, from RKM 1.1 vl1fd.txt W of id fie changes from version 1.0 to 1.1 v28v1xfifl 'cttf cf includefie changes from version 23 to 1.0 AMICUS Disk S Files from the Amiga Link Amiga Information Network Note that some of tTOso files are old, and refer» dder
versions of Tocperating system. These files are from Amiga Link, "oraime.
Commodore supported Am ga Link, ate AJN.for onlne developer technical support H was only up and ninmng for several weeks.
These files do not cany a warranty, and ara for educational purposes criy. Cf course, TOTs net to say they dont wok.
A demo of Intuition menus called ’menudemo', in C source whereisx find a file searching al subdirectories bcbtesLc EC3 programming example sweep .c sound synTOsisexampie Assemblcrfiles: mydevasm sample device driver nyttusm sample library example nytipj tnytJevj asmsuppi macros J assembler ind ude files Texts: amigatncks tips on C Ll com mands ertdrsk external disk specifcafron ganepori game port spec paraid paralld pert spec serai serai port spec
vl. lupdate listof new features in version t.l
vl. lhjxt iff ol indude fie changes from Vt .0 Jo 1.1 Files lor
building ycur wn printer drivers, induding dcspecial.c,
epsondatao, in it asm. Printer.c, printerJink, pnrtertagasm.
Render.c, andwaitasm. This disk does contain a number oi files describing the IFF specification. These are rot the latest and greatest files, but remain here far historical purposes. They include text files and C source examples. The latest IFF spec is elsewhere in this Ifcrary.
IFF Pictures This ask includes TO DP Slide program, when can view a given seriesol IFF pictures, and TO ’showpic' program, which can view each file at TO dick cl an icon. The prefixes include a screen from AricFox. A Degas dancer, to guys at Electronic Ats, a gonia, horses, King Tut, a lighthouse, a screen from Marble Madness, TO Bugs Bunny Martian, a sfil from an o*d movie. TO Ore Straits moving company, a screen from P-.rfaaH Controction Set. A TV newoaster, the PantCan, a wtfd map. A Porsche. A shuttle mission patch, a tyrannosaurus rex, a planet view, a VISA card, and a ten-speed.
AMICUS Disk 7 DlgiView HAM demo picture disk This dsk has pictures Irom TO DigiView hold-and-moaty video digitizer. ItirwludesTOladeswinpendlsandloUypcps.TOyoung gri, TO bulldozer. TO horse and buggy, TO Bye cove*, the dictionary page. TO robot and Robert. This indudes a program to view each picture separately, and aS together as separate, sfidable screens. Tha 'seeibm' program, to turn any screen into an IFF pichjre.
AmlCUSBi&J C programs: Browse view text files cn a disk, using menus S-E-D Cnnch removes comments and white space from C fies, S-E IconExec EXECUTE a senes of commands from Workbench S-E PDScreen Dump dumps Rastport of highest screen to pmter SetAtemate sets a second image for an icon.
When ricked once S-E SetWndow mixes windows lor a CU program to run under Workbench S-E SmaiiGock a small fighal bedun a window menubar Soimper TO screen printer in the lourth AC S-E Amiga Basic Programs: (Note. Many of these programs are present on AMICUS Disk 1. Several cf these were converted to Amiga Basic, and are included here.)
AddressBook a simple address book database Era! Draws a brat Goad program tc convert CompuServe hex lies to binary, S-0 Clue the game, rttutcn driven Color Art an drawing program DefuxeDraw TO drawing program in TO 3rd AC, S-D Eliza conversational computer psychologist OTOlo TO game, as known as ’go' RatMaze 3D ratmaza game ROR boggling graphics demo Shuite draws 3D pictures of TO space shuttle S peiLng a mpie speiing program YoYo wierd zero-graviiy yo-yo demo, tracks yo-yo lo the mouso Executable programs: 3Dctf» UodUa-2 demo ol a rotating cube Alston sets a second con mage. Displayed when
the icon is dieted AmgaSpeil a slow but simple spell checker, E-D arc TO ARC fie ccrpresson progra must-havefcr telecom, E-D Bertrand graphics demo d:sksa!vage prog, to rescue fashed disks. E-D KwikCopy aqudtbuirasr dskccqy program: ignores errors, E-D UbDr lists hunks in an object file E-D SavelLBM saves any screen as IFF pcE-D ??
ScreenDunp shareware screen duep prog, E criy StarTerm version 2.0, tern program, XmodemE-D Texts: Latfesfclain tps on fixing jnanc in Lattice GdiskDnve make your own 51 4 drive GuruMed ox plains the Guru numbers Lat3.03bugs bug Sst of Lattice C version 3.03 MforgeRev users View cl TO MfaroForge HD PrntS poder EXECUTE-based print sped prog.
.BMAP files: These are TO necessary inks between Amiga Basic and TO syssroipraries. Totaira advantage olTOAmiga'scapabi fbes in Basic, you need these files. BMAPs are included for ’riist*.
'corsole', ’dskJonf, 'oxec'. 'con', ’intuition', layers’. Tnathflp', mafajeeedoubas', ‘maSiieee&ngbas’, ‘mathtrans*. ‘potgo’, ’timer’ and 'translator'.
Msma Amiga Basic Programs: FsghtSim simpleSgh! Simulator program HuePaiette explains Hue, Saturation, & Imensaty Requester ex. Of requesters from Amiga Base ScroflDemo demonstrates scrolling capabilities S ynthesizer sound program WcridMap draws a map of TO wold Executable programs; Bong! Latest Boing! Ctemo.with selectable speed.E BreshZC converts an IFF brush to C data instructions, intraszasonccde. E Brush2lcon converts IFF brush to an con, E Dazzle graphics demo, tracks to mouse. E DecGEL assembler program far stopping 68010 errors, S-E-D Ktock menu-bar clock and date display, E He ins
game o! He, E TimeSet Witon-based way to set TO time A date EM-imacs another Emacs, more oriented to word processng. S-E-D M CLI a CLI shell, works withoul TO Workbench.S-E-D Texts: FncinKeys read lunctcn keys from Amiga Base HackerSln expial'hs hew to w-r. Rte gane hacker1 Isteeoio guioe to installing a 63010 m your Amga Somg! Latest Boing! Demo, wtthsolectablespeed.E Brush2C cor,verts an IFF brush lo C data instructions, mtralzation code. E Brush2t«i converts IFF brush to an con. E Dazzle graphics demo, tracks lo mouse. E DeoGEL assem.bler program lor stopping 68310 errors, S-E-D Klock
menu-bar clock and date display, E l ie TO game ol life. E TmeSet hsjrtion-based way io set TO time date.
EMEnacs rancTOr Emacs. Mere evented to word processing. S-E-D UyCLl a CU shell, works without TO Workbench. S-E-D "Texts: FnetinK&ys eipa..hs how to mac hmcn keys from Amiga Base explains how to wn pie game fa Sen gids *0 nstajrg a SoOt 3 in you* Amiga sendng escape sequences to your printer tips cn siting up yor starLp-sequence fto list d T.rar-stormef programs rat work HackfirS-n IstiSSCiO PnmerTp StancTip tofrrrfleview Printer DRIVErs: Pnraer drivers I7 the Canon PJ-* CSC A the C itoh PrOwnjer, an inprored Epson dri'rer fat eliminates streak.ng. fe Epson LOECO. Toe Gecxx Sar-i D, fe NEC
BC2£A me Owau Ml-
92. The Panasarw; KX-PtOxx fanly. Ano me Sm.f-Ccrcra D300, with a
document describing the installation process.
AMICUS Disk 10 Instrument sound demos Tits is an con-driven derc, droiated to many deadrs. It inciuOes no scurtos of an acoustic guitar, an atorm. A ta.no, a bass guitar. A boink, a caSicpe. A car hem. Da‘ves. Water drip, electric gurtar. A Hute. A harp arpeg-o. A kickdrem, a marimba, a organ ranor chord, poopie taTwng, pgs, a ppe organ, a Rhodes piano, a saxophone, a srtar. A snare drum, a stool drum, bells, a vbrophone. A wdm. A waging guitar, a horso whrny, and a whstie.
AMICUS DisK 11 C programs dirutjl lniitcxi-based, CU replaces,en* manager S-£ cpri shows and a usts pnomy 0! CU processes, S-E ps shews irfo on CLI processes, S-E
v. dtex cSsqays CompuServe RLE j*cs. S-E Amigaaasc programs
ponterod pointer and spree editor program cpbm.qs cpbntzabon
ex ample ton AC Hie caendar la*ge, arvaated c ratSa:. Pary and
cate book program aTcrtre toanamortzasions bru5hB0O0 converts
smaJ FF brushes to Ar.qaBasc 303 OBJECTS gnds draw and play
waveforms htoert draws Hibertarves mad Lb storf generator
maJtafk rating maiing ks: program moadow$ 3D 3D graphcs
program, from A C,M article mxsetrack mcuse trscArg exarpte in
hres mode sto; ot machine game tictactoe toe game switch
pachirjuHike gam e wer d makes sfange sotnti s txeatabto
programs cp unix-fike copy command, E els screen dear, S-E dff
Lrixlkesyeamedxruses'41- output to fix files pm chart recorder
perform ances indcator Assembler programs screen dear and CU
arguments example ds Modula-2 trails casecorr.'crt Fern
Analyze moving-warm graphics demo converts Modia 2 keywords to
uppdrcaw Breshorian circle algorithm erampio 12 templares for
the spreadsheet Analyze There are fcv programs here that read
Commodore 64 pcue fie5 They can translate Koata Pad, Dcoce
Prus Shcp and News Room graphics to IFF formal Gettrqthe fies
from your C-64 to your Amiga is the hard part.
AMICUS DisK 12 Executiabto programs btak 'aLnk' compatible Inker, but taster. E D bean spins the osk for disk deaners, E-D eosenset sends Eosonsetotings to PAH tron menu E-C shewbg vew M-res pcs n icw-res superbir.ap. E-0 speaktime tefi toe :me, E-D unfieieto imetototes a Me, E-D cnvapWin Ktvrerts App'e I tow. Medium and rrgn res pcures to IFF, E-0 menued menu ecrtcr aduces C code for menus. E-D pxk quckdskB-dsxnfootococe'. E-0 5j: £A ccoes Eiectrorac Ans c sks, removes protection. E-D demo of text eotcr frcn Miaos.miths.E-D tied 13 C programs ipn3 popd.
Rotating blocks grapnes demo, S-E-D Stan a new CU at too press ol a button, like sidekick. S-E-D vsprde Vsprce exa-pre code frcn Commodore. S-E-D Am.igaBBS Amiga Basic fcuUetin board prog.. S-D Assembler programs srano makes star lefos !,«re Srar Trek mtro.S-E-D Futures Wojrtt Marde-brct 3D v*w o? Mandelbrot set Star Destroyer fi-res Star Wars starship Ftobot robot a m grabbing a cylinder Tens vendors cardco cindude mdwaAar sideshow Arnuga vnocra, names, addresses fixes to earty Ca'dco memory boards cross-reference so C nckide ties dues to piayrig toe game we-I make ycu own sldeshmt frcn the
Kaleidoscope bsk AkriCUS Disk 13 A-igaBascpfograTs Routr.es tier Carafp Sttpyer of C8M Tech, Supocrt a read ard dspay IFF pctires fro?. Amga Basic. Wrtn doa- mertaticn. Aso nduded ts a program to do screen prxr n A~ ga 3asc, and the neves: BMA? Fies. Wsr. A ccrrectw Ccr- vertFD pngrar, w*,n example pictures, and toe SaveiLSM screw capture program.
Routines to Bad and bay FutireSoLmd and :FF sounc lies ton Amga Sas*:. By John Fous: for Applied Vtsons. W.to ooo vr-oatcn ana c a-c asseTDe* so ce for wnmg yar own Icra'joi.ana irealaang Cbassembicr m libraries. Wer, example sound Erauabte programs gravity So Aner Jn B5 gnvitafion graphic Simulation. S-E-D Texts MIDI make pxx o«m MIDI rstnnent tmertace, wrto documentation and a hi-css schematic picture.
AMCUSDiafc-14 Several programs Iran Amazing Computing issues: Toots DanKays C structure index program, S-E-0 Anga Ewe programs 3 MAP Reader by Tim Jones lFFBrush2B03 by MJ® Swinger Autofle uester example DCSHeper Wttowed beta system !or CU ccmmards. S-E-D PETrans translates PET ASCII files to ASCII files. S E D C Squared Graphcs program Iran Scientific American, Sep! B5, S-E-D olf aOds or removes carnage returns from files.
S-E-D dpoecooo decrypts Deluxe Pad. Reno res copy protection. E-0 query WB asks Yes or No from the user returns ect code. S-E vc VisjCaJc type spreadsheet, no mx-se control, E-0 view vews texi files w to window and sffoer gadget E-0 Orvj. Sprpog. Ya3cxng. Zong are sorte-based 3oing!sy.e demos. S-E-D CllQok. SCtock, wCtac* are window fccrder decks. S-E-D Tens An ared* on tang-pwsrsaxe prosper mentors, tips on making brushes of odd shapes in Dtf-me Pain*. AndreccrrmendaPons on «r, interfaces from Com. Modore-Amiga.
AmiCUSDtilLl5 The C programs include: y a lie pmting uBrty, which can pnnt files in the ba grtund. And wn ire rumbers and csrtrel character filtering.
1m' dismays a C'ai of ihe&xxksaiJocated cnadsfc.
Ask' questions an 'execute' He, reams an error code to control the execution in that batch Ho StaT an enhanced ver&cncfi AmigaDOS satus' command, ftssolve* randomtaottfssotvo demo displays IFF picture slowly, dot by dot. In a random fashion.
PopCU? In-rfcko new CU window a! The press of a key.
The executable programs Include: Form' fio formating program through the prater dnrer to select pnrj styles ¦frskCaT C3ta'cgs dsks, martans. Sons,merges Ists of disk lies Psortf SraRize Industries- sampled sound eefctor & recorder ¦fcomater’ makes cons far mast programs 'Fratoals' draws great fractal seascapes ard mountain scapes "3D 3reaka 3D glasses, create breakout in a new tfmensiofi Ar.gaMonar' dspays I.Kscf open lies, remcryuse, tasks .devices and ports in use tCcsmorxds' verson of asteretas for re Amiga ¦Sniers' fvgh resofobx graphs demo wnaen in Modula 2.
Texts: takttf explains escape sequences re CCS; devxe responds to FK$ yJ ndudei template tor making paper to at in Jie tray at re top of fie Amga keyboard "Spawn' pr071mmefs doa n ent from Con modore Am ga. Deserts ways to use the Am gas rnuktaskng capabitties in you cwn program s. ArejffaBasic programs: "Gnds1 draw sound wavefcrms, and hear them played.
Tughf a vers-Cxi of the Tron fight-cyde video game.
TiAgaSof a game cl set tare.
Stats' program to cataiato tnnng averages Woney1 *iry to grab all the bags of money that you can* AMICUS l5a!$ o rfoiudeslwo beautiful IFF pctures, dtf enemy » aken from ihe « planet in Star Ware, and a pcture of a cheetah, AmlCUSDIiKJ.fi ’juggled demobyEricGraham.arobot juggler bouncing three mirrored balls, with sound eJtects Twenty lour frames of HAM arxmaton are lipped orxkly to prodxe this image. You control the speed of toe ji gfing. The autoor’s documentation hrits tnat this program might someday be available as a preducL IFF pictures paroles of the covers of Amga Worid ard Amazing
Compufing magaraos.
C programs TwfimJV example of making an rpr hander.
F;re2ap3' binary Me eating program ‘ShowPrire’ displays IFF picture, ard prints it ¦Gen' program rde«es and retoeves C Ktttotures i'd varatiies decree r the Am.ga nctade He system.
Executable Programs: TuHirk? Repar5 an etextiaae program fve tr expanded memory n»2smus" converts Music Stido ffes to FF standard S WUS' tomiL I have heard ns program m gm ra .e a te« ixqs. Espccafy in regares b very long song?, but it w*ks *r. Nest cases Vi side- Arr. Ga vers.on of the Missile Command' __v-deogaTe.
Trtsttsk also contains severe] fies of Kwvnos tor Arga Fight Srr.Uator II. 3) puttng one of toese Kr.on fies on a blank bsk.
And inserting c n toe cn«e aher pertorrting a specal car. Mand r tois game, a funder of insrestrg focaticrs are preset into toe Fkgrit Simiiaw program.. For example, ore scenario places your bare cn Aicatraz. Whue another puts you in Certrai Part AMJCUSDisKl?
Tefconn Locations sk wtuch cortans s* termnai programs 'Corrri' VI.33 termp-og w-.to Xmodem, Wxmodem.
'ATem'V7.2 rerr-preg ncu»sSuOcrKent
* VT • I CC‘V2.6 Dave Weckarts VT-1 CO en Jator whh Xmodem,
Karrw, and senpang 'Amiga Kerm't* V4D(060)port eftfte Unix
* VT ak* VZ3.1 T e* nu yaprcsterm inal emuiatior based on toe
VT-1CC1 yog V2 3 and certains latest 'are’ file compression
'AmigaHc®' V0.9 fb CompuServe. Inc-'udesRlE yaphcs abiities &
CiS-3 Mo transfer prctocb.
'FixH'jnk’ cipa"tiicr m emery necessity ‘FixCttj* removes garbage cha aclora from modem received files
* TxT liters tert Mes ton other systems to be read by the Amiga E
C. ‘addmem’ exacuieabe version for use win mem expansion
article m AC v2..l ‘are- Be doajmentaton and a base wona!
On un ’arc log files ’arcre’ for makang ’arc’ lies E.C. AmlCUSDiHLtt Logo At. Ga v rvon ts* the poq acom q er langjage. W3h example pr rams, E-D TvTeit Derro verson ol toe TV'Tert character generator Page Setter Freefy bstiiiutabe versons of toe updated PagePrirt and PagelFF programs for the PageSecar oeooap pubiS.Vg pabrago rj W.ndcw Hesues any CL 1 wndow uii ng only Cucornrand}, £-?
Lfe3d 3-D rerj.cn of Conway's LIFE yogram. £-0 Dettsk CU utlty to re assign a new Workbench dsk. S-E-D Caiehdar.'WKS Lotus-ccmpatibe wortghed ra: makes raienda-s SetKey Deno of keyboard ley re- programmflr, wrtri IFF picture to make function key labels. E-D V?G toao pattern generator for aJgreng men,tors, E-D HP-1 OG Hewled-Packard-fkecafculaiy.E-D Sei r efs Change too Pre lerencos settings cn the By.oC. S-E-0 Sta.’Probe Program studres stelar evoluton.
C source indudod for Amiga and MS-DOS. S-E-0 ROT C i-orson of Cofn French’s Amiga Basic ROT program Irom Amazmg Computing. ROTedts and dsplays poiygens b create trvee dimensiona! Objects. Up to 24 frames of anmat-on can be created and dspiayed E-D Scat Ike fng, w.Tdcws cn screen rxi a*-ay trera the mouse, E-D DK Cecays' toe CU wndow mto oust, in Modula 2, S-E-D DreqShadow2 Adds layered shadows to Workbench windows. E-D AMICUS Disk 19 Thsd,skca.*r«seioraiprogrems fromAmazvng Computing The tFFpv ures onthij disk ncfjdethe Anga Wake ban T-shirt .ego. a sateen-cdor hi-res mage Andy Gf Jfito.
Andfire Amiga Uve1 qccres from toe Amazing Stores eqsode toati 'eavK the Amca ScL.re Lmear equation solver in assembly language. S-E-D Gspge'5 Eryan Cate s AmyaBaitiflanal.
Household Bryan Cadey's AmigaSasj-; household inventory program, S-D Waveform Jr. Shreds Wave'on .VcAalpBm.: S-D OtskLb Jonn fCenran s At 9a 3ase 4 sk I bfi'an program, S-D Subscripts Ivan Smitos AmigaBasic subsenpt example, S-D Stirng. Booean C programs and eieataNes to* Hameti Maybeck Tolt s Intmsor lutionaJs, S-E-D Skimy C Bob Renter sms s example for making smaJ C ograrris, S-E-D COMALh Max® C look EiHo COMAL tfKfller filo.
EmacsKey Makes Emacs function key deffiticns toy Greg Douglas. S-D Amon 1.1 Snoop on system resource use. E D 3TE Bard s Tale character editor. E-D Size CU program shews the size cf a given set of ties, E-D WinSize CLJwndow ubi--ty res es current window. S-E-D AMICUS Disk 20 Ccrpactpr. Decoder Steve Mcrt- AmigaSasc toPs. S-D BobEd BOB and sprr.g odtor wriflen n C.S-E-D SpnsMastierli Sprre odtor and animator by 3-ad Kiefer. E D Biiab 2'mer ctivp ex ptoraxn C program by Tyr.asRofecxi, S-E-D Fpc Image processing program by Bed Bush toads and saves IFF images, changes men several ‘«r.-,ojes. E-D
Brankn Compete home banking program.
Bafarco your checkbook.1 E D AMICUS P-sk 21 Tirget Makes ea Pi mouse cfok sand 1 -e 3.
Gunshot, S-E-D Sand Sampa gam.e of sand that Wiows toe _ mptse oo.ms'. ED pxpGadjt'ti H afoet Maybeck T 0 i s qccccorj gadget exraT,pie. S-E £43 Checks to see .f you nare ertra-'u' tirgm g'aprs , S-E-D Fan; Smipie piano sound program CeiScrpts Makes ce‘ annaicn scrcts for Aec.s Ammau, r Am qaSasc Tns ctisk has electron: catalogs tor AmlCliS osks 1 lo 29 and Fish fisks 1 to SO. They ire viewed wtotoe DuCa: qogram. Ncijdechefe.
AMICUS P-sk 2?
Cyfoes Light cyCe game, E-D $ hcw_Prirttt Views and prints IFF pitoures, nctocmg larger toar screen PrCrvGenZO Latest version of a printer dnver gererato Arimatons VidecScape an nations of planes and bongtaT Garter Makes fractal gartenscapes BascSorts Erampc-s ol q.nary search and insert on sort in AmigaBasc AMICUS DISK 23 An AMICUS disk completely ctccated to muse on the Amiga. Thu e.sk conta ins two music players songs, insbuments.and players to trrg toe torsi of playing ‘Eg Scixnd- cn your Amiga Instruments a collection cl 25 insbunents tar playing and creating mus e. The coiteeton ranges
from Car.xn to Wranmpa Lst 1NSTR program to list the rtstrerr.ents DI.1CS w-Jl ho; icac as we-i as fist the cngira for any instoumert.
Muse a akarxn ci ra Ciss ral qeces 131 tOvcrtize The ic nhjt* iassical teatore ccr.qets wto Canrgry Three Am 53 Muse players: SMUSPay UusicCra?t2SMUS MuSfoSt c2SVUS Amm&JilK24 Sector am a A i s* sector edtor fer arry AmqaDOS fire- srxLred device, recrerer Ties (rax a '.raEri.ad -ard isk. By Card Jo.ner cf WcroBi4torts tonze Reduces toe sol FF images, com pa.-on program. Reeder, remaps the paiets codrs of re picture to use toe paieneoobrs of another. Jsogtoesa programs and a tool to convert IFF brushes to Workbench icons, make icons Jock Ike m oatores cf me pictures CodeDe.T.b Modula-2 prog ram
converts assembler object f tes to irtine CODE statements Comes wth a screen scre’ing example AriBug Wortberch hack makes toe same fly walk aoross the screen al random intervals Otherwise, completely harmless.
Bh'Tods Three eximples of assembly language coce !m Bryce Hestrtt:
1. SetLace.prcg to switch interlace onioft.
2 Why, redace AmigaDOS CLI Yrtiy
3. Lead1:, prog to load a fi’e into memory in ! A retool. (Only
the most esoten: hackers will find LtradS useful) Mqndace C’J
p.’ocran resets Preferences to se.eral cc- s of nonochroma i
riertace screens C source ,s Included, works wipi
D. spfayPref, a CLI f ogram wWch d sqays toe current Fre'erenoes
settings BorgVacwrte A ray-traad arsmaeon of a qsrqztjaJ noion
Bcng-makirg mach ne. Rdudes toe ales: tersor d toe Move pogra-
wr.p- his toe cbtoyio pay Kurds acog wrto toe animation By Ken
C'fof Daisy Ejimpls c! Using toe rar.s'atcr and raTator ce ces
:c r a-re toe Am ga tai k. I: is wrttsnin C. CuckFlix Sff
ipt-cnren arm aion and si deshow program Jipstfvcugh IFF
images Emcr Syrrem rrcntor Ami Basc prcqrjn ; perform simple
mamputascrs of mencxy.
Moose Random background program, a small w-ndew cpers wito a mocse resqmpeng BjfwfokJesaying wmty pnrases user defrays DGCS Deluxe Grocery Construction Set. Simple irxutcn-basec prog far asscmp and prating a grocery li$ L The Virus Check directory hods several programs renting to the software vrus that came to the U$ from pirates in Europe as beta fed in Amazing Ccra iing V2.12. B;U Koesteris fiul explanation of toe virus code is included. Ctre program checks fcr toe software wus on a Workbench osk; ne second progran checks lor the virus in memory, when couW infect other d.sks AMICUS Disk 25
Nemests Graphics demo pans rvojg-i space tcwafos toe mythical dark twn of toe sun w-to wonderfo1 nusfo antf space graph.es The KcxPlay teecay holds tert ra: descr ces se.eraJ paiphes to toe Kdcsiart d sk For A-„ga lOOO hackers who fee! Comfortable paftoc-g a disk in heraqecimai. KirtPtay c“ers toe toZ'Oi to siXorraica: y so an ADD MEM for cc expansan r er.cxy as wef: as toe atji ty a change tne picture cf 1 too 'fosert Wcrtbench' hand A pr ram is asc ffoijded for rtstor g to» correct J checksum of t ? Kckstart d sn.
KeyBrd BASIC prog ert ts )re m.aps. adjust toe Workbench kmaos cr p-eate yar own ecoktfva Modifies the Wakboch so three biplanes arc Fred Fish Disk 2: Fred Fish Disk 13: Fred Fish Disk 23 used, icons can have eight cotes, instead of alb Otyect modie liraim A Bode orf Basic programs, inckxjng: Disk o' source la MicroEmacs, several versions for most lea, eight-cola icons are included. Public IX Unix-iike frcrtend for Lattice C Jpad toybcr ezspeak mancSebrO popu&operatng systems on nrtaro and manlrames, fa j domain program 'zapicon* a •bfush2con' compiler.
Xmodem 3dsofids adcbook algebra people- who want to port MicroEmacs to their lavcnte converts eghi-ccte IFF brushes to icons, to dbug Maao based C debugging package.
Ror amgseql amga-cooy band machine.
Use Deluxe Paint to make icons lor this new Machine independent bounce box bridout can,'as FmJR DiSK24: Workbench.
Make Subset of Unix make command.
Crardfi arde coiordrdes Copy Conques irteretaiter advenfrre smusaion game Brushlcoi Converts brushes to irons (bizarrdocs).
Make2 Another make subset command.
Cubes 1 cutpaste datedogstar Csh update to she! Cn Disk 14. With bull in Eysp1' Graphing prog reads x,y| values from a file microemacs Smal verson of emacs odrtor, with dragon draw dynamichange rommands.named variables substitution.
And dspiays them on the screen, stmJar to too rnaaos.no extons tons Ekza ezterm f.lousJor fractol Modula-2 A pro vekraso version cf tie smgte pass same-named Unix program.
Porter Portable file archiver.
Fscape gomoku dal haiku Modula-2 compiler originally developed la Macintosh at Keep 1.1 Message-managing program for tetocanmuni- xrf DECUSC cross reteertoe utility.
Ha.'9COO hafley hauntodM hidden ETHI This code was transmitted to tne AMIGA and is caocns, Ids you save messages from an Fred Fish Disk 3: jom !cz mandei menu executed on toe AMIGA with a speoaJ loader. Bvtarycrty online transcript to another file, understands gothic Gothic font banner printer.
Mouse Ortoeao patch Fred Fish Disk 25 the message format of the national networks roff A "roff* type text formatter.
Pena pinwheel gfcoxandom-d'ctes Graphic Hack A graphic version of the game on disks and several types of bUtefrn board software.
Fl A very fast text tormacer Readme rgb rgbtesl Rod 7and8 Tha is the graphics -criemed Hack Moves through the transcipt and save cfcrSi A highly portable forth implementation.
Sabcxage saJestafk shades s-hapes gaxo by John 7 oebes. Cwy toe messages Lots ol goodies shuttle execute be is present.
KiFJastir Speed up directory access, it creates a small xfisp Xlisp 1.4, net working coredy.
Sketchpad spaceart speakspeach Fred Fish Dlak 26 fife m each drectoy cn a dsk which contains FrsifiinDi&fr; speecheasy spetf sphere UnHuik Processes toe Amiga 'hurk* foadfies, the information about the files, will also remove banner Prints horizontal banner spiral striper superpad suprshr Coliect code, data, and bsshunks together, alows irxSvkJual all the 'lastdir* ties from each directory, by bgrep A Boyer-Moore grep-lke utilty talk terminal spoaflcatio of code, data, and bss origins, and generates Climate's authors txson CNU Unix replacement tyace*. Na temtes?
Tom topography triangle binary Sis vwto formal remirxsoent of Unix ‘a.ouT format The me UceWH program changes between imenace and non- working.
Wheefs xenos xmcstnper output file can be easty processed by a separate program to interlace Workbench. Previous fy. You were tm Another Boyer-Mocre grap ke utility (note: some programs are Abase, most are Amigabasic. And produce Motorola ‘S-recads1 suitable fa downfoadtogtc forced to reboot after changing Pre'erences to grep DECUSgrep some programs are presented in both languages) PROM pr°S-'amm®'- By Ex c Black.
An intertaced screen. This program, flips karm.1 Simple portable Kami wtto no correct Fred Fish Disk 14: C-kfirtTiit Pen cl toe Kemi flle transfer between the normal and extended semen mode, amiga3d update cf in 2, irtoudes C sourca to a program and server.
MyCLI Replacement CLJ lor the Amiga. V, 1.0 full hidden surface removal and 3D graphics Ps Display and set process priorities PW_ltIity A shareware utfity for ProWme users, changes margin sortings and font types.
Mandd A Mandelbrot set program, by Robert French and RJ Mical beep 5oaco la a fureron mat generates a beep sound Arttou Yet anotoer program fa bunding up text files and mailing a pcsring then Guru A CLI program, prints out probabto causes lor Fred Rsfi Disk 5 rtex extracts text from wthm C soured files as a single file mil, Guv mediations: C source included.
Cots Console device demo program wito dmensions demonstrates N dvnensionaj graphds EredEsLDlsKZJ Disk Wipe Latest from Software UstTery. Removes files supporting macro routines.
Fitezap oxteta ol dsk 10. A file patch utiity Abdem Amiga Ba&c demos; Cardy Scheppoer.
From directories a disk drives, much faster freemap Creates a visual (Sagram of free memory gtomem update of tSsk 1. Graphic memory usage NewConvenFD creates .bmaps from fd fies.
Than'delete.* input dev sample input handler,! Raps key or mouse indicator BitP fteS finds addresses of and writes to Snow AraigaBasic makes snowflake desgns.
Everts 7 converts IFF brush files 53 Image Struct, in txtplanes cf toe screen’s fcjmap.
Hi si Macing list database joystick Shews hew to set up tr.e gameport CtexL AbouIBMaps A tutorial on creaccn and use of traps.
Sokbalistats Maintain softball statistics team tecords.
Device as a joystick.
Pcf.emi simpk) ANSI VT1Q0 terminal emulator.
LoadHBM loads and displays IFF ILBM pcs Dodgy Shori Modula-2 program mows the keyboard demonstrates direct ccmmunicaiSaa in B0 * 25 screen LoadACBM loads and displays ACEM pits.
Workbench screen around ate a period ol win toe keyboard.
Sheii smpto Unix ’csh’ stye shel ScreenPnrt aeates a oemo screen and dumps it to a Lime, prevents monitor burn-in.
Layers Shows use cf the layers library termcap mostly Unix compatible lenr.cap' graphic pmter.
AMICUS Disk 26 martoefcroi IFF Mandelbrot program implementation.
Disassem Simpfe63OCf0d5assesTibtef. Reads Tocdor Fay's SootoScape module code Iran his Amazing mouse hooks up mouse to nght joystick port FrelBshDlsklS: sterxterd Arriga ob-ec: fifes and Computing anides. The source to Echo, pne.window console window demo Btocs graphics demo. Ike Unix Wms' dsassembies toe code sections. Data Chord. TX. And VU is included. Tha Lattice parallel Demonstrates access to the paralef port.
Ctock Simple digital clock program fa the title bar sections are dumped m hex. The actual and Manx C source code is here, along with printer opening and usmg the printer, does a Dazzle An e ght-fold symmetry dizzier program.
Dsassember rcubnes are set up to be the executable modules.
Screen dun p. not working Really pretty!
Callable tom a user prog so instructors ImagoMaker Interesting tool etftJ image structures tor C, printsupport Printer support rcutmes, not working.
Fish double buffered sequence cycle in memory can be disassembled loads A saves C code direcdy.
Proctest sample process oeaton code, not animation of a fish dynAMIGAlly, By SriJ Rogers.
Ciai2 Updato cf prog id convert IFF mages to working Mcxncpcty A realy nice monopoly game written in DvcrakKeymap Example cJ a keymap structure la toe PostScript files br porting on laser printers region demos spi-t drawing regions AbasC.
Dvorak keyboard layout. Untested but SDBackup Hard (£sk badop prog wdi Lempd-Ziv sampieicnt sample lont with info on creating your own OkJdataDump Okidata ML92 driver and Work Bench included because assembly examples are compression d reduce the necessary number serial Demos the senal port screen dump program.
Few and tar Between. By Robert Bums of disks.
SmgtePlayfield Creates 320 1 200 piayf&j Pofydraw A drawing program written in AbasiC.
Hypccycfods Spuograph, from Feb. 64 Byte.
TCB Prints information about tasks and processes speechtoy latest versicr ol cute speech demo Pofy fractals A fractal program written in AbasiC.
LinesDemo Example ol pfcporfccnal gadgets to in the system: assembler source is included.
Speech.demo simpSfed version o! Speechtoy, with 10 Fred Fish Disk 15: scroll a SuperBitMap.
FunBi* Lets a function key act Ike a rapid serves of left roquesa A complete copy of toe latest tSevetoper IFF disk MamEzpansion Schematics end cf rectors for buBtfng mouse button events.
Text demo displays available fonts Fred Rsh Disk 17; your own homebrew 1 Mb memory DC A handy progran lor people who use an Amga imer demos tmer device use The NewTck Dgi-Vicw video digitizer HAM demo disk expansion, by Michael Fellingcr.
1020 5 1 4 inch drive as an AmgaDOS (loppy.
Traduisk demcstrakcdskdrrrer Fred Fish Disk 13: SafeVanoc Program to debug Inalocfl' calls A Workbench program that sends a Fred Fishi Disk 6: AmigaDispiay duns terminal program with befl.
SoenceDemos Convert -friar, so solar and sidereal DiskChange signal to the operating system: compress Ike Unix compress, a file squeezer selectable fonts time, sidtar positions and radial instead ol typing *diskchange df2:“ over and bade analog dock impersonator Ash Prerelease C Shell-fke shell program, velocity epoch calculations and Ga'ilean ever again, just dick cn toe icon. C source microemacs upgraded version d mtoroemacs from dsk 2 history, loops, etc. satev.e pfcea. By Da-.-d Eagte.
Muft removes multiple occunng fines m files Browser wanders a fie tree, displays fies. All Fred Fish Disk 25 System eonfig File makes screen 80 columns wide of ten h scales demos usmg sound and audo luncticns with toe mouse Abasi: games by Davd Add son: Backgammon. Cribbage.
The Scnbbie! Word processor.
Setparallel A’tows changing paraTei pert parameters MC68010 docs cn upgradng your Amiga a use a Milestone, and Othello 0ek2Ram 2 programs to move the Scnbbte! SpeUng setsenal Atows changing serial port param.oters. WCGS010 Cpp ClCUL cop U preproCSSJOf, & a mod’oc dictionary to and from the RAM disk.
Sortc quicksort based son program, in C MuftkSm rotate an N dimensional cube win a joystick cc toai knows about toe cpp', fo Manx C, Lexcai Analyzes a text fie and gives the Gunhng- stoipc Strips comments and extra PigLatin SAY command that talks in Pig Lain Shar Urixcompatible shea a*chver, fa Fcg, Ftesch, and Kincaid inices which writes pace feom C source Scrimper Screen image pacer packing files la travel measure readability.
Fred Fish Disk?; Xispl.S source, docs, and execut la a Lisp interpret SuperBitMap Example of using a ScraiLayer. Syndng Her Dump Modula-2 program to splay mem cry tocabxs Tits (fisk contains the executables cf the game Hack V1.0.1. EttflFlSflEJSiJS; SuperB.iMaps fa printing, and aeatng inhetadecT.a. FredFtshDiskS: Blackjack lexl-crtefited blackjack game dor,my RastPots, Tartan AmigaBasic; design Tartan plaids.
This disk contains toe C source to Hack on disk 7.
JayMirerSLdes Sides by Jay Mner. Amiga grsprttos chip Fred Rsh Disk 29 Dr Waster Disk catalog program.
Fredf]ShDisk_&; designer, showing flowchart of the Amiga AegisDraw Demo Demo program without save and no docs BMP plays 6$ VX sampled sounds in the moire Draws more patterns in black and whlo internals, in 640 * 400.
Ammator Demo Player fa toe Aegs Anmaior lies background while something etse is happening MVP-FORTH Mouttain View Press Forth, verson Keymapjest test program to lest toe key mappwig routines Cc Unix-fore frcrt-end tor Maru C in the Amiga, as your Amiga ts booting, lor 1 00.OJA A shareware version ol LockMon Find undosed file locks, la programs Enough Tests lor existence cl sysian example.
FORTH trom Fantasia Systems.
That dcnl clean up.
Rjbik resources, files, arvddevces SftewPl CU program changes yoa ponter to a given profit a more powerful text fomatpng program FredFuh Disk 2D; Animated Ruak's cube program pointer.
Settece Prog to toggle irtertace mode cn and off AmigaToAteri converts Amiga odyxt rode to Aten form Srrgbb ' T-t00 terminal emulator with Kerml and AMICUS 26 also has a cofiedcn of mouse pointers, & skewb a rubic’s cube type demo DiskSatv program to recover fies from a trashed WOO Workbench program to dsplay them sparks moving snake Graphics demo AmigaDCS disk.
Xmodem proocoU Hash example of toe AmigaDO S 4$ k hashng u-pri rixn ni ksn rrea risnuiss tu.
Fred Rah Public Domain Software conquest An interstellar adventure simulation game hjnocr Several shareware programs. The autoas roquos?a ocraicn dehex convert a hex fife to binary Patch program for any type d file.
Hd Hex dump uatity ala Computer Language magazine, Apr! 86 if you find their program useful, so toey can write more To rap BBS an Amiga Base BSS by Ewan Grantham tnmaamax fixofcj Stop garbage ori Xmodem transferred files.
MandQBrots Marxtefbrot contest winners amgademo Graphical benchmark lev comparing amigas.
Routines to read and wnta iff lormat Kes.
MuHiTasking Tutorial and exam pies la Exec level FmeM Amgaart amgaierei simple communications program with id sm pie directory program mufctaslcng FortEdtor edit fonts, by Tim Rctxnson balls Xmodem simulation ol the Tunetic thingy" with bals Is sq.usq Minimal UNIX Is. With Unix-style wJdcardtog, in C fie squeeze and unsqueeze Pack PortHancfler stnps whitespace from C source sample Perl-Handier program that Menurdr.a Create menus, save then as C source, by David Penrson on strings tek?3 Star Trek game pertoms. Shows BCPl environment StarTefm3.0 Very nice telecom by J. Nanganp cdcrtii Shews off
use ol hold-and-modify mode.
Vachte Dice came.
Rartocm Rarfoom run Per generata in assembly, f a Fred Fish DiskfGQ is free if requested when ordered «vto at dhrystone Dhrystono benchmark program.
Fwrl Fish Disk 11- Caassenbier, least toree ether dsks from toe cofleetoa] dotty Source to tho *do?ty wtdow' demo cps'ide slide show program la 4splaying IFF SelMouse2 sets the mouse port to right Of left Lie Lite game. Uses birher to do 19.8 on the Workbench disk.
Images with rmsceianoous pictures SpeechTerm terminal Emulator with speech freedraw A smal ‘part* type program wito fines.
Ffed Fsh Disk 12: cacatxites. Xmodem generations a second.
Gad boxes, etc. John Drapers Gadget tutorial program amigaSd sign*.
A'goTerm Shows a rotating 3 dimensional sad "Amiga TiEd Demoedita from Miaosmrto'sCharlie Heath Fred Fish Disk 21 Mandeifcrct MxExatrpie Version 3.0cf Robert French s program.
Mutual exclusion gadget example.
Halftxite Graphical memory usage display prog, demonstrates *&xtra-Ha!f-Bnte‘mo«1 a terminal emulator program. Wrctan in assembler This is a copy of Thomas Wkox's Mandelbrot Set Eipiaer dsk. Very good!
RamSpeed Set Measae refatirt RAM speed, chip and last.
Replacement tor tote Mart* ’set* teio i! You have it arrcw3d Shows a rotating 3 dimensional wire Fred Fish Disk 22 command lor environment variables,with sfrrpte window deno frame arrow.
Ths dsk certains new ‘strains* of microemacs.
Lastp accessing the Motorola Fast Ftoaing 104 directory fisfing program Lemacs
- .ers.cn 3.6 by Damef Lawrence. Fa Tree Draws a recursive res,
green teaty type.
Point library from C IconExec Unix V7. BSD 4.2, Amiga, MS-DOS.
Not files.
Patece rackSsk Sample prog, to design color palettes, Demonstrates uso cl the trackxiskdnver.
SelWndOw two progs for Launching progs from Workbench. Presently criywcxks aider CLL VMS. Uses Amiga 1 unction keys, status trw, eieate, startup fies. Mere T*Ed Cnppied dervo verson of Merosmito’s text odita. TiEd.
Requesters John Draper's requester tutorial and SetAJlemato Makes an icon show a second image Pem.ac5 By Andy Poggo. New features indudo Vdraw Full-features drawing program by example program.
When doxd once ALT keys as Meta keys, mouse Stephen Verm euten.
Sample speech demo program.
StarTeo terminal emulator, with ASCII Xrtioden, supoon. Higher priority, backup fixes.
Xicon Invokes CU scripts bon toon Stopped don 'speechtoy*.
Daler.mwe. wad wrap, functxro keys.
Tcon Displays text files Iran an con speechtoy Another speech demo program, AutolconOpen rods WB into thinking mouse has ScatQsplay hack created tcm ‘Ing* AcSer. And Warren Usui. AO, enhancemer s by Ross Cirniff Ooubte-dcked icons, n C.S-E-D Smush Smashes an IFF file.
IncJuded are sources to Lie ADL com pier, interpreter, and Fred FisJi Disk. &5 Dro Genenc Exec device interface code lor opening Target Eate mousec£ikc becomes a gunshot debugger. Binaries combined by Ross with Lattice 3.03. CLI AnScsi Preliminary plans lor a SCSI disk libraries, getting multiple LO channels, asynchrcnous Fred Fish Dirt 82 envTorotient only. Documemstior is available from tee authors.
Ccntrrtler board.
Cperations, etc. In C.S-E-D. Advatus Port of the ciassc Oowner anc Woods game Fred Fish Disk 92 AS.m5& Macroassemrter.vcroon 1.0.1, E-D Dissolve Sfowfy csplays fr Res. AJa Nov SS Dr, AmicTerm V0.50 of a t ecommuntiations program, with AS&5C2 portable 6502 assemb-'er.C souroe, by J. Van Omufr, Assigned Example for avotfng DOS insert- Dobb's program. In C, S-E-D senpts, redial, beeps, enhanced file requester Amga port by Joel Swank disk requester, by seanring the l.st Dtorm Flexible, reprogram,mabeterminal program vt.10. E D D2D-Demo Demo verson ol Di$ k-2- Disk by Central Coast Software Bawk
Text processor update from FF65 Insured by UN IX cl ‘assign'ad names. S-E*0 Expose Rearranges endows so that at least erne DX-Synte Voce tier program lor Yamaha DX senes awta Search,es files for patens, performs actions Dk Pretend5 to cat away at CLI window. S-E-D piief of menu bar gadgets are exposed, LnC, S-E-D.
Syrtheslrers. Update lo disk 33 based on pariems. By Boh Brodt: Amiga port by Rip Flips whole screen as a joke. S-E-D Lit Scans a text file, converts to C-styie DiskMan VI .0 of ahofher DirtftJ program Johan Widen Foogd Foogcl cuss-ccrr.piier generates parade stnngs.C,v2.0. S-E-0 tons M-scehanecuS new icons HunkPad update cl FF&i version, by J. KamLtenqads an object VAX assembly cade S-E-D Lmv "long Movie*, program vews senes d IFF p*cts in Part Unr.-ersal MIDI patch panel, vl 2 fia to a multiple ol 123 bytes lex better xmodem Free Prints amount cl free space on all dnvesS- E-D quck
succession, upto 19 Ips. Shareware, E-D Rocket Another Workbench Pack, pays Lunar Lander uansfer, S E MaJkxTesJ maiteofree memory lest program. S-E-D MouseOfl Mouse pointer disappears after ten seconds Sand Game of sands left wing your pointer.
Less Like Unix ‘mere", better, version 1.2 update rt FF74, Melt Pretends to melt the screen. S-E-D d non-use. In C, S-E-D Fred Fish Disk 63 Scrcts Back anc f o-ward, S E by Mark Nudrtman.
Nan Graphic Hying string dome. S-E-D PaOut Examples of controling parallel port wch This a sk con tans a demo verson cf TeX from N Squared.
Amiga port by Bob Leman.
Put Easy way lo set pnrcier attributes resources instead cf tfa PAR: devnce.ln C.S-E-D It is limited to small files, and Sie proviewer Ndir Library ihai impfements the 4BSD unix dx access Irom Y ockbench, E D PenPalFont Chld-like lont.
Can only display ten pages or less, and crJy routines by MkeMeyer S Ra Tracer Simple ray tracing program. E-D RunBackGround Sroiar to RunBack cr Ssk 65, axis program Iren a snali number d Ixts are pwded.
Parse Recursive descent expression parcer.ccmpu'.es, and SortJPadtets Updated CBU examples o! Packet the CU allowing the CU window 10 Cose. In C.S-E-D FadfialiDaKM prints expressfors. Hcludes transcendental fixvcton routines on disk 35. S-E-D SnapShot Saoendump utifity,updato FF 66.E-D AudroToolsProgramsfrcm Rob Peck's JuJy August Amga World arfde support c Source incfuded. By J Olsen Snapshot Memory resident screen dump. E-D TypeAndTef' Example installs a device handler before BiitLab Blitter experimentation program. Vl .2. update to FF69 Shar Two programs to pack and unpack shel archives
TacBBS Shareware EBS system, version 1.02. intetion, 'ld speaks each key as it is Ed Sim e edrtor, smiiarto Urw *ed. Based indudes C source, by Fab&ian G Duloe Fred Fish Disk 67 pressed, in C and assembler. S-E-D cn tee editor in Software Tools.
SmaELfo 3 times smaller Amigilibreplacement, binary onfy. By Am Cat Shareware dsk cataloging priSgQm.
Xptar Prints info about system lists, in assembler,S-E-D GravityWars Game ol panels, ships and black hpes, Bryce Nesbifl AmjgaSpefl Shareware Intuition spelling checker. 72.0. E-D Fred Fish Disk 74 vl,C*. Update to disk 70.
Uuencode Enrodedecode files for ©ma,i or teJt-crty 3arter 3-D bouncing ba.1 women in MdSFonh. SED Cted Eds and recals CU commands, vt .3. E-D HjnkPad Adds legal paOSng to exectoaPes lor methods. Update 0! FF53, includes checksum Ccmm Terminal program version 1.33, E Control Intercepts graphic printer dump caEs and accesses Xmodem transmission.
Lechmquo, com pat tie with older versions, plus Dux5 Another version cf Dtfltol. S-E-D color map, width and screen resolution. C.S-E-D PipeHandter An AmigaDOS pipe device which supports transparent 10 deer versons options. By Mark Horton, HexCato Hex. Oca. A decr-.a! Cafcrtaicr. E-D Dme Simple WTSWG text editor for namedp*pesand taps, Vt.2 modfied by Aian Rosenteat 4 Bryce Nesbitt.
Icons Vanous bg and aberrate mage icons programmers,v125. Updated FF 59.E-D PopCU V3.C of a hot-key 10 srr cke a CLI w.rtiow, FretiFisti Disk 93 Mandala Mandaia graphics and sound, E DropShadow Wbdropshatiows,v2.0.JpdateFF59. E D wte screen blanker, update to disk40.
Dme Version 127 WYSIWYG programmer editor. Hot a PersMait Demo shareware personal SI a manager.
Funds AmigaBASIC prog tracks mutual or stecks-D Roquester Update FF34, file requester simJar to Dpaint.
Word poces sen. Includes key mapping, fasl scra-fing.
RslCfock Menu bar ckxk version i.3. E-D Less Text viewng program. Sxe Unix ScctoDe-nce V33.1 of a ‘mounfable Mi-crcforge SCSI driver.
Ttiie-iino statistics mdtple windows, asiity to comfy RTCubes Graphics demo of 3D cubes. E-D "mere", v1.1, update to disk 34. S-t-D Viacom Another Schwab hack, makes TV-fike windows. Update of FF87, SE, by Matt Dillon Wheel "Wheel cl Fortune’-tvpe gam eAMIGA BASIC Makemake Scans C source files and constructs a static on screen .Parody MicroEnacs Version 3.8. update to FF61 includes source. Crg by Fred Rsh Disk 63 varila 'makefile- in the current directory. S-E-D Frrtf.nattDbkK Dave Conroy r.odfcatons by Dane! Lawrence This is verson MG 1b cf the McrcGNUEmacs. Source and mCAD Oby«t-cnented
drawing prog, vt 2.4. Csh V2.05 of Diicm’s tosh'-tite sheit
F. rod Fish Disk 94 executable areinrt jded. As wet as source lor
ether computers update 10 FF 59. Shareware, E-0 FieReq SouoQ
lo wildcard Re requester Audtolorts Demo programs from Rob
Peck's July Augus[tissueol besides the Amiga.
Random Simple random number generator in C. S-E-0 Hkie H des expansion memory Irom programs Amiga World on accessing fte audio device.
Fred Rsh Disk 69 Tdebug Monitors devices by intercepting Exec irr.ageTocfs Shareware torts to manipulation FF nages V2,updafe ol Ffji. S. by Rota Feck Asm68k Macro assembler, vl.0.3, E-D SendfO() and DolO(J vectors, in C.v1.0. Lew Mem ServerShared library lo ati in low memory situations CwvUpFronl Similar n function to CTJCkToFron: prog FF06), bring BlitUb Blnter exploring program, in C, S-E-D S-E-D Pfo:6 A star ploning program with source.
Windows tolfor.; by clicking on any pan cf teem. V l.C. Conman Replacement console be-hce handler adds Units Ccrr erts n easuremerts in different units, RawO Exampfe of setong raw node on standard input by Davide Cer.cre SE eSfng and history lo arty apptcation that inSudes "chart* option, n C, S-E-D Rocket Lira7 Lander for V crkberteh. With source.
HeidsMouse Autcmeticaliy activate a wirfocw simply by uses CON . V0.9. E-D Xcopy Replacement for AmigaDCS ‘copy', doesnl Vmore 'more'Titetext viewing utility. Vt.D SE moving the mouse ponfer into the window. V 1.0. Console Replacement console routines, in C. S-E-D change fhe date, uses Unix wildcards. E-D Vnews Simps Unix news reader.
Tndudes source. By DavdeCerrcre Ck Decays the screen brt by bt update to Fred Fish Disk 75 FjriBstLDjtUS L-F2Ps Convert any FF fie to postscript for pmtng or viewng dsk66, in Modula-2. S-E-D Eeaer Play win Bezter curves ports and AutoPontAuto-selects window under tee mouse ponter, cn a pestsenpt compatible rt,vce. Verstan 1.2. by Frags Displays memory fragmemanonby listing granularity. S-E-D wite screensaver.
Wiliam Mason and Sam Paoiucci E the size of free memory blocks, in C. S-E-D Bspines Play whji b-splines, as above, S-E-D CtckTcFrcrt Doube-dirtis m window brings it to front, vl 1, S-E-D ModrtaTorts Various Modrta 2 prog routnes. By Jerry Mack tonType Change the type of an con. N C. S-E-C Comm C source lor Com,m termmal program vl 4. S-E-0 Cmd V3.0 ol a tort to redirect printer output tea fife.
Temrt3d Pseudo a-mjom 3d scenery generator, update cf Make 'make- in Manx C, S-E-D Copy Replaceroeri copy1 command Yl.O, preserves FilellSG-Demo Demo d Softwood Ffle llsg, a database
* sc", FF87. By Chris Gray, 3d by Howard Hull MonProc Monitors
processes for packet acdvxby. In date, in C, S-E-D manager with
sound and graphics.
EcadJFfSti Disk
C. S-rD Diff Srr.pie SfT in C. S-E-D Fred Fish Disk 57 One
rertrects tee serial devce or parallel device cwput to
MouseCtack Mouse pointer into a d tal Cockjn C.SED DuV2 Axtner
DirUti n Modula-2, vt.s, S-E-0 AdvSyS Adventure system from
Byte May tSS7, vt 2 E-0 a file. Capture print jobs, debug cr
¦cffine’ printng.V4 Sb Browses system sructeres. From Etess
Fasl 'dir’ program in C, S-E-D AutolccnQpen Forts Workbench B
open disk cons, Vt 2 By 0 Scheppner SE Transactor magazine, vl
.0, in C, S-E-0 Fd Faster'oless'inC.S-E-D Ciaz update to disk
73, S-E-D CygnusEdDemo Demo ol CygnusScft's CygnusEd ed tor. A
Spew Generates National Enquirert-type HanJCopy Sends a
transcrpt cf a CU session 10 a fie, in Converts IFF files lo
PostScript V20, SED mrtbpfoftfo, nyfople fea'ure
erttor.lncfodesdemd 3.0 headlines tom rules Ue. M C.S-E-D
C. S-E-D Commoti tiesMaduraz's Con mod ties Exchange, an of
MandFXP. By CygnusScft Software £ Spool Three programs to
demonstrate multitasking MouseOlf Update FF73, turns off mouse
pointer, S-E-D exec ffcrarylo manage input hander, vO.4 Gcmf
‘Get Quia My Face" makes the Guru go away to allow A spoofing
m a prater spooler. In C, vl 2, S-E-D SetFont Changes the font
in a Workbench screen, Diff Update to disk 75 of Urvx-kke
"(SIT. S-E-D dean-up 4 shutdown more ceanly, V1,0. By
Christian WC Courts words ala Unix 'wo', but Easter, in C.S-ED
v2.0, S-E-D Dme Vt.27 cf Djbr.'s text edSfir, update FF74.E-D
JchnsenE SpeedDf Another fast dh, in assembier, S-E-D
DropShadcw V2.0 rt prog, that puts shadows on V.'orkbercn,
S-E-D Journal records sequence d mcuse 4 keyboard events.
This is a c£sk of shareware programs.
EtfilLFiStLDiSk 75 & 77 Esb Shared library example in Manx C, stored in a file fcr future playback. Good for denes cr AmigaMcrrtcr Explores state ol the system. V1.13 These are disks 1 and 2 of Chris Gray's Draco rtstefouticn for the 10-Handler An AmigaDOS device handler generates documtentng bugs E. by G. Centre Arc Standard fie compressor and ibrarian.
Amga. Draco is a coupled, structured language reminiscent of both urtqje identifiers, V1.0. S-E-D MergeMem attem.pls merg-rg of MemUst entries of sequentially vO 23, a pol 0! MS-DOS v5.0. E D C and Pascal. A fufl interlace to AmgaDOS and Intution is Supplied.
Instil Aftonate AmigaDOS "install programs.SED configured ram beards Allows allocating a section ol BlacKBook Phone book program Be sure lo get both disk 76 and 77.
MemWatch Waits for taw memory trashing. V2.0, SED memory which spans both boards. V 2. Updale cf DoTJ Intuition-driven fit© manipulator program .*2.0. Fffld fish Dirt 76 MovePoirtor Moiesporoerto given location, S-E-D r F56. By Carofyn Srtieppner SE GravC Ware Gam.e of planets, ships and biack hdes.n1.03. Cycles Cycle game lie "Tron", vt.0, E-D Mo-veYTi.Tdcw More window to gvpn kacaton, S-E-D PnnterStealer Asimiar to ‘Ct’C’. Hows diversion ol output jobs Alternate user interlace 10 CU and W8. I2.1. EOMS Experts Onfy Mercenary Simulator gama, E-D MunchngSq Munching Squares hack, S-E-D destined
for printer to a fife. Bina.7 criy. Source avai.
Lens Magnifies area around mouse, MandelVroom Mandelbrot generator with enhanced palette PaJTest Test to see il teis is a PAL machine, S-E-D Ircra authors, by A Livshits 4 J-M Forgeas Life-3d shows i! N a window, vl .0. eanrds, fixedCoating point, presets.
Sc Generates rarfocrr. Scenery. S-E-D Record-Repfoy simiar to ‘Jourrai*, recctos and p'ays back rouse 3D version cl the classic ceflulaf- v1.50. in Manx C.S-E-D Tek4£35 Tek4695 printer driver and keyboard events. B only, source avai, from aulomatcn game. Vl.2. Fred Fish Disk 79 WBDualPF Example ol dual-pfayfield screen, update authors, Ajex Uvshits 5 J-M Forgeas Logo Lego language interpreter AsmTools CLI taofs in assembler: echo, ktedl mounted, FF41. S-E-D Frri Fish Disk 56 SetKey Demo keyrnip edrtor, vl .0 Assign Dev seCace. Why; S-E-D Wa pText Fast tart rendering routines. S-E-D Artni
Player An nation reader ardcfspiayef by me compned vpg Makes dsplays ler aignng video mentors.
Give devces multiple names, in C. S-E-D Yaril fExarpla JrF reader. S-E-D ellorts of Vdeoscape, EculpCD, Siver, Fains- In-
vl. Q. AuxHarxfer Example ol a dos handler that allows use ol a
Zoo A file archrver like 'arc*, vl.42A. E-D Flight. And
AomstorAppretieeby M Hashaal.
Fred Fish Disk 71 CLI via the serial port. Indudes source.
_S1 see Fred Fish 69) Ch«s Amiga pert, ron-Am ga iteifoce.Hjghptayabdiry.V ArFcu Makes artois usmg the JoukowMu Cmd Author, Steve Drew FF D sk £3 has been removed due to ccpyright problems
1. 0. S. by J. Stanback, Amiga pen by fi. Lei van Amiga Basic
trar.sfomatcn, m C. S-E-D Fiedirects printer output to a file,
in C. S-E-D EredBsa.Disk 89 repaces Fred Fish 60) Hackbench
provides source lor WB-likeprog, forexperimeriation
Miscellaneous programs inducing 3D plot Info AmigaDOS prtb*
repfacement, in C and Dir Master Disk catalogue program, Vt
i a, E-0 4 vafidation of new interface ideas. Not a WB
program, a kaleidoscope, C-A logo drawing assembler. S-E-D
FiuncKsy Shareware function key edtor. V1.0*, E-D replacement,
by S3Kmeretey program f. le comparison utity string sea'ch Kel
Remotes a taskar its resources, in C.S-E-D MFF-Demo Demo of
McroFiche Fjer database prog Label Print labels wish a-t-fay
lext. V1.3. Source available Blocks program. S-E-D M2Error
Displays errors Irom TDI Modula-2 com pies, S-E-D Screen Shift
Adjust screen position ie Preferences .SED from author, M.
Hansen A variation ol hires', but wifi variable color blocks.
E D MonProc Mounted Update to process packet prog, from FF69
jn C,5,c,D Program for tasting i a Crrvs is present, n a Snako
AutoEnguref Bounqng sqgiQgly fines demo. S-E-D screen
contraption requester improvement S-E-D UneEkaww Produces iwo
drawings based on drawing commands stored in a text fie.
Includes demo that craws an Comm Groat terminal program.
Vt.34, E-D Nro script InC, S-E-D DomcLTjcn QsplayHack S-E-D
outline map ol the USA and state borders. V1.0, SE.
DrSkX Utility lor expbring file system.E-D Another Toff-style text formatter, in C, S-E-D Fred Fish Disk 90 frecfaces Fred Fish flfn by John Qtsen Fpc Simple image processing program that operates cn IFF pLctres. With several ParTask Query Any Finds pa-erc tesk. In C, S-E-D Fcr scripts, asks a question, accepts m. AtL Gazer Night sky viewer cf 1573 stare, set cate, tme.day. E-D PopUpMeru Example cade irrplemerojng pcp-up menus, reA500- ably compatible with Intuition menus*SE by Derex Zahn locnMk fliers, merging images, E-0 gives return code, tn assembler, S-E-D CardFtle AmigaBaSc card file
study aid. E-0 Makes icons for files, v1.2a, E-D ScnSizer Resets prel setongs for screen size, in C.SED Ccnman Console handler replacement givtes fine Tek4595 Tetoortr 4S95'4596 prviter driver, SE. By P Staub tens Newfora PetCU New icons Two new fonts; ‘shaltiB*. An electronic dart element font,and ibmS, a PC-irke lonL An AmigaBASIC CU Shell program.
SharedUb Task Uw Y ho Example, sharad lib. LnC A assembler. S-E-D Simple CreateTaskO example in C. S-E-D Unix Windows client vl.0. in C. S-E-D lusts tasks on roady and wait queues, in C, S-E-D 1 Martial Vroon NewDemos erttrig and hstary 10 most progs. VC.98.ED Sight update to disk 7B Mandelbrot program, E-D Replacements for lines and boxos demos that take less CPU time, E-D TneRan Fast and Ctep ram test prcg.E by B Takahasrt WarpText Fast text rendering rojtines, 10 be linked with sppficaSon progs.Text display ‘as last or faster than 'rtitz*. V2.Q updats cf FF37. S by 341 My Fred Fsh Disk 97
Replaces FF57 lor Ccpywiig problems CutAndPaste Implementaions ol Unx cut and paste commands, by John Weald Grapri.ft Prcgran to plot simps fiuncsons in 2 or 3 dtmensior.s. by Flynn Fishman Jugrter Vl.2 ol robot juggfcranimation. Uses HAM mode and rayteaong. By Enc Graham PWDemo Domo of tee commercial product FfcdFish Disk EQ see Fred Fish 90) Oteeifo GameolCtee3o. E-D PowerWrndows.vl.2, ft ads creation of custom windows, menus, and gadgets, giving Cor assembly source. E-D Fred Fish B0 has been withdrawn duo to copyngfr. Probiems.
Fred Fish Disk 81 AsmSfik V1.1.0 da macro assemtter PnnTert PrtDrvGen Displaystext fifes write gadgets, speech, IFF display, v1.2, E-D Automafic primer driv. Generator ,v2.2t,ED rtffl creates and animates 3-D ccyecs, vO.5, EG TfcreSet Setstime Iron Workbench, E-D Fred Fish Disk 72 Tns 15 a disk d IFF pictures.
Fred Fish Disk 73 Autoracc Broshes ChecklFF Conran shrinks the FACG window and moves a to the back 53 custom IFF brushes ol etectronic symbols Checks sructure cf an IFF file CledVI .4 update FF74 cf a simple CLI Replaces console harder 10 add editing and history to many programs Miscellaneous loots VG,0 of the Icon programming language Ran Bench ShortCut ShowPrint Cycles colors of W3 backdrop or text ED Makes single-key shortcuts for entering commorJy ryped CLIcommartis.Acustom macros. £-0 Qsptays 3.x prints a? Szes cl IFF pictures 4 controls pnmeroutput styles. V2.0 E-D Graphics demos,
vt.7.0, E-D Sma! Wokberch tmor counts time and S minute. E-D M Ado Customizes oxstirg program menus wrth Am go-key shortcuts. A’so indudes until', which wats until a given window is created Fonts ten Sizzlers Trnor Fred Fish Disk MouseReader Shareware program lo read ten files 4 view IFF files u&ng only the mouse by Wiliam Betz Spines Prog to demonstrate Curve fit*, ng 4 ren-dering Shareware, in C. S-E-D.
KeyLock Freezes tee keyboard and m cuse urrtd pass word entered.
Advpnture DefMon Language (ADL) a superset ol an Oder language called DDL by M.chaef Urban. Chns Kostanck, Michael Stein, Broce lechnqjes, by Helene (Lee) Taran Shm Graphics demo, approximaleiy sxrulates the motion cf m interacting pendufoms. Ifidudes S by Chris EcSss Notice: Fred Fish Disks 32 to 65 could not be listed in this issue. Please see our listing last issue for these disks.
EndfjaJMM Access 16 CriUtermirJ program based On Comm V!.,34. Incuoes Macro window, custom gadgets. Ccfonzed menus, etc V Sea 0.18 CyKedi Young .conn by DJJames. E Backup Wines AMIGADos risks as me backup desun-ation.
Recover ties him be backup ris*. Requires manual oecsons on d&k sructijt. By Atan Ken: SE DC Demo DishCat 2 3,3 disk catalog program, demoi-nted to cataloging 100 fles a! A tine. By Ed Ajlord. MercAce Software HdDnvef WD-1002-05 hard d.’Skcofrroiierdiw. Card capafcio of nantanng 3 hard disks end 4 floppies, the driver is capaafe of only one hard risk. By Alan Kent SED Qbase Quick-Base, a ’MaiEBase Management utility’, define and maintain a maximum ri 200 records per file, by Kevin Kimse E Thai Thai language qua program. Speak a type engiishThai sentences Iron s pphod file, try Alan Kent SE
EltsLBstmSS A Render Version .3 a Ray- Traong Construction Sot lor Pie Amiga Ccmpeter by Brian Reed EQ Fred fi s-l DisltlDQ Berserk Must see animation. By Leo Schwab Conman Console handler replacement, provides line editing and command fine histories transparart to application prog uses CON: wndews- Shareware VI .0 by W Hawes. E. WBLander Worifcernch display hack game, upgrade of 'Rocket' on FFE5, now wn sound effects.
By Peter da Siva. E Fred Fish Disk 101 CrPlane Ciraiar plane generator !a VfoeoScape3D. Generates a doocwise oroiar pri ygcn wfli me spec ted rtr. Ber of vortiries. V1.0 by T Floryan SE fconAssanbter Change Workbench Icons wti iFF-trush ries ty Stefan Uniaht E Mcrospei Standalone spefjrg checker scans ted f.les and reports errors. 1300 Commofi word !a*s 43 .OCO word man ricticnary *o murtcfo user rictonary support IntertaMs with MjctoEMACS 3 9 with an emacs macro to step trough the source fie, stocpng at suspect wa is andaiowngtheLsertbopocr. VI.0 by Darnel Lawrence. SED md library and usLrty
seL InduOes MkS mentor. Routng UtiL-ty, 9SHA utSty, and more. By ££ Barton SED Postscript Interpreter reads and previews files on screen, by Greg Lee S assy)E Pslntip Startups Three C startup fie replacements lor standa'd Astarlup,obj and Lstanjpobj, Qptiors include (1) B«hStajtup.obj. lor Ihe WorkBerth programs cr CU programs w Ji cr wtnoul command Ire parameters. 2} WBStartup.obj. lor WcxkBench programs or CU programs that repjre no command Ire parameters. (3) CUSsnupjotj lor CU programs that requre command I re parameters but do not need to be WorkBench rjnnabte by Bryce Nesbia SE
frtflfiflJBi&Ug Dbug Machine independent naao based C debugging package Update FF41. By F Fish profilng support by Bmayak Banerjee SE Watcfi stufl Heavy duty text pattern matching stutl, inciudes simple match text replacement capability. By Pete Good eve Sodorama Recover lost or damaged data from floppy or hard asks or repair a damaged volume, by Davd Joner E SjiCon Smart input fine interpreter witfj window tor lull eriing.
Upgrade FF50 by P Goodeve, E Aeon Use xpons to caa up scripts contaxmng CU commands.
V2.0 upgrade of FF31 try Peta Goocte.o E AvITrees Library and test prog, rr.ploment routings lor creating and using trees held in memory. S. A programmable RPNcaicJatr.
Calc Cref DosKwi totoCes A C cross ref. Prog. S. A par of progs allows you to save G« id one or more fccpes tor CJCk foarirg. Doesn't store Dcs format.
A prog, to ut,prove cornel aid handing ol the masnal on ail disks n 'CLl area' MFF-Updaio A text import ubl to: UooBche Filer (demo on FF S3) and updates to somePD disk library datathases.
Packit Takes ah files toe files and drs one d£k& packs mem imo a sngte tie. Tor modem.
Sol Amiga version ol solitaire.
FfedRsh Disk 1M Ana' tcat Is a large and powriM spreadsheet prog.
FfE-d. Flstii3ish-LQ5 AsmPrcgs Misc assembly tools. Lndudes some S. BasjcProgs LeastSquare solves feast square probs .graphs resuts.S Bison A replacement lor uni "yacc' command S. Drr.ouse Another prog in the faction ol display hacks*. S Flam Key A'cws keyboard arte mcwe inpga to be locked until a password is entered GravityWars Game ol planets,$ hps 4btock holes, v2 0 .FF84 update Ipo2C A id. To write a C-lang dein con to mroic Txa ntjfeon poimer.S Pere-et-F'i Ex. Ol cresting & using reentrant processes. S. Record Replay &m£a; la 'JcmaF rZO update to FF95.
FfriFUnfliaklOfi Funckey Shareware function key editor, vt .1 update to FF39, Source aval from authori Anson MahJ.
KtoreAn A smal seiecion ol some Amiga artwork.
QuckFtx An IFF slideshow and cel ammaton prog.vO.i3. FlsaMolia Afnnis.hga.me.Ascc2jedGo-Moku vlD Fred Rsh Disk 107 Csh VZQ7 of Mat* Ddon s csh bka sheH-S, Of A 'uPLfsi.mJa*a cfer cornon tar programs S. ProSwte Provdes ex. Code of faclties such as Re.0 Req ster, Xteit. DcRequest 4 tutorial on how to program the Amiga. Book 1.01.5 SVTooa Sorre useful tods. S. Fred Fish Disk 108 Alist Dir lstng prog, based cn LW prg S Dr Master Disk eatatoger. Vi Db, updas to FFS9. S. Dcts-Pedect Printer Driver for an Epson MXSO primer vvth upgrade kit insaUed. S. MoniDCMP Lets you rrixt to lntu'Messages rat pass
through an IDCMP w-ndow Pruts ne message cass,rouse coonii !tes.quaJjfier values. Greal for debuffi'ng S. Pr.roPoo Auti. To send common control seznp b ?RT: S. Seecrama Ltiites a recover tost cr damaged data tram, tapes 4 hard daks. VM.an update tcFFlOZ.
Tek Vtt 00 eri ro for a Tefororw 40104014. (V26) updatH tc FF52. S. Zoo File a-chvor, lAo 'arc*, v 124 B update to FF67 FltafiaUfc!', 109 Machno A .'ww SmCPM A CpjW siitt.smulaies 8080 aorg wtn m9 enula:cnS.
Uupc Hook up you Anuga as a usenet node S. Fitrd Fish Disk. 110 ASSk A 68003 assembler written in C. S. Pdc An optrnizing C compiler tor me 63000 processor.
Upda» to FF53. But na based on that code.
Frri Flail Dlah 111 Amyload A graphcal monitor cl cpu. Bitter, Anemory use, incijdes two components: load device.rrorccrs system paramoiors. 4 amytoed. When is Lhe user interlace & display program, by Jeff Kelley SE AssignDev Assigns mdtpio nam es to a given device, modified version ol tne original released on flsk number 79. By Phillip Lndsay. Mod by Oaf Seiberi SE Gauge Contnuousiy displays memory usage »n a vertical bar graph Bnary cnty. By?eter da Siva KefiosMouse Another *surimouse'prog. Autonawalty activates a wrxjo ty mouse porter V 1.1, update to FF94. EyQavdeCervone SE Labels Aphabeuc
& ntxnerc ordered cross reference Lsts of de'nedsystem constants. Recommended fo» debuggng purposes coy, use the symbolic values in progs1 ByrOiai Seibert Mandei MaixtoPrd generator program, wthbts 5 peces cf code ?:on C. Heath S R J, Mcai. 3 XDtaf Seben S PopUle A PcpCU r,pe tat plays He al over your screen Lots 01 bits 4 beces Iron Tcnas Rcteck’s bfcdab 1 Jcnn Toebes' PcpCU, By Oaf Sekxri S FfCdRsR DH.U12 BeaChS-'Cs Beach scene potayed by spn- s 4 sound 512K nacrire. 3yJerrwt T uineO B only.
Suly Pushes at open screens around (tins the name tx yD She* more than one demo at a 9-me By Mke Weyw S DropShadow Drop shadow V2.0, use wci Bryce Nesbitt's Wavebench demo. 8 only. SyJm Mackra2 HagenDernos *RG3' & 'Focus'. RGB requires cne meg, B only.
By Jxf Hagen Viasim Latest verson of viacom lor use n coryucoon with VfaveBoreh domo, Boriy. Bylw Schwab 4 Bryce Nesbin WavefiencriA neat screen hack. & runs on 512K machines. For more laughs, try m conrjnoon with Viacom or Ds (Dropshadow). Includes S. BytBryce Nestxtt ErsAiMmsma AmiCrcn Simple Una *cron* type program a background task uses a disk-rcsfoont table to automatically run certain tasks on a regular basis, at speo&c times. V 2.3, S. By;S»vfl Sampson. Amga pert by Ftick Schaeffer Dme V t.231 cf Man's ten editor, A simple ViVSlWVG editor lor programmers Not a WYSIWYG word processor
Featores: arbtrary key mapping, last scrdlng. Ttie-lino statistics muitipfe windows, ccrify wirxtows.ee. Update to FF93. S. By .Matt D-icn DosOev Exampfe DOS dewca drr.er in Manx C. Verson 1.10, includes S. By Man Dition M2Amga Demo pi M2Amga. AlastsngfepassModufa 2 onpfer wsh edtor. Inker, a smal set of mertacfe 4 Standard ltranes Conpes onty smaB oerr.o programs tylnutngoodesibe 4 impcrts. Funner devfltopmere cf re ETH2 compter on FF24. B oriy.
Demos wtn Souce. Byfl Deger., C. Neder. M, Schaub. J. Straube (AM Sot) r*oiconPos Gears pesrer, r.fc cf any cons slows WorkBervch to pdu a new place tor the con. Useful ter risk 4 drawer cons whore Snapshot rewrites the con 4 the window riormaacn, MoOua-2, axiher demo tor MZAmiga ByJAarkuS. Schaub FredFiitiDiiilH Cded Engi&n to C (and vice versa) translator for C Oecdratcns. A must for anyone except pessary toe merit hardcore C guru. By.Graham Ross, S YnQO V17dvt100terTrjralenuiatorw!tfikfirmit4 xmodem file transfer, inciudes a lew bug fixes posted to Usenet shorty after the posting ol v2.7.
Update to FFS5 Incudes S. ByiDareY ecker Wbiandcr a SpOCiai version ol the WBLander program from FF100 Ending is umquo, Effective use Of sound, Irctudes S. By Peter da Silva 4 Karl Lehenbauer ElfilflilLlMJJS Kliar Masterful Video commercial ol the Amiga. Beatles rouse, requires one meg of memory to rut. Bmary only. Byfl. Wift Marketrod Another devious sprite oriented demo with tots of in' jctes. 512K reqwed, includes 3, ByieoSsrwab fnd Fish DiaK 116 Mows A ram arxmation system with three different example annawns: Kahnankas. Rocker. 4 F*i 5. Kannarkas 4 Rocker run on a 512K Am ga 4 show cH
overscan HAM mode, incbdes a arrtatonptoyer program (movie). AhL-nascr buder programs (dIBM, plbn), 1 a text graphics OyKay program (vJbm), BytErc Graham 4 Ken Offer frrtFishSiiiln AMUC_Demo A reaJy real rorccmaJ scro'.ng cere that 5 a 2to0 x 200 pxe 32 color :FF picture composed of d»yww snapshots of members of no Amq* Users cf Calgary, superroposod on a very wide picture of the CalgarySkyirva Bony.By:SteprienVermeulenA Stephen Jeans Ei?_Deno Demo verson d Express Pant 1.1, used to create the scrolling demo pcare n the AMUCJtemo drawer cr tin disk. Bonfy.By .Stephen VemaJen FredFtsh Disk n 6
Eropre Conpiete rewrte. R Draco, cf Peter Langston s Empro A rr.xiplayer game of exptoraton. Csorom.cs, war. Es;. Can last norths Use focal keyboard or modem,.Vt .0. shareware, 4 S. By.Chns Gray, ongr-a,' game by Peter Langston HAVmnm Displays Ernes whose end pores ara bourc-ng around the screen, when s a dcuoe buttered HAM screen. The Y positions of the poms a'e ccn:r«xt$ V ccped into an 3jS* waveform and played on al four channels. 4 toe pren cf a just intoned chord is tfonved from the average X pcstian of these poets. Jfgrth. Soute By rril Birt Stars Based on enjrut code by Leo Schwab,
credits longer than actoaldemo Runs on 512KAmiga.B only. ByiHo&e Oms WireDero Dem.cnsbateS the Amga s ine draw.ng speed Runs on a 512K Amiga. Inctudes S, BytMati Dillon EredmPiStLlIB Mcro£MACS V3.9e of Dane! Lawrence svananicf Dave Conroy's ncroemacs. Update to FF93. Aso indudod. For t» first time, is extensive documentation In machine readable form.
SE. Author; Dave Ccrroy. Enhanced by Dane! Lawrence FrcflfianfliaMffl Amoeba Cfono of Space Invaders, ooo of the PDS games far the Amga, B only BY: Latehfoht Devefopments BackGammonGraprical Backgammon (an undergraduate Ai. Course prefect). Verstofil.O S.By: RobonPrister Bahkn A compfois checkbook system oflerod by the author as shareware. Verson 13, fcmary only. By Hal Carter EgyptianRun ‘read race * hazards' type game. Verson 1,1,8 only, shareware, source available from author By: Cnr.s Hares tocnmage Replace an edeenrrage with a now image, without affecting icontype. Drawer data, etc, SE,
By; Dens Green FfME&lflim21 EaSCSIop AmigaBASC prog helps to convert programs wroien f ether forms of Basic to AmigaBASiC. By: George Trepal DasaFlcf Sria.row3.roAm a3AS fC. Pfocng program A’so rduoes a feast squares curve fit program By; DafoHcfl Pfot Sha-'ewaro 3-0 AmgaBASEC graphing prog 4 sampie output pfots Sour» avjiabe via author By Gecrge Trecal Stars AmgaBASC prog, demos a riL'SCiiJus«ntas«d upon percop:'jal crculanty of wfoe* y spaced tones whose vofomes aro darned as a sraisooal reiasonshp to to*r fraquency, Ey; Gary Cuba Uect V2.3 of Ltes nee shateware edficf. Yato team mode.
Command Sangjage. Menu cusicmraLon. And oner usa csn£gurabc-ry and custom.zsbtity features. E.rary orij.
Shareware.updatetorf60. By: RickSUes 'AcCocrs Prog to change Wohpenchcotorsfof progs nat expect to be Ceded cfl thee cistrtxAon tksk but aro run from a ha’d (Ssk. SE. Author; Stefan Lindahl rwflanima Astenods Asterod game The Lrnagcs and sounds aro reptaccaoe by the end user. Anything goes'By: RicoManan tft2Pcs linteraarve pu le prog takes any IFF File with up to 16 odors, and breaks t up rso squaros tomaka a puzzle wtjcti the user can then pteco together. Vt.O.S. By: AfiOzer Names A shareware program to create and manage mating Ssts.
Bmarycnfy. By: Emfo Nelson Pr Lltifity to pnnl Istings in different formats. Simlar to the Unix
* pr*program, Includes woe By: Samuel Paduca PuShO r Board
sbategy game. Arr.gaBASG Push your peces onto the board until y
five in a row in any drecticn.S. By: R.Yost PtzzJePro Create a
puzzle from an IFF pduro. Which the user can then pecs back
together agah AmgaBASiC. VI. 0. Booty, shareware, source
ava'abfe from author. By: Syd Bcrion FrgaPsh Oi*fc 123 A-p Afl?
Stands for ’Am gaDOS Replacement Project'. A-pis an effort fed
by Charlie Hean of Mcrosmifts me, to ropdee the currant DOS in
a com pebble fashion, so that current programs *tl ccr.trxxe to
wcrk A»p also makes whatever improvenerts ore possible, so that
currant and future programs wl writ better. Varous authors
cortrbuted work Car One of Ato serr« to bte Badge iGter Demo
Contest ft apparently s an inside joke relating to a *el known
Amgart's eipenencc wtfi a certain Ivghend gfaphcs iwdwara
iwraAae&jer, Aushcr Aon Hasavgs Fr?ti Fish KaK 124 tons Some
sample arirated icons. By; L Ptesl Tarot AmgaBASC Noe grapfw:
of taro* cards Aror Lpios: Frefl Fisft Piah 125 EiGato Art
mason entry la iho BK D Contest. Background must
a. 'tangemienc, raqzres Scrtx to use. By Kewi Sjbvans Fred Fisn
Disk 126 CoJcur Manipulate the colors of specifc named
screens, saving current cofor sets to data fees, baring new
coor sets from date Les, or interactivefy Changing colors. S.
By J. Russei Dance Two programs, 'dancing polygons', are
entoos to the BKD Contest. They arosimitar. Tut demonslraJo
the range of triors available on the Amiga 5 By: JohnOsen
HBHill Animation entry to the BDK Contest. First known
arvmabon using the ‘Extra KaJIBnte'mode. By; KewnSrilrvan
conrfy Subroutine creates an eon on tfw Am, iga screen that
can be subsequentiydraggedaround.andda'blQdckedon, You car.
Use dvs to have you programs riconity' ihemselves to temporary
get out of the user's way. With source 4 demo program. By Leo
Schwab QrfyATiga Aroratign entry to BDK Contest Three
bafisbeng juggled by p,TimKJs rctatrg cn tfwir tops. By fobaJ
Sngfl Hans Suplifo Support fcbrary needed to rebuild various
programs of Mad s from source, itotodng DME, DTERM. Etc S By
Mad Dillon Vcheck VI .2 cf vros detection prog, from Commodcra
Am a Technical Support ,. Wilt last lor the presence of a
virus m memory, cr on spetfb risks. B my. By. Bit Koester.
Fred Fish Disk 127 Bounce Entry for BDK Corses;. Creates Ictte octs that bouroe arourfo and routipfy, S By: Steve Hansel and T cm Hansel fisrtess Entry to BDK Contest sisquteST lforw-atsoocs.and wor. FFh place n the contest, Bonly. 9yMa kfiitey Rdotes Entnes to BDK Contest Unlike most otoeranmasons, c shews a fixed c6ec from a nwng port cl re* instead ri vice vtrsa By; Alien Hastings FredFtsBDriiLl Dts 68003 risasserrrier. Wrcer un assembler. S By Grog Lee DropGcth F.ace a paden. A 2 biplane IFF image or a combination of a patten and image, into the WcASench Backdrop Verson 2 2. Shareware. B
Sy: Ere UrtsH LedCtock An ertrenefy simple clock program, for interfaced screens cnty, S By: Aii Czer MfiBackUp Hard risk backup utfiry, »es a Seby 5te copy cn AmigaDOS ffoppy risks. With an ritjoon interlace 4 5!a compressor. VU. Source 9 f MarvRrS ; Part Snple screen panting program. Ran in wee Requires wen preprocessing program u rebuild Irom source hefodes source ;.n w j. Am Grog Lee PrtDrwer A prrter driver ter Tie Toshfoa *3 n one* pnmer m as Gun e (best) mode, fodudes source o C and assembler. By;RicoMar*n SDBackUp A naro risk backup utfcy. CU rrertace crfy. Does fife compression. V
It, binary only By Steve Drew Sed A rione cf Tie Unix sed (Stiream EDScr) program.
InriuOes source. By: Ere Raymond* Keys A 'he* keys’ program rinds keyboard function keys to window manipulation fijxtions (window activation, front to back, moving screens, etc). 5 By: Davide Cervcne Fred Fish Disk 129 DosKwik A pai’ of prcgran s wtxh allow you to save files, or a group ol files, to one or more floppies for quick baring, does nol storo files in DOS format, lor speed. V2.Q, update to FF 103. B, Shareware. By: Gary Kemper MRBackUp A hard risk backup utifity, Oms a fife by fee copy to standard AmigaDOS floppy risks. Includes intuition rcerface 4 file compression. V2.0 (with
sources) and 2,1 (boary only, source avaiabie from ayrixsr). Update o(FFl2fl. By MarkRsnfret PaintJet HP Ramble! Prmter dhver from HP sources.
Path Two independent ports of Lhu utity ‘patch’, wrvch appi.es context riffs to text fie to automatics ly update them. Patrii V13 w as ported to the Amiga by R k Coupiand and patchv2J3 was ported ty Jriran Woeri S By. Larry Wail FredFiaCiaXja Dr Master Shareware risk catefoger, V1.1, update cf f r 1C6, new features and erca-cerrerte 3 only. By G’eg Pet ere Evo Hur.an evciflcn toy.tutonai w i scxrceJy S Bomer Hp R?fl caforiator prog, supports cafexiatons wth brtary, octal, oecrra!, hex, float, and complex rwiben.
Lnrijoc-s 32 registers for storing date 4 TansconriemaJ fjxtcr.s, VI 0. S By: S',? Serf or Varii *fT,ouse acceteratcr' prog, with hotkeys, feas es d sur.
Mouse. DdOafrort. Arfo popci, a t:e bar riock. With a tits crtine cha-ge axurriiator, eto Vi 6a. S By Brian Stoats Paid : A pacem echo’ la creating patiems to mput to the Amiga SeiAfRt macro cal Caiisetsthe area fit pattern, for the area fitfing graphics (RectFiP, AreaDraw, etc), foriudes source. By Don Hyde Oman MandeforoE generator written porta ly m a ssem. For speed, incudes scuroe. By Steve Bomer Ettdjaatfflam Dfc Copes risks Lka Maurader, butmtAxlasks. Replaces riskcopy and format (snarer than either). Intuition interface. S By: Tomas Rokcki Hype-Base Shareware dafabase management
system. V1.6. Bfoary only, source available from authors. FF58 update. By: Michael Mackenzie. Mar: Vengel, 4 Craig Norborg Ufe A new version ol Tomas's anoert Lie game, w.th a new naao language for serang up patterns, good eiampfes, Sby: Tomas Rolucki Mackre A Popci rep'acenent that draws pretty Ires cr the screen m bianfcng mode. Irdudes scx m. Afihor: Soltrtire Distillery; enhancements by Tomas RokJcki Mgl b A verson of Mgt b with an A%n port a c ctner improvements by Tomas RokickL Define macros 4 bird them to fircton keys n startup file. Includes source.
Author Vanous. Enhancer ants by Rckcki TiFrags Axther vereon of Frags. Pops up a irtTe rr.nriow rat updates occascrafy. Good for deveioper 5 to monitor wrat progs, are dang to nan ory S By. Toras Roforii Berserk. Anrason. A Tnust sea' lor every Amiga user, and rarxs with’Juggler'as a premier demo fcr the Amiga The riflerence between adstrbuAcn, and FF too. The ere incudes 'source' use it as an example for creating animations. Fred Fish te: £ was appropraa to have el teas: ere animation fa: was araLarie at the ’source code’level. Ajtha; Leo Schwab Fred Ran Di lM Conman Shareware redeemer: for
die standard cxsoe handler, provides line edting arte command Ire fwteres czyr.pietehy transparent to any Eppucatcn program mat uses CON: windows. Vl.1, binary oriy.updateoFF’CO. New toaiures indute additional eating keys, fast search kteys. Undo key. Clear hraory comr nd. And more.
Author Wilam Hawes Crc Two programs useful lor generating iG-brtCRCSstngs ol the cements ri disks, and verifying that a given risk's files stl compute to the same CRC's as listed. V1.0, binary only. By: Don Kindred Crclists CompietB CRC check liles for FFM2S using the Crc program nrijded on inis risk. Tb-rse were made directly from Fred smarter disks. Author. Fred Fish Overscan Patches the intuition library so that sizable wnctows wth Max Height of 2)0 (400 n interface) and screens wit Heght of 200 (400 in interface) w.ll take atevartage d the PAL overscan capariity ri trtturtten V11 UseU crvy
lor Ei cfofein useri who w.sn to run sobware written lor the US market wuhoutmorifiying Tie apfocatons, but stil using ta addbxai space. S By Art Freund Fred F sri Disk 134 BangTfirows 50 frame HAW animation Ore wtfi Scup*3D, and DgiPautL The anin&Pon took about 325 hours ri runtime n g-aneraH. 2 Marm Lands Browser Worfipercn tori, usrg Mfiroriy wnctows. Rraiies aD Nes in trie system exess-be for execuire. Capynng, mcvr .
Renanrg. Drietng. E!c Bted as a •programmers wonoencri'. V1Z rinary only, BY Peter da Blva Dme VI29 ri Matf* fete editor. Simple WYSIWYG edior desgred tor programmers Arbarary key rr aapong. Last saoSng. Ufre-Lae statrtcs mritipfo windows. 4 ah.if to icomfy windows FF113 update,S. By Mat: Dfon r rd Lb'fty searches la fifes that satisfy a given boof era- eipre sscn at artrfcutes, starting iron a roof painname and searching recursively down trough the hierarchy cl the file system. Like toe Unu find program. V1D, ndudes soace. By Rodney Lewis Library Demo verson of a shareware program Thai stores
textual information without regard Ic structure or eerier:, and alcws complicated searchn; for speck patterns .Bony. By: B.T Brownson Smartlcon Shareware irtrrbcn objects icorvfter, VI ,0 is kvted to conly ng windows, adds a new tieonify gao ot' a each w.ndcw. when cicked. *oorn&es the window ins an ocn n the ram: dsk. B crtf, source available from author. By: Gainer Grodt EblBHimia TeXF A selection o! ?S TeX Ixts. Win a conversion program to convert them to Amga forts. 22 ti'feren Ions at various sues, rangng ten 15 pueis high to mors than 150 pixels. Conversion program can also be used wtn
fie fens (Sscimsed wi to AmgaTeX, yiettng an additional 1QCC« lords lor use witoo’toer Amiga programs, V2.5. binary only. By; AjiOcor EelfnmMUM AsmTooiBot Assembler Toobcx' created to make interfacing between assembler programs and AmigaDOS easy. Wto source. By Warren Ring B on A replacement !a m *ysc:' command. From toe GNU(GNUisf4otUni*)eflort Pot ol toe Safest GNU version, by Wiliam Loftus. Wtfi the goal preserving alcfbsonscumertfestcres. Hdudes soatel test pro. 'cUc'. By. Bob Corbett and RchA Sttlman BBPts interactive puzzio progr takes any IFF r*a containing up to 16 ccacrs. I~c breaks
it into squares o make a pane the user can then piece tack together aga-n.
VM. Update of FF122, includes source By AiOza Paste Verson of the
Jnx paste uticy. Paste concatenates corresponding times ol
the spoofed fin into a sngfe output line (horizontal or
parallel merging) or concatenates them rto alternate ties
(wrtcal or serial merging), S. By; David toinai YaBangll Game
prog, demonstrating hardware sprite usage, mcudng col*on
deiecton, Update of FF36. S By Aii Oxer. Based on original by
Lao Schwab Zoo F.le a rchi rer. Like ’arc' in concept, but 0
fferen in inplementaocn and user rterfacedeaJs. KxuOes
'eadres that ‘a"' tacks (sucn as fie par. Names uo
To255c,ha’ac:er5iniengto;. V 1.71. updated FF108. B.Byt
RalxlDte, port by Snan Wafers Fred Fish Disk 13?
Ct Program to cispiay inages Irom a CT scanrwr. Along wto several interesting sample images of scans of rei pecpte. Mdudtog a skull. Brash, hean. And sjxne Each image is £56 by 256 pixels in 2WS gray scale.
The display software, a primitive user rnartaee. Is puts powerful, induing functions Ike convoutions.
Averaging, lapiacians, unsharp masking. Edge detection, grades, etc. Binary by: J Hainan Jeans icons Uoceftaneous cute icons created for AMUCi monthfy newsletter disk, Submitted by Stephen Vermeuten. Aunor: Steve Joans Uuicho A ate i!3e program which plays a Ogrtzed sound sample when yoj r.sert or remove a disk iron your drive. If you don’t like the sards, you can replace them wrth yctx own. Brary arty. By: Andrew Worth S4 Update to toe Set conType prog, on FfiD7.Vl.10. includes source. Author; Stephen VemeJen Vgad A re* gadget edtcr that a.»as two pares d the window rate es gadget, one berg
the norma gadget Kate and the cner beng the tjiy scooted state, then merges the data and converts to C source code V1.0. binary orty. Autoor. Stephen Vwmeu'en VirusX A boot sector vires check program that runs in the background and aulomaLcaiy checks at inserted dsks for a nonstandard toot sector. Such dsxs can optionally ha ve their boo: seder rewritten to remove the virus, includes source. Autoor: Steve Tibbett Vlabel P'cgram id prim fancy customized 23k labels.
Combines an IFF pcure and up to 50 lanes of text (which may be placed a txtrarily n any tom cr pad sue) toen pm the result The IFF pcue car be virtually any vae (up to 1009 by 1000), ft will iso pet labels from a batchy produced by SuperBaw VI 2D. Bray enfy. 8f. Stephen Vermetfen FrriFis?iCi .l2g AmgaLne A seres of venous techrica! Notes lor An ga programmes. By: Byree NesbC Dfl Uses the same a oritnm as the Una dil progran and also produces contort dffs, sutablo lor use with patch, anarycrty. By: Unknown (DecusCdff?)
Foreach A smpse bul usefu program nat erpands a wk card fiio speafeanon and then invokes the speofad
ccm. mand once por expanded filename, wfth pie oipanded filename
as the command a-gi noxr.. Includes source. Author: Jcnas
Ftygare WacFort AcanversjortxftoccrreftWacfortstaAm a fores
Rrayorty. By: John Q Mefl and R*co Wanam UcdutaToois Vaious
useful routines for those using m Vodula on the Amiga.
Update to FFBc, S By: Jerry Mack VtlOO Two new verscrscf
Dave’s viiOOiermtoil equator.
One version, based on vt*9016. Has bwn enfuncod by John Barshir er to -hdjde an comfy feature aid fiul f 32 couT.n supocrt using ever scar, and cth* leatures (txnary only) The second version & release 28 of the ma vKream verson of vtlOO. As erftanod and supportod oy Tcry Sum.-aJ. S. By: Dave V.'eou?r Fni Fish PM 133 AmiCror An enhanced and debugged vet sen o! Ati Cron 2 J Irom FFH3. Incijdes soume. By: Steve Sampson.
Rich Sch aefter. Christian Balzer LstScannwA rvco littfo uiisty to display all tho E*ec lists. Simjiar to Xpfcr utility FF73. Includes source r assembor By.heikoRam ProCait Simulates HP-i 1C programmable ta'cufator, Both Engbsn 6 German versions. Shareware. B only. Ey: GoaWJer Rerr.ue Removes a speeded tbrary (il trtenty urusetff or cspays some info on all availablefibranes. Source in assember.
By: Heiko Rath TutoBackup A iast mass floppy &sk duplicator wih enforced verify mode to prevent errors. V1,0. Binary onfy. By: Steflen Stem pel and Marin Kopp WA-ra.'gcr Sends a window, tfertficd by its name, to the front or back, without selecting it Usefu with AmiCm Works on a3 screens. Includes source n assemNor By: He*o Rah AhedChirSr'. A wneetonar smuatr Oe-.x-coud as a project tor ne Tecrrvca; Resource Genre and toe Albert Children's Hosptal. To aJcw matohmg d a wfvrelchar joystick to a crtld's handcap aid a£ow toe chid to prance usng te chair in a safe ismiAasod) ervironmenL Binary
Author. Unknown, sutnded by Dr. Mae Smitoi FfrifitiiPiik14Q SBProdg Vpinel of tore 2 volume Stony &.T»k Prolog (SB?)
&Krbubon. V2 3 2 Th s vekume contains the e xocutabes andttranes. Vok*r.e2.onFFiai.(»ri&mheCa,n2 Protog Soura By: Logo Programming Group at SUNT'.
Story Brook Amga pom by David Roch j Scon Evemden Fred Fish Disk 141 SBPdog Vofumo 2 of she 2 vo'ume Stony Bnook Prolog SBP} dstnbuticn, version 2.3.2. Vo-umo 2 conans toe C anc Protog source code Volume l.cnFr 146, By: Logto Programning Group at SUVY. Stony Brock Amiga port by David Roch and Scot! E vender SmaJC AnAmga portoftheSmai Cccm.pder. wnren ty Ron Cm and pubcshed tfi Dr Dobb s Jtwnaf, m about 1980. Sma"- C is a ratoer small subset cf too lul C language, ft 3 capable of ccmp irq tsed. And oner sraJ. Usefri program.s Requires an assem.pier and inter to complete tie package and produce
wottong exeoAabies. Source and binary. By: Ron Cm Amiga port by WiJiKusche.
FrtdfiatiBisiag Dftl Program uses same agontom as Unix dft prog, and produces context diffs. Suitobfe lor use wiLft pa'ch.Same as FF13S. But new md-jdes the nuang lies fmdud.ng source code). Author. Unknown (DecusCdift) FracGen Generates fractal pictures from ‘seeds* you create. Unlike any of me other "fractal generators’, it can do used ia lead and d sptay previously crea:od fractal pics, modify ensbng fractals, or aeate your own fractals. V1.1.B. By D Houck ScSubv Soertfc Subroutine Package Ixm DECUS. Ported to toe Amiga to ren wch Atsoft Fortran. A valjabia resource of matoerratjai and
itaisocal souce code for these dang Fortran work on toe Amiga Author Urwtowh; pcrted to toe Amga by G'em Everhart Ff cri Fiafi Pia.K 143 Rm R W*5 (ReJatonal Irrforoabon Manager), a fJ ralabonai sucabfe b VERY large catabasw usng 3-Tree iaa storage, crude (by today's standards) user interface, out ful source csoe 3 pro ried. RIM nrs on a wide variety of systems. Sma3 ana la-ge. And produa compabbte databases. Includes a butt in HELP database and a programme language. Full Fortran source A doaimen- tascn included by. Vanous. Am9a pod by Glenn Everhart Fred Elih.Dttli.144 AnaJytCafe V22-3D of
Glenn Everharts largo and powerfut jpreadsheet program, update 10FFioa EitoafeatoesTo have sore preten-jgns of acsmg as an rcugrated system’.
A virtual memory system supporting up to19000 cdur.ns and 15X0 rows, murtpie equitcns per cel. An oudning system, txurtnn :e annotabon. And datafile access tom any celi s) of toe shed, plus an array 0! Functions na present in most cammercal soreadsneets. Soa and doaneradbon in are'd fcrm.
Fred Fish Disk H5 Csh Vod oauonofcshixas.h toprovoafterteme corr.pletcn andargumenj exocutRpqures ARP 1.1. Bnary only, but includes dirts tor the reference 2.07 source base. Author Mato D.lcn: enha'toer.eras by Johan Widen Gmousa VersaUe screen blanker, mouse blanker, auto window aaivator, mouse accelerator, popefi stylo programmable commarto key, pep w-ndcw to front push wndow b baiu etc. wtoget Very usefU program'. Vi D6.
Includes source. Author: Matt D.Jon Sot fjrAproJOCoprovxJe5«serbalyanuiiin.tednun'bgrof rerable comecscrj between processes cn two machines, wrere each cat be ether an Amga c* a Urn (BSD4.3) maefvne. V grks cr the Amga with ary EXEC devce til lows i'£ toe senal jjevca Waits cn UNIX wn ry anc socket devices. Achieves bene1 dan 95% average throughput on 5fe toirtKera. Vi 20. Indudes sources tor both toe A-.ga and Um versions Author Mat: Dufen Tab Tabiature wrting program,, wito intruments tor a banjo and string guitar. Binary only. Autocy; JeffdoRreruo Tryfrrtog VT-PROLOG is a snpte proog
interpreter prevded wito M source code io encourage oiperimentation with the PROLOG language and impfemontaticns Version 1.1. includes source. Author: BJI and Bev Thior-pson Fred Fish Disk 145 Blanker? A screen Wanking program that lum$ toe screen Mack after SC seconds cf keyboard and newse nactorty. Vt 27i3, mdjdes source. Author Joe HiZhens C-L*ght A demo copy tit a commensal ray tradng program, dertcaf to conmeroal verson but In ted to ten ctjecy per scene Binary onfy . Arahor: Ronato Peterson CrcLste Complete CRC check fies tor Ffl 29 141 and FF1A3-145 W toe kbrary. Using the crc program
from FF133. L aoe o-Kty from Freds master fairy. FF142 cr.tee due to a prctiern wto toe ere program, by: Fred Fish Dne Macros A set W CM£ macros wfxh u*;t» templates to Ln DME mto a ianjuage’Sensove edta for C, Pasca. Mocua-2 and Fortran. By Jerry Mack MemcPad A tftarewrare intubon-based memc remmder program Niceydone VI.I. bnary only. By. Michael Gne&rg FiedFish Disk 147 MuyoGNUEmacs McroGNUEmacsiMG tb) contains many addtdns and enhancements sxe toe orvyni works by Dave Conroy (cradc belongs to a! Contributors and Beta testers. Note: Amiga specific source code ties and the documert fifes
have been a'£ftv«J. An executable copy cf toe PCS archive program ’Zoo* s in the directory FrtarnisuLHfi Efj 'Escape from JovT Amacffte-codtQa.meleatjrrtgW res saoiJing. Large playfield, disk-based H-Score list stereo sound, and mgfepte tertis. Use a joyssck in port 2 to control toe ship B, shareware ($ 8). By: Oliver Wagner Fme Nicety (tone map editor for the Fire-Power (tm) game. Features interfaced hl-res wifi intuition interface. S« toe
• Readme JW* fife for information cn matong a bootaWe d;Sk.
Includes source. Author. Gregory VacKay Handy toons Adds a menwtnp to too WorkBench window rat atows you to nr seectod Workbench To&s by menu s&ecbon Can be set up to provide custom errv' onments. Current version supoorts or»y Wo'i3ervto Tods and not Prqects.
Bewf Of Alan Ructogrtt Scrambler A simple program thal wfl encode- oecode a tert Re into 3- tegbfe gbtxr.s-h. wfikch resembles execute Lie code, to evade pryng ejes Vewi Odi. Binary cry Aufwr Foster Hal EadJMJMJii AncnaiSourtos A sample cfd cedaramal Kurds a eng win a
s. mpto sound player. Authors: The Trumor Company. Inc. Sound
Payer by Don Pics DX-VoceSorter Wrtten to be used wth J ck
Cock&rds Vototenfer program. Disk B2), It allows lor the
sortfig of a r.anber of voicofites stored using that program
irto a new voice fife of voces nide up trem vanoul fifes,
induoes source. Author. David Bcuouey A rvco Ltr-fe utlity
program wth an mtuoon interlace lor BBS and ne ort iunk.es wmo
download messages n one iargo file and nen read toem cfl-Uie
Usrvg only :ne rr cuso, you on drive torougn such files a
message at a tine, etanne eato at your leisure i'd tag rose
ycu wish to ireep. Versdn 12. Hoary only, but source available
«nn donatton u author. Author: Tim Grantoam Lae Urxx ¦more",
only better, win fowl'd and babcwi'd scroiing, searehng and
positioning by percent cf fife and Ine number, etc. Now fels
you also pml toe current fife, Very use!J1 This is Am 9a
version 1.3. an update c the version ori disk nut.t»r 92.
Indudes sarco. Author: Mark Hudelmar-. Amiga port by Bob
• Scheme is a statically scoped and prcoerly tail-recursive
(SaJect of toe Lsp prograrr.mmg language rtvented by Guy Lews
Steele Jr. And Gerald Jay Sussrran." Binary crty.
Amiga port by Ed Puckett Keep Scheme ArFoJ An Lpdate to toe Artpj generator on dsk 71. Generates arioi models as as ther correspcrdng scream&ne and pressuredsfrhusorts incudessajpe.Authors; Russeft Leghtcn Addendtn by David Foster DC10 At AiogaBasrt DC-10 nstruterc flight s-xiiator Appears to be duie rtoecth wc IgK-djrhng and taketof! Ocfecrs long wto an ertens.w docutenatcn fie. Requres re- txjitcfervg cn a separata disk and was successfully done so by feaowmg the author's rtstouc&ora n toe ReadMe_Fjst ffie. Autna Jan Arkeae n ExecUb A working exam pie of how 1o buld and use user-defined
disk-resident lianas, 01 speoaJ interest to deve’-opers wodung wii Lattice C. Author: A'ex Livshits Connor A uritiy program thal saves your current mouse pointer to a smart icon. You can restore toe pointer just try double dicfeng on Cs con A lows tor buudng a whofe l-rary cf pointers and to use totem whene ver you want. Bnary only Author. Ale* UvshrtS Pkx Ah s.Tpierretaticrt of toe PLOT language lor toe Am ga.
Mdudng a dem,o done for me National Park Sen.ice PILOT s a imted use language for use r educaticr-aJ i'd com puter based rmaon program s Senary on win Beta test ku available from authors By: T. LaGreno SleaiMomBocl A srraB uWy des ned to be a direct repdCfefltert far NcFasWem k«j cf programs, ft modfies toe boot block ol a disk, so when ycu too; wito L all memory allocations win rel n only ChiP memory. Autoor: Aei Uvjhits GtobeDemo Graphics demo dsptays very smooth transitions ol the rotating earjh. Popupmenu Scjce. By: Ecd Ccrwn tens Yet another pctpoum of mterestTq iccrs to choose Irom
if you need one for your own program, by: Dave Turned?
Pcopy AsmaltfOuitcnfeasedcJskccoersimjiaftalhereSider: "DiskCopy' except won write-vwfy and crier user ¦ selectable colons UseU levmafeng multpe cooes mffi re- labfe data. Requres two dsk Crves. S by: Dirk SCI A C.Fbased si (SetCdcrTabfe) lor displaying arc or settng a screen's txfors Save me cobrs of a screen to te restored later, cr copy cne screen's cccrs to anctoer. T- djdes souse. Author: akfevn StdeShow Very nicely done side-shew program wrrti£nn assembly language Feafuesiorwardtackwa'dpresertatcnahd creatrvo screen wipes Currenfy works crty with IFF tores pdures. Eiecutabfo only along
wto some new IFF p»c- tures to have come my wa y. Shareware (S16). Authors: Mke McKmfc and Sheldon Templeton Survey or A Irte utifity toat opens a window on the current screen and displays information about the pointer. Atews for absolute or relative reeasuremert behveen 0 pants on toe screen. Very handy for preose positon-ng of icons and such, includes source. Autoor. Dirk Rasig EffilFJtiDiaMK Bk A reqjestet nafcxig ixi empioyjng vancus recursive ago- ritoms rciudnj a recursvre parser, ft tikes frput tort ties and ccrtrtrts town lb C-soute la indaJng as •ecurtte' declarations includes
source. Autoa, Slart Ferguson Run,Back A arram d Rco Peck's RufiSackGround program from 6skruThet 73 A'icws ycu to sarta rew CU proyam and run it in me background, then doses toe new CLI.
This version autaraticBiy searches the carmand-searcfr path to find toe program. Source. By Damfe Barren UUCP This is a version ol uucp (Unix 10 Uru Copy Program) fa toe Amiga, along with some misceJaneous support utifitres like cron, maf. Ard compress, rtdudes source Autoor: Various, subrrittod by Wiliam Loftus Dm© Verscn 130 cf Marts text edtor. Dme is a smple WYSIWYG edta designed br programmers, it is net a WYSIWYG wore processor r toe tiadtoraJ sense Features indude ararary key napping, las: scroflng.
Btfe-fine statistics multiple windows, andatnityto icovfy windows. Update to verson on dsk number 13*.
Indudes source, by: Matt Dillon HP11 Emulates an HP11C calculator mcfedng the program rrode. Features an ONOFF burton mat turns toe calculator into an icon thal wil srt and wait until you need tl again Documentator cn toe features is scarce, perhaps seme rdusoxus HP owner cou'd »r» a smatl fij- toia.’ kx toe benefi! Cl tocse toat don'i own an HP calculator. Bjwy criy. Autoor: David Gay hPM&n A program to manipulate senrgs and fcrts cr HP LaserJet- prrters and compaibfes. Ncudes an Irtjition trasrtsce rand seme sample pwcture fifes.
Verson 10, binary only, shareware, by Stere Roth Syntoermaraa An rtterestsng, very smaJ fand very persstent1) muSKte) pteca. II you piran on stopping it witnout using tore© togas, you better read toe doomer-t fie firstr Binary onfy. By: Hqigor Lutrti Fred Fish Disk 154 Ada An Ada Syntax checker fa toe amiga Indudes lex and yacc souce Autoor: Herman Fischer; updates by Wltare Loftus AsscmbfyOemo5 A imeressrggrocp of assembly language demos fa youf visual rand aursJ pleasure Bnary on.y. ty: Foster Hal DiskLb Two utiities fa those people who Ike to sptt up PD d$ W «o asks at srtererrt categor.es
todudes source by: Wilson Snyder Guardian Anctoa vires tiagxsng and vaccrason program.
Recagrvzesa'ryncr-starPa.'aboctiobu irdjsesa sral u*Ji*y program to perr.anentiy peret rfe p-ogram.
On a copy ol your kckstart disk m place of toe seldom (If ever1) us« Debug') Lrctcr.. Erary orty. By. _e- onardoFe« PnntSpool A pnnt-spooling progrram. Very useM lor pnmrglifes tn toe baAground. Many command-line options. Version i.O 0, incixfet source. Auina Frangas Gagnon Utilities A group of lour little utiJrty programs; UnOefete ¦ UnOefese a fife Irom floppy (OFO:) to any devite you request, checks tor a disk m toe dnvo and aicws you 10 abort cleanly with a CTRL C L Wherels - Locks lor a fife and a drectory Oefeuts to toe current device CAL ¦ Ctoe of toe Urxx CAL, dates framyear 1 lo
9999 Dctock Smpeilfe bar cJocknerrcry gauge wrtn pop tclront VrvsX An update 12 toe vres-delec pregraTi cf toe same niT.e on d4k rvnber 137. Ths vsrssoi also checks for toe Byte-aandtcran. Verson 1 21. Tociudes scu.xe by Stere Ttttert Vrus_Afen! Yet anotoer an:-vns program wth a twist Oree m- stalled a message 15 clayed jus! After a warm a ctod boot rctfynq toe toe user toat toe dsk ranj memiory are virus-free, raiti facing a mouse-bulton press before contrxjng. Anything wntng 50 the boolpiock toereaftcr wil destroy toe message and a nama! Virus infected bcol (???) Will take-ptace. Versions
t.01 and 2.01. Binary only, by: Foster Hal Wcon A "Wrdcw iconfier‘ Atcws you to turn yoa wirttows mta srraJ cons when can be latrf recra'ted. Cunentty mstaled with MacWin to give your wrvdews a 'retbef- bandng’ eftec. Verscr 1.14, Ycudes sores, br: Steven Swee&ng tonduong re Aruga FiCflEiihPliL355 AyiLjiTpres A axpfeol assembly cMeexampes cxecutebfes are not extremely but toe code mipnt be cf consderabfe benefit to be mng assembly languagepregramme-s by: Herre.k Clausen A repfecenera tor ma *yacc’ conxand From toe GNU (GNU is Not Unx) effort Contains updates to ihe version oi dsk number 136.
Subnvned by two separate sources, htJjdea source, by: Bob Corbet: and RcJwt) Sul man, updates by Wliam Loftus 5 Scott Henry NoSmckng Sample program showing toe use cf a recoverable afen w+ife displaying a personal health message, deludes source. Autha: Theo kermands Scenery A very nice assembly vr usge randoi' scenery generator Generates very realistic fcokng Landscapes, includes rrtmtion ntertace and tots cf menu cpbuns. V.
1. 0. bmary only by; Brett Casebcft Fred fish Disk 155 5cc«a2
Amusing ranc coortji ospay o.1 a -mcvrig trai oTBocksL Update
to versanonisk number 71, however tos voscr. Raso Soace. By:
Gary Waksr Ffex Rex is a replacement la toe UNIX 1ex' fexica!
Inaly2er gerwrata) program that cs I aster than lex. And tredyredstobuiabfe. Includes souree. Authors ,-ef Poskaraef. Vern Paxssn. EL al. Submissions by Wiliam Loftus and Scott Henry Go64 Arcrfx-f screen hac*. Am d at an eah er Con.Todore produrt (Not 10 be confxsed wth the commercial product Go-641 (ranSoftware Insght Systems) includes source by: Joeg Arsfik Gramrrra'S A group cf lex ca! Gran mar fies fa Ada, Card Rascal la use n conjunction wto toe flex aog-rarr cn ires dsk and frvroscr program cn csk 155 by: Va'ous, subm-nted byWibam Lotus OCPS1 Tired ol toe moncchrgme backgrctrtd cola
cfycur Wakbench or CU'' Ther. Try rts too j saeen hack to brgr-ir. Tongs up:totiudfes source, by Mrg A-.&,k ficdFiifi Disk 157 6Ccr80 A smai to.try E '-txjge toe 6C 80 cofemn tert rrodes w’toout having to go r.'cxg-, ytc'cecei. Woks from eitr.ov tne Cli a the Woritoench. S by; Mark SohretJen Amit-cvm Creates a DfxxwttocA containing ony these a'&raxdcs and eitoianges.'eraphatietoroLghPC-PurSurt hpu!
A-'y ol Chel Solace's FnaSst BBS iisls and it creates too Phonebook m a form usabfe byAmicTerm other popular tarnirul progrrams.V. 13. Binary only, by J. Mo:s.nga ArxmBaJs A mfty i.ffte arvmaton program Thai allows you 10create a coflaction cf bails in torre-space and toen rteractively rotate then in re time usng toe mouse. HcJuCfes sourte by: Jim Guiibrd BoocBark A handy ktio uthiy to ccpy and save tr.e tect block (’em a disk, then lator rosKxe it should (he disk gel stomped on by some ugly virus. Source, by: David Joiner EC?M A CP U emulator (or the Amga Bit dates an K33 a'cng With H19
Jerrr.naJ ertJstein Update from ers»or or dsk number 105 Soureefry: Jim Cathey; pen by Chadre Gibbs; Significant improvements by Wfl Kusc.no KeyFifer BBS message fio sens’ natalowssirtirojfcy keyword, irteutes a tertreader. Sounder matching, and imijod wWcardcapabiktes. V. 1.0. Rnarycrty,by: J. Mctenger ScreenZap A Ifte utkty to dean away screens tnat are led by iCbehavwg programs, ft will kill every screen behind the WorkSench. Noting hew many i; gets The screens n Bert of W3 are xt affected Source, by. Lars Cfeu«n SeiPrels A'taws you to buAJ a whofe tfrrary ol preference setzngs and nstarty
switch back and tarto behreen them. Afects anpreferexo settings notjusl the cokys Very useful for machnes wto mjtapfe jsers or nuffrpfe exumil devices Inc ides Ar-ga 5 defaul and various sample presence setongs. B only, by Martn Hippeie Xicon Xicon lets you use icons to call up sen pis ccntaning CL1 commands. This is verson 2.01 .an update to FF1C2.
TnCudes source, by: Pete Gocdeve D$ kX Mo&’y ocro Sector-based d«k edcor. Brary onfy by Steve libbed MemBoardTest Ohgmaty designed lor production testing of A1000 memory boards Veryrceintudjonritertace. Version 2.4. Scuce in Modula by: George Vckafek MS DOS A program to hst files written in standard MS Dos orAtari ST formal. The l»!os can then be copied io Ram and rewritten to disk in Amiga-Doslormat. B.raryony. Shareware. V, 0.1 Autoor: Frank W toeing PCBTcol Early reocn of a shareware PC Board layout progam Lets cl c-pbcns rcudrg varrabe see pads and races.
Ctes. Grid snap, layers zoom, sdeetabe centering. Text and mere. This version does not support primer platter dumps or lcranes. V.26. Bcrofy .by: Georg© Vokafek ScreerX A handy little backgrcuid u-.J ty that provides a sma I cioot'memory carter n its inactive mode and a versatile screen manipulator when called upon. Binary, source avaJable tom author, V2.1.by: Sieve Toben TaskX A TeaUjme’ task edrr. Lets ycu 1st and set pnontesol alcurrencyrorrxngtasks. Bte7.V.2.Q.by;S Tbbefi VrusX Update a FF15*. Checks (cr a ccucre of acdtonaJ new Strans. Includes source V. 16 by: Steve TtOeC YacfrC3 Update
a FF1 o. contains some fines and incorporates a srmpfe sound process V3. Nckjdes sora Author Shddcn Loom on. With enhancements by MrakSchreten Ettdfhh fiiak 159 Free A littJs command to pu- in your c directory that returns memory status and amber ol tasks cu rerriy serred by EXEC Incijdes sa cra trf. Joerg Ansi*.
MoTcctt A group d sereraJ Prierert uSJy program s tor txse who run a Mdi system. Scary arty, by: Jack Deckard StarChar, Ncety done mutton based program to display and identify about 600 stars, galaies and nebulae viable in the Northern hemisphere. V.l 2. Scwce. By: Ray fl Larsoi TaskCcnpoiNceiy done task-handing program aaowmg you to put to sleep, kill or change premies ol the aE the currently loaded tasks Also potertialy GURU-prcducing, so oe careU wha: tasks you lot! Change priorities ol. Ole.
Handy windcwuar wifi recxe .1 atiraessfr an con Bnsy oniyiy: J, Ma.hr H pefe TUC ’The Ultimata Clock', Axtner wndcw 5Ca cock memory minder. This one is m l32ccJumn$ ! Also grves the free mem.ory cn drrves DFO. Dft i DF2.lnciudfls sou-ca.
By Joerg AnsJk FfCdFiSh Disk 160 Calls A ftf e utiify to help aralyze lhe f-ow ol a C program by tay.ng out lhe lunctors taled in a hlera-'chca.'
Manner Orgr 'ly (ran Usenet wth ma,cr re-vsonj by Kevh BriLfiOcrf, Arga pcrtcy George MicCcrad Check Ausefiiideutlitylorfrdng5bjCuaIerrffsnCsourae code, Many command-line options. V,1.library only.by: Keith Elbertson Dis A &B003 d sassomble,H wTitten m assembly, tbs is an updatoto the vorjon on ds« s• 28 Inckidos source by; Grog Lee with enhancement s by Ml Kusche Dmouse A versatio screen & mouse banker, auto wands* activator, mouse accelerator, popcii. Pep wmdow la from, push vmiow to bacx, eto. Wvpget V. 1 03, includes source Update to FF U5 by: Man Duon DW1F 'Dasy Wheel IFF Porter*. A
graphcs pr.rtng gOKy rat al'Ows theprintng cl Fr pictures on a daisy wheel printer.
Includes source, by: Ken Van Camp M4 A UNIX M4 took-al’ke macro processor mtondcd as a front end flatter, Pascal, and coer languages that do x: have a buift-n macro processng capabl.ty. Pd M4 roads standard input, trw processed tert is written cn too standard output by: Ozan S. Y gt (oz) MeooPad A shareware rtmtorvbased memo remr.per program.Nceiy dcre L'pdaatc version cn ask *(46. V .2 binary onlyjjy: Michael Gfiebng NeuralFiets A neural network eiample using lhe general-ized back- propagation delta rote lev teaming, spedcaliy appled to the tabiAarasa Utdo Red Rd ij Hood ristaxe. By; J. C.
Hoskrs Fred Fish D sk 151 Friends Sscreen hack w th comm and-tne opaons to keep your mouse ponter company when you step away Soi cety Mchasi Warner Ge*apnte S.mpe Me program to convert Cpam Crushes rto C- sourceBirwy orJy, by; Michael Warner IncRev A handy Jitda program that will auiomatoaly inoement the rev,sen rwnber ol a program every time ii is recampied Binary only, by Bryan Ford IGZ A Map generator edtcr for tx LGZ game. F t usefJ if pu dont happen to play that game, but good sewee example ol miiton ntedaaing V Q.tty. La.-s & Henrk Clausen Mafiue A versartte O. macro-key ncatcv sasec on
POPCU w.n a enque x hod ol *s een-bia,nking*, I won I say more, just try iUV.1.1, with source, by: Thomas Rokicki
f. ag A shareware apponbmcn* calendar with it s cwn eotor and a
unique 'nagging' feature uUiiingthe Amiga's voce and audo
devices. V.1.6, brary only, by; RiCha.ro Lee Stockton Fen
Praebca! Eitracton and Report La*guage. An interpreted
language optmiied lor scanrtrg at»za7 tert f'tes. Ettraebng
mforT.abon Irom those text files, 4 prrr-rg reports based cn
the mtornaMn by; Larry Wall VflTes Another anp wros utlSy rat
a'cws usual irtspecccn of ram sarong a 57E7FE, ram cteirang.
Beotbbek m spec ton aid vector m orator, ng roseing. Written
in assembly V. 3.2. binary only.by: Babar Khan X&oct Very
simple utitty to convert a boot bteck into an executable He to
use yoa tavona debu er (Wack.
Dis.etc,) to ssjdy it. Wrucuroe by: Francob Rouax £i£ilfl$ fi£iall£2 Am A worigjike verson ol Lhe UN IX v editor for the amgaThog xt c-soeoaiy fecon-roended lor begoners. Oesgroed lor those cf you who may nave the vi commands permanerty hard ccdod r.to your rngcflips! V.1.0. binary only, by Fetor Nestor CLI_ULlities This directory contains several subdirectories with smaS utiiies ccxtected from vanous sources, only usable from tie Oil Some with souroe Author: Various Dan A smal graphics and anrratter. Derrc wrohsouroe. By; Phi Ftobertson Fow2Trofl A Into utlity lo convert (rom New Horizons
Software “FLQA" fi'es to UNIX rircfl" files. LaUble ter pnmng on any trofl-compatcie laser printer. V. 1.0. mcfudes source and a sample‘FLOW He. By: Darnel Baneq Labyrinth 11 A shareware rcle-playing text adventure game smilar in operation to tne Inlocom lert adventures.lncfu s sojrto. By: Russell Wallace
- ter Marars arcrrves of Lmerorar e F*e Fcrrrat (L-r) FORM CA,
and UST f*es n a nampr dtgj compfies with r» IFF CAT spcc cason
V.t .2. ixiudes source by: Kan Letenisauer SetPALorNTSC A ccuoe
cl utJty programs lor testing toe sutaiiry ol a developed
program in ether toe PAL cr NTSC environments. Includes source
and a simple program.by: Peter K.ttel T£S ‘The Electocnic
Slare’ adds a gadget stop to the top ol no cl window to perform
such hnctons as devee d-roccr s info, run ED. And time.
Currency, assign- nents ire hirocodec but not tblkrat to
riraroie :i you own a compiler. V. 1.1, with source ty: Jcerg
AnsJik UrwxwnGid Amal m'jsdal puce similar in executor to
Symhemana'onFFl53. Binary cray. Ho erLAu Fred Fish Disk 1 3,
Bankn A complete shareware checkbook system. Update to FfiJO.
Vi .5. tmany. By: Hal Carter RvelnUno Board-playing game
similar to Go-ktoku, RisHvfte. Eto.
Fast paced i abSeW Source by: Nyef Rsketpm Mar.. A ‘mouse acceieram- program wracn mcudes hctteyi.
The teat es o! Sun rouse, cicktcfront, pcpcri. He bar b«k with a tbs cnino charge acctmutelor, and more Update to FF13Q, V2,4c. Birwy crty. By: Brian Moats MemTrace Rcutnes he p debug memory alocaton and teeng dunrg program devdcpfrent. CompLans il you try to Ireo memory you didn I a'kxate 4 reports cn memory xl freed when your prog finishes by: Jojo Wesener PcPatoh Patoxs far PC Copy and PCFcma: Yon tie ’EXTRAS
1. 2 aw. To slew reeling vrcrvj'cmatox 3.5 ixn IreCk (2 sdes 4-3
TracksS sectors; MS XS asks by: WenerGuentoer ReadmeMaster A
nifty fitre database tar Isndng these programs thal you knew
exist somewhere 7?’) m the Amiga Lb Dsk Eo-a*y Maintains a
keyword dictionary of the Contents descript ors that a cws
searching by dskrrjmber. Program title, author's name, or scne
ether descriptve word Currently supports cf sks 1 -1W with
ptemec updates, B-naryby HaroidMafash Ve* A ncjse-oneraad text
fie rea r Saroe cpera:cr. Is Oeronsrsted in readng the Vew coc
fie, instead cf usmg the usual lass’ text file reader, by:
Bryan Fcrd Fred Fish Disk 164.
C-Functons A group of four Me C-functrons tg add Io your library to rrakc you- programming Lte a (stteaasier. Includes scute and a smal demp program snowing some of toe results by: UrsThurng DiskSalv Very useful program to recover ftes Irom a trasned AmgaDOS osu Cm also Indeteto' f les deleted by msake. So icr as toey hare xi o.erwn ren by fumer bskactivity. Requires todskar.res Many erharcemento the crural vrorsron on disk 20.
Verson 2. Binary only by: Dare Hayttie Hed A fundy Lraie edtor thai is more uset-frendfy than *Ed‘, yel doesn't requ.re the rremonzaton of ccrrpcateo key5?ekes o! Some cf too larger, more powerij.
Editors. SnaycAly by: Hal Carter Newton U$ « too *Newtcns Method* a'gxmn to esomate both rea and imaginary rooa of a poyxr. A' cf aegree 20 cr kiss. Verson 1.0. includes source by: Da.mef Barrett NewZAP A ttnro generaPcf. -purpose fie sector edung utility, irom toe author o! F eZAP, Displays and edra lull 512-byte sectors via a lOBcnaractor wide internal lort. Bciudes a search feali e to f*nj spec fro stnngs orhcxdgts. Fywa ds cr backwards Update to FffSfi.Version3.18, S-naryonly by. Hodgson Pc View Provtoes the PC com, nun ry with toe opportunity to dsptey IFF pictures to toe best of EGA’s
Dspxays Am a PCS, 0M-PC Dskjte Part Pcs, Ax e ii-GS De-uie Paint Pcs. Arc ethers n toe :-r sandard format. Lxludessoace. Author; John Hodgson PdyRoot Another Polynomial rcot-finder using toe Nswtonten a-'gorrtiim. Nicely done m AmigaBasic with good documeraatonfiie Verson 2 M Author: Jen GiDrp-’s PrtDrvers A Ktupte of new Pr.nter Dnvprs Dgtal Equpmsnfs LNC3- laser pr.ter, Mamesnam T a'lys MT42Dd do: matox. Autoors: DEC LNC3 Benve Uenpnk M’420d Sascna WikJner Zoo A 5ie arortver, much ike *aro* ii ccncep'. But rolteen: m mpemecaron ax user Jterias oetai . 'nctedes som,e nee features thal 'arc*
lacks (Such as Ge path names up so 255 Characters in length). This is version
2. C0, an update to FF 136. Binary only, by: Rahul Dhesi, Am a
port by Bha.1 Waters FrsdFish Disk 165 Coman
ExbemefyusefJreplacemenjtartoestexardayiscfe handier, proides
Ine adding and command lix histones. Completely transparent to
any appSMtion program that uses CON: widows. Shareware, and
well wcrto a donafion to toe a.'toor. V1.3, bru.7only, ideate
toFfi33 by; Wilam Haw« C PM Another CP, M emulator independent
autocuxj Iron too version mat appeared on disk 157. Emulates
a CPM computer wto a 280 processor connected to an ADM3A
lemma! Assem&V source xljded. By: UINorpq st Pawttfl A
program lo ad in periorm cocx1 seoaratens on Epson JX-83
pnrsrs. Scurae by: John Hsogson PtatVc-w A couf e of progrars.
PkKvew and Plct2Am. For viewing UNIX plot files.
AlwixljdcdaretwosutWrecteres: Plot a Oevce ndependeri pcc
package tr me Amga, compatbfe wsh trie UNIX pfct subroutine
package arte PtotZTek converts UNIX pfot formal lies to
Tektronix 41 Ox terminal graphta commands.
Sarce included Author: Joef Swank RaraCopy a copy program der.gxd lor xacritees wrtn ) meg or more cf Ram arte only one disk (tore. Copya conp'efc Ssk in Onfy ox pass, by: Stephen Gunn SPUDctock A simple program that uses toe narrator device 10 speak toe bne a: caruin user spee'ed inservais Lets of command I no options Verson ii. Induces soace Authors: Robert E. Beaty and H. Bre: Yeung Fred Fish Disk 166.
AuteGraf Collects ate graphically d-spfays inlorr.aton on auto nseage. Features suth as x tes pergaton, cost per mie, mites dnren.hgh$ , tows, arerages, eta ndudes sampe aati ite. A ccupte ubfcty cpgrams arte wura.
Version 15 Autoor; Joel Swank Crol C cross reference* program Prints out your coda wto ine-ambors ate complete key-wxd cress relerensrg.
Update ho if 103 nvncn had a sercus bug Includes source, by; MkeEdmorteSiAngapor; by Jod Swank WuftiCalc Yet another RPIJ po graphd calculator. Tins one generates answers with extreme precision (il 3300 digits is enough ) Feasts a-iSdg tscroftePtedspay.
Mouse Cr ven wto tea cf keyboard sxreuts 4 conkaricr. Cur.mg ncn-use Snary. Ty Ken Jchnson Stev« A pjCilcocmanconeo-‘ too UNIX 'vf e6 x Supports window sz-ng. Arrow keys, and toe hefp key Version
3. 50a. irclitees source Am.ga port by Tcny Andrews EadFiifl Disk
157, Cded English 50 C and vco versa) translator for C
decteratons This Ittte gem w,11 translate english such as
‘declare loo a$ pomter to luncton returruvg pomter lo array 10
cf coroer to teng* res "tang ¦(‘i*laoK)i(lOr. Ate wee versa.
Update ttFFtiA Includes souroe by: Graham Ross wron
enhancements by Davte Wovenx.
Tony Hansen. Merlyn LeRey, Ui Fmkelstftn 4 more.
Clkxn Run CU prograrrs from workbench, similar in operation to taonExec. But nore versatle by: Sryan Fcrd CioseMfl Axtrier ingenews perversion n the screen hack category. Don t mss this ono...surely desiir-ed to become a classcr tndudes source, by: Charlie Gibbs DSM (Dynamic Scute Vaohix) Der.o version wito ‘Save* dsabied of a program wrtcn w-.t take any IFF so te cr raw data ate sare tas a toufy sef-contanec, ronabfe program, by: Foster KaH MRPmt A cli-fcased Text fie prning utility wito lets of nee features, irteudrg tab-to-space expan&cn. Page teaPers. Line tempers, margn centra wito
Lno-spl Hog ate paglnatronc ecbon. ARP wrkfcard support, ate auto- rejecson cf f ies contain, ng bna7 characiera.
Version 3.1, Ixkces source. Autoor; Mark R n'ret Sn.jsJ fa An ertoarcte verson of too sm js pa ,er that last fipcearec cr, FF!6 Autocr, Jem rtx scr.
5cuteder.es Some very nee Ceres tar showing cf! I~e rcredbe aucJo power ol the Ariga: lOOYi assembly language.
Connect too stereo lor toese' Author: Foster Halt EtEdFiri Dianipg;
* Fred Fish 166 a-te Fred Rsh 165 conrar. Ate programs subnuted
by Matt 0,1.on ate both d.sks must Bo purchased at toe same
time to uUize too programs cn too dsk. In order to ma-roato the
coragrurcy c!
Man Diton s fies, Fred kept toe d ks n the: crgra; lorn1 Vie apologue ter iris rconvenence, but we fee' toe -boy sxud reiTin react under Fred's crgnaJ gude Lnes.
CONFIG Vi.00 Configure Inendfy programs tks DME tar tna nitii window placement (conSgs the executable) by Mdill'on Clock VI,00 Simple dock, ccn'guaUo wto ccrJig by Mdiion.
DME V131 My programr- rg onentededtor by MdiJkxi Dmcuse Vt.10 Meuse enhancer ..accderaton. blarJung. Etc ..(tew hatees requosters bettor wt auto activate) by M Djite Ba uo V201 HD backup restore by M Diion SU?J3 Support (ink tune) Ibrary r«?jrec to con pie Man Mens pog-rams.byM Diton UBREF USSty fcr gewcing ror-trre Horary irkassembly files, Kro.asm, 4 the run-time library's vector kst.
Curoentiy very Aztec in what it generates, ty MdiKon ORES VI Sxpc-h (rom (me) Ltrary w' tats cf furctcns inctedrg a gexx pa-'ser and l?C. By Maq Outer DASV V2.11 SmaJ-systemi asserr txer. Handes6502 ate some cf toe Motorca urge on,pmcrocomputer5 Generates code txtofc-ec: nooie orerad-. By Uan Ds.cn FT0 HEX Paro cfD ASM usee 3 convert a DASM executable xito an roel tex 'cnated asa He. By Matt lXLct FILES V12 Mac Dilxan's dsk caaog program. PyMOiten SHELL V2.10 Added enwrcment variable support and more. Use ConMan if you want command line editing by MD-bioo FJNDIT Vt 00 Search (or a feename
(wildcard) by MD Son LIBS Vi 00 !«t ibranesaerces n ram cr aneropt a remove Iterates by M Dl ten SCAT Vi.00 UbLty to car bflwe$ witooul btawmg up toe display by MdiLon ADDCR Vt ,00 Uto7 to add CR's be'cra L~s r, toes by Mdrten REMCF1 Vi CO Utity to remove CR's m fJes ty Mdiion CMP V1.00 UCSty to compare rwo files by Mdiion Altterm Commmunicaiions program utfarig IBM 327B termitial emulator. Bina7 tyJy. By; Don Brereton D s6332 A poopi £502 tesassemiief win support added (or C64 bna,7fi5es. IncJudes soute. By: RoOert Bote, Aroga port fry US FnkeiStein FastText Bitter based fast texi reteerrg
rcutnes wrroen in assembly. Urcoue in ne fact toa: toey spoed up rendering of xn ropc-roorai crzs d any height, ate Irons 4-16 puds n wdto. Scuce ate lest program iteutod. By: Darren M. Greenwald MRBackUp A liard disk backup utility that does a file by file ccpy to rutoda d AmigaDOS Soppy isks. Includes an mtirton interface and fie compression. Version 2.4. Update to FfiJS. Binary only fry; Marfcftrtret PtrArin Nifty porter ahiT.atioo program, mcludes tats o' sam pies, a utiity program ate i"4trtJCtcns on creating your own arvraMns Bnaryon£y.sha-e*areby: TimXemp Surf Generafes tezxr surfaces
cf revokfiorL WJ produce some arairyj pcires cf wineglasses, doorknots, cr cthor objects one coukJ Lam on a lathe. Includes toe capaoty to map IFF imago fifes onto any surface that it can draw. Source inebded by: EricDav.es Turbo Opens a small wteow wto 2 gadget toa: w*en seected.
Ijros erf bnpare. Sprn.e. ccppe* ax ate 3 DMA, to tx-ease system speed Souroe by; Ower Wagner Fredn hDLiK !7i.
A2 Ccmn M oc fed rer 5.01 ol Con m 1.34 toa t cowams Zmoden send, recsrre. Ate resume rect-..-e Verven ICC. B ra.7 cmy. By: SS. Paid, based cn Corn 134 syDJ James Maze A coupfe ol very roco demos kx too creation ate use ol bng'e-sout'on mazes, one ol wfrch is practcaJly a standalone game, inoucfes source by. Wmer Gunoer Sozobon-C Atari S' version of what appears a M a f Ji K&R Heeware C-comp'e*. Assembler ax inker. Tre ocmqier man pass ate tre assent*? Were complied ate tested cn an Amiga A20CC with onfy minimal changes, ate toey to worv (to toe extent that rrey beleve they are rurrng on. An
Atan-STj , so an Amiga port sxxAd be relatively easy by: Sozcbon.Lmited. Xoper V«7 comprehensive program to monitor ate control system adr rfy. Monitor cpu rnemory usage, ports, rnerrupts, ce.ices Close wtec-ws screens, ste bated forts or las! Guru cow number Dean uo memory, fwh x..sed i-irares, devices forts, ere. Ate a whde tench more! Spawns ts own process. A very hatey background lask to hare loaded. Assembly source nctex by Werner Gurtocf Data1000i Autriily lo convert rawdata lies (sprites, irroigedata, text, etc.) directly mto object code witch can then bo linked lo too man program
without toe need to go through toe Kmtete process tofrutessterte by Warner Girtoer Hraxs~a.se A lul featured VT52,V7;CG’.7i32yT22G •emrral an Jattx. He autoor has taken yea: pains to support toe Ju3 Vtt02 spec Now jppcrts ANSI cocvs. Screen capture ate more. Update to version on FF6C Verson
2. 12a. txra7 criy. Shareware by: t.x Haterfefiner Mftx Smal
program w insert in toa startup-sequerco ot toe commercial
program. Marauder II. From D score ry Software. Inlemafional.
When toe copy process starts, toe rainbow screen u covered fry
a tare screen urei toe cop) s firoshed Aunor orair.s a 25%
decrease m ccpy fr~-ei* actoered. V1.0. Brray. Fry; Stephen
Gum Fccitfo A ‘shrrkatie1 woriiench utirfy a stew ycj seme
jnta WoriJierch doesn't, such as free memory on external
devices, chip, fast, ate total ram usage and more. V2.0,
Includes scvce. By; Jcnatoan Rotter ProCalc SimuUles an
Hi?-11C programmable calculator. Lots cl enhanconems ate bug
faes since the original version or.
FF129. V1.2. bna7 crty. S1, rare ware by: GotzMfrfer Spiff Make oortro'te app'cxmato-s between two fi'es, Sm -a* to terf* but more rersaofe Ajcws fy re hatel te cf on era's as sfrng Lya s cf rumeric va'ues wito arf.usfefrle tolerances. Provides (or embedded Commands, ScrptffeS. Ate r.ar.y cthor command-! Ne parameters. PoteniiaCy very useful, netessoms Amiga- speoficwork. Sou*ce ate ezamipfe Nes iteufled by; Dan Nacribar, 3cC Commuricascns Research ieELLCORE) To Be Cortnjed...... Iggcss-mM To toe best d «xr kxwfedge. Toe mat eras m ths I brary are freely distributable. Ths meansffrey were
eitoerpubiicly posted aix paced in the public domain by their authors, or ttey hare restnctens published m their fifes to which wt? Have adhered. If ycu become aware ol ar y rotation o' toe arthcrs' wishes, peaso contact us by rnai.
Th s fist js complied ate pubisne-" as a sevce :a lhe Ccrtirr.c ore Amiga comnufbty fcr informational purposes only. Its use is restricted to non-commercial groups only!
Any dupJicauon (or commercial purposes is strictly forb deer. As a pan of Amazing Computing™, this fist is inherently copyrighted. Any infringement on this p*cpte- tary copyrght w.thojt enpresseo written permission of the publishers will incur tie full force of legal actions.
Any non-commercial An.ga user group wishing to Duplicate this list should contact: PiM Pub'ications, Inc,
P. O.Box 669 Fail River, MA 02722 P M Publications Inc. s
extremely interested: in tieipmg any Amiga user groups in
ron-commeroal support for tna Amiga.
Amaze Me Please use this order form when subscribing to Amazing Computing™, ordering Back Issues, or ordering Amiga™ Public Domain Software Name_ Str ee t___ City _St. Zip_ PROPER ADDRESS REQUIRED In crdar to exped.te and guarantee you? Order. All large Public Domain Software orders, as well as most Back issue orders, are snipped by United Parcel Service UPS requires tna: all packages bo addressed '.o a siree' address for correct delivery.
Please circle the appropriate item: New Subscription Renewal Subscription: Please start my subscription to Amazing Computing™ with the next available issue or renew my current subscription. I have enclosed $ 24.00 for 12 issues in the U.S. (S35.00 Canada and Mexico. $ 44.00 foreign surface). All funds must be in U.S. Currency on a U.S. Bank Back issues: $ 5.00 each US, $ 6.00 each Canada and Mexico, $ 7.00 each Foreign Surface.
Please circle your Back Issue choices below: Voll.t Von, 2 VoH.3 Voll.4 Volt. 5 Volt .6 Volt.7 Volt.8 VoM.9 Vo!2.1 'M2.2 Voi2.3 VolZ4 Vol2.5 V0I2.6 Vol2 7 Vol2.8 Voi2.9 VOI2.10 V0I2.1 • Vo!2,12 Vol3.1 Back Issues: Vo'3,2 Vol3.3 Voi3.4 Vol3.5 Vol3.6 Vol3.7 Vol3.8 Vol3.9 V0I3.10 Vol3.l1 Vol3.12 Public Domain Software: $ 6.00 each tor subscribers (yes, even the new ones!)
$ 7.00 each for non subscribers (three disk minimum on all foreign orders) PD3 Disks: Please circle your Public Domain Software choices below: Amazing 011 Disk: A 1. . .Source & Listings V3 9 Amicus: A1 A2 A3 A4 AS A6 A7 A8 A9 AlO Alt A12 A13 A14 A15 A16 A17 A18 AI9 A21 A22 A23 A24 A25 A2S Fred Fish: Fr* FF2 FF3 FFA FF5 ==£ FF7 Ff6 r F9 FF 10 FF! 1 FF12 FF* 5- FF14 FP.5 Fft6 FF' 7 FF*e FF19 FF20 FF2i FF22 FF23 F-F24 FF25 FF26 FF27 FF28 FF29 FF30 FF31 FF32 FF33 FF34 FF35 FF3G FF37 FF38 FF39 FF40 FF41 FF42 FF43 FF4.J FfiS FF4fi FF47 FF48 FF49 FF50 FF51 FF52 FF54 FF fS FF55 FF56 FFNA Ffsa FF53
"F60 Ffbl FF62 FF60 FF64 FF65 FF66 FF67 FFC8 Frt9 FFTQ FF71 FF72 FF73 FF74 FF7S FF76 FF73 FF79 FrNA Ffei FF62 FF53 FF6A FFS5 FFS6 FF3T FFNA Ffe?
FF90 FF;‘ FF92 FF93 FF94 FF95 FF9C FF97 FF58 FF99 FF 100 FflOl Frl02 FF103 ffiw FF 1C5 FF 106 FF107 FF ICS FF1D9 l-F 110 FF 111 FFU2 Fr 113 FF114 FF115 FF116 FFI17 FFH6 Ffl 19 FF120 FF12- FF 122 FF‘23 FF124 FF125 FF 126 FF 127 FF128 IF 129 FF130 FF131 FF132 FF133 FFI34 FF135 F-136 ffh; FF138 FF 139 FF 140 FF141 FF142 FF143 FF 144 FFW5 11-14G FF 147 Fr*48 FF149 FF 150 FFI5!
FF152 FF153 Ff 154 FF156 rf156 FR57 =F’53 FF159 FF160 FF161 FF162 FF 163 FFIc-i FF *65 FF166 FF 167 FF16S FF165 FF170 FF171 FF172 (NA Denotes d sks removed irom the collection) Please complete this form and mail with check or money order to: PiM Publications, Inc.
P. O. Box 869 Fall River, MA 02722-0869 Total: Please allow 4 to
6 weeks for delivery Amazing Computing Reader Service Card
Want to know more about Amazing computing advertisers and
their products? Here's yourchance! Fill out the card below
(for instructions,see page 96) and drop it in die mail (U.S.
only). We will process your request promptly and forward it to
the advertiser.
Quick easy, and efficient just like all services of Amazing Computing: Your Original Amiga Monthly Resource.
Amazing Computing Reader Service Card St. » r- Ariliang Cor-tpuSng?
O * Socr O 5, NotYei O £ X*; Locjctj £ Progr err-ng How To** 10 Butman Hew ToY 11 Video Artoei 12 Graphic* Atria* 13 Iak Vto*t 14 Ha'dwar* How To'* 15 POSdaciW* 16 17 Ofwr O £ O 7 0 & UvtcT» 0 fl V«h Product O It Oher O V O Z O 1 O 4 O S 1 mora erf n Amarng Compudng?
O 9 Programming How To2* O 10. Bu *me** How To'* O IV Vdec Arsoe* O 12. Gropnc* Atom O 13 lAuuc Ate** O 1* KiwartHomTol O 15 POSUpdato* O 16 O 17 G A* you ¦ ubKr tv* to Artinj Cotr.oj»r ?
Q 1. Ye* O 2 Ho Cwha* Arr t ic*ia» product Co fOJ pian to buy rwrt?
0 1.
C'Larguage O ft Soreadahwet 0 2 Forth langjaga O 0 Datadaae 0 3 Module 2 Language O
Fnanoml 0 4 Aaiarr by Long- aga O
Voeo 0 5 BASIC Language O
12. Grarr.e* 0 6 L~ *r~ja «r • O
* A»c 0 7 O
Orwr V w do you buy your Anyi poJx»?
O 1.
Loc-d A aDwa-or O 3 U*-u‘«hjw O 2 Oaoou i Departne-t Six* O 4 Ma i Odor A-g* MO 2033 Lto-rory Eaparefin Hato Qve fW E-muator* [aoecar or Bndgeooard.1 B Am «jn h ardware srajxl Co you txan to b zy nan?
A Do you «r an A O t. Am e :030 0 2 AngaSM O 3 Ar a2D30 Telephone.
Street_ City_ E W"er type c4 flow c o you 1 ¦* to • O 1. Clang-age O Z F om L angL aga O 3 Uoou (a-?Lenguage O 4 Aaaem by Language O 5 BASK) Language O £ Game flevww O 7. Bu M~w*e R*w*w O £ Hardware P’oCjc: Rev* aw O £ SoPt cxtuc Ranan F rnf om wCu J you B» to aw O 1 C‘language Q 2 F or?' L 009. Age O 1 Module 2 Language O 4 Aaiarr tVy Language O 5 BASIC Lang. ge O £ G»o* Fwv-ew* O 7 Buu-wt* Renew* O £ Ikiowt FvodgC R*» i Q £ Scrhwew P'oducJ fterww* Zip 101 1=?
153 104 165 201 202 203 204 205 106 107 138 109 110 206 207 206 200 210 111 112 113 114 115 211 212 213 214 215 11S 117 118 118
• 3D 2’6 217 2*8 218 223 121 122 123 124
* 25 22' 222 223 224 225 126 127 1 2B 12S 130 21E 227 228 229 230
131 132 133 134 125 231 232 233 234 235 136 137 138 138 140 236
237 238 230 240 141 142 143 144 145 241 242 243 244 24$ i*6 147
1*8 148 150 2*6 247 2*8 2*8 250 151 152
* 53 15* 156 251 252 253 254 256 156 157 158 158 160 256 257 258
250 26C 161 162 163 164 1© 261 262 263 264 265 166 167 168 169
170 266 267 268 260 270 171 172 173 174 175 271 272 273 274 275
176 177 178 179 IflC 276 277 27B 270 290 181 182 183 IB*
• as 28* 282 2*3 284 286 ‘ EC 187
* 88 188 180 296 28?
288 299 290 in 1 B2 183 18* 196 281 282 223 294 295 1 86 187 IBS ¦ 99 200 286 287 298 290 300 January card Valid until 3 31 89 see page 112 for instructions Amazing Computing Reader Service Card January card Valid until 3 31 89 see page 112 for instructions Name At y St Zip 101 1C2 103 104 105 2C1 2C2 2C3 204 205 106 107 108 100 110 206 2C7 206 200 210 elephone 111 112 113 114 115 211 212 213 214 215 116 117 118 1t9 1 20 216 217 218 219 220 121 122 123 124 125 221 222 223 224 225 Do yoj wwn m Amiga?
E Wi type of artdoa do you hhe to tM n Amaxng Compunng?
O 1. Amiga 1000 O 4 Soon O 1.
C’ Language 0 ft Programm-ng How Tol 126 127 T 25 129 IX 226 227 226 229 2X O 2 AngaMC O 5 Not Yet O 2 Fern Language O 10 Bu«*t*ae Hew To*a O 3 Amga2C0C O 6 Just Looeng O 3 Moou * 2 Language O 11 Video Artoe* 131 132 133 13* 135 231 232 233 234 235 O 4 A&aamcrfy Language O 12 Graflhica Irtow W'a: At 5* hardware product do you plan » buy n«rr?
O 5 BASIC Language O 13 U.tc Aloes 136 137 136 130 14S 236 237 238 239 2*0 O 1 AmgaSX O £ Pr.rnaf O £ Gam* Review* O 14 h*t »r* How T 0Y 141 142 143 144 145 241 242 243 244 245 O Z Anga2G0C O 7 Modem O 7 Bu an*«a Renewt O 15 POS Uoctet 146 147 148 140 IX 246 247 248 240 250 O 1 Memory Ej: para or O ft Ujw Tod O 8 Hardware Product m«yb« O 16 l-a em O 4 HardOrve O 8 VkJ*o Product O £ Softwew Product fltmti O 17 Ohwr 151 T52 153 154 156 251 252 253 254 256 O 5 BU Emulator* 0 10 Other 156 157 156 150 16C 256 257 258 250 260 tedocar or Bnogeboard) F V"* h arVdee would you lile to aaa more erf n
Arraxng Com put ng?
O V Clcnguage O £ Programming Ho* ToY VfrD Amiga *o*twaw product do you plan to buy nesrt?
O 2 Forr Liv guage O
10. Butmets How To1!
161 162 163 164 1© 261 262 263 264 2© O V 1)' Ltrg-ojc O ft Stxeedsbe O 3 Modui-2 Lang uaga O 11 Vdeo Aodea 166 167 168 160 ITT 266 267 268 260 270 O 2 Ford'Language O £ O 4 Aesar-ay Language O 12 Grach-c* Arscdea 171 172 173 174 175 271 272 273 274 275 O 3 Modula-2 Language O 10 FmanoaJ O 5 BASIC Language O 13 Ifttc Artoei O 4 Aaoerr try Language O 11 Vcteo O £ Game Rre*wi O 14 Hardware How Tpa 1 76 177 178 170 180 276 277 27B 278 28C O 5 BASIC Language O 12 Gri(rfice O 7 Bum*** fievwwt O 15 POSUpda»a 181 182 183 184 1S5 201 282 283 26* 285 O £ Entortwrm am O 13 Iaj»c O ft Hardware P«JyC!
Fiftvew* O 16 Hfyein 106 167 188 188 IX 296 287 288 298 290 O 7. TaiectmTLncabcrj O 14 Or* O ft Schteew Product Hevwwt 0
17. 0* 1M are do you bury your Anga products?
G Ae yoj a ubicriber to Anozng Computing?
In 192 193 194 195 291 292 293 294 295 O 1. LacM Anga Deader O 1 Manufacurer O 1 Yet 0 2 No 196 107 198 190 200 296 297 299 290 300 O 2 Dtoou rn Department Store O i Ma'I Order BUSINESS REPLY MAIL FIRST CLASS PERMIT NO. 36 FALL RIVER, MA NO POSTAGE NECESSARY IF MAILED IN THE UNITED STATES POSTAGE WILL BE PAID BY ADDRESSEE
P. O. Box 869 Fall River, MA 02722-0869 | | | t M I I I I I I I I
I i t I I I I M I I I I I I I I I t I I I I I I I I I I I I I
P. O. Box 869 Fall River, MA 02722-0869 C &omuc2 puo ssA eu JO oy
a3AV? FOLJ£Z duc ;=£ c?
J Iso f~i O ?S c ST -3 i' g t=- s s a a OS TS 3.
A K 3 Oq " 03 S o. 53-* o cr* T*b s =S o .fr 3.
Ol r s == " a % fr-S o' s; a e != frr p C a § g-
- S s S--3 = H, e--s = * a 5c ft § s’ 3 •* c- r a a
* 5~ eJ
- as a rft. T£ ;=v 3 « S 3 -rb E""J Ol _o C7S
* NO 2 C= =?“ cjn £ £ re s~ Oq -& 5 ¦ 3 a _2 CZ5 Ot- “T Zr C5
5 i U*% S5s cEi ¦ 5*- no eg' =3 s=» Ir S3
- r* iC5 Uo Zzr- 2r r-D J ¦ T. *§ o g s J
- *c rs Cr' ' ¦ ES sa.
5 i~ § J3" c-o.
& s-o s; g. ~ =r Oog O 3 co C3.
Ol sr - =3* *o 5= CTO a; a s ("5 C3 3 ¦Ci 1.
'5' ¦n ore CD o CD o OO O =p O CXI d CNJ 13 r .
D CXI CD , CD CI a £E o "CD O 53 “a CD cr o a o to 5
- • CD u CD CD CD Ou 5 -o 00 X Q CO Ci otJczJ paoyss iAeL
J-O 3SW$ puo duo o- o ~ 3 x Q OO O cp O CM c CM CD r CXI
CD _ cz cz a £E o ~cd O CD _~ cd "O CZ CD CD CD cd 03
o ~C3 CD CD a Gl O GO X o o . .,U= 'IT. • • '•' *: ¦ ¦ TAX
BREAK Tax Preparation and Planning Tool TAX BREAK is
easy-to-use with on screen representation of forms and
schedules, fast recalculation, and constant status of taxes due
or refunds, Full integration of all forms and schedules allows
constant updating of tax status for evaluation of different tax
U. S. version 1.0 $ 79.95 Suggested Retail contact: OXXl Inc
P. O. Box 90309 Long Beach, CA
(213) 427-1227 California Residents add 6.5% Scrollable, on
screen look-a-like lorms and schedules Schedules can be
opened from a menu or by double clicking on the schedule
result line in form 1040 in US version or T1 for Canadian
version Ongoing status of taxes due and refunds at bottom
of each form, or expanded status screen available with
mouse click or F2 key Instant updating of forms and
schedules with each recalculation Line by Line data entry
prompts On screen IRS booklet Prints IRS approved facsimile
forms Pop up calculator Zoom in and out of interlace at
will 1.
3. Simply the Best.
The all new Digi-View Gold is the best video digitizer for the Amiga. Period. Nothing else even comes close. Why?
The secret is that Digi-View Gold captures 2.1 million colors in memory, giving you an incredible 100,000 apparent colors on screen simultaneously.
And it’s easy to use. Just focus your video camera on any object or picture, and in seconds Digi-View Gold turns it into Amiga graphics that glow with vibrant cofor and clarity. Whether you are creating graphics for desktop publishing, presentations, video, or just for fun, Digi-View Gold gives you dazzling images with amazing simplicity.
Digi-View Gold is designed specifically for the Amiga 500 and 2000, and plugs directly into the parallel port.
Digi-View Gold's powerful image capture and manipulation software (version 3.0) now has complete control of color and sharpness, full overscan, extra halfbrite, and a special line art mode for desktop publishing.
Only Digi-View Gold:
• Can digitize in all Amiga resolution modes from 320x200 up to
768x480 (full hi-res overscan)
• Uses 2 to 4096 colors (including extra halfbrite)
• Uses exclusive Enhanced HAM for super fine detail
• Is 100% IFF compatible and works with any graphics software
• Can digitize 21 bits per pixel (2.1 million colors) for the
highest quality images possible
• Has advanced dithering routines that give an apparent 100,000
colors on screen simultaneously
• Has powerful Image processing controls for complete IFF picture
manipulation If you want the highest quality graphics for your
Amiga, as easy as 1, 2, 3; then you need the new version of the
best selling video digitizer of all time: Digi-View Gold.
‘Requires standard gender changer for use with Amiga 1000. Video camera required; not included. NewTek sells a video camera, copy stand, and the Digi-Droid automated fitter wheel lor Digi-Vtew Gold. If your local retailer doesn't carry these products, call us at 913-354-1146.
Digi-View Gold is a Irademark of NewTek. Inc. Amiga is a trademark of Commodore-Amiga, Inc Be seeing you!!
Only $ 199.95 Digi-View Gold is available now at your local Amiga dealer.
Or call 1-800-843-8934 NewTek INCORPORATED 1 LINE_T ‘line; char strl[61],str2[61], str3[61]; !' Make sure we have valid data, then display it if ( NOT window j| NOT rode ) return ( FALSE ); if ( NOT (line - (LINE_? ‘)noda- data)) return(FALSE); 2 I 111 r 11 I i f I i i i I 11 I i I M I t I 1111 1111 111 i i I ! I 11 11 i I i I I

Click image to download PDF

Merci pour votre aide à l'agrandissement d'Amigaland.com !

Thanks for you help to extend Amigaland.com !




Today: 62
Yesterday: 117
This Week: 179
Last Week: 762
This Month: 2735
Last Month: 2931
Total: 63803

Information cookies

Cookies are short reports that are sent and stored on the hard drive of the user's computer through your browser when it connects to a web. Cookies can be used to collect and store user data while connected to provide you the requested services and sometimes tend not to keep. Cookies can be themselves or others.

There are several types of cookies:

  • Technical cookies that facilitate user navigation and use of the various options or services offered by the web as identify the session, allow access to certain areas, facilitate orders, purchases, filling out forms, registration, security, facilitating functionalities (videos, social networks, etc..).
  • Customization cookies that allow users to access services according to their preferences (language, browser, configuration, etc..).
  • Analytical cookies which allow anonymous analysis of the behavior of web users and allow to measure user activity and develop navigation profiles in order to improve the websites.

So when you access our website, in compliance with Article 22 of Law 34/2002 of the Information Society Services, in the analytical cookies treatment, we have requested your consent to their use. All of this is to improve our services. We use Google Analytics to collect anonymous statistical information such as the number of visitors to our site. Cookies added by Google Analytics are governed by the privacy policies of Google Analytics. If you want you can disable cookies from Google Analytics.

However, please note that you can enable or disable cookies by following the instructions of your browser.


Visite depuis
Visite depuis