text:
Menu principal
Liste des magazines disponibles sur AMIGALAND.COM
Amazing Computing Vol 02 10 1987 Oct
the Amiga by John Foust i A behind-the-scenes look at the 1 stuttering star's Amiga roots. Taking the Perfect Screen Shot by Keith Conforti 47 Tips for taking screen shots that live up to those great Amiga graphics. Amiga Artist; Brian Williams by John Foust Candid first-hand impressions and viewpoints . and splendid COLOR art! 10 (Amazing Columns Amiga Forum on CompuServe. Software Publishing Conference Transcript Listen in on the inside scoop, moderated by AC's own Richard Rae. All About Online Conferencing by Richard Rae 97 You too can be a vocal part of any online conference . just take a few simple steps! Amazing Reviews Bug Bytes by John Steiner A NEW column determined to keep up with program bugs and upgrades. 45 dBMAN by Clifford Kent A review of the latest release of VersaSoft's versatile relational database management system. Amiga Pascal by Michael McNeil A preview and review of Pascal implementation for the Amiga. AC-BASIC Compiler by Bryan Catley An overview of the compiler that may prove to be "one of the most important products ever released for the Amiga." Amiga BASIC Structures by Steve Michel Take another step down the Amiga BASIC road with a look at structure. Amiga Notes by Richard Rae 51 If you've been waiting for more MIDI . just listen in! 64 Roamers by The Bandito 63 As promised, the rumors are falling faster than the autumn leaves! 88 68000 Assembly Langun Programming on the Amiga by Chris Martin 83 An easy to learn assembly program that uses include files, Amiga Kernal libraries
Click image to download PDF
XX tta xa to XpaXaXX Xde auXpuX ppuX.peX GcX Xve Port iXrxxcXure tor Xde ttm ' code *tu tn AMIGA Pascal Reviewed AmlGABasic Structures C Animation And MORE!
XX Xxir Sumpter aXreadxjdaa .to auto'A cade aXuXeo. .a»mp erparX- adaxu *« parX ,d do puX0xp9. U«, epep «* gxce aaaipXcrparX-toxiXcade .perrXaaXcacr and pxiX Xde SaxnpXer'a ouXpuX cade p.ga xp aanxpXercade. SeX aompXerporX- a oxu Xdxa porX'1 xd, jo pa aXdcr etodxiXe xpxXX m or V, tvj uutt X.. aVior V.
* *.rut Por . *snmpVerporV, C dwctUun I.
* amp crpur * CaXrucXPort 1) P »tl P qv X.C? Vv dfl »d x? Or
tC" a avn p c r " } V, Caau vAcrpurV) V
CaampVcrporWatouui'i I Qoic WdvP ac .C*amp evpQrA- aboui ,0")«
Vt C aamp evporX- * oui') I uuuivntiovu « CaXrutXUlvrniouj O
UptoUUnclavuCX-NeujViUrvtiiovjjStrutAurtV, Cv uua pdouj} I
lo .a v Q utna * ft; ' Xor lx*0-, x 100; x- 0 ' ueXucxXxjM *
0; ' aampXeraxiXcude * anmpXerpurX- axiXcade; aamp cvport-
outcast « i ierXuultude; 5ampVcrporl- a Qui * Uuspart;
rctwnCY); Slness Programming: dBMan ezv Amazing Column!
Bug Bytes Taking T, " Ph°'C T,pS: 6 1 he Perfect Screen Shot deacXxuaXea Xxxe XJU TocXcr.
teXxirp x.de SampXer'a auXpuX r ' aXrucXurc apd cXcap . Cxoae Xxxe dxapXaij S0ftlGAForum Transcripts: l0cire Publishing Conference "Open the pod bay doors, HAL..." Programmers cast their vote!
Right now, leading software developers are hard at work on the next generation of Amiga® products. To add the spectacular sound effects we've all come to expect from Amiga software, they are overwhelmingly choosing one sound recording package... FutureSound. As one developer put it, "FutureSound should be standard equipment for the Amiga.1' FutureSound the clear winner... Why has FutureSound become the clear choice for digital sound sampling on the Amiga? The reason is obvious: a hardware design that has left nothing out. FutureSound includes two input sources, each with its own amplifier, one
for a microphone and one for direct recording; input volume control; high speed 8-bit parallel interface, complete with an additional printer jxart; extra filters that take care of everything from background hiss to interference from the monitor, and of course, a microphone so that you can begin recording immediately.
What about software?
FutureSound transforms your Amiga into a powerful, multi-track recording studio. Of course, this innovative software package provides you with all the basic recording features you expect.
But with FutureSound, this is just the beginning. A forty-page manual will guide you through such features as variable sampling rates, visual editing, mixing, special effects generation, and more. A major software publisher is soon to release a simulation with an engine roar that will rattle your teeth.
This incredible reverberation effect was designed with FutureSound's software.
Question: What can a 300 pound space creature do with these sounds?
Answer: Anything he wants.
Since FutureSound is IFF compatible (actually three separate formats are supported) your sounds can be used by most Amiga sound applications. With FutureSound and Deluxe Video Construction Set from Electronic Arts, your video creations can use the voice of Mr. Spock, your mother-in-law, or a disturbed super computer.
Programming support is also provided.
Whether you're a "C" programming wiz or a Sunday afternoon BASIC hacker, all the routines you need are on the non-copy protected diskette.
Your Amiga dealer should have FutureSound in stock. If not, just give us a call and for $ 175 (VISA, MasterCard or COD) we'll send one right out to you. 'dread warp factor one!
Applied Visions, Inc., Suite 2200, One Kendall Square Cambridge, MA 02139 (617)494-5417 Amiga is a registered trademark of Commodore-Amiga, Inc. Deluie Video Construction Set is a trademark of Electronic Ads, ire IjOfickColep Wo 0 Again -foasBar Solid_S|| OtfpyCelK' Oile-T Fi;l_ ¦ _ Computer of the Year Get the maximum graphics power from your Amiga. Create stunning, lifelike computer artwork with Digi-Paint, the first full-featured 4096 color (Hold and Modify) paint program. Break the "32 color barrier" and finally realize the potential of your Amiga with Digi-Paint's advanced features:
• 4096 colors on screen simultaneously
• NewTek's exclusive enhanced HAM mode
• Dithered HAM gradient fill
• Full screen effects including double, half size, mirror reverse
and more
• Full IFF and Digi-View compatibility
• Use 320x200 or HAM hi-res 320x400 resolutions
• Fat bits Magnify mode
• Rectangle, oval, line and other drawing tools fPPjif
• 12 different paint modes including blending, tinting and smooth
• Full lasso cut and paste with automatic edge blending
• Programmed completely in assembly language for fast, smooth
response Find out why Byte Magazine called Digi-Paint
"Remarkable". Available now at your local Amiga dealer or call:
ONLY $ 59.95 TeleGames is what you've waited for.
The Future is here.
TeleGames allows you to use your computer and modem to play Chess, Checkers and Backgammon with a human opponent over the telephone. Only $ 34.95!
TeleGames Features Chess * Checkers * Backgammon Superb Graphic Game Simulations Smooth Depth Arranged Movement 4 angle 3D & 2D view perspectives Digitized Sound Effects Compatible with any modem
300. 1200. 2400, 9600 Baud Call originate or answer Null Modem
Connect option Save Game & Transmit Game options Opponent
File Directories Send and Receive Typed Messages Easy to Use
Menus & Requesters All Official Game Rules Supported Play
Over the Phone or at Home Legal Moves Graphically enacted on
the TeleConnected computer
* Fully copyable to hard disks
* Upgrades available on our BBS If you Enjoy Telecomputing,
You'll Love TeleGames!
Published by Software Terminal 3014 Alta Mere, Fort Worth, TX 76116 817-244-4150 Modem: 817-244-4151 Dealer Inquiries invited Amazing Dealers The following are Amazing Dealers, dedicated to supporting the Commodore-Amiga™.
They carry Amazing Computing™, your resource for information on the Amiga™.
; you are not an Amazing Dealer, but would like to become one, contact: PiM Publications, Inc.
P. O.Box 869 Fall River, MA. 02722 1-617-678-4200 Ebcsroniea
Qoutujjo O'lands Tha Bit BuOat West Newtan The Compute Calar
Albany Thg Computet Fsporenai San Aruno Fan fy ConpuBrt Saras
db (ha Schwaro llaus Quncy The Working Compute Slangy Brook
Tha Computer Stoe Abono F ior»da Book Sara GonaVM Tycom S-c.
Ptited Vl«a Compute Bn Brodk,yn L&tfl Camas tr Coogaa Oango Park Ul& Video Compute G*-te Romo Computes Plus Mum cy Ctmot Tl* Qodguts JtKXisnvmi Compute Burr Dnmortscona Vlduo Conrtocten Schonoctady Wirrart Comos TV Gadgois Tiia-ustoo MtT an VI laga Compute Inc. Now York Ray Suppry kx.
South IkV ngtan Garos TV Gadgoa Cosrwaier Itei c Compussr Canw QrandRapdi Wore Co mputes Inc. How n uU r Goaal Carrputer L xmangd Panama C V B*j Bytes Mocras PatDwinoy Nam Car »na CoofYLki Hampton iMitnano GompuTsn MJDu'-y Canan Compute Canton Dtgitz Rategh Duovory Fas CtvrtJi K1L Computers Megapart CarrpuB r Con tv Met CamsuV Carter Now Aga fmcTones
E. PitU Jui Van.ca Largo Si PatorsQL g CompuSoft Dr act Acts:
Eartiarton Compute Can Gaary Computers Kalamazoo Ltfrsmg
Pontac Awn Park Games Gaogaa Sahwarw Cjty Scteara Cfty TDS
Comptrtofi Ftakwgn Riugn Cnarono Durham Fomly Compute Center
Game j TV Gaogaa Games TV Gadget!
Gamas TV Gadgets FarTai Ham plan Wg na Uoach Wgna Beach Nor b k itanoam ncoois GorapuBri inc. FL Wblon tiiacr GdObT Compute Carter Deartxyn Tnad Computers Grann jboro Software Cans* 1 raj uou n Lrtor Cocoa 1 0 So'Wflnu Fint Na'n HiiADlq Software City Rchmond T w PC Cokaclon Ggyoa Car* Cocmi Merger Sathiara Udand Computer Shop Novi Me ana Computer Aasocatii
Q. F. Computori Fa*go Grand torn Vrgne Ucm Systems Wain "man
MfcodtvOge Eacnnci Oouoqu* Cacronci Iteuoouo EbcPotjcb DoudQuo
Aovna Ataniu Konnetiay Cer-t'B Pork Computes Pro Who Programs
Urdmiua Oomoi Okdmot Grand Haoci Tha Compute Stea Qua Computer
NowaA lliW f+iwivk AP P LE. COOP Apo» V*kry Compjars IvjI Dog
News Roman
E. WuAascJw Sttai;tu FbQjra Syiam Augusta Rowrrlla Computer Stora
Ci-putif *i» Cortrand Byto wsx Kent Gsmes TV Gadgc j Gamej TV Gadget So'Bra.'O Sdjti Inc Tho 64 Stero Aiamj Srppad [ w U»»nH» rm EwmiM Mcro Systems Caumpu* Com Sc ft Compg fa-j Ewot Savarwan Spoac Os* Sortaw Plus Soun'ea Grand Rapes Eractrortcs Bc-Sojb Farbarn Fioma CompLnBr Cotimous Fafborn Computes * lx Compute Ouwt Tacame Edmonds Ararrui SpaculiiSs Campute bvomia Gamas TV Gadgeb NoTn Raxal Famly Computers Lynwood Aitra Computwt 1 Eacttna Altti Steb STM! Compubri TJ. Enterar set Arm Ate- Ceiyi Lan.es ConKumwr E l*ct one* Man Or- m Ski pa y Aarnn Cos*xCTn K-Uap Armga Otteate System Mura Age
Compute Ste* Beivww Bavww Computer HouIg Inc tkjr-oiau Tho Soft Vawnousa Grand Rapes Mem Carrier Caumoui Mod Spool lx Spoaerk) J 1 C fVipUi' Awe Tha Soft wamhouaa Kdamazoa Mcmwata Magic Fartald Ns dob Sen Toco mu kmrg Tha Sen WteonouM Par toga No»n Coeet Program.ming Wllougnoy Omrs Irwnatbn* Saanto ABJ Ccmouter 1 Vooo AflJ, Computer 1 VO! 3 Bars* Nana* Y* Ooa Compute Sitepoa Mf-teiaa Yoeiant Person* Compute Co Program Siam Ya j JiDwri CoLiTOUl P'og'ami Pit* TwA Byte Seattn Kenvwd
I. J*nn Rack lord Computers. «vl Eagan O-ka ry Compunr AppJunces
Tabda Was I Vrq-ta A BckOliir Compute Outlurs Rasanl'U So*an
Compute Conor Sandusky LoytTIl Nowlland Chaoiton Carfuwiim
Oha-e Park RkJgo Compute Piece Mtfnoassia Sohware Cantr*
Interratona; No'tn Omrtod Wucoryfl C err puns'Land o' Nso* Mbs
¦flJH ScVsw Map* Grow Sohwam are More CncrmC Cod'tmn Computeri
Rxnu BfaWarc AJCaan MCO ot Ifbtang Inc. Hbteng Schwam Gny
Carronri* Compute SohfWt Canter IavU.-kH 1C. V Data CarBr Inc
(AinoOBn Uom :: Computer Sahncas Gaarwaior Schwsno Connaccon
Ucrylflid HtS.
Foi Vaay Person* Compute' OeJTiofh lift! Microcomputers Inc. Naporvia Oilina Computers Mb'tetorwa Qttanama Mom's Compulif* Snwjni Pam Intrstate Computer San co L* Mam SaoaBiia IN Itopahi Co on it Voao 1 Co ~ a.te FmrMtvn* Sa'tarare Sroopa ford Du lac 4 Qransutet Crtcago V* *nt|nc.
Sawate Mem LH* Computer Slom Tubs TMASolwarn Gnsenqay Mete Aga OekBwn Mil U DP PCToct Tuwa 1 kKA So tw*ra Inc wajitj Scrwate Or Systems F*fA*w (ft*.
Eactnmci Boudqua Itiagnand Second Hand Schama Oikmi City Wypryj.Te Scrwa-a Pkii Vitally Enterprlsas Lvilmlted Jucksan VdoaDomp Inc. Loann Oyu Empanian Lararua Scrteasr Pi-a Wqsi Hanowr Park NslonM Compute Conte Ocaan Springs Cmfon Carwds in* Mamary E*par»an Norm* Itnjj Andmm*da LaGnnoa Compute or Play AJE-jra Ungue Computer Swing Auocrad Compute-Sarrcai Spring qU G aov-ui Computes Beavorw Compute* ofkt AtJtea Ind-arra Qranq* Mart Computers Kansas City CJ» a-as Computes Gac mamas Compute Step Ab»f a Bjrkat Computer Cr.
Sour Bend Date Byte Computer Co.
Si Lodi Compuron Bus no it Syierr,* Port and Data Pro Awrta Byl-oi; Compute Ft Wltyn* In* am Red ay EU.
ChoiBrfea SdiTwarw Expnns Eugwu Compute Stop of Cagary Aiteta Br ™* »! Angoa Angoia Systems PU* kwpranw Penr-iv ar j (h* Scfteara Iteaa Aborts Computer Corrw Fort Wliynq Systems Pus of Si Lous St Lous ApneOmogaEBE Wwmn Itndbn Compux Abra Computer F'aopB Inc. Mmtgan City Ifcntana Base Compute Sfiums liqrmltoga Had Daw k*cm Systems Abora Gmg Ceianwy Graonfioid Axtegrgn Compute Systrri Gwat Far is Crete Compute Cphrteto Memory Lana Alteto Mem Compute Conn's Inc Ino uruto s Naariau Computer* *no Gsmei Raadng Compute King BntJh CoLrri* SoeCTl Conpukir Sys. Inc Ewnswia BULLSEYE Ijncoln OwaSofsque
Computerw** Pitatteg Cora Brtsn Coum&a Vorm Computers West LalaywrB Uy Com inc. PlararrouTi Doamngpn Compute Conor Dawnng-jjn H u be Brian Co torn &a k*a Doutxi E L-ocTon.es Omara Eaat Conn Sofrwans liarthay Sprlta BntHhCoUrba Grtvtet Computers Dos up no fteyacfl ElatSrsrtcs Boutque Maryi Wales Stndr Brush Caiumpa Mere Compute Appctexmi LTD Uarsr-*na*n Canary 2d tnc, Los Vogoi EOCrgrva Boutaue Long* nor na
S. . par Sahwara Bhten CoLr-ta Kau aj Compute Ward Las Vogss
E*«ctrorw BcuWu* E*bn Canad an Compute Era MamBbe J * L
EioctdAci Uborw Com cute Land at Carson Canon City Eieerortes
Bouiqua Nomitewn Mcromor.
Man a on UteKoniai Computers Nswton Towor Ftocords las Vogus Electronic* Bouiqu* PitOtxygh CompLteWord ManBbti Mflwost Compute's Mtergnar Hew Hamoshna EMCtrorvc* BouKJu* King of Prjssia J W. Alor UanBDti Txro&Wd Compubri Topoka Compute Mb.1 of Haw H*mgar n Nui'ua Enema Boutqua Wmiiinai Ka battei UanBtat Kaniitty Dmgn " Ki Computes Koono Gamas TV Ganges Lancsite Mncomp UamBCu Computer Omansiors Inc Lo king ton Lnaranci Soutqja Nasnua Games TV Congou iCng atPrusia ArUn Orrtaro Raafiy World Cemputors Lax ngtoo FmwJtnay Gama: 'Ft Gmgun Media ChatuT Compute Ontir.o Tte Sohwar* Soiroa Loj9* b
Ebdrprics Bouoq ja Voonreos Gann TV Gaogea Winl MlTlfl Compute* and Ontena 1 i H.nrt Etec onc* Sduxqja Wbyna Gona'i Bocu
K. ng of Ptjsi* Comipec Orrteno Car putef Dm* Srrwvepor: tsctnna
Boutqja Roc* array Ngm Gentrai Sy*nm* DamHie EtocToma 2001
Ortaro E'ecTorves Bouique Ken.rw Edct'oncs Boutqua Charry Hi!
PiOtkqi'i CompuBf Stee Ptteburg!'.
Hassngs Data Onteo Fbcrone* Bousque Uomw Eact'oncs Boutqua Woodbrxyju The Etectrant Bautqje Nomttoion TneCompuiir* you Ontario Etecwrtc* Boutxjja LBLTWroOY M Family Compute Cte-mai SouTiOanga Tnangte Comoutors Incforts 7 horn'll I Ortar.o Modam Bui -at* Uacrrai Ma'jsna Ckrw TV Gaogaa Blkingon Rra » ! I and Sclware Ca Quebec Saftear* Conte tetenaiorutl Mu tone Qamai TV Gaogja Lwngson I'Ttematon* Compuitor Snntcsa J Dim* ton Davone Saow Quebec SorBrom Soi Mns Baton Rouga Mams County Stntlorwi Chaster McrtJ UmHJ Smitnttfd Ma ooau Quebec SatteBm Sojv* Latayatta Hrw Mii.ca Mtt Um*a WurwKto Into
Uur«t*r Quebec (ha Compute Drsc Latayatte HmrHorupn Computer System Aaragorda Sauffi Ct-nfina Lav* Mere Quonec MtyVamd Pag* On* Newstend Aouquargua Avcom kntehaien* IX.
W*t: CoMmtoS
V. BOn TranKjji Quebec (Lrod Tfdoiuri] Roc km. La Tod nofogKaiJ
Corona Lux Cocoi EnctrorKi Doulquo Groan At* Ditrbulan Vs pro
Quebec Compute Craftes Whuatei ftoi Yam Horizon CiWivie
nuaaafl nCaiaoaPT CompuArwara TODAY GBTteSPurg Amus* Now York
1*00 Compuier Dopai Sumor Avia Software Dstr,DuBe Concord.
Otari a CompuYsan Vson Conte ColjmBa Arrsa* Hjdson V»s*y
Wbppngar* F*i* Ws3ort'i J«wtey One: te ted Com ptirt DstrduB'S
Brtah CeMmaia Cbctrants Boutqus BatJ-ianj Atvjc Qusi.nass Com
cute Norp Port SqunDajiaa Phase 4 Os i lx Calgary. Ac*r3
Ebctrancs Bautqua Balomara Byte Shoo Marne* Computer Qui nes:
Carte RapXOty AflMfSna Ebctrortcs Boutquo Atna Anrndal County
Compurtte Canter Witte Plains Temiisu: Logt: Compute Buenos
Ann tomnei Boutru Owngs Mis Com pute Oudol Jamestown Co-ipu
tetmb of Mamphi Mamprss Gamas TV Gadgats BaOmom Compute Paf*=*
F«dan Gama* V Gaogo* Mampnt Hgn Tocrroiogy Compute Supooi
Gamas TV Gadgats BbOt'O'o Cnjmiand Inc Broottfyn Satwunj Fun
Nes'TA a Brgnten. IA» n Gamei TV Gadgati Co urrdo Liactronct
Boutqua Lake Grow) Tent Uuwi Often Eq jpmam ADMWtord, Mm bum
Lsyrwi ktnri liana Konungion LuOronct Boutjqua HuTOngton
Stolon QynSnop Austn ¦ijoan Tokyo. 111 Uero Compute Canwr
Baomora Lwosr-ct Boutqua Aoary CEU Gor pry at on Ivarona
Pixaqoo fibO?
Saftr te Atvamaga Raonr ¦ Eecttmcs Bouts j* Vtekiy St-tir Cqort* Voes Houston Daman SofBrco N Thrgs Coagu Pan ?s-nas TV Gadget!
Naruet Camputei Aga ftoustan Amuiia Fouod 4 Sons WaWorf Computer Waworl Gamas TV Gadget!
Garden City CompuB4 Age Dalas Zuorwi Mmmaia Legni Computers Now YoA Computet Mage Austin Software Land AG CeiD Computer Cnr-trcga 14- am ones NsyTi Pori Compute'Rev* attars Houston Ofiw Boab-a So'team Can (a InSemaun* Forest Hli Compute' Time he Mars"*i Ebctroncs Boutcua Hdyoka So'trsrw 4 Such Scola FNS Compute Senrooi Toiar«ana Gdnoral Compunr Store Framtnglwm Sateivii City Fvast Hli Met-opomn Com pi. Nr FluOiurdion ftCS Compute Conwr Msrshf « Soteera Supa'Trivku!
Karmokt Mem Si ivon Houston LCA Voeo 1 Computer Cur.
Norwoao Sti' Tocn System* Mass ana Sohni Weuugs Memory LDCSton Vmsey Synfar* Tw*ng Now Vo* Sohwora l.brory Wthto Fbi OmrtTaK Computers TawktCury Tad ran Now Tot, Sahwarw Plus El Paso Ponaar Vahoy Daa EqJprten Am.hsni Twrow Business PrgduCtl Rocruisssr Sohwivn Tormina!
Fort Worth Amazing Computing™ is also available in most B. Dalton Booksellers stores, B. Dalton Software stores, and Software Etc. locations.
Aseana Aaai Dr.* Syswrni HxW!B kaoa-j Boh Sere t LOCa 3 CM Command Camauura Urm gham HmOsna OtXJlttJU llaoar MacJion Boom & Compuor* Min* on Man T* Cammmalons Moola MmT Phou A Computer Sxo Ucrfjaray Ltnwraai Compute Syiwn Mcote A'ailciih as me Ml Fiona The Ucto Sroo Lino Root A-iza"a Com cub'Wait Pnoanlj GompuBr Woriu Glandoio Coppo'SUBa but Iran Systems Pnoonii Copper stn Computer* Tucaon Hacko* TaTpa Mvr Amencan [ gs* Tucson Calfana Aosy IntenaOorte Foawr&ly Ajgnet Fiaomorfi Bbdoi CrSca Supply San [ uga Bts n Pocos Comp Prod.
Antewi Brown Krowi Cornpulng Ro (Junes Byte Facto'r Compute* Solnga C-F.T, Ci a •amore Gentry Compute Srihri La Moira Circus of I5oo« j II LwArgoei Com,Tc»cn Nnlsnal C*y CfflT.tto'U me R-dgecrest Computer Arae Pau M) Compute' Nook. Inc. San Bornadno Gompu Ilf Ouse: San Dfogo Compute' OuS«t San Maraa Compute' Tima Cnrjt ff3 ComputerLand Freeman Fraamont Datapnia Wjaarviw Doha SoflcVum LaQuna Baitm Da Ls-te") Nows Agency OiAand EtocSrortc*. Boutqua Wnttoi Angoini Empr* Computer* Sarte Rasa Nor ting Way Stair t Slock! Or llama Computing Canter Concord Homa Computing Car ter Uit Vaiey Homo
Compubng Car or Son laanera Homa CompuSng Cartjr Stn Srjno HT E actr»ca SunryvBO K J Computers Granada Hus LeVty Morji Mofiywood ETC Computes Santa Ana Mcro Figtn Son Jac nte Nonngon Sahwam El Corn to Op Amo lam Uaoki Lot AnQOUt Ware Bow & Nvwi ttaoJywood FUR Software Cnja vrj Rift So'?*a a San Dogo Rjdgeaan Compusw Cr. Inc. ftajocrcst &OSl Computers Lo* Angeos Sahwanj First SanteRosa Sahw« O ar Anofwri Software Piu* Otrji Hogrca Towdr Hooka ChCo Tom Dodo Ct-j» htgrca TOWO' HOCKS Concord Tswar bos-j Mounttefl Vow Tower Do oka StKromanui Tower Book* San Matiu The Cotpum* Room Scats VBBjr Wnrt
c-roa (teniay Ca antdfl Book Tech DstrOuTng Eng jwotjd Csar Computers Conrsoo Sprtngi Campus r Dsca it
r. fl"w Compear Raom Aj srs Ebert Po'jcjts Computes Aj ora Woo
Computer World F art Coiln i IJ.CT0 WffW 1 jwnwead C ojnry
Computert Coiorsoo Sprnga Astra Nawsafard Au*om fiPTryacBo t
Ar o Iltneii Computer Norwalk COTpUBf OuMt PlaVeman EiaCrancs
Bauxme Dartxry Frandy Computers PlanstHa Mramonci Inc. Norwalk
Partarte Computer oanur Norwm Sohwww CJ%r Orar a So'terw
Kngnorn Eat! Wnotor Spanrjn Con puart How Hawn DQ-.gjrltro
Gssiu Adon Ho wart Ptroa A A Computers Jaodsnrite Commodore
Counryirc pine la Park Computer Bar PannsBCOB Compute' Baao
Brandon Compute' Image Usrrl ConpuiBr SpocWty Mat»i ne
Computer Torminal Inc. Sabrmg ConpuBra 4 Hum
W. I'am itourti GafDOC* Inc SklWCl Education Computes Ec.
Illi-JBM Ead'onca UdulQuO Boynton Beocn Eoc.-oncs Bousque laiiTiMtaa Eraccora Bajiquu Miami 35mm SLIDES FROM YOUR ARTWORK!
MctaSccpC: The Debugger B 19762 MacArthur Blvd.
Suite 900 Irvine. CA 92715
(714) 955-2555 MetaScope $ 95.00 MetaScribe $ 85.00 MetaTools
$ 69.95 DosDisk $ 49.95 (California residents add 6% sales
Visa MasterCard accepted.
Dealer Inquiries Welcome Amiga is a trademark ol Commodoro-Amiga Inc. MS-DOS is a trademark of Microsoft. Incorporated MetaScribe: The Editor MetaScribe has the features you need in a program editor:
• Full Mouse Support Use for text selection, command menus,
scrolling or use key equivalents when more convenient.
• Multiple Undo Undo all text alterations, one at a time, to
level limited only by available memory.
• Sophisticated Search Replace Regular expressions, forward back
ward, full file or marked block.
• Multiple Windows Work with different files or different
portions of the same file at one time.
• Macro Programs Lisp-like macro language lets you customize and
extend the editor to meet your needs.
• Virtual Memory Set the amount of data memory to be
used,transparently edit files larger than memory,
• and More!
Keystroke macros for repetitive text, copy between files, block copy paste delete, set tabs and margins, etc. MetaScope gives you everything you've always wanted in an application program debugger:
• Memory Windows Move through memory, display data or
disassembled code live, freeze to preserve display and allow
• Other Windows Status windows show register contents and program
state with freeze and restore; symbol, hunk, and breakpoint
windows list current definitions.
• Execution Control Breakpoints with repetition counts and
conditional expressions; trace for all instructions or
subroutine level, both single-step and continuous execution.
• Full Symbolic Capability Read symbols from files, define new
ones, use anywhere.
Metadigm products are designed to fully utilize the capabilities of the Amiga1" in helping you develop your programs. If you're programming the Amiga, you can't afford to be without them.
Metalbols I A comprehensive set of tools to aid your programming (full C source included):
• Make Program maintenance utility.
• Grep Sophisticated pattern matcher.
• Dili Source file compare.
• Filter Text file filter.
• Comp Simple file compare.
• Dump File dump utility.
• Whereis File locator utility.
A program thal lets you access PC-DOS MS-DOS™ diskettes on your Amiga. Use it to list file information and copy files between the PC-DOS MS-DOS diskettes and Amiga diskettes or devices. Patterns can be used for file names, and you can even operate on all files in a directory at one time. A copy option converts source file line-end sequences as the copy is performed.
• Powerful Expression Evaluation Use extended operator set
including relationals, all assembler number formats.
• Direct to Memory Assembler Enter instruction statements for
direct conversion to code in memory
• and More!
Mouse support for value selection and command menus, log file for operations and displays, modify search fill memory, etc. DosDisH Amazing Computing™ (ISSN 0886-9480) is published by PiM Publications. Inc..
P. O. Box 869. Fall River. MA 02722.
Subscriptions: In the U.S. 12 issues for $ 24.00: in Canada & Mexico. $ 30.00: Overseas: $ 35.00. Printed in the U.S.A. Copyright® 1987 by PiM Publications. Inc. Ail rights reserved.
First Class or Air Mail rates available upon request.
PiM Publications, Inc. maintains the right to refuse any advertising.
PiM Publications. Inc. is not obligated to return unsolicited materials. All materials requesting return must be received with a Self Addressed Stamped Mailer.
Special thanks to: Lynn Hathaway Donna Pelodeau Traci Desmarais Pilar Medeiros Donna Thibault Betsy Piper at Tech Plus.
& Paul Boden at Software Supermarket 510 each Poryour 1st to 4th slides.
5 to 9 slides 58.50 Over 10 slides 58.00 Add 5&.00 for shipping.
New York residents add sates tax.
Distortion free nils in raster lines crisp bright colors, converts all IFF files Wow ----- CustoM graphic art and illustration.
Advertising Sales & Editorial 1-617-678M200 Amazing Features Max Headroom and the Amiga by John Foust A behind-the-scenes look at the stuttering star's Amiga roots.
Taking the Perfect Screen Shot: by Keith Conforti 47 Tips for taking screen shots that live up to those great Amiga graphics.
Amiga Artist: Brian Williams by John Foust 64 Candid first-hand impressions and viewpoints ... and splendid COLOR art!
Amiga Forum on CompuServe™ ... Software Publishing Conference Transcript 88 Listen in on the inside scoop, moderated by AC's own Richard Rac.
By Richard Rae 97 You too can be a vocal part of any online conference ... just take a few simple steps!
V__ Amazing Columns Bug Bytes by John Steiner A NEW column determined to keep up with program bugs and upgrades, 45 51 63 83 99 Amiga Notes by Richard Rae If you've been waiting for more MIDI ... just listen in!
Roomers by The Bandito As promised, the rumors arc falling faster than the autumn leaves!
6SQQ0 Assembly Language Programming on the Amiga by Chris Martin An easy to learn assembly program that uses include files, Amiga Kernal libraries... and graphics!
The AMICUS Network by John Foust An in-depth SIGCRAPH report, more animation products and a Live! Update.
F Amazing Reviews dBMAN by Clifford Kent A review of the latest release of VersaSoft's versatile relational database management system.
18 31 35 39 Amiga Pascal by Michael McNeil A preview and review of Pascal implementation for the Amiga.
AC-BASIC Compiler by Bryan Catlcy An overview of the compiler that may prove to be "one of the most important products ever released for the Amiga."
Amiga BASIC Structures by Steve Michel Take another step down the Amiga BASIC road with a look at structure.
'Amazing Programming Quick and Dirfrv Bobs by Michael Swinger The first entry in a helpful three-part series of "Animation for C Rookies."
Directory Listings Under Amiga-DOS. Part II by DaveHaynie More listings and explanations to speed up your directory programs.
Fast File I O with Modula-2 by Steve Faiwiszewski 67 The Modula-2 series flies by again this month with a lightning fast I O module.
Window I O by Read Predmorc All about input and output via windows, 73 Amazing Departments 107 112 6 8 From the Editor Amazing Mail PDS Software Catalog Index of Advertisers From The Editor: Amazing Computing™ in Color?
Color? In Amazing Computing™? Wait, what goes here?
It may come as a surprise to our readers that this issue has color on the inside of the magazine. Amazing Computing™ has produced eighteen issues of continually growing Amiga information without the use of color. Some readers may wonder why wc think we need color now.
To be honest, it would be less expensive to continue Amazing Computing™ with an all black and white interior. There are two important reasons for using color:
• The Amiga is a great graphics machine and we need to dem
onstrate its color potential. Our readers will never know how
many Amazing Computing™ issues were created with great color
pictures. The photos were pasted to copy sheets and looked
terrific, however, we could only settle for a black and white
halftone in the completed magazine.
• Wre must also fill the need of our advertisers, who require
color advertising to best showcase their products.
Oil NO, NOT ADVERTISING!
We constantly receive letters from well-meaning readers who beg us not to change a single thing about the magazine. They are apparently pleased with programming information and reports . . . They are even tolerant of our coverage of "softer" subjects such as trade shows!
1 understand our readers' concern. They are happy with the way Amazing Computing™ has been covering the Amiga™ and they do not want change. Readers are very wary of change.
An inability to seperate advertising content from editorial content sticks out in the reader's mind. Perhaps readers feel this way because some publications have a lot more advertising and a lot less substance (our reader's choice of phrase, not mine) than Amazing Computing™.
However, the key to Amazing Computing™'s substance is our dedicated readers.
We are as proud of you, our readers, as we are of our heritage. To be completely honest, this solid, growing body of Amiga information is the result of Amiga enthusiasts all over the world. Our readers supply most of the written copy for Amazing Computing™. Wc rely completely on the creativity of our readership. We are constantly searching for the new, different approaches our readers use in working with their Amigas.
Our Present We will continue to rely on you as our main resource. It is through your submissions that Amazing Computing™ has been able to maintain this level of highly interesting material. It is through your eyes that wc sec the Amiga market. Amazing Computing™ has always been a forum for reader comments and suggestions: maintain this enthusiasm and we will continue to produce the magazine you prefer.
Also, advertising can play a large part in the devclopement of the Amiga. Many of us sec developer's new products for the first time through advertising. If the individual companies require COLOR in their advertising, AC should grow to satisfy this need. It is important for the growth of the entire Amiga community to allow all advertisers an access to the market.
Developers must also feel that the Amiga market is secure enough to maintain several full color magazines. This is political, since in most cases, a black and white story can read the same in any magazine. COLOR, however, allows the Amiga to shine where it shines the best, through its powerful graphics ability.
In short, all products must continue to improve themselves in order to remain marketable including Amazing Computing™. We promise to do all we can with our newest tool, COLOR. Bear with us, as we spread our wings.
Our Past In the past nineteen issues of Amazing Computing™, AC has delivered almost 1800 pages. Of these pages, more than 72% were text (or, if you prefer, less than 28% were advertising).
Each issue has been an improvement over the previous issue.
We are proud of this heritage.
Snftwnre Ik-veiled for AMIGA Lattice C Compiler Lattice C has long been recognized as the best C compiler. And now our new version 4.0 for Amiga™ increases our lead past the competition even further.
Ready, set, go. The new Lattice AmigaDOS C Compiler gives you faster, more efficient code generation and support for 16 or 32-bit integers. There's direct, in-line interface to all Amiga ROM functions with parameters passed in registers. What's more, the assembler is fully compatible with Amiga assembler syntax.
More great strides. The linker, Blink, has been significantly enhanced and provides true overlay support and interactive recovery from undefined symbols. And you'll have a faster compile and link cycle with support for pre-linking.
Lattice* Version 4.0 Manx* Version 3.40 Dhrystone Float Savage (IEF.E) S29a Ohrystones second
22. 20 Secs. (IEEE Format)
10. 16 Secs. (FFP Format)
47. 67 Secs. .OOOOOO.MH Accuracy 1010 Dhrystoncs second
98. 85 Sees. (IEEE Formal)
r. 60 Secs, (FFP Formal)
119. 6 Secs. .000109 Accuracy There's no contest.
Standard benchmark studies show Lattice to be the superior C language development environment.
With stats like these, it's no wonder that Commodore- Amiga has selected Lattice C as the official Amiga development language.
Lattice is a registered trademark of Lattice Incorporated Amiga i a trademark of Com modo rc-Amiga, Inc Manx is a registered trademark of Manx Software Systems, Inc Going the distance. You'll experience unsurpassed power and flexibility when you choose from several cost-effective development packages. There is even a full range of supporting products, including a symbolic debugger, resource editor, utilities and specialized libraries.
You'll discover that your software purchase is backed by an excellent warranty and skilled technical support staff. You'll appreciate having access to LBBS one of the world's first 9600 baud, 24-hour bulletin hoard services. And you'll be able to conference with other Lattice users through the Byte Information Exchange (BIX) network.
Cross the finish line.
Order your copy of the Lattice AmigaDOS C Compiler today. We'll supply the speed. You bring the running shoes.
Lattice, 1 ncorpc t rated 2SOI) S. Highland Avenue Inmbard, IL 60148 Phone: 800 533-3577 In Illinois: 312 916-1600 Lattice Subsidiary of SAS Institute Inc. Amazing Mail: Dear AC: I will appreciate it if you would print the following notice in the Amicus Network section of Amazing Computing™. If you feel that this notice belongs on another section of the magazine, please forward it to the proper editor.
Your help is appreciated.
Mexico City Amiga Users Group 1 am interested in forming an Amiga Users Group in Mexico City. If you arc interested in participating, please call me at: 551-18-04 or 760-92-41 Monday through Saturday before 6 PM or write to: Miguel A. Romero Norte 170 No. 529 Col. Pensador Mcxicano 15510 Mexico, DF The purpose of the group is to facilitate the exchange of information, software and expertise among owners and users of the Amiga computer. Your suggestions for these goals and any others are most welcome.
Thanks Miguel A. Romero Good luck and keej) us informed of your progress.
Any inroad the Amiga can make means a larger machine base, and will only yield more and better third party support.
Dear AC: I am amazed.
If I had not seen the article entitled "Skinny C Programs" in your Amazing Computing™ Volume 2.8, I would not have believed that you would have published such an outdated and biased article. The lead in sentence was so biased that I thought I was reading an article that was submitted by a competitor of Lattice C. Two of my friends are Amiga and Lattice C owners, and both are satisfied with the product. Thus the lead in sentence from the article: "Like many other Amiga users, I have been less than satisfied with the Amiga Lattice C compiler" negates any redeeming value that article may
otherwise contain.
Further, any article that talks about the deficiencies of an old product does not deserve the space in a magazine as fine (I thought) as yours. As you know, the product discussed in the article has been replaced by an enhanced version. ! Was a user of Lattice C 3.03 for about a year, but have had the improved 3.10 version for several months now. I was pleased with the product since the earlier version. The new version has only increased my product satisfaction.
In addition, the technical details explained in this article are already available in the Lattice C documentation, and in the Amiga Technical Reference Manuals, so 1 gained no information from reading the article.
Please get back on the track, and publish meaningful, factual, unbiased articles that will be informative to the Amiga user community, including both programmer and non-programmer users.
Sincerely, Larry A. Black Pleasing every Amiga user with every AC article is quite a tall order. Not everyone has the same viewpoints and not everyone has the same difficulties.
The article referred to above ("Skinny C Programs," V 2.8) was not intended to denigrate the Lattice C Compiler or its dedicated following of successful users.
Rather, the tips offered were targeted at those users who were experiencing some problems. Sure, to veteran Lattice users, the article may have lacked useful information . . . But, for the struggling user, the article may have supplied the missing pieces to a frustrating puzzle.
We are aware that the new Lattice version
3. 10 has been on the shelf for some time now in fact, an
in-depth review of the new version was printed in the very
next issue (September, V 2.9, p. 51). We had been developing
that review for some time, but still felt it necessary to
print the "Skinny C" article for those users who were still
working with 3.03. A release of an updated version of a
product does not prompt us to simply drop our coverage of the
previous version. Many users in the wide-ranging Amiga pool do
not have the latest release. We realize this fact and try to
give equal space and lime to ALL AC readers.
We do, however, zoelcome the negative feedback. The many, many positive and complementary letters we receive are warmly appreciated, but the few letters of dissatisfaction are also a great help to us.
In order to improve AC from a reader's point of view, we need you to point out our weak spots. If you run across a deficiency, please don't hesitate to write.
Hi Guys & Gals: Congratulations on an outstanding new logo! A masthead you can truly be proud of! Kudos to Art Director, Keith Conforti! A first class logo for a first class magazine!
This signifies, in my opinion, the coming of age of Amazing Computing.
The maturing of a brash new member of the publishing community into a mature respected community leader!
Keep the good stuff coming! I enjoy every page - the smell of the ink - the quality of the paper - but most of all, the comments, the rumors and the reportage of trade shows.
You do it like no one else!
Richard Crommctt Keller, TX Thank you for the encoragement. I hope you like the addition of color this month. If it seems we are becoming too "polished," please let us know.
• AC* AC encourages your comments, good or bad. Please send us
your concerns.
Through, your feedback, AC remains your magazine. 'AC* AVAILABLE NOW!
StaiitaarcI2 If you've owned your Amiga® for a while now, you know you definitely need more than 512k of memory.
You probably need at least double that amount...but you might need as much as an additional two megabytes.
We want to urge you to use StarBoard2 as the solution to your memory expansion problem -and to some of your other Amiga-expansion needs as well!
It's small, but ifs BIG- Since most of you want to expand your Amiga's memory without having to also expand your computer Sable, we designed StarBoard2 and its two optional "daughterboards" to fit into a sleek, unobtrusive Amiga-styled case that snugly fastens to your computer with two precision- machined jackscrews.
The sculpted steel case of SlarBoard2 measures only 1.6" wide by 4.3"high by
10. 2"long. You can access the inside of the case by removing
just two small screws on the bottom and pulling it apart. We
make StarBoard2 easy to get into so that you or your dealer
can expand it by installing up to one megabyte of RAM on the
standard StarBoard2 or up to two megabytes by adding in an
Upper Deck.
This card has decks!
The basic StarBoard2 starts out as a one megabyte memory space with Ok, 512k, or one megabyte installed. If you add in an optional Upper Deck (which plugs onto the Main Board inside the case) you bring StarBoard2 up to its full two megabyte potential. You can buy your StarBoard2 with the Upper Deck (populated or unpopulated) or buy the Upper Deck later as your need for memory grows.
And you can add other functions to StarBoard2 by plugging in its second optional deck -the Multifunction Module!
StarBoa rd2: functions five!
If we count Fast Memory as one function, the addition of the MultiFunction Module brings the total up to five!
THE CLOCK FUNCTION: Whenever you bool your Amiga you have to tell it what time it is! Add a MultiFunction Module to your StarBourd2 and you can hand that tedious task to the battery-backed, iCr0BotiCS IHO AMIGA is a registered trademark of Commodore-Amiga 811 Alpha Drive, Suite 335, Richardson, Texas 75081 (214) 437-5330 Auto-Configuring Fast RAM Zero Wait States User Expandable from 512k to 2 Megabytes Bus Pass- Through MultiFunction Option: battery clock, FPU, parity, Sticky-Disk real-time clock calendar. A small piece of MicroBotics software in your WorkBench Startup-Sequence reads the
clock and automatically sets the time and date in your Amiga. And the battery is included (we designed it to use an inexpensive, standard AAA battery which will last at least two years before needing replacement).
THE FLOATING POINT FUNCTION: If any one aspect most characterizes the Amiga it's fast graphics! Most graphic routines make heavy use of the Amiga Floating Point Library. Replacing this library with the one we give you with your MultiFunction Module and installing a separately purchased Motorola 68881 FPU chip in the socket provided by the Module will speed up these math operations from 5 to 40 limes! And if you write your own software, you can directly address this chip for increased speed in integer arithmetic operations in addition to floating point math.
THE PARITY CHECKING FUNCTION: If you install an additional ninth RAM chip for every eight in your StarBoard2, then you can enable parity checking. Parity checking will alert you (with a bus-error message) in the event of any data corruption in StarBoard2's memory space. So what good is it to know that your data's messed up if the hardware can't fix it for you? It will warn you against saving that data to disk and possibly destroying your database or your massive spreadsheet. The more memory' you have in your system the more likely it is, statistically, that random errors will occur.
Parity checking gives you some protection from this threat to your data residing in Fast RAM. Note that the Amiga's "chip" RAM cannot be parity checked.
THE IMMORTAL MEMORY DISK FUNCTION (STICKY-D1SK): When you've got a lot of RAM, you can make nice big RAM-Disks and speed up your Amiga's operations a lot! But there's one bad thing about RAM-Disks: they go away when you re-boot your machine. Sticky-Disk solves that problem for you. It turns all of the memory space inside a single StarBoard2 into a Memory Disk that will survive a warm-reboot! When your Amiga attempts to grab a StarBoard2 in Sticky-Disk mode, a hardware signal prevents the system from acquiring the StarBoard2 as FastRAM (and thereby erasing your files) -instead it is re
recognized as a Memory Disk and its contents are preserved intact. If you want to work rapidly with large files of data that are being constantly updated (such as when developing software) you can appreciate the Sticky-Disk!
Fast RAM -no waiting!
StarBoard2 is a totally engineered product. It is a ZERO WAIT-STATE design, auto-configuring under AmigaDOS 1.2 as Fast RAM. Since AmigaDOS 1.1 doesn't support autoconfiguration, we also give you the software to configure memory in 1.1. Any applications software which "looks" for Fast RAM will "find" StarBoard2. And you'll find that your applications run more efficiently due to StarBoard2 on the bus.
A passing bus? Indeed!
What good is an Expansion Bus if it hits a dead end. As with some memory cards? Not much, we think -that's why we carefully and compatibly passed through the bus so you could attach other devices onto your Amiga (including another StarBoard2, of course!).
The sum of the parts... A really nice feature of the StarBoard2 system is that you can buy exactly what you need now without closing off your options for future exapansion. You can even buy a Ok StarBoard2 (with a one megabyte capacity) and populate it with your own RAM (commonly available 256k by 1 by 150ns memory chips). When you add StarBoard2 to your Amiga you have a powerful hardware combination, superior to any single-user micro on the market. See your Authorized Amiga Dealer today and ask for StarBoard2 SUGGESTED RETAIL PRICING: StarBoard2, Ok (1 meg space): $ 349 StarBoard2, Ok (2 meg
space): $ 395 StarBoard2, 512k (1 meg space): $ 495 StarBoard2, 1 meg (1 meg space) $ 595 SlarBoard2. 2 megs installed: $ 879 SlarBoard2. 2 megs 8 MultiFunction: $ 959 Upper Deck. Ok (1 meg space): $ 99 MultiFunction Module: $ 99 also available: Standard 256k memory card: $ 129 MAS-Drive20, 20 meg narddisk: $ 1495 MouseTime. Mouseport clock: $ 50 Max Headroom and the Amiga by John Foust 'Well, in my own humble, little way I suppose I'm David Letterman, MTV, and Dr. Ruth all rolled into three.
If I do have a fault, it's a very unusual skin condition,., it's called perfect" Max Headroom Inside the East Gate of Lorimar TelePic- tures in Culver City, California is a walk-up office of the ABC television series "Max Headroom." In one room, the walls are covered with blueprints of the set and detailed drawings of futuristic devices. The floor is littered with real-world devices from the past - an old Heathkit oscilloscope and a "condenser tester," One desk is piled with papers and videotapes - Fritz Lang's Metropolis, Bladcrunner, Brazil, the Max Headroom pilot episodes
- and an Amiga computer system.
This desk is inhabited by Jeff Bruettc, a technical consultant for the Max Headroom series.
The Amiga is an integral part of the production of this futuristic series.
"Max Headroom; 20 Minutes Into the Future" piloted six episodes last spring on ABC, and now joins the ABC fall lineup with twenty-two new episodes.
The series focuses on the actions of an investigative reporter for a future television network called Network 23.
The main character, Edison Carter, was injured in a motorcycle crash while investigating corruption within the Network itself.
The stuttering Headroom character stars in a series of commercials for new Coke, as well as hosting a talk show on the Cinemax cable network. A Newsweek cover earlier this year highlighted Max's escalating popularity.
Bruette is also working on an upcoming series called "Secrets and Mysteries."
This work is being done in conjunction with Bruette's freelance graphics company, Prism Computer Graphics. He describes the scries as "like 'In Search Of', but in a Jules Verne setting."
Network executives scan Carter's brain to find out what he has learned, A computer expert uses this opportunity to test his latest invention, a method of storing a subject's memory and generating his image. The last thing Carter saw was a low-clearance barrier marked "Max Headroom," thus the name of the computer-generated character who bears a stunning resemblance to Carter.
The look of "high low tech, or antique equipment being updated." Some sets mix old electronic equipment with futuristic gear. 'This is high tech; the low tech is boring. So, what they [Headroom designers] are trying to do, is take the high tech which everyone enjoys and put a new twist to it."
The characters in the future have a different attitude about technology, too.
Bruettc explains their perspective.
"Theoretically, all this technology has reached a maximum point. For some reason, the cause for developing all this "Secrets and Mysteries" is a syndicated series produced by ABC. Bruette produces computer graphics for the series with the Amiga. Most of the show's graphics will be done with the Amiga.
Computer artist Cris Palamino is working with Bruette to generate images for the show. Bruette describes her work as "meticulous."
High low tech Designers on the Max Headroom set study videotapes of futuristic movies, such as Bladerun- ner, looking for ideas for the Max Headroom set Bruette describes it as almost disappeared, as if one civilization ended and a new civilization moved in. We're into the future, past their discovery stage. They figure out that if you hook up this old Underwood typewriter with a series of sensors on the hammers that send signals to the computer, the computer displays something accordingly. Everybody knows that."
Amiga overlays For the new series, the Amiga produces the overlay graphics for the View- Phone, the VidiCam, InterCam and SecuriCam. When two characters are on the phone in the show, a telephone transmits a video image, as well as voice. On both ends of the call, the character sees the name and phone number of the other person. The VidiCam is Edison Carter's portable video camera, used for live updates to the Network. The SecuriCam takes the Big Brother viewpoint, spying on everything that moves.
Bruette uses high resolution Deluxe Paint 1! To draw the overlay graphics.
Large fonts from a custom font disk are used for the lettering. In some cases, letters must appear in succession, or perhaps an indicator on the screen should blink. Bruette uses a preliminary version of a program from Aegis called GrabANIM for this work. Gra- bANlM is essentially an Amiga step- frame recorder. Invoked with a hot-key sequence, the program looks at the current screen and stores it as a frame of animation, using the new IFF AN1M format. ANIM only stores the differences between successive frames (It only stores the new letter or the absence or presence of the blinking
indicator), so file storage is at a minimum.
By recording the Deluxe Paint II screen as the letters emerge, Bruette creates an entirely computer-controlled animation sequence that can be transferred to video tape (Aegis has released a freely distributable program called ShowANIM that plays ANIM animations).
Many companies, including Electronic Arts, Aegis Development and Byte-by- Bytc, have supplied early releases of their software. According to Bruette, the companies will not be mentioned in the closing credits, but that it is always advantageous to be part of a popular show.
Amiga vs. IBM For simple overlays like the SecuriCam, you may wonder why the Amiga is better than the equipment used in the early episodes? For the pilot episodes of Max Headroom, the overlays and other video special effects were accomplished with an IBM-PC-based system equipped with a special genlock board.
A keyed switcher and graphics from a Chyron video effects machine were also incorporated. There were only two computer systems in use, one on stage and one in the production area.
Richard Lewis is the production designer for the Max Headroom series and also worked with Bruette on the Amazing Stories episode. Lewis explained why the Amiga is an improvement over the Video Image system. 'That system had limitations.
That's why I was trying to get us to use this system. The IBM system had a palette with a 256 color range, sixteen colors at a time, Wc never got shades we were happy with. Using the Chyron, you'd lose quality in the overlay by reducing the resolution on videotape cassette."
With the Amiga, much more control is kept in-house. Many video special effects houses have expensive systems for computer graphics. In addition to Prism, the Max Headroom series is currently working with the Post Group, a local video special effects house. The Post Group works with Amigas, as well as much more expensive video computers.
The older, more expensive video effects machines were always a bottleneck, Lewis said. "They have a lot of big toys to play with. When you've spent a quarter-million dollars on a system, you have only one. No matter how fast or sophisticated it is, it is a bottleneck.
With the level of stuff we're doing, it doesn't require a quarter-million-dollar machine to do a simple overlay. You can dedicate those machines to a higher level of graphics, instead of turning out everything through the big machine."
The Amiga is a low-cost solution to the bottleneck. Several members of the crew have their own machines. Down the hall, series art director Frank Pezza uses an Amiga and Deluxe Paint to design logos and test colors for the sets and computer graphics. He uses Scribble! To write budgets and reports.
Pezza was also art director for Miami Vice, and worked with Lewis on the series "Whiz Kids." He has also done computer graphics design at the Post Group.
Peter Wagg, executive producer, has an Amiga in his office, so he can approve everything that goes on the screen, including any special overlay graphics.
Bruette described what happens in Wagg's office. "We go in there and stick a disk in, and say 'Here's what we're using,' and he usually says 'No'." He has something in his mind of what he wants. When something is presented to him, he thinks of something else. It is inevitable that whatever is done, is changed."
Eight miles from Lorimar, the Post Group is getting backed up on the special effects they are producing.
Bruette expects the Amiga to take up the slack and contribute more to the show as each episode is produced.
"The Amiga is going to end up doing more and more on the show," going beyond overlays, doing such things as netwmrk logos. Designers at the Post Group have Amigas "because of us," according to Bruette. Bruette is constantly asked where and how Amigas can be purchased.
Amiga Is "too good" The quality of Amiga video has been sufficcnt, so far. In fact, production continued... people have had to "dirty up" the video, to make it look worse. According to Lewis, "So far, the biggest complaint about the graphics was that they weren't crude enough. Now, at the Post Croup, they arc using an ADO to shrink it down, [they] then have a camera aimed at the screen to rephotograph it, to distress the video signal. It is a lot of work to put it [the video] through a blender and chop it up. It is the hardest thing for people in video because they are geared to the
glossiest, brightest picture you can give
- which isn't always what we are looking for."
In one instance, a fault in a genlock combined with the Amiga composite video signal to make vertical bars in the final image. All along, Lewis warned Bruette that he would need to correct the genlock to remove the bars before filming. When producer Peter Wagg saw the bars, though, lie asked Bruette to enhance them, to make them more visible. "When Jeff and I did the Amazing Stories segment, there was a reason I was pushing real hard to use the Amiga and digitizing."
Lewis explained why the Amiga was preferable. "We looked at the stuff the video houses could deliver. We had a lot of resistance from the video postproduction people at Universal because they all wanted to do it the old way: You shoot the actor, you do some kind of effects on him and play it back.
Every time we looked at their effects, it looked like the things you see on sports on ABC. It is very slick and blender- ized. Everybody has seen it. If you are trying to say this dude is in the computer, and you're seeing the same thing you see behind a sports announcer, it doesn't click. The Live! Board gave us that edge. Like the time Live! Takes to update an image when a head turned - you got real interesting effects that said, this is a computer, this is not a trick."
Script to screen Commodore has worked closely with Bruette in providing computers for the =taff of Max Headroom. There are a total of thirteen Amiga systems in use at present, seven Amiga 2000s and six Amiga 1000s. The writers for the show use Commodore PC-10 MS-DOS computers.
"To some degree, Commodore is involved in Max Headroom from 'script to screen," said Bruette, laughing at the overused expression, but adding, "it's really true." Unlike the obstacles Bruette encountered when he asked for genlocks for Amazing Stories, Commodore was very helpful in getting Amiga systems for Max Headroom.
Bruette wanted Amiga 2000 systems because they are more expandable than the Amiga 1000, but Commodore was unable to deliver them in mid-August.
"They don't have them to give. You can't get blood from a turnip. It's not that Commodore didn't come through."
To Bruette's surprise, Commodore worked things out and sent the Amiga 1000 systems, as well as several Amiga 2000 systems direct from Germany.
Among the devices expanding the Amiga 1000 systems are Commodore genlocks, Xebec hard disks, Microbotics StarBoard II memory boards and a Calcomp color printer. A CSA Turbo Amiga 68020 system had just arrived, and Bruette planned to use it to make VideoScapc and Sculpt 3D much faster.
Bruette hopes to expand each Amiga 2000 system with hard disks, dual floppy drives, a genlock board, five megabytes of RAM and a Bridge card as soon as possible. Commodore sent one- drive systems with one megabyte of memory. Since then, he has been sent several two megabyte memory boards and a hard disk controller card.
Bruette attributes much of Commodore's involvement to Commodore's southern California representative, Hal Lafferty of Jack Carter Associates. "He is a great facilitator. He has been extremely helpful on all things so far. If we needed anything right now, and if he had it, it would be over here before the day's end."
For their contribution, Commodore will get a mention in the closing credits in the form of this message: "Production computers supplied by Commodore Business Machines, Amiga Division."
Amigas on the set Bruette walked through the back lots of Lorimar to the set of Max Headroom.
He passed the set of "Knots Landing" on the way, down Garland Avenue.
Lorimar also produces the series "Dallas" and "Our House," and movies such as, 'The Boy Who Could Fly" and "Perfect Strangers." Lorimar's studios were formerly part of Metro Gold win Mayer.
Max Headroom production has a building of its own. Each stage building could enclose several small houses.
The ceilings are nearly a hundred feet high. The inside is very dark, and the air contains wisps of artifical fog used to enhance the lighting of the sets.
Thick batting covers the walls to reduce sound echoes. Each room in every building in the series is built out in the open in the actual building. The Network boardroom is only a few yards from Thcora's apartment, for example.
Bryce Lynch's computer lab has a false hallway that only goes back about ten feet, but with mirrors and tricks of "forced" perspective in the set construction; it appears to go on and on to other offices. Up close, the details of each set are reminders of reality, while on television, the illusion of the future is created.
For example, the pink bus used as Blank Reg's Big Time T.V. network headquarters is only a metal shell. The real bus used for exterior shots is stored on a back lot. The walls of the bus interior carry more reminders of reality.
Most sets have piles of anonymous old electronic equipment, but up close, you can see that the equipment is actually only infrared thermometers and television calibration equipment. On screen, the walls and shelves just look clut- NEW PRODUCTS U MicroBotics l!l!lllllllllllll]llllllllllllllllllll!![!llll[!lllllllllllll]llliIll!ll!l!lllllllllll!llll!illlll!l!llllllilllilllllllll!llll!lllllll!IIIIIIIIU StarBoard2 Owners: THE MULTIFUNCTION MODULE IS HERE!
NO MORE WAITING- this great, four-function "daughterboard" add-in for our hot-selling StarBoard2 memory expansion unit is NOW available at your Dealer's ' Your MultiFunction Module comes complete with StarTime Clock and software; StickyDisk, the most "bullet proof' of all rebootable ram disks; Parity-checking logic; and the socket and support software libraries for the Motorola 68881 floating point math chip. For a more complete description, see our full page ad elsewhere in this issue.
MultiFunction Module for StarBoard2 (without 6SSS1): S99.95 MultiFunction Module for StarBoard2 (with 68881 installed): $ 379.00 MOUSETIME!
Battery-backed clock for your A-1000 This great little mouseport clock looks neat on die side of your Amiga: it connects to the second mouseport and unlike any other mouseport clock, it passes the mouseport through so you can leave your joystick attached!
MottseTime comes complete with easy-to-use WorkBench software and a model StartUp-Sequence script. MottseTime Clock: $ 49.95 A5001 2 Meg Internal Memory & Clock! Savei When you add the standard 512k FastRAM Internal Expansion to your Amiga 500, make sure it's made by MicroBotics! Ours is a totally plug compatible standard memory expansion ...and we DON'T leave out the clock! We provide the exact same dock chip and rechargeable battery as presented in the original Commodore unit but at a far lower cost. We use the highest quality memory components and heavy gauge metal casing.
The best news about our Made-in-the-USA, A-5O0 Expansion and Clock is: YOU SAVE FORTY-ONE DOLLARS! It's available NOW!
M550I Standard FastRAM and Clock Expansion Unit: $ 159.00 COMING SOON... StarBoard2 500 A50D MultiFunction & FastRAM includes power supply. Optional pass-through.
StarBoard2-2000 Adaptor-put SB2 in the 2000 with this low cost adaptor card. Only $ 39.95 SCSI Interface for StarBoard2oniy $ 129.95 A2000 Two Megabyte Expansion A2000 DMA High Speed SCSI Interface We will continue to support ALL Amiga models!
Sold ONLY through Amiga Dealers! Have your Dealer call MicroBotics: (214)437-5330 lllllllllllllilll!lllllllllllllllllllllllllllll[lillllll!l!llllllliilllll!l!lll!!llllll!lllllllllllll!lllin tcrcd. In reality, the posters arc from the Grateful Dead and Pink Floyd, old 1940s magazines and a photo of the Max Headroom cast and crew.
Suddenly, a horn went off and all the workers stopped. The entire building was quiet in a matter of seconds.
Filming had begun on another set.
Only the voice of an actor could be heard.
Live overlays The fall season is scheduled to begin on September 18 with a special double episode, a rerun of the pilot episode titled "Blipverts" and a new episode called "Deities." Shooting began August 20.
Bruclte studies the scripts before the production of each episode. In this way, he knows which graphics need to be done on each production day. After a graphic is created in advance, it is transferred to videotape and copies are sent to the Post Group and the playback editing group. The graphics are also approved by the executive producer.
In the video playback van on the set, the overlay graphic is played back on an Amiga, while the actors are performing a scene on the set. The two images are combined for the final print. Cables lead from the van to the set. The video van also performs color correction and sync on video for the show. Bruette has customized some of the equipment used here. "[ have an Amiga 1000 [which] ! Made rack-mountable. The 2000 is 17 3 8 inches wide - just waiting to have ears put on it - so, it will be rack-mountable.
Bryce and the C-64 Actor Christopher Young plays Bryce Lynch, the computer whiz who created Max Headroom. Lynch is the director of research and development at Network 23. This role is his first for television, but he has much experience in commercials, in these advertisements, Young said he was often cast as "the wimpy kid."
Young revealed the commands he gives the computers on the set. "I type my name over and over, Christopher Tyler Young. Once in a while, I type the return key, I know a little bit about computers." Young once owned a Commodore 64, and his family had an Apple I! While he was growing up in eastern Pennsylvania. In fact, Young lived very close to Commodore.
"Some of the things I say are pretty ludicrous. They don't mean a whole lot to the ordinary person, but it's fun to watch it, because the ordinary person thinks it's a bunch of incredible things that this kid is saying. In real life, most of it is just made up anyway. It is neat playing the part because it is something continued.,. different than me. I'm not like Bryce Lynch in any way, but it's fun to step out of Chris Young on character and play something totally opposite."
Did Chris study computer nerds to play this part? "No, I haven't. It came naturally. I didn't do any studying or research. I guess I took situations from my high school life, from kids I've known. Bryce is not a nerd, he's a human being. He just doesn't care what he dresses like or what he looks like, so he doesn't bother combing his hair, and he doesn't bother looking hip and trendy. He's himself, and that's what counts. He's himself, and that's why everyone likes him."
Invites you to. . .
Put Your Images on Disks!
Color or black and white images (photographs, pictures", 35mm slides) can be digitized in IfF format for use in any IFF program in any of the Amiga's"1 screen resolutions, l.ow resolution (320x200) rsji:- and Interlace (320x400) also available in HAM format (4096 colors). Use disk images to build databases for real estate, personnel files, or use for artwork, creative effects custom icons, with Deluxe Video"1 and more.
Minimum order is 6 images lor 5 15.00 and includes disk. Add S2.00 for postage and handling. California residents add 6% state sales tax, Additional images 52.00 each When ordering state FORMAT (IFF or MAM) and RESOLUTION.
Unless otherwise requested all images will be digitized at the maximum number of colors for that resolution in full dimension. Images may be cropped to fill screen unless full frame is specified. All images will be returned with your order.
Amiga as a workhorse Brian Frankish is the producer for Max Headroom, His jacket bears a button that says, "Who hired all these sleazy people?" And he explained that Max Headroom is a series like any other, with a fixed budget. The pilot episodes of Max Headroom went beyond the planned budget by as much as a half* million dollars each. This year, the series is a scale show with a fixed budget, meaning the crew is paid like the crew of any other show. The production staff is average sized for a series, with perhaps twenty extra people doing the computer graphics. A total of 125 people are
involved in the production, including more than a dozen performers.
P. O. Box 7119 Loma Linda, CA 92354 Aiuig;i is a trademark of
Commodore Arnica Inc DchmrVidco is a trade mark of Electronic
Arts. Inc. ' Please Ho nudes The filming of an episode takes
seven business days, but episodes are shown every five
business days, so the schedule gets tighter as the scries
"With six of them [episodes], you could just burn yourself out. Now, we've got to do twenty-two and last until next March."
Frankish is very enthusiastic about the use of computers in the series. "They are a necessary function in communicating the concepts of our show. We are dealing with information, where it comes from, its source and where its going. That's what these graphics are about. With a computer, we don't need a keying video switcher because the computer has a built-in keying ability.
The kid [Bruettc] types in the stuff, the fellows hit the right keys, it goes together in the video trailer, it plays back on the stage, whoosh; it's that simple. It is similar to what we had before. We were working with an IBM PC before. The type of PC we were using didn't have the broad range of colors or the smallness of the pixels. I don't speak 'computer-ese.' I hire guys who do. One of my major functions here is harmony."
Frankish explained that Max is something special. "We try to maintain somewhat of a camaraderie among the Max Headroom cast and crew that lets people know they are involved in a pretty phenomenal project because we are the hottest thing since sliced bread."
In the past, Frankish worked on the movies Brainstorm and King Kong, so he has worked with high technology before - and wants more technology.
"The toys are getting smaller. No, come on, hey, give us more, we use it. We burn up the available technology. They say civilization hasn't grown that far yet. Come on, civilization, grow. We'll take it. If you invent something new, we'll use it. For us, the Amiga is the basic workhorse of visual communication."
• AC* By Michael Swinger Animation for C Rookies Part One Quick
and Dirty Bobs Animation on the Amiga is not really all that
difficult, contrary to what some confusing and contradictory
programming books would lead you to believe.
Working with the system's Simple Sprites is relatively easy (although the results may be primitive, considering the Amiga's graphics potential), and there are enough sample programs that cover this kind of animation. The problem is that most of the books that deal with Amiga graphics and animation stop with Simple Sprites. The next step in complexity uses the Virtual Sprites. These are harder to program and there may be some glitches and bugs that the literature has been strangely silent about. So, there is very little guidance for the programmer whose status is less than that of a
Registcrcd-and-Baptized Developer.
Bobs (blitter objects why aren't they called "blobs?"), the special glories of the Amiga, show the sophistication of the machine's graphics and animation to the fullest. Unfortunately, the literature is most deficient in this area, either in its silence or in its confusion. John Foust, in a column last year dealing with C programming, mentioned a yearly contest for the most convoluted and turgid C program. I would like to nominate the sample program that appears in the Rom Kernal Manual at the end of the graphics section as one of the Official Amiga Developer entries. If that kind of spaghetti
code were written in BASIC, everyone would scoff!
This scries of articles is written by a beginning C programmer for other beginners who want to explore graphics and animation in the simplest, most direct way. These suggestions may not always be "K&R approved", but they work. They are the result of long, frustrating hours spent trying to find where all the bodies are buried, 1 hope they will provide a skeleton for more elaborate and adventuresome programming on your part.
The first program simply opens a screen and window in 320 x 200 with 32 colors, places a small bob on screen, and waits for you to click the window closed.
When you try to display more than one bob, some screen flicker occurs, so, in a future program, we will introduce double-buffering. A third program will cover the machine routines for handling animation objects ("AnimObs" and "AnimComps"). We will discuss some of the crucial information about animation objects omitted from the Rom Kernal Manual.
You can create the images for the bobs as Deluxe Paint brushes. The brush files will then have to be converted from IFF format to a form that the machine actually understands. For this translation, you will need a public domain utility program named "gi" (available on the Fish disks). Unfortunately, gi will work only with the original Deluxe Paint. A Dpaint II file contains extra color-cycling information, so you will have to save your brushes and edit them in gi with the old version of Deluxe Paint (Aegis Images "windows" should work with gi, but J haven't tested them).
There are several other editors in the public domain (IFFDump is one), but a gi file requires minimal re-editing to prepare a file for your program. Gi will also produce color information, but it will include only those colors actually used in your brush. If your brush doesn't use all 32 colors, you might want to make a special brush that does include all the colors. There is one small error in a gi file (an extra comment mark * ), so look at the sample program below for one way to edit your gi file.
I am using the Aztec compiler, so 1 specify the +L option and the 32-bit library (Casting is still something of a mystery to me, so I'm taking the easy way out right now.). If you are using Lattice, change the .h files as necessary.
If you have expanded your machine's memory beyond 512K, or if you anticipate that your program will be run on an expanded machine (a good possibility), you will also want to include any compiler options that will place the data in Chip memory.
We will also be programming in the Intuition environment. Working with Intuition requires more memory and machine overhead than working directly with some of the Kernal primitives, but Intuition does a lot of the dirty work in allocating and deallocating memory and dealing with the mouse and its messages and besides, it does windows .
Continued... * Program One a simple bob. The * * notes precede the relevant * * statements and are explained * * after the program listing. * (include functions.h * Manx only * (include intuition intultion.h (include graphics gels.h struct IntuitionBase *IntuitionBase; struct GfxBase 'GfxBase; struct Screen *Screenl; struct Window *Windowl; struct Viewport *WVP1; struct Vsprite si, s2; struct Gelslnfo gelsinfo; ** note 1 ** struct collTable Ctable; lae ne RP1 Windowl- RPort VOID Drawit () ; ** MOTE 2 ** USHORT cclomap [32 ] = ( OxOccd,0x05SS,0x0f79,0x0f30,0x0f9b, OxOf90,
Qx0fc3,0x0fc9,OxOeef,OxOddd, OxOccc, OxCaaa, OxOfdc, OxOfcb, OxOfba, 0x0ea9, 0x0e93,0x0d90, 0x0c87, 0x0a5 S, 0x0c75,0x0f67,0x0555,0x0069,0x09el, 0x0fed,0x07cl,0x05a0,0x0270,OxOfdd, OxOfff,0x0000 ); WORD Image_datal[130] = ( * Width: 18 (pixels} Height: 13 (pixels) Depth: 5 (planes)* 0x0000,0x0000,0x0000,0x0000,0x0080, 0x0000, 0x0080,0x0000,0x0080, 0x0000, 0x0080,0x0000,0x0080,0x0000,0x0060, 0x0000,0x0080,0x0000,0x0080,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000, Oxffff,0x8000,Oxffff,0x8000, Qxfelf, 0x8000,Oxfclf,0x8000,OxfClf, 0x8000,Oxfclf,0x8000,Oxfclf,0x8000,
Oxfclf,0x8000,0xfclf,Qx80DO,Oxfclf, 0x8000,Oxffff,0x8000,Oxffff,0x3000, Oxffff,0x8000,0x0000,0x0000,0x0000, OxOOOO,0x03e0,OxOOOO, 0x03e0,0x0000, 0x03e0,0x0000,0x03e0,0x0000,0x03e0, 0x0000,0x03e0,0x0000,0x03e0,0x0000, 0x03e0,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0360,0x0000,0x0360, 0x0000,0x0360,0x0000,0x0360,0x0000, 0x0360, 0x0000,0x0360, 0x0000,0x0360, 0x0000,0x0360,0x0000, 0x0000,0x0000, 0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,
0x0000,0x0000,0x0000, 0x0000, 0x0000, 0x0000,OxOOOO, 0x0000, 0x0000 ): ** NOTE 3 ** WORD Sbufferl [2 * 13* 5J; WORD Cmaskl [2 * 13); WORD Blinel[2] ; struct NewScreen NewScreenl -( 0,0,320,200,5,1,0, NULL,CUSTOMSCREEN, NULL,NULL,NULL, NULL ); struct NcwWindow NewWindowl =1 0,0,320,200,1,0,CLOSEWINDOW, SMART_REFRESH 1 ACTIVATE [ BORDERLESS 1 WINDOWCLOSE, NULL, NULL, NilLL, NULL, NULL, 0, 0,0, 0,CUSTOMSCREEN ); struct Vsprite vl -( NULL, NULL, NULL,NULL, NULL, NULL, OVERLAY I SAVEBACK, 0,0,13,2, 5, 0,0,£lmage_datal[0], sBlinel[01,SCmaskl[01,NULL,NULL, OxOlf ,0,NULL ),- struct Bob bl H
NULL,iSbufferl[0],SCmaskl|0),NULL, NULL,svl,NULL,NULL, NULL }; main () ( Open_Llbrarles () ; OpenScreens(); Init_Babs () ; Drawit () ; Cleanup () ; } *** encj ma i n *** ** NOTE 4 ** Open Llbrarles () I IntuitionBase = (struct IntuitionBase *) CpenLibrary("intuit ion.library", 0) ; GfxBase - (struct GfxBase *) OpenLibrary (''graphics, library", 0) ; return 0; ) Open_Screens(| ( Screenl-OpenScreen(sNewScreenl); NewWindowl.Screen-Screenl; Windowl=OpenWIndow((NewWindowl) ; WVP1 - (struct Viewport*) ViewportAddress (Wlndowl); LoadRGB4(WVP1, (colormap,32); return(); i Init_Bobs (!
I gelsinfo.nextLine = NULL; gelsinfo.lastColor " NULL; gelsinfo.collHandler =NULL; Rpl- GelsInfo " (gelsinfo;
vl. vsBob-(bl; InitGels ((si, (s2, (gelsinfo}; InitMasks (Svl) ;
vl. X=25;
vl. Y-75; AddBob(sbl, RP1); ** NOTE 5 ** •RemBob |sbl) ;*
return () ; } Cleanup () !
Wait (l«Windowl- UserPort- mp_sigBit) ; CloseWindow (Windowi); CloseScreen (Screenl); CloseLibrary(GfxBase); CloseLibrary (Intulcionliase); return () ; ) ** NOTE 6 ** VOID Drawit () 1 SortGList(RP1); WaitTOF(); DrawGList(RP1,WVP1); ) NOTE 1 We are not going to be concerned with collision checking, but the program will crash if this structure is not included.
NOTE 2 The array for your colormap is produced by gi. It will be the same for all bobs in your program, so you can save just one file as a separate colormap and edit it from the rest of your bob data files. The bob data itself can be edited as shown. Be sure to remove the extra comment mark that gi writes into the file. The Vsprite structure requests the image data as a WORD, but gi marks it as IJWORD. Change it if you get tired of compiler warnings.
NOTE 3 If you have only one bob on the screen at once and the bobs will never overlap, or if memory is tight, you can eliminate the Cmask and Bline. If you eliminate these, you must also eliminate the call to InitMasksO. If all your bobs are exactly the same size and will be shown at exactly the same screen coordinates, or if there is nothing in the background that needs to be restored, you can also save much memory by eliminating the Sbuffcr! If you eliminate any of these buffers, specify NULL in the appropriate places in the Vsprite and Bob structures.
Note that the width of the bob is always specified as the WORD width the pixel width, divided by 16.
NOTE 4 These calls do not use error checking because it seems superfluous (I know, I know...). NOTE 5 If you want to remove a bob from the display list, there are two statements you can use. RemiBob(&bl,RPl,WVPl) removes the bob immediately when the statement is called. RemBob(&bl) does not remove the bob from the Gel list until SortGList and DrawGList are called. If you are doing your own sequenced animation by alternating between several versions of a bob, the first call (RcmlBob) can cause some flicker. Note the syntax for the second call (RcmBob) it is defined as a Macro in the gels.h
file and the syntax is shown incorrectly in a number of books.
NOTE 6 The DrawitO function must be called each time you do something to the Gel list such as; adding or removing bobs or changing their screen coordinates. This function is defined as a VOID because we don't care whether or not it returns anything to the calling function.
In a future installment, we will discuss double buffering, which is unfortunately necessary if you want to have multiple bobs on screen. You might be able to get by without it, if your bobs are small and use fewer than 32 colors. If you choose this method, the bobs look like they were done on a C=64, not an Amiga ... so, you may as well use the sprites.
You can try to plow through the Rom Kernal Manual, but there are better and more accurate information sources available for further reading.
Inside the Amiga by John Berry (Sams Books) is a good, very readable tutorial in C, but the graphics stop with Simple Sprites. Robert Peck, who wrote the graphics section in the RKM as part of the original Amiga team, has written the Programmer's Guide to the Amiga (Sybcx Books). This publication makes a lot more sense. Inside Amiga Graphics by Sheldon Lceinon (Compute Books) is a good introduction I owe a great deal to this book but it needs to be updated to reflect changes in the
1. 1 and 1.2 versions of the operating system. None of these
books explains the built-in animation routines, but an article
by Roy Thompson has just appeared in Ami Project, Volume 1 7,
which finally clears up much of the mystery. Read that article
for a preview of our next installment.
• AO POWER+SIMPLICITY= PRODUCTIVITY Feel our POWER. . .
• 025 inch grid
• .001 inch grid Library
• 12 mil trace. 13 mil space
• Produce 1. 2. 4 layer PCB
• Provides silk screen
• Auto coordinates assignment
• Auto produces power and god layers
• Smgle 1me auto route
• Optional Net List Input for guided route no need to look at
• Prioritized route
• Dynamic error checking
• Supports printers, plotters and Gerber photo plotters
• Copy. Repeat and lots more PRO-NET:
• Vanable template sue
• A to E paper size
• Extensive Library included
• Auto device number with Zone control
• Gate swapping
• Smgle click change to negative logic
• Innovative weight assignment
• Auto page reference
• Dynamic error checking
• Creates BOM. Spare Pad List. Net List, Errcr repod, etc
• Suppods printers & plotters
• Supports Laser Printer
• Back annotation from PCB layout
• Move. Rubber and lots more See our SIMPLICITY. . .
Intelligent Function Keys make our programs extremely user Inendly provide maximum screen area always display all relevant commands, avoids excessive cursor movement and screen flashing between menu & drawing, guides user througn operation, minimizes training time VISIT US AT L.A. COMMODORE SHOW BOOTH 179, DISNEYLAND HOTEL, OCT. 3 & 4.
ORDER OR CALL FOR DETAILS 1806 W. Southgate Ave., Fullerton, CA 92633 Tel: (714) 447-8792 Telex: 5106016526 PROLIFIC CALIF Western Union Easy Link Mail Box 62935949 Also from Prolific Inc., 4 fuil feature AMIGA™ Macro Cross Assemblers for Z80, 6809, 8085 & 8051.
See our SIMPLICITY PRO-ASM Feel our POWER
• Includes multi-pass Assembler.
Linker, and Serial Down Load
• Generates relocatable Ob ecr Code Module
• Nested Macro
• Includes Files PRD-ASM Feel our POWER
• Conditional Assembling
• Rich set of directives
• Global and External Variables
• Data format includes Binary.
Motorola Hex. Intel Hex. And Tek Hex AmlGAtM irade mark of Commodore Inc $ 85.00 dealer INQUIRY invited I A M A ~Z I M G R E V I E W S dBMAN Relational Database Management System Version 3.00A reviewed by Clifford Kent In the (microcomputer) beginning there was the 8080 (and Z80) and it ran CP M. As soon as floppy disk storage came about, these primitive microcomputers were able to do database management. The next step was the birth of dBASE, soon to grow into dBASE 11, a real business tool. Some might say that CP M, Word Star and dBASE II were enough to make the early microcomputer a business
Soon, the 8088 (and 8086) and MS-DOS were born (as a clone of CP M, but that's another story). DBASE II was soon available for the new business standard microcomputer.
Later, dBASE III and dBASE III+ improved on a good thing and made it possible to do REALLY SERIOUS database applications on a microcomputer. As with all big software hits, there were many dBASE imitations some might even be better than the original.
DBMAN was first available for the PC-DOS MS-DOS world.
Unlike the name brand product, however, dBMAN is available for the Amiga. The original Amiga release, dBMAN 2.02, mixed some features from dBASE II and dBASE III. It was a mature product from the start (meaning it didn't crash without operator help and it never lost data). We've used dBMAN 2.02 in our business for the last eight months to handle small (under 1000 record) databases and it has performed well.
The newest release is dBMAN Version 3.00. The new version, which resembles dBASE III, has done well in most of our tests. It is more like dBASE III. Its improved user interface makes it a much better product for the Amiga.
For those who have never heard of any of the names dropped above, I should explain: Database - a computer program for keeping and using records, ranging from simple filing programs (the computer equivalent of 3x5 cards) to artifically intelligent wonders that won't even fit in my 2.5 megabyte Amiga.
Relational Database - a useful, sophisticated program that can store information in more than one computer lile, then reconnect ("relate") multiple data files in more than one way, as the human operator's imagination requires.
DBASE III - the best known and most succesful relational database program on PC Compatibles. The size and complexity of the data is limited mostly by the available disk space. The built- in programming language lets you create highly specialized and very sophisticated data handling programs.
Relational databases are fairly easy to set up and surprisingly flexible for extracting information from the stored database.
My experience with microcomputer databases includes dBASE II on CP M computers, dBASE III and FoxBase+ (perhaps the best of the dBASE copies) on Pcs and dBMAN 2.02 3.00 on the Amiga. I've set up several full scale business record keeping systems, as well as customer databases, simple mailing lists, and even my personal checking with these software tools. They all work ... there arc many differences, but they can all do the job.
DBMAN On The Amiga In this article, I describe dBMAN 3.00 in detail and compare it to its relatives running on a PC compatible machine (including the SideCar and Amiga 2000 Bridge Card). My aim is to present a clear picture of what can be done with dBMAN 3.00 and how quickly it can happen.
The dBMAN package includes an 8" x 9" three ring binder, containing just over an inch of manual and a 70 percent full single 880k disk. The disk is not copy protected and docs not include Amiga Workbench. VersaSoft recommends a hard disk for efficient use, but dBMAN can run surprisingly well with two floppies and 256k or more of FAST RAM. Nearly half of the manual describes dBMAN and its basic function. The remainder of the manual is a command and function reference section that becomes very important as you gain experience.
There are 28 files on the dBMAN disk, but only five would be included on a normal work disk, leaving just over 5l2k free on an Amiga floppy to hold data files and dBMAN programs. If your database will be larger than 400k, a hard disk will probably be needed. The remaining 23 files on the dBMAN disk contain updates to the manual, two text files on converting existing dBASE I! And dBASE 111 applications to dBMAN and four application programs written in the dBMAN command language. Continued... Special Introdudry Price Complete Communications Package 300 12001 Year warranty 300 1200 Fully Hayes
compatable Modem- 2 Year warranty $ 129.00 (Modem, Cable & Software) 300 1200 2400 Fully Hayes compatible modem CCITT - 2 Year warranty $ 249.00 (Modem, Cable & Software) Call or write for information about our other great products The REASON system is a series of programs designed to aid writers and editors in editing documents.
Tor the Amiga orourDemodisk $ 5.00 REASON programs do three things: 'proofread input text 'analyze the style of input text 'provide help about English usage Many options give editorial comments and suggestions.
The REASON system tinds potential errors, then you decide which potential errors need correcting Thoughtful use of the REASON system can help both the experienced and inexperienced writer.
With the REASON system, there are six main options:
t. Prose describes the writing style of a document, namely,
readability and sentence characteristics, and suggests
Prose compares a document with standards tor one of several document types. INSTRUCTIONAL TEXT will compare input text with good training documents. TECHNICAL MEMORANDA will compare input text with good technical memoranda. And USE CUSTOM STANDARDS will compare input text with any user created standard.
2. Styte tinds sentences that contain passive verbs, expletives,
noun nominatizations, and multiple nominalizations, Also,
Style will give a roadability level lor each sentence in the
input text or find sentences that are equal to or greater than
a specifically defined readability love!. Another function
performed by style is to find sentences that have a
specifically defined length (number of words contained in a
3. Word Analysis will check the input text for genera! Diction,
sexistterms, sentences that contain forms of the verb "to be",
acronyms and abstract words.
4. General Structure checks input text for general organization,
general topics, sentence breakdown (parts of speech} and
syllable breakdown (syllable count of each word) 5 Proofread
Document checks lor possible spelling errors, doublewords,
possible punctuation errors, diction and split infinitives.
6. Extra allows access to AMIGA Preferences and Build Custom
Prose Standard.
Requires an AMIGA computer with 512K AMIGA is a Registered Trademark of Commodore Amiga $ 395.00 COPYRIGHT© 1982 by AT&T Information Systems and £ 1986 THE OTHER GUYS THE OTHER GUYS 55 North Mam Street Suite 301-D PQ Box H Logan Utah B4321 [BOD 753-7620 CBOQ3 942-9402 dBMAN has no Workbench icon and should be invoked with the CLI commands: STACK 9000 RUN DBMAN Program- Name These commands can be placed in an EXECUTE file for simplicity. Also, public domain programs are available to invoke EXECUTE files from Workbench Icons, if you prefer the Workbench interface. The Program-Name , used to
automatically start an application program written in the dBMAN command language, is optional.
DBMAN creates its own screen with no window borders and only two colors. A custom screen, needed on the Amiga to got an 80x24 display, is required to run dBMAN (or dBASE) programs written originally for other systems. Although the dBMAN screen docs not have a title bar with front back gadgets, you can still multi-task dBMAN by using the Lcft- Amiga-A + N keys to get to the Workbench Screen and the Lcft-Amiga-A + M keys to return to dBMAN. The two color display was probably chosen to save memory (more bit planes use more RAM), but it can sometimes cause confusion. Reading the screen can
be tricky because the Amiga's cursor doesn't blink and dBMAN makes extensive use of reverse video.
If dBMAN is started without a program name on the command line, you get a split screen with two lines for command entry, two lines for help and error messages and 18 lines of data display space. You have a command interpreter with hundreds of commands and functions for creating, editing, sorting, indexing, selecting, finding, listing, printing, averaging, totalling, counting and reporting.
If you know dBASE, you'll feel right at home. Commands are available to import existing dBASE II and dBASE III databases (There are no export commands, but that's also easy to do using an intermediate text file). The commands and functions are not all identical to dBASE, but they are very similar and the differences are well documented. If you have written a dBASE II or dBASE III application, you should have very little trouble moving both existing data and programs to dBMAN. If you have an existing dBASE application written by someone else, porting it to dBMAN provides an excellent way of
learning the language. If you need help, there are many books vailable on the use of dBASE 111.
The only thing dBMAN won't support is the dBASE III "memo" data type (a free form - word processor file that is logically attached to the regular data base). The most obvious use I've found for memo data in dBASE III is storage for examination notes in a doctor's patient database. If the doctor uses memo data, his notes are easy to find. If he doesn't use it, only 10 bytes of disk space is wasted per patient. Note keeping could be handled with a dBMAN program, but the dBASE solution is much more elegant.
If you are a Basic programmer, you will find the dBMAN language easy to learn. A basic set of tools for structured programming are available: PROCEDURE calls IF...ELSE...THEN DO WHILE...LOOP...EXIT...ENDDO DO CASE...OTHERWISE...ENDCASE. You can store information in memory variables, as well as in the database files. Variables can be either global or local in scope to a single PROCEDURE. A full set of relational operators, arithmetic operators, string functions, date functions, data validation, and data formatting and display commands are also included.
Menus can be created for keyboard or mouse control of a program. DBMAN language is a real programming language, not a glorified macro-keystroke recorder. In my opinion, it is a much better language for business programming than Basic, Pascal, Forth or C. If you want to run a dBMAN application program, include its name in the dBMAN command line. In this case, the opening dBMAN screen is replaced by the application program's opening screen and dBMAN is almost invisible, as the skill and sophistication of the application programmer shines through.
Application programs are stored in standard Amiga text files that are interpreted at run time. This point creates a very nice programming environment on the Amiga. I RUN dBMAN and then RUN a copy of TxEd of each program module I want to work on. During development, each procedure is stored in its own file. After the program is complete, all the procedures can be assembled into a single file for execution.
DBMAN Programs Four application programs are supplied with dBMAN. In addition to being directly useful, each is a good example of dBMAN programming.
The CLI command "RUN dBMAN TUTOR" starts an application program designed to teach basic dBMAN to the beginner. The program is menu-driven and a good starting point for learning dBMAN from scratch, leading you, step by step, through creating and using a database.
The CLI command "RUN dBMAN ASSIST" starts an application program that replaces the standard command line control with a mouse operated pull-down menu interface.
This application is an excellent example of dBMAN language in action. DBMAN is transformed into an "Amiga Program" and you have the source code, so you can customize the user interface to your liking. The possibilities are terrific. I expect to see a new generation of easy-to-use, mouse controlled business applications that are also reliable and sophisticated because they are based on a mature database system and years of program development.
ASSIST has eight pull-down menus with the basic database functions logically grouped. Each selection leads you through the selected operation, offering choices as needed. After continued... I 1 I Other Products From I The Other Guys Reason $ 395.00 Omega File $ 79.99 Promise $ 49.99 KEEP-Trak GL $ 49.99 AMT (Amortization Program) $ 39.99 Match-It $ 39.99 Math-A-Magician $ 39.99 Talking Story Book (Christmas Stories) $ 39.99 Musicial Slide Show Demo $ 5.00 Call or write for I more information. I i____________i SYNTHIA High Performance Digital Synthesizer A slalt of ihc art music tool which will: Create
digital IFF Instruments for use with nearly all music programs!
Modifying existing IFF Instruments. Use SYNTHIA on digitized samples to add reverb, wow, and other enhancements.
SOMETHING TOR EVERYONE: Additive Synthesis - a traditional method which can create almost any type of instrument.
Plucked String Synthesis - simulates plucked strings . . . Right dowm to the pluck'.
Interpolator Synthesis - a method which introduces the natural imperfections found in instruments.
(Instruments such as brass, woodwinds, pianos, etc.) Percussion - build your own drum set . . . Create any drum you desire.
Subtractive Synthesis - a simple method of creating instalments.
Special Effects - includes filtering, amplification, phasing, waveshaping, amplitude modulation, real reverb, and . . .
IFF Music Player - powerful and compact. Now you can enjoy those songs that needed a memory expansion before! Up to 32 tracks and 32 IFF Instruments! Supports chords, ties, etc. IS IT LIVE . ¦ .OR IS rr SYNTHIA?
Synlhia uses the latest technology to generate realistic sounding instruments and even the new families of instruments sound real, A real synthesizer on a real computer!
$ 99.99 Why buy digitized instruments when you can SYNTlIIAsize them?
Requires AMIGA 512K Copynghi S1987, TIIE OTHER GUYS Software • AMIGA is a registered trademark of Commodore Amiga THE OTHER GUYS Street 55 North Main Suite 301-0 PO Box H Logan Utah 84321 (B01) 753-7620
(800) 942-9402 you've made your menu choices and typed in the
needed file names, search strings, etc., ASSIST displays
the resulting dBMAN command line before it is executed.
With this information, you can Icam about the dBMAN
language while you are using it.
When ASSIST is running, the dBMAN title bar and front back gadgets are available, so you can control the dBMAN screen with the mouse to do something on the Workbench screen.
Most database users would be satisfied with dBMAN and ASSIST as their everyday database. The availability of the source code and a complete database programming language become a great help as the user's understanding and needs expand.
Sample dBMAN Program I've included the source code for a simple, public domain mailing list handler. 1 initially wrote the program for dBASE
II. 1 then ported it to dBMAN 2.02 on our first Amiga and finally
to dBMAN 3.00 (in only a few hours). The program docs not
fully exploit the capabilities of dBMAN 3.00, but it may
serve as interesting reading if you'd like to look at a
simple application.
MailList opens with an on-screen menu listing all the program's functions. I won't try to describe the functions here, but a few points will help explain dBMAN programming. The main program is a "DO WHILE" loop that displays the menu, gets input from the keyboard and executes the selected PROCEDURE in a big CASE statement.
DBMAN dBASE programs, unlike Pascal programs, have the main program at the beginning of the listing with PROCEDURES following.
MailList maintains its own variables for the path name and the data file name. Having both names maintains the flexibility to place the data in RAM: when 1 want speed, and can save typing by saving things, In the Opcn-Filc PROCEDURE, you see the line: USE &Dname&Fname The ampersand ("&") is the macro symbol. This signal tells dBMAN that the current contents of a memory variable should be included in a program command. In this case, the variables "Dname" and "Fnamc" are used to complete the command line when the code is executed. In this simple example, MailList allows the path to be saved in
one string variable and the file name to be in another. When it's time for the "USE" command to open the data file, the command verb and the two strings arc assembled into a complete command. This use of macro substitution started with dBASE II, and continues as a handy short-cut and the programmer's last resort when he wants dBMAN to do something unusual.
Screen formatting is done using the row , col " command sequence to move the cursor to the right position on the screen (or printer). The "SAY" command shows a message. The "GET" command displays the current contents of a data field or a memory variable and makes it available for editing. Normally, a series of SAY and GET commands ends with the READ command, where the actual data entry takes place.
Both the Sct-Filtcr and Set-Index PROCEDURES in MailList assume some understanding of dBMAN's command syntax.
Fairly complex data control is possible, but the user must know how to phrase the command. Much more friendly systems have been designed (dBMAN's ASSIST program is a good example), but this program was written for in-house use and friendliness wasn't worth the trouble at the time.
The MailList code includes many lines ending with semicolons.
This syntax allows the programmer to enter a single line of command code (up to 236 characters) spanning several physical lines in the source code file.
In the two hard copy routines, Print and Labels, you will notice something very unusual for an Amiga program - printer escape sequences. DBMAN uses the PAR: device, not PRT:, so the Amiga printer drivers are not used. If you want something special from your printer, you'll have to look up the printer codes. Use of printer codes is the norm for other computers and must be available to run applications written for other computers. Unfortunately, I can't find a way to use the AmigaDOS printer drivers for the simple things other computers handle automatically.
In a future issue of Amazing Computing, MailList will be "Ami- gatized" and extended into a more complete and easier to use application program. For now, I hope the sample code introduces dBMAN as a programmer's tool.
Benchmarks Table 1 includes the results of three very simple tests of database speed.
Two computers were used: an Amiga 1000 and a PC-XT done.
The Amiga 1000 was equipped with 3 floppy disks and 2 Megabytes of zero wait state fast ram. No hard disks were available at the time, but the tests were run using both floppy disk and RAM disk storage. Hard disk performance should be intermediate. For the floppy disk tests, the AmigaDOS command 'AddBuffcrs' assigned 30k of cache ram to each disk drive. This allotment improves performance for many tasks (including database reads), but does little to help the speed of disk writes.
The second computer was a PC-XT clone with 2 floppy disks, 2 hard disks, 640k ram, NEC V20 processor and an 8087 math processor. Although the PC runs at 8 Mhz, the tests were run at the standard 4.77 Mhz dock speed,This adjustment should make the PC's performance similar to an Amiga Side Car or an Amiga 2000 with Bridge Board.
Three database programs were tested: dBMAN 3.00, dBASE III and FoxBase+. The first two programs shoud be familiar. The third program, FoxBase+, is a dBASE compatible compiler. Fox is included here because it represents the current state of the art system for PC compatibles.
The first test involved indexing a mailing list of 593 entries by Zip Code. Indexing is similar to sorting but, rather than physically rearrange the data records, the program creates a second file containing the information necessary to locate the database records in the correct order.
The second test used an index file built on last names to FIND the 590th out of 593 entries. As you can see from the test results, data access is very fast if the correct index exists. Many programmers will maintain a collection of index files for the same database to minimize data search times.
The third test used LOCATE, a sequential search of the database, to find the 590th out of 593 entries. In this case, the database was not indexed. I expected this test to be a simple look at sequential disk read speed, but the times suggest that more is involved here.
From these simple tests and lots of hands on use, I can safely draw some conclusions.
First, never use data AND index files on a floppy disk. Unless the data file is very small, the grinding of the drive will drive you crazy. If necessary, copy the index files to RAM: at the start of your program, then back to floppy at the end.
DBMAN on an Amiga will generally out-perform dBASE III on a plain PC. This difference should not be a big surprise--- most of us already know that an Amiga is faster than a PC.
The interesting point is that dBMAN performs very well using floppy disk storage if the program also uses the RAM: Disk in the right places.
Be careful not to read too much into the floppy ram timings.
The floppy slow considerablys when reading a file whose physical order is very different from the indexed order. For example, if the file is sorted by last name, then indexed by city, Listing the filewill require many disk seeks. Hard disks seek faster than floppy disks. RAM disk seek is best of all.
DBMAN Run-Time Utilities In addition to the standard dBMAN interpreter, a dBMAN Run-Time Utility Package is also on the market. This package "tokcnizcs" the completed application program text file, creating a version of the program that cannot be read or changed with normal computer tools. The Run-Time code executor runs this encrypted version of the program. The Run-Time Utilities give the program developer three advantages:
• Your source code is secure.
• Your client does not need to buy dBMAN. The distribution
licence for the Run-Time executor is included in the price of
the package.
• Your code runs noticeably faster because the original text file
has been converted to a semi-compiled code form that can be
processed faster at runtime.
I did not properly benchmark dBMAN Run-Time's performance that process would require some careful programming. However, I did write a simple program that made a lot of PROCEDURE calls and did some string counting and arithmetic while reading through a database. Run-Time executed the test program about 20% faster than the dBMAN interpreter, I also used Run-Time to compile several application programs and noted a significant speed-up in many operations. In particular, the dBMAN ASSIST program had a quicker feel. It appears that complicated dBMAN programs benefit more than the simple
commands, like INDEX or LOCATE.
Conclusions VersaSoft is an established supplier of database software for a wide variety of computers. DBMAN 3.00 is quite new for the Amiga and a few problems still exist. 1 have discussed the problems with VersaSoft's knowledgeable, candid tech support staff. DBMAN 2.02 was very reliable and expect to see a bug-free dBMAN 3.00 soon.
Who should use dBMAN?
Anyone who wants to run an existing dBASE dBMAN application on an Amiga should use dBMAN. Dozens of well designed public domain programs in the CP M and MS-DOS libraries can be moved to the Amiga easily.
If you need an efficient Amiga programming language for business or record keeping applications, you should also consider dBMAN. DBMAN includes a very high level language for entering, storing, retrieving and reporting information. It can be used to quickly create convenient, continued.,. reliable programs in days. The same functionality could undoubtedly be written in C or Basic, but development would take much longer.
DBMAN is also out there for any of the thousands of dBASE programmers looking for a way to widen their market without learning a whole new language.
DBASE Compatible Products About the Author Cliff Kent is a full-time programmer and Amiga developer.
His first Amiga project was a Forth compiler for the Amiga used to create MacroModcm, a telecommunications program.
Kent is currently working on a business software package aimed at PC compatibles. Anyone interested in dBMAN dBASE programming on the Amiga should send Email to PeopleLink ID c.kont or CompuServe ID 72437,162.
J dBMAN 3.00 Interpreter ..... $ 199.95 Run-Time Utility Package S 199.95 Interpreter & Run-Time $ 295.00 dBMAN is also available for IBM compatibles, IBM compatibles with Local Area Networks, Xenix, Atari ST and Macintosh VersaSofl Corporation 4340 Almaden Expressway, Suite 250 San Jose. CA 95118 dBASE 111 Plus . $ 695,00 Ashtors-Tate 20101 Hamilton Ave.
Torrance, CA 90502-1319 File Structure For MailList Name Type Size LAST Character 30 FIRST Character 15 STREET Character 25 CITY Character 17 STATE Character 2 ZIP Character 5 PHONE Choracter 13 NOTES Character 15 122 SET TALK OFF
* MailList.cmd ¦ Mailing Labels system main menu program
* Last dBASE II version 27Apr84
* Converted for dBMAN 01Nov86,02NCV96,G3Nov86
* Converted for dBMAN Run-Time C3Jui87 SET PROCEDURE TO MallLlst
CLEAR SET CONSOLE ON SET PRINT OFF SET DELETED ON Dr.ar.e - ' '
Fnarr.o - ' ' Key " ' ' FI lterFld - ' ' FilterStr - ' '
FilterType =¦ ' ' IndexStr - ' ' Del in = Ml " 'Open dir.X
file,' M2 - 'Filter data,' M3 - 'Index data, ' Ml - 'Acid new
names,' M5 - 'Edit names,' M6 = 'List file to video,' M7 =
'Browse file on video,' M9 - 'Print file master,' M9 - 'Print
labels,' K10 ¦* 'Save file,' COHtiltUnd... FoxBase* Development
Package .....$ 395.00 Royalty-Free
Runtime .....$ 500.00 Fox Software 27493 Holiday Lane
Perrysburg, OH 43551 Table 1 Simple Benchmarks Index 593
records on ZIP Code: dBMAN 3.CO Data RAM: Index RAM: Data DF0:
Index RAM: Data DF0: Index DF0:
25. 6 seconds
35. 3 seconds
278. 4 seconds d3ASE III Data & Index on hard disk Data & Index
on floppy
53. 4 seconds
94. 6 seconds FoxBase+ Data & Index on hard disk Data & Index on
7. 6 seconds
13. 0 seconds Find record 590 out of 593 using index: dBMAN 3.00
Data RAM: Index RAM: Data DF0: Index RAM: Data DF0: Index
DF0: .3 seconds
1. 1 seconds
2. 2 seconds dBASE III Data & Index on hard disk Data & Index on
floppy ,3 seconds
2. 1 seconds FoxBase+ Data & Index on hard disk Data & Index on
floppy .3 seconds .8 seconds Locale record 590 oui of 593 with
text search: dBMAN 3.00 Data on RAM: Data on DF0:
11. 8 seconds
21. 6 seconds j dBASE III Data on hard disk Data on floppy
7. 5 seconds
32. 2 seconds j FoxBase+ Data on hard disk Data on floppy
3. 6 seconds 8,5 seconds Comes to Los Angeles!
¦ "V""1 n u 111. N i.i. ii.mmw'.wwm1 10 | REGISTRATION Hj January 16-18, 1988 The Westin Bonaventure Los Angeles, California A A 115 216 A A 113 214 m A A 109 210 B B 107 208 A A 105 206 • A 230 A 127 B 228 B 125 C 226 C 123 1 C 224 B 121 B 222 A 119 A 220 EXIT 9 A 330 229 B 328 C 326 B 227 C 225 C 324 B 223 B 322 A 221 A 320 A 331 • A B 428 329 R C 327 426 Q C 325 424 ft B B 323 422 A A 321 420 EXIT o 631 "d"1 629 O 627 D 625 D 623 D 621 E 619 E 617 E 615 E 613 E 611 E 609 E 607 D 429 D 526 D 524 D 427 D 425 ft D 423 D 522 D 421 D 520 D 626 D b 21 D 624 D 525 ft D 523 D 622 D 521 D 620 A A
215 316 A A 213 314 A A 209 310 B B 207 308 A A 205 306 A 517 A 616 A 515 A 614 • A 509 A 610 B 507 B 608 A 505 A 606 A A 315 416 A A 313 414 ft A A 309 410 B B 307 406 A A 305 406 A 417 A 516 A 415 A 514 A 409 B 407 A 510 B 508 A 506 + A 405 ENTRANCE REGISTRATION For Exhibitor or Attendee Information Call 800-32-AMIGA Nationwide In New York, 212-867-4663 Amiga(TM) is a registered trademark of Commodorc-Amiga, Inc. 25 Mil - 'dEMAN commamd mode,' MI2 - 'Cult.'
MenuText = M1+M2+M3+M4+M5+H6FM7+M8+M9+M10+M11+M12 RELEASE M1,M2,M3,M4,MS,M6,M7,M8,M9,M10, Mil ,X12 DO WHILE Key 'Q' ERASE 3 0,36 SAY 'MaiiList' 3 1,28 SAY - ' 3 2, 32 SAY 'By Cliffo rd Kent' 2 4,30 SAY 'File
* +FILEN AME() 5,30 SAY 'Filter - FilterStr '+FllterFld+' 3
6,30 SAY 'Index '+IndexStr ASSIGN VMENU(Da
1im,MenuText,Row(},1,2,1,-1) ERASE DO CASE CASE VMENU () =1 DO
Open-Elle CASE VMENU ()"2 IF FILENAME () " DO Set-Fllter
ENDIF CASE VMENU 0-3 IF FILENAME 0 " DO Set-Index ENDIF CASE
VMENU 0-4 IF FILENAME () " DO Add ENDIF CASE VMENU 0=5 IF
FILENAME 0 o ¦¦ DO Edit ENDIF CASE VMENU 0=6 IF FILENAME 0 « "
DO List ENDIF CASE VMENU()-7 IF FILENAME 0 1' BROWSE FIELDS
Last,First,Phone,Street,City,State; ,ZIP,Notes ENDIF CASE VMENU
0=8 IF FILENAME!) " DO Print ENDIF CASE VMENU 0-9 IF
FILENAME!) •' DO Labels ENDIF CASE VMENU 0=10 IF FILENAME!)
O ¦' USE 1DnameSFname DO Re-Order END IF CASE VMENU 0=11 ? 'The
current file and index are still open,' ? 'Type "DO MENU CR ~
to return to menu.'
RETURN CASE VMENU 0-12 Key - 'Q' ENDCASE ENDDO QUIT 3 5,13 SAT 'Drive and or directory name: '; GET Dname PICTURE DUPCHAR RANK30) ? 7,5 SAM 'Data file name (.DBF will be added): '; GET Fname PICTURE DUPCHAR(RANK(')'),26) SET CONFIRM ON READ Dname - TRIM(Dname) IF SUBSTR(Dname,LEN(Dname),1) .AND, LEN(Dname) 0; .AND. SUBSTR(Dname,LEN(Dname) ,1) " " Dname = Dname + " " ENDIF Fr.ame = TRIM(rname) 3 9,5 SAY 'Searching for '-tDname*Fname+' .DBF' IF FILE(DnametFnamet'.DBF') USE iDnameiFname DO Re-Order ELSE @ 11,5 SAY 'File not found - press R£TURN ' WAIT ENDIF RETURN
* re-filter and re-lndex PROCEDURE Re-Order IF TRIM(FilterFld) "
-AND. TRIM (Fi IterType) " ; .AND. TRIM (Fi IterStr) o' ' Key
- FilterFld+" "tFllterType-'' "+FllterStr-t"'" 3 Row0+2,5 SAY
'Filtering file.'
SET FILTER TO Skey ELSE SET FILTER TO FillcrFid • ' FilterStr * ' ' FilterType = ' ' ENDIF IF TRIM (IndexStr) O'' 3 RowO+2,5 SAY 'Indexing file.'
IF FILE("RAM:ITEMP.HDX") DELETE FILE RAM:ITEM?.NDX ENDIF INDEX ON SindexStr TO RAM:ITEMP ELSE IndexStr = • ' ENDIF RETURN
* Data filter program.
PROCEDURE Sot-Filter Key = ' ' ERASE 3 1,1 SAY 'MaiiList Filter' 3 3,1 SAY "Current filter - " + FiltcrFld + " + FilterType + " " + FilterStr FilterFld = FilterFld + DUPCHAR(RANK(* '),10) FilterStr = FilterStr - DUPCHAR(RANK(• '),30) FilterType = FilterType + DUPCHAR (RANK (' '),2) 3 5,1 SAY 'Fields: LAST, FIRST, STREET, CITY, STATE,'; + ' 2IP, PHONE, and NOTES' 3 6,4 SAY 'Enter name of field to filter on: '; GET FilterFld PICTURE ':!!!!!!!!!'
SET CONFIRM ON READ FilterFld - TRIM(FilterFld) IF FilterFld " 3 8,1 SAY 'Enter word Is) to search for: '; GET FilterStr PICTURE DUPCHAR(RANK('X' ) , 30) READ FilterStr - TRIM (Fi 1 terStr) IF FilterStr *' 3 10,1 SAY 'Relational Operators:' 3 11,5 SAY '= (equal)' 3 12,5 SAY * [greater than)' 3 13,5 SAY ' (less than)' 3 14,5 SAY ' (not equal)' continued... City Desk takes a Mega Bite Out of Apple's Desktop Publishing Market City Desk is a full featured Desktop Publishing Program designed with both the professional and amateur in mind. Now you have the power and flexibility to create
high quality, professional looking documents. City Desk is for the serious users who demand the best, in products and results.
Version 1.1 Now Shipping!
• Supports WordPerfect
• Supports PostScript
• Supports HP Laserjet+ Version 1.0 Owners Call for FREE Upgrade
(This page was created with City Desk and a PostScript
Version 1.1 Features Supports WordPerfect 140 Page manual created with City Desk Simple start Up exercise using text and graphics Automatic kerning and leading Powerful embedded command options Unlimited font changes in the text Flow text around graphics Any number of fonts on a line All preferences printers supported Prints IFF pictures Prints color pictures in gray scales Text and graphic editors included Headers or Footers Automatic page numbering Horizontal and vertical ruling with variable line weights Widow and orphan control Indents and outdents Left, right, center, or fill
justification Reverse type and graphics Not copy protected!
Head Coach Pro Football Simulation strategy for those exciting long drives toward your opponents end zone. You call the plays the same way a coach calls plays.
It's easy and fun to have the QB hand off to the Halfback and send him through the "three hole", by entering the simple command "RHB3". With Head Coach you can use the standard offensive or defensive playbooks or create your own. You can even design custom plays while the game is in progress!
If you've ever wished a computer football game could be more like a chess game... then its time you met the new Head Coach. Head Coach is a strategic game, not an arcade game. Playing Head Coach is as close to coaching the Pro's as you can get without signing a contract. You send in the plays, setting the tS 2KSIHH36£; Head Coach MicroSearch 9896 Southwest Freeway, Houston, TX 77074, USA, (713) 988-2B18
• Have instant replays, even slow motion
• Show* Stats w hile game is in progress
• Player injuries and substitute players
• Create realistic defensive alignments
• Returns fumbles and interceptions
• Call blocking assignments and snap count
• Display jersey number or player strength
• Computer can run either, neither, or both teams
• Create weather; wind, sun, rain, or snow
• Choose stadium type, name and surface Now Shipping!
0 15,5 SAY ' - (less chan or equal)' 0 16,5 SAY (greater than or equal)' 3 17,3 SAY 'Enter one: ' GET EilterType PICTURE ') READ FilterType - TRIM(FiiterType) IF FiIterType Key - FilterFld + " " + Fi IterType f " ** + •• + FiIterStr + " ? 'Filtering file.'
SET FILTER TO Skey ELSE SET FILTER TO FilterFld " ' ' Filterstr " ' ' FiIterType « ' ' ENDIF ELSE SET FILTER TO FilterFld - ' ' Filterstr = ' ' FilterType - ' ' END IF ELSE SET FILTER TO FilterFld = ' ' Filterstr = ' ' FilterType =* ¦ 1 ENDIF Key = ' ' RETURN
* Lata ir.uex prog ran PROCEDURE Set-Index ERASE (3 1,1 SAY 'Hail
Li st Index' @ 3,1 SAY "Current index - "HndexStr IndexStr =
IndexStr + DUPCHAR(RANK(' '),50) @ 5,1 SAY 'Data field names:'
and NOTES' @ 7,1 SAY 'Enter Index order: '; GET IndexStr
SET CONFIRM ON READ IndexStr = TRIM(IndexStr) O » » USE &Dna.T,e&Fname IF IndexStr w ? ' Indexing file,' IF FI LE ("RAM: I TEMP. NDX ~) DELETE FILE RAM;ITEMP.NDX ENDIF INDEX ON ilndexStr TO RAM:ITEM?
ELSE ? * Index removed.'
IndexStr = ' * ENDIF Key = ' ' RETURN
* Add new records program - uses temporary file for data
* improved security.
PROCEDURE Add ? 'Opening data entry file.'
IF FILE('RAM:ADD.DBF') DELETE FILE RAM:ADD.DBF ENDIF COPY STRUCTURE TO RAM:ADD SELECT SECONDARY USE RAM:ADD Key = ' ' DO WHILE (Key 'Q' APPEND BLANK Key - ' ' DO WHILE (Key *A') .AND. (Key 'Q') Key = 'A' ERASE 0 4,29 SAY 'New Record Number:' 3 4,Col(}+l SAY PICTURE ' ! ' 3 5,15 SAY 'First Name' 3 5, Col 0+1 GET First PICTURE *!!!!!!!!!!!!!!!'
3 7,16 SAY 'Last Name' 3 Row (), Col 0+1 GET Last; PICTURE '!!!!!!!!:!!!!!!!!!!!!!!!!!! 1 !' ' 8 8,19 SAY 'Street ' GET Street 3 9,21 SAY 'City ' GET City 0 10,20 SAY 'State ' GET State PICTURE '!!'
3 11,22 SAY 'Zip ' GET Zip PICTURE '**( ' a 12,20 SAY 'Phono
* GET Phone PICTURE *(* •) e 13,20 SAY 'Notes ' GET Notes SET
CONFIRM OFF READ 8 18,30 SAY 'A - Add another name' 8 19,30 SAY
'0 - Quit adding' 8 20, 30 SAY '£ - Edit this name' 8 21,39 GET
Key PICTURE '!'
SET CONFIRM OFF READ EHDDO ENDDO DISPLAY ALL ERASE Key * ' ' DO WHILE Key 'N' ? * * ACCEPT 'Do you wish to print the new entries? (Y N) : TO Key Key - !(Key) IF Key - 'Y' CO Print ENDIF ENDDO ERASE USE SELECT PRIMARY Key = ' ' ACCEPT 'If you wish to discard the new entries enter "Q TO Key Key - !(Key) IF Key 'Q' ERASE ? 'Posting new entries to the main file,' APPEND FROM RAM:ADD ENDIF Key = ' ' RETURN
* Edit existing records PROCEDURE Edit Key - ' ' Macro = ' '
TargetFld - ' ' TargetStr = ' ' DO WHILE TargetFld 'Q' ERASE
'MailList Editor' 'Fields: LAST, FIRST, STREET, CITY, STATE,
ZIP,'; + ' PHONE, and NOTES' ACCEPT 'Enter name of field to
search (or Q to quit): TO TargetFld PICTURE '!!!!!!!!!!'
IF TargetFld •' .AND, TargetFld 'Q'
• j * * ACCEPT 'Enter word(s) to search for: ' TO TargetStr ? ' '
? 'Searching' GOTO TCP LOCATE FOR TarqetStr5*TargetFid Key -
'C' DO WHILE (Key 'Q') .AND. .NOT. EOF ERASE Key - 'C' SET
CONFIRM ON 0 4,28 SAY 'Record Number:' 0 Row (), Coi ()+l SAY ?
PICTURE 'Mill' 0 6,17 SAY 'First Name GET First PICTURE
6 7,18 SAY 'Last Name '; GET Last; PICTURE '! ) J ! I (i!!! ! !!!J!M J(!!!!1[T!M T' ® 8,21 SAY 'Street ' GET Street @ 9,23 SAY 'City ' GET City 0 10,22 SAY 'State ' GET State PICTURE '!!'
0 11,24 SAY 'Zip ' GET Zip PICTURE ' « «' 0 12,22 SAY 'Phone ' GET Phone PICTURE '( ) -!* ' 0 13,22 SAY 'Notes ' GET Notes 0 19,28 SAY "Q « quit this record' SET CONFIRM OFF READ 8 19,28 ERASE 0 19,28 SAY 'Q - quit searching' 0 20,28 SAY 'C = continue search' 0 21,37 GET Key PICTURE '!'
SET CONFIRM OFF READ IF Key 'Q' 0 19,0 ERASE 3 19,35 SAY 'searching' CONTINUE ENDIF ENDDC ENDIF ENDDO Key * ' ' RETURN INTERCHANGE Share objects between Sculpt 3D and VidooScape Use Sculpt 3D as an editor to create objects for VideoScapc Make HAM ray-traced VidooScape scenes with Sculpt 3D Interchange™ converts Sculpt 3D objects to VidcoScape objects and back again. Save hours of work and tedious calculations by using Sculpt 3D to make VideoScape objects. Share objects with others.
Price $ 49.95 Send check cr racney odor only. WI and MA residents add 5% sale; tax.
Ibis product requires Sculpt 3D and VideoScape. It is not a stand-alone animation program. Send a stamped, self-addressed envelope: (or a catalog of Syndesis products. Dealer inquiries invited.
SyrsTDESIS 20 West Street Wilmington, Massachusetts 01887 Intarchanpi is a IradffnarR of Syndettt, Sculpt 3D and VideoSoipc 3D are regisl«vd trademarits of Byte fcy B te Corporation and Aegis Development, mtpectivdy.
* List file to video PROCEDURE List ERASE ? ' Reo I Name -
Last . First ? ' City ...... Zip..' LIST
ALL Last,First,City,Zip ACCEPT 'Press ENTER to continue' TO
KEY Key - ' ' RETURN
* Print file master list.
PROCEDURE Print ERASE SET PRINT ON ? ' ' SET PRINT OFF WAIT 'Press RETURN to continue' ERASE SET CONSOLE OFF SET PRINT ON
• Printer set-up for Centronics 739 ? CHR(27)+CHR(20)
* Printer set-up for Laser Jet
• ?? CHR (27) + ' E' +CHR (27) + ' filOO' +CHR (27) + '
(8U'+CHR(27)1 +'(s0pl6.6h8.8v0s0b0T' SET LEFT MARGIN TO 0 SET
TOP MARGIN TO 0 SET 30TTOM MARGIN TC 0 GOTO TOP ? ' LAST first
• Laser Jet reset command
* » » ? 'Print complete.'
WAIT ' P re s s R ETURN ' RETURN
* Label printer program for 3-up labels on 9" paper PROCEDURE
Labels ERASE Spacer = DUPCHAR (RANK (' '),61) SET PRINT ON 7 »
» SET PRINT OFF ? ' 1 ? "Turn printer off, position three
accross labels,"; + " turn printer or.." ACCEPT 'Press ENTER
to continue' TO Key ERASE SET CONSOLE OFF SET PRINT ON
* Set 16 cpi font on Centronics printer
* then reverse feed the paper ? CHR(27)+CHR(20) Counter = 12 DC
WHILE Counter C ? CHR(27)+CHR(138)+CHR(27)+CHR(138) DEC
Counter continued.. TOUR AMIGA CAN NOW GRADUATE TO A PHD!
Make the educated decision on a hard drive. The Phoenix PHD hard drives are here. Available in 20 MB and 40 MB models (higher capacities can be special ordered). The PHD hard drives come completely formatted and ready to use: simply plug into the expansion port on your Amiga and go! True SCSI interface with pass-through expansion capabilities of course. Phoenix Engineering hard drives are available for both the Amiga 500 and 1000 series computers. (1000 series is fan cooled) PHD hard drives are bundled with assorted public domian software. Full one-year parts and labor warranty, and our
technical support team is always ready to assist with questions you may have. Get Smart, Get a PHD hard drive.
20MB-$ 949 40 MB- S1389 The Hiocnlx Electronics PHD 1000-20MB & 40MB 20Affl-$ 969 In Stock, Call 1-913-632-2150 Benchmark Test Available VISA and Mastercard Accepted Dealer Inquires Welcome ENDDO Counter - 0 No:Printed = C SET TOP MARGIN TO C SET BOTTOM MARGIN TO 0 SET LINE COUNT TO 66 SET LEFT MARGIN TO 0 GOTO TCP DO WHILE .NOT. EOF Linel - Last - S (Spacer, 1,19) ELSE Counter - IB - LEN (TRIM(First) I Linel - TRIM (Fi rst.) +' 'i Last f 5 (Spacer, 1, Counter) END IF Line2 *- Street - S (Spacer, 1,241 Counter - 38 - LEN (TRIM (City) ) Lir.e3 = TRIM(City) + ", " + State + " * + Zip; +
5(Spacer,I,Counter) SKIP IF First - ' Linel - Linel + Last * S (Spacur, 1,19) ELSE Counter = IS - LEN (TRIM (First) ) Linel = Linel + TRIM (First) + 1 ' + Last," + S(Spacer,1,Counter) END IF Line2 - Llne2 + Street + S (Spacer, 1, 24) Counter = 38 - LEN (TRIM (City) } Lir.= 3 - Line3 - TRIM (City) + ", " - State + " "; ¦r Zip - $ (spacer, 1, Counter) SKI?
SET CONSOLS ON SET PRINT OFF No:Printed -¦ No:Printcd + 3 5 4,0 SAY 'Current label count:' S ROW () , COL () +1 SAY No :Printed PICTURE '?•««' SET CONSOLE OFF SET PRINT ON IF First - ' Linel - Linel 4 TRIM(Last) ELSE Linel - Linel + TRIM(First) * • ' + TRIM (Last) ENDIF L:r,e2 * Line2 t TRIM (Street!
Line3 - Line3 + TrtM(City) + ", " ¦ state + " " + Zip SKIP IF LEN(Linel) III Linel - 5(Linel,1,131) END IF ? Linel ? Line2 ? Line.3 « « ? A* 2 « ENDDO SET PRINT OFF SET CONSOLE ON 2 » 1 ? 'Print complete.* ACCEPT 'Press RETURN TO Key Key - ' ' RETURN
• AC- AMAZING REVIEWS Amiga Pascal Reviewed and Previewed When
evaluating an implementation of Pascal language for the Amiga
or any other computer, it is tempting to compare and contrast
it with other programming languages. That is the wrong
There is no such thing as an all-purpose, all-powerful, all-capabic computer language (or computer, for that matter).
Each language has its own strengths and weaknesses. Given the same programming task, equally expert programmers and the Amiga, the Macro Assembler version will probably run fastest, the C version will probably come in second, Amiga Pascal third and Amiga Basic last.
This type of comparison is worthless. The real point is that some things can be done in Assembly more easily and quickly than in C, and vice versa.
Every programming language has a set of capabilities that make it particularly strong in some aspects, while sacrificing strength in other aspects. BASIC is commonly described as 'quick, but dirty'.
C is often called a 'write-only' language too difficult to comprehend when read.
Assembly language has a reputation for speed, as well as difficulty.
Many things can be done quickly and easily with the Amiga Macro Assembler, Amiga (Lattice) C, Amiga Basic and Amiga (Cambridge) Lisp that can be done only with considerable difficulty in Pascal (on the Amiga or any other machine).
Therefore, why hasn't Pascal become the Latin of programming languages?
By Michael McNeil Pascal is a computer programming language pioneered by Niklaus Wirth during the late 1960's and early 1970's.
Wirth intended Pascal to be a good first language for people just learning to program. Because it was designed as a beginner's language, Pascal has a relatively small number of concepts to learn.
Wirth's concentration on easy implementation made the task of writing a compiler for Pascal relatively easy and, accordingly, Pascal quickly became available on many different machines. The real strength of Pascal is that it forces a programmer to write with a style that time has shown to be good, standard programming practice.
Amiga Pascal is actually MCC (Meta- comco) Pascal 68000 and meets the ISO (International Standards Organization) standard 7185. 68000 represents the Motorola 68000 central processing unit used in the Amiga and other quality computers. In order to comply writh ISO standard 7185 (and thus carry the name Pascal), Amiga Pascal had to meet or exceed a set of standards which define Pascal as a language.
One of the goals of standardizing a language is program portability. Ideally, you should be able to enter the source code of an error-free Amiga Pascal program on some other machine and compile it and run it without error. That is an admirable goal. Think about it. Can you do that with Amiga Basic?
If you try Amiga Basic, you can't run programs written in the earlier ABAS1C without considerable changes. Both call themselves BASIC, both arc languages for the Amiga, yet neither works with the other. Guess what? Within certain limits, an Amiga Pascal program can be entered, compiled and run on other machines without error and without changes.
Amiga Pascal, like any Pascal, forces you to do something that other programming languages don't force you to do. You must think the programming task through before you enter the code.
The design process of any programming project is critical to efficient code. Too many languages encourage you to design your programs well (without telling you what that means), while allowing you to develop bad habits. Not so with Pascal.
Here's an example. In Amiga Basic, you can begin your program with the "main" section of code. In that main section, you can make calls to subroutines. The code for those subroutines can then be entered, after the main section of code. Provided there are no syntax errors or logical errors, your program will run fine and produce valid results, it may even seem to run fast, but because you've been allowed to be inefficient by the language, you've built that inefficiency into your program. It may seem perfectly natural to place the subroutine code after the main section of your program, but you
must remember how the computer sees the world.
Let's say you've written a program to compute a number raised to the power of three. Your main section gets the number to be cubed from the user and passes the continued... input to a subroutine that computes and returns the cube of the number. The main section then displays the result on the screen.
In execution, the Amiga follows your instructions precisely. It gets the number from the user and then encounters the instruction to pass that number to the subroutine. At this point, inefficiency creeps into your program.
The Amiga knows which instruction it is attempting to follow, so it can "remember" where to return to in your program after it finishes the subroutine. The Amiga doesn't know where to find the subroutine, though, so it must search for it.
Ever hear the phrase, "Begin at the beginning?" In most cases, that's exactly how a computer finds a subroutine.
Beginning with the first line of the program, the computer examines each line of the program until it finds the subroutine. Sure, the examination process is very fast, but it does take some amount of time to examine each line. The sooner your subroutine is found, the faster your program runs. This example is only one of the many aspects of efficiency in programming.
Pascal gives you no option. You must enter your subroutines (called procedures or functions), followed by the main section of your program, if you try to switch the order, your program will not be accepted by the compiler.
Because you must enter your subroutines first, you must have a very good idea of exactly what they are, and where they fit in the overall scheme of your program.
You have no option. You have to think the program through before you type it in.
Amiga Pascal measures up very well against the ISO Pascal standard. Perhaps too well. One of the unfortunate side effects of standardizing a language is that any version of the language inherits the shortcomings of the standard. As time goes on, the "standard" falls further and further behind the times. Considering the fact that the Pascal standard has been around since Yvirth designed the language in the early 70's, it is not surprising that Amiga Pascal has no built in facility to explore the Amiga's powerful audiovisual features. You might expect Amiga Pascal to be standard Pascal, plus
some added facilities to explore the unique features of the Amiga. Not so.
It's not that the developers didn't think about adding capability to Amiga Pascal.
Version 1.0 includes the directive EXTERNAL (see table). The errata says the directive isn't implemented in version
1. 0 and even if it were implemented, you would have to do some
things that the manual doesn't mention (like buying the Macro
Assembler just for Amiga.lib, which wasn't included with Amiga
The next step is documentation. There is such a thing as too much documentation and Amiga Pascal made sure to avoid that shortcoming. The thin manual supplied with version 1.0 basically states that it is not intended to be a primer or tutorial of the Pascal language and that no prior knowledge of the Pascal language is assumed (I'm not sure if they really thought about that, if they assume you don't know Pascal, wouldn't tutorial- style documentation be appropriate?).
In any case, you should not try to learn Pascal from this manual. Many things relating MCC 68000 Pascal to the Amiga aren't stated very clearly, such as: You should enter your source code using the CLI Ed (or Edit if you prefer a single line editor) or some other editor. There is no "extension" required on the source code filename, but filcname .pas is commonly used. The manual doesn't include instructions for using CLI or Ed, even if you figure out that you should use an editor.
Assuming you already know that Pascal is a compiled language, and that your source code must be compiled into object code, and that the resulting object code must then be linked to the Amiga operating system before the program can be run, you must know exactly how to go about accomplishing that task on the Amiga. You won't find a well-written description in the manual. Many unspoken assumptions arc made. The errata helped, magazine articles helped some more and the Macro Assembler manual helped even more, but clarity was still lacking.
It should be easy to write instructions telling you how to run your program after it has been compiled and linked; the process is simple. While in a CLI window, type the filename of linked program file and press return. DO NOT type RUN before the filename. DO NOT type EXECUTE before the filename. Just type the filename. This tip might save you a day or two of trying to fix a perfectly good program.
Although the documentation is unexpectedly frustrating, you will eventually realize that what the manual states so incomprehensibly is also stated correctly.
You just won't discover this fact until you have succeeded in compiling, linking and running a program on your own.
The manual proclaims itself a reference manual for MCC 68000 Pascal. An index would seem to be an appropriate item in a reference manual, whether it is assumed that the user knows Pascal or not. There is no index included here. Even if you know what you want to look up, it is going to take you quite some time to find it.
In all fairness, I am writing this article from the vantage point of hindsight. I suspect that the documentation problem lies somewhere in the original Amiga development effort. It is difficult for someone to develop documentation for one part of a large project, while someone else develops the documentation for another part, and yet a third party develops the documentation that draws it all together. Some ambiguity in each part should be expected.
Continued... UNCLE D'S CON SOUND* TRATION A game for children using the AMIGA'S great sound and graphics. In this modern version of the old favorite concentration game, your child must match a picture with the correct sound... sounds such as musical instruments, home sounds, animal noises, and environmental sounds.
One or two players.
Four play levels.
Three different games... PICs, ABCs, 123s.
Randomly generated gameboards.
Easy to recognize digitized sounds and colorful artwork.
Helps build ear-eye-hand coordination.
Requires no reading skills.
May be too hard for most adults!
A challenge for young & old alike.
UNCLE D'S CON*SOUND*TRATION $ 39.95 ALOHAFONTS VOL 1 $ 19.95 ALOHAFONTS VOL 2 $ 19.95 At your dealer now.
OR ORDER DIRECTLY FROM: ALDHAFDNT5 TM AlohaFonts, P.O. Box 2661, Fair Oaks, CA 95628-2661 Please include $ 2.50 shipping and handling for each item.
California residents please add 6% sales tax.
Good news, bad news Commodore Amiga is working on an upgrade to Amiga Pascal, They were kind enough to let me work with a copy of what they have so far. The EXTERNAL directive works, but not as I expected from the documentation. No new documentation wras provided with the upgrade they sent to me. I w'as still saddled with the old stuff, just fewer errata to be concerned with. So far, the upgrade only goes as far as trying to make Amiga Pascal perform in accordance with the documentation for the original version.
The direction that upgrade plans will finally take has not been decided. Those plans will be announced soon. I cast my vote fora full-blown Amiga Pascal, complete with the tools to enable the "good stuff," and good, thorough, tuturial-stylc documentation. Commodore also hinted that a reunion between Commodore and Motacomco might be part of the upgrade announcement.
At Commodore's suggestion, 1 tried calling Motacomco to ask them about the status of theiT other Pascal package for the Amiga which is independent of Commodore's Amiga Pascal. Apparently, Motacomco has gone home to England; they no longer have an office in the U.S.. If you want to call Motacomco, call the operator at 800-654-9812 and let her know that you are trying to dial 408-438-
7201. You'll be given Metacomco's overseas number and address.
In conclusion, Amiga Pascal is a very good implementation of the Pascal language. The real weaknesses of Amiga Pascal version 1.0 are its failure to explore the special power of the Amiga and poor documentation.
(Note: If you are taking Pascal as a course in school, the following table may help convince your instructor that Amiga Pascal is suitable for homework assignments. Instead of competing for time on the school's system, you could be doing the assignment at home on your Amiga.)
¦AC- Table of Amiga Pascal RESERVED WORDS, SYMBOLS, IDENTIFIERS AND ARRAY BEGIN CASE CONST DIV DO DOWNTO ELSE END FILE FOR FUNCTION GOTO IF IN LABEL MOD NIL NOT OF OR PACKED PROCEDURE PROGRAM RECORD REPEAT SET THEN TO TYPE UNTIL VAR WHILE WITH -f = - ( ) * ) A : = ( , , := * - ) FORWARD ABS ARCTAN BOOLEAN CHAR CHR COS DISPOSE EOF EOLN EXP FALSE GET INPUT INTEGER LN MAXINT NEW ODD ORD OUTPUT PACK PAGE PRED PUT READ READLN REAL RESET REWRITE ROUND SIN SQR SORT SUCC TEXT WRITELN Notes TRUE TRUNC UNPACK WRITE
• Compile-time LIST option, errors warnings interspersed with
source code in resulting file.
• Implementation; level Oof ISO 7185 (BS6192) standard
• Data Types supported;
• Simple
• Integer • Real
• Character • Boolean
• Extensions to ISO standard:
• RESET and REWRITE extension allowing internal files to access
external files. External file name(s) may be passed at run
• INCLUDE, allowing source code of modules to exist in their own
tiles, for inclusion at compile time.
• EXTERNAL, allowing programmer to reference (the object code
of) other programs as modules of this program. Not implemented
in Amiga Pascal version 1.0,
• Structured
• Enumerated and ordinal sub-range(s) of
• Sets
• Arrays
• Records
• Pointers
• Files
• Sets can contain up to 250.000 elements.
• Set operators; test on equality test on inequality = test
left set is subset of right set = test right set is subset of
left set IN test far membership in set form Intersection of two
sets + form union of two sets form difference of two sets
AMAZING REVIEWS AC-BASIC Compiler J Overview Part II Ed Note:
The first article in this series, "AC-BASIC Compiler, Part I"
(V 2.9, p.
64) , listed the current Absoft AC-BASIC compiler as release 2.1,
The current release from Absoft is actually version 1.2. We
apologize for any inconvenience caused by our error.
Last time, wc discussed the AC Basic package. We also discussed its compile time options, extensions to the AmigaBasic language, metacommands and the (very few) differences from the Ami- gaBasic interpreter. Finally, we touched upon some of the more annoying current problems and finished up by recommending that serious Basic programmers (who don't mind a few frustrations) purchase the compiler, while others wait for a release or two.
(We also stated that ultimately, every AmigaBasic programmer will want a copy of this compiler in his library).
Compiler Output Even though the compiler is very rapid, it manages to keep up a continuous stream of output to keep you advised of its progress. This output is directed to the monitor and is referred to as compiler statistics. Of course, the primary output is the machine language version of the program which is written to the current directory.
The statistics start immediately with "0: file-name," where "filename" is the name of the program you are compiling.
This initial line is followed by: " : nnnn," where "nnnn" is a running count of the program lines processed.
(N.B. this figure bears no relationship to any Basic line numbers present in the program).
By Bryan Cathy Once a single pass has completed, the following statements will be displayed on the screen: 0: file-name 1: Symbol table complete Memory usage: Labels nnnnnnnn bytes Symbols nnnnnnnn bytes Total nnnnnnnn bytes Excess nnnnnnnn bytes Source nnnnnnnn lines 2; 00000 "Total" and "Excess" provide the most useful information. These figures allow you to adjust the amount of work space (set by the slider on the Control Panel remember?) Made available to the compiler, If you make use of the multitasking ability of the Amiga, these values will help you utilize your memory to its best
advantage. Should you single-task your Amiga, these statistics may be considered general information.
The second pass now starts and, once again, a running count of the program tines appear against the 2:. Assuming there are no errors, the compiler issues the message: "2: Object file complete."
Next the third, and final, pass starts.
This pass is actually more of a linker pass than a compiler pass. In fact, messages appear to indicate the linking of MAIN and each subprogram (by name) you have in the program.
When this linking pass has been completed, the following additional messages are displayed: 3: Program file complete: nnnnnn bytes Stack Size: nnnnn bytes Elapsed time: m:ss = lines rninute Note the program size is only the amount of memory required to store the program; it docs not include memory required by dynamic arrays, custom screens and windows, file buffers, etc. The stack size is of particular importance to CLI users. The default stack size for any program is 4000, and if a program requires more than this specified amount, the result is almost always a system crash. Therefore,
CLI users must use the STACK command appropriately. Workbench users need not concern themselves with stack size, since it is all handled automatically.
Once the compile is complete, an "iconed" program results, which can be run by double-clicking on the icon or by typing its name at a CLI prompt.
Neither the AC Basic compiler nor the AmigaBasic interpreter need be present!
However, if you did NOT select the R compile time option, you will need the run time library (if you did select the R compile time option, the program is COMPLETELY independent).
If errors are detected during the compile, 2: is bypassed, and 3: becomes an error report. A compile time error report which looks like: error in line nnnnn (xxxx); qq - text nnnnn is the physical line number xxxx is a reproduction of a portion of the erroneous program line qq is an error number which may be looked up for further information in the provided documentation text is a brief description of the error continued... only thing I would add to this comprehensive appendix is a suggestion that you, by all means, should include a copy of AmigaBasic on ANY disk on which you have AC Basic
When you start compiling your own programs, you may very well end up with perfectly valid syntax errors that you never expected to see! Remember, the interpreter only looks at statements as they are executed; if a statement is never executed, the interpreter can never check it. However, the compiler checks EVERY statement within the program, giving syntax errors wherever appropriate!
Compiler Times As indicated a little earlier, AC Basic is really a combined compiler and linker.
Passes 1 and 2 do the compiling, while pass 3 docs the linking. All this work is done very rapidly. Don't expect to be going for a cup of coffee while waiting for a compile to complete with AC Basic!
Opt Csize Cstack Size Stack Time Lets Min CT 6912 4468 7648 4468
4468 1:29 223 Program Hello T 6096 4468 6832 4468 025 796
[3321ines] TU 6072 4876 6808 4876 028 711 RTU 6072 4876 48328
0. 32 622 nrt 7780 4468 50036 4468 1:27 228 The following tables
represent various compile times for the given 332 line sample
program ("Hello") and the 909 line "Houselnv" program (see
Amazing Computing Volume 2 Number 4).
Since the compiled programs may be executed by double-clicking, information produced by the INFO Workbench option is also included.
CNT 53264 4706 54000 4706 1:06 826 Program Houselnv CNTR 53264 4706 95320 4706 2:14 407 (909 lines) NT 4830-4 4706 49040 4706 1:06 826 NRT 48304 4706 90560 4706 2:16 401 Program House I nv (UsingDIM STATIC where possible) CNT 53664 6730 54400 6703 1:05 839 CNTR 53664 6730 95920 6703 2:16 401 NT 47920 6730 48656 6703 1:07 814 NKT 47920 6730 90176 6703 2:15 404
* The Csize figures obviously do not include the size of the run
time library when the R compile time option is chosen.
• Since "Houselnv" makes use of ON MOUSE and ON MENU statements,
the use of the N compile time option is mandatory.
My biggest complaint with all this info is that "xxxx" is usually too brief to be recognizable. It becomes very difficult to find and correct the statement in error, especially when the error occurs towards the end of a large program!
Further, most original AmigaBasic programs don't use line numbers, so "nnnnn" may not be very useful, unless you already have a complete listing and are willing to do some mathematics.
Very frequently, it is necessary to recompile with a full list directed to disk, which is then "browsed" or printed. (A situation which is not that uncommon in the main frame world).
I think it may help to expand "xxxx" to show the entire program line, even if it means a two line error message. Other than that slight help, I'm not sure what else might be done to improve this particular situation.
The disk files produced by the compiler are named as the program being compiled, but the executable program is given a ".run" suffix and any list file is given a ".1st" suffix.
This ".1st" file may be printed by selecting "Print" from the compiler's project menu. N.B. At this time, the ".1st" files are not given icons, making them very easy to forget!
Using the Compiler for the First Time When you first use the AC Basic compiler, you might as well compile the sample program "Hello" right from your initial backup disk, as the documentation suggests.
This program uses graphics to "rotate" the letters in the word "ABSOFT," and may be used to try out all the various compiler options. Additionally, running the compiled version, and then running the same program under the interpreter will give you a pretty good idea of how much faster compiled programs actually run!
Installing the Compiler for Day to Day Use Almost certainly, you will want to set up a special AC Basic work disk, whether it be a special Workbench disk or (as I have things set up) an individual work disk (it's up to you and your hardware configuration). This disk will be your "working" disk. Appendix H of the AC Basic documentation provides all sorts of information for custom installations, including hard disks. The Moving?
Subscription Problems?
Please do not forget to let us know.
If you are having a problem with your subscription or you are planning to move, please write to: Amazing Computing™ Subscriptions Questions PiM Publications Inc.
P. O. Box 869 Fall River, MA 02722 Please remember, we can not
get your magazine to you if we do not know where you are.
AC FORTRAN™ Mainframe quality, full feature ANSI FORTRAN 77 compiler includes: Debugger, Linker, Library Manager, Runtime Library, IEEE math, and C interface. Supports Complex numbers, Virtual arrays, Overlays and Linking.
Not copy protected. $ 295.
Version forCSA 68020:6SS81 Turbo board also available $ 495.
AC BASIC"' From the authors of Microsoft BASIC compiler for Macintosh, comes AC BASIC for the Amiga.
Compatable with the Amiga B.ASIC interpreter: has more features and includes BLOCK IF, CASE statement, and STATIC keyword extensions and executes up to 50x faster. AC BASIC is the new BASIC reference for MC6S000 based personal computers. Not copy protected. $ 195.
AU9ss:l L Trr[Smr , 0 . . ,, - ielephone orders welcome Scientific Lngineering Software (CSize and Cstack represent statistics produced by the compiler; Isize and Istack represent information produced by the Workbench INFO option).
Run Time Errors As with any language, the fact that a program compiles correctly is no guarantee that it will run correctly. Ami- gnBasic is no exception. To handle this likely situation, AC Basic provides a number of run time error messages, rather than just terminating the program in a rather ungracious manner. The format of these messages is as follows: Error n at 11111l Click Mouse 'n" is an error number (check Appendix
- in the supplied documentation for nore information) and "11111"
is a )hysical line number within the pro- ;ram. This last
format is only used chen the "N" compile time option has een
Since it can be a somewhat difficult to find a specific physical line number within a program, it is probably advisable to develop and test a program using the interpreter. Then,switch to the compiler only when you are sure the program is functioning the way it should. (But, be prepared to encounter some errors wrhich the interpreter didn't catch!)
AC BASIC Compiler Bugs As I have already indicated, I have J ' encountered a number of bugs in the process of putting this review together.
It is only fair that I share them with you: Compile Time Bugs
• If the compiler runs out of wrork space during the compile, it
leaves its work files open. This quirk means these w'ork files
cannot be deleted, nor can the compiler be used again. A
re-boot is the only way to get rid of the offending files.
• I received a syntax error on a statement using several pairs
of parentheses when, in fact, there was no error.
• If a program is compiled without the U option, or without using
DIM STATIC, and is then recompiled with cither of these
options, the INFO stack size information is not updated as it
should be. This difficulty means the program will probably
crash if started from the Workbench. To correct this situation,
click in the INFO stack size box, update it and save. Your only
other option is to erase the program from disk before
recompiling (This bug may be an Amiga bug of some sort, rather
than an AC Basic bug ... in any event, you need to be awrare of
Continued... AMAZING COMPUTING V2.10 © 1987 3 Run Time Bugs This category is, by far, the most interesting!
• Multiple mouse clicks (in a gadget, for example) are sometimes
necessary before the click is recognized.
• A program making extensive use of the mouse may freeze at some
point during its use. Sometimes, my mouse would freeze quickly,
sometimes it would take awhile. Sooner or later, though, it
would freeze, forcing a reboot. This problem only occurred
with one program.
• If a program defines a menu writh a certain number of items,
and later redefines that same menu with fewer items, the
excess menu items from the original menu remain. Selecting one
of these excess items crashes the system.
• A number of demonstration programs, which made extensive use
of operating system calls, resulted in a blank window and
screen (i.e. no icons) when terminated. There was no option,
but to re-boot. A variation of this problem was a "Software
Error" requester. The net result, however, was the same.
• When using animation, collision detection occurred at the edge
of the window, rather than where it was supposed to happen.
• Mouse clicks were not detected correctly when multiple
windows are open.
• The Tcxt& function does not recognize screen positioning from
a previous PRINT PTAB statement. For example, with the
following two statements: PRINT PTAB(2Q);:CALL Text&(RP&Abe"
,3) "Abe" ends up in column one of the following line, rather
than 20 pixels from the left of the current line.
• Not a bug, but... The SORTSUBS utility program (which
rearranges subprograms scattered throughout a program), and
which is provided as part of the package, spends much time
manipulating statements without any screen output being
generated. With a larger program, it is very easy to think the
whole machine has just died! I believe an occasional
"Working..." message directed to the screen would be very
reassuring for many users.
Absoft is aware of just about all of the above problems, and many of them, if not all, will be corrected in an upcoming maintenance release (which, I believe, will be free to REGISTERED users).
While it cannot be classified as a bug, there is one other quirk which fully concerns me the size of the compiled module. As far as I am concerned, you should save some memory when you compiling a program which has previously been used with an interpreter.
After all, there is no need for the memory used by the interpreter itself, and surely the compiled code should require less memory than the combined source code and the interpreter? With the case of AC Basic compiled programs, this case apparently does not hold true. Indeed, some programs which just fit (and work) with the interpreter, will run out of memory when a compiled version is executed.
I would gladly accept increased compile times, if the size of the resulting program module could be reduced.
AC BASIC Documentation While not perfect, the documentation which accompanies AC Basic is excellent. Chapters 1 to 6 document the compiler, how to use it, extensions, etc. Chapters 7 to 18 are an AmigaBasic reference manual, sequenced by usage.
Appendices A through I cover a number of pertinent topics, including compile and run time error messages, installation notes, calling assembler language subroutines, etc. Remember, many complete examples are sprinkled throughout the manual and all of them are on the distribution disk in drawers labeled by Chapter number. My biggest complaints regarding the documentation are really nit-picking comments, but they arc worth noting.
First, the pages are very busy. Lots of information is crammed onto each page and it is often difficult to find the exact information you are looking for. Second, the index must have been created from an earlier version of the documentation. Many times, I found information on a different page from that indicated in the index. Third, and last, dividers between the compiler section, the reference section and the appendices would really be beneficial and appreciated.
Overall, you will be hard pressed to find better, more complete documentation for any product.
Some Final Comments The AC Basic compiler has the potential to be one of the most important products ever released for the Amiga. It is not quite there yet, but once the outstanding bug list has been reduced to an absolute minimum (remember, all compilers on all computers have outstanding bug lists for most of their lives), and once the size of the compiled code has been reduced, every serious AmigaBasic programmer will want to own a copy of AC Basic.
When you buy AC Basic, RECISTER your purchase immediately. Call Absoft's Technical Support number when you have problems, but please don't expect Absoft to debug your program for you!
AmigaBasic programmers could be in a very enviable position. Very few others will be able to combine the advantages of interpretive development with the independence of compiled production code. Use it to your advantage!
• AC- AmigaBASIC Structure How lines of BASIC code are
represented internally by AmigaBASIC and more... by Steiw
Michel This article takes another step down the AmigaBASIC road
by shedding light on structure. This discussion is not
definitive, but rather a smattering of details from the innards
of the Amiga.
The AmigaBASIC DECODER, shown in Listing 1, illustrates how lines of BASIC code are represented internally by AmigaBASIC. DECODER reads and analyzes a specified program file from disk. Earlier versions of DECODER tried to analyze the program from RAM memory while the program was resident in the AMIGA. This method proved too slow and cumbersome, though, because the architecture of the Amiga is so radically different from most other machines.
Early PET computers loaded BASIC programs into memory starting at a constant address. This constancy made life a lot easier for both the operating system and the explorer. The Amiga allocates memory dynAMIGAlly to different tasks as it secs fit. AmigaBASIC is no exception. One consequence of this process is that the starting memory location of a loaded BASIC program may be anywhere in memory, depending on such factors as number of disk drives, whether a CLI window is currently available or how many other multitasked programs arc active.
When DECODER runs, it asks for the name of the file to be examined, whether to output the whole file or just the variable tabic and, finally, if screen or printer output is desired. DECODER then displays program information in a format similar to Figure 1.
The example output consists of twelve lines of numbers that show the internal representation of each of the twelve lines of the AmigaBASIC program listed in Figure 1. DECODER produces only the lines of numbers. The reference line numbers at the beginning of each line and the explanatory line description notes below the number lines were manually added after DECODER finished running. The output in Figure 1 reveals that the structure of each line of AmigaBASIC adheres to the following general format.
Bytes and end of line markers. The second byte specifies the number of spaces to be INDENTED when the line is listed to the LIST WINDOW or printer. This arrangement represents good memory management indented lines do not consume bytes of memory for each space, but rather a single byte counts all indentation. For example, if a line is indented ten spaces and actual spaces are used, nine bytes of memory are wasted.
In a large program, such squandering of memory can be costly.
• The tokenized form of the line occurs next. If you are not
familiar with tokens, a token is a number that represents a
BASIC keyword. For example, the keyword PRINT is not stored in
memory as the letters 'F 'R' T 'N' T (which would consume 5
bytes of memory), but rather is converted to a specific number
(let's say 158 for the sake of illustration). This
keyword-to-numbcr conversion process occurs as each line is
entered into the LIST WINDOW. This number, through another
translation process, produces the effects of the PRINT
statement when the program is executed. Such tokenization
accomplishes two important points: 1) memory conservation, by
using one or two bytes of memory for the token, instead of one
byte for each letter. 2) speeding up the execution process.
In previous versions of Commodore Microsoft BASIC, the tokens were one byte in length, similar to lines five (FOR =
148) and six (IF = 152). AmigaBASIC, however, has over half of
its keywords represented by two byte tokens, similar to line
three ( CLS = 248 131). I'll take the easy way out and say
that the reason for two byte tokens is beyond the scope of
this article (In other words, 1 don't have the foggiest idea
why two byte tokens arc used. A single byte would easily
handle the 196 possible keywords. Maybe someone else out
there would be kind enough to fill us in on this one. Is
anyone at Microsoft listening ?).
• Finally, each line ends with two consecutive zero bytes shown
as 'EOL.' Incidentally, the term 'SF indicates a space and
'PTR' indicates a pointer.
A closer look at Figure 1 reveals a few other facets of AmigaBASIC: continued... TxEd Version 1.31 Here's what the reviewers said about TxEd VI.3: "What do i like about TxEd? Just about everything, it's fast.
It's easy to use." - Bruce Webster, BYTE Magazine ". . . A very' good editor and an excellent value"
- Jan & Cliff Kent, Amazing Computing TxEd VI.31 is our new
European support release. Coming this fall, TxEd Plus. All the
speed and simplicity that has made TxEd the text editor of
choice for thousands of Amiga owners, Plus POWER!
TxEd and FastFonts owners be sure to return your registration cards so we can notify you of updates!
TxEd V 1.31 $ 39.95 FastFonts V1.02 MICROSMITHSINC. $ 29 9S
P. O. Box 561
P. O. Box 561 Cambridge, MA 02140 (New Low Price)
(617) 354-1224 Mass. Residents add 5%.
BIX: cheath CIS: 74216,2117 €3
• BLANK LINES - as shown in lines one and twelve; use four bytes
of memory (true for all blank lines).
• VARIABLE AND LABEL NAMES - are not stored directly in the BASIC
text area, but rather are stored in a variable table at the end
of the BASIC text. The end is denoted by two consecutive
zeros in the line LENCTH and INDENTATION locations.
In the AmigaBASIC program, variable and label names arc represented by either three or four byte pointers. These pointers determine which variable or label will be accessed in the variable table. Three byte pointers are used for variables and labels, while four byte pointers arc used for labels following THEN or COTO statements. For example, the variable X in lines four and five is represented by the pointer 1 0 1. The label BEGIN in line two has the pointer 2 0 0, while ALLDONE in line ten has the pointer 2 0 4.
The four byte pointer in line six (3 0 0 4) indicates that the label ALLDONE follows a THEN statement. The first byte of the pointer indicates the pointer's TYPE. 1 denotes a VARIABLE pointer, 2 is a LABEL pointer and 3 is reserved for LABELS following GOTO or THEN statements. The last two bytes of the pointer indicate the variable's POSITION in the variable table. AmigaBASIC uses this POSITION value to determine which variable or label is currently in use.
A pointer of 1 0 1 is interpreted as a VARIABLE (first byte =
1) occurring in the second location of the variable table (0 1).
Remember, the first location denotes position zero (0 0). The use of two bytes for the table position means that an Ami- gaBASlC program has a limit of 65536 (256 2 256) total variables and labels (I think wc can all probably live within that restriction).
• The VARIABLE TABLE is an integral part of the program which is
loaded and saved as part of the BASIC program.
When a label or variable name is entered into a program, its name is added to the current end of the table. Each variable in the table is preceded by a single byte (denoting the length of the variable name) and followed by the ASCII codes of the characters used in the variable name. Any variable type descriptors (S, %, ft, !, etc.) arc also stored at the end of the variable name. In the sample program in Figure 1, the variable table (BEGIN, X, Y, Z, ALLDONE) actually look like: 5, 98, 101, 103, 105, 110, 1, 120, 1, 121, 1, 122, 7, 97, 108, 108, 100, 111, 110, 101. These values are in decimal
form and can be found on page A-2 of the AmigaBASIC manual.
This table seems rather straight-forward, but some strange things may happen. Variable names are placed in the table as soon as they are entered into the program via the LIST WINDOW editor. Once a variable name has been placed in the table, it COULD be there forever. Even if a variable is completely removed from the program, it is still retained in the variable table. Theoretically, you could write a program with 100 variables, each using the full 40 character name length, thereby creating a variable table of 4100 bytes. All but a single REM statement could then be deleted from the program,
but the variable table would still be 4100 bytes long !!! Variable and label names are probably retained for one very important reason... speed. More about this point in a moment.
Fortunately, there is a way to "clean-up" the variable table.
The trick is to save the BASIC program using the ASCII option, then re-load the newly saved ASCII version and re- savc the program as a regular BASIC program. This process removes any variables that are no longer being used and puts the variables in the order they are encountered in the program, from top to bottom (chronologically, if you will).
Saving a program in ASCII format produces an "un-token- ized" version of the program that can be loaded into a word processor and edited like any other document. In this case, the variable table is not saved with the file. When this ASCII file is loaded, Amiga BASIC must rebuild the variable table from scratch, resulting in a nice, "clean" variable table. To save an AmigaBASIC program as an ASCII file, save the file as follows: SAVE 'filename', A Why did Microsoft opt for allowing the variable table to get cluttered with discarded variables? Removing a variable from the table requires moving
all the variables up one position, filling the deleted variable's former location. This task requires that every pointer within the BASIC text be updated to reflect its new position within the recently revised variable table. This job is a big one and could take a considerable amount of time, depending upon the size of the BASIC program. In this trade-off between speed and a "clean" variable table, Microsoft opted for speed.
Since we are now aware of this situation, saving as an ASCII file and re-loading every now and then to help un-clutter is a good habit to get into when developing a new program.
Now that we've seen the inner workings of AmigaBASIC, what can we do with our new found knowledge? One useful application w'ould be a compacting program to run through a program, stripping REMs, apostrophes and blank lines, while left-justifying each line along the way. Sure, this solution runs contrary to good, structured programming style and documented code, but faster execution speed or a reduction in size may well warrant such action. A compacting program is provided in Listing 2.
This program prompts the name of the file to be compacted and the name of the new compacted file to be constructed. A new file is created, so the original is left intact for further work. COMPACTOR itself is heavily documented, but a few comments and explanations may be helpful.
Each program file contains two leading bytes, 245 (SF5) and 0 (S00). These bytes identify the file as an unprotected AmigaBASIC program and arc copied directly over to the new file (These bytes are changed to 244 (SF4) and 194 (SC2) when the BASIC program is saved as a protected file. . . But that is another story).
Continued... Figure 1 Original AmigaBASIC program: V, 1) 2) 3) 4) 5) 6) 7) 8) 9)
12) begin: CLS x= l:y = 5 FOR z = x to y IF SIN(z) = 0 then
alldone print SINCz) NEXT z alldone: END LENGTH Decoded
program: INDENT EOL = end of line SP = space PTR = pointer V
1) 4 V 0 0 0 (blank line) EOL
2) 8 0 2 0 0 58 0 0 begin PTR : EOL
4) 20 2 1 0 1 32 234 32 18 58 32 1 0 2 234 x PTR SP = SP 1 : SP y
SP x PTR SP TO SP 1 0 2 32 0 0 y PTR SP EOL
6) 23 4 152 32 181 40 1 0 3 41 32 234 32 17 32 IF SP SIN ( z PTR
) SP = SP 0 SP 230 THEN 32 3 0 0 4 0 0 SP alldone PTR EOL
9) 4 0 0 0 (blank line) EOL
10) 8 0 2 0 4 58 0 0 alldone PTR : EOL
12) 4 0 0 0 (blank line) EOL VARIABLE NAMES TABLE begin x y z
alldone . J COMPACTOR opens two program files, reading
from the file to be compacted and writing to the compacted
file. Beginning at the label LOOP: (if it is not the end of
the BASIC text), a complete line from the first file is read
into the array byteSO.
This line is then scanned for BLANK lines, leading apostrophes and embedded REMs or apostrophes. Once a line has been analyzed, the byteSO array is adjusted at label SETUP.LINE to contain the correct information for the newly formatted line.
This line is then written to the second file.
This process continues until the end of the first BASIC file is reached. At that point, the label END.OF.BAS1C takes over and correctly finishes up the second file's end of basic markers.
F1N1SH.UP copies the variable table and the icon for the BASIC program, so that a "clickable" compacted program is produced.
The number 175 is represented differently in two different places (as 174+1 and once as 7*25). This discrepancy is necessary because the number 175 also represents the token for the keyword REM. This duplicity confuses COMPACTOR because the number 175 also appears internally as a 175. Thus, COMPACTOR does not know the difference between a 175 that stands for a REM token and a 175 that stands for the number
175. The workaround assures that any programs that include the
constant 175 are "fixed" in some way. Either method, 174+1
or 7*25, works fine. Both arc illustrated to show that
several options arc available to alleviate this problem.
The last oddity MICROSOFT included (just to drive us nuts!)
Deals with the byte counters that appear in COMPACTOR. The early versions of COMPACTOR worked only about 50 percent of the time and the problem wasn't easily apparent. Everything looked fine. A flip of a coin seemed to determine whether the compaction was successful or not. The solution was finally tracked to the area between the end of BASIC text (indicated by two consecutive zeros) and the variable table discussed above.
For whatever reason, programs containing an odd number of bytes of BASIC text start the variable table immediately after the end of BASIC. Programs with an even number of bytes of BASIC text insert a single byte between the end of BASIC and the beginning of the variable table.
This strange fickleness meant that the early version worked if an odd to odd or even to even byte compaction occurred because the compacted file would follow the same structure as the uncompacted file. If an odd to even or even to odd byte compaction occurred, some mighty strange things happened.
Hence, the fifty-fifty success ratio.
This version of COMPACTOR counts the number of bytes coming in from the original file. If an even number is counted, the extra byte before the variable table is read and thrown away. If an even number of bytes has been written to the compacted file, an extra byte is added before the variable table (I used the ASCII value of the letter "J" for a friend who first suggested the even-odd possibility). The value of the spacing byte is irrelevant; it just has to be there! This phenomenon may be involved with something called 'even word alignment,' needed for certain modes of the 68000 micropro
cessor. When COMPACTOR runs, the original file length of 4764 bytes is compacted to only 2920 bytes (approximately 40% smaller).
This article has just scratched the surface of AmigaBASIC, but I hope it has provided a start for further explorations. Good luck.
Listing 1 REM AMIGABASIC DECODER REM By Steve Michel decoder: dcS - - " ON ERROR GOTO error.msg CLS: PRINT: INPUT "Enter filename to decode": filenames PRINT: PRINT "Looking for file..." OPEN "I", II, filenames byteS - INPUTS(1,II): byteS - INPUTS (1,II): bytecntr - 2 PRINT: PRINT "Whole listing of just Variable table (W V)" getwv: wvS = INKEYS: IF wvS - "" THEN getwv wvS - UCASES(wvS): IF wvS "W" AND wvS "V" THEN getwv PRINT: print "Screen or Printer (S P)" getsp: g$ = INKEYS: IF gS - "" THEN getsp g$ = UCASES(gS): IF gS "S" AND gS "P" THEN getsp start: CLS: max = 19: WIDTH 80
IF wvS = "V" THEN PRINT: PRINT " BE PATIENT. READING PROGRAM."
LOCATE 6,2: PRINT "READING LINE I : llnecntr - 0 END IF loop: byteS = INPUTS(1,11): bytecntr - bytecntr + 1 linelength = ASC (byteS) IF linelength = 0 THEN listvartable value = linelength IF wvS - "W" THEN GOSUB printvalue FOR j - 2 TO linelength byteS - INPUTS(1,11): value - ASC(byteS) counter = counter + 1: bytecntr ¦* bytecntr + 1 IF wuS = "W" THEN IF counter = max THEN GOSUB indent GOSUB printvalue END IF NEXT j IF wvS - "V" THEN llnecntr - llnecntr + 1 LOCATE 6,17: PRINT USING "1*11"; llnecntr ELSE GOSUB blankline END IF GOSUB pause GOTO loop printvalue: IF g$ = "P" THEN LPRINT USING "* *
";value; ELSE PRINT USING "III value; END IF RETURN indent: max - 17: counter - 0 IF gS -~P" THEN LPRINT: LPRINT continued... THIS MODEM WORKS WITH ANY AMIGA.
• Direct Connect
• External AC Adopter ¦ 6 LED Status Indicators ¦ Auto Answer and
• Hoyes Compatible AT Command Set ¦ Dell 103 212A Compatible
• Tone or Pulse Dialing
• Telephone Connection Jack
• Standard DD25R5 232-C Connector
• FCC Approved We lowered our price.
We give you o great price.. .
+ TOLL FREE ASSISTANCE + IMMEDIATE =' DELIVERY + NO CREDIT CARD 5URCHARGE + NO SERVICE OR HANDLING FEES Thousands of people are now enjoying this high quality Modem.
It is full of features and works with any computer system.
We are offering this special price for a limited time only.
To Order CALL FOR FREE CATALOGUE CREDIT CARDS VERIFIEDFOR YOUR PROTECTION iATO®lrHQCI 800-232-6342 INSIDEUTAH(601)752-2642 FAX(801)752-B752 We'll beat any advertised price.
MEGATRONICS. INC.. P.O. DOX 3660. LOGAN. UTAH 84 321 LPRINT " ELSE PRINT PRINT " END IF RETURN blankllne: IF gS - "P" THEN LPRINT: LPRTNT: LPRINT ELSE PRINT:PRINT: PRINT END IF max = 19: counter • 0 RETURN pause: pauseS - INKEYS: IF pauses - THEN RETURN WHILE INKEYS - WEND RETURN llstvartable: PRINT: PRINT "VARIABLE NAMES TABLE": PRINT IF gS - "P" THEN LPRINT: LPRINT "VARIABLE NAMES TABLE": LPRINT byteS - INPUTS(1,11): bytecntr - bytecntr + 1 IF bytecntr 2 - INT (bytecntr 2) THEN byteS - INPUTS (1,11) WHILE NOT EOF (1) byteS - INPUTS (1, II) : varslze = ASC(byteS) varnameS - INPUTS(varslze,11)
IF gS - "P" THEN LPRINT USING dcS; varnameS; ELSE PRINT USING dcS; varnameS; END IF WEND CLOSE II END error.msg: CLS: PRINT IF ERR - 53 THEN PRINT "That file not found." ELSE PRINT "Error number";ERR END IF END Listing 2 REM Compactor REM By Steve Michel REM get file name to compact CLS: PRINT INPUT "Enter filename to compact";filename.inS PRINT: INPUT "Enter filename for compacted file"; filename.outS OPEN "I", 1, filename.inS, 1029 OPEN "0", 2, filename.outS, 1024 CLS: PRINT: PRINT "Now reading line = " PRINT: PRINT "Now writing line - " DIM byteS(300) lines.in *= 0: lines.out - 0:
bytes.in = 0: bytes.out = 0 REM directly copy file attribute bytes aS = INPUTS (1,11): PRINT 12,aS; aS = INPUTS (1,11): PRINT 12,aS; REM start main read write loop loop: byteS (1) - INPUTS (1,11) linelength = ASC(byteS(1)) IF linelength = 0 THEN end.of.basic REM read in line from input file bytes.in - bytes.in + linelength lines.in - lines.in + 1 LOCATE 2,22: PRINT lines.in FOR J - 2 TO linelength byteS(J) - INPUTS (1,11) NEXT J REM check for blank line byte3 - ASC(byteS (3)) byte4 - ASC(byteS(4)) IF byte3 - 0 AND byte4 - 0 THEN loop REM check for leading apostrophe IF byte3 - 50 AND byte4 -
7*25 THEN loop REM scan current line for imbedded REMs and ' newlength - 0 FOR J - 3 TO linelength IF byteS(J) - CHRS(174+1) THEN newlength " J J - 1E+C9 END IF NEXT J IF newlength - 0 THEN setup.line REM embedded REM found, check for colon in front of it FOR J - newlength TO 3 STEP -1 IF byteS(J) - CHRS(58) THEN linelength - J + 1 GOTO setup.line END IF NEXT J GOTO loop REM this routine sets up the line length. Indentation and REM two zero bytes at the end of the compacted line setup.line: byteS(1) = CHRS(linelength) byteS (2) - CHRS(0) byteS(linelength) - CHRS(0) byteS(linelength-1) -
CHRS(0) bytes.out = bytes.out + linelength lines.out - lines.out + 1 LOCATE 4,22: PRINT lines.out FOR J = 1 TO linelength PRINT 12, byteS (J); NEXT J GOTO loop REM add 2 zero bytes for end of BASIC and check for REM ODD EVEN file lengths and adjust if needed end.of.basic: byteS = INPUTS (1,11) IF bytes.in 2 " INT (bytes.in 2) THEN throwaways = INPUTS (1,11) END IF PRINT *2, CHRS (0); PRINT 12, CHRS (0); IF bytes.out 2 - INT(bytes.out 2) THEN PRINT 2,CHRS (ASC ("J")) ; END IF REM copy variable table and icon files over finish.up: GOSUB copy,rest OPEN "I", II, filename.inS + ".info" OPEN "O",
12, filename.outS + ".info" GOSUB copy.rest KILL filename.outS + ".info.info" LOCATE 6,1; PRINT "All done !" END copy.rest: byteS = INPUTS (1,11) PRINT 12, byteS; IF EOF (1) THEN CLOSE II CLOSE 12 RETURN END IF GOTO copy.rest
• AC- Ennxmnm Bug Bytes The Bugs & Upgrades Column It's late at
night and you are just putting the finishing touches on a
program. After calling up the compiler, you sit back, relax and
wait for the compiler to report on any errors. Out of the
corner of your eye, you spot that dreaded, telltale flicker.
The power LED is announcing the arrival of your friend and
mine, the Guru.
Wondering what is wrong, you calmly reload your program editor and examine your code for the error that prompted the Guru's late night visit.
The code is perfect. After hours of trials and many Guru appearances, you decide there must be a bug in the compiler. What should you do? Let others know of the problem before someone else suffers the same fate.
The best way to let others know of the problem is via this column. I plan report all bugs encountered by Amazing Computing™ readers. I will go a step further by reporting on upgrades, bug fixes and new releases of Amiga software. This column will be interactive. You document bugs that occur in your software and I will try to verify the existence of the bug you describe and pass it along to the software manufacturer.
The program bug is an elusive creature.
He may appear to be in a program, when in fact, he is not. When you come upon a bug, before calling or writing the manufacturer, please:
1. Check, recheck and triple-chcck the documentation that came
with the software.
2. Try to duplicate the bug, noting all actions taken prior to
the bug appearance.
3. Note any other windows that are open, how much memory you have
left and whether or not there are peripherals involved in the
problem. If you are multi-tasking, close off any other tasks
and try to duplicate the bug. If the bug only occurs when
running other software, things get more complicated.
Note the other packages running (the problem could be with them).
4. Make a note of the following information: version or release
number of your software, serial number (or other code that
identifies you as a legitimate user) of your software, Amiga
model number (1000, 500, 2000, etc.), Kickstart and workbench
version being used and the amount of RAM in your system.
List the type and model of any peripherals that are connected to the Amiga at the time of the problem.
Armed with this information, you are ready to begin tracking down the problem. First, call the dealer who originally sold you the program. In many cases, the dealer has someone on staff who is familiar with the software, or perhaps other customers have run into the problem. The dealer may have already found the solution or perhaps he knows of the availability of a bug fix.
It is likely that you will find a previously discovered solution to the problem or it may not really a bug at all.
Many times "bugs" are caused by improper operation of the software.
Call the software manufacturers technical support line, detailing the relevant information above and the sequence of events that leads to the problem.
Industry insiders report that over 75% of reported "bugs" are solved during the initial call. If the support staff cannot immediately solve your problem, reputable companies will research the problem for you. In the meantime, do some homework. Write down the problem in detail (even better, get the public domain program called Journal and record the steps that occur prior to the bug's occurrence). Mail copies of the problem description, the information you gathered on your system and the Journal playback file to the company and to me. I will try to duplicate your results and notify others via
this column.
Readers who have solutions, patches or other knowledge of the problem can report them to me for inclusion in this column. If you have done the leg work on any commercial software packages and found a bug fix, let me know. I will pass along the information to other readers who may be having similar problems.
This column is also an appropriate place for upgrade notices. If you have received an updated version of a software package, especially unpublished updates, please let me know. 1 will verify if the release is for general distribution and notify readers. Bug fix releases will be published here, so that other readers who are having the same problem can be notified that there is a solution at hand.
For software developers, this column is an appropriate place to announce continued... ADD TO THE POWER OF YOUR PROGRAMS WHILE YOU SAVE TIME AND MONEY!
CBTREE does it all! Your best value in a B+tree source!
Save programming time and effort.
You can develop exciting file access programs quickly and easily because C8TREE provides a simpie but powerful program interface to all B+tree operations. Every aspect ol CBTREE is covered thoroughly in me 70 page Users Manual with complete examples. Sample programs are provided on cisk.
Gain flexibility in designing your applications.
CBTREE lets you use multiple keys, variable key lengths, concatenated keys, and any data record size and record length. You can customize the 8+tree parameters using utilities provided.
Your programs will bo using the most efficient searching techniques.
B+trees use efficient search techniques that require fewer disk seeks than other methods. CBTREE guarantees an optimized maximum search path and always remains balanced. CBTREE is optimized for speed. You will be using a commercial quality, reliable and powerful tool. CBTREE is a full function implementation of the industry standard B+tree access method and is proven in applications since f 9S++.
Access any record or group of records by:
• its absolute position in the index (GETFRST and GETLAST),
• ts relative location in the index (GETPRV, G6TNXT and GETSEO),
• an exact match to a key (GETREC}, ¦ a partial match to a key
(GETPAR, GETALL and GETKEYS) ¦ a lexical relation to a key
(GETLT, GETLE, GETGT and GETGE}.
• You may also add, delete and update any record without the need
to reorganize the index (INSERT, ISRTKY, DELETE, DELTKY and
• Block retrieval calls speed up sequential processing.
Increase your implementation productivity.
CBTREE is over 6,000 lines of lightly written, commented C source code.
The driver module is only 20K and links into your programs.
Port your applications to other machine environments.
The C source code that you receive can oe compiled on all popular C compilers for the IBM PC and also under Unix, Xenix, and AmigaDos' No royalties on your applications that use CBTREE. CBTREE supports multiuser and network applications.
CBTREE compares favorably with other software selling at 2,3 and 4 times our price.
Sold on unconditional money-back guarantee.
TO ORDER OR FOR ADDITIONAL INFORMATION CALL (703) 356-7029 or (703) 847-1743 OR WRITE Peacock Systems, Inc., 2108-C Gallows Road, Vienna, VA 22180 updates, upgrades and bug fixes to your registered users and the general public.
Send any listings for this column to: John Sfeiner Bug Bytes c o Amazing Computing™
P. O. Box 869 Fall River, MA 02722 Please include a
sclf-addressed stamped envelope if you would like a personal
You may also contact me via People Link or Genie. My address is: Publisher, on both services.
Finally, this month... Electronic Arts has released 1.2 versions of several entries in their popular Amiga software series. Owners of the original versions may upgrade to the new versions by following the procedures listed below.
Upgrade from DeluxePaint to DeluxePaint II or DeluxeVideo to DeluxeVideo II You can now upgrade to a copyprotected version of cither program for
537. 00 (S30.00 + 7.00 shipping and handling). You must include
the original front cover of your DeluxePaint or DeluxeVideo
manual. If you send your non-copy protected version, you
will receive all new disks and manuals.
To upgrade to a non-copy protected version if your original is copy-protected, enclose an additional S20.00. Upgrade from DeluxePrint to DeluxePrint 1.2 An upgrade to the copy-protected version is available for $ 12.00 ($ 10.00 +
2. 00 shipping and handling). You will receive the new 1.2
compatible program disk. If you send your non-copy protected
version, Electronic Arts will send along the new 1.2
compatible program disk. To upgrade to a non- copy protected
version if your original is copy protected, enclose an
additional $ 20.00. Upgrade from Instant Music to Instant Music
1.2 An upgrade is available for $ 12.00 ($ 10.00 + 2.00 shipping
and handling).
You will receive the new 1.2 compatible program disk. A non-copy protected version is not currently available.
DeluxeMusic Construction Set Update You can upgrade to improved performance with high end MIDI synthesizers and drum machines, plus higher quality printing for $ 7.50. Send the last page of the DeluxeMusic manual (labeled "Notice") and you will receive the new DeluxeMusic disk and addenda to the manual. Send all upgrade requests to: Electronic Arts Amiga Upgrades Box 7530 San Mateo, CA 94403 They ask only that you send check, money order or Visa MC credit card info, and allow 4-6 weeks for delivery.
¦AC* ©ood graphics deserve good screen shots. Let's face it, with 4096 colors and superb resolution, the Amiga™ is an excellent subject for your screen shots (it's also very photogenic). Many people involved with graphics and the Amiga™ don't realize how important and effective good screen shots can be.
After all, they appear almost everywhere magazines, advertisements and software packaging, to name a few.
Taking the Perfect Screen Shot by Keith Conforti AC Art Director Required Equipment Jim Sachs first filled me in on effectively taking screen shots about six months ago, when Steve Hull interviewed him for Amazing Computing V2.4. As a photographer, I immediately picked up on his valuable tips. Unfortunately, taking screen shots requires some photographic skill and some special tricks of the trade. If you follow these simple guidelines, you'll have no problems at all, though. . . Even if you're not a shutterbug.
First, you'll need a 35mm SLR camera.
The camera can be manual or automatic, but if you use an automatic, make sure it is equipped with manual override.
You'll also need a tripod. I recommend Fuji™ 100 ASA color film because it seems to have more vibrant color for this situation.
Using the standard 50mm lens (supplied with most 35mm SLR cameras) to take your shots will result in a print that looks bowed, or convex, much like the monitor itself. For a more professional look with a flatter image, you must use a zoom lens. The zoom lens flattens the image of the screen, if you take full advantage of its zoom capacity. By setting the tripod approximately ten feet away from the monitor and zooming in on the screen, the convexity is decreased, provided your lens is on the same plane as your monitor (keep them even).
Setting Up Your Shot The condition under which you take your shots is probably the most crucial aspect. Have you ever seen a perfectly focused screen shot with rich color, marred by glare or a highlight on the screen. The photographer probably took his shots in the wrong environment, with a door or window open, or a monitor or light on nearby? When photographing a dark, reflective surface, leaving lights on in the vicinity is like playing with fire. The room should be absolutely free of direct light. The room need not be pitch black dim, filtered light is fine, as long as it is angled away
from the monitor to avoid glare. The monitor will reflect any light located in front of it, so be sure that any light in the room is placed behind the monitor.
Set the tripod with the camera positioned horizontally. It's very difficult to take a screen shot vertically, unless you are isolating a portion of the screen (or you like to keep your monitor sideways!). Once you have properly prepared the room and loaded the film, you are ready to go. To focus sharply, zoom in totally and focus until the screen and the lines of pixels are sharp, then zoom back to your desired length.
A good screen shot leaves about one- half inch of cropping space on all sides of a 3 1 2 by 5 inch print.
Before you snap that shutter, you must make one more important adjustment that may sound a little crazy. Turn down the contrast and the brightness on your Amiga™ monitor just enough to reduce the glare of the bright colors on the screen. If you turn it down too much, the colors of the graphics will be altered and some detail will definitely be lost. Shots taken with normal contrast and brightness are very common and easy to spot. Any bright area in the image will be glowing like a neon billboard.
Snapping the Shutter Once you've loaded the film, you must take a meter reading in order to know what aperture and exposure settings will produce the best possible shot.
The Nikon™ N2000 (the camera I use for screen shots) has a state of the art LED meter. Others have the standard ring and pointer meter in the viewfinder. Both work fine, but the Led is much easier to see if the room and image are dim. Jim Sachs recommends an aperture setting of F-stop 4 and exposure of 1 4 second. Depending on the luminescence of the graphics, you may need a different setting. However, no matter what the settings are, no matter what the subject of your photography is, you should always bracket your shots.
Continued... The Mysteries of Bracketing To bracket a particular shot, first take a meter reading and set the aperture and exposure (shutterspeed). Takeoneshot at this setting, then increase the shutter speed by one increment, shoot, decrease it by one, shoot, and so on. For example, if the original setting was F-2.8 (aperture) and 1 15 (exposure), your next bracket would be F-2.8 and 1 30 (faster) and 1 8 (slower). You then move to F-4 (smaller aperture), take your bracketed shots, then move to F-1.8 (larger aperture), and so on, until you've bracketed at each aperture setting. As you
adjust the aperture settings, you effect the depth of field, but since you're photographing a flat surface, the shots won't be affected. Bracketing insures a successful shot, but uses up quite a bit of film.
SHUTTER SPEED 1 sec 1 2 1 4 1 8 1 15 1 30 1 60 1 125 1 250 1 500 1 1000 1 2000
1. 8 • •
2. 8 • • • 4 • • • •
5. 6 • • • • 8 • • • 11 • • • 16 22 32 Figure 1 shows a typical
bracketing situation for a single screen shot. A full range
consists of six f-stops and six shutter speeds. The most
central check under each f-stop would be the meter reading,
while the other checks would be your adjustments (two central
marks indicate a split meter reading). For a single screen
shot, you'd need up to nineteen shots. Just imagine a dozen
different shots!
Most exposures will range from 1 30 down. If the rare occasion should arise where the exposure is around 1 250 or faster, beware vertical tracing. The Amiga™ monitor scans sixty times per second, and, if the shutter speed is fast enough, your shot will pick up the scanning resulting in a white line appearing somewhere on the screen. It is similar to the line you'd sec if you were photographing a television set.
Developing and Enlarging Just because you've sweated through your photo session, don't rejoice your success too soon; your responsibility doesn't end there. When you take the film to the photo lab to be developed, or if you develop color yourself, the film should be developed normally.
When enlargements are made, be sure to request a higher density, usually positive three or four work best. The increased density produces a darker shot, making the colors vibrant and crisp. Normal density tends to make screen shots look bleached.
This technique can be used with black and white film also. Bracketing is not as important with B&W, but you should shoot at a couple of aperture settings nonetheless. With B&W you can ignore the density instructions when making enlargements.
If you are planning to use slide film, be sure to purchase a slow film speed, probably 64, so you don't run the risk of grainy slides. However, with a slower speed film, you will not have as much of an increase in density (or possibly none at all).
Don't be ashamed if the first couple of rolls are disappointments. It takes a while to memorize the technique and each of the sequences involved. My first roll using this procedure was disastrous because I left a neighboring monitor on. Since then. I've never had a significant problem. Don't be discouraged by early failures. In fact, you should expect them to happen. However, whatever experience you have with a 35mm SLR camera, you'll soon be turning out gallery quality shots.
Good luck and happy snapping!
• AO Screen Shots: The Good, the Bad and the Ugly Everyone has
seen DaVinci's masterpiece, the Mona Lisa. The essence of her
intriguing smile cannot be described in words; it must be seen
to be appreciated. The same holds true for any photograph.
The reader may get an idea, and possibly understand and
visualize all that the writer is trying to describe, but it's
just not the same as having a photograph to look at.
The screen shots below were taken before and after I learned the correct procedure. The first set was taken with 100 ASA film and a 50mm lens, without a tripod. I didn't turn down the monitor contrast or brightness. This photo was intended to be a screen shot for Chessmaster 2000™, but it looks more like the glowing neon billboard mentioned earlier. All white areas have a tremendous glow which makes the photo nearly indiscernible. The color is also totally washed out, To top it all off, the shot is not centered correctly because 1 did not use a tripod, and the great convexity of the screen
(flat, when you use a zoom lens) is due to using a 50mm lens from about a foot and a half away.
The second set of photos was taken after 1 learned Jim Sachs' method. I used a zoom lens and a tripod. I also took precautions against glare by turning the contrast and brightness down and leaving all lights off. The difference is dramatic, when compared to the first shot.
The difference between the two shots of the dog is due to bracketing. You can see the effectiveness of bracketing. This technique offers a wide range of exposures, ensuring a successful shot within your range. Good exposures have more vibrant colors, greater depth and crisp sharpness (as long as your focusing is true).
- Keith Conforti Rediscover Sound Sit Down at your Amiga with
Studio Magic and discover a new way a better way to create
sound... Because you'll be working with software modeled after
professional digital sound studios.
The Studio Magic tool menu is packed with over a dozen different digital tools. These special effects let you do anything from creating echos, flanges, and delays to enhancing frequency components or performing Fast Fourier Transforms. The Studio Magic tool box puts the power of a digital sound studio at your finger tips. Imagine the possibilities! You can take a voice and make it sound old or young, like Darth Vader, or like an alien from mars. Effects like M-M-Max Headroom become childs play. Your video sound tracks will never be the same!
Studio Magic's midi support includes a sequencer with ouerdub and external sync.
Studio Magic includes over a dozen digital effects including echos, flanges and delays.
But Studio Magic doesn't only do sound effects... it also does midi.
You can record in real time. You can overdub. You can assign any sound to any key on your midi keyboard. Studio Magic even supports advanced midi features such as tempo adjust and external sync. When you combine Studio Magic's midi support with its tools, editing capabilities, and keyboard control, you have the power to create spectacular musical pieces. Your amiga never sounded so good.
Studio Magic is IFF compatible. You can import any IFF digital sound, and save in IFF instrument or one-shot format. And of course. Studio Magic works with the Perfect Sound audio digitizer.
Run, don't walk, to your dealer for a demo today!
Suggested retail price $ 99.95. = SunRize Industries 3801 Old College Road Bryan, Texas 77801
(409) 846-1311 AmigaNotes INSIDE MIDI by Rick Rae CIS
[76703,4253] As it's been about a year since I last talked
about MIDI basics, 1 thought it would be worthwhile to go
back and cover the material again. This time, however,
we'll go a bit deeper.
MIDI HARDWARE As pointed out in the earlier introductory article (AmigaNotes, AC VI.7), MIDI stands for Musical Instrument Digital Interface, and is both a hardware and software standard. The hardware is fairly straightforward, so let's get that out of the way first.
MIDI uses a standard serial format of one start bit, eight data bits and one stop bit. This format means that a standard UART, the same sort of chip used to drive an RS232 port, can be used for MIDI. Rather than requiring a special baud rate generator, MIDI operates at a frequency of 31.25 kilobaud, which can usually be derived by dividing the system clock by a power of two.
Rather than using voltage levels, MIDI is based on a five milliamp current loop; a logical one is represented by an absence of current. MIDI outputs are very simple, usually consisting of little more than a resistor-protected current source and a switch, such as a transistor, TTL gate, or op amp. (See AmigaNotes, AC V2.2 for one approach.)
A MIDI input is only slightly more complex. The specification requires that the receiver to be completely isolated to eliminate hum and safety problems.
This isolation is usually achieved with an optoisolator, an integrated circuit which combines a light emitting diode with a photosensitive component (usually a transistor). In addition, the MIDI shield pin is left unconnected on MIDI inputs. The switched current from the MIDI transmitter travels down the cable, through the receiver's optoisolator, and back up the cable to the transmitter. In one sense, there is never any electrical connection between two MIDI devices the data is ultimately received via a beam of light.
MIDI cables have specifications, too.
The cable itself should be a shielded, twisted pair, not longer than fifty feet (longer runs have been used successfully, especially with low-capacitance cable). Each end is terminated in a five pin, 180 degree male DIN connector.
The twisted pair interconnects pins four and five, while the shield is tied to pin two on both ends.
MIDI PROTOCOL: CHANNEL MESSAGES MIDI communication is based on messages, A message is composed of a status byte, which is optionally followed by data bytes. This arrangement can be confusing at first, but bear with me and we'll chip it away bit by bit (no pun intended, honest).
Each status byte may be broken down into fields as shown: T SSS CCCC The most significant bit identifies what each byte for us A set means a status byte; a zero means a data byte. So, the first byte of any message, the status byte, will have the message's most significant bit set. It may be followed by data bytes, which will have zeroes in this position.
The next three bits indicate the type of message. Since there are eight possible combinations of three bits, it makes sense that there are eight possible types of status bytes. Let's quickly run down the list.
000: NOTE OFF (3 bytes) This message tells the synthesizer to turn off a note which (supposedly) was previously turned on. The second byte indicates which of the 127 MIDI notes should be turned off. The third byte, release velocity, indicates how quickly the key was released. This byte is not supported by most current keyboards.
001: NOTE ON (3 bytes) This message tells the synthesizer to turn on a note. . , usually. The second byte indicates which note is to be turned on. The third byte is velocity, or how quickly the key was struck.
Velocity information is often used to control the loudness or brightness of a sound and, while many keyboards do not send this information, quite a few synthesizers will respond to it. Almost all synthesizers respond to a special case however, a note on message with a velocity of zero is equivalent to a note off. The reason for this reaction will be explained later (trust me).
Continued... 010: POLYPHONIC KEY PRESSURE (3 bytes) This message indicates how hard a key is being depressed once it has reached the stop. The second byte indicates which note is being depressed, while the third byte indicates the amount of pressure applied. By using key pressure to control pitch or timbre, experienced 'synthcsists' can put quite a bit of feeling into their music without ever lifting their hands from the keyboard.
Unfortunately, polyphonic key pressure requires a separate pressure sensing mechanism under each and every key.
Like release velocity, this message is usually sent only by the more expensive devices.
Oil: CONTROL CHANGE (3 bytes) This message is sort of "generic"; it means something, somewhere, has changed. The second byte specifies the controller number, the third notes the value. The function of each controller is decided by the individual equipment manufacturer, but a few, more-or-less, standards have emerged, some of which are shown here: CONTROL CHANGE MESSAGE Byte 2 Description of Controller 1 Oscillator Modulation 2 Timbre Modulation (Filter) 7 Volume 64 Sustain 65 Portamento Provisions have been made for quite a few controllers. Values of 0 through 31 are reserved for continuous
controls like knobs, sliders, etc. Each of these controls can take on any one of 128 values. If more resolution is required by a particular controller, controller numbers 32 through 63 represent seven extra bits of resolution for the first 32 controllers.
In other words, a control change message with a second byte of 0 would provide the seven most significant bits for the first controller. A subsequent control change message with a second byte of 32 would provide the seven least significant bits for the same controller, resulting in a total of 14 bits of resolution. This approach was chosen because most continuous controls don't need more than seven bits of resolution, and always adding an additional byte would degrade performance.
If the second byte falls in the range of 64 to 95, the controller is assumed to be a switch, and the third byte will simply indicate whether the switch is on or off.
Values 96 through 121 are currently undefined, but may be assigned at a later date.
Values above 121 are reserved for special channel mode messages as follow: CONTROL CHANGE MESSAGE Byte 2 Message Type 122 Local Control 123 All Notes Off 124 Omni Mode Off 125 Omni Mode On 126 Mono Mode On 127 Poly Mode On Local Control determines whether the synthesizer's keyboard controls the internal sound generators or merely generates MIDI output. All Notes Off is a sort of "panic button"; it is equivalent to sending a note off for every note. The last four messages determine the synthesizer's channel mode, which we'll touch on in just a moment.
100: PROGRAM CHANGE (2 bytes) This message initiates a program ("patch") change. The data byte is the program number selected.
101: MONOPHONIC PRESSURE (2 bytes) This message (also called Channel Pressure or AfterTouch) is similar in function to Polyphonic Key Pressure, but generates only one pressure value across an entire keyboard. The data byte represents the applied pressure.
110: PITCH WHEEL CHANGE (3 bytes) Since the pitch wheel is one of the few controllers which may easily require more than seven bits of resolution, it was given its own status message. The second byte holds the seven least significant bits; the third byte holds the seven most significant.
All these change messages are classified as channel messages. MIDI defines sixteen data channels, allowing one cable to carry information for several synthesizers or voices. These messages use the last four bits of the status byte to specify the desired channel. How each synthesizer responds to channel messages is determined by its channel mode, which has four possible states: OMNI ON POLY: This state is often the default power-up mode for any synthesizer which does not have non-volatile memory. Omni on means the synthesizer will respond to any message on any channel. This arrangement is handy
for initial setup or quick tests. In combination with this full-ranging response, poly means the synthesizer will play as many notes as possible if it is an eight voice machine, you can play an eight note chord.
OMNI ON MONO: This mode means the synthesizer will respond to all messages regardless of channel, but will only play one note at a time. This mode is probably the least used of the four. Unless you have some special considerations such as an old analog two-voice synthesizer, you won't be using this one very much.
OMNI OFF POLY: This setting is the most popular and causes the synthesizer to respond polyphonically, but only to messages on one channel. In this way, many devices can share one MIDI connection. On some synthesizers, the transmit channel is preset and not changeable, but most machines do allow you to set the receive channel.
Continued... syMmoNy SONGS ,o?
SV-' SYMPHONY SON(iS gives you u library of nearly 1,000 music masterpieces. All songs are in IFF formal so they may be loaded, played, printed, transposed, and modi tied in any way you like using your favorite composition program. Included is a free program to convert the IFF tiles to MUSIC STUI)IO'" format.
I he songs have been arranged bvC. Clark Rulalord and Kandy Speetor and take advantage of the full 4 Voice capability of the AMIGA.
Space does not allow listing all the songs in each of the volumes. We have listed a few and show the total number in each volume as well as the playing time. A complete list of songs may be purchased for $ 3.95. Each volume of the 27 volumes listed is $ 24.95. BEATLES Bart I Vol 15 (21 Pieces 40 Min) I el It Tic. Yesterday. Eleanor Rigbs, When I'm
04. . , .
BEATLES Part 2 Vol 40 (17 Pieces 40 Min) Magical Mystery Tour. Lucy In The Sky With Diamonds. Penny Lane, . . .
CLASSICAL Part I Vol 27 114 Pieces 4(1 Min) Prelude I. Moonlight Sonata I si and 2nd Movement. .
CLASSICAL Part 2 Vol 34 IS Pieces 40 Min) Sonata In C Major. Jesus Joy Of Mali's Desire.
CLASSICAL Ban ,t Vol 31 (IS Pieces 35 Min) I si Piano Concerto. Polonaise Sonata Iti C Major.
Etude 3, .
CLASSICAL Bun 4 (Bach) Vol 35 (22 pieces 3(1 Mint Two Part Invention . Three Part Invention 6.
Prelude and Euguc I. CIASSK AT Bart 5 (BachIC7emeriti) Vol 46 124 Pieces 50 Min) Choral 1. Sonata 1. Theme and II Variations From The 2nd Sonata. . .
BEETHOVEN, BROADWAY, it BLUES Vol 38 115 Pieces 411 Mini 2nd Movement OfthePathetiqueSonata. Minuet In G, Fuer Elise. . . .
COUNTRY CLASSICS Part I Vol 41(18 Pieces 45 Min) Thank God 1'maCounirv Bov, Act Naturally.. .
ROCK Part I Vol 32 (IP Pieces 50 Min) AXFI. F. Eye 1 The Tiger. Both Sides Sow.
ROCK Bart 2 Vol 16 121 Pieces 411 Min) Georgy Girl. Gunntanamcru. Theme From "Love Story." Cherish. .
HP's GREATEST Vol 24 (16 Pieces 50 Min) Hill Street Blues Theme. Chariots Of Fire Theme.
Dynasty Theme, . . .
70's GREATEST Vol 12 (21 Pieces 45 Min) Tie A Yellow RihbonOn The0)d Oak Tree. We've Only Just Begun, . .
Mbs GREATEST Vol 13 (2! Pieces 45 Min) Windy, By The Time I Get To Phoenix. Come Saturday Morning, . . .
GOLD it PLAT ISC At HITS Vo] 45 114 Pieces fill Min) Thriller, 44 [.lift Balloons, California Girls, , . .
KENNY RODGERS HITS Vol 34 (12 Pieces 45 Mini Lady. Ruhy. She Believes In Me. The Gambler. . .
BILLY JOEL GREATEST HITS Vol 43 (17 Pieces 65 Mini Piano Mail, Say (ioodbve To Hollywood, ()n!v The Good Die Young. . .
COUNTRY CLASSICS Bart 2 Vol 42 l i4 Pieces 50 Mini Ode To Billy Joe. Meand Bobby McGee. Country Roads. , .
TV THEMES Vol 37 (21 Pieces 35 Min) Hill Street Blues. St. ElsewhereTheme. Masterpiece Theater Theme. . .
MOVIE THEMES Vo! 14 (23 Pieces 40 Min) MASH Theme. The Rose. Can You Read My Mind
I. Superman I, . . .
BROADWAY'S THEMES Vol 47 (25 Pieces 65 Mint The Last Supper. Dr. Doolittle, The Old Dope Peddler. . . .
CHURCH MUSIC Vol 28 (26 Piece 50 Mint Amazing Grace, What A Friend We Have In Jesus. . . , BARBERSHOP Vol 22 (22 Pieces 45 Min) Hello Dolly. Pur On a Happy Face. Hey Look Me Over. . . .
RICHARD RODGERS SONGBOOK Vol IS 114 Pieces 40 Min) Climb Every Mountain. DO-RE-MI.The Sound Of Music. . . .
NOSTALGIA Vol 17 22 Pieces 45 Mini Let Me Call You Sweetheart. Ain't Mishehavin'. On The Goodship Lollipop. . . .
CHRISTMAS Vol 36 (26 pieces 50 Min) O Little Town Of Bethlehem. Let It Snow, March Of The Toys. . . .
POLKA PARTY Vol 33 (18 Pieces 40 Mint Happy Polka. Pizzacato Polka. Belly Polka, . , .
- SJ!MPH0N lJUKEBOX- Symphony Jukebox allows you to program a
selection of songs, their order as well as the number of times,
and allows you to listen to them tor hours of uninterrupted
playing. Other features include MIDI output, instrument
selection, transposition, and tempo modification. $ 24.95
- SyMPHONV MUSIC VIDEO- This program has all the features
olourSYMPI IONY JUKEBOX, however, it also allows you to specify
a picture to be displayed with each song.
The pictures and music are all in standard IFF format so you may use the songs and pictures included, or use those you developed with your music program (i.e. DMCS), or your paint program (i.e. Deluxe Paint). Included are Christinas music and pictures. $ 24.95 We accept ( ASH, CHECK, COD, VISA and MASTER CARD orders.
Shipping and handling US and Canada ..Si.tit) Shipping and handling outside the US and Canada ..$ 5.DO COD ( barge .....- - S2.00 Illinois residents add b' iHi sales tax.
CSfizEcn stems 38W255 DEERPATH ROAD BATAVIA, ILLINOIS 60510
(312) 879-6811 Deluxe Music Construction Set. Deluxe Paint.
Instant Music are trademarks of Electronic Arts Music
Studio is a trademark of Activision.
OMNI OFF MONO: This mode is gaining popularity as synthesizers become more powerful because it allows multi-timbral operation. In other words, by using this mode, your synthesizer can play several different patches at once. Here's how it works: since omni is off, the machine will only respond to one channel, called the basic channel. Since mono mode is selected, only one voice will sound.
However, the next higher voice will respond in the same way on the basic channel plus one, the next voice on the next channel, and so on. Voice one could be a bass guitar, voice two a lead guitar, voices three through six an acoustic piano ... in other words, you can simulate an entire band with one instrument.
Two notes about this mode first, it's interesting to note that it would be extremely difficult, if not impossible, to simultaneously play various patches without using a sequencer, so, how would you play four different patches on one keyboard? About the best you could do would be to split the keyboard into zones and assign one instrument sound to each zone. With a sequencer running the show, this problem goes away, since each instrument sound would have its own track.
Second, many synthesizers do not support this mode (some support it in a limited fashion). If you're considering buying a synthesizer and have certain things you want to do with it, be sure to ask before plunking down your money.
Astute readers will notice that I've only listed seven of the eight possible status bytes. The eighth code, 111, is reserved for... SYSTEM MESSAGES A system message is intended as a sort of global announcement, so that no channel numbers are used. Instead, the four least significant bits are used to indicate the type of system message. It follows, then, that there are 16 possible system messages: SYSTEM COMMON MESSAGES Message Type Status Byte 1111 0010 1 111 0011 1 111 0110 Bytes 3 2 I Song Position Song Select Tune Request SYSTEM REAL-TIME MESSAGES Status Byte Bytes Message Type 1 111 1000 1
Timing Clock 1 111 1010 1 Start 1 111 1011 1 Continue 1 111 1100 1 Stop 1 111 1110 1 Active Sensing 1 111 mi i System Reset SYSTEM EXCLUSIVE MESSAGES eg: save Status Byte Bytes Message Type 1111 0000 =2 System Exclusive 11110111 1 End System Exclusive As shown, system messages can be grouped into three categories. System Common messages deal with non-timed functions and are intended to be received by all synthesizers in a system.
System Real-Time messages deal with synchronization of the devices and are also intended for all synthesizers in a system. System Exclusive messages generally deal with bulk patch and sample dumps and remote programming or storage and are intended for all synthesizers by a particular manufacturer. Again, let's run down the list.
Song position is the number of MIDI beats which have passed since the start of a song. When a sequence is started, this value is set to zero and begins incrementing. By using the Song Position Pointer message to preset the pointer, you can start recording or playback in the middle of a song. This feature is most useful when dealing with drum machines or multiple sequencers.
Most drum machines and sequencers can store more than one pattern or song. When using these devices in a MIDI system, a Song Select message may be used to specify which sequence is to be played.
The newer 'synthesists' among us have been spared the frustration of the older analog synthesizers, which had a tendency to drift with changes in temperature and line voltage. At the very least, these machines had to be tuned when powered up. Some of the more sophisticated analog machines included circuitry which allowed them to tune themselves. A Tune Request message instructs these instruments to do the tuning.
The Start, Continue, Stop and Timing Clock messages are involved with real time recording or playback. Their functions should be fairly obvious.
Active Sensing is an optional MIDI feature. If an Active Sensing message is sent to a synthesizer, the instrument will expect to continue receiving Active Sensing messages at regular intervals.
If all MIDI messages are interrupted for more than a few hundred milliseconds, the synthesizer will assume there is a problem and turn off all active notes.
This feature can, at least, help reduce the embarrassment when you trip over a MIDI cord on stage.
To be honest, I've never understood why System Reset was included among the real-time messages, but there it is.
A System Reset message initializes a synthesizer to its power-up condition.
The MIDI specification warns that this command should be "used sparingly."
Think of it as a three finger reset on your Amiga.
System Real-Time messages are the only status bytes which start with the code 1 Till. Because of this distinguishing detail, such messages can be easily recognized. This easy recognition is fortunate since Real-Time messages are time critical, they might arrive at continued... If You are Searching for a Monthly Resource to the Commodore AMIGA™.... and Smell the Coffee!!
DnraffliDffiij j ElUDDpQUGSSffl" [niazTngl Computing The Excitement Continue*-... Super Term To be continued COMPUTING™ Your Original AMIGA Monthly Resource 1800 pages and growing Since its creation, Amazing Computing™ has supported the Commodore Amiga™ user with the best monthly documentation, Amiga insights and product coverage. In the pages of Amazing Computing™, users find features and articles written by fellow Amiga users. Our Amazing Writers are people searching for better ways to use their Amigas. This combined insight makes Amazing Computing™ the first choice in Amiga information and
Amazing Computing™'s policy has always been to side step fluff and deliver substance. AC discovers how to increase the potential of the Amiga, while watching the impact this machine has made on the growing computer community.
Though the past has been a great record, Amazing Computing™ will not rest on our past achievements. Amazing Computing™ will continue to offer the Amiga user the best technical knowledge and unbiased reviews available for the Commodore-Amiga™.
With the introduction of the Amiga 500 and Amiga 2000, Amiga users need a proven resource for reviews, programs, and how-to's. Amazing Computing™ is your resource to the Commodore Amiga™ Subscribe and save $ 18.00 off t Amazing Computing™ is available by subscription at only $ 24.00 for 12 monthly issues (a savings of over 42% off the newsstand price). To subscribe to Amazing Computing™, please fill out the subscription form in the back of this issue and mail to: PiM Publications, Inc.
P. O.Box 869 Fall River, MA 02722 Amazing Computingm: when other
brands are not your cup of tea.
Money Mentor has a New Engine Climb Aboard the new "C" version of Money Mentor'" for the ride of your life.
Speed is your ticket to faster data input and dazzling graphics output. If your destination is better control of your personal finances, there's no faster way to get there than with Money Mentor'".
A unique system called "Smart Scrolls" handles a diversity of tedious data entry functions and can save 70% of the typing typically required for entry.
Money Mentor'" features:
• Net Worth Statement
• 200 budget categories
• 30 integrated accounts: checking, cash, saving and credit cards
any time . . . Even within other messages. A MIDI device must
be intelligent enough to pick the real time messages out of
the data stream and deal with them separately, while not
allowing them to disturb the other information.
The System Exclusive messages are sort of loopholes, through which an equipment manufacturer can push just about anything imaginable. A System Exclusive message (abbreviated SOX, Start Of exclusive) signals all synthesizers that a special message is about to begin. The second byte is a manufacturer's identification code. All MIDI manufacturers who wish to use system exclusive information must register with the proper authorities and be assigned an ID.
When a synthesizer receives a system exclusive message, it checks the second byte to see which brand of equipment the message is intended for. If no match is found, the entire message is ignored. If the message is for the brand of synthesizer in use, the instrument uses the data from that point to the End System Exclusive (EOX, End Of exclusive) message. The format of the data between these two messages, and what the synthesizer does with that data, is totally undefined and left to the manufacturer's discretion.
REDUCING OVERHEAD In the hardware discussion, I mentioned that the MIDI data rate is 31.25 Kbaud (31,250 bits per second). I also mentioned that a MIDI byte was eight bits, bracketed by a start bit and a stop bit.
A little math shows that it takes 320 microseconds to send one MIDI byte.
Recall that Note On and Note Off messages require three bytes each, which means it takes 960 microseconds
- call it one millisecond - to turn a note on or off. A single
seventh chord over a bass note will take at least five
milliseconds to transmit, with another five milliseconds needed
when the keys are released. It is obvious that, with a lot of
activity, a MIDI data stream could simply run out of bandwidth.
MIDI tries to ease this problem with running status. The MIDI specification states that, once a channel message status byte is received, the receiver should remain in that mode, until another status byte is received. In other words, if a synthesizer is sent a Note On message, it expects all further data to be Note On data, until another message is received. Rather than sending three bytes for each Note On message, we need only send the two data bytes from each message.
This method works wonders for playing a chord, but when the first key is released, the Note Off message would interrupt the flow - which is why a zero velocity Note On is equivalent to a Note Off. By sending zero velocity Note On data, instead of a Note Off command, running status can be much more efficient. If most of the activity on a MIDI port is simply notes beginning and ending, running status can reduce overhead by almost 33%.
RESOURCES That pretty well covers the technical aspects of the MIDI specification. If you'd like to see the "real thing," you can order the MIDI spec from the International MIDI Association ... or, better yet, pick up a copy of Craig Andcrton's MIDI for Musicians. This 100-plus page book explains MIDI better than I ever could in the space I have available here. It also includes a reprint of the abbreviated MIDI specification.
If you're going out to buy a synthesizer, play the keyboards and ask questions!
Near the back, you'll usually find a MIDI Implementation Chart, which will tell you exactly what the synthesizer is capable of when being used as a MIDI instrument.
Until next month... Nybbles, Rick For more information, contact: International MIDI Association 11857 Hartsook Street North Hollywood, CA 91607
(818) 505-8964
• AC3 11844 Rancho Benardo Rd; Ste. 20 San Diego, CA 92128 To
order, §& i call (619) 451-0151 Directory Listings Under
AmigaDOS™ bv Dave Haynie Part II More Explanations and
Listing ?define FIBMEM * ?define DOWN ?define UP ¦ I've come
up with many ideas to help speed up the directory commands at
various levels. The ASDG company plans to introduce an
intelligent hard disk controller that actually implements a
sorting and look ahead scheme in its firmware, combined with
caching. This hard drive could be very fast; it would certainly
be faster than the Fdir command run on a hard drive, and with
the sorting taking place at the handler and or device level,
the speedup would be all-around, not just embedded in a
directory command.
On the subject of directory commands, Leo L. Schwab, of display hack fame, has been developing something very similar to the ASDG drive controller independently (his version is called "eless"; he recently released it to Usenet). Just today, Paul Higginbottom, of Commodore Sales, came to me asking what 1 was doing with this idea. He'd been playing with some of the same concepts ... obviously, this idea's time has come.
This program is an example of DOS Packet calls, and of the described method of reading a standard AmigaDOS directory that's a bit faster than regular directory programs, which rely on the ExNext () call or the ACTIONEXAMINE NEXT packet. The fast method is device dependent; a standard, equivalent directory function is available as a fallback for other file handlers, and for comparison purposes (via the -n option).
?include exec types.h ?include exec meraory-h ?include exec exec.h ?include libraries dos.h ?include Clibrarles doscxtens.h ?include libraries fllehandler,h ?include ctype.h ?include stdio.h Fast Directory Command by Dave Haynie unsigned top - 0; * Indexes the top of the keys list * LONG keys[HASHSIZ+1); ¦ The actual key3 list • J* This macro pops the key from the top of the keys[] list. * ?define PopKeylk) dir - ( jc) - keys [0]) keys[l)) ? DOWN : UP; movmem((char *) Skeys 1), (char *) 4 keys 101, (-top) «2); I • This function adds the given key "keyno" into
the key list. This list will always be built In a sorted order, based on "dir" and the "guide" parameter. When a directory header is processed, the keys from the hash table are inserted in ascending order, based on a direction of "UP".
This means keys larger than "guide" are put in ascending order at the head of the list, keys smaller are put at the tail of the list in descending order. The process reverses If "dir" is "DOWN". * void AddKey(keyno, guide) register LONG keyno, guide; i register short i; if (dir UP 4 4 guide keyno) for (i - 0; i top 44 keys[i] keyno; i++); else if (dir DOWN &£ guide keyno) for (i - 0; i top 44 keysfi] keyno; i + + ) ; else if (dir UP) for (1 - top; i 1 44 keysli-l] keyno; i-); else for (i - top; i 1 kcys i-l] keyno; i-); movmem((char *)4keys[1],(char
¦)4keys(i+1],(top++-i) 2); keys[i] - keyno; This section contains the code that maintains a sorted list of directory keys. When a directory block is first read, the key list will be built with directory keys from the hash table. Each key processed in the main directory loop may in turn have a hash table collision key of its own for insertion in the list. As keys are processed, they are removed from the front of the list, so there can only be a maximum of "HASHSIZ" keys in the list at any given time. Variable "dir" indicates the direction in which the list is being built, while "top" points to
the top of the sorted list. * 0 * Heads are moving down * 1 * Heads are moving up * * The current movement of the heads *1 mEMF PUBLIC|MEMF CLEAR) short dir - UP; I* ¦ Program's text messages " ?define NO_FILES ?define ERR_DIR ?define NQT_DIRECTORY ?define OLD LIBRARY "No Files Found n" Directory not found n" Not a directory n" DOS Library too oldNn" "Error "Error "Error * Important, fixed, block numbers V ?define HASHSI2 72L • Hash table size • * Standard output file pointer * BPTR Stdout - NULL; struct Do3Library "DosBase - NULL; ¦ Standard DOS Filelr.fo stuff, for various
EXAMINE packets * typedef struct FilelnfoBlock FIB; continued.. * * This section contains the device-specific cylinder functions. • short CYLINDERSIZ; • size of cylinder or track * BOOL trackonly - TRUE; * Check single tracks, not whole cylinder - * This macro compares two key values. It returns TRUE if they're on the same cylinder (any head), FALSE otherwise. * ?define CylEqu(kl,k2) ((kl) CYLINDERSIZ (k2) CYLINDERSIZ) * This function looks up the device in use in the device list, based on the volume's handler task. From this, the cylinder size is calculated for use by the
same-cylinder test. This could be easily changed to lookup only 3ame-track info if desired. This function returns TRUE if the device looks OK, FALSE il it seems to have an unusual file structure. * Prospect Software presents: QEDit The most powerful Amiga Programmer's Editor.
• Full Undo Redo capability. Undo any command.
Redo undoes the Undo!
• Multi-tasking, multi-window Intuition interface.
• No limitations except memory on number of files, number of
windows, or file size.
• Invoke your compiler, assembler, Linker or MAKE from within
• Powerful pattern search.
• Edit one file while saving or compiling another.
• Menu-driven or keyboard driven.
• Horizontal scroll. Fast screen update.
• Define keyboard macros, assign macros to keys, and save
definitions to disk.
• Read and write any type of file.
• Optional file backup.
• Only $ 30.
Also includes WINDOWKEYS Mouse Eliminator. Allows you to manipulate windows without touching the mouse.
1-217-373-2071 Prospect Software
P. 0. Box 343 Champaign, IL 61820-0343 Also: PLATO ACCESS
DISKforCDC Plato Systems. . .S30 ?define DOSTRUE
• define DOSFALSE * This macro returns TRUE if the given packet
has been sent, FALSE otherwise. •
- 1L OL ?define WaaSent(pkt) ((pkt)- bp_Rep !- NULL) • This
function allocates a typed BigPacket, It returns NULL if the
packet can't be allocated for some reason. The allocation is
not completely general, but it works fine for the packets we're
concerned with in this example. * 3ig?acket
•AllocPacket(action,size,memory) LONG action,size,memory;
BigPacket *pkt; * Resulting packet ¦ if ((pkt - (BigPacket *)
AllocMem(sizeof(BigPacket),PACMEM)) NULL) return NULL;
pkt- bp_Pkt,dp_Aetion - action; if (size !- OL) ( If
((pkt- bp_Data - (CPTR) AllocMem(size,memory)) NULL)
FreeMen(pkt,sizeof(BigPacket)); return NULL;
pkt- bp_Pkt.dp_Arg2 - ((ULONG)pkt- bp_Data) » 2; I
pkt- bp_Msg.mn_Node.ln_Name - (char ¦) i (pkt- b?_Pkt);
pkt- bp_Pkt,dp_Link - t(pkt- bp_Msg); return pkt; This runctlon
waits for the given packet of any kind to complete Us action,
returning its first return status value. • LONG
WaitPacket(pkt) BigPacket "pkt; I if (!WasSent(pkt)) return
DOSFALSE; WaitPort(pkt- bp_Rep); GetMsg(pkt- bp_Rep);
DeletePort(pkt- bp_Rep); pkt- bp_Rep - NULL; return
pkt- bp_pkt.dpstatus; • This function a synchronously sends
any packet "pkt" to perform its function. It i3 assumed the
particular packet-type-specific data has been properly
initialized. If the packet has already been sent, the function
will return DOSFALSE. • LONG SendPacket(pid,pkt) struct
MsgPort *pid: BigPacket *pkt; ( extern struct MsgPort
'CreatePort (); if (WaaSent(pkt)) return DOSFALSE; if
((pkt- bp_Rop - CreatePort(NULL,OL)) NULL) return DOSFALSE;
pkt- bp_Pkt.dp_Port - pkt- bp_Rep; PutMsg(pid,pkt); return
DOSTRUE; ) f* This function frees up a packet allocated with
AllocPacket(). If the packet was asynchronously sent, and has
not yet returned, the function will WaitPacket!) For the action
to complete. * void FreePacket(pkt,3ize) BigPacket ¦pkt; LONG
size; ( if (WasSent(pkt)) WaitPacket(pkt) ; if (pkt- bp_Data 1-
NULL) FreeMom(pkt- bp_Data,size); if (pkt- bp_Rep !" NULL)
DeletePort(pkt- bp_Rep); FreeMenlpkt,sizeof(BigPacket)); This
function is a general synchronous packet routine. It queues the
given packet, then waits for it to complete before returning.
* LONG DoPacket(pid,pkt) struct MsgPort "pid; struct BigPacket
•pkt; if (SendPacket(pid,pkt) I- DOSTRUE) return DOSFALSE;
return WaitPacket(pkt); typedef struct ( struct Message struct
DosPacket struct MsgPort CPTR J BigPacket;
• define PACMEM bp_Msg; bp_Pkt;
* bp_Rep; bp_Data; (MEMFPUBLIC[M£MF_CLEAR) • Thi3 section
contains my implementation of the standard file handler's BLOCK
and related function and other data, for use with the packet
ACTION_GET_BLOCK. * ' Variable sized BC?L type character
string, in easy to use C terms.
The sizing parameter is in terms of long words. * ? Define VARBSTR(s) struct [ UBY7E len; BYTE str[ (s«2)-1 ]; ] ¦ rile block typing information * 2L * File or Directory block * ?define FT_SHORT_FILE ? Define F T_D AT A_3 LOCK ?define ST_FILE ?define ST~ROOT_DIR ?define st user dir 8L ' Data block * Oxfffffffd * File subtype • 1L • Root directory subtype • 2L • User directory subtype ¦ C31 33 771 -4465 * The is the DOS block definition. The Interesting fields for most directory items are called out in this structure. Only a few are actually used in this example, the rest of them
could be added to an extended version of this directory command.
• typedef struct BLOCK ( LONG
* btype; * Block'3 primary type LONG ¦ b_key; • Pointer
back to self LONG b_seg; * Blocks used * LONG b datasize; '
Data blocks used *1 LONG
• b_first; * File's first datablock t LONG b_checksura; •
3lock checksum • LONG b_hash(HASHSIZ]; ' Directory Hashtable
* LONG b_spare [2] ; * 2 Spares • LONG b protect; ¦
protection • LONG b_byteaize; ¦ File size, in bytes •
VAR3STR(23) b_comment; * Fileccmment ' struct DateStamp
b_date; • Creation date • VAR3STR(16) b_name; • Filename •
• b_collis; * Hash collision chain LONG b_parent; * Parent
directory ' LONG
• f b ext; * File extension block LONG b_sub; • Block Subtype
* } BLOCK; ?define BLKMEM (MEMF CHIP|MEMF PUBLIC) DYNAMIC
DRUMS The program that transforms your Amiga™ into a
professional drum machine.
• Incredibly realistic sound
• Create your own studio-quality drum tracks
• Real or step time programming
• Graphic Editing
• Over 100 percussion samples included or use your own IFF
• Fully adjustable volume and tuning levels
• Randomizing options for a dynamic, human feel
• MIDI compatible Requires M2K Am.p™ DEALER INQUIRIES INVITED MI,
FL, it CA add sales tax Send Check or Money Order for S79.95
(effective 9 1 87) to: * This function does essentially the
same thing as DoPacket ), hut specifically for a block read
with an initialized ACTION_GET_BLOCK packet. The sector to read
from 13 also supplied. * LONG ReadBlk(pid,pkt,sect) struct
MsgPort *pid; 3igPacket 'pkt; LONG 3ect; I If (sect 0 N
pkt- bp_Pkt.dp Action 1- ACTION_GET_BLOCK) return DOSFALSE;
pkt- bp_Pkt.dp_Argl - sect; if (SendPacket(pid,pkt) !- DOSTRUE)
return DOSFALSE; return WaitPacket(pkt); ) • * Directory
output formatting stuff. Some of the operators are coded as
macros to make them fast. I try to keep the formatting stuff as
consistent as possible between the two directory functions, so
that a valid speed comparison between the two methods can be
accurately drawn. * ?define NAMESI2 23L ?define PERLINE 3L
?define INDENT 4L ' Chars Name ¦ * Names Text Line * ¦
Line Indent • ¦ size of line buff ' * The line buffer »
?define LINESIZ (NAMESIZ'PERLINEtINDENT*1L) char line[LINESIZ];
I* This macro returns TRUE if the line buffer is full. •
?define LineFull(p) ((ULONG)((p)-line) - LINESIZ-1L) • This
macro returns TRUE if the line buffer if empty. • ?define
LineEmpty(p) Up) - line ? INDENT) ¦ This macro clears the
line buffer. • Amiga is a trademark of Commodore-Amiga Inc. ?
Define LlneWriteO (Write(Stdout, line, LINESIZ)) • * This
section contains the main functions. • • This function reads
the given key, assumed to be the directory block, and builds
the key table based on that directory block's hash table. If
the given block isn't a directory block, the function returns
Note that using the AddKeyO function to add each entry is not all that efficient; it would be faster to fill the table and then run an efficient sort on that table. This is left as an extension. • BOOL ReadDlr(pid,pkt,key) struct MsgPort *pid; BigPacket •pkt; LONG key; I short i; LONG 'table; BLOCK 'blk; if (ReadBlk (pid, pkt, key) !- DOSTRUE) return FALSF.; blk - (BLOCK ') pkt- bp_Data; if (blk- b_typc !- FT_SHORT_FILE) return FALSE; if (blk- b_sub I- ST_ROOT_DIR U blk- b_sub ST_USER_DIR) return FALSE; table - A (blkob hash [0]) ; kcys|0] - 0L; for (1 - 0; 1 HASHSIZ; i++) if ((key -
table[i]) !- OL) AddKey (key, OL) ; return TRUE; * This function implements the actual Fast Directory command. It will be called after a little testing is done to insure that the given DOS device supports a normal trackdisk compatible file structure. ¦ ?define LineClear(p) ( setmemdine, (unsigned) (LINESlZ-iL),
(p) - line + INDENT; | ' This macro writes the buffer to the
current output.
Continued... PRO VIDEO CGI by JDK Images PROFESSIONAL CHARACTER GENERATOR SOFTWARE FOR THE COMMODORE AMIGA 100 Pages Text Memory * 640 X 400 Resolution 3 Font Styles * 3 Sizes * Alternate Fonts Available 8 Colors Per Page * 4096 Color Palette 5 Background Grids ' 16 Sizes ' 15 Transitions Variable Speed & Dwell ' Flash * Underline On Screen Editing * AND MORE . .. PVS Publishing - 3800 Botticelli Suite 40 - Lake Oswego - OR 97035
(503) 636-8677_ PRO VIDEO CGI copyright1988, 1987 JDK Images, all
rights reserved AMIGA is a trademark of Commodore -Amiga,
Inc. BigPacket *pkt; BOOL once - FALSE; cha r • pt r; long
• (line ? LIMES12-1L) - * n'; LineClear(ptr); pkt -
AllocPacket(ACTION_EXAMINE_OBJECT,sizeof(FIB),FIBMEM); fib -
(FIB •) pkt- bp_Data; pkt- bp_Pkt.dp Argl - ((ULONG) lock) » 2;
•Do First Examine, and check we've got a directory. • if
(DoPacket(pid,pkt) !- DOSTRUE || fib- fib_DirEntryType CL)
FreePacket(pkt,sizeof(FIB)); return FALSE; J
pkt- bp_Pkt.dpAction - ACT ION_EXAMINE_NEXT; while
(DoPacket(pid,pkt) DOSTRUE) ( once - TRUE; len - (long)
nin(fib- fib_FileName(0],NAMESIZE-1L);
strncpy(ptr,4(fib- fib_FileName[1)),len);
* (ptr +¦ len) - (fib- fibDirEntryType OL) '; ptr +- NAMESIZ;
if (LineFull(ptr)) ( Linewrite(); LineClear(ptr); ) ) if
(ionce) Write(Stdout,NO FIL2S, sizeof(NO FILES)); else if
(ILineEmpty(ptr)) Linewrite(); FreePacket (pkt, s Izeof (r
IB)); return TRUE; ) • • This is the main function. It checks
to make sure we're not called from WorkBench first. If not,
then it gets a lock on the giver, directory name, if possible.
The lock yields the handler PID, which together with an
allocated block packot Is sent to the ReadDirO function. If the
function is successful the validity of the file structure has
been tested, and the key list can contain some keys. FastDirO
processes the keys, if there are any. If the ReadDirO failed,
then there's something funny about the file structure (RAM: i3
a good example of this), and thus NormalDirO is called to
provide the desired directory listing.
Void FastDir(pid,pkt) struct MsgPort *pid; BigPacket 'pkt; 1 register BLOCK •blk; LONG key, collis; char 'ptr; long Ion; blk - (BLOCK •) pkt- bp_Data; ¦ Set up the block •
• (line + LINESIZ-1L) - ' n'; • And the output buffer •
LineClear(ptr); PopKey(key); while (Read31k(pid,pkt,key)
DOSTRUE) Ion - (long) min(blk- b_name.len,NAMESIZ-1L) ;
strncpy (ptr, 4 (blk- b_namc. Str (01), lor.) ;
• (ptr ? Len) - (blk- b_sub ST_USER_DIR) ? V' : * * ptr +-
NAMESIZ; if (LineFull(ptr)) ( LlneWrlte(); LineClear(ptr); 1 if
((collis - blk- b_colli3) !- OL) ( • Any collision? * if
CylEqu(collis, blk- b_key)) key - collis; else (
AddKey(collis,blk- b_key); PopKey(key); I } else if (top !- OL)
1 PopKey(key); ) else break; ) if (1LineErapty(ptr))
LlneWrlte(); ) • This function implements a normal directory
command, also using packets, but the higher level
EXAMINE_03JEC? And EXAMIXEJISX7 packets, which should work for
any DOS device capable of supporting files. • BOOL
Norrr.alDir(pid, lock) struct MsgPort -pid; struct FileLock
'lock; ( register FIB *fib; main(argc,argv) int argc; char
*argv(); DOS "stdout- equivalent • File Lock for directory
* PID from file lock * Packet for DOS Functions • Directory
name • Forcec normal directory • Callec from Workbench •
extern BPTR output 0; struct FileLock •lock; struct MsgPort
*pid; BigPackct *pkt; char *dlr; BOOL norm - FALSE; if (argc
0) Exit(RETURN ERROR); if (argc - 2 44 argv(l][0] *-') ( dir
- argv[2] ; norm- toupper(argv[1](1]) 'S'; trackonly -
toupperlargv[1)(1]) *C'; } el so dir - argv[1J; Stdout -
Output(); if ((Dos3ase - (struct DosLibrary
*)CpenLibrary("dos.library-,33)) NULL) (
Write(Stdout,0LD_LI3RARY,sizeof(OLD LIBRARY)); Exit(1); ) if
((lock - (struct FileLock •) BADDR(Lock(dir,SHARED_LOCK)))
NULL) | Write(Stdout,ERR_DIR,sizeof(£RR_DIR) );
Exit(RETURN_WARN); ) pid - lock- fl_Task; pkt -
AllocPacket(ACTICN_GET_3LOCK,sizeof(BLOCK),BLKMEM); if I!norm 4
4 GetCyl(BADDR(iock- fI_Volume)) 4 4
ReadDir(pid,pkt,lock- fl_Key)) ( if (top 1- 0)
FastDir(pid,pkt); else Write(Stdout,NO_FILES,sizeof(NOFILES));
) else if (INormalDir(pid,lock))
FreePacket(pkt,sizeof(BLOCK)); pkt -
AllocPacket(AC7ION_FREE_LOCK,OL,CL); * UnLockl) •
pkt- bp_?kt.dpArgl - ((ULONG)lock) » 2; DoPacket(pid,pkt);
CloseLibrary(DosBase); Exit(RETURNOK); J
• AC- As promised, the rumors are falling faster than the autumn
Commodore's net income rose 75 percent during the fiscal fourth quarter, locking up a fifth consecutive quarterly profit. The net income was 2.1 million, roughly six cents a share. For the year, the profit was 89 cents a share, 28.6 million total. Word has it that the European market is making more money than the United States market.
Commodore is currently working on an advertising campaign for the Amiga 2000, touting it as a desktop publishing and desktop video machine. The Amiga 500 is in a serious back-ordered state, but Commodore hopes to move about
15. 000 machines by the end of September, which is slightly
short of the previous projection that they'll sell
70. 000 by the end of the year. They hope to sell about 17,000
Amiga 2000 systems by then, too.
A big push for the Amiga in Germany, Norway and England is underway.
Commodore is giving local dealers the once-ovcr on the latest software and hardware.
Commodore is also assisting the development of the New York Institute of Technology's video digitizer. Insiders say the project is still months from completion.
Talk has also surfaced about a bug in AmigaDOS that hurt disk performance.
Supposedly, a typo in the operating system code changed the disk caching algorithm from least-rccently-used to most-recently-used, meaning disk performance isn't as good as it should be.
By the Bandito Rumors say CSA is working on a 68030- bascd Amiga for the government that increases performance even further than the CSA 68020 systems.
Word on the Magic Sac Macintosh emulator is that it is up and booting the Mac "sad face" screen, which means your Mac is sick and needs to see a dealer. Meanwhile, Data Pacific has added hard disk support to the Atari ST version, so such support may be added to the Amiga version, too.
The Commodore 64 emulator is still scheduled for release at the end of August, but company reps say they'll wait until every bug is crushed before they ship. List price is still S129.95. Turbo loads are not working at this point.
RJ Mical got word to the Bandito that the recent rumor about his game may be misleading. It may be true that Electronic Arts will not publish the game (once code-named "Ballgame"), but that doesn't mean it won't ever be published. He may find another publisher in the future. . .
Meanwhile, Mical and former Amiga Los Gatos hardware engineer Dave Needle have been hired by Epyx to work on new projects that are "nonsoftware-based," thus leading the company in a new direction. Said RJ: "We're designing a solar-powered flashlight, but don't tell anyone, OK?"
He is using the Amiga as a development station, however.
Recently, the Usenet Amiga group, comp.sys.amiga, was deluged with messages regarding Leo Schwab's VideoScape 3D animation that reproduced a scene from the "Red's Dream" movie at SIGGRAPH. Schwab, the author of display hacks such as "Robotroff" and "Viacom," brought the animation to the Aegis table in the Amiga booth. They played it on an Amiga 2000 with their music program, Sonix, doing the background music.
After the show, a representative of Pixar warned Schwab that he should not show the animation because the concept of a red, juggling unicycle is a copyright of Pixar, in much the same way that Disney restricts use of Mickey Mouse. Schwab worked carefully to avoid angering the Pixar reps, and all parties agreed to one last showing of Schwab's animation at a FAUG meeting.
After it was all over, Schwab ended his conclusive posting with a definitive phrase: "Pixar is going to have competition at the SIGGRAPH Film and Video Show next year."
For some reason, Pixar also took a jab at the Amiga in a paper they presented at the show. They were discussing a ray-tracing program that was rendering an image of moving Jello. Pixar said they had a roomful of Amigas working on the problem. . .
The Amiga is featured in a new movie "Disorderlies," which features the rap group the Fat Boys. Some people thought they saw the Amiga in the background in a laboratory in the latest James Bond movie, "The Living Daylights."
Continued on page 66 A ISA A Z I M G I M T E R V I E W S Amiga Artist: Brian Williams by John Foust If you are a fan of Amiga art, you certainly recognise the name Brian Williams.
Williams is a senior at Benedictine College in Lisle, Illinois, majoring in computer science. He has worked on artwork for past Commodore projects.
Along with programmer Glenn Tenney [known for porting Electronic Arts games) and Defender of the Crown artist Jim Sachs, Williams created images for the Amiga 2000 dealer demo disk shown at Spring COMDEX. Sachs worked on the "attract mode" of the demo; the initial screens to lure unsuspecting buyers to the machine.
The demonstration tells the story of ancient Egyptians who use the Amiga to present the Pharoah with plans for a giant sandstone Amiga 'A.' The ancient planners use desktop publishing and CAD programs in their design. The demo shows off the Amiga's sound, graphics and multitasking. The demo is quite long, consuming the equivalent of two or three disks of data.
As a programmer, Williams had hoped to create computer-aided design and paint programs for the Amiga. . .
Instead, he turned to artwork. He started by making picture disks for his local Amiga dealer. Soon, Amiga owners requested copies of his pictures.
Williams prepared several disks of images and distributed them freely.
When Williams first saw the Amiga, the Preferences program impressed him as much as a beta version of Deluxe Paint.
"Preferences blew me away. It showed full video because you could move the screen beyond the regular video area. I felt confident that someday Deluxe Paint would paint out there."
Williams also thinks software developers have been slow to realize the needs of Amiga artists. In particular, he emphasizes the need for programs that draw in the border regions of the screen (often called the overscan area). "Now we have full video in Deluxe Paint.
Why wasn't everything full video?
Because no one asked for it."
Nonetheless, Williams is very happy with some existing tools. "Deluxe Paint is an incredible tool. It is better than 90 percent of what I've seen on other systems. It is almost as if it [D-Paint] is an extension of myself; it has such a fluid user interface. That [interface] is something that no other Amiga program has captured." Williams remains hopeful that other programs will go beyond Deluxe Paint. 'There are no programs out there yet that express the full potential of this machine."
What techniques does Williams use to draw a picture? "First, you know what you are trying to draw. I don't usually touch the color palette; I optimize it later on. I start by blocking out light and shadow (to get the outlines), then fill-in and add shading." Williams then switches to magnify mode to dither and anti-alias lines. "Contrast That's all- important. You can't think of 'an object here, an object here,' Light and shadow are very important."
"I think a lot of people don't like drawing on a computer. They find it difficult because they like to think they are drawing on paper. They try to draw a straight line and they expect to lift the pencil to make the line thinner; 1 expect jagged lines. My lines are already dithered in my head."
Williams spends most of his time in magnify mode, adjusting thousands of pixels, one by one, to get the desired effect. "I have enough inspiration to carry me through the long parts. Often, my drawings are 50 percent finished after an hour. The time afterwards makes all the difference. If you expect it to be easy, then it will be hard."
Some of Williams' pictures are so lifelike, so detailed, that people wonder if they are digitized. He owns a Digi- View, but does not use it to produce his artwork. "Digitizers can be used or misused. They make it very easy for people to bring real world objects into their Amiga."
Does Williams consider digitized images to bo artwork? "Sometimes. I ask the person, What have you done with it?
Is it an original still-life that has some meaning or is it a picture from Popular Mechanics?' Nothing disappoints me more than downloading an image and finding that someone digitized something and touched it up. It requires a good eye to make a good picture."
"On the Amiga, I set; the digitizer as good for inputting very basic images.
Once it's input, that is only the begin- ning You start pulling it apart, you redefine the image. For me, the digitized image is only the start of a lot of hours of work."
¦AC* Showcased here are just five of the many fine works of art by Brian Williams.
VifAMIGA Amiga Wot'kbench™= AMIGA" & COMMODORE " PRODUCTS Prices so low we will not advertise them... We will not be undersold!
Inside CA 1-818 366-5305 • Outside CA 1-800 443-9959 KJ Computers, quite possibly the largest Amiga dealer in the USA, stocks all Amiga and third party Amiga products, as well as most popular peripherals and supplies. KJ is easy to do business with, their staff is knowledgeable, and delivery fast. For all this, and best pricing available, give KJ Computers a call today!
COMPUTERS 10815 Zelzah Avenue, Granada Hills, California 91344 (continued from page 63) The Mytech software company has ported the COMAL language to the Amiga. Reportedly, it leaves about 150 K of memory for programs in a 512 K machine. No word on when it will be out.
Digital Creations, the Gizmos people, arc working on several projects: a S700 professional quality genlock, a video digitizer, a HAM paint utility and a program that prints IFF pictures as wall-sized posters.
Microlllusions is said to working on new programs, including an advanced animation program and a music program called Music-X.
"Rumormongcrs" venture that Broder- bund is developing software for the Amiga. In their latest catalog, Broder- bund used Amiga screen shots to show off sample screens from their Apple 1IGS programs. They have also hired some Amiga-experienced programmers.
Aegis Animator author Jim Kent is working on an Atari ST program for Antic Software called CyberPaint. Antic may also be coming out with another animation program for the ST. Has Kent abandoned the Amiga? Not really, he did some of the compression routines for the yet-unrcleased Amiga Live!.
Lattice says their latest C compiler, version 4.0, will be out in October. Jim Good now showed his Amiga source- level debugger at a recent BADCE meeting. He also said version 4.1 of the Manx C compiler will be shipping this fall.
A new Modula-2 compiler is available, From the accounts I've seen on the networks so far, it sounds great. The bugs are few and far between, which is a far cry from the TDI compiler. The manual is huge and several libraries of routines are included. A review should appear in this magazine very soon. The new compiler, priced at SI 99, is distributed by Oxxi (the people who market MaxiPlan) (714) 999-6710.
A company called the Gomstone Group has a low-cost 68020 68881 upgrade board for the Amiga. For more information, call (312) 537-7405.
At last word, news came that Atari has bought the Federated consumer electronics chain. Federated is one of Commodore's biggest sellers of Commodore 64, 128 and Amiga products. Will Atari let them sell Commodore products?
• AC- Programming Modula-2 with the Amiga1 Fast File I O A module
to call the DOSFiles Read and Write procedures without going
through Streams.
By Steve Faiwiszeivski Probably the easiest method of doing I O in Modula-2 is to use the InOut module. Unfortunately, in the TDI package, 1 O done through InOut can be painfully slow. The reason for the lack of speed is that for every character to be read (or written), the InOut module calls the ReadChar procedure from module Streams, which in turns calls the AmigaDOS Read (or Write) procedure (declared in the DOSFiles module).
The extra level of indirection (going through the Streams module) and all the procedure calls required for the reading writing of each byte add up to a great deal of overhead which affects performance tremendously. Well, there is a better wav (why else would I be talking about it?).
The "better way" requires that you have a module to call the DOSFiles Read and Write procedures without going through Streams. In addition, instead of calling Read (or Write) for every character, the I O should be buffered, meaning that chunks of bytes will be read or written, rather than just single characters. Far fewer calls to Read will be necessary, and the overhead will be reduced significantly, The programs using this 'fast I O' module need not know anything about buffering; they simply call the 'fast' read and write procedures. Such a module (called FastFilcIO) appears in the following
source listing. A few points of interest regarding FastFilelO follow.
Notice how the type 'FastFilc' is declared in the definition module. Such a type is knowm as an opaque, since any other module cannot examine the component parts of FastFile.
FastFilc is fully declared in the implementation module. This practice of concealing the gory details is known as 'data hiding' and is encouraged in Modula-2. Any client module
(i. e. any module that makes use of FastFilcIO) will be able to
pass only variables of type FastFile as parameters to proce
dures and to assign one FastFile variable to another.
Continued... Notice in the procedure 'FastRead' how bytes are copied directly from the FastFilc's interna! Buffer to the spot in memory pointed to by the 'Buffer7 parameter (the opposite is true for Fast Write). Instead of using arrays (i.e. copy from one array to another), I use pointers. Pointers allow for greater flexibility, while also avoiding the size constraints that would be introduced if arrays had been used. A note of caution: I take advantage of TDI's non-standard ability to use the INC procedure to increment pointers (and addresses). The original definition of Modula-2 specifics
that INC can be used only on scalar types (such as INTEGER, CARDINAL, CHAR, subranges and enumerated types), so other Modula compilers might consider using INC on pointers to be an error.
Just how much faster is this FastFilelO module? The following listings include two simple file copiers one using InOut and one using FastFilelO. Both programs read one byte at a time from the input file and write it to the output. The difference in speed is impressive the 'SlowCopy' program takes more than 15 seconds to copy a 2K file; the 'BetterCopy' program takes less than a second to complete the same task. Note that the 'BetterCopy' can still be improved. Instead of reading one character at a time, it could read blocks of characters, thus decreasing overhead and improving overall
Late Breaking News By the time you read this article, a new Modula-2 compiler should be available for the Amiga. This package, called the Benchmark Modula-2 Software Construction Set, is distributed by Oxxi, Inc. (Tel: 714-999-6710). An in-depth review should appear in these pages shortly, so all I'll say now is that this one-pass compiler is lightning fast when it comes to compile and link speed, the new compiler puts all other Amiga compilers to shame.
INSIDER RAM BOARD & CLOCK The INSIDER Is tile ''original" plug In, no solder, internal memory expansion board. It gives you an additional One full Meg of Memory to your Amiga 1000. The INSIDER features a Real Time Clock Calendar, true EAST Memory, works with Sidecar and auto contig's under 1.2. One Year Warranty] 0NLYS349.9S KWIKSTART PLUS for Amiga 1000 KWIKSTART puts the new Amiga 1,2 Kickstart in ROM. This allows faster startup time, but it doesn't lock you into 1.2, Switchable feature lets you still use Disk Based Kickstart. Plugs into the 68000 processor and requires one PAL change on
Daughter Board.
The PLUS gives you an additional ZS6K to use when running under tho 1.2 system. More features and less work than other 1.2 kits and it's compatible with the INSIDER. ONLYS169.9S MULTI-START for Amiga 500 & 2000 Compatibility Enhancer tor the A500 and A2000, MULTI-START lets you run all the old Amiga programs like the Transformer, Archon, Skyfox, Public Domain Software and many more, MULTI-START puts the Amiga 1.1 operating system in ROM, now you can enjoy the same Software compatibility as all A1000 owners. It's user installable, no soldering or trace cutting. Switch from 1.2 to
1. 1 or 1.1 to 1,2 using Amiga keyboard, no software to run! Get
the most from your A500 or A2000. ONLYS129.S5 3 FOOT disk
drive cables, extend your external drives with ease, for Ihe
A1D00, A500 S, A2DOO ONLY S24.95 Hard Id find parts, ROMS,
Custom Chips, F series, DB23 connectors and more. Call lor
help in getting Ihe parts you need. Full Repair Service
VISA, M C, AMEX, COD (cash or M.O.) Sorry no P.O.'s Order Today: Michigan Software 43345 Grand Riwr n NOVI, Ml 48050 Or CALL: [___( 313-348-4477 Amiga BBS 313-348-4479 Dealer Inquires on multiple orders Invited.
PROCEDURE FastReadChar(F : FastFile; VAR c : CHAR); (* Read on character from file F and place It in c. *) (* File F must be already open for Input. *) (* FastDone is set appropriately. *) PROCEDURE FastReadLine(F : FastFile; VAR line : ARRAY OF CHAR); (* Read a string of characters from file F and place them in line. The reading of characters is terminated when an Er.d-Of-Line character Is encountered, or line become full.
* 1 * File F must be already open for input. *) (* FastDone is
set appropriately. *) PROCEDURE FastRead(F : FastFile; Buffer :
ADDRESS; Length : LONGCARD): LONGCARD; (* Read bytes and place
them in memory starting *) (* at the address pointed to by
Buffer. *) (* Length specifies how many bytes to read. *) *
Returns the actual number of bytes read. •) I* File F must be
already open for Input. *) I* FastDone is set appropriately. ¦)
PROCEDURE FastWrlteChar(F : FastFile; VAR c ; CHAR) ; (* Write
character c to output file F. *) (* File F must be already open
for output. *) (* FastDone is set appropriately. *) PROCEDURE
FastWrite(F : FastFile; Buffer : ADDRESS; Length : LONGCARD):
LONGCARD; (* Write bytes from memory, starting at the address
*) * pointed to by Buffer, to file F. *) (* Length specifies
how many bytes to write. *) (* Returns tho actual number of
bytes written, *) * File F must be already open for output. *}
(* FastDone is set appropriately. «) PROCEDURE FastEQF(F :
FastFile); BOOLEAN; (* Returns true of end of file was
encountered *) (* for input file F, This procedure has no *) (*
meaning for output files. *) DEFINITION MODULE FastFilelO; FRCM
SYSTEM IMPORT ADDRESS; TYPE FastFile; VAR FastDone : BOOLEAN;
(* Note: All the following procedures modify the FastDone *) (*
variable. FastDone is TRUE if the operation was *) (*
completely successful, and FALSE otherwise. *) PROCEDURE
FastOpenlnput(VAR F : FastFile; VAR name : ARRAY OF CHAR; Site
: CARDINAL) ; (* open file for input. *} (* name : the name of
the file to open for input. *) (* Size : specifies the size of
the buffer to be used *) (* internally for reading. The larger
the buffer *} (* the less the overhead involved in reading. *}
(* FastDone is set appropriately. *) PROCEDURE
FastOpenOutput(VAR F : FastFile; VAR name : ARRAY OF CHAR; Size
: CARDINAL); (* Open file for output. *) (* name ; the name of
the file to open for output. *) ("Size ; specifies the size of
the buffer to be used *) (* internally for writing. The larger
the buffer *) (* the less the overhead involved in writing. *)
(* FastDone is set appropriately. *) PRCX1EDURE FastClose (VAR
F ; FastFile); END FastFilelO.
MPLEMENTATION MODULE FastFilelO; (*ST-*) (* Disable Subscript checking. Not needed here *) (*SQ+*) FROM SYSTEM IMPORT NULL, ADR, ADDRESS, TSIZE; FROM Memory IMPORT AllocMen, FreeMem, MemPublic, MemReqSec ; FROM DOSFilos IMPORT Open, Close, Write, Read, ModeOldFile, ModeNewFile, FileHandle; FROM DQSLlbrary IMPORT DOSName, DOSBase; FROM Libraries IMPORT OpenLlbrary; CONST EOL = 12C; [* LF ends a line *) TYPE CharPtr - POINTER TO CHAR; FastFile = POINTER TO FastFileRec; FastFileRec - RECORD IndexPtr, bufp : CharPtr; BufSize: CARDINAL; mode, length : LONGINT; fh : FileHandle; eof ; BOOLEAN; END;
PROCEDURE Flush(F : FastFile): BOOLEAN; (* Write out the file's buffer to disk •) MODULA-2 the successor to Pascal VAR si ze, ret : LONGINT; BEGIN WITH FA DO size LONGINT(ADDRESS(IndexPtr) - ADDRESS(bufp)); ret Write (fh,bufp, size) ; IF (ret - 0) OR (size ret) THEN RETURN FALSE END; length := 0; IndexPtr bufp END; RETURN TRUE END Flush; PROCEDURE FillBufferfF : FastFile); (* fill the file's buffer from bytes read from disk •) VAR i : CARDINAL; BEGIN WITH F* DO length := Read (fh,bufp,LONGINT(BufSize)) ; IF length - 0 THEN eof := TRUE ELSE IndexPtr bufp END; END; END FlllBuffer; PROCEDURE
CommonOpen(VAR F : FastFlle; VAR name : ARRAY OF CHAR; Size : CARDINAL; Mode : LONGINT) : BOOLEAN; VAR tmp : FileHandle; BEGIN tmp := Open (name,Mode) ; IF tmp « 0 THEN RETURN FALSE END; F := AllocMem(TSIZE(FastFlleRec),MomRcqSet(MemPubllc)); IF F = NULL THEN (* Oh oh! Not enough memory for another FastFlleRec *) Close (tmp) ; RETURN FALSE; END; WITH F* DO bufp AllocMem(LONGCARD(Size),MemReqSet(MemPubllc!); IF bufp - NULL THEN [* Not enough memory for our buffer. Better cleanup *) Close (tmp) ; FreeMem(F,TSIZE(FastFlleRec)); RETURN FALSE END; IndexPtr := bufp; length 0; fh :*¦ tmp; eof :=*
FALSE; BufSize Size; mode :¦= Mode; END; RETURN TRUE END CommonOpen; PROCEDURE FastOpenlnput(VAR F : FastFile; VAR name : ARRAY OF CHAR; Size : CARDINAL); BEGIN IF CommonOpen(F,name,Size,ModeOldFile) THEN FillBuffer (F); FastDone := TRUE ELSE FastDone := FALSE END; END FastOpenlnput; i FULL interface to ROM Kernel.
Intuitior, Workbench and ArrngaDos i Smart linker for greatly reduced code size I True native code implementation (Not UCSD p-Code or M-code) i Sophisticated multi-pass compiler allows lorward references and code optimization i ReallnOut. LonglnOul. InOut.
¦ SuppDrts real numbers and transcendental functions ie sm. Cos.
Tan. Arctan. Exp. In. Log. Power sqd
• 3d graphics and multi-tasxing demos ¦ CODE statement for
assembly code ¦ Error lister will locate and identify all
errors in source code ¦ Single character I O supported ¦ No
royalties or copy protection ¦ Phone and network customer
support provided ¦ 350-page manual Strings. Storage Terminal i
Streams. MathLibO and all standard modules i Works with single
floppy 512K RAM Pascal and Modula-2 source code are nearly
identical Modula-2 should be thought of as an enhanced superset
cf Pascal Professor Niklaus Wirth (the creator of Pascal)
designed Modula-2 to replace Pascal Added features of Modula-2
not lound in Pascal ¦ CASE has an ELSE and may contain
subranges i Dynamic strings trial may be any size ¦
Multi-tasking is supported ¦ Procedure variables » Module
version control ¦ Programmer def.nable scope of objects ¦ Open
array parameters (VAR r ARRAY OF REALS ¦ Elegant type
transfe' functions ¦ Programs may be broken up into Modules tor
separate compilation ¦ Machine level interface Bit-wise
operators Direct port and Memory access Absolute addressing
Interrupt structure Ramdisk Benchmarks (secs) Compile Link
Execute Optomized Size Sieve of Eratosthenes 6 1 49 42 125
bytes Float 6 7 72 86 3944 bytes Calc 5 7 48 36 1736 bytes Null
program 4 8 4 7 1130 bytes MODULE Sieve.
MODULE Float.
CONST Size 8190, FROM MathLibO IMPOR- sin, In. Exp TYPE FlagRange |0 Size|, sqrt. Arctan.
FlagSet SET OF FlagRange, VAR *,y REAL i CARDINAL VAR Flags FlagSet, BEGIN ('$ T-.$ A-.SS-'l i FlagRange, x 1 0.
Prime, k, Count. Iter CARDINAL.
FOR i 1 TO 1000 DO BEGIN C$ S-,$ R-$ A- ') y - sm (x), y - In (x); y = exp (x).
FOR Iter - 1 TO 10 DO y sqrt (x). Y arctan (x).
Count - 0.
* x . 001 Flags FlagSet)), ('empty set') END FOR . ¦ 0 TO S. e DO
END float IF (i IN Fiagsi THEN Prime - (i * 2) • 3. K i • Prime
WHILE k S*7C DO MODULE calc.
INCL (Flags k).
VARa.b.c REAL n i CARDINAL k - k • Prime.
BEGIN (*$ T- SA-.SS-*) END n 5000 Count * Count • 1 a 2 71628 b - 3 14159. C - 1 0.
END, FOR i I TO n DO END.
C - c'a c c*b. C - c a. c - c b END END.
END Sieve END calc Product History The TDI Modula-2 compiler has been running on the Pinnacle supermicro (Aug
84) , Atari ST (Aug 85) and will soon appear on the Macintosh and
UNIX in the 4th Qtr 86 Regular Version S89.95 Developer s
Version $ 149.95 Commercial Version $ 299.95 The regular
version contains all the features listed above The developer
s version contains additional Amiga modules, macros and
demonstration programs - a symbol file decoder - link and
load file disassemblers - a source file cross referencer
- the kermit file transfer utility - a Modula-2 CLI - modules tor
IFF and ILBM The commercial version contains all of the Amiga
module source tiles Other Modula-2 Products Kermit - Contains
lull source plus $ 15 connect time to CompuServe $ 29 95 Examples
- Many ot the C programs from ROM Kernel and Intuition
translated into Modula-2 $ 24 95 GRID - Sophisticated multi-key
file access menod with over 30 procedures to access variable
length records $ 49 95 TDI SOFTWARE. INC. continued... Dallas.
Texas 75238 ¦ (214) 340-4942 CompuServe Number 75026.1331 10410
Markison Road Telex 888442 TRANSFER C64 C128 files to and from
your Amiga!
Disk-2-Disk reads your PaperChp, SpeedScript and Pocket Writer documents or other files on floppy disk directly into your Amiga.
Transfers all file types. Use these transferred Hies with your favorite Amiga programs.
• Reads writes 1541 4040 and 1570 1571 disk formats.
• Converts Commodore PET ASCII to Amiga ASCII and vice versa.
TRANSFER MS-DOS and ATARI ST files to and from your Amiga!
Dos-2-Dos reads Lotus 123 worksheets, wordprocessing documents or any other tiies on floppy disk directly into your Amiga for use with your favorite Amiga programs.
* Reads writes both 5 25 AND 3.5' MS-DOS disks.
* Reads writes 3.5" Atari ST diskettes (GEM format).
* Converts ASCII file line ending characters.
Disk-2-Disk requires trie Amiga model 1020 5 25' disk drive. Dos-2-Dos runs on any standard Amiga Disk-2-Disk S49 95. Dos-2-Dos $ 55.00. Add S3.00 for shipping and handling, CA residents add 6% sales tax Central Coast Software™ 99 268 Bowie Drive. Los Osos, CA 93402 (805) 528-4906 PROCEDURE FastOpenQutput(VAR F : FastFile; VAR name : ARRAY OF CHAR; Size ; CARDINAL); BEGIN FastDone ;= ComraonOpen(F,name,Size,ModeNewFilo) END FastOpenOutput; PROCEDURE Fast-Close (VAR F ; FastFile); (* Close the actual disk file, ana release *1 (* all the teir.ory allocated to it, BEGIN WITH F* DO IF mode =
ModeNcwFlle THEN FastDone Flush(F) ELSE FastDone :™ TRUE END; Close(fh); FrecMeir. (bufp, LONGCARD (BufSize)) ; END; FreoMcm (F,TSIZE (FasLFi leRec)) ; END FastClose; PROCEDURE FastReadChar(F : FastFile; VAR c : CHAR); BEGIN WITH FA DO IF mode - ModeOldFile THEN IF length - LONGINT(ADDRESS(IndexPtr) - ADDRESS(bufp)) THEN IF eof THEN FastDone ;= FALSE; RETURN END; FillBuffer(FI; IF eof THEN FastDone FALSE; RETURN END; c := IndexPtr'; INC (IndexPtr); FastDone TRUE ELSE FastDone :* FALSE END; (* If *) END; (* with *) END FastReadChar; PROCEDURE FastWrlteChar(F : FastFile; VAR c ; CHAR); VAR st
at : BOOLEAN; BEGIN WITH F' DO IF mode - ModcNcwFile THEN FastDone TRUE; IF CARDINAL(ADDRESS(IndexPtr) - ADDRESS(bufp) ) = BufSize THEN FastDone :** Flush(F) END; IndexPtr' c; INC (IndexPtr) ; ELSE FastDone :¦ FALSE END END; END FastWrlteChar; PROCEDURE FastRead(F : FastFile; Buffer ; ADDRESS; Length : LONGCARD) : LONGCARD; VAR TmpBuf ; CharPtr; Tmplndex : CARDINAL; TmpLength, 1, CharsToMove, Charsln3uffer ; LONGCARD; BEGIN TmpLength Length,- TmpBuf CharPtr (Buffer); Tmplndex 0; WITH F' DO IF node - ModeOldFile THEN WHILE (TmpLength C) AND NOT eof DO CharsInBuffer := LONGCARD (length.) -
LONGCARD(ADDRESS(IndexPtr) - ADDRESS(bufp) 1 ; IF TmpLength CharsInBuffer THEN CharsToMove := CharsInBuffer ELSE CharsToMove ;¦ TmpLength END; FOR i : TO CharsToMove DO TmpBuf' :- IndexPtr'; INC (IndexPtr) ; INC (TmpBuf) END; DEC(TmpLength,CharsToMove); IF length = LONGINT (ADDRESS (IndexPtrl - ADDRESS (bufpl I THEN FillBuffer(F) END; END; DEC (Length,TmpLength); FastDor.e := (TmpLength - 0); RETURN Length ELSE FastDone FALSE; RETURN 0 END END; END FastRead; PROCEDURE FastWrite(F : FastFile; Buffer : ADDRESS; Length : LONGCARD): LONGCARD; VAR i, RoomlnBuffer, CharsToMove, TmpLength :
LONGCARD; Tmplndex : CARDINAL; TmpBuf : CharPtr; stat : BOOLEAN; BEGIN TmpLength Length; TmpBuf CharPtr(Buffer); Tmplndex 0; stat TRUE; WITH F" DO IF mode =• ModeNewFile THEN WHILE (TmpLength 0) AND stat DO RoomlnBuffer LONGCARD(BufSize) - LONGCARD (ADDRESS (IndexPtr) - ADDRESS(bufp)); IF TmpLength RoomlnBuffer THEN CharsToMove :=* RoomlnBuffer ELSE CharsToMove := TbipLength END; FOR 1 1 TO CharsToMove DO IndexPtr" :¦= TmpBuf"; INC (IndexPtr) ; INC (TmpBuf) END; DEC(TmpLength,CharsToMove); IF CARDINAL (ADDRESS (IndexPtr) - ADDRESS (bufp)) BufSize THEN stat Flush(F) END; END;
DEC(Length,TmpLength); FastDone stat AND (TmpLength = 0); RETURN Length ELSE FastDone FALSE; RETURN 0 END END; END FastWrite; PROCEDURE FastEOF(F : FastFile): BOOLEAN; BEGIN RETURN F".eof END FastEOF; PROCEDURE FastReadLine(F : FastFile; VAR line : ARRAY OF CHAR) ; VAR i : CARDINAL; BEGIN i 0; WITH F" DO IF mode - ModeOldFile THEN REPEAT IF NOT eof THEN llne(i] IndexPtr"; INC (IndexPtr) ; INC (i); IF length = LONGINT(ADDRESS(IndexPtr) - ADDRESS (bufp)) THEN FillBuffer(F) END; END; UNTIL eof OR (line[i-l) - EOL) OR (i - HIGH(line)) ; IF line(i-I) =• EOL THEN line[i-l| := 0C END; 1ine[i] 0C;
FastDone NOT eof; continued.. "We specialize in AMIGA and C64 128!"
Now In Stock!
Insider 1-meg board • w Clock-Calendar Call For Our Low Pricing!
SOFTWARE 31621 2 Delaware Ave.
Kenmore, N.Y. 14217 SUPERMARKET
(716) 873-5321 ELSE FastDone FALSE END; END; (* with *) END
FastReadLine; BEGIN (* Make sure that DOS library is opened
*) IF DOSBase - NULL THEN DOSBase OpenLibrary(DOSName,0);
END; END FastFilelO.
MODULE SlowCopy;
* ************......
* This is a small, slow (and stupid) copy program,*)
* which goes through InOut to do its I O. *)
* Feel free to use this code as you please. You ')
* don't even have to keep my name in it. Just don't
* blame me for it! *) , FROM InOut IMPORT Openlnput, OpenOutput,
Closelnput, CloseOutput, Read, Write, Done, WrlteStrlng,
WriteLn; IMPORT SIGBreakC; FROM DOSLlbrary FROM Tasks IMPORT
Trapper; IMPORT TaskPtr, FindTask; VAR c : CHAR; Myself :
TaskPtr; Ldone : BOOLEAN; Check out our new price and features
for Multi-Forth™ Jle f 'K'KCVaXirC'K Version 1.2 Multi- Forth
increases the power, speed and flexibility of this already
successful programming language and development tool. Some ol
the new features include:
• Local Multi-Tasking
• Sound Drivers
• Complete Set of Include Files
• New AmigaDos 1.2 Calls
• Enhanced Kernel If you haven't tried Multi-Forth you may not
have yet unleashed the full power of your Amiga.
Call our toll free number for a technical data sheet or check out our online services on CompuServe at GO FORTH.
Now only $ 89.00 4701 Randolph Rd, Suite 12 Rockville, MD 20852 301-984-0262 in MD 1-8QO-FORTH-OK (367-8465) PROCEDURE CtrlC(): BOOLEAN; (• sec if control-c signal has arrived •) BEGIN RETURN SIGBreakC IN Myself'1 .tcSigRecvd END CtrlC; BEGIN Myself :*• FindTask(0); WriteString(' slow File Copier'); WriteLn; WriteLn; Openlnput (•'); (* prompt for, and open input file •) OpenOutput(w); (* prompt for, and open output file *) Ldone := Done; WHILE Ldone AND NOT CtrlC() DO Read(c); Ldone Done; * we have to save the value of *) Write(c) (* Done because Write changes it. ¦) END; Closelnput;
CloseOutput; END SiowCopy.
MODULE BetterCopy;
I. (¦ Here's a
slightly improved copy program. ¦) (' Instead of going through
InOut, we read *) (* characters using the FastFilelO module.
•) (" Speed can still be improved by changing *) (' the code
to read blocks of characters, *) (* instead of one character
at a time *) (...... FROM FastFilelO FROM InCut FROM
DOSLibrary FROM Tasks IMPORT Trapper; IMPORT FastOpenlnput,
FastOpenOutput, FastClose, FastReadChar, FastWriteChar,
FastEOF, FastFile, FastDone; IMPORT WriteLn, WriteString,
ReadStrlng; IMPORT SIGBreakC; IMPORT TaskPtr, FindTask; CONST
EOL - 12C; BlockBufferSize - 544; CACHESIZE - BlockBufferSize
* 2; (* holds 2 block buffs *) TYPE ModeType = (input,output);
VAR FastOutput, Fastlnput : FastFile; c : CHAR; dummy :
BOOLEAN; Myself : TaskPtr; PROCEDURE CtrlC(): BOOLEAN; (* see
if control-c signal has arrived *) BEGIN RETURN SIGBreakC IN
Myself*.tcSigRecvd END CtrlC; PROCEDURE OpenFile(VAR F:
FastFile; mode: ModeType): BOOLEAN; VAR name : ARRAY [0.. 64]
OF CHAR; done : BOOLEAN; BEGIN done := FALSE; REPEAT
WriteString('Enter '); IF mode - input THEN
WriteString('Input') ELSE WriteString('Output') END;
WriteString(' File Name: '); ReadStrlng(name); IF mode - input
THEN FastOpenlnput(F,name,CACHESIZE) ELSE
FastOpenOutput(F,name,CACHESIZE) END; UNTIL FastDone OR
CtrlCO; RETURN FastDone; END OpenFile; BEGIN Myself :-
FindTask(0); WriteString (' Better File Copier') ; WriteLn;
WriteLn; IF OpenFile(Fastlnput,input) THEN IF
OpenFile(FastOutput,output) TH2N WHILE NOT FastEOF(Fastlnput)
AND FastDone DO FastReadChar(FastInput,c);
FastWriteChar(FastOutput, c) END; FastClose (FastOutput) END;
FastClose(Fastlnput) END END BetterCopy.
• AC* When running a C program from a CL1 window, all routines
(such as printfO, putc ), getcO) use the CLI for input and
output. This method is satisfactory for C programs when you
know the program will be invoked from the CLI, and not by
double clicking on an icon. If separate windows are desired for
input and output, a Console can be opened on the WorkBench
Window I O C Routines for input from and output to an arbitrary Window on an arbitrary Screen by Read Predmorc In general, you must open a window on an arbitrary screen and attach a console to this window. The details of opening this console are discussed in the Rom Kernal Manual chapter on the Console Device. One of the ROM demonstration programs, 'cons.c', is available on Fred Fish Disk 5. The 'cons.c' program works fine, but has many details that 1 have incorporated into general purpose subroutines. These routines allow a console device to be opened with any TextFont and then allow input
and output to the device.
Finally, close the console in a straight-forward way, without having to mess with the details.
Table 1 summarizes the various input and output options available to the Amiga C programmer. Three modes of I O are presented. The first mode is for printing to and getting input from the CLI where the program was started. This method cannot be used if the program is started from WorkBench with an icon, because a 'prinlfO' or 'putsO' call causes a software error and a visit from Mr. Guru. You might hope that the output would just be lost, but that is not what happens with WorkBench 1.1. The second method, which can be used with a program started from the WorkBench, is used to open a CON:
device and do the I O through that window. As is summarized in Table 1, a pointer to a FILE, pFILE, is set equal to the result of an fopenO of a CON:. Inputting a character is then accomplished with gctc(pFILE). Inputting a string is accomplished with fgcts(buf,num,pFILE), where buf is a pointer to char, which was probably defined as: char buf(803; The maximum number of input characters is set by num.
Formatted input can be done with the fscanf pFILE,format,pointers) function. Note that the FILE pointer, pFILE, is the first parameter in the fscanfO routine and is the last parameter in the fgetsO, putc() and fputsO routines. This inconsistency in C will never be changed, since these functions are defined in this manner in the Keminghan and Ritchie bible, The C Programming Language.
Output is accomplished with the functions putc(ch,pFILE), fputs(buf,pFILE) and fprintf(pFILE,format,variables) for character, string and formatted output, respectively.
When you are finished using a WorkBench Console, it is closed with: fclose(pFILE); I have developed a set of analogous routines for input from and output to an arbitrary Window on an arbitrary Screen. The Window console is opened with: console = AttachConsole(window, name): In this case, console is a pointer to a Console structure, window is a pointer to a Window, and name is a pointer to a string.
The Console structure is not an Amiga structure, but rather one 1 have defined that incorporates the input and output message ports that are required for console I O.
The Console structure is defined in my header file WINDOW.H as: " Group all ports, message pointers 7 ' and buffers in a 'Console' structure. ' struct Console struct MsgPort 'WritePort; * Defined in exec ports.h , ' struct (OStdReq 'WriteMsg; * Defined in exec io.h . * struct MsgPort 'ReadPori; struct lOStdReq 'ReadMsg; char readbuffer(48), }; continued... AMIGA DUAL 3V2" DISK DRIVES 100% Compatable with Amiga 500, 1000 & 2000 Computers
• Internal Power Supply
• All Metal Chassis
• Horizontal Layout
• Vented Enclosure
• On-Off Switch
• 6 foot 3-prong linecord
• Primary Circuit Breaker Protected
• Color Coordinated to Amiga Computers ONLY 395.00 20 Meg Hard
Drive (SCSI) with Controller ONLY $ 785.00 Comp-U-Save ti t
Maple Avenue. Westbury. NY I 1590 In NY State (516) 997-6707
Outside NT State (800) 356-9997 "Meeting the Needs of People in
the Electronic Age" Don't worry if you don't know about about
Message Ports. I wrote these routines so that you wouldn't have
to bother with that level of detail. If you are really curious,
you are welcome to delve into these routines, but it is not
Input from a Window console is done with congetc(console) and congcts(buf,num,console) for character and string input, respectively. Formatted input is done in two steps. First, congets(buf,num,console) is used to input a string, then sscanf(buf,format,pointers) decodes the input string and stores the results using the pointers to variables.
Output to a Window console is accomplished with conputc(ch,console) and conputs(buf,console) for character and string output. As for input, formatted output is done in two .steps. First, sprintffbuf,format,variable) is used to make a formatted string in the string buffer, buf. This string is then output with conputs(buf,console).
These Console routines arc illustrated in the WINDOW IO.C demonstration program. The program I have developed opens a 640 by 200 screen with 3 bits planes for 8 colors. Three resizable windows arc then opened with the Ruby-8, Sapphire- 14 and Carnct-9 fonts. Three consoles are then opened in those windows.
A simple I O demo is then done with the input to Console-0 being output to both Console-1 and Console-2. The first demonstration does character I O using congetcO and conputcO. The Console-0 window must be active for this test. The character is echoed back to Console-0 by the congetcO function. The main program also gives the hexadecimal code for the input character and sends the character to both Console-1 and Console-2. A CTRL S causes the program to move on to the next stop and CTRL C exits the program.
The second step uses string I O with the congetsO and conputsO functions. An entire line of characters can be input until a carriage return is encountered. This string is sent to Console-1 and Console-2. With the chosen Fonts (which have proportional spacing), the conputsO output will be much more compact than the same characters sent out with the conputcO function.
This proportional spacing usually looks nicer, but has a limitation. If, for example, a large font is used and only 55 characters fit on a line when conputcO is used, the conputsO function can only put 55 characters on a line. This limit holds true, even if these 55 characters only take up 2 3 of a line when proportionally spaced. This "feature" appears to be specific to the Amiga console I O, not my implementation of it.
Also, if two strings of 20 characters are output with conputsO, without a newline ' n' at the end of tho first string, a blank gap shows up between the two strings of characters. This gap is present because the starting position of the second string is calculated as if the first string was output character by character.
The indexO function, which is part of the Manx C library, is used to test for a CTRL S or CTRL C in the input string. A CTRL S skips to the next step and a CTRL C exits. The next three steps use string input and a sscanfO on the input string to input integers, hexadecimals and floating point numbers.
Each time, a CTRL-S is used to skip to the next step.
Window.h The window.h header file starts with a number of include statements for the Amiga 'include' directory. The Console structure is then defined to include all ports, message pointers and an input buffer. The size of this structure is 64 bytes.
Next, a set of bit flags are defined, so that various libraries, screens, windows and window consoles can be opened with the initializeO routine. The flags are accumulated in the variable, cur resource. This variable is then tested in the closedownO routine, so that all the system resources are released before the program exits.
Console routines The following are detailed descriptions of each of my console routines: AttachConsoleO The Console opening routine is AttachConsolefwindow, name), which involves many details. First, memory is allocated for a Console structure. This structure, struct Console, is defined in the 'window.h' file and currently has a size of 64 bytes, A zero is returned by AttachConsoleO if memory cannot be allocated, or if one of the subsequent message ports cannot be opened.
Next, the string ".write" is concatenated to the console name and this string is used to create a WritePort. The address which is returned by the CroatcPortO function is stored in the console- WritePort pointer. Next, this port address is used in a CreateStdlOO call and the returned pointer is stored in console- WriteMsg. The same thing is now done for the ReadPort and Read Msg pointers.
So far, we have opened up twro ports, but they have not been related to the desired window. This reaction is done by equating the WriteMsg io Data pointer to the window pointer, and the io_Length to the size of the Window structure: console- WriteMsg- io_Data = (APTR) window; console- WriteMsg- io_Lengfh = sizeof('window); Summary of I O possibilities Via the CLI: OPEN Automatic opening of stdln. Stdout and stder INPUT Character getcharO; String gefs(buf), Formatted scanf(format.pointers); OUTPUT Character putchar(ch); String puts(buf); Formatted . ;printf(format,variabtes); CLOSE Automatic
closing of stdln, stdout and stderr Via a Work Bench console: OPEN pFILE = fopenfconstr.'wO: INPUT Character String Formatted OUTPUT Cnarocter String Formatted CLOSE getc(pFILE); fgets(buf,num .pFILE); ;fscanf(pFILE,formaf,pointers) ; putc(ch.pFILE); fputs(buf.pFILE); : fprintf(pF!LE,format,variables : fclose(pFILE); This initialized IO Standard Request structure, WriteMsg, is used to open a console.dcvice with: OpenDevlceCconsole.device', 0, console- WriteMsg, 0); If this opening is successful, the io Device and io Unit for the RcadMsg are equated to those devices for the WriteMsg.
Finally, a SendlOO command is done to put the first input character from the keyboard into console- readbuffer[0). The address of the memory allocated for the Console structure is returned. Much work has been done just in preparation to get the first character from the keyboard, but subsequent I O will be done in a straightforward manner, using the same format as other C I O functions.
DetochConsoleO The closing of a Window Console involves closing the various resources which were opened with AttachConsoleO and freeing up the Console structure memory.
ConputcO The character output routine conputcO is called with a character argument and a pointer to a Console structure. The continued... Via a window console: OPEN INPUT Character String Formatted console = AttachConso!e(window,name); congetc(console); congets(buf,num. Console); congetsfbuf.num.console); sscanffbuf.format.pointers). OUTPUT Character String Formatted conputc(ch.console); conputs(buf.console); sprintffbuf.format.variables); conputs(buf,console); DetachConso!e(console); CLOSE Where: char 'but, ch; struct Console 'console; FILE 'pFILE; int num; constr Is a string such as
'CON:0 10 640 110 console name" format is a string such as'i=%d. X=%f, string=%s, char=%c n' Pointers are pointers to variables or the addresses of variables, such as &i 5 Reasons Why You're Ready For MacroModem
1. You love telecom, but not memorization. MacroModem's user-
written macro libraries and companion help screens (36 macros
per file) store log on procedures, remote system menus and
2. You've always wanted to use the mouse after you're connected,
too. Write macros that mimic remote system commands and menus,
then execute them with the mouse or keyboard.
3. You like automation, but not script languages. Our macros use
normal commands from MacroModem. Remote systems, and AmigaDOS,
as well as text and control codes. A multi-windowed
MacroEditor is included No new programming language to learn.
4. You want to do other things while downloading a file.
MacroModem is truly mulri-tasking. With a NcwCLI available anytime, even during file transfers. And MacroModem's error checking won't stop downloads unless yon tell it to.
5. Of course MacroModem includes standard telecom software
features, too. Teach MacroModem what you want, and it will
remember for you.
MacroModem ¦ the better way to do telecommunications. S69.95 Kent Engineering Design
P. O. Box 17S, Mottvillc, NY 13119
(315) 685-8237 References
B. W. Kemighan and D.M. Richie, THE C PROGRAMMING LANGUAGE,
Prentice -I Sail, Inc., Englewood Cliffs, New Jersey 07632,
Manx AZTEC C68K, Version 3.20a fur the AMIGA, Section on SYSTEM INDEPENDENT FUNCTIONS.
ROM Kernal Manual, Chapter on the Console Device, Commodore- Amiga, 1986. Waite, M., S. Praia and D. Martin, C PRIMER PLUS,
H. W. Sams & Co. Indianapolis, Indiana, 1984.
Listing One Window I O Makefile CFLAGS* -s +1 +iran:defs ALL=window io.o LI: foo $ (ALL) del ram:defs copy dfO:LlB m32. Lib ram: copy dfO:L!B c32.1ib ram: In -W 5 (ALL) ram:m32. Lib ram: :32. 1 ib del ram:m32.11b ram:c32.1ib Gecho "All done!!"
Def s copy defs ram:defs clefs: WriteMsg pointer in the Console structure is used to initialize io_Command to CMD_WF.ITE, io_Data to the address of the character, and io Length to 1 (since only one character is being written). Then, DoICK) is called to actually output this character.
Cc +hdefs -a +1 window.h Listing Two Window.h * WINDOW. H *
* Read Predmore COPYRIGHT 1967 include "intuition intuit!on.h"
linclude "exec exec.h" include "excc io.h" $ include
"cxec mcmory.h" Iinclude "exec types.h" linclude
"graphics gfxmacros.h" linclude "graphics copper.h" linclude
"graphics gels.hM linclude "graphics regions.h" linclude
"graphics cl1p.h" include "hardware dmabits.h" include
"hardware custom.h" Iinclude "hardware blit.h" conputsO The
string output routine conputsO works in the same manner as
conputcO, except that a pointer to a null-terminated string and
a pointer to a Console structure are the two function
parameters. The elements of the WriteMsg structure arc
initialized for a write command, io_Data is set to the string
pointer, and an io_Lcngth of -1 is used to signify that a null-
terminated string is being sent. DoIOQ is then called.
CongetcO The only argument for congetcO is a pointer to the Console structure which the input is coming from. It waits until a message is available on the console- ReadMsg and then stores the input character in a temporary location, while the ReadMsg channel is readied for gctbng the next character with CMD_READ and SendlOQ.
Linclude "devices console.h" linclude "devices keymap.h" linclude "libraries dos.h" linclude "libraries disk font.h" I include "libraries mathf fp. H" (include "stdio.h" * Group all pores, message pointers and buffers in a 'Console' structure. • only $ 99 each!
Businf*S struct Console ! Struct MsgPort struct IQStdReq struct MsgPort st ruct char 'WritePort; ¦WriteMsg; 'ReadPort; ICStaReq 'ReadMsg; rejdbuffer[18! ; PAYROLL A comprehcnstvr system allowing pay rates lor sinntlard hunts, overtime, and salary, Hourly and salary employees may be paid weekly, biweekly, semimonthly. And monthly Commissions, loans or Hues deductions, and vacation accrual fuse are am iiirnoc|.ired easily.
Vc.ar lo-dau quarterly. Monthly, and current toialsarc maintained. Federal reporting and stale computations arc included GENERAL LEDGER A eomprcliensh ¦¦ iluiibli-.riiiry ¦if* minting system with complct** Ulltlll trails. Rinsing pmivthllrs ail(1 lull reporting.
CHECK LEDGER A smglrrnlry fHmkkrcpmg svstom with .i usrr tli'hiH't! Chart ol income and expense ;u . Minis, year lutlatc loials. Subaccounts. And rmuplrlr cheeking account history.
MASK definitions * (define F_INTUITIO.N (define F_GRAPKICS (define F_MATH (define F_MATHTRANS (define F_DOS (define FJDISKFONT (define F_SCREEN (define F_MENUSTRIP (define F_RASTER (define F_WINDOWO (define F_WIND0W1 (define F_WIND0W2 (define F_WINDOW3 (define F__CONSOLEa (define F_C0NS0LE1 (define F_CON£OL£2 (define FCONSOLE3 (define F_FONTO (define F_F0NT1 (define F_F0NT2 (define F FONT3 0x000001 0x000002 0x000001 0x000008 0x000010 0x000020 0x000100 0x000200 0x000100 0x001000 0x002000 0x001000 0x008000 0x010000 0x020000 0x010000 0x080000 0x100000 0x200000 0x100000 0x800000 INVENTORY CONTROL
Stores cos! Ami quantilv information, updates ii immediately, and offers key management reporrs Four costs, four locations, sales history, and vendor information is kept for each item.
(619) 436-3512 fgCHWUTERWARF Box 66B-A Encinitas, CA 92024
ACCTS RECEIVABLE Know current customer status, which
accounts are past due. Forecast how imteh money to expert
to receive lor cash flow planning, and keep on top ol your
customers' credit positions ACCTS PAYABLE Helps manage and
I rack cash liabilities by collecting vi tirlnraiuJ invoice
in for motion and Iiv reporting the business' cash
commitments ami [uymciit history (define (define (define
(define (define (define FIO KEY HELP_KEY UP_AKROW
DOWN_ARRCW right_arrow LEFT ARROW Qx01D9L CxOlDFL OxOlCCL
OxOlCDL OxOlCEL OxOlCFI, Defines for attaching a console.
(define (define (define (define (define CON_WPORX CON_WMSG CON RPCRT CONJiMSG COM DEVICE 0x01 0x02 0x01 0x08 0x10 Listing Three Window IO.c * SCREED AND WINDOW DEFINITIONS * 3 (define DEPTH (define SHEIGHT (define SWIDTK 200 610 * SCREEN HEIGHT * * WINDOW_IO.C COPYRIGHT 1986,
* By Read Predmore
* windaw_io.c - a console device which can be
* attached to any window.
1987 " Flags for function keys. * (define CQNPUTC ON OxOOOlL (define CONPUTS_ON 0x0002L (define KEYMAP_O.N OxOOlOL (define RAWIN_CN 0x0020L (define 7EXT_TEST 0x0100L '• Keycodos from RKM section on the console device.
* Bit 8 is set high which corresponds to releasing the indicated
* Bit 9 has been added and set high as
* is done in the DECCDE_CSI () routine.
I include "window.h" ?define CTRL_C ?define LF ?define CR ?define CTRL_S ULONG ULONG 0x03 0x0a OxOd 0x13 cur resource = 0L; Dos3ase; ULONG Disk fontBase; ¦define Fl_ _KEY 0x01 DO I, ¦define F2 KEY OxOlDlL ¦define F3 KEY 0X01D2L ¦define F1 _KEY 0x01D3L ¦ define F5~ KEY 0x0lD1L idefine F6_ KEY 0x01D5L ¦ define F KEY 0X01D6L ¦ define F6 KEY 0x01 D7I, ¦define F9_ "key OxOlDSL ULONG IntuitionBase; ULONG GfxBase; struct TextFont *tfont[3); struct TextAttr tattr[3] = (unsiqned char *J"ruby.font", 8,0,0 }, I (unsigned char *)"sapphire.font", 14, 0, 0 ), i (unsigned char *)"garnet.font", 9,0,0 }
I; continued,.
NULL, NULL, JjJ1 ] Fuller Computer fej System-. Ini NULL, NULL, F E A T I R I N G extern void
* AttacnCorisole () ;
• GetMsg (1 ; "CreateStdlOO ; 'CreatePort 0;
• OpenScreen () ;
• OpenDI skFont () ; 'OpenWindow (J; An easy in use. Friendly and
intuitive user interface.
A powerful and Iasi disk backup lool that lets you make backups of your copy-protected Amiga software A disk editing tool that lets you edit raw MFM tracks, AmigaDOS sectors and AmigaDOS files (automatically calculating new checksums).
A disk cataloging tool lhat lets you maintain lists ot your personal, public domain and commercial software.
A unique backup tool for duplicating other disk formats including MS-DOS PC-DOS and Atari SI.
An easy to read, informative user manual is included.
I his product is not copy-protected in any way.
An Evolution in Disk Utilities for Amiga™ Personal Computers!
0, 133, 640, 6V, 5,4, 0, WINDOWDEPTH | WIN'DCWDRAG | W1ND0WSIZING I SMART_REFRESH, 0, NULL, (UBYTE *)"Conscle-2", 160,50, 320,200, CUSTOMSCREEN 0,65, 640, 63, 7,3, 0, WINDOWDEPTK I WINDOWDRAG 1 WINDOWSIZTNG | SMART REFRESH, 0, NULL, (UBYTE *)-Console-l" 160,50, 320,200, CUSTOMSCREEN extern struct Console extern struct IntuiMessage extern void extern void extern struct Screen extern struct TextFont extern struct Window struct Screen 'psO; struct Window *pw[31; struct RastPort *rp(31; struct Console *ccnsole[3];
• QpenLibrary [); NOW SHIPPING!
$ 49.95 " Includes shipping and handling!
An on a residents add 6 5' i sales tax.
TO ORDER Send check or manev order to: Fuller Computer Systems. Inc. P O Box 9222 Mesa. Arizona 85204-0430 Or CAI.I. (602) $ 35-5018 ler.g Func_flags - 0, Ctrl_flags = 0; char CSI_buf[S0], In but[80]; int PrinLOK - FALSE, Csl_flag - FALSE; ¦ a ;:jdenidiK i l i. omiruHJarc-Amiga. Jnc SCREEN AND WINDOW STRUCTURES V SL TUCL i int long SHORT SHORT SHORT * window gadget li.ags * WISDCWUtPlH I WINDOWDRAG i WINDOWS 1ZING I SMART REFRESH I ACTIVATE, 0, ' pointer to 1st user gadget NULL, • pointer to user check * (UBY1E *}"Consoie-0", * title * NULL, " pointer to window screen * NULL, pointer to
super bitmap * 160, 50, ' min width, height '
(uyyiE •) WINDOW I O TEST by Reaci NULL , NULL struct.
NewWindow nw[3] 0, 10, 640, rs, 1,2, 0, NewScieen screenO I*
starting position (left,top) * width, height V ' detai.pen,
blockper * • flags for idcmp * Predmore - COPYRIGHT 19S6,
198V" * 'Gadgets * " 'CcstomBitMap * * LeftEdge * TopEdge
* Wiath • Height * Depth * DetallPen * BlockPen (*
ViewModes Type ' -Font Dealer Inquiries Invited initial ice ()
; if ( argc 0) Print OK - TRUE; for ll«0;i 3;i-tr) (
nw[i],Screen = psO; - create a window * pw[i]= (struct Window
*) OpenWindow (snw[i ]) ; if (pw[ i 1 NULL) ( sprintf
(buffer, "Cannot open wlndow %d rr,i) ; closedown (buf £er) ; )
cur_resource |= (F_WINDOW0«i) ; rp[i] = pw[i]- RPort; *
establish its rastport for later * SetDrMd (rp [ i), JAM2);
tfont[ij = CpenDiskFont ( stattrdll; if (tfont [ i I 0) ( error
- SetFont (rp[i ], tfont(i)); cur resource != (F_FONI0«i); *
Attach a console to this window. * sprintf(buffer, "Console
%d",i); if ( (con;;ole[i| = AttachConsole Ipw[ i] ,buf fer) I
sprintf (buf for, * MAIN ' main (arc;c, argv) int argc; char
-argv [ I; static char buffer[10C[, bufferlJ100] char *pstrl;
float x; ch; keycode, hum;
i. l; status; error; ¦ niax width, height * 320,200,
CUSTOMSCREEN c hashnique ANIMATOR: Jr. - $ 79
* full 3D character animation
* scripting
* real-time playback
* 4096 colors including shading
* IFF files input and output ¦ light source control
* perspective control
* uses predefined libraries of actions and characters (library
disks available) ANIMATOR: Apprentice - $ 299 all of the above
* object editor!!
» scene editor!!
Demo Disks S10-set of 2 logos Libraries available soon.
* famous people
* situational characters " letters and numbers HASH ENTERPRISES
14201 SE 16th Circle Vancouver, WA 98684
(206) 256-8567 "Cannot attach console X f%cl] to Window I (%d|
An", i, 1); closedown(buffer!; ( cur_resource I'
(F_CONSOLEO«i) ; * Set Mode so that linefeed=LF+return. *
sprintl (butter, "%c(20h", 27) ;
conputs(butter,console[i]); sprintf(buffer,"%c[0td;40m",27,
30+nw[i|.DetailPen); conputs (buffer,console[1]I;
sprintf(buffer,"Hello World, this is Console-%d n",i! ;
conputs (buffer, console [i]) ; 1; * End of for loop which
opens windows, fonts and consoles. * strcpy(buffer, "This
is a test of conputcin"); 1-0; do ( ch = bufferlil; conputc
(ch, console [0] ) ; conput c (ch,console(1]);
conputc(ch,console[2)j; 1++; i while( (chl-G) i 60) );
strcpy (buffer,"This is a test of CONPUTSNn") ;
conputs(buffer,console[0]); conputs(buffer,console[1]);
conputs(buffer,console[2 J); conputs ("ACTIVATE THIS WINDOW
AMD TYPE ANYTHiftAn",oonsule[01); conputs ("Use CTRL-S to
change to string input m&nicmdea); conputs(" or CTRL-C to
EXITNn",console[0|); Func_flags |» KEYMAP_ON; rune flags |=
CONPUTC ON; j"0; do ¦ ch - congetc (console[0](; sprintf
(buffer, " INPUT CHAR ¦= $ %x n",cb);
conputs(buffer,console[0 j); switch(ch) ( case CR: *
Output Carriage Return CR as Line Feed LF . *
conputc(LF,console(1]); conputc(LF,consoLe[21); break;
default: conput c(ch, console[1]); conputc(ch,console(2 J);
break; ( * End of swlLch(c)i) * while ( (ch J = CTRL-C)
Si (ch != CTRL_S) ),* If (ch -= CTRL_t) goto main_exit;
conputs ("Use CTRL-S RF,TURN to testNn numerical Input
modes. n", console(0|); conputsf" or CTRL-C to F.XITin",
console [0J); Func_flags - Func flags s ~CON?UTC_ON;
Func_flags = Funcflags I CONPUTS_ON; whlle(TRUE) (
congets(Ih_buf,80L,console[0 I); conputc(LF,console|0]);
conputs (ln_buf, console [11) ; conputc ILF,console [ 1));
conputs (In_buf, console [2 ]); conputc(LF,console[2!); if
(pstrl-index(In_buf,CTR1_C|) !* OL) goto main exit;
continued.,. Holiday Price.... W A KLINE ~ TRONICS' t ffHX
1 MEG Ran Expansion $ 249.95' To thank AMIGAowners;
everywhere for the great response to our ads, Kline-Tromcs
is offering this special Pre~ Holiday price. This price is
onlti available directly from Kline-Trenics. Order now
before the rush.
O l Meg*'FAST' Ram in Metal Case
o True"Aato-Configure"
o Fully Assembled h Tested 090-Day Parts h Labor Warranty (* Ati
Ran Chips Included) "HIGH QUALITY" at a "LOW PRICE" r KLM-mHICS
10 Carl isle Court York, PA 17404 I l_Tel. (717 -764-4205 _ J§£ * Pius Sh pping & Handi jns Special Price till 11 15 87 Only if ( (pstrl-index(In but,CTRL_S) !- 0L[ break; 1 while (TRUE) conputs("ENTER an INTEGER NUMBER console[0]J; congets(In_buf,SQL,console[01); if (pstrl-index(In_buf,CTRL_C)) !- OL) goto rr.ain__exit; if (pstrl-index(In buf,C?R1_S)) ! - OL) break; sscar.f( In_buf, "%d", sr.usi); sprintf (buffer, " n num = %d n n",num); conputs(buffer,console[01) ; ) while (TRUE) ( conputs("ENTER a HEXADECIMAL NUMBER ", console[0]); congets(In_buf,BOL,console(0)}; If (
(pstrl-index(Injouf,CTRL_C)) 1- DL) goto main_exit; if ( (pstrl-index (In _buf,CTRL_SM !- OL) break; sscanf( In buf,"%x",snura); sprintf (buffer," n num - %d - Shx n n",nur,nim); conputs(buffer,console(0|); ) while(TRUE) ( conputs("ENTER a FLOATING POINT NUMBER ", console[01); congets(In buf,SOL,console(0]); If ( (pstrl-index (In_buf,CTRL_C)) !- 0L) goto main_exit; if ( (pstrl-index (In_ buf, CTRL_S)) != OL) break; sscanf ( Ir.Jouf, "%f", ix) ; sprintf(buffer," n x - %f n x %e n n",x,x); conputs(buffor,console 0(); I main exit: closedown("Window I O test Is finished."); ) * END OF MAIN * *
ATTACHCONSOLE -* * Open a console device and attach it to the indicated window, this function returns a non-zero pointer If the console device opened correctly and a zero (O) value if there was an error.
¦ struct Console * AttachConsolc( window, name) struct Window 'window; char 'name; ¦; static char string;10]; int consize, error; register UBYTE con_flags; struct Console 'console; con_flags = 0; consize - sizeof(struct Console); If ( (console - (struct Console *) malloc(consize) - 0) [ if (Prlnt_OK) prlntf("In ATTACHCONSOLE, mallocO returned zero.kn"); goto error exit; I • Open Port for writing to console. * strcpy(string,name); strcat (string, ".write") ; if ( (console- WritePort = CreatePort(string,0L) ) == 0) ( if (Print_QK) prlntf("In ATTACHCONSOLE, CreatePort(As) returned zero,In",
string): goto error_exit; !
Con_flags I= CON_WPORT; if ( (consolc-PWriteMsg = CreateStdIO(console-AWritePort) ) 0) ( if (PrlntJOK) prlntf("In ATTACHCONSOLE, CrealeStdIC(%s) returned zerD.Vn", string); goto error exit; ) con_flags I- CCN_WMSG; l* Open Port for reading from console. ' strcpy(string,name); strcat(strinq, ".read"); if ( (console- ReadPort - CreatePort (string,01) ) == 0) ; if (Prlnt_OK) prlntf ("in ATTACHCONSOLE, CreatePo:t (%s) returned zero.'n", st r i nq}; goto error_exit; I cor._flags I = CON_RPORT; if (console-PReadMsg = CreateStdIO(console-NRoadPort; ) == 0) ( if (Prlnt_0K) prlntf("In
ATTACHCONSOLE, CreateStdIO(%s) returned zero. n", string); goto errorexit; ) con_flags |- CON_RMSG; console- WriteMsg- io Data = (APTH) window,- console- WrltoMsq- io_Length - sizeof ('window); If ( (error - CpenDevice("console.device",O, console- WriteMsg, 0} ) 1= 0) if (Print OK) prlntf("In ATTACHCONSOLE, OpenDcvlce returned error=td. n", error); goto errorexit; Investment Analysis Comes To The AMIGA™ A New Microcomputer Investment Analysis Tool THE INVESTOR'S ADVANTAGE Keep track of individual stocks and general market trends. Individual stock charts include High Low Closing Prices,
Moving Averages, Volume Histories. Price Momentum and Relative Strength. Use Relative Strength Ranking report to select best performers for inclusion in your own portfolio. Monthly Percentage Change report helps determine how certain stocks performed when the market as a whole performed best. Use General Market trend charts (created in seconds, in color, on your monitor) to determine when to get into and out of the market. These charts include the Dow Jones Industrial Average, NYSE Index, Advance Decline Ratio, Odd Lot Short Ratio, Put'Call Ratio, Overbought Oversold Ratio, New Highs New Lows,
Specialist Short Ratio, and the 20 Most Active Indicator. Stock History on up to 500 stocks can be updated either manually or automatically using your modem.
Only $ 99.95 Plus $ 2.40 postage and handling. Demo Disk $ 5.00 SPECIAL INTRODUCTORY PRICE ORDERS PLACED BY SEPT 30,1987 ONLY $ 75 The Investor's Advantage™ Send Check, VISA or MC to: The Slipped Disk, Inc. 31044 John R Madison Heights, Ml 48071
(313) 583-9803 Dealer Inquiries Welcome
console- ReadMsg- io_Device - consolc- WrltcMsg- io Device;
console- ReadMsg- io_Unit - console- WriteMsq- io_Unit; *
Point to readbuffer for the first character. *
console- ReadMsg- io_Corrn!aRd = CMD_R£AD;
console- ReadMsg- io_Data = £co.nsole- readbuffer [0] ;
console- ReadMsg- io_Length » 1; SendIO(console- ReadMsg);
return (console); if (cur_resource £ F_WINDOW2) if (cur
resource £ FSCREEN) if (cur_resource £ F_GRAPHICS) if
(cur_resource £ F_INTUITION if (cur_resource £ F_DISKFONT)
if (cur_resource s F_DOS) puts (s) ; exit (0); CloseWindow
(pw(21); CloseScreen(psO); CloseLibrary (Gfx3ase);
CloseLibrary (IntuitionBase) ; CloseLibrary (DiskfontBase)
; CloseLibrary(DosBase); error exit if if Port I; if if
Portl; return(OL) I (con_flags (con_flaqs (con_flags (con
flags CloseFont (tfont [0]); CloseFont (tfont [1]);
CloseFont (tfont [2]); CloseWindow (pw[0]); CloseWindow
(pw[11); £ CON_RMSG) DeleteStdIO(console- ReadMsg) ; S
CON_R?ORT) DeletePort( console- Read- £ CON WMSGI
DeleteStdIC console- WriteMsg) ; £ CCNWPORT) DeletePort(
console- Write- if (cur_resource £ F_CONSOLEO)
DctachConsole(console[0)); if (cur resource 4 F_CONSOLEl)
DetachConsole(console[1]); if (cur_resource S F_C0NS0LE2)
DetachConsole(console[2]) ; if (cur_resource 4 FFONTO) if
(cur resource £ F_F0NT1) If (cur resource & F FONT2) if
(cur resource £ F_WINDOWO) if (cur resource £ F WIND0W1) ?
CLOSEDOWN closedown (s) char *s; ( - CONGETC * cor.getc
(console) struct Console 'console; 1 struct IOStdReq *msg;
int temp; while( (long) (msg= (struct ICStaReg *) GetMsg
(console- ReadPort) ) ==NULL) WaitPort (console- ReadPort)
; * get the character • temp - consolo- readbuf fer[0| ;
temp - temp £ Oxff; * Ask for next one and then return
this character. *t console- ReadMsg-Pio_ComiTiand =
CMD_READ; console- ReadMsg- lo Data ** console- readbuffer;
console- ReadMsg- lo_Length - 1; SendIO(console- RcadMsg);
conputc (temp,console); return (temp); * CONGETS •
congets(strbuf,nchar,console) char *strbuf; int nchar; .
Continued... i cor co r3 COMMODORE 6 H * ft M I G ft ? 1 t?
* corrmand works because DoiO blocks unti
* done (otherwise pointer to the characit
* invalid in the meantime).
* return(0); ooQQQQoaaa oaaa 0333 oooo 3333 3333 OMMOD OR E
IrL lr 1. YT C B17-2B7-G8H6 The Memory Location 3SB Washington
Uiellesley, MR 02181 Commodore Specialists • CON PUTS • * Output a NULL-terminated string ¦ of characters to a console.
* The parameter order has been chosen to
* parallel that of the rPUTS function.
* conputs(string, console) char 'string; struct Console
'console; ( console- WriteMsg- io_Coinrnand = C!tD_h'RITE;
console- WriteMsg- io_Data = (APTR) st. ring; * -1 tells
console to end when It sees a terminating zero on the string.
* console- WritcMsg- io_Length - -1; DoIO(console- WriteMsg);
return (0); ) ' DETACHCONSOLE * * Close a console device. *
DetachConsole( console) struct Console 'console; ¦ CloseDevice
(console- W'rite.Msg) ; DeleteStdIO (console- ReadMsg);
DeletePort ( consoie- ReadPort); DeleteStdIO
(console- Writ.e.Msg) ; DeletePort ( console- Wri tePort);
free(console); struct Console 'console; I struct IOStdReq *msg;
int ch, 1-0; do ( whlle( (long) (msg* (struct IOStdReq *)
GetMsg(console- ReadPort) ) -=NULL) WaltPort
(cor.sole- ReadPort) ; ch - console- readbuffer(0]; * get the
character strbuf[ll - ch s Oxff; ' Ask for next character. *
console- Ready.sg- lo_Cosmand - CMD_READ; console- ReadMsg- lo
Data - console- readbuffer; console- ReadMsg- lo Length =* 1;
SendIOlconsole- ReadKsg) ; conputc(ch.console) ; )
13) ss ((++1) nchar-1) ); while ( (ch !« strbuf Ii1"0; return
(strbuf) ; • INITIALIZE * Initialize () I if ( (DosBase =
CpenLibrary ("dos.library" closedown ("Can't open dos.
Library'') ; cur resource I - F DOS;
0) ) SULL) SULL) NULL) if ( (Disk font 3ase=CpenLi brary ("di
skfor.t. 1 i brary", C) J closedown ("Can't open diskfont.. 1
ibrary") ; curresource I« F_DISKFONT; if ( (GfxBase -
CpenLibrary ("graphi cn. 1 i bra ry", 0) ) closedown ("Car.'t
open grapbics.library"); cur_resource (= F_GRAPHICS; if (
(Intuition3ase = OpenLibrary ("intuition. 1 ibrary", 0))
SULL) closedown("Can't open intuition.1ibrary"); currcsource
1= F_INTUITION; if ( (psO = OpenScree.n (sscreer.0) SULL)
closedown ("Could not open the screen .'"); cur_resource I=
F_SCREEN; inil_coior_map () ; * conputc * specified console.
• Output a single character to
* The parameter order has been
* chosen to parallel that of the PUTC function.
• conputc(character.console) char character; struct Console
'console; ( console- 'WriteMsg- io_Conm.ar.a - CKD_WRITE;
consale- WriteMsg- io Data - (APTR)icharacter;
console- WriteMsg- lo_Lergth - 1; DoIO(console- WriteMsg); ) *
INIT_COLOR_MAP * ini t_color_map () ( stat ic shorn map
values[8] - - Color OxORGB * 0 Da rk CYAN ¦* 0x0077 , •
1 WHITE * OxOFFF , • 2 RED * OxOCOO , • 3 GREEN • OxOOCO
, * 4 BLUE • OxOOOC , * 5 YELLOW * OxOFFC , * 6 VIOLET *
OxOCCC , * 7 3LACK • OxOOOC , LoadRGB4(6psO- ViewPort ,
napvalues ,
• AC* 68000 Assembly Language Programming on the Amiga™ This
month features a program that uses two libraries, include files
and graphics!
By Chris Martin Last month, we ended with a simple counting program and an explanation of how to set-up a w'ork-disk for assembly language programming with the Commodore Macro Assembler. I also discussed assembly include files and Amiga Kernal Libraries and Devices. This month, I will present and explain a program that uses two libraries, include files and graphics! I call the program "screen" - quite simple and uneventful, but an accomplishment nevertheless. "Screen" opens an Intuition screen and draws a green line in it.
Let's start by typing the program listed on the following pages.
Boot your system with Kickstart and your Assembly Workbench Disk. Once everything has loaded, insert the assembly work-disk in drive 0, the workbench disk in drive 1 and type the following CLI command: 1 ed screen.asm I like to name assembly programs with an ".asm" suffix.
Note that the text file created here is called a "source file."
W'hen the screen clears, you can start typing the program.
There are a few simple ED commands that may be useful when typing programs. Each command is executed by typing the ESC key, then typing the command and pressing RETURN. A command may be repeated by putting a number in front of the command. Here are some examples: X exit and save the text q quit and do not save i insert a line d delete a line bs block start be block end db delete block ib insert block 4d delete FOUR lines 31 insert THREE lines Assembly source files can have comments after characters, but certain restrictions apply: You must either have your comments after all program code on
that line, OR you must use a whole line, starting from the first space in that line. When you type this program, you may omit any text after the characters - that text is just a comment.
While typing the program, MAKE SURE you type it exactly as printed. If a single TAB is missing between columns, the compilation will not work. In the actual code, a single TAB separates the label, opcode and operand fields. There are three TABs before the commands: INCLUDE, XREF and EXT SYS.
When you have finished typing the program, exit ED with an "X" command (remember the ESC key first, though). When you are back in the CLI, assemble the program with the following: 1 assem screen,asm -o screen.o -c wl20000 Remember that source files are first assembled into object (.o) files. You must then LINK the object files to executable files.
The command I noted just moments ago assembled the file screcn.asm to screen.o with a workspace of 120000 bytes.
When the assembler compiles a source file, it needs a workspace. The larger the source file, the larger the necessary workspace must be. The assembler defaults the workspace to 80000 bytes (which is sufficient for most programs), but with very large programs, a workspace greater than 80000 must be defined. Remember that INCLUDE files are also considered part of your program, so be sure to consider the workspace needed for programs with many INCLUDE files.
Now, the object file created by the assembler must be made executable by linking the file. Use the following CLI command to complete this necessary task: 1 alink screen.o to screen library amiga.llb Last issue, wc discussed the ".lib" library files and Amiga libraries. ALINK looks through the program for references to continued... Ptaaie Specify model 600 1000 2000 ..... |9t L__ TTL Hi-Res Monitor For lha Amiga 500 1000 2000 Plug* Irlo ROBi port for ULTRACRISP flicker-free high reiolutlon monochroma video output. Perfecl for HI-RES
GRAPHICS. WORDPROCESSINO. CAD. DESKTOP PUBLISHING, BUSINESS, elo. ANY application In ANY reeoluUon le SHARPER and CLEARER with lha TTL Hl-Re» Monitor. Incfudee a dlik with a iptclal Hl-Rai WorkBanch font, ROB port paei-thm, and a full ona-yaar warranty. Amiga 2000 ard SideCar owner* may ilio uie the monitor In PC Hl-Ree mode. 8t KJNO toyourfYFSf Green Phoiphor: |179 Amber Phoiphor 1239 Light Pen Driver Oetigned lo work with ANY Amiga prcgrim, the UGHT PEN DRIVER aflowe me of be* ycur moute and a N-reielution UGHT PEN for the uitima'e In precltlon graphic*. Perfect for PAINTING, DRAWING,
freehand SKETCHING. CAD and vtduilfy ALL other AMIGA programi. Software feature* Include: Singia-piiel preciiion. Variable uni tivity. ZOOM mode, button toggle, elo. Compatible with all popular CM-fyp« llghlpan*.
(600 1000 2000) . 140 96 Profanlonal quality 1 and 2 button light pen* avalabia CaJ or write for pricing.
__ All prodecte are NOW 8HIPPINGI Pleaie make chaqua or monay order payable lo: HyparToX SIIIcon BprHtriisa 120-1140 Auslln Avs. Coquitlam. BC Canada V3K 3P5 Phone (604) 939-DATA Dealer Inquiries Invited.
All ordere add tl poitaga and han4*g A1 price* In Ust Order by phonal VISA. Mailerca d. AM© welcome.
Amiqa n a (•!•• letee Iraimaia il Ctaeieeie, i««.
Library routines ( for example, the "_LVO" label in the object file ). By retrieving the addresses of function calls in the object file, the program is made executable.
The Program The program begins with the INCLUDE command, to insert the include files. Next, we externally define various system calls to be used in the program. Pointers to these routines are in the "amiga.lib" file that we link to the object file to create the executable program.
We then externally define the AbsExccBase pointer to the Exec library (also found in "amiga.lib"). When opening the graphics and intuition libraries, we need a pointer to the Exec library because the OpcnLibrary routine is a part of this library.
The program is started with the "start:" label. First, we save the stack pointer in the temporary variable "savesp," defined at the end of the program. From that point, we JSR (Jump to SubRoutine) to the four sections of the program that initialize and perform various tasks. If all goes well (the libraries and the screen are opened), the program encounters an endless loop.
Opening Libraries Last month, I listed the names of the Amiga libraries, the names of their library base names and their functions. The libraries opened in our program are the graphics and intuition libraries. Before we open a library, we need a storage area for the pointer to the library base. At the end of the program, a LONG-WORD (32 bits) is declared by the assembler directive 'ds.l'. These long words are given labels (in this case, our names for the pointers to the graphics and intuition base addresses). The linker must know the base addresses of the libraries when compiling and the
program must also have a section of text to identify the library and its version.
Deluxe MIDI interface A library is opened with the following code: move.l _AbsExecBase,a6 lea text.al gets the address of the text which identities the Horary to be opened, move.q d0,0 SYS Openlibrary(a6) gets the Openlibtary routine from Exec library (always open), which reads A1 and returns the pointer to our library in DO.
Move.l dO,storage puts the address of the base into our storage, beq openerror If DO Is Equal to zero, then the library was not opened.
Here, I jumped to a part of the program that returned to the normal system.)
The text mentioned above is a "constant" area in the following form: name dc.b 'nameofllbrary.library',0 name and version cnop 0,2 blank padding The first line defines the name of the library and the version (0 defines any available version). The second line has No Operation (cnop) and leaves two blank bytes of extra "pad- ding."
Amiga Graphics (Briefly!)
The graphics library has two different types of commands display commands and drawing commands. Display commands initialize screens, set colors anc position the display.
Drawing commands perform functions such as drawing lines, wmiting points, filling areas and copying rectangular blocks.
Screens arc a group of bits called bitmaps. A screen has a certain depth, depending upon the number of colors in use.
The following are depths corresponding to the number of colors in a screen: Depth Number of Colors V , 1 2 2 4 3 8 4 16 5 32 Intuition screens follow a structure called NewScrecn which looks like: NewScreen LeftEdge. TopEdge, WORD Width, Height, WORD Depth. WORD Detail Pen , (color ) BYTE View Modes, WORD Screen Type, WORD Font, LONG Title, LONG Screen Gadgets, LONG Pointer to CustomBrtMop LONG (optional) Robot Readers a powerful new way for your child to learn to read Even if your child isn't a reader yet he can read these classic stories at his own speed through interactive speech, with
little or no adult supervision. The beautiful illustrations and built-in word games hold the young reader's attention while promoting early reading skills, vocabulary, and word recognition.
?CHICKEN LITTLE * AESOP'S FABLES ?LITTLE RED HEN *TIIREE LITTLE PIGS $ 29.95 each for the Amiga 512k Coming soon: * THE UGLY DUCKLING HILTON ANDROID PO Box 7437 • Huntington Beach, CA 92615-7437
(714) 960-3984 A number from one to five, defining the number of
colors to be used, makes up the depth element.
View Modes is a field that defines the display type of the screen 0 for 320x200 resolution, HIRES for 640x200, LACE for 320x400 H1RES1LACE for 640x400.
Title is a pointer to a constant area of text for a screen title.
To open a screen, you must define the elements of this structure as part of the program and you must set aside a storage area for a pointer to the screen. You must also define storage area for the RastPort and ViewPort structures.
The RastPort structure is initialized by Intuition when you open a screen. RastPort points to the screen's BitMap and keeps track of the current drawing pen, patterns, text attributes, current pen position, drawing modes and a write mask.
Generally speaking, the RastPort structure is used with the graphics library's drawing routines.
The ViewPort structure controls the color palette and the View Modes, as well as the position, height and width of the display. The ViewPort is generally used with the graphics library's display routines.
Assembly program that opens an Intuition scrn and draws a line in it.
By Chris Martin When typing this program, all comments may be ommitted (anything that has a character before it). Also, when the program is run, there Is no way to exit it except: CTRL - Amiga open - Amiga closed.
Compile the program with the following commands: 1 assem screen.asm -o screen.o -c wllOOOO 1 alink screen.o to screen library anvlga.lib INCLUDE "exec types.i" INCLUDE "exec funcdef.I" INCLUDE "intuition intuition.i"
* Macros EXTSYS MACRO XREF _LVO l ENDM SYS MACRO JSR _LVO l ENDM
* These are system routine calls used In the program, EXT_SYS
OpenLibrary * (llbname,version)(A1,D0) continued... EXT SYS
• (newScreen)(AO) •
* * * * • Now show the screen title ***** EXT_SYS Move
* (rp, x, y) (Al, DO, D1) EXTSYS Draw
* (rp, x, y) (Al, DO, D1) move.1 intuitionbase,a6 EXT_SYS SetAPen
* (rp,pennu.T.) (A1,D0) move.1 newscreenpt r, aO EX7_SYS SetDrMc
• (rp,drawr,ode) (A1,D0) move.1 0,d0 EXTSYS SetRG34
* (vp,num,r,g,b) (AO, DO, Dl, D2, D3) SYS ShowTitle(a 6) EXTSYS
• (rp,penr.um) (A1,D0) EXT_SYS ShowTitle
• (Screen, 1-off or 0°on)(AO,DO) rts • Externally defined
variables • * Set the colors * XREF _AbsExec3ase
• the base of the Exec library setcolor:
• This is considered an External Reference because it is move.1
• in the file 'amiga.lib' move.1 myvp,aO move.1 0, dO
• color number 0 move.b 0, dl
• RED = D * Start of the program * nove.b C,d2
• GREEN = 0 nove.b 0, d3
• BL'JE - 0 SYS SetRG34(a6)
• set tha color 40 start: move.1 graphicsbase, a6 move.1
sp,savesp * save the current stack pointer move.1 rr.yvp, aO
jsr openlibraries jump to routine to open libraries move.1 1,
• color cancer 1 jsr openscreen * open the screen movc.b 0,dl
• RED - 3 jsr setcolor * set colors and clear the screen move.b
• GREEN = 15 (highest jsr drawline • draw the line move.b
• 0, d3
• BLUE = 0 SYS SetRG94 (a6)
• set the color 41 Infinite: * Set the d rawing mode jmp infinite
* this is an infinite loop move.1 graphicsbase,a6 move.1
myrp,al * Open Libraries • move.b RP_JAM1,dO SYS SetDrMd (a6)
openlibraries: * Clear the drawing screen - SetRast to color 0
• Intuition library move.1 graphicsbase,a6 move.1 myrp,a 1 move.1
• address of the Exec lib in A6 move.b
• 0, dO 1 ea. 1 Intuition,al
* info about Intuition lib in al SYS SetRast (a6) moveq 0, dO
* clear DO SYS OpenLibrary(a 6)
* Remember our macro?
Rts move.1 dO,intuitionbase
* Address of the lib put into dO beq openerror
* OR,if dO ¦ 0, goto to openerror * Draw a line in the screen *
* Graphics library d. "awline: move.1 AbsExecBase,a6 lea. 1
graphics,al * First, set the pen number moveq 0, dO SYS
OpenLibrary(a 6} move.1 graphlcsbase,a6 move.1 dO,graphicsbase
move.1 myrp,al beq openerror move.b
ll. dO color number 1 SYS SetAPen (a6) rts
* return if all is OK * Now, MOVE to starting point and DRAW to
final point.
• Open Screen • move.1 graphi csbase,a 6 move.1 myrp,al move.w
• coordinates are (10,15) openscreen: move.w
• 15,dl SYS Move (a6) move.1 intuitionbase,a6
* pointer to intuition library lea screenvars,aO
• attributes of the scrn in aO move.1 graphicsbase,a6 SYS
CpenScreen (a6)
• call routine move.1 myrp.al move.1 dO,newscreenpt r
* ptr to the newly made screen move.w 4300,dO
• coordinates are (300,1 beq openerror
• Oh Oh - open error if dO - 0 move.w 4190,dl SYS Draw (a6) add.
1 Isc Rast?ort,d0
* get the RastPort from dO rts move.1 d0,myrp sub. 1
• sc RastPort,dO
* restore dO add. 1 1sc_View?ort,dC
• get address of Viewport • Open Error • move.1 d0,myvp
openerror: moveq -l,dl move.1 dl,dO move.l savesp,sp rts end
execution of the program END OF PROGRAM
* Library definitions * intuition dc.b cnop 'intuition.library',0
0, 2 graphics dc.b cnop 'graphics. Library', 0 0,2
* Screen title * title dc.b cnop 'Assembly Language Program l',0
0, 2
* Uninitialized va riable definitions * Uninitdata startbss
section vars,bss (Innflirt iUccrEatinns. 3nr.
PRESENTS AGE OF SAIL Age of Sail is the first of Its kind in warfare simulation. Centered around 17-19th century sail powered warships, true renditions of classic naval battles will be reenacted Age of Sail is a multiplayer game that allows up to 40 ship captains to play via electronic bulletin boards (BBS), direct connect modern, or using one computer. Designed for play on differing computers, ASC II files with game data can be sent to anyone, anywhere via modem.
Age of Sail faithfully recreates sailing allowing one degree turns and speed changes of one knot Positions are calculated with 64 bit accuracy to ensure ship movement even when drifting in low velocity winds.
Grapple up to four ships, assign boarding parties, and capture enemy ships, direct your gun captains In loadouts for firing shct. Give them their targets and let the broadside commence.
For 2-40 players.
Requires workbench 1.2, kickstart 1.2, and 512k.
Simulations for serious gamers.
ALLOW * TO 6 WEEKS FOR DELIVERY SEND CHECK OR MONEY ORDER TO: (Conflict iHccrcationfi, line.
P. O Box 272 Oakdale, CT 06370 BIX: GmcLEAN myrp myvp section
varsfdata Quality white shirts silk screened with the Amiga
logo in beautiful color start data 1 s definition screenvars
dc.w 0 « LeftEdge
dc. w 0 * TopEdge
dc. W 320 * Width
dc. w 200 * Height
dc. w 2 * Depth
dc. b 3 * Detail Pen number
dc. b 1 Block Pen number
dc. w 0 * View Modes
dc. w WBENCHSCREEN * Screen type
dc. 1 0 * Font
dc. l title * Screen title
dc. l 0 K Screen gadgets
dc. 1 0 * optional ptr to CustomBitMap Large, X-Large
Sweatshirts: $ 18.50 enddata end
* Always use 'end' at the end of your program.
• AC* savesp endbss
* Initialized variables intuitionbase ds.l 1 intuition lib.
Graphicsbase ds.l 1 library.
Ds.l 1 ds.l 1 newscreenptr ds.l 1 ds.l 1 initdata
* this is the base address of the
* base addr. For the graphics
* pointer to the screen's Rast Port
* pointer to the screen's View Port
* pointer to the new screen
* this will store the stack pointer Also available: Amiga
Stickers $ 1.50 (Great for car bumper, window, notebook, etc.
Black & White) All prices include shipping and handling. In CA,
add 6% tax.
SEND CHECK OR MONEY ORDER TO: T's Me, P.O. Box 1 1740, Santa Ana, CA 92711 2525 Shadow Lake. Santa Ana. LA 92701 Allow 3-6 Dealer Inquiries invited: Call 7 11 • 639-155-15 weeks for Amiga is a registered trademark of Commodore-Amiga. Inc. delivery.
Sizes: Small, Medium, Prices: T-shirts: $ 12.00 WE SUPPORT ON-LINE GAMING VIA: COMPUSERVE 72375. 225 PLINK SILVER MAC DEALER INQUIRIES ACCEPTED.
The AmigaForum on CompuServe™ Presents... A Transcript of the Software Publishing Conference held on December 10th, 19S6 This is a transcript of the Software Publishing conference held in AmigaForum conference room 3 on December 10th, 1986. The topic was software publishing in general, and what an unknown author can expect from a publisher in particular.
Participating as panel members were Jeff Johannigman of Electronic Arts, Brian Moriarity of Infocom, and William Volk of Aegis. Later in the evening Ben Blish of SoftCircuits joined the conference and, though not originally extended an invitation, was kind enough to join the panel and answer questions.
The following is a heavily edited transcript of that conference. Guest speaker's and moderator's comments arc identified with their initials, I.E., "RR:".
Forum members are designated with their names inside parenthesis, I.E., (Marlene Zenker).
RR: Crectings all, and welcome to the first official AmigaForum Conference!
The topic tonight is software publishing.
How can a struggling, unknown software author improve the odds of getting his wares to market? Which publication route is best? How much return should the author expect?
We arc delighted to have with us representatives from several publishing houses who will be giving us their viewpoints on these matters. Our scheduled guests are: Jeff Johannigman from Electronic Arts Brian Moriarity from Infocom William Volk from Aegis Development, Inc. These people are active on the AmigaForum, and you have most probably exchanged messages with them in the past. Tonight they have agreed to come together here, electronically, to discuss the ins and outs of publishing.
The first questions deal with the initial decision to publish.
What sort of guidelines can you suggest a programmer use to determine if his or her program is commercially viable?
Jeff, you're first.
JJ: Rick, we have three criteria, and have recently added a fourth. The first three are SIMPLE, HOT, and DEEP.
SIMPLE - a good interface, no complicated learning curve, intuitive.
HOT - fully utilizes the technology, exciting, graphically interesting.
DEEP - lasting value, flexibility, replay value, etc. And, our fourth criteria is what folks in Marketing call a "high concept"; namely, can you describe this product to me in one sentence and have me understand pretty exactly what it is.
RR: Docs the "high concept" have to do with marketability, I.E., will a person reading the package understand what the program is supposed to _do_?
JJ: Yes, it is a hard lesson we learned from great programs like MULE and Worms?. They were simple, hot, and deep, but didn't sell very well because people didn't understand what they were until AFTER they had bought and played with it. On the other hand, some top ten programs sell well on the basis of high concept alone, i.e. a wrestling or karate game.
RR: An interesting point. Brian, even though your company does _not_ accept submissions, ! Think your thoughts on the question would still be valid. Would you like to comment?
BM: Unlike EA, infocom does not believe there is a simple formula that can guarantee success in the software market particularly the home entertainment market, which is as fickle and unpredictable as the record and film industries. Same of our biggest selling titles nearly didn't make it out the door, because few' believed anybody would like them. We've also had our share of disappointments; eg, titles wo were sure would sell really well, but whose actual performance was only mediocre. The point is that, NO ONE can predict what will and will not be popular. We can only write the best stories
we can, and hope that our work captures the imagination of the distributors, dealers and buyers.
RR: This is off the track slightly, but I think this will give people a better idea of what we're looking at here. You mentioned some programs whose market performance was only "mediocre"; what is mediocre? How many pieces sold is considered a success?
BM: I can't give you exact numbers, of course; but we're very sorry when one of our titles DOESN'T "go silver." To be Silver, a title must be certified by the Software Publishers Association to have sold 50K copies.
RR: Thank you, Brian. Let's move now to William Volk of Aegis.
WV: Aegis welcomes submissions.
What we look for arc people with a high level of excellence. Execellence in interface, design, and ideas. I've been on both sides of the publishing developing issue. The best advice I can give for submissions is to look at what the publisher says and docs. Aegis has concentrated on Desktop Video and Desktop Design (on the Amiga and elsewhere), products that fall into these areas are of interest to us. However anything that smacks of greatness will also catch our interest (it has happened).
We believe in the Amiga Mac style of interface. If you product has the polish and interface of a Living Videotext MORE or Mac Paint it will get alot more attention that something that resembles a PC type product. Developers who show pride in their projects also make a lasting impression.
We like to build a group of developers that can work on many projects with us.
All the Amiga products (except the Draws) were created by outsiders. So if you have something hot... let us see it.
We also try to make developers comfortable, comfortable with the deal, development, and documentation. That about covers that.
RR: Thank you, William. Let's move to the second question, and I will direct this to Brian first: What are the advantages of marketing a program through a publisher over the programmer doing it all himself?
Conversely, what arc the disadvantages?
Brian, even though you do not accept outside submissions, again, we would appreciate your insight.
BM: The disadvantage is that you lose control. The advantages arc many. For one thing, it takes an awesome amount of money to market software nowadays, especially entertainment software. Few individuals or small companies have the clout to compete with a Broderbund, or an EA, or (dare I say it) an Infocom.
And if people don't hear about your product, they won't buy it. The other big advantage is distribution. It takes years to build up an effective method of distributing product. This boring activity is best left to companies which have already made the investment in time and money. Another advantage is prestige. When a buyer walks into a store and sees a game under the EA logo, they know they can expect a certain kind of quality. Same goes for any other established company.
JJ: Gosh, thanks.
BM: I said a certain kind. Didn't say WHAT kind. Heehee.
RR: Now now, children! Grin Brian, you made valid points about the advantages; I'd like to ask you about the disadvantages, though. You cited "loss of control"; doesn't this depend on the type of contract made between the parties? Related to that, what sort of control would the author expect to give up?
BM: The amount of control you get depends on who you arc. If your name is Douglas Adams, and you've got a 7- million-copv bestseller under your belt,you can demand almost anything you want. If you're a nobody, you'd better bercady for some marketeer to put a title and cover on your game that'll makeyou want to cry.
RR: Okay, Brian. Point well taken.
William tells me he wishes to comment on the matter of "loss of control"; 1 will ask him to do so now, as well as to make any remarks he wishes about the original question.
WV: Control is an issue that can be part of the negotiation process. Wc have had developers that have retained various degrees of control of their product. This depends on what they want need to control, the product (if it's killer, we'll talk), and the developer (maybe he knows this product's market). You could also trade SSS for control. If by control you mean some understanding on the level and quality of advertizing, that can also be talked about.
Now to the question at hand. Some software can be self-published. I refer to highly vertical applications like developer tools or software for a very small segment of the user base (which isn't too large on the Amiga yet). However on a SSS basis, publishing via a com- mcrical developer can (and should) return more than self publishing (except for the cases I mentioned).You should get a fixed SSS amount on every product sold, % of profit is meaningless since there is no thing such as profit. Most importantly you'll want your name on the package, so the next time you do a title you arc already
RR: William, a comment and a question, then 1 will pass control to Jeff, Your comment about reaping more via a publisher surprised me; in my (admittedly uninformed) way of thinking 1 would have thought you would return less; this is an important point. The question: did I understand youto say "there is no such thing as profit", and what exactly did you mean?
WV: The quote "there is no thing as profit" refers to contracts where the developer gets a certain precentage of profit. The profit can dissappear with any reasonably competent accountant.
Some times a company may not make any profit (for real) on a product in the first year due to marketing costs. As to the question asked. If you don't have your own publishing company and you aren't doing a small segment high price package (ala PCLO as a good example), your publishing startup costs, and the sales you don't get because you don't continued... THE CALLIGRAPHER© Professional Font Design Software For Graphic Designers, Video Artists and Calligraphers STUDIO FONTS™ Vol. 1
- Fligh quality ColorFonts and standard Amiga fonts for video and
graphic design work. Includes a tutorial on fonts and use with
Calligrapher. $ 35.
NEWSLETTER FONTS™ Vol. 1 - Fonts for creating newsletters and brochures.
Looks great on dot-matrix printers. Tutorial included. $ 30.
More font disks zvill be available soon.
Available at your local Amiga dealer To order direct from InterActive Softivorks: Add $ 4. For shipping in U.S. and Canada, S8 elsewhere.
California residentsadd 6.5% sales tax InterActive Softivorks 57 Post Street, Suite 811 San Francisco, C.4 94104 Call (415) 9S6-1SS9 for information and orders.
Introducing: ColorFonts ™ Up to 16 colors per font.
ColorFonts work with all Amiga softzvare that supports loadable fonts and color. Accepted by Commodore-Amiga as a font standard.
• Full graphics editor
• Special effects including, shadows, outlining, resizing,
pattern fill, merge and replace fonts
• Ability to render effects on an entire font all at once
• Character sizes up to 160 pixels high by 256 pixels zvide
• Works with all resolution modes Calligrapher is $ 100.
Antif* a a trtlenari of Connexion Int Admittedly, you won't agree with all of our decisions, but these are human judgments.
RR: Gentleman, let me move quickly to questions wrhich I'm sure interest us all: MONEY. Then w'e will open the forum for general questions from the audience.
BM: Money? Where?
RR: Assuming you are contacted regarding a program for consideration, are you willing to sign a non-disclosure agreement? And, if you decide to accept the program, must the writer assign the copyright to you? William first.
WV: We WANT a non disclosure in order to evaluate a product. Protects the developer, protects us. Must they assign copyright? Most of the time yes... but once again, it depends on the circumstances. Often the copyright will get held by an investor group. We fund have the leverage of having been there before, and the high cost of low' volume manufacturing (disks, boxes, docs etc.) will cost you enough so you will lose SS$ S compared to a good publishing contract. Assuming you can get a good publishing contract.
[PCLO is a printed circuit CAD package by SoftCircuits] RR: Thank you for the clarification, William. Jeff, I believe you wanted to make a comment about "loss of control" and the question in general?
JJ: First, 1 don't know of anybody in the industry who bases their royalties on % of profit. All the ones I've dealt with count % of REVENUE. That... WV: It died out in the early 80's... thank heavens.
JJ:... is a % of the wholesale price of each unit sold. Second, "loss of control" simply means, do you trust us? It is many of our projects in a similar manner as the film industry. But it could be possible for a developer to surrender marketing rights (world wide) and retain their copyright. For example the file requester program used in Draw, Draw Plus, and Diga! Copyright belongs to C. Heath, though he gave us permission to use the code in our program. This happens quite often.
["C. Heath'' is Charlie Heath, author of the TxEd editor and FastFonts] the job of out manual w'riters to write the best possible manual for your program, the job of our package designers to design the best possible package, etc. Remember, we are all working toward the same goal, to sell as many copies of your program as possible. But, by economy of scale, w'e have people who can specialize in each facet of getting your program to market.
RR: Thank you, William. Jeff, would you care to comment on your policy?
JJ: First question: yes, absolutely, a nondisclosure protects both of us. However, you must remember that if you submit a baseball game to us and we publish somebody clse's instead, you can't really claim that that idea is yours and a breach of non-disclosure.
Second, the copyright is generally held by the AUTHOR for most of EA's programs. We have alw'ays been in favor of a software artists rights to hold the copyright, get his name (and company logo) on the front of the package, picture inside, bio notes, etc. just like records and books.
RR: Jeff, that is ir. Fact a very visible point with EA; even in the advertising you include the programmers and references to their companies.
Brian, since you do not accept submissions, this question is not really applicable to you. Did you wish to comment in any way?
BM: I can, for amusement value, tell you what happens when wc get an outside submission in the mail (which happens several times a week).
RR: Yes, please.
BM: As soon as we determine that the envelope contains a submission we seal it up without so much as GLANCING at it... Your Texas Amiga Source Immediate Access to over 400 Amiga Titles.
Prices too low to print!!
We honor manufacturer warranties on all items!
Ii 0£m0pwjvr MicroBotics ELECTRONIC arts® Call Toll Free 800-443-8236 VISA For Information and Customer Service Dial 713-781-2613 Mon-Sat 10-7 Computer Mart • 5959 Bonhomme • Suite 308 • Houston, TX 77036 VVV: Boy, that would clear my desk in a hurry!
BM:... and ship it back with a "nondisclosure agreement" which, if signed, would assign all possible rights in the known universe to Infocom, forever. So far, nobody has returned a form.
RR: Can't say as that surprises me.
Crin Thank you, Brian. Now, the final question, the one about the big bucks, and then it's open to all.
If unsolicited material (in whatever stage of completion) is accepted by you, will you pay advances against royalties?
If, so, is it possible to estimate the range of the advance? And, if accepted, what royalty percentage will your company pay to the author? If the author is not an unknown, has a track record, would the royalty percentage likely be higher?
Jeff, this one should go to you first.
JJ: Okay, I can't give exact numbers, but royalty rates in the industry have basically settled to the 10-15% range. That, of course, depends on a track record, market viability, etc. etc. We accept projects in all states, from complete bug-free (hah!) Code... RR: Hah! Indeed.
JJ:... to ideas on napkins. We negotiate advances on royalties to cover living expenses and equipment costs. Figure out about how long it will take you to complete a project, and what you need to pay rent, put food on the table, etc. 1 can't give exact numbers, but it is a living in most cases.
RR: Okay, Jeff, thank you. Brian, since your company does not accept submissions, and since I'd like to expedite this, I'll skip you if there are no objections and go directly to William.
BM: None. Proceed.
VVV: The percentage we give is from the wholesale price of the product. The numbers are the same IN MOST CASES.
We like to be involved in the development of the product, it doesn't have to be nearly complete; demos do help. It does help to be established (it can also hurt, more on that latter).
We can talk about advances. Often we get the developer hardware software as part of the deal (Hard Drives, Aztec Compiler etc). Most developers want more than money, they want recognition and maybe some control (i.e. doing things with the product, features of the product). This isn't an absolute, we'll always listen. We have given some developers very large royalitics, large advances and even more. Why?
Because there software was GREAT!
Continued... Developers also feel more comlortablc if the contracts are reasonable in size and understandable. We want to make deals, not break deals. 1 like to be able to refer developers to other developers on our ability to keep them happy.
O. K. back to the "established" developer. A product has got to
stand by itself. The product counts more than almost anything
else. Technology that can be used for many projects is also
valuable. And since we are involved in
C. D.l. (Compact Disk Interactive) publishing development, titles
that relate to this may get better deals. The bottom line is,
every deal is un.que. RR: Good point! Jeff, I believe you had
a comment on this?
JJ: I wanted to mention some of the other things to consider besides just the royalty points and size of advances. For instance, would it be worth 2% points to sign with somebody who can sell twice as many copies.
Look at a companies sales records. Also, some of the other "perks" that come from being part of the EA Artist Community include the sendees of Technical Directors (like yours truly), use of our Artist Work Station Tools, ethcrnet access to all of our other artists, etc. (All of which is not to say we don't give great royalties Grin ) RR: Thanks, Jeff. The floor is now open for questions from the forum members.
...measures your stress level through innovative hardware. And golly gosh, do we have software! From a full-featured arcade game with sampled sound, to bar and analog graphs for your WorkBench, the five included programs will knock your socks and dry your eyes! On the serious side, the People Meter allows you to fully explore the realm of stress management.
Requires an Amiga 500, 1000, or 2000 wiLh at least 512K and Kickstart 1.2. Available from your Amiga dealer or order direct for $ 59.95 plus $ 3.50 shipping. CA residents please add 6.5% stale tax.
Aminetics P.O. Box 982-205, Whittier CA 90608, (213) 698-6170 Amiga ir a registered Lrademar of Cammadore-Amiga, Inc. John Sobernheim, you are first.
(John Sobernheim) 1 was wondering if any of your companies were going to market more application type tools (Integrated packages, etc.). RR: William first, please.
WV: We are looking at integration in productivity software, can't give specific titles. But it is good if products work together in expected and un- expected ways. For example the Diga! (telecom) developers added Textronix emulation to allow Textronix images to be captured to the CAD system as an option.
IFF (Thanks EA) is another good example.
A comment on the last comment. You should be concerned about the support a publisher gives to you on development. EA has been very good on this, with their developers workstation, etc. We have also worked hard :o get developers the code examples they need, tools and advice. You also want to aim your product at a publisher that fits your product type. If you want to have the product sell for $ 499.00, you want to look for a publisher that sells $ 499.00 products.
RR: Thank you William. Jeff, care to respond?
JJ: Well, application tools is a large subject. Our Deluxe Series is definitely being expanded, and could potentially include word processors, page layout, sound tools, etc. We are DEFINITELY looking for more Deluxe Creativity Productivity tools.
BB: Hola!
WV: Here's PCLO!
RR: Thank you, Jeff. Brian, I know Infocom is primarily (entirely?) Game oriented, but do you have any surprises you'd like to tell us about regarding tools?
BM: A 68000 version of our relational database, Cornerstone, now exists. We showed the Atari ST version at Comdex. If sufficient interest were shown, we might be persuaded to port it over to the Amiga.
RR: Thank you, Brian. Folks, you heard the man... send mail!
John Sobernheim, you regestered an additional comment?
(John Sobernheim) SMART Plus on an Amiga or ST would be nice. Build in WP SP GR Comrn, and sell millions.
Thats all.
RR: Okay, I'm sure your comment has been noted, William, you had a comment?
RR: Thanx.
An _excel- lent_ question, Glenn.
Before I ask for replies I have been informed that Brian Fargo of Interplay (Bard's Talc!)
Is also in the audience, cvisualizing dozens of heads turning grin» (Brian (Interplay)) Hello all.
RR: Since Ben's just arrived, let's put him on the spot first.
10 O ? HUGEprint HUGEprint the muralprinter" Prints any size up to 8x13 FEET!
Uses standard printers and drivers. Prints any IFF ILEh file including brushes, screens, and pictures that exceed the size of the screen display, fill resolutions are supported up to the maximum number of colors available. HAH 4036 color)mode is also supported.HUGEprint can multitask in the background letting you use your Amiga for other jobs uhi1e it prints.Use it from the workbench or use the CLI for batch printing.HUGEprint is an essential tool for fine artists, fabric designers, persons who wish to make high quality signs in 32 colors or anyone with an Amiga and a pri nter.
HUGEprint costs $ 48.00 plus NY tax if you live there and $ 2.00 for shipping. Send check or moneyorder, no cash no plastic to HUGH'S SOFTUARE RANCH 50 EAST END AVE. 4C NEU YORK, NEU YORK 10028 COD phone orders acepted dealer inquiries encouraged 212-873-4651 AMIGA la * tradvnark of CoHhodopt-Anlgi BB: Well, word of mouth, not very... BBS network, nominally better, demow- are, very. IF, and this is a big if, your demoware doesn't obsolete or potentially replace your ware-ware. No save, or some equivalent cripple needs to be placed in the Software.
You should keep in mind that my company's product is aimed at a very vertical market, that is to say, one that is specialized, and so that skews my results from the general market type of stuff. On the other hand there are a lot of technical types using and buying Amiga's for the first time, and so mebbe that skews it back.
RR: Thanks, Ben. Jeff, want to field this one?
JJ: Well, word of mouth, user groups, etc. is a very tricky channel. They also tend to be the people who believe in "freeware", (i.e. sharing copies of VVV: On the Amiga vs. ST market for software. SPA (Software Publishers Association) survay shows that even though there are more ST's than Amiga's, more software (by volume) is selling on Amiga and by $ S$ it's a larger margin. This may change. Just thought I'd give you some good news.
RR: Crin I'm sure that's something we are all glad to hear.
Jeff, you had an additional comment?
JJ: Actually, according to Atari, 150,000 or so ST's have been sold, but 60% of them are in Europe. That means domestically, there are more Amigas.
RR: Thanks for that, Jeff. Brian, you also had a comment.
BM: In brief, our figures suggest that Amiga buyers tend to be first-time computer buyers, wheras ST buyers are upgrading from their 8-bits. We see more of our standard classics (ZORK, etc.) sold on Amiga than on ST, possibly because more ST owners have already played them.
RR: Thanks Brian.
RR: Folks, 1 don't mean to put the man on the spot, but lurking in the audience is Ben Blish of SoftCircuits, makers of PCLO... WV: Yea Ben!
RR:... you may wish to direct some questions to him (though he is under NO pressure to answer, since he is just a spectator.)
BB: I'd answer, I suppose.
RR: Glenn Nielsen, you were next.
(Glenn Nielsen) Thanks, For the small publisher or individual, how effective is word of mouth for marketing, i.e. BBS network annoouncements and DemoW- are? I'd like a comment from Ben also if he's willing.
Anything they like). It only works if your end user is very ethical and or needs follow-up support.
RR: Jeff, I think we should make the point that the classical definition of "freeware" does _not_ include pirated software, correct?
WV: Yep.
JJ: True, but there are plenty of folks who believe ALL software should be freeware.
RR: Sad (in the case of piracy), but true.
Brian, care to comment?
BM: Since our products appeal to a fairly narrow, and intensely loyal, group of people, word of mouth is very important to us. My last title, TRINITY, was literally saved by it.
Continued... RR: Interesting how different circumstances result in different outlooks on some of these issues.
Peter Hodgins, you have a comment on this issue?
(Peter Hodgins) What kind of copy protection schemes do you forsee in the future?
WV: Optical Media?
JJ; Lower prices and ethical users.
(Brian (Interplay)) Off line protection.
WV: Documentation and added value.
RR: William, you wanted to comment on word of mouth.
WV: O.K., word of mouth and demos and BBS can help a vertical product get out there. The problem is that dealers mav not carry the product if they don't know you or if they don't sec Ads for the product. Early in a machine's history shareware (demos also) can work out for these vertical products. On the Amiga TxEd comes to mind.
A demo can come back to haunt you; if it's not as good as the released product it may be hard to get the word out. The BEST example of a demo working miracles is the Mindscape Cinemaware demo of Defender of the Crown (actually the demo was an Animation in Aegis Animator).
WV: The product was sold, marketed, and broke records because of the demand the demo built up at user group meetings and shows. It also went to reviewers as well. They did do some good advertizing but the demo sure helped. By the way, the game actually used a animation-compiler to do much of the play! (Defender of the Crown).
RR: William, 1 think you indirectly touched on an important point when you said "early in a machine's history".
I think we all remember a certain terminal program (I won't mention the name, please, no one else either!) That we bought simply because that was all there was. Now that the system is more established, getting buyers is going to become trickier, and this may be whore the publishers come into play.
Am 1 on base?
AMIGA HARD DISK BACKUP HARDHAT Full Incremental Directory Single File backup to microdisks.
Option list allows skipping of files by name with wildcards.
Catalog file provides display of backed up files by name with size, location and datestamp. Double data compression reduced disk space. Printer interface. Uses CLI or Workbench.
Multitasking provides background operation. $ 69.95 AMIGA DISK FILE ORGANIZER ADFO Having trouble finding that file somewhere in your stack of floppys? Can't find all the copies of a particular file? ADFO maintains a database of directories and filenames from your collection of disks. Fast response inquiries return location and last update information. Printer interface. Uses CLI or Workbench. 512K ram and 2 drives recommended $ 59.95. AMIGA SPELLING CHECKER SPEL-IT Uses 40,000 word primary dictionary and optional second dictionary. Add De!ete words to both dictionaries. Includes
plurals. Text worccount totals. Uses CLI or Workbench, Mouse or keyboard. $ 49.95 Include $ 3.50 S&H Mastercard Visa Accepted Calif. Residents Add 61 z° o Sales Tax 3386 Floyd Los Angeles, CA 90068 (213) 851-4868 Order phone 1 800 621-0849 Ext. 494 WV: Lameware does sell for a while, but it will backfire on the publisher.
RR: Well, my point was not necessarily that the program was "lameware"; 1 think the same principle would apply if it was fantastic. The "only cow gets milked", as it were.
WV: Oh, the best way to break in the business is early in the history of the machine... witness Aegis.
JJ: A mature market (like the c64) relies much more on distribution channels such as the Whorehouse or Toys R Us, and on magazine ads.
RR: Folks, 1 want to interrupt briefly to tell you that Brian Moriarity of Infocom needs to slip out. I'rn sure we all appreciate his being here, and if this were face to face I'd call for a round of applause (with no doubt I'd get it).
Brian, thank you for sharing your thoughts with us.
BM: Thanks for inviting me in, Slipping out now.
RR: 1 think we've beaten that question to death... Marlene, you were next, (marlcne zenker) How do you determine the price of a package and how would the formula vary if you were an individual marketing on your own?
RR: William, care to take that one first?
WV: The price depends on what the competition is selling and what packages like it sell for in general. Develop- mcnt costs also play a role. However I've situations where developers attempted to price product on the basis of "You would have to spend 520,000 on a CubiComp to do this", it doesn't work, that way. You can't really charge on a basis of precieved value, you have to fit the marketplace.
RR: Thank you. Jeff, you had a comment?
• Software Publishers ¦Peripheral Manufacturers
• Hardware Developers Be Represented by Canada's Premier
Distributor of Amiga support products JJ: Yes, laws of supply
and demand tend to drive the prices as low as possible. Take
our c64 market, for instance. Now that it is so large, we can
afford PHASE 4 Distributors [Long pause] RR: Jeff, did we lose
7144 Fisher Street S.E. Calgary, AB, Canada Till 0W5 Head Office (403)-252-0911 [Long pause) Looks like Jeff's modem is playing games with him. Ben, you had a comment about this issue in the meantime?
CALGARY • TORONTO • VANCOUVER * ST.JOHNS VVV: Ben, 1 wasn't referring to anything like PCLO, your price is fair.
BB: Yeah, if there is NO competition (our case when we started), then vour price can bo set to whatever the market will bear in exactly the manner suggested, IE it would cost XXXX to do this on a frump, so this costs ,5*XXXX VVV: But not for a potential mass market item (no names).
BB: If there is competition, then that sets the price all by itself, unless your product is so superior that it cannot be missed or spoken about in a misleading way. Bill's too smart to make those kind of claims; others aren't.
And, it hasn't seemed to make a lot of difference to us that there is a company attempting to compete with us, lower price, same target market. So even if you are competing, use excellence as a lever and you won't have to worry so much about the price.
JJ: r m back, don't know what happened.
(marlene zenkcr) So basically it doesn't matter whether you're an individual or large publisher, the marketplace is what counts.
BB: I don't think so. I'm an individual, and thats all there is to SoftCircuits.
WV: And we refer folks to Ben all the time!
RR: Well, William has just told me he must be moving out. Thanks very much for coming tonight!
WV: Any final querys?
RR: If you have, time, William, Steve our Wizop had one very important one which I think should be asked.
WV: O.K. RR: Steve, are you available?
[Long pause) Apparently not, but let me ask it, because I believe it IS important: "Do you regret your decision to develop for the Amiga, and what do you see in it's future?"
William, go ahead first, since you need to leave.
VVV; Are you kidding! The Amiga really moved Aegis up! However I wish Commodore would do more for the marketplace and promote software that "followed the rules" etc, etc. (John Sobernheim) Hear Hear!!
VVV: No regrets, we have A LOT more Amiga product in the works.
Continued... RR: Thanks, William; I doubt anyone expected to hear anything else. Thanks for spending time with us tonight.
Have a good evening (what's left of it!)
WV: Bye for real.
RR: Jeff, would you like to respond to Steve's question, please.
JJ: Absotivcly, posilutely, NO REGRETS!
We have grown over 100% this year, and a lot of it is due to our early commitment to the Amiga, especially with the Deluxe Series. We made back our initial investment in Amiga development in the first three weeks that we shipped our first Amiga releases. Our slogan used to be "We See Farther"... now, thanks to the Amiga, Farther is here, (yeah, I know that sounds corny.
Sorry, 1 got carried away!)
(marlene zenker) Not corny, EA is a really classy company.
RR: Jeff, as long as you believe it (and I think you do), I think we can all excuse the corn. Bon, would you care to respond to this as well?
BB: Ok first, 1 don't regret it. Sometimes I'm a little jealous of the market share that companies get when they support popular toys like the IBM PC... RR: ccringing, hoping there are no IBMcrs in the crowd BB;... but the Amiga seems to be still selling in spite of Commodore. When the Sidecar is released in the US I'll be a LOT happier. A company that keeps claiming, then doesn't deliver, gets the users very annoyed. I think the boys and girls at CBM are being really shortsighted, over and over again. We'll stick, though, as the machine is fabulous, and what I want out of this is
performance products, at the level I, and my customers, see fit.
RR: Ben, I think the frustration felt towards the way Commodore is handling matters is almost universal, and I'm sure there are many of us who feel that WE could do a much better job of management. But 1 would stress one thing, something I stressed way back at the beginning of the Amiga: they have problems, true, but let's remember all the things they did RIGHT.
BB: They bought Amiga. That's one.
What else?
RR: Ben, that's a pretty important one, wouldn't you say?
BB: yes, very, but it's still one.
RR: Ben, don't forget, CBM also converted the Ami to 3.5 inch drives and more memory.
[The Amiga was originally designed with 5 1 4" drives and considerably less memory] 19 Crosby Drive
P. 0. Box 523 Bedford,MA 01730 617-275-8892 AUTHORIZED COMMODORE
1000 500-$ 29.95 plus pcirt,s t.ax C-64x123-SI 9. 95 plus
ports tox Free estimates, No defects-No charge UE DO WARRANTY
WE CHARGE BY THE JOB,NOT BY THE HOUR Jeff, you had a comment on this?
JJ: Actually, I have heard a lot lately that leads me to believe that CBM is FINALLY getting its act together. RJ Mical is even getting optimistic about CBM's directions [RJ Mical was instrumental in the development of the Amiga's hardware, as well as being very visible in a developer support capacity. He was one of the first people let go in the Commodore layoffs earlier in the year] RR: Okay Jeff. Okay, folks, This officially ends our first conference; I hope it was useful to you. I will now turn everyone loose to chat, (S. Ahlstrom SYSOP) I would VERY much like to thank our guests and
Rick Rae for spending a Wednesday evening enlightening us all.
BB: Can we fight now?
Copyright 1986 by AmigaForum, Aegis, Electronic Arts, Infocom, SoftCircuits.
• AC- Reading a conference transcript (either here in Anmzing
Computing or electronically via modem) is only half the
With a transcript you can read what happened; by participating in a conference you can be a part of it. Instead of merely hoping the featured guest addresses an important issue, you can be sure, by asking a question or making a comment about it.
About Online Conferencing by Richard Rae To participate in a conference, you must first be a member of the appropriate network. This conference was held on CompuServe's AmigaForum, a meeting place for literally thousands of Amiga enthusiasts. Joining CompuServe is as simple as following the instructions in a "SnaPak," a tear-apart envelope which contains a temporary user ID and password. Many modems and telecommunications programs include SnaPaks or you can buy a starter kit complete with SnaPak and user's guide from many electronic and computer stores. If : you can't find them locally, you
can order one directly from CompuServe for $ 39.95 by calling 1-800-848-8199 (in Ohio or Canada call 1-614 57-0802). This starter kit also includes a $ 25 usage credit, so the actual cost is about $ 15.
The next requirement is to be a member of the forum which supports your area of interest. There are scores of forums on CompuServe, each addressing a particular subject. In this case, typing CO AMIGAFORUM at any "!" Prompt will take you to the AmigaForum's Visitor's Menu; simply select the "join" option to become a member. There are no special forum dues or responsibilities beyond following the general conduct rules.
Once you are a member of a particular forum, you need to know when the special conferences arc scheduled. The AmigaForum normally posts a short bulletin (which you will receive automatically when entering the forum) a week in advance of each formal conference, so you need only jot down the day and time for any conference which interests you.
Of course, you'll also need to know how to attend the conference! The AmigaForum is conceptually divided into three areas: the Message Base (where members swap messages back and forth, not unlike an electronic bulletin board), the Data Libraries (where all the programs and files arc stored), and the Conference Area. (All the forums on CompuServe are structured similarly, so if you learn one, you've learned them all.)
Upon entering the AmigaForum, you are in a "lobby" of sorts, with direct access to the Message Base. To move to the Conference Area, simply select the conference option from the menu or type CO at the main forum prompt.
The Conference Area is composed of several "rooms," each of which can contain a seperatc conference, all going on simultaneously. When you enter, you will be in Room 18, which is the default. Informal gatherings are normally held in this room.
To participate in a formal conference, you need to go to the appropriate room.
Most AmigaForum conferences with featured guests are held in Room 2, 'Talk to the Trade." To get there from Room 18, type ROOM 2 or TUNE 2.
The slash is a delimiter and should be the first character on the line for any command. For example, EXIT will return you to the "lobby", HELP will dislay a list of conference commands, and so on.
Formal conferences include a moderator (who acts as "traffic cop"), one or more featured guests, and the forum membership. In order to maintain a smooth flow of information, a simple protocol is followed by all participants; this protocol is explained in a text file in the forum. Again, information about this file is included in the short bulletin you wilt automatically receive if a conference is scheduled.
Participating in a conference (and a forum) is an exciting way to meet others with similar interests, especially industry figures with whom you'd not normally have the opportunity to talk.
It is also a valuable resource. Someone usually has a rapid answer for just about any question or problem you might have. The AmigaForum works because of its members, who are bright, vocal and intensely interested in everything Amiga. Come join us!
¦AC- O to 60 in 3 Seconds create unusual shapes. VideoScape 3-D includes a series of objects created by Allen Hastings, as well as IFF foregrounds and backgrounds painted by Jim Sachs and Richard LaBarre. You can generate frames and automatically play them back from scripts, step through each frame one at a time, and use manual or automatic camera motions. VideoScape 3-D will work in multiple resolutions up to 704 x 440 including overscan ar.d interlace.
Combined with other software products, including Aegis VideoTitler, Aegis Animator, Images, Deluxe Paint II, or Aegis Animation Workshop, your animations will shift into high gear. Aegis puts you in the winner's circle! Join the team today!
Actually, we're being conservative. The ANIM feature in VideoScape 3-D can play up to sixty frames in one second.
Real time. Perfect for desktop video production. Perfect for desktop presentation. The ultimate 3-D animation system for the Amiga.
VideoScape 3-D has been designed to work with any Amiga computer using a minimum of 512K RAM. It features solid object generation with hidden surface removal, diffuse reflection from a light source, specular reflection, and a wire frame mode.
VideoScape's Easy Geometry Generator lets you create simple geometric shapes like cubes, spheres, boxes, and cones. You can also use Designer 3-D's visual interface to For more information or your nearest dealer: To order direct:
(213) 392-9972 1-800-345-9871 2210 Wilshire Blvd., 277 Santa
Monica. CA 90403 VideoScape 3-D, Aegis Animator Aegis
VideoTitler, Easy Geometry Generator Designer 3-D Aegis
Animation Workshop are trademarks of Aegis Development Inc.
Deluxe Paint II is a trademark of Electronic Arts Inc.
Amiga is a trademark cl Commodore*Amiga Corp. The AMICUS
Network by John Foust As you can probably tell, I am becom
ing more and more fascinated with Amiga video and animation
This affection is appropriate for someone in love with this machine graphics and video are the Amiga's forte.
The SIGGRAPH conference in Anaheim, California in late August was proof that the Amiga is a contender in the animation and video market. SIGGRAPH is the annual convention of members of the graphics special interest group of the Association for Computing Machinery. Most ACM members are from the best computer graphics companies and university research groups.
Beyond the technical talks, there was also a large trade-show style exhibit hall. The Commodore booth was situated near Apple and Sun Microsystems, the other "low cost" computer systems (The cheapest Sun system is priced about 510,000. A Mac II system prices out at about $ 6,000. The Atari ST was nowhere to be found.). This display is no casual trade show. It is a time when the best minds in computer graphics present papers and lectures. Films and artwork are also presented and competitively judged in a competition, SIGCRAPH attendees can view the films in evening showings.
The hardware is tops, too. How good?
At the film show, I was in the tenth row away from a huge 40-foot projection screen. While watching the best film of the night, I blinked to clear my eyes and held my head steady in my hands, mouth agape. I couldn't see anything "wrong" with the animation. It simply looked real - no jaggics, no hard mechanical edges, all realistic motion.
I should clarify. The word "contender" implies competition and a chance to win. The competition at SIGCRAPH were giants compared to the Amiga.
After ail, can a $ 2000 computer complete against $ 50,000 computers? Perhaps "competition" wasn't the right word choice. There was one Amiga-generated animation in the film show called "Dance of the Tumblers" by Steve Segal of West Plollywood, California. Done with Aegis Animator and enlarged on that 40-foot screen, the low-resoiution Amiga pixels looked huge and the animation looked coarse. There was a big gap between the Amiga and the other graphics computers at the show.
The conference made me think, "What makes the Amiga great?" The answer was simple. First low cost. After all, people who work on $ 200,000 computer systems by day want a computer for home, too. . . Or perhaps they can't get access to the expensive computer in the office, so they can put Amigas on their desks. The low cost of the Amiga is very attractive and I am sure the Amiga 500 was the lowest cost computer shown at S1CGRAPH.
Second, the Amiga is interactive. On personal computers, the user interface is primary to the usefulness of the program. Many of these more expensive computers have inferior or non-existent user interfaces. In many cases, you are provided with documentation that assists you in programming the hardware, but little more than that. A large banner at the Pixar booth advertised a base system for $ 49,000 - "Including a C Compiler."
During the guided press tour, an ACM official called the Amiga the "great sleeper" of the show, saying its graphics potential was yet to be realized. I agree.
I hope that many other SIGGRAPH attendees took that idea home with them, too.
Commodore In force It was very nice to see Commodore officials present at the show. A1 Duncan, Commodore's general manager, was present and on the floor every day of the show. Henri Rubin, the executive VP and chief operating SIGGRAPH More Animation Products Live! Update officer, and Richard McIntyre, the senior VP of sales and marketing were present for at least one day of the show. I think the Commodore reps were pleased by the response from attendees; the booth was always busy. At an Amiga user group meeting during the week of the show, Duncan announced that Commodore will also be present
at the next SIGGRAPH.
The week before SIGGRAPH marked the shipment of both Byte-by-Byte's Sculpt 3D and Aegis Development's VideoScape 3D. Ray- tracing was a hot continued... topic both in and out of Amiga booth.
The Sculpt product raised the eyebrows of many casual observers who used much more expensive computers to do the same thing. VideoScape impressed many people for the same reasons.
There were a half-dozen animations shown by people who had bought the program only days before. Aegis Development had four spots showing their line of software. Sonix provided the background music for the booth.
Mimetics showed their real-time video digitizer and frame buffer which went into production in August and should be available in September. They also showed software that can display an IFF picture on the frame buffer. The software is somewhat slow; it takes several minutes to translate the IFF data to a form suitable for the buffer. The buffer does not accept simple red, green, blue values for each pixel. The board uses a minimal amount of memory to store the image, so it must convert the pixel values to another form. This process takes time and I imagine this delay will hamper interactive
applications of the frame buffer.
Time problems aside, the images were superb. Videophiles were impressed by the buffers' ability to capture two true video fields. Captured images looked like very good still-frames on a video recorder.
As usual, New Tek showed their Digi- View video digitizer and their new HAM paint program, Digi-Paint. Other booth regulars included CSA with their 68020 68881 Turbo Amiga, Liquid Light and their Polaroid Palette screen camera. Software Visions with Micro- Fiche Filer and CalComp with their PlotMaster color printer.
Gold Disk showed Professional Page, Pagesetter and Laser Type. Professional Page is expected to ship in September.
Crystal Rose showed a new fractal- based graphics program. If you remember, they showed a Mandelbrot program at last fall's Commodore Show.
Anakin Research showed a version of their Easyl drawing tablet interface for the Amiga 500 and 2000. The new boards use a custom ASIC chip, so the board parts count is reduced.
Ameristar used their network boards and software to join two Amiga 2000s with a Sun minicomputer. The Sun with its 300-or-so megabyte hard disk became accessible to the two Amigas as a logical device, such as "NET:". In other words, the resources of each computer on the network are available to all. This connection is called peer-to- peer networking. Ameristar also has remote logins working over TCP IP which were demonstrated to Sun Microsystems representatives in a private meeting.
Mindware showed an IFF animation program called PageFlipper. It loads IFF images into memory and flips them to the screen in succession. Overscan, as well as scripting of the animation sequence, is supported. One interesting feature is a seamless, looping background image for a character walking on the screen, available for $ 49.95. Mindware occupies the same address as Anakin Research.
The University of Lowell, Massachusetts showed a DMA image processing board for the Amiga 2000. The board can accommodate up to seven parallel image processing chips (the NAC 7281). Each chip gives approximately 5 MIPS (million instructions per second) of processing power, dedicated to image processing. The demonstration in the booth showed the board rotating a two- dimensional image, counting vertical pixels in columns and drawing histograms of the data in real time.
DESKTOP AUDIO VIDEO SYSTEMS Interactive Microsystems Landmark, Suite 20
P. O. Box 1446 Haverhill, MA 01830 U.S.A. 617 372-0400 The Amiga
was present in a few booths outside the Commodore booth.
Byte-by- Bytc had their own booth and a presence in the
Commodore booth. Micro Magic, the makers of Forms in Flight,
had a small booth near the Commodore booth. According to David
Youlton, Forms in Flight was first shipped in late June. Its
animation resembles VideoScape, but Forms in Flight has a
very nice, interactive user interface for creating objects,
while VideoScape lags in this respect. The program also works
in stereo, with red-and-blue glasses.
You can edit and view objects in stereo wire frame. Forms in Flight does not conform to any IFF standard, unfortunately, and uses its own format for animation files. It is also geared to users with the admittedly expensive step- frame recorder. Youlton also plans to release a freely-distributable animation player called Fast Flight.
During the first two days of the show, the General Electric booth showed the Winner's Circle Systems video presentation system. GE bundles Amiga hardware and software together for sale through Winner's Circle in Berkeley, California. In the GE booth, a seven megabyte Amiga played a 1300 frame VideoScape animation, which is all stored in memory and played back in real time. Reportedly, GE thought they'd stump viewers by saying they couldn't use a videotape of an animation, so they did it all from memory instead.
The 1988 SIGGRAPH will be held August 1 to 6 in Atlanta, Georgia - and Commodore will be there.
Amiga Friends The Amiga Friends, a local user group, hosted a meeting to coincide with the SIGGRAPH conference. Attendees filled a large ballroom in a hotel on the Anaheim convention grounds. It is nice to see local user groups taking advantage of the Amiga developer presence when a trade show comes to town. As someone remarked at the meeting, any competitor of Commodore could bomb this ballroom if they wanted to ruin the Amiga.
Do you know where your bugs ere ?
This C programmer is finding his bugs the hard way...one at a time.
That's why it's taking so long. But there's an easier way. Use Lint for the Amiga 2.00 Lint for the Amiga analyzes your C programs (one or many modules) and uncovers glitches, bites, quirks, and inconsistencies. It will catch subtle errors before they eaten you. By examining multiple modules, Lint enjoys a perspective your compiler does not have.
A1 Duncan and Dave Archambault of Commodore spoke at the meeting.
They made a few nice announcements: Commodore will have a booth at the Fall COMDEX in Las Vegas in November. They plan to continue the advertising campaign for the Amiga 500 and 2000 into the fall. Commodore has added seven new telephone customer support people, partially due to the 5000 calls a day they are still receiving concerning the Commodore 64. Commodore is also creating a plan to court Amiga 500 sales in the educational market.
@Bn 3207 Hogarth lane • Collegeville, PA 19426
(215) 584-4261 The meeting featured numerous demonstrations of
Amiga products by representatives of exhibiting
companies. A summary of speakers and demonstrations: CSA
representatives A1 Rikcr and Bill Reed showed their Turbo
Amiga speed enhancement boards. A clear demonstration of
the speed increase was given with a Mandelbrot program,
well- known for slowness and an appetite for CPU cycles.
New iterations of the Mandelbrot set took only seconds,
while an ordinary Amiga might take minutes to do the same
work. Riker and Reed
- NEW: ANSI C extensions (cnum, prototypes, void, defined,
pragma) and many additional checks.
- Full K&RC
- Use Lint to find: inconsistent declarations argument parameter
mismatches uninitialized variables unaccesscd variables
unreferenced variables suspicious macros indentation
irregularities function inconsistencies unusual expressions ...
- User-modifiable librarv-description files for the Aztec
andlLattice C compilers.
• All warning and informational messages maybe turned off
Hinted that CSA might be working on higher resolution video boards for the Amiga.
Micro Magic's Dave Youlton showed Forms in Flight, his shaded polygon animation package. NewTek president Tim Jenison showed Digi-Paint. Byte by Byte president Scott Peterson demonstrated Sculpt 3-D.
- Indirect files automate testing.
- Use it to check existing programs, novice programs, programs
about to be exported or imported, as a preliminary to
compilation, or prior to scaling up to a larger memory model.
- All one pass with an integrated pre-processor so it's very
- Has numerous options and informational messages.
- It will use all the memory available.
- PRICE: $ 98.00 MC, VISA, COD (Includes shipping and handling
within US) PA residents add 6% sales tax. Outside USA add
$ 15.00. Educational and quantity discounts available.
- Trademarks: Amiga(Commodore) Microillusions rep Jim Steincrt
showed Photon Video, an upcoming line of animation programs.
The demo looked as good as ray-traced animation, but used a
different, much faster technique than ray-tracing.
Microlllusions is planning interfaces for controlling pro
fessional video equipment, such as a continued... SMPTE
interface. At this point, it all looks too early to tell they
don't plan to release the product for months.
Contact: Probe Keith Doyle showed his Contact:Probe animation. This demo disk has been making the rounds; perhaps you've seen it. Doyle participated in Contact, an annual meeting of science fiction writers and artists. They get together to talk about an imagined contact with an alien species. Each group keeps the others in check and all work together to produce stories and artwork to illustrate their conclusions about this alien contact, Doyle's demo, produced with his partner Joel Hagen, was used in the television coverage of the Cor tact conference (for an hour-long show on California public
television). Using a series of custom software tools, the demo animates a sequence of the telemetry returning from an interstellar probe that discovered a skull on another planet. The on-board computer fleshes out the skull and animates a bust of the alien.
New Prism The Prism HAM picture editor, reviewed in this summer's video issue, has been updated to version 1.2. The upgrade is free for all registered owners, according to Stan Kalisher of Impulse, Inc. You can contact Impulse for more details at (800) 328-0184.
The most notable improvement in the program is how it draws. While some programs (such as Deluxe Paint) can't quite keep up with the fastest mouse movements, the new Prism does very well at reproducing the fine movements within a fast mouse movement. A signature is a formidable test. Most programs in the free-line drawing mode can't keep up with even an average signature, using the mouse like a pen.
Prism has also added cleanup to the HAM images, so the HAM pictures arc much sharper than before. Impulse also plans a mid-September release for a ray-tracing animation program called Silver. Silver will sell for S169 alone or $ 199 bundled with Prism 1.2. Hagen hopes to turn his tools into a product, scheduled for an October release from his company, the Right Answers Group. His projected program, called The Director, uses a script language to drive the animation and the script commands support IFF and blitter operations directly. Hagen's work should make for an interesting Amiga- specific
Aegis Development's Bill Volk showed a video tape of animations from Videoscape 3D and talked about the terminal program Diga! And some other forthcoming Aegis products. Apparently, new versions of Aegis Draw will have "software slots," similar to the user-customizable terminal emulations in Diga!
(User-customizable if you arc a C programmer, that is...). Amiga artist Jim Sachs was scheduled for a presentation of his latest work, but Volk w'ent into overtime, and Sachs was left in the dark. The meeting consumed four full hours. Even for the most rabid Amigan, these demonstrations can be a bit tedious if the speaker is not accustomed to speaking to groups. As one demonstrator talked about "his personal favorite menu option," 1 overheard a heckler say something about "his personal favorite menu option, called Quit."
The program ended with a panel of Amiga experts and luminaries, including most of the previous speakers, graphics hackmaster Leo Schwab (in full cape and hat, of course) and BIX SYSOP Joanne Dow. An open question session was followed by predictions from each panel member. Luckily, 1 had talked with the Bandito before the meeting, so 1 had a series of predictions "guaranteed to come true." Former Amiga Los Gatos wizard Dale Luck had some interesting predictions about enhanced graphics chips with more CHIP memory and more colors.
Amiga Live! Update "It was for the best. Grab was not a corporation made ir. Heaven. Grab and A Squared had different intentions for the corporation's plans for the future.
Those differences proved to be too great."
RJ Mical explained the latest twist to the story of the Amiga Live! Video digitizer in this manner. Live! Is produced by A Squared Systems of Oakland, California.
Several months ago, Mical and his wife Caryn formed a corporation called Grab, Inc. to market Live!. The corporation has now been disbanded. According to Mical, Grab did not accept any prepayments for Live!, so there arc no unhappy customers.
Because of differences of opinion in marketing strategy, Grab and A Squared agreed to dissolve the corporation on July 30.
A Squared still retains the rights of distribution of Live!. They have formed another company to distribute through both direct mail-order sales and computer dealers. According to Wendy Peterson, president of A Squared Systems, the planned September 15 ship date still holds, along with the $ 295 list price.
"It's simply a name change, that's the best way to describe it," she said. 'The phone numbers are the same. The address is the same." Peterson and Mical agree on the reason for the breakup. She said, "We formed a company and found that we had ideas that were going in different directions."
More shows Tw'o exclusive Amiga shows happen in October. The first is the Commodore Show in Anaheim, California, on October 3 and 4. The AmiExpo takes place in New York the following weekend, October 11 to 12. Amazing Computing™ will have three booths at AmiExpo. The booth will be staffed during the show by Many AC™ authors. AmiExpo is the first Amiga- only show on the East Coast.
¦AC Expanding Reference imazmgs Computing" The Excllomenl Continues...... ¦eawtieKiw Super T©rm Caanem A*ii Volume 1 Number 1 Premiere 1936 Super Bpberat By Ko'ly Kauffman An Aekuic Grapncs prog.
Data Vlrui ByJFousJ A peeMemiy attack your Arr.igal EZ-Term by Keiy Knuffman An Aflajic Term nol program Mga Mania tyP, Kivol?«a Programming txea & mouse car® In tide CLI by G. M-sso' a guided maght in® tie AmigaDof™ CLISumnary by k bLaser Jr. AliiSofdlcommand* AmigaForum byB. Lutwn YU Compuwrve'i Amiga SIG C om mod or a Amiga Qtveloprr ant Program by 0. Hots Amiga Product! A listing ofprasert and expected pnodxa Volume 1 Number 2 March 1936 Bactronlt Arta Com at Through A rawwcf software from EA Inalda CLJ; part tun G Muuer Invar bjntes CLI S EO A Summary of ED Command!
U»*l byFkchMner Awwrcft'eBetaverscincf Lvo Ontna and tha CT9 Fablta 2424 ADH Modem by J. Fwit Bupertwm V 1J By K Kauffman A term, prog.in AmgaBaac A Workbench "Mor** Program by fkAWch Amiga B8S nomban Volume 1 Number 3 April 1986 Anafyn! A wew by Ernest Yverios Review* of Racter, B an ticca a and kind shadow FqrthlThe IraSofcxjrorvgang btoriaf Deluxe Draw!! TyRWreh Vi Amga Baa c art program Amiga Bute. A bog mera tutorial IndOa CU: part 3 by Georg* Mutsar Gec-ge gv*a u« PIPE Volume 1 Number 4 May 1986 BkyFo* and Artcfc Reviewed But Id your own 51 4 Drive Connector ByEmeatViwoa Amiga BuieTpt
by ftch Witch 5a In par Pirt One ty P. Krolowti prog to pnnt Arga acreen M-crowft CD ROM Corrfiranca byJmOKaane Amiga BBS Hum bar a Volume 1 Number 5 1986 Tha J1S1 to RGB Conwelon Tool by S. Pewwci Worm input non in BASIC AmlgiHoteaby RicKRm Tha frit of tha Argimuecco'unns Sidecar A Firat Loo* ty John Fous: Aire'unbernahooo' Join Fouat Tilka with HJ. Meal 11CC-MOEX~w How do*e Sidecar affectthaTraniformer an intervene wti Douglas Wyman of Stm la ThaCommodora Layoffiby J Foust A look Co mm «»-a'cuts' Scrimper Part Two by Parry Krvolbwa Marauder reviewed by ftc* Wrtfi Building Toots by Oarial
Kary Volume 1 Numbers 1986 Tempii of ApahaJ Trial ogy ramand by Sieohen Rarowia The Hal key Project: A Ida a on In our Sdv Syatam ravewed by Stephe* Pato»cz Fow: reversed by Enr Bobo Textorift Pui a Prat Look ty Joe Lnwy Mow id itart your own Amiga Uear Group by Wf«m Srp»n Amiga Uear Groupa Mailing Llet by Kelly Keuffman a base m*i 1st program Pointer Image Editor by Stephen Petowa Scrimpar: part thna by Pamy Kvodvetz Fun With ttia Amiga Otek Control lar by Thom String Opfmlza Your AmigaBaalc Programi for Speed by Pietrweci Volume 1 Number 71986 Aegis Driw: CAD comaa to the Amiga oy Kelly Adam
e Try 3D byJtm Moscow* trirtodudlon to 30 graph ci Aagla hi age if Animal or: a revaw by Erv Bobo Detuia Vdeo ComtnjcUon Sat rewewed by Joe Lowe-y Window requestem In Amiga Beale byStevakAOW ROT Calm French 130grtphca wStor 1C Whit I Think* Ao n Fte *o i w n a few C graphic prog a Tour Menu 5b I by B Gattey program Am ga Base ma'ue* JFF Bruah to AmigaBaalc 'BOB' Base eotar by M Swinger Linking C Program wrth AsawnWw flouEree on tha Amiga by Garted Hu I Volume 1 Number 81986 The UnfwWty Amiga By G Gambia Arrga's inmada aiWaffirigan State Univwiity Micro Ed ¦ look at a ana man army far fw Amga
MmroEd.Tha LawM and Clark Expedition renewed Fr»* Salbtafe Ven»on 10 a 'fr«ywr Computer a In tha Ctaaaroom by Robert Fnraa Two for Study ty FrjB&a Dsccwy & TheTaJking Colo'rg Book True Bit; 'Arewed by Brad Gnar Uaing your prtnter with tha Aml( Marta* Madneei revcwed by Steonen Parowcz U alng Fonts tom AmlgaBuic by Tim Jonac Saean SaVer by P. KiVOtewtZ A monitor protector prog, in C Lattic¦ MAKE Utility rwawed by Scott P. Everndan A Tile of Three EUAC3 by Swa Poling .bmapFlla Reader In Amiga BaMc by T Jonae Volume 1 Number 9 1986 JriUnt Mutic Revww by Sieve Pxrrcvrcz Mndwalkar Revwwed by
R Card Knepper Thi Aiegre Memory Bot d Revew« Rch WrcTi TxEd Rwewed by Jan and Cwf Kant Amazing Directory A girde to toe tojrcni and reeoircee Amiga Developer* A Istrg of Suoplwrs and Dweooers Public Domain Catalog A iistng of Amcm anfl Fred Fiffi POE.
Do* 2 Do* revew a KrdOCWf Transfer 1 ei tom PC VS-DOS a no AmgaBasc UtriPin 'evw by Rcf.ard Kneooer Th Arga Sp'aacsrec' CiCTM tyra ewed byPatorW«ym*r A- awtai' The Loan h term id on Prog am tyBranCalay base prog to hr yocr Vanoa opcori Storting Your Own Amiga Rilifed Business tyW. S-pson Keep Track of Your Biihmi Usage for Taiaa b) J. Kjrmar Th* Abecf. Amiga Fortran Compiler 'evwec by R A Reae Ultig Font* frorr Amlg»Bu c,PartTwobyTim Jcr« 68CC3 Macro* on th* Amiga by G. Hul Atva-ceyourab ty.
Tdi Modla-2 Amiga Corrpkr ¦& em by S Fawii* Volume 2 Number 11987 What DgkView to.. Or, What Genlock Should Baf by J Foust AmigaBatoc Default Colon by B'ya- Catoy AmlgeBaafc Tltia by Bryan Caroy A Public Domain Modula-2 dyr.am 'ovmd by Warren Bock On* Dr rye Compila by Douglas Low: Usng Lapco C wb a sngto ttiw system A Megabyte Without Megtbucka by O'* hnng An tofemal Mega&yto upgrade Digi-Vew by Ed Jakob®* Defender of th* Crown -e ewec by Kwto Confer: Laaatr B oard r®r«w«l by CfVC* Radons RoundNII Comp-jtar Dyttem'e PANEL 'cv-nwec by Ray Lane® Dgi-Paint by Haw Tak orevrawed by John Foust
Dwun Paint II from Eeetnxvc Arta prmnwmd J. Foust Volume 2 Number 21987 The Modam by Jbsph L Rohm an effera of a BBS Sysco MacroModam ravwwed by Sw "*n fl Perowcz GEMM or *7T takes two to Tango" by im Meadows Gam ng b®V«®n nachrwf BB5-PC! By Stopfran R. Pewwcz The Trouble with Xmodem by Joseph L Rarrran The ACO Project.. Graphic Til ec on fennel r g on tha Amiga by S. R Retiowcz Flight Simulator 1"A Croa County Tutorial by Jahn R I'feTy A Diak Librarian In AmigaBASIC by John Kernan Cnicng and Uaing Amiga Workbench Icons by C Ha-sW AmigaDOS yereon 1.2 by Citato Kart The Anizlrg MIDI htorfiet
bu3d your own by Rcarc Raa AmigaDOS Operating Syatarr Cal a and Dhk File Ueregement by 0 Hape Working with the Wcrnbanch by Lbuit A Maraus Prog n C Volume 2 Number 3 The Amiga 2000™by Jlfeuat A Frit look at the new hgnend Aniga™ Tha Amiga 500™by Jahi Four: A look at tho nun, low orced Amga An Analyala of the New Amiga Pce by J. Foust Sooeuit:* on tha N®u- At gas Gemini Perl H by J m Mr-aoows Th® conducing artrietn Vro-psv®'gires Subscript* and Superecrfota In AmigaBASIC by Kran C. Smith Tha Winter Coneumer E acborce Show by John Four AmlgaTriibyW Bock Amga™srortufe Intuition Gadgets by Hemet
Ma-,toeck To ly A journey torom i gadgr land, usng C Shanghai reviewed by Keto M. Confer: ChMamirar 2000 A Cheewr.au rav«w®dby Edwn V. Ape. Jr Zng! Irorn Meridian Sof ware nv«wed by Ec Berccvto Forfi! By Jo- Bryan Get slew sound into yc.r Forto progra-i Aaaanbly Langjaga on tia Amiga™ by Or s Ua'tn Rocmera by heBenoto (ien'ockjarefnay ripprg. & MoflEIH AmigaNotaabyR Raeburn Buiwi - *NoYnot?".
Tha AMICUS Network by J. Foufi CES. Ueer groupiauwtand Amga Expo' Volume 2 Number 4 1987 Anting IntarV err* Jim Sacha by S. Hull Ar ga Atk TH* MouaaThit Got Restored by Jerry Hj:l and Bob Rhode Si yarning Public Domain Dana wfth CLI by John Four Highlight! From th* San Francisco Commodore Show oySHul Speaker Sea*art: San Frandaco Commodora Snow H Toly TheHoueehdd Inventory Syram In AmigaBASIC™ tyB Casey Secret* ol Screen Ckjmp* by NatfcnOkun Uahg Function Keya with MicroEm act by Grog Douglas Amlgatri* II by Warren Bddi More Amiga sho'icuta Bmc Gadget* by Br an CaTey Creato gadgettmcbora
Gridiron wowed by K. Corfon Rea footoai: lor die Ar.ga Star Fleet I Veralon 2.1 revwwd by J Tracy Amgan Soace The TIC renewed by J. Foust Bnttorypoywud Ctodr Ccwndor Uataacopa rwrew by K Tory Ah eary-to-uM oecuggtr Volume 2 Number 5 1987 The Perfect Sound Digltlrr revew by R Bette Tha Future Sound Diglbrtrty W B-ocx Aaoed V*sn'a SO Forth! By J. Brya.ncorr panng JfoT ard Uut-Fcnrv Bade Input by B Cabey AmgaBASiC input rxin* for uwn all you programs.
Writing a SoundScapt Module in Cby T. Fay Programm ng wT MiDI, Amga and SoundScape by SouncScaoe euro'.
Programming In 68000 AaaemUy Language by C. Math Cortnuing wtn Countars & Adorassng Mooes.
UiIng FutureSound with AmlgaBASiCby J. Meadows Amga3A$ C Programming utltywrth real,digitzed STEREO AmlfliNotaa by R Rao Arwowof Mmetcs SoundScape Sound Sampler.
Mora AMIGANoteaty R Rne A fjrtw rwww of Surviae'a Perfect Sound .
Wavetorm Wortehop In AmigaBASC byJ. SheidtWtS sa« wavwfbrm tor use n oner Ar gaBASIC progrars.
Thalimalca Pro MIDI Studio by SMIvft.- JeVy A w ew of U- ebca'm u*C OkJtor'pay®'.
Lntu(ilonGidgr,iPirtflby K Mayb®c*To'y Booie®.- gaoges pomae t e u*er wto an or of user nfertoc® Volume 2 NumberS 1987 Forfrlby J Byan Aoobh mwi n he ROM Kemal.
Tha Amazing Computing Hard Dak Rrrlaw by J. Fbust S S. Lee-on In-depth lookattbra Cltd Ha*d D-ve, McrobotcF MAS-[ vw20, By» by Byia'a PAL Jr., Suora'ikx4Hardl iw and Xeoec'a 97?CH HaU E vw. Aso. A look at dsk Orivwr sotowe curanby irdef dwopmont Modula-2 AmigaDOS™ DtiBtlfi by S, Fawaewsk A Ca Is to AmigaDOS anc to® ROM kern*.
Amiga Expanalon Peripheral by J. Foust Explanation of Anga expanson penpheralt Amiga Tacfinicai Support by J. Foust How and iren to get Amga toch support Goodbye LoaGatoe by J. Foust Cloang Loa Gaos The Amlcut Network ty J FouC West Coast Com pufer Fa-e.
Metacomco Shell and Toolkit by J. Foust A review The Meglc Sac by J. Foust Rat Mac programs on your Am»gi.
Whit You Should Know Brfcra Choosing an Amiga 1300 Eipaneion Device S Grant 7 Ataembler* for the Amiga by G.HJI Choose yxrassorbar High L*«l Shakeup Riplic** Top Managament at Commodore by S. Hiil Peter 1 Bacuor'ty & Hul Manage' at C8M gves an -s de took Logiati A revew by Rdharti Kneppor OrgiNzt by A r*r,«w Renard Knepper database 6S030 Aaaanbly Language Programming on tia Amiga by ChraMarbn Supertoaaa Peraorul Ralttlonil Oatabaaa by Ray LfcCabe AnlgaNote* by Rae. Rcb*rp A look et Futo'eSojnd Commodora Showa too Amiga 2000 and 500 it the Beaton Computer Society by H Maytoock Toly Volume 2,
Numl«r7 1987 Hew Breed of Video Product! By John Foust.
Vary Vivid! By Tm Oarta.m.. Video and Your Amiga by Oan SnCt II Amlgu 1 Weabiar Foraeaatlng by Br*nd«n Lartyi Asquarad and the Uv*f Video Dgltltar by Jahn Foust Aagii Animator Script* ard Cal Animation by John Foust Quality Video from i Dual 1y Com putar by Oran Sands It It IFF Raany a Stindard? By John Foust.
Am azing Stories ird Via Amiga™ by John Foust All about Printer Dr hr era by RcnatJ B ak Intuition Gadgataby Harnc-tMaypiJcnTol-ey.
Deluia Video IJ by Bob E ler Pro Video CGI byCran Sanos III Of gl-V!iw 10 Digltizarfloflware by Jannrfw M. Jwiik Priam HAM Editor from knpulaa ty Jervrtor M. Junk Earyl drawing tablet by John Foust.
CSAe Turbo-Amiga Tow*' by A trad Abura SBC0C Aaaembfy Languagt by OhS Martn.
Your Resource to the Commodore Amiga™ The above phrase is much more than empty words. 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 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 users solid, in-depth reviews and hands-on articles for their Amigas.
Amazing Computing™ was the first magazine to document CLI.
Amazing Computing™ was the first to show Sidecar™ from COMDEX™ in full detail.
Amazing Computing™ was the first to document a 5 1 4 drive connector.
Amazing Computing™ was the llrst with a 1 Meg Amiga upgrade hardware project!
Amazing Computing™ was the first magazine to offer serious programming examples and help.
Amazing Computing™ was the lirst magazine to offer Public Domain Software at reasonable prices.
Amazing Computing™ was the lirst magazine with the user in mind!
From the Beginning Since February 1986, Amazing Computing™ has been providing users with complete information for their Amigas.
This vast collection of programs and information is still available through our back issues. From the Premiere issue to the present, AC has been packed with Amiga insights that any user will find informative.
SIX E ar We*** Sasebo. . The Si geon. IfSm Compute' People. &-Cad. St*G Or. TCnge Qutol 111 a.tJ Ilf Fary T« Acse-ve, tftmi Ilf Faoas o' AjvGrtu'*. Voeo Vegas anc Bard'tTale PlueAmuing monthly cdumna-.Arnga Moist, Roomers, Modula-2,68000 Ateam&y Language and The Amicus Network.
Diek-2-Olak by Mathew Loedt The Col or Fonts Standa*d by John Foust Skinny C Program by Rooer Rem'tma, Jr.
Hidden Menage* In Your Ar-ga™ by John Foust The Ccreumar Electronic* Ifcow and Comtoi. By J Foust Volume 2 Number 9 1987 Ani'yn 10 r* 4wec by Kr Scrrtor lmpact Butfr.aaa Graphic* by Guo. Rijdcrs M«ercV.*w RS f review by Harv Laser PtgBaeT.ar-evew &y Re* W rtr Gizmo* Preduefvtty Set 10 ¦*-** by Boa E*t Kkkwork 'fti* by Ha nr Laar Diji Taiecammunlctflarp Pickegi wewby Stew Hu I Mo.ii Tim»and Tlmaaavtr by John Fault In aider Memory Eapanaion r*w«w by James Gkearw HlcroboSca Starboard-! Review by $ Fawmsw&ki Laatiar Caddein ol Photo* revwmd by Harriet Maybeck-Tpfy Lattice C Compiler Veraion 110
revewed by Ga-y Sarff Manx 14a Update 'evened by John FojsI AC-BASlC evewed Dy leer-an AC-BASIC Compiler an alr-stYe cypa'S3r by 3 C-stey Modula-2 Programming Sfa-wuwrw, Raw Canac* Dev » Even* Directory Llaln ja Und at An ft DOS by Dm Hay* Amiga BASIC Panama by Cefey Programming *tr Soundecape Tddor Fay "arxafcs tarp*4 fill Veik, Vice-Praiidertl Aagu DroippminL n rvwred by S*se HI Jim CoodncMr, Devtkoper of Mari 'C' intern** by Harnet Mtoly Tc 6? Ccr.Snuttd Limited Supply Unfortunately, nothing lasts forever. The availabilly of some of our Back Issues is definitely limited. Please complete
your Amazing Computing™ library today, while Lhcsc issues are still available. Please complete the order form in the rear of this issue and mail with check or money order to: Back Issues PiM Publications, Inc.
P. O. Box 869 Fall River, MA 02722 $ 4.00 each!
Our Back Issue price is still $ 4.00 per issue!
(Foreign orders, please add SI .(X) per issue for Postage & Handling. All payments must be made by check or money order in U.S. funds drawn on a U.S. Bank.)
(Please allow 4 to 6 weeks for delivery) Amaze Me!
Please use this order form when subscribing to Amazing Computing™, ordering Back Issues, or ordering Amiga™ Public Domain Software Name__ Street __ City__St. _ ZIP_ Amount enclosed _ Please Check below.
Please start my subscription to Amazing Computing™ with the next available issue. I have enclosed $ 24.00 for 12 issues in the U.S. ($ 30.00 Canada and Mexico, $ 35.00 overseas). All funds must be in U.S. Currency drawn on a U.S. Bank.
BACK ISSUES: $ 4.00 each (foreign orders add $ 1.00 each for Postage and Handling) Please circle your choices below.
VOL.1 1 VOL.1 2 VOL.1 3 VOL.1 4 VOL.1 5 VOL.1 6 VOL.1 7 VOL.1 8 VOL.1 9 VOL.2 1 VOL.2 2 VOL.2 3 VOL.2 4 VOL.2 5 VOL.2 6 VOL.2 7 VOL.2 8 VOL.2 9 Public Domain Software: $ 6.00 each for subscribers (yes, even new ones!)
$ 7.00 each for non subscribers.
Please circle your choices below.
AMICUS: A1 A2 A3 A4 AS A6 A7 A8 A9 A10 All A12 A13 A14 A15 . A16 All A1E 1 A19 A20 A21 A22 Fred Fish: Ffl FF2 FF3 FF4 FF5 FF6 FF7 FF8 FF9 FF10 FF11 FF12 Ffl 3 Ffl 4 FF15 Ffl 6 FF17 Ffl 8 Ffl 9 FF20 FF21 FF22 FF23 FF24 FF25 FF2 6 FF27 FF2 8 FF29 FF30 FF31 FF32 FF33 FF34 FF35 FF36 FF37 FF38 FF39 FF40 FF 41 FF42 FF43 FF44 FF45 FF4 6 FF47 FF4 8 FF4 9 FF 5 0 FF51 FF52 FF53 FF54 FF55 FF 5 6 FF57 FF58 FF59 FF60 FF61 FF62 FF63 FF64 FF65 FF66 FF67 FF68 FF69 FF70 FF71 FF72 FF73 FF74 FF75 FF76 FF77 FF7 8 FF79 Fnfi FF81 FF82 FF83 FF84 FF85 FF86 FF87 Fnfl FF89 FF90 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: Bach description line below 013 include something like 'S-0-E-D which stands for 'source, object fiie, executable and documentation'. Any combination of these letters indicates what forms of the program are present. Basic programs are presented entirely in source code lormat.
Aenioatc aensarp.c prrvnrc prbase h tegmteac SOI BCD c
* parse c SefSer a c angpayc fpeechtoy c tnecteyc im*rc tmravilc
Wwrfpntc 3C$ o! J* Bkot* Cuo« O er Fse*p* HtOen 3* Co ad
DeuieOrtw Elza 0T»5 3tPAaa RQR S'vre Spaing V0V0 oonaateO pet 0 * fort, tet WtjrtW rouxtevx Mocja-2 oer a to a rataing cuds sets a seccrd tan mage. DsPayed atoanto* con » doiad a *ow artsr-pe ittei cheexer, E-D toe HiC So com.aresas'' aogrs mur-niwfor tewcom. E-0 gr*prvc*oemo prog to rescue Dashed dsks, E -D a quok but ntty d ft co r prog'sm; gnor«er*ors, E-0 fcttt nunka in an objoci 'te E-0 saws any screen ** FF pc.E-D 71 sfiwewre sceen dump prog. E only veT.on 2,0. Term program, XmooemE D Ip* an txng _m»nc in Litlce rtewyourowmS 1 idrw wpars me G j-j njnpers buglktOfLSttceC wr*an 3C3 user's
viee of the Mcrcforge HO EXECUTE-baaed pnrt spool crog 1dt on CLI comm ands externa Oil* tpec'-cafrr gam* port spec P*-x tei po-t spec l*r;*f port scec Itetefnew tetuet in earaon n tei of rnctede 1e cnangMteftrtaWrton Pies to' txrtomg y j ear pr "ter d'Virs. Rdudng C»peoa c, ecatxstic, rvtasm, enter.c. carter In*, pn-rte agar-.
J*no*r c. andwaraa-n Th*d»idoaacon».n i rvmtjer of tees Oeacrbng too FF ipqakalr Thaae re not toe utosf and greatest He* but r*m*n ne'e tor h tack purpose* They rd uoe tect l«i and G sou mat umpi** The teMt FF xwc i esewwa inrisloxry.
AMCU3I .lAS IFTPlcaeaa Tht USX nc oestoe DPS oe orogram.atoctocan vwwagyen tenet of FF txctures. An) fe VtsepaC progr*n. Wtsch can v*ew each Saattoedcs ofar con. The pictures ndude a saeen him ArtcFox. A Degas cancer, neg.ys at Etectorvc Ats. Agoriia.
Horse*. Kmg Tut, aightiouse, ascoen ftom Marbe Madness, the Bug* Bunny Uvtsr. A SET Fern *n od mow*, toe Ora Sjri'ts moving company, a taeen fwi Pnpaii Contoxaon Set. A TV newcaiter, na PtiniCAn, a world map, a PorKhe, * sfv» misaun path, a tyrannosaurus rex, * panat rw, a VISA card, and a ten speed.
AMCUS OglYirw HAM demo piclura d.ak Ths Oft nas pcve* kam toe Dg Vtew hoid-and-mod y w»o (AgtAf. FtmdjceatoaiaOeawtoperoisandipypops.toayciung gif, toe Widcaar, toe hone and buggy, toe Byte cowr, toe dcionwy page, toerobol and Robert Thsincfudaa a program to wawaech pctra aaparatey, and a' togetoer at separate, sldabla acrear't Tm see am* program, to Lim By arwn r» an FF flCLrte.
Awvusafei C programs: SpeochToy soeecr. Demon stat; on adomem c ¦3d exiamte mam ary to toe system WKTFor.
C speys s wplabie tonte bcbtes*.c exi.ro* o'BCB use Tarte: console Oc console O example 66020 descrbes S0C2O soeeoup Doird from CSA creapo'tc cmate and delete pom Aka Mrs axp'ans uses of toe ASSIGN command EfMsn c create standard IO repuests Bugs knowi bug Mm LatoceClH creatoakc creatng as* exsrp s CLJCaU reteence card tor Am giOOS CU dskoc axa.To« ol rack read anc w*» CUC«m-*nds gwkJe touting toe CLI PoCyc sou'ce to toe 'dotty etndow' demo Conn anas shorter guide to AngaDOS ouaipteyc due p*y e»d ex*TpM CU camrindi toodc
* ood til aiarp-e EdConmaxs giuoe to too ED edrtor tear ape old
version of teemap" Flanana* AmgaDOS lenare atdcerd gtetodSC
tool* far Vspntes arc BOB* canvarions gtomamc grapnc memory
usage nfcate Hrtrgnt txpiar.s rare grfibres crips ra: can do
nno c wndow eaarpw from RKM morecoiys
- nouiwv.c aoarg an mput r»ndi f a toe ir*w: s?e*T UsdemPns
oeac-pian o're ser« port pr out joysikc
• eednj toejoytte* RWAJ*xt bp* on aarng jq you' RAM ds* kaybdc
Arect •eywato "*ao ng RCMWeoi 5p* on u*rg FOMWacX Ityartesc
Byers eia-bes Sounds
• xpiarabon of toerurient a*m.0 sound mow sport c te*tmou*a port
41 format oanbe Speed fehuBtanolAmgi'sCFUarxJcurenctoiospeea
ownbasrr exampiaolmft.ing your own library wito Lab.ce WawCnes
tps on ueng Watte pe'atet'.c tests pare« por. C&mmand* Browse
Cmxto brExac SrWnoew SmaiCtodt Scnmper JfHfl smpte pant prog'an
Opacal d'sw sever* qptca] ifuwft* ParftScx fcnple part program
&v3* ciflr* S'vD* n 3d m re an Space V: g'spies 0*-.} Speaker
speech uteity Spar* d'ows sd-bisi Spiral CD'or KtfBS TrieeQ**
3dtjnc5Dn bos Topog'iphy rtfoi topog'ipny Wi*e* cancM j'sna
Xenos d'«*fr»cti Ptenetlandscapes Abxile programs: Tool*
Acc-essBo m rrp* database prog'am tor add-esses Csrcfw * mpte
can! Ie database program Darro r JiwC&rCra Key Code* mow*
keyeode* fcr a key you ptets Meru run many Abasc programs tram
ananu Uo'uCo lor* way to got net* colors on the screen ato.no*,
using 4a&ng shapes smpte colo r shape desgnar Spear ft speech
and ne ra»rd*mo Absaic programs: Ctmaa BrcsOut cfaspc computer
brick wail game OM'o also knwn as 'go1 Saxe' tmpte
ffioot-eT-upgerro Sort ng *mpte teJAng spo: ng game TcyBoi
seectebeg'apnicsoema Abulc program 1: Sound* Enterfarer play*
thattone H*LB003 prroncs l rea)computer PalkB t~pw »*03 e'er
sejnd SugarRjm plays Tn* Dance 0? Toe Suga'pun Fan**' C
programi: Atem tiTp« *TT;ina.'or3grarn.S€ cc id tc comping nT L
*"jce C Oacwit opp»te of CCNVtFT *or ows dwteapen Oihy source
code to Tie tlscy wndcwoerr a wox Lrx-sye 'e-are expansion,
parba] 5,0-0 'esierft) eoa-i* use of tost Joabng point .mato
FaCkte 'iss Lnr* oties on at Set on a as*. S-E neeoraw *mp* War
canto frprng prog.. S-E GtoUem g-acrtc rrerro'Y utage'dcaiar.
S-E Grep searches far agrwn it ng n a fi* wito On h»n stow* off
Tw holdand-m«Jiy method of cotor gene-abon GM2Args is sst« as«
trstei oner an 6M and an Amiga Msndal M andebr ot set program,
SE rroira patterned gnpbc demo, SE obt.x mwies Latoce Cobbed
fie symbols rs&iate Wac*. S-E qv»ca qjcK sort Sting* rautn* raw
au mpl* sample window I© solace turn*on interlace made. S-E
spaivs qix-type graphic demo, S-E Other axacutabla prognma: 3d
Sdf * modeling prog. W'tamp date fk* caw-, bx * a*awt ojE»s
d'*« (xrurat in the *tyk of Out cwfica rcKSDfj 30 progr*T. W
¦W*r In* AHCUS Ditk 1 Abule progrimt: Graphic* MflH&P!*?
C program*; i d *-g*DOS spec: ib't'y mar agar. SE ar text archive program, SE tiodj auto-chops axscutaoe fes W»ii snipe CLI she I, S-E
k. use fe comprtsaon programs, S-E YachC i*am largame, Sf Make a
tmpe'nMe'programming Lfi.ty.SE Enid an aahy w orr of to Arga
texteotsr. S-E-0 AswnUsr prognms: oseatcnatn b r any saanto
code qaarUam Ur:(03mp*)tkaq»rl )tjncl5*. To ce end C test
prog-im say p asm **}-p() cod* tor LaPce 3C2 Svprmtf br
nayiten V com pats* pr.n?() reeso UnucoTpatPepaeQtoncton.O-D
(Thsd ft to'manyhad FF tpac teal on fiai and exam pe* Snoe M
spec s careanty updated. Toe FF coc 'e* nave t*er moved to
Ster o*n du n toe AMICUS cctacton ) John Drtpar Am ga Tut or 4
is: Vrtate cteio Dei an.T«on egorTvns Gadgets tJtorite on
gadgets Uenua team a&out hurl on menus ijjCMuy-gj C programs:
Xrte a Ccrns-'afvoncB gen. S-E Gbitolor eitm-half-Dnghtcrip
gfi demo. S-E Chop Tuncmo (chop) lie* down to pa. SE (Jee-vp
remows sTange characters +rom ter. Ies CR2LF
canwracarr-agetet na u tneteeos r, Angafies. S-E Error add
cample errors te a Cfite.S Helo wndowei from PteRKM.S Kernnit
generc KemU implementaion, flakey.
No »mr* mod*. SE Scies sound oam 0 pays laee.SE SnewD Rjb* cube dama n h-ratcolort, SE AmlgaBa eProga(dlr) Automate cte ufte automata smulston CraryEgra card gam* Graph functor graprvng programs WtnngHs agare AbaaiC proj'amt: Caano g«Tesofpo*,*r, oiac ssDkRce. And crape Gomoo a so kncwi at 'attefio' Sasctege sort of an adwrLte g*-e Ejic.UM progrtma: Dsasaam a S32 X d u atr- bar. E -D DpS de snows a g-wn set 3* FF pcto'es, E-0 Arrange atertbrmatongprograT, E-0 Asaamtear programs: fegotermi temwial program, wf speech end Xmodem.
SE AMCU3 D( K * Flai iom ti* original Amiga Tachnlcai BBS Note toat tome a1 toe&e let are old, and ater to older wraort of tw ope-lteg tyttem. 1 heaalws came horn r» Sui tysBrrTiat lb-red as At ga tetfiTcal Buppor! HQ for most Of 1955. Those let oo not camy a wanry, ano are ooxatxa puposes any Ofcoune. Thafa not to say they don't work.
Compete and nearly up-to-date C »jrce to 'mage etf. An eary wrtor ol tor Edit)'. Th» s a Iftle iaicy. Fc 1 compes and rjna Ar htutan demo, in hit C tource, iTduding Ales: dawomeru.c. demomaruJc, demoreqc, geteacic. Idemoc. Idemsgjkie, aJamq.make. idernoaH.lv nodose, and bwrtec tette tens! Port com mards eaimpe of ter a port use Mtpe pr.ntar :rter4ace code pr mar devoe deA-iior* re sn teat program wjree to interlace orVoff program set re arb.ai of the oar** poc ae! Te af&.tei (par ty, cetxoTl toe 1-9* piayAted «iar aouica to narrator and prorescsderro ¦mpif am ar demo bK sj»!rt:Tt''jic:3nj
nara ewe support *mer 'jnclons load and osp ays al at aoe tytte- to-* srxesa and prsaw i tss~«w rdjotlet Mjtorqtt.W wa-ngso'tteac ooj wto to-eQj tteri copy o' toa RKU consaW IO chapter ¦e-vng sf d ak ton! Load ng bug I*t9lfete'ne*.m«3*j«. PCtom frwm nary caey of re mput ce.ee c~apw Lcense infoBitBon en W:n.beoc- d Ob.to' kwse prrter pre-'w«» copy Ol toe cfiapter On printer dnwrf, f«om RKM 1,1 vlHd.tort 'dff of.lp Iechange*Him w'awi t.Oto 1 1 teiff of mc-jde ftla tfianges Irom wrpor 20 to 1 0 AMCU3 Duti R ea tom fra Amiga Link Amiga to for nib on Natwedi Note toetaore of toasa*e*ae ok), and
rater to crder wmnaof toe operating system ThosefitesarefronAmgaLjr*., Foratm*.
Commodore supported Amgat-nK, «k*AlN. For onkneoewloper ecn'scal spdootT ftwasonfy up and running for aewral wee*s These fiet da not carry a wrrany. And are to* educator* pur- poses qny. Of course, toafanotte sey towyoo-.twj'it A demo d Intuition menus called 'manudamo', In C aourca Wer»s.c Ind aFte searching all suWrociar«c DOOtottc BOB programming exam pie aweoc Biro syntoebiciaTo* Aaaenbar flea: ryd« asm aampw d»w» anver my i dam sampl* Itxsyninpfl myibi myJw.i ts.ma.pp i macron atae bwr ndjde es Tarta: r-jrcxi exc ik gam abort par ale.
vl. 1 update
vl. UiM eewtext*wsonid«. Utng narj* S-E-D wmews commana anc atoM
space Som C'«. SE EXECUTE l of commands hm WorxDtnCh SE
PDScraen Dump dump* Ril$ ort of hghast scteen to prirtw
SeUUte ate aafs a second image tor an con, ¦rw ccxed once S-E
rnHH windows tor a Cll program t run under Workoerxto SE
* small 6gtal doftn a wxxtow m*r*j bar toe ic«r printer in toe
tourth AC SE LODf SewLBU SceenDurhp SterTerm Tax la: Lance Man
BoiOite GuMAed Lr3C3bugs Mforgefiev PrrtSpoalef
- BMAPfJis: These a*e toe -ecetsary irM between A-ga Bate anc toe
xystem; Orarwa. To to apse mage a* toe An gi's caps* tet m Ba«,
you need toeae 'e* BUAPs are mduded for b tf.
'oortsoie', bisktorrf, 'exec' "con', trillion', 'ayers', Vnato'f.
MiTveeedojbts'. 'm*to a*esr ow'. Hirrw'. 'pcv:'.
Me intitor'.
Aliflfl flail Amiga Bask Programs: Fkg-tS.m ampa Ignts-Jitorprogtm HjePaetoi eipft's Hw, Sato'sbor, & k-te-*y Flee jester ex o' Tdjesters toi!T Amga Base ScoDte-o dar-ore'*Ms»c?oi.mg capap'ipet S tteteze* »i xj prog'arr Wo'cMap ffawtarraooffra wtxid ExaoutaUa programs: flongi atettBc ng1 oems.wr *ecacnj tpeoc.E BrjteiSC corwto an FF oruir to C dato rsbjebors. ntalzabon cade. E Brjft2fcon corvens Fr brusn lo n cor, E Dizre graphics demo. Decks to mouse. E OecGEL esaemtfar program far stoppng 66010 erry* SE-0 Koor manj-bar dock and dated splay, E :ite toa game of He. E Tr-aSet htiibon-besed way
to setnetma A drte EMEmacs anothar Emec* more oriented to word procesang, SE-0 MyCLI a ai thrt. Work* wtoout toe Worcbervr. SE-0 Tarte: FnctoKeys mad funclpn key* from Arrg* Base HacxarSIn expians howto ten toe game hackar' ls£6C10 gjdeto nstoa'rga 6fifli0 ir yoj Amga Bong latest Bosng; Oerro.wto *e«tea*ipaed. E EvwipJC o-verto an FF trute to C Cato ritojewns, Tfialzstoncod*. E Bru*i2fcan co-wrs FT brur to an car. E Dazzle grapFtc* demo, Dacxa to mouse, E DaeGEL aaaambf program ter stopping E8C'C trvx SE-0 Koot maru-br cxx Lnocnd ic«y. E lit* naganeofltkE TnaSat hLbon-aasedwaytosattoecm* 81*.
EMEmacs anotoer Emae* mo* onerteC » wrjrd procesang, SE-0 MyCLI *Cllsnef.wo-k*wto0J!toa Wtokparci, SE-0 Amiga Beak Programa: iNote: Ma.'y of toeseptograrrsarepresartonAMCUS D«* 1. Sew a to r-ese wato cs'vaoac t A-gt Base.
S,nd*re ncuoed here.)
AddresaBoai. Tarr e access boos datobaaa draws a Del program tocomrwl Gompuierve ha 1«s o bnary, S-D toe gam*, touui * ven artd'twng program toe drawng program m toa 3rd AC. S-0 corner sa na1 car cuter psycn of 09 r re game, u kw. As go' 30 retoaa gi-e pag9 nggnxcsderp ffaw* 30pccresto toe space sruse ampte aprtingi program ward lero-gravty yo-yo demo. ?**!
Yo-yo to toe mej** ExaoiteUs programa; Bartrand dtesavoge KwkCopy Socube Aftkan A" gflSoe Tub: doo mefrtiton and C*xj assemaer *3ltcb tor wring your own pytKk Srowshow3ietuptoegareportdft.ce as FnetoKeys exp t na how 3 reed tine on keys Ip'sriOS. Anointed song C to Bsaemaef.nlbrartes Wdtexampe Ths c.sk aio conaina several tei o' seenar os tor at s Right ajoytttt.
From Amiga Ba&c sojnd.
Smulator II By putlng one of toe« »*n flea an a bank dsk, keyDovd temoneretnB direct com r urea- HsckerSh explain* haw to win toe game hackfl'1 and inserting it m toa drive after pedormrg a soaciaJ command n loawrtn the keyboard teseoio g'j*de to totaling a 6® 10 n yow Amga ExecLitabie Drog'ftms to s game, e number of interesbng locaions as preset into toe layers Shews use to ne ayers ibra*y Pr.nS'Tip sending eacase ae xenaa 3 your pr*-»r yavty So Ame* Jan S6 g-avtaton jcnc FgntSrulatorprogrtn. Fo t ex an be. One seen an o paces your mtrtyiorot FF MetMiaro: orograr StartupT'p Ip* on aetong
dpyauritartjp-seqjencefe am Jason, S-E-0 pane on Acatrtz, wn le rctoer puts you r Certrai Park mould hooks up mouse to ngh! Foyitxte port XtmrRevew lilt of TrB'atofmer programs toil worx Texts AMCUS '1 one wndMr console wrvjowdemo Printer Driven: MO make your own MIDI nsbumert interface, wn Teicommunalons disk whutto cortan* sa terminal proyarrr.
Paraliril Denonsjafrn occoss » toe pa'ale port Printer dr vera for toe Cea ri P J-1063 A. toe C It h Prowrite'. On documertaton and a h -raa adtemaic pcs e Comm VI 33 term prog, with Xmodem. Wxmooem, prnte opemng arse uangtoeprriter.ctoes a soaen improved Epson driver tottebmiate* treakng. Toe Epici Auarcndat
• ATerni' V7 2 term prog •' Judes Super Krmit drrp, atwohcng
LO-K3, tie Gemini St*'* 10. The NEC K 25A toe Cxd« ML- Several
prag'ami from Ar.ai.ng CaTpuftng inuei;
* VT-100*V26 Oa«e Wecnefs YT-'. 00 erru xtor wto prnlSjCfort
Prrter upport'outai, not wortng 92, me Penaio-ic KX-P10w tomty,
ano toe Srrvto-Corom Toes 'Amgs Kenr.it* Xmodem,Karmrt, and
arotng prjCteSt Mtpieprocessc'wloncode,nut working 0300, wtto a
documentdescribing toe instalianon process.
Den Kary** C ifrucajre index program, S-E-D V4D(0fc0j port of toa Un C-Kermit reg.on oem ot sprt drawmg regions AMCU3 D1*V 1 0 toitrumantaouftddamoa Amiga Baac programs:
* VTek' VI31 Tecon graches terminp anuiatar nrrpfafont
saTpetertwrto rfo on oBetog your own Thit i* an con-driven
cerro, a'cuiOBd 3 miry ceeero It BMAP Reader by Tim J ones
based on toe VT-100 prog. V2.3 and centers sen* Dbr-eitoeBoa1
pert nrudes re sound* o' an flco-sbcg jtr.an a arm, a biro, a
FFBnurSCe tyMwSwnge* 'AngaHoc* a ter. Vcf f * compresjcn
imgiel ayfelc Crettet 320 x 200 payfrted 0 ass ju-ju, ¦ bank, a
ca ape, act' horn, dtvet. Wate* orp.
Jlto Requester example VO 9 ter CompuServe bdxtei RLE toe*c-toy law. Wson jcjte tpoKn oamo eectic gutar, a fute, a harp arpego, a tockdrom, a mam be.
DOSheper Wndowed Wp aysten tor CLI greprvcs abiiws A CIS-B fie transfer protocp.
Ipeecndomo amplfted verson of tpeacrtoy. Wti D a organ minor chord. Peocto tykng, pgi, a ppe organ, a com mahda. S-E-0 TixHunk* expa on memory necessity requeete Rnoaat pro. ¦ aaxopnont, a star, a srre drum, a roc PETrwil banalitet PET ASOl fret to ASCII TixOq' ismows gi'oaga cha'acwrs from textdmo dstxryiavaabe tens diujn, be *, a vibraphone, a relit, a we rg gjtar, a hone frevS -0 modem receved fres tmer danoa ime'Oftr e-»e wnnrty, and a wnsle.
C Sq-trnC Gnot*a pogrem from Soenrtc Txf f ieri let; lies from otner systems taod te demo* yaked » pier AM CUS DlitH AmWKsn, Sort B6. S-E-0 B t» read by toe Amga E.C. AklCIJS 21 C programs fflf adds x renows carnage reim$ from fries.
'addmem' executeabte wrs.on for use wito mem Target Make* each mousedck aauno Jke a druti toijrt on-based, CLI repacer.ant manager SCO 'arc4 exoansion arbde in AC VZ..1 g iihoi S-E-0 S-E oooeode oecrypa Deluxe Pert, who 1 e oocjTisrtaton and a beec Wonai Sand Srpegane to sand toatbiows toe qr shew and adjjst pnorty of CLI wscopy poiacon, E-D on un 'arcing flies mou» writer, E-D processes, S-E OueryWB asks Yes or No from toe user wtorntexr.
'arcre* IprmBwng 'arc'fiesE.C. PropGaoget Hornet UaytecK Tolyi propatonal pa she w* nta on CLI pioa t£M. S 6 code. S-E AMICU3 Oak I gadget example. S-E vrftex display* Corrpusenu RLE pcs. S€ VC VeCeic type spreadsw, no mouse control.
Logo Amga wraon of toe poobacomputef EHB O»o.s to sdb if you have axfri-hatf-brght A-caBos; programs E-0 T Text language, wto axarrpe prograna E-D grapTvcx, S€-0 boi-rjemd pointer and *£ ** edtar progron m v«ws text lies m to window rC Demo wean of toe TVText Pteno Srplepano sound program opCrr.ijB optmijafion ex ample from AC amde S«?
Gsoget. E-D PageSetW ?yacw generator CeiScrpa Max.es cel Bjimalort aenpte for Aeg s calendar large, animated calendar, diary and Ong, Sprorvg. YaBong, 2ong are spmePasad Reey dstnbuta&e varsons of toa updated An rn i tor, in AmgoBesc date book program Bong1 stye demoa, S-E-0 PagefVntand PageFF prog'ams hr the amonae lean amortratons CICiodt. SGoc*. WCocx are wndowboide'docks, S-E-0 PageSebr desktop pubiteing package.
Th«di*hasrkectoorvcate'ogstor AAMCUSPsks 1 to 20 x-if 3600 converte rsSl Ff brjjheato AmgaBatc Tint FjW-teow Resas any CLI wncwr usrg ohy and F :p o»s' to 60 They n'evewed wn toe DimC* BOS OBJECTS An artce on long-perettence prvjapor touters. IPS on making a 1 command*, E-0 proqran, mcjJed here.
Gnfli citev and oey eevetor-n a trutnes of odd ahapea in Deluxe Pert, and recofnmendatonaon Ljlaod 3D wson of Conway*! LFE AMCLS22 nitsert craws HI bed curves con interfaces iom Commodore Amiga, De*d» program. E-0 Cycles Lghfcycegime.E-D nidft mad lib rjjry generator AMCU3-13 CLI utety B te oasgr a new Snow Pmtl Vews and pnns FF pct «. Indud ng Titmk tafcng metng lilt program The C pograma Induda: Workbencr dsk, S-E-0 erger torn acreen meaCowt O 30 g'tdhca program, from KC enc* y a fte pin-ng utHy, whxto can prrt ties in re GaenbirWKS Laiiseorpatait worksneettoet mass?
Prt£ vijen2.3 Latest WBOin to a pn-rtor drrw gener ato' mausedack mouse tracing exam.pe in h-,»s mode beckgmund, and veto Ine num.ber* end control alenda.1* Amml-oT* VoeoSape animators to panes and slot atot machne game character frier ng.
SetKey Demo a! Keyboard key re- l»ng ball xlactoe 3«game In' dsplays a chart of toe bocks allocated prog'ammer.wrth FF pcvre to G ardor' Uaxw Vactei garoeoapei Pwtto pacfinko4ke game on ¦ dtk VW3 rrwa funclon key Kdt, E-0 BescSjr* ExiTpes to friary eee-cr and raerton we'd make* mng* sounds 'Aw' questors (r 'execute' fe, tefijni an Vdeo pattern generator fw eon n AngEfiasc amor code o contb toe exeafron in algn ng rrontora, E-0 CXKUtelje BTOWini* cp da utw+ke a py command. E toat betohfre HP-10C Hevwrtt-Peckn'd Aecafcuiator, E-D ;jferf FlsJt PtjbU£ Vh-x.i r, SaHw&rG screen dee1. S-E "Star an
enhanced verson c! AmgaDOS SetPmfs Cnange toe PreteTnces aettng* diff U«i4 k» fO am edrpr uses Ur?
On toe fly. NC. S-E-0 Ead£ H.BMLL amgacero Graphed barttfurm kbf comparing pm output t txl chan, recorder perform ancea inocasr Otaoive* random-dot disowdano dapiayt Ffpci-rt stowy.oo: by dot. In a random fash an.
SarProee Pog'am stdes stefa1 evo'ufron.
C so job nctided for Amga and Assembler program da screen cea'and CU eg jmema example TtopCLl?
Invoke new CLI wndow at toe presi of a key.
ROT MS-DOS, S-E-D C wrson of Cbm French's amgafrvm smpte commurKafcoa program with Xmodem Uodua-2 ten movngvrorm gratyvaoeno The uacjtatole pogrimi Include: Torm1 tie tormatSng program frrough tie AngaBasc ROT progter from Anting Compubng. ROT adii belt em'jtobof* of toe hcneoc tongy* arto b* 1 on stongs Snows ohuao to hod-and-modify nooe Ovyitone benchmark p'ogram.
Source 3 toe 'doty w-mow' oemo toe Wykbench frlA ciseconvert carvers Mod J a 1 keyea'di to upga'case
y. rw dmrer te seec p;rt cytet and dip ays polygon* b aeete
cdorful Forth Anty® Brethehan arde aigonthm exa.Tp* 12 tern
patei for tie spreadsheet Analyze ¦DwCtf catbogi d wa man
tens. Aorta.merget i,sts otdiuf.es to'ee d.meneonai otxecte Up
to 24 frames ol an mason can be dhrystoie dotty The"9 are tour
programs here fit read Commodore 64 Wound' SurRiie todufires'
sampled sound aeexo and dspieyed. E-D pet e fi*s. Trey an
tointina Kota Pad, Doode, Prrt eo ter A recoroe* Sat Lw
hg.wixtows an screen r ji freeo'ev A rna.1 'carf type program,
wto Ires, Ccxet, et John Draper's Gadget tutorial program
Grophal memory usage dsday prog, oeroncrte* *Exfri-Haf-6r'te*
node, if you have rt 5nop and frtews Room grapncs 3 FF torn
a". Geang toe anmakar' maJteicons termor progra.mi ¦way from
toe mouse, E-D fee from your C-64 W your Amga is the had peri
AMCU3 Piak f 2 Executafre programs birk 'aimfc' eompatcte
linker, but ftttw, EO Tractois' ¦3D Breekouf 'AmgaMontor'
draws great frocto sea scapes and mounter scapot, 30 j lasses.
CteCT treakout r a new dnerwi btjays rt of open f es.
DK DropShadow2 Decays' toe CLI wroow into dun in Module 2, S-E-D Actis 'ayered itedows to Worxbencn wrnoow*. E-0 gad gtxmerr htetonte ceen apnathedte tor dekdeeners, EO memory u**t teu. Devxes and port* m use.
AfrlCUS '» htelo Estop epson»: mewdg sendi Epaon aerpngs to PAR from menu E-0 Y4* hi ei pciin low-ea luperbtmap, E D 'CoimoroKli' ¦Siren' verson of '¦storods' to* toa Am*g» Ugh rasbuton graphcidemo wtten Th* dtkca-nesswerppogrami from Anting Comp-utng. The FF pictu es on toa ddi md uda toe Amiga Waka pert T-shirt logo, smp* vandtei Oem 3 acatang toe Motorola FaK Floatng Pont library from C Sempeprog. Todesgncoior wettei.
Aaeaktne undelete tel thelme.E-D undeefcs a fie, E*D Teita: in Moduia 1 a aateen-co'or hhrea image of Aroy Griffith, and tee Amga Uwl pcums from toe A-aznc Sto-es episode rut ter-ted toe palette cnvaWf.m corvens Appe![ low. Med jn and hyi rea pctore* v FF. E-0 'ir*.txT Bp.m escape sequences toe CON: device responds to.
Serve L-nearequatan so w n mam by trackdisi reaueavr Demorsrites use to the tracke Kdrver.
Jam Dropa'te roqueoer utohe and rrenued menu editor produces C code for Tkey' includes template to' makrg paper t language, S-E-D speech examp prog'am.
Menus, E-0
* t in toe bay a: toe tap of toe Amga Gadgets Bryn Catiey'i
AngaBaaKatCbiil, Sampte speech demo program.
Stopped down 'ceecritiy'.
Qjck qiick dak-to-daX nibble cdpte, E-D keyboard.
Houtehod Bryan Catteyfi An g a Basc toeecrtiy qjKifA copes Elecborvc Arts d rer owes "Sp«n' pograrnmer's Odoimert from Commodore household inwrtory prog'am. SO Another ipeech oem a progron protecbaa E-0 Amga de«7i be weya to u* toe Amge'a nusmstong ceoefrrtes Wjvefrim Am aneKfFWawtorm WoArwj*a*»c S-D rua niLiiAiA.
Wd 1.3 demo Of luted tor from Uonn rs.EO mycj wmorogrrnt DkLd John Kenan's Ang&Ba&edisk
B. U C proyams AmigaBasic programs: librarian program, S-0 cc
Lhx-like kontend fw Latlce C spnl rotetng blocks grapTKS demo.
S-E-0 "Gres' drew sound wavrr'or-i, and hear them pi eyed.
SubJCfCts Nan Smith's An g aBasc iubacpt dbug compter.
Starts new C3_1 at the ons ol a tgrt1 ¦ version of toe Tron Igrt-cyde vdeo game.
Exm pe, SD Macro bn»d Cdeduggng paocage.
Button. Like Soato, SE-0 UgaSol* a game of soiitert.
Stong, Bcdeah C program ano exeatebies *r mtka Uitrtro noewnoert vqXite Vspr-te eiarpe cooe from ¦Sus pagrarr to catenate ba»ng everages HlT«t Maytieck Toly's Huibor Subset of Unx make commend.
Commodore, S-E-0 Ucrwy* Vy to tfab all toe bogs of money toat you on.1 ttontei. S-E-D maks2 Another mike subset command.
AmgaBBS AMIGA Base bulletin boo'd prog, S-D AMICUS 15 ilw indudes two beaut hi Ffptctoni, of the enemy Sanny C Bob Pie1merit's exam pe for micjoemaci Smai verson to enacs ed Br, with Aisamblar programs wa kw s from fr« a p enet m Star Wars, and a dktu *e of a cheetar.
Murng ama'iC program. S-E-0 pate macros, no exteraont TtarlO m axes rar iekOa ¦ ka Star T'afc AMCU916 COMAL h Uk» C look take COMAL rMbr Ike.
Portable Se I'xtove*.
L'iTO.S-E-D tow' demo by Ef Graham, a robot ugcter boyxrg EmacsKey Mi-.ec E"ftcs funeon key xrf DEC US C cross efrjrenai utlty.
Pctu*W fi-ee mirored balls, teh sound eftocta Twenty-tour tame* of aelmtoaby Greg Do ugiu, S-D Mil Fllfl Hm r Mount Mandelbrot 30 view of M&rxfebrot ie* HAM annaton are flioped quddy to ptodjce r.s mage. You Amanl.l Snoop on system resoura use. E-D gotoc Gotoc tort banner prrrtw.
S3' Desroye hi-res Star Wa*s sarthp control tve sseed of the jugging. The ajfriortodocjrientaton BTE Bard's Taie c-jracte* eQtor, E-0 xoff A'rolf type text to mi arar.
Robot robot arm graao-ng acynoer hns ?tet ttos pocran mightaomeday ce tre tM as a oroouc.
S» CLI program shows toe we of a ff Ave r fas: text farmaasr Texts Ffplctrrea gven set a4 fhi, E-D cforto A tvgr y porta toe forth inplervertalort vendors Arn a vendors, names, addresses parodies of the covers of Amqa Word an3 Amtfing Compulng WrSn CLIwndawutiTy resieseurrert xlxp Lotatogoodei cardco f xes to early Cerdeo memory boarcs magapnea.
Wirtfwr. S-E-0 )0»p 1.4, notvertorxg ooiecSy.
Encode croaa-reterence to C include N*s C pognma; Dii23 Frad Flah D wk I: mindwalker Cues to ptoymg the game we t VouhnJif ex a- pa of mauvg an rput hendter.
Compactor. Decoder Steve Mche1 AmcABaec tools. S-D bar o' Ffrrti honioetl Ba-rer Udtenow m«e your own sioesnowi from ?» T-eZ*tf bnary Heeding program.
BobEd BOB ard sprite edto* wrben in C.S-E-0 bgreo A Boyer-Moore grotH.*e utiity K ted escape om ¦ShowPrinf dtpays FF pci.'a, arc pnntait SprteMastertl Sprteedtor *rd an nator by Brad fOete*. E-0 bison CHJ Unx replacement Y**'.
AHCUSDJikU ¦Gen' pogran rdexes and retrieves C BitLab Biber chp ex 'oraton C program Pm wcrkng.
Amiga Basic programs sfructjres and vanapies dacaroc In by Tomas Rok«ki,S-EO Another Boyer-Mooro grepLke utity Rcures from Carolyn Scneppner of GBM Tech Support, 3 toe Area rcuoa ie iyi»m Fpc Hageprocessr progan cy Boo Bush bads gi*o DECUSg-ep reao and tispay FF pkajrea from Amiga Base. Wto docu- Executable Program a: nd save* FF megea, cangea toem. W?to lermt empia portabteKermrtwrinocar.rtec: mentalon. Asa ncuded it a iprogran 3 do icree prrt* in TnxHum?
Rape-sshaxecuteb* program lie to-upended sever* TKTivcje* E-0 Uyat mode.
AmigaBase and frerwed SMAPfsee with acorreoedCor- memory Benkn Complete home barking program.
Replacemert Cllfw the Amiga. V. 1.0 vertfD program. Wth turrpte ptcturoi. And toe SawlLBM fn»2sfflus' converts M u*c Sox3;o flea to FF ttardaid balance your chedxbookl E-0 mandei A Mandelbrot eat program, by Robert screen ctpb e program.
¦SMUS'format, (nave hetru ton program mght cone ConwiedevceoeTO program wyi supportng Fnrvr and RJ Mta have a tew bug a etpeok y r regard* a very macro rouinee.
HM Ran mnu Roulnea b load and pay FuveSound and FF aojid fie* long songs, b-t 1 eefrsa h mor. Cases freemap Owtesa vaue'degran of free memory cor* Consote devce cerno program wto from Amiga Base, by John Fouat for AppedSflnont Wto U a«' Amga veraon of the Taaaii* Commanrf npuLdev amp® rput hander, ftp* key or freemap support ng naco roufrnes.
Vdeogane, mouse events Creates s vniuai dag*am of free memory , For PDS orders, Please use form on page 106 108 Amazing Computing V2.10 © 1987 Fr*d Flifi Dial U: TOW programmer By Ere Back 3-sdJxpce' D to ays aecar afocaton of fioppy 0 ftt ¦rgaSd vpoafeo'ffZ. NcxfeaCtoxcexa Cfeamt Port of Ihe Kemvt fi e Sranafer UamVfew Vew m f"C7 r rafe ?*ne, row wrtn U: raooen L ace ram** anc 30 gripracs prog'em and aervw fjysbot 5MO Scxc* for i futCStin 71* generafes a Ps Btorr ano set process orypes Ong Bouncrg oa ademo beeo ao xd ko'i Yei ana tier program fy bunoimg up Sflrpng Org.witn sound e'toca.
Do* extecra fext from wrtm C source ffea fei!fi*a andmalog or po»Sng tram SaeenOj-D Dumps ngrrast scree- or wnctow to Tfe pTe-srs oe-o-rarifei No merson* graxrci as a (*06 fie rt Onnfe*.
Leap xxtafe ofdu '3, $ m o«w Ay FredFi|hDi»k77 Sdb &mp* cctoaa xogram from a gfxmem updato of Oh t, graphc memory usage Abdemoa Amga Banc dam o* f*om Carby Scneopner.
DEC US tape indcator NewConwfO creafea bn-apa from Id fife*.
Sfera Star led demo, Ike Sfer Trak 9 corrvarra FF Orjsn fi*a » feiags rrxt m Bpo'« Incs KwflffS Of ano W*fes D TftmRua Term.-a prog-am ay caoirra.
Cfeil of r« sawry bbi-tp lorfy. Funcbon keys. Xmooem, pdferir.
• r.pe ANSI VtiOC ferminer emuetar, Aooutfimaps A tnar-fe On
treason at) j» of brrapa.
CIS-B prstoco t In BO x 2S screen Load HEW oaot and dip ay a FF ABM pcs VtIM VftSbh 2.C of Dsve Wet* S VT-100 tre aimpe Un.» tir.' styfe ftfei LoadACBM ioadt and dipays ACBU pcs amulator, wsti ac*pfeStjncson fe*mcap moity Um a co-sr. B* fe*mcap' Screen Prrt aeafes ademo saeer* anddurrp* tip a FntdRihflAM irpfememicon.
G'Sp K pnnfer.
Alfit Suoport ffeafy Grpefl Vif Frtd RshDiek IS: Dsassem Srrpfe 66000dausfembfer. Reads syntax etweker Bobs yaphetdorrio. TkoUnuVwrms' standard Amgs cbjed files and Blnk PO 'atmk'compabfe Inner,fsRer, botfer Cock anpfe cgiiildack pro-am for 7* ip ba- dsastembei the code aecoonc Dara Browser Uwifed to FF 16 Vowier, in Duie An wghi-fod symmarydauer program teccona ara dumped mnax. Theacox Manx, wr aero1 bars, bug f-xaa.
Ro*y pratyi dsissrIBM roulnei re set up to be Bree b-tee data ttucLra examples double buffered sequence eyefe cafiabfe from a user pvogra-n so airtructoni BteeZ Another verson of bree- animalonof afiBi m memory can oec sasserobbc dyntrcaiy caendir AoonnTrentcarandariftti a arm Uonopoy A realty rtee rronopoy gam veitfem in ByBi Rogers Less Fie vew aexcr. Ng, potion by WC [Xo'ftKeyTap Eiirpfe of a keyrap affucture *or tie percent l.r»nj-»r. O data Dun a Ooafe UL32 aiver and AorkBench Ow'iw keyboard layout. Unto*fed Out NewFyits Setcf 23 row Amiga for is Vom screen Ourrp program inctded
becaj»ata*moiy riTpieaara BIFsth Poyorew A C'trrng Qrog'in w »n tft AofliC tow and tar between By Robert Bum* of CA Pr Background yrt uttty, atyw Poytactae A fracla program wrraen in AcaeC Hypocycodi Sprogrfexh, from Feb 64 Byfe ooc cm*, ¦» octroi.
Rrid Flam Dili 16: LneaDer-j Eximpfe of propQrbon* gaogeti to Raquesfer Do.n Pft't-Toe4 e raouesfer.
A compe» cocy o'rra lafeBoevraoeer Ffdtk aabi a Sucer&tMap.
Rah sampfe.
Frad FlshDaklT: UeimEoaraon Scra'ixs and crtcsoni for QuWrg Frid flah Frtd Fish Disk 35 The kfenT« Og -V«a vdea dgt*- HAU dara o ft yo j Own hometro* 1 Mb me ory AsencPaoot C eia.- eo*-a«.ng ssyxr'y bus 1C FrKirnDillI: expanaan.byU rae F* ngy ca 5 to a DOS "and , ww py C-A Xr-gaOtpty dumb sermr* program w«?i bail, SefeUax P*og'an rooeougfinaisc i'cait ConKfeWnd jw C aurora of getine re hurton sftectabfe fanfe SosncaCrjs Convert Jjm to bo v and sderea po-'fer a CCN or RAW; randaw. Fy A n l eraiaaw C Snft i «e tne l program, S-e aSM ar poetona and r«j ¦
12. TJf OA hsary, oo pa. Ec.
Vftocrryeoxr caaatei and Gti*an Drift Wa* re orars-y see. Oo CU Browser raxei a t« cMiyt lea. A.1 ttfe fepotiar. By Davd Eag* coercxafrom rm t writhe rmouae FiriQabPiia Drift 2 Vo3»' vananiolQrjsi.
MC£801C bjcsor XV* °S f*it Ar-ga is un a AbaBcgmetbyDivd Addton Beckgamman , C-.btJogn, Frafteoracfe' U"ce Cl 'tqjesae* modufe, »r WC6W10 lAestsne.and Orw o oeraonraf. Fi-ynOiarraHein kAitOm rrx» an N fl.mer ton* cuoe wn a jcyrK* C c CECUS 'coo* C praproceay, and a nsd'ad UacVew Vraws Mad3! -1 pctmea m Am ga lew PgLasn SAY comjuend toet feks in Fkg Lesn bd that know* about tpp', *» Manx C. or high res, ran aampe pxto at, by Scnmper Semen image prefer Sna* Urax -oompitbfe tffeil ftctrvfer, 'y Scot! Everoden.
Xso' 6 to.T», oocj. Ano exec race 'or a Leo pec*, ng fi«s fe'favw Ptop Si-pfe FF raeder progr » .rseiyrafer SuoerB Aap Examp* o* uang a Scro lay*' ipcng PopCU S-betocK-s ra prog'am irvoM* a new FifeJFlifiDiiLlr.
SuperStJaps for prrtng, and erasing CU, rati automate screen banking.
L oc«Jsw toxtenented bucket* game dummy Raatpoda O cACopy Orvanportd«kcooars dup icafeoofy JayilrwSdM Sdeiby Jay Urer. Anga iovn chip FritfPitiP a pr evened difti oesgrw. AipMrmg *ow«7iarto!ne Amga Aeg rf »w Demo Demo program wsreuf uve ano no doca SabPf Dual syi* 3 iam a, from C-A insomnia, in 643 x «0.
Anmatav Dero Rryer *or he Aegs Anmitor lea rows 433 x 30012 tit plane Keymap Test test program t fest the key mapang rxlnes Cc Ur a -ike front-end for Manx C Raytoid on a 320 * 200 x 2 plane deep LockUon Fine unccaed file oca, for programs Enough Teas for ex nance of tyssem bayffed.
Rtatdontoeanup rascxces. Fifec. And devest SeryjPadket General b po» tutroui-ra to send Fred flMi Dili M; Rubk ArnsSad ftjfck'aoube program AmgeDos paorafe.
AngaToAtan converts Amiga obect cooe to ket brrr at Str.ngLb SpnfeUaker Sfr-fe editor, can save work as C data DskSaiv program to recover fifes from a trashed VtlOO VT'IOO feTnriJ emUator wthKerm tind stouctura, Shareware by Ray Lwsox ArgsOOSdSk Xrooem protocoit Tractor Converts any oak into fifes, fx Ham
• iimp* of ife AmgaDOS d» htsnng F'rirnhPiKX eractorocSanamssor'.
Preserves fuvaon Serera t-arawara prog'ors TH* uwi request a
corawn ertra fife sbuctore, Snt'feM-e ty Hd Hex dixtip
mitye'aCompufer if you find meir program uceAl, ao ttey can vr
* more B'aoWian.
Language magazme. Apni B6 schrwe TrCtopa 3-0 space irwasjon game, form arty Maroe Brora UanMDroi cocbk w*r»ra 3SS ar Ang* Base BBS by Ewan Gra-re- commerca. Now pubic oonax From k&J'Taft ng Tutor a rdaarpesforEacevft Fife Ah Arga art GeooescPuDxtabon.
Mu1t»*«ng FontEdrtof edit fomta, by Tim RoO ntor Tez* PrrttiB tie of ail fifea in Pack tTipa nrnfetpace from C *jxae UmuEdfcr Ceafe n ry*, aw tram ts C soxoe.
Subdrectxraa Po •Hander sarpfe Fbrt-Handfef program tie!
W DfrfeFVrior U"f*3eJ C prepryfeser ta rarav* gven pertomni Snows Bcf e vronnrm Oje* StfeTrmld Very noefefecyr'-vncilone cv J Nangaro MaifofeCri afafife. Fea ng tv* FunCom Rancom nurnbe,generiar m taaemoy, to- (Frad Fin D**AX • tee f roquesfed when ordered wh at rad a one By Dave Yoat Cor aasemt*' east ffirae ufier ciikt hom the ooifecton f vtfett VT-100 emjatton feet program Se»oute2 seti ?fe mouae port So nght or feh Ff»d Ffeh Dak 31 Req J'os a Urro aysfem SoeecTem fermrntl Envfetor w T SP»cr He Lfe game, uses bttier t do 113 general 3"5 FrtdfiihRiS* capaoi oet. XM xtr aaacond.
Acp Jxi- « top*espy prog'am TxEd Oerno eator from Uaoenrai'i Onari* Hem Mandelbrot Veraon 3 C of Pabeh Franeh'l program.
C«3 * Ucwsfed verson afdockondax 15.
U. tua exe.sn gadget exirpfe.
Cn Marx tsnMke CU hutory. Vrabfe*. Mt Th* t • copy o' Thomas Wicm'l Ua-feebrat Set E*(«o*r FutScmo Meatxe rasrve RAW speed, cro and far.
DwtAd Del pan-g ad o'ga'ms racpea das. Verygoodl Set Re* aom-er: *or Tb U ari 'rat* cac'*s Fred Flirt I ak 22 command tor environment virabeawTi Etro hxwec 'acfro'eon-mind rah coo*.
Th*d»kcomjn»two mu 'csm*f of mcroomact inprovramen*.
Am* aoarws-g L*m.«a wsm 3 6 by Dene Lawence. For Tree Dwwi ¦ •acurave bit. Graen ei*r type, FaHjnk Fa xograms to let them run m LK* V7, BSD *2, Am a, MS-DOS.
Not files.
«»-¦ memory.
VMS Llaea Argatxwcan keys.
TxEd Opofedder.o wraon ofUcosmti'a Fm Maps ?* sectors it feu as on rec».. sfetut l ne, execute, srartuo lies, more.
Fexi editor, TxEd KckBendi Docs, program to ns« a sn ed sk Pam act By ArtJyPoggro. Newfeai'esinduoe Ydrwv Ful-leal red drawng program by hat works like a Kocstah and Workbandi ALT keys as lAeta tayi, rouse Sfcphen V rmeufen Lb Cor pufes Fog. Ffesn and KmcaTO Support, nghev priority, backup fife*.
Jccpn hv et CU srrpra from con raadaoicyof »xt fife*.
Word wap. Tunclonkeya Troon Dspiays fextffeatrom an cox TurnelViiort 0 viO Add son Abibc 30 maze FndfUtiJMZa frriFJihPiKS perspecfirai game Dlk of tojres fcr McroEmacs, seve*« veraionsfw rmoit Add'ess Ex fended address book wntfen m Ar.gaBitiC Vc Vacate- ira icreadsheatcwxiitor popular ope'atng syssemson rmcros andmarfra.m t. For Caencar Ct*ndir oa7 yogra- wian m AmgaBwc.
Peooevra vwm to pat kfccroEmeca to Mir fevo'io me ne.
DosPuH Fire volurra of CLI xensac toon for VttOO Versan 22 of Dave Wecxerl feracor Fred fish Dim 24; dew'opera program Conaues mSeratafer advpnture amiiaton game Dosfkui2 Second volume of CLI orwfed tools YaBomg Ong1 s fe gan* xogram shows Can Lpoafeat**! On Dft u.erJitMflfl toroftveopers sore calfton defects comm and a,n an ad rev « h subSOtAon Ex*cu'Joes orfy: frtd f;lh H UacVew Vtewx UacPantpcturea r Amga law orrgh Tbs dft s i poh of Trmothy BudcTa Ltae Smalitak ifero.
UodJi'2 A pro-raB«se veraon of the engfe pen ra* no n*rpfe pcturaa by Scott Eiramden dorra by 91 Knnersiey at Washington Sufe Unveraty.
Uodi l-2 cp"p m or naly oevwoped X' Machssn at Puzre Smufebon o' puzd* wth fil orng squaretfel Ffidrnl idJ ETKZ, Tv* oooo was »ar sm led to the AJJ1GA and it ShcwHAJJ Vraw HAW actxH from CLI Csq.red Sec 36 5c Arra'cax Orora Squarac executed an tra AAIGA ua-nga kmc* eader Bm*yoHy.
Sdt*ra AflaraC games of Cenfiftd md agorrtorr frad FlahDrai23 iConoke, from Devd Add son FoObj Strps gi.tage off Xmooen* panafered GrsohcHack Agrasncve'son pfTeganeof d saa Scm3 Graprics demo of aa-nnng abea ooject fifes 7 anc fl Th* a grapr 3-cr*n»c Haca do uora-bL erad aurora Hand ArgaDOS hardfer (deveel erw game by John Toebes Ory r* nec-'JOe Swoc Sworfl o* Fl'*n Angfe fex* Kwti hqn C-A s praient game vrtfen Amiga Baac Hp-IOc Uncal hP-IOCcfedulftor. WrrJlen n FrsdFlferDlikZS Trail Leave* a trai bahrfe noi* , in Modula-2 Mcdii-2 U-itrk oce tem Ar ca Xnk* toadfifet.
F'kifhuoii n FF Encode Saves he scree- as t- FF *e CdfeC coos, erx end pa rurm tjg 5ne». Alo** mfewc * Sdstari 3d verax of bra 'sin' progr»n bay*.
FtXr-p Dkr*0t -nb about an FF f fe Bmckc; of coo*, data, and bas or ra and gene'ift* Bgmap Uw~ev« vap Kt eiar pi ter sis J* BOSC-rkeCLIa'fel tinaryfie ivto brmatramn.iaoanto+lAnx'aout'brmii The txtmap a Ji Scroti Vport HewStat STATUS-lxe program, ahowa aufeuflfie can be easy processed ty a aoara® pfog*in to Dbu'gei Douora buVed ammiien aampra prcnty. Pocasaes orocx* Uatypi ¦S-racordt' wtatxe for oorancao ng a to' BOBi md ifterfe*.
Rrararc Gar* cf Revera. Veraon t1 Inputdev " Wmf»©inpLt irxJ . Ifv*key3rrra ** evers .oyticx Snots row t wl.ptoegareoort Ofvcs a • jcyttcL keytward dfemtxstrffesdwectconirnincalons wh fra leytsai S.
Ryera Srcws-aeo' heeyert tbr«iy mmfeDrot FF Mand*xot pngrw"- rr sjw Wvup xiit ngmpynck port one.wmdow eonaofe wro»wdeno pfc'6.¦* Darrortmatos aoceatoth pi.riw port p'n'fer apering and usng toa prnfer. Does a K eancjra nctwarang pr ntsupport Prrtai support rpylnes, not working, pretest 5bt be process ceaton cad*, no5 worcng rag an oer cs Sdit ffswrg'eg ant sampfeforrt sam Re font with mb on erasing your own sen Demoi tn* sera port angfeRayffero C-a§tos320 t20[)piayfieid
• peecr-toy Itfest veraon of oufe speeroi o*mo affeech.draTio
simplfied men of speechtoy, wh D requests tatcemo displays sv*
abfe hriti pm Oer pair , deux* use Sackd» (HrwfKr ffw
Em-EiJiftdJ; c«*rp wj I ke Ur* com pro SS, a 1fe kjuoo ztr daoc
analog dock mporanitor Tvcroeract upgraded «r»i of
mcroerracs*om d»2 mull remove* mjapfe flooring irwm tie* scaes
demasuingsound and ftklo fiuncSom soa-s* A c«s crangng para'ft
port pa-t-efei Acw* trangng sent port part-rafers fsr q jcxsart
based sort program.m C atipe Stop* comments and *i»a wxfetpeoe
tom C aourc
f. idHihJiK?; T'ucftconta'ta rraaacutiOfesoftoBga-raHaoi V
10. 1. Frad Fish Pah. P; Txsc ft cytam ha C sou*ca » Hack an oak
7 fflXEt.1'. J.B-t roir Osws nva prsmis r Back and wife
UVP-FOflTH MountanVrawPrass Fofto, verson 100C3A A
s.'ra'ewero veraon of FORTH from Ft jsa 5ytfem».
Proff a more p ra«r*i fextfxroittng program wrtac* Program to toggfe i mar ace mod* on and oft swv* a rube's cube type demo tpeks rwngmake Grio caorro frad Pah Disk 18: conquest An infefsfellar adventure ajmJaton gam* cehei convert a hex field ! nay ffezap Parr progrm fx any typ* of fife.
TxOQ) StnpgtrPage off Xmodem banstoveo Mas.
Rfl Rouonealo rasd ardwrifeiff tormitlfei id fenpfe dractjry program I* Mn mil UNDf is, witi Uni-ftyfe wCcardng, inC tc-sq ffe squeeae and iraqueeze Tek73 SurTwgame yacmc Diegan*.
FraifM-Jiaiitl; dpade *l« Shear program for Otpiyng FF LT g t wm- m •ca-1 arv o (xu*f EaiEiHAtt.lL imgajc $ now*irot*ing3birwn*.xi«ioid 'tr-.qa agnV A oTerm a terr.mal eroUttof program, vrrtfen r asserbra* a-ow3o Sncvw a roteng 3 tffrranaonfe wra frama arrow, oi d ractory Istng program fconExec SetWicow two prog* hr Isuneftng progs from Workbench, praaemry orty vrorklunoerCLI SfeAferntfe M v.m an toon show a second imago wffenefceked once StrTerm fernir.il rilib', wto ASCII Xmooern.
D eer. Mart.
EniflihJCLMdl; A Burxfie of Basic programs, induding; Joao taypsx ensew mandeoro! I modem 3dia Js addoook agebra ror amgsaqf amga-copy band bounce box bnckout canvas carat orc»e ajotticfl* Copy cuws' cutpasfe dies dogsl» dragon drav dynanctiangle Eua entr-, flbmfer fracfeJ fsaoe gomoiu dart haku MISCQO heey raunfedM bdoon join lai mindfe menu m n paint mouse &r*io parr pera prwreP gbox rndon !rciei ftoeome rgp f fest flord saootage uwsat s'aott rues txre i«etrp*d spBceart tpeaa eacr ipeecneasy spel spbere wa trpv mw'PM tXrthv taK fermnfe fernfes; fem Swog'apry wangle mMl w» imoarpar (note:
son* yogrmms ara A***c, mast era A- gaseac, and some program s are prawnse m bofln «nguages} Uxacx* kirt brary fte* to text, Uni- OsoeH Du benchrr ark program tor Un and Amgs Lw D sb ay a num. Oar o'tete.sm run Oueua.
HandSnake Terminal emulator veto VT52 VT10C like programs Du Compute* dw storage ol a tie o' drectory sreragad ewer las: 1, 5, tevd 15 m-nute VT102aipport E-D Vdraw Drawng program, varaior 1.14 Mem Watch Progran a wata tor programs that frash low parod* by Wllatm Rucklidge Med Mcu»-drvw. Text editor vertian 2V E-D VoioeFi*' OX UO ryrfrwxuw voce fier program mem.ory. 1 attempts a reoar toe der age, and out* up a requestor to inform you o' ?te UdrTooii Pog-am* to piay record Trougn toe WO frF. By Frao Cass-ev Prt&yijen Gwwates p-voter dryer*, wbot 1.1. Source aviatfefro- autoor. E-0 Wncow
Eximpe otcreelng a DOSwndwr on a damage. Pom toe So'Vrre l sb»7 MaeRows Rogram a rake toe Work Be'em Screen Snow Sde*now-liue FF vewor. V2.1. E D curnm screen Prcfiier A realexecuton pofr-er tor Manx fffger then normal. Of Nail Kiln and Uedl Custom zabte text editor V20 E-D F'fd FiKl PikM Cpragrami Induce* C eoi ce Jim Madcaz Uew&o Exampta Uedit setup mtffos. SE-0 AnaEcho fccho'. "touch1. 1:*f, to*1 written in assam ber Ffed Fih D*ik4f Tift Rog'en a rase your Arig* no* ke Fm Fin tttid Dsdty D*Piy*HAM mega* from a ray Cycoflt Update of ••crone texmgrapn from cm 27 itdcnl pm vorttnr' tertng
ATPtfrn Pema*Transtirmer b work unde* yacrg program, m7 eaa-oe pet ret DrLW Enhanced version ol DirUli from Pw 36 by Lao ' Bols Ewhac' Schwab AmgaDOS I 2 S-E-0 Dw Exampedwc* ower source, acts Mul&Def Scar * a set of ot»ci n oOj« and crane* &!d.E!lilJ2L*iS FllD*k Wrse* za'oei t) free bo** on a hlwRAM dak leftTHng far mJSply defined tyrrboi* Or V2 05otMattDHon,swtf fkashei (Modi1« d» ter security S-E-0
* 50 Xlso i 7, execuao : hy My Joe a» Dsx jocah utidy wti ooisns
tor to' Uanx C). By Matt Dl'on.
Lptta Psm 'or programs toa! Aoyt FrtdRih sfrippng com mens from Cneaorfvex and WooFed by S»re Dew when loading unop AmgaDOS 1.2 S-E-0 Ahost Terminal emulator veto Xmodem, Kermt interacPw venfrcaion of toe updebng process New Startups New C Startup mod s: lafrcroEmscs Conroy McrcFmac5 V3 fib. Newer and CBB protocols. *ur cton keys, ter ps.
Rot Computes and dspey*3 dimenaonal Astartupasm wtfr Infixes and better tfuota handing.
Toand w22. S-E-D RLE graph cs and canto m-xs rode.
L vctonsm hres TWStartjp.asm opens a slPo widow, us g us*' specs by PteS'Font L«*Tdmz, But roundec edges AmgaMorrtor Dynamcety essays re ramie rr».
Poygon Mo tj type pettern genereto' w-to ccka' eyeing Commodore.
Terra n Generates fractal icenety S-E-0 socn as open Fes, ac£v* tnsss. Resources, Qmouse Qjer.es vrwtoer ¦ nau» button a pressed.
Dotted » BIX by Carolyn Sehepper Vspntot Maxes 2E Vsonte*. From PfcE (Dak device states, interrupts, liberies, porta, etc. Hii* can give a return code thel can Palette Change another program1* ureen colors.
FtydFih Pte.63 Art PopUar He concresEon syste~. T« ajstomia e sta'tup-seguenoe beeed on 0y Carolyn Stf'epper Thu is l xrt o' toe Umx gar* Heck', by to* Softeare stondvdfor transiting f«s wretoer a mouse tjutton was pressed.
P»Ov*ce A'ows toe rjrosto outeut of ora p'ooess to DC tety, ve'son. 1.B.AJ. fceaCcoe Pmyam tiart oecooe* a-ea codes Toud Exampie of aen r» ce»samp on a fie, be tod to tote tfanoaej input of anotoar.
Fnd R»h Dte. 53 Into stile and locality.
Usjng a tochnque from Commodore-Amiga by Mxtt Dion Thu i* i port o' toe Urax game La n', by toe Sofrw&'e Disatery, a t* "afrit' repflcament linker, vexon S.5 Trees Mote exBnsrvto verson of toe trees Screen Save Saw a normal or HAM mode screen a* version 12DE1 Cosmo An 'aste' tesJ clone.
Program onDsk31 an FF tot. Oy Carpyn Scnecoer FririflthP.g.W Dg2* 0 Data Genera, D OTernral emJator FredF DliXiO &tengha,D*ms De o of toe Ictvs-ongare&'mgh*.
Tnt is in offcai FF »ecfcs:on ok from Commodore, an D'lftl Widowed DOS interface prograrr. V 1,4 Am.
Vernon 1.1 of a shareware 63000 macro SourcExample A floiAfre Cufto'ed sound ex npi* for jpoatetodi* 16.
DOSHalpof Widowed AngaDOS CLI h*fp program assembler, com. Pal bd wtotoeMetocomco Ms's C, by Jm Goodnow FrtdRih D»i M PagePr-nt Prnts text f*e* wto neaoer*. Page assembler,. Th s rttooes an. Exampe startop Veyites A wo* ng vspr it exampe by Enc Cotton Bawk Unix »« DrooeMor, ike awk. Doesntwrk.
B*e»s. Bnenumbera module iro rare Motcmii mrteumon *.
VtlOO V2 6 of Dava s V.100 »rm re eruifarwto tJLt so-'ce * induced. S-EO.
PopCLI Stort a new CLI wm a eng1* BreakOut A bnc* braakoutgam , u»s 3-0 g asses safT.it and modern, by Dsm Waotef MWB Exampie of retoulng Workbench wxtew ksywok*, from any program. Wth a DskZao Vereon 1.1 of a program toad tditka Frad Ftoh 56 opencairato inotoer custom screen.
Sceen-ssver batm. V«*ic£wtfi and bre.'y ties C'cBoard Q pool'd devce interface routies. To pawde Varson 1.01. S-E-D ScmeEd Sjrto EdS' ec to two *pr»s at a time RrSSIicon A smart CLI racKScemem wth fjl a stond ard -te ace by Anoy Fmkle OssakSB Exampie tj- tfosmg a custom Xsoo!
Soel nc crecser a ews eots to *« eding and tecal of prevou* comm ones CorPaotets Dmo* toe use o*DOS Pac«eS, Wyoencn K"een 5E-0 Frad Fart 0*41 Mss-e A U sse Comnano-type game. »lh CcnUnt ete by Carolyn Sdepper Cooke Generates ore-1 ne brtunecooke ArgaVentura Cm ateyouf own text adventure sound, m assemtser GetOsks Rogram to find a!l avallble C sk dw oe aphonsmt S-E-D programs ,n A-gaBasc Pe'tectSou-O Sotted editor to' a ewco so jnd PgiUer ramee and return them a* Ir **ac irat ty Jtrne Buid-you'-own no-sepotfcfocA Cm Variion 2C3 ch Di on* C *h-i'*e »h*a Sziers Graphics demos Pra pLrtfjay UexBu
car Creates C source f es *ar m*%s, ExacutiMe onty UnaJMc Verson of 'arc' tor Uni Synsm V machines, GetVelixma Pragram to get vauma name o' toe tased on text desErotnns. SED.
Dto-g Macro based C «&ugg rypteaaa rfj 12 mC w ume that a gven lie resides on NewParoats CBM tutonal on new patxete and Du*PtayF*lb example from CBM uodaw to frrjton Worn bet Verson 3.01 of Dev* Wariwr'l by Cnucx McAUi* Kructirasin AmgaDos 1.2 manual terminal emjaaor kan2C Read* an can fie ana wnw out a PejcaJToC Pasca1 to CfrsnFator. Not sa great. S-E-0 Gifl* Heoto'sf* requester, «to »jce Fred Fah Dlek 51 fragment o' C code wto toe con date Vater'-ike FORTRAN preprocessor SE-D LatXre!
Crass reto'ance of Latoce 3.10 h« ie»f« Sson GNU tor Urtx 'yacc'. Wcrkng update to cruct es. Ty Carayn Scfteooer Run Beck Start* program* from CLI alwmg CLI Lees Lrwdrawing demo program disk 4 verson Merge Mem Program to merge the Mem UK enree of wrteowtocfceo E-D Setfpnt Changes fort used In a Ctl Mndow Compress Uocate to toe S« cnmpteuion laquar uiy ctrkgured RAM boards Sum Mouse Tnt program automatesly ecu* ift Vt'OO Veraon 23oftbe VT-10O terminal program program on Du 6 by Caroryn Sdeooar wteows wh«n the mouse * m oved FrtdFih D!ik42 Cos
* Wn*e' o4 Forvte'-type gam* in AmgaBasc mCAD hr obect orwntod
drawing prog'an.
Ovarriam Voraon 1.0, E-D Thsd *4 contain* an Amgeverton of UcraGNlfErnaca D*SmQ Umx-lke Wif and 's»f for frying toe V1.1 byTrm Mooney Fred Huh Dak 66 Frfd flsft Pitk43 ckfte'ences between Wo frteA and Frad Flth 57 Am Sea Prtf minary pans for a SCSI disk BaseBorg AmgaSasc program pan os page fippng of Ten races:ng toe e tov. Gven one CutAroPaste frnptementaiorts of Un-x cu* ate paste conrsHer board.
ASDcuoe frie. And toe i s o* o'torancst commands, by John Wewj Asm 63x Macro asambe', verson 1.0.1. E-D Bon Demo copy of B.E.S T. Busnesa Management System.
Sd:. Use Pots be verpons of toe CRM soueeze and ur«je«» Graph, ft P'og'an to plot smpe Lincboni in 2 or 3 dsmertsion*. By Fynn Frshman Assgrai Exampe tr amdng DOS rseT- Otk recuester. By scaterig to* kst BbsLst AliKof AmgaBuietn Bo»d System* FfM Fiih DilK S2 VI2 of mbotjuggief nratna Uses ofassgn'ednamea S-E-0 Cc Ceomp'er to"ten Js tor Mam ard Lance C Aa n Repicement tor Am geDOS 'e*egn' HAM r-ooe ano ray tacng by Ex Graham Ok Retercs b act away at CLI Cooper Ahrew*re copper i.e osnjse-tnv command in C MouwReader Staraware p'sg'am to read text 1 a* wncow S-E-0 h&UFF Convert* kiKfjmenti demo
so«rdi to FF Fractal Manes random fractal terrains end vew FF frlee u»ng only the mouse np R pe who* acwen os a joke. SE-D sampled sounds Roy. HAMPtky Wohibench-typedemosfor making by Wifisn Betr Foogol Foogol crOSS-compiter genarstes PopGPours Aq"Tt RGBcdor* of ary acreen polygons m lores and HAM C?e Game of tocxa ground combe n toe VAX assembly code S-£-0 So'teCxx ScrpetocK iptpayed on aRrie aooveai weers MuGaci Ex arse of mubjal extfunn gadgets wto GeagetText year2C06 py Mtr» Cap ng ; Amga port by Ho be Om* Frae Prra amount c* fr« sac* on a or .vet S-E-0 ST Emulator Hort-serious Aan ST
emuiEor TekAOl0 Tektronrx 4010 terminal amuator Splines Program to demonst'ate curve ftlng Ma IxTist maiioc free mnmory test pragram.
W&un Lets Warkbencn program 11» n i from Vdrsw Versons 1.16 and 1.13 of a DeLxs anc rendering tecteques.
S-E-0 neai Paito-lkeOrsyrng program oy H**ne Lee) Taran Mel Resetes to melt toe tcraen. S-E-D WkS Two Uis an*4 stye card namrtg Frad Fah Ditk S3 FfedFiih.a Natf Grapnqflyng eng demo SED roulrea Vmateni Demo aramabons veto payer program tor ASOG-rrd Exfremtey useV marwrre Purty Easy way to «1 printer ato bute* Fred Fah Hik 44 Aogs Am malor racoveraoe ram d*k. Cy PertyKvPowtz from Workbench. E-D tar* Usee1 aneous cons ARC-e Creates raoa-re so pts to' 'os veto &gVww Decays any FF pcLra. Independent ReyTraciv Smpe rayyacmgpogram. E-D NewFF New FF matara from CAM tor sampled voce and muse let iong
nemes, so they can beets-fy torcted and jn'arcted.
D He prysce dspry see, us g hj'Owara acral. JohnHoogson SavPatei Updated CBM exam pies of paotet rau:nesondw35. SE-D RsyTraceRct The famous ray-racng pctums.
ARP Prelmmary Am.gaDQS raplacarrants Egraph Reads pairs of x and y vibe from a 1C SnapShot MemotyrettJfriisc'eendunip E-D from FK39. Now converted r FF HAM tor break', 'cd', 'ctomod*. Tocro', at l as and draws a te'-atoac graph Tag BBS Sha'ewara BBS system, verwn 1.02 format far *mucft' as»'vww rg len.cte'snd 'makedf' 9f La yenece Turner Frid Fah Diak E7 VewlfiM D&payt normal and HAM L5M fas Complar Not tofy ported to toe Anga, hi u 683C0 C Hype'Base Shareware data managaraert system V1.5 Am Cat Shareware d m. cataiogng Brflgram Frttf Fth Cmik 45 compier 1 * l produce *-n pto a wemp'y
Mem.Ciaar Walx* Trough toe free mamoty 1st*, zeroing Anga Spa Sharews'e IrOton spa rg Clue Clue boo'd gome language output but free memory song toe way.
ChacMK. V2.0, E -0 Mi-B Ana Her Ireke'. Wif more teai es needtatofofwrorx.
By John Hodg aon Bouncer 3-D bo nong ba 1 vm-tten in U Jtfotfh, S-E-0 Pet res Msoe areo-s scl w Spreaoifywt Update wto eojree of toe toc' New7A» Ato'd-generatar mLC-pt poaafia Conn Tarm nte prog'an veraon 1.33. E Update Upaatet an Oder dskwiTi newer lies from spreacsteer on dte 3$ sector edtng ufriqr. V3 0 by John Hooge«n Dux 5 Anotoe'veraor of DrUBL SE-D another disK TarSpiit Port of program to split Unix frar' archiie* RanBow A MiurauOfr'-Stye lenoow generator.
HoxCac Hex, octal, & dtomai calculator. E-0 Where Is Sea'ches a disk for frle* of g wn name Uuencooe UtiTe* to encode and decode onary N*$ tor By Joir Hoflgton tons Vinous bg me bternr» mage ont FrrilFiifi KfK4§ ASCII transnrason, expending than by 35 SMUSPayera Two EMUS pays, to pay SMU5 FF Mate a a Urci igico itotoit. E Asm Snamwae 6S310 r.acra assember RCM p*wuP*nt-Wte crawrg pragrir ituecformatted 4et by Par tMa: Demo Shareware perianal f* manage* Ke'nal Mou* compnpe FfM FiiftDitKSS Jofr Hodgson RSLCoc* Menu be'Pock verson 1.3. E-D CneckModen 'execute' fre program detects Aimebons D*mo
arvmaSons wto player program tor Vew A try IBM vewer by John Hodgson RTCubes Graphics demo o» 3D cubes, E-D presence of modem MgiAninitor WQCurrp JX-&0 ooemized wo'Koencn printer Vaee- Wveei o* Fortune'-type cam*, n Am sBasc Egad Gadget editor from the Prog'amm or s ARC'e Create* i*n*m* scr at* to' Fes ivn ong tor. Does xt use DurrpflPort by Fr*d Fah Dik 6S Network narr.ee, so toeycan Pa tasty 'arcted and Johr hadgscr Tratraverscn MG iboftoe MitfoGNUEmaa Source and lv« T nslarmi a lie from Eng in to iv*.
FadR iWakSI axacutooii aramciuoad, as w«i a* source for other computers UyJia A btnarjr ocy copy of Ma tfs altematB ARP Preimmary AmgaDOS rapiacenenn tor Browser Update to browse' pragram on disks 13 bes-des toe Am,gn rjrlme 1 brary Author: Mat! Dklon braan'. Tod-. Tmod tomo', lienaie' and' and M. S-E Fndfllfi 9 Pra"U*aos Subset Berkley frnF and mm' macros for makedr* Browser?
AnoTte'fiif'etent browser pragram. E Asm 53x ivlacra asae"5if*r. Vt.0.3. E-0 ¦praff Comper Nottolyported to toe Amgi, tii s i 630C0 C Cock Coct prag'am bnts, ctfora. E Bilab liittef explonng program, in C, SE-D ValSaeak Transformt a lie from English to Vaiwy comp.**, hvalproducesmpieassemUy Dnte Dlbn text atytor VI.22 for programmers. E-D Conman Redacemert corraoia device hand*' adds Speak.
Language output but needs a lot of work.
DropOoth Rite a pattern on toe Workbench Dichd'oo edtng and rastory to ary aoqeatar to at FiiiBatiSJLA 47 Spread'sheet Update wT so ce of Ste c' E-0 usee CON. VC.S, E-D 30-Arn SraJaoon of a rot «c a rm, very goad spreecsneet on dte 36 QooSnadow Rute iradaw* on Worrtjench. Wteow* E-0 Conaoe Reo-ac«r*rr. Conso** ratrtna*. M C. S-E-0 grapnes. Teecimg taP.mtfud.ng C idurce.
TarSpi Port of program to split Uni frar'arcrvviet FixWB &milarto DopOoth, but doesn't work yei Dk [tecays toe scraon bt by bit, update to Enc Grahtm'i ssjnnng HAM anmaton ol a Uuoncode ItoUias to encooe and decode bnity has 1y S-0 Pte 66. In Modula-2 SE-0 VT-tOO robot jugger ASCII transmits on. Eipa-tdng them by 35 mCAD ObteCt-dnented drawng prograr. Verson Frags Doay* memory fragmentatbf Verson 2.4 of Dave Weotor*s term njf FridFlttDiit pe'cert
1. 22 Mucn improved over 56.
I-1* sje of-ee mamoty Rkks r C. S-E-D emMatr.wrth Xmodem me termite Si Robotroff Dero of a.'vmsBd porters on Wc'kbendt.
Icon Type Change re type of an icon, m C. S-E-0 ranster protocols Hanoi Soiws Towera of Hanoi Ffrobtom in if* S-E-D Make Intece* n U»u C, S-E-0 FfilEiHGiKLll Jspeii own Workbench wroow PyAfi Qza' Supermort General conpouyjing iimo'tzason Ion UonPrac Monfbr* pxniet to1 packet actorty. In Aiphe ve- on of * qsi l'e arcfrver PortofaUm screen o tented, -ter an re caojetpr. E-0
C. S-ED Cflrrn Verion 1.30 of aterminrf an ucor K»l ng CteCte'.
(Expsnson RAM raqurad}
- rfM EH PiUK MouaeOock Turns mouse po rr» into a dots cocx. N
vmprwitea-ectire* by Piwe Wi-.ason Various aharawew anc
freeware program*
C. SEO Can Verson 204 at Matt Qiiion'a Unix tah'-tka hg A Screen
of lota ol bouncing ktfe Btz Memory rasxtertfki vwnwr. Very
'at*. E-0 Sb Ertyrses system cruci res, from CL 1 replacement
inducing windows by Loo "Bps Ewr*o' Scrwab BiaFonts Uswat text
output fatter. E-0 T*irsector magazne. Vl.O, in C. SE-D Lltoce
and Marx C sx*ca For PDS orders, Please use form on pace 106
Generates National Enquirer1-type rvaalnes tom rulea file, h
C, S-E-O Three program* to demonstrate m Jttiakng and pooling
in a printer K»o«*r. HC.v1-2.SEO Coxa NO'tfs a* Una Vwc', Out
faster in
C. S-ED The it t d*k of tnrewt" programs.
Sow Spool Y*z Fiitf fl»h7fl ArgaManto- ExpiOte* state ol toe system, vl.13 Ac Standard tin compressor and Ibra-ei, vO.23. i port of MS-DOS v5.0. E-0 EjackBook F ore book program.
Do Til htution-yivonfierTiarpufator program, vlC.
Grav tyWt's Gam of planet*, abipt and back holes, V1.03. Jobs A'temtte jter rttrftos to CLI and Workbench. V2.1. Lana May-1 »area around rouse, ahowt it In a wndow, v1.0. Lie-3d 3Dv*raon oltiedasbccelljlar- ajtorr.atangame. vli Logo Logo langj age i-terprete' Setfey Demo keyrr,aped.tor.vVO Vpg Mtkesdspayi tor akgnng wjeomontor*.
V1.0. F;rif:ih71 ArFoi Mavra arai uing tie Joukowski franstormalon. N C. S-E-D AngaBasc Wsoelaneousprogremi mdudng 3Dpoi program, a naledoacope, C-A'ogo drawrg program fie companion ttity ung aeaxr program,S-EO Bxks A vr.«S x ol "knes*. But wto variable cotar Wocxa. E-D Comm Greatte'rrrd proyam, v1.34.EO DwX Utliytor u lonng Itesystern.EO Fpc &mp* image processing program nat operates on FF p-ct es, with »nv& Iters. Me mg mages, E D bonMk Makos cot* tor flea, v1.2a,EO bon* New cons NewFonts Two new fonts; 'shaltlS*. An electronic oruit element font, and 1am5', a PC4ke tort RetCLI An AmgaBAStC
CLI thell program.
FW3er-o Demo of the commensal product Pow rWrdow*,vL2. Itatocrealon cf custom wndow* menue, and gadgets, yvmg Co'usemafyaourae. E-0 Rat Create* and animate! 30 objects, vO 5, E- D TimeSet Sea om tom Workbench, E-D ff«tFi|fi7; This is a dsk of FF pctoies.
FrcdfteiZ3 Add CuatorrLa* msSng progrvn nervis wth Arga vey shoTruts. Also include 'urOI', wrch waits xtl a gver wndow is created Shareware, nC, S-EO.
AutoborOpen Fo b iWB into frintngmou® has oojb ckkedcons. BC, SEO Do Genenc Ejtecoence ntefteoacooehr opening I brines, genng mJtpie K) channel tsyrxhronous operators, et. H
Octave Sjowfydapleys Ffftei ailNovBSO.
DobO i program h C.S-E-0 Dtarm Fl*x.bte, reprogrammable termnal program vl. 10. E-D Expose Rearrangeawndows ao bet at bast one paei of menu bar gadgets are exposed, h
C. S-E-O Lit Scans i text fie. Converts to C-«tye pnntabe
sr.ngs.C.vZC, S-E-O Lmv lorgMove1, program wews sere* of FF
pctsmqjcx axcecsoa upto 19 *pt- Sra-eware. E-0 Moused Mouse
p»n»fc»sappers alar ton aeancs of non-u* . B C. S-E-D Pa Out
Examples of controlling paraiel port wto renxce* instead
C. S-E-0 f%nP*Fort Ch''W-lke font RunBackGrcund Smlar to RxBack
on disk 66, runs proyam from be CLI alowing be CLI wndowto
daae. BC.S-E-O Snep&iot Seaandxrp ufilty,upda» FF 66. E-D
TypeAndTai! Example mattes a device hancer betort h tutor, and
apeiks aacn key as it is pressed h C and asaerber. SEO Xper
Phna mb about system lists, n assem&ier.S-E-D FiPd Fiift Diiit
74 Ced Edits and rscails CLI com manda.v1.3, E-0 Cortot bwceps
y aprtc pnrtw dump calls and accesaei color map, wt»to,and
soeen reaoljton C.S-E-0 One SmpieWYSNVYG textedtor for
proy«nmer*.v1 25. Update of FF 59 E-0 OopSnejaw Workbench
d'opanedows.vZC. Upca»todsx58 EO Funds ArgaBASC program
fraoumutoeJ or stxkpO Ltss Text viewing program, ke Unix
¦more*, v1.l, update to d« 34 S-E-D Mekemake Scan s C source
ftee and consfructo a vantla 'rr.akelie'in me current d'ecty.
S-E-D mCAD Ob(ect-onertod drawing prog. V12.4, update to FF 58, Shareware. E-0 Random Smpie rndom number generator mC. S- E-D Tdebug Uontoriderceiby nteroepbng Exec SendO() nd DolO( vecbx n C,v1.0, S-E-D Converti measxenents m tffterent yrrts, rcuoes 'chart* opeon, o C, S-E-D Replacement for tr g aDOS 'copy', dotsrs.
Change Tie date, uses Una wildcard* ED Fred Fah Disk 73 Units XcoW Barer Peywib Bauer arvesponti and granularity, S-EO Bsp! Nes Bay mb b-apfines, aa aoove. S-EO Comm C source for Comm terminal prog'am v1.34. S-E-D Copy Replacement 'copy command v1.0. presents date. MC. S-EO Off Smple 'diff in C, O Du M2 WioTer DrUll in Modula-2, vli, S-CO Eeis Fab 'dr' program n C. S-EO Fd Faster'eett'mC. S-EO HardCcpy Send* a tranicrbtola CLIeeaeon to a Ne.m
C. S-EO Mo.te01 Upoa* todax 73. Bm«o»mouie porter.
S-EO SeFon: Changes be brr. In a Woikbench soeer.
V20. S-EO SpeedD' An other te b'dr', maseemoier, S-EO Frt4F*Pi?K7S*7T These are Oiks 1 and 2 o' Chra Gray's Daco dst buton for beAr.ga. Oaco Is icompled.iructjted language ram.nscant of both C and Pascal A ill interface b AmgaDOS and btuton s suppted. Be sxe to get bob dw 76 ind 77.
F FHnpjrt7f Cyoee Cydegerelke 7ron',v1.0,EO EOMS Experts Oty Meroenary Smuiftor game, EO UarxteiVxm Mandeb's: generitsr win enhanced oe contois, fixety*.oaing point, praeats.
Al.SO.mUam C. S-EO frtdnyiput;!
AarTooli CLI tool* in amnpar. Acho. Loadt, mounted.
Set ace. Why; S-EO AasgnOev Gveoewces mJtpienamea inC, S-EO AuxHttder Exenpe of ados handier mat blows use of a CLI vabeaenal port, bdudeaaoxoe Aubor: Steve Drew Cmd Redractsprnterouputtoafle. MC. S-EO hfo Ar gaDOS Info* rep*acemems r C and esaam bier, S-E-O Icfl Remo«es a taa« and its raaomea m C. SED U2Error Dspsyiemote tom TDI Modula-2 oompiea S-EO UcrPioc Update to process packet program from dsk
68. InC, SEO Mounted Program tor teslng 1 a dnve t praearL in a
ecr:p b C. SE-D Nro Another VofT-styte text b'natter.bC.
SE-D ParTaw Fnda parem. Aik, r C, SEO QueryAny For aaipe. *»s
a Questan. Accepts Y N, gves retmcods. B aswm er, SEO Scn&zar
Ftesed preterenoea atttnga ter acreen s®. M C, SEO G-.aredbo
Exit pie of a rt «c ibrary. B C and asserrbtef, SEO Task
Smpie CraeteTas*j; era-pe r C. SEO U*
Un-jiWrtJowsdtentvI.C.inC.SEO Wx) Lsts tasks o-teadynd wet
In C. S-EO Fred FahPiiklO (see Fmd Fbt 9C) Fred Fite 60 has been wibdrwn due to copynght probiema.
Eud.Fufcgjk»1 Aa.T68k VI.1.Oof amacro asse ae' AjbFecc Strrk* be FACC wndow and move* 1 b be back Brushes 53 custom FF trutee* o' etecJonc aynoos OecxFF Otecxs srxbreof an Fffia OedVt.4 uooate b dsk 74 of a erpie command ine editor Gonman Repaces console hande'to add eddng exj hsb7 to many programs Fonts U seel aneous tons bon V6.0 o' the bon programming language Keyiocx Freezes the twytward and mouse uro: pass word entered.
ScaDspsy hacx aaated from *lng* Smjte Smushes r- FF flo.
Target Earn mou® dike becomes a gunenet LbLBMiJMJB Acve-t eA port of be daaec Crowbar and Wood* Advene gam* AmcTenn V0.50 of a teecommxcaton* program, wb Krota teda, beeps, arna-tad U raquacer CKD-Damo Demo versxo.n of Dsk-2-Otk from Cenp* Coast ScTware DX-Synb Voice f m program ter Yamrit DX aenes syntheses, update to c« 36 DakMan VI.0 of another DiUll progr bona Mscetaneoui new cons Part Ibotefia MIX path panel. V12 Roaat Another Warkaanth. Rec*. Pays LunrLrcar Sand Gameofsanoetolowngyoi poirter.
Frad FteO»k 13 Ths dsx a-ters a oero verson of TeX 'rom N Scutted.
Ft is km.iad to snal f tea, and the prevewe' canortydspiayter pegesoriesa texionfy a snal rvnbar of terns ate prordec.
Frad Fah D ak 34 Ajd oT ooi rf'roy am a hom Ra b Fteck'a Jury August Am ga World artcte D tab Binw axpenmentaOor progren. Vli.
Update to dsk 69 Ed Smpie edit)', similar to Urtx lac*, based on be edto r m So fvrara Tools.
G-av Ywr5 Game o' planets, teipa and deck h et.
V1.34. update to diB7C.
HurkPad Atds legal paodrg to exac-tao« b Xmodem tansmissioa PpeRarcer An AmgaDOS ppe dewoa whch suppcts named ppet and tape VI.2 PopCLI V3.0 of • not-key b rwei CLI wndow. WiSi scteen barker, upcate to dsk 40.
Requester Ltocatebdte 34 of a fer*QuesternmiSi;to Dpart SccDer 09 V311 of a 'Toxrab McoForga SCSI drver.
V. acon Another Stfiwabhacx. RakesTV-lix*sta5Con screen.
FrtdFlihKikK Cte V2.C6 of D lion's 'csh'-'ke shel FeReq Source b wildcard tee teouestor Hoe tides expanaon memory from progrims frragoTaois Shareware tools to man pul a: on FF mages LowMam ServerG'ared bbrary to ad n low memo ¦batons Pot6 A surptotlng proyen with source, RawO Example of »nng rawmoce on Kandate input Rocvi' Luna-y Lander for Worxbanch, wO source.
Vlbte 'rrore'-lketextviewrg ulitV. Vl.0 wb scjce.
Vnews Simpie Una nows reader, fififlfiia EU1LK Auto PobtAuto-ielecli wndow under the mouee pointer, wb screensaver.
QcaToFront Doube-dicks in wndow brings it to front. »1.1. SEO Cmd V3.0 of a tool to red tect printer outo t to a He.
FellSG-Oemo DemoofSofteroodFellas.adataba*
r. arager wto sound a-nd yaprtcs.
Frttf Fiifi Ptih f7 AtfcSyi Advert e system from Byte May 1967.
V1.2EO A obonOpen Foort WorkbwxJi to open flu con* V1.2 update tod* 73. S-EO Oaz CorvertsFFfiettoPof 7P!.V201SEO Commodl fratAleyvaz'tComnodibeaExche.nge. an weclbrary to manage to* nput hander, 3.4 Off UpcatebdwTSofUnrx-tiiteyifr.SEO One V1.27 of Dhon's text edtor, update to disk 74 .EO DropShadow V2.C of program toetputs anedows on Workoench. SE -0 Bb ShwedtbraryexampieinUanxC.
D+tander hr AmgaDOS oawce hanoe* tor. Gene-stee xwjue rentiers, WO. SEO hatal Atorrtate Ar.gaOOS Vtetelf program* SEO MerWatn Wets for low memo Tarng. V2.0. S-E-O MovePonter Moves pointer to gven locator S-E-D MoveWindow Move wndow to gven ocaton. SEO MunchingSq Uuncrtng Sc.ares haa. S-E-D PteTast ExrrpiesrowstertoseefffisisaPAL macrtne. S-EO Sc Generates random acenery. SEO T*469S TeU695 printer dnver W90.aPf Exar t of Oui-payfreK! Aaeer. ,pc«» to dsk 41. SEO WarpText Fast text rendr-.ng roulne*. SEO Yeff Exarrpie FF raeoe'. SEO Zoo A Se artr ver «e 'arc'. V1 42A EO FfriFirtF.I* H («ee Fred
Rsn 83; Rad Fin De ha* been removed dj* to copynght problems FradFiahPak II (replace*Red FshBC) O-Mtster Dwcrjogue proyam, VVOaEO Fxciiey Sterewa'afuncton key ad tor, VI .01, EO UFFOemo Oamoof UooF h*Fkfdraba*e program SceenShit Sna«e ArtoErgurer DrroLton
f. 'KfiL'lIMg Am.Gazer CerdFie Conman liandeVmom NawDeros Orelo
RrTax: F OrvGen Ra-'Bencr StertCut ShowPrnt Szrer* Tmw Adust
aceer poaton like Rete-ences.
SEO Bourcng sqixgg ire* demo. SEO iceer a-mpcon teOuenv rproverer: SEO Ds&ay Hack SEO (rapacetFtedFeh W) Mghtsky vewer of 1573 star* set dxte.
Ime.day. EO AmgaBa9ccard4le«k dyed EO Corsoe hancter replacement gives Ii.ne edtrg and rtst)7to moit prog*, vQ.98.EO Sght uooate to dsk 76 Mandebrot program. EO R»acere-ti *r mas and boxes oeros bit te e tess CPU frme. EO GamecfOtoefc. EO Dxcxays text'teswto gadgets kxvt. IFF dicpLay. Vl.2, EO Auto r.sac pnntar Crvar ganarttor, v22b.
EO Cyoes caO's of Workoerich beckcrop or tat EO Maxes sngle-key shoouts tor entering commonly typed CU commands, as net as aiitom macros E-D 0* «y! Rv3 prints FF pci N of an BiZBt, andco-rtojiiprnter outputsty*ea v2.0 EO Gfipra ctemjt, v1.7 0. EO Sr at Wortoench tmer coxts pm and V moxite, EO Too:* bovsroncstoat amemoyector.
Menoydsassr-ber, ASCII chart and cacJato*. E To Be Corotj d___ ligfliriatai To the bast of ou' knowkedge. Toe material! In ns library are freely d«tobutab e. Trts r.etnstoey were ether pubefy posted and placed in the Ruble Doman by their Author, or they nave retmctons pubitfied in bar 'e* to vevch we have ad-ared If you become aware o'«y wo aton oftoete.toor's wrva*. Pease contact us by m«L Oops. ., Corrections!
Last month's review of Microbotics' Starboard-2 (AC V 2.9, p. 40) stated that the Starboard-2 "does not adhere to the Zorro standard."
Starboard-2 does, in fact (and always has), use the Zorro standard.
We apologize for any inconvenience caused by our error. -AC- TO Order Public Domain Software.
Please use the form on page 106.
For PDS orders, Please use form on page 106 Expansion for the y?AM Amiga 1000 Computer® d
• Semi kit (no soldering) Board comes in a 4" x 8.5" case that
connects externally to the BUS expansion port on the right side
of the Amiga. The Jumbo Ram board contains all control
circuitry chips, but no RAM. Add 16 41256-15 RAM chips for 1 2
megabyte. Add 32 41256-15 RAM chips for 1 megabyte.
• Software auto-installs for 1.1 or 1.2, disk provided.
(Will not auto-install unless you tell it to through software. If your other software doesn't support extra memory, you can disable the board, through software thus saving you from having to remove the board each time you run that software.)
• No wait states, fast memory will not slow operating system.
• Pass through for stacking memory boards available soon.
Jumbo Ram board enhances VIP Professional, Draw', Digi View, Animator, Lattice and many others.
Ram chips available at prevailing prices. 6 month warranty replacement.
Jumbo Ram $ 199.95. S & H $ 3.50 Dealer Prices Available Amiga is a registered trademark of Commodore Electronics AMIGA SCHEMATICS For the Amiga 1000® Computer Investigate: RAM Expansion, Auto Boot ROM Mods, Disk drive Interfaces, Additional Ports, DMA Expansions, Video Enhancements, Etc. Schematics included for:
• RAM ROM Board
• Power Supply
• Mouse
• Expansion RAM
• Keyboard
• Physical Layout of CPU i Dealer Prices Available $ 24.95
includes shipping Cardinal Software M ST 14840 Build America
Dr. w m Woodbridge, VA 22191 Info: (703) 491-6494 Order Toll
Free: 800 762-5645 Index of Advertisers Absoft 37 Aegis
Development 98 AiohaFonts 33 Ami Expo 25 Aminetics 92 Applied
Visions Cl I Byte by Byte CIV Cardinal Software 112 Central
Coast Software 70 Comp-U-Save 74 Computer Visual Services 14
Computerware 77 Computer Mart 91 Conflict Recreations Inc. 87
Creative Solutions 72 D-Five Associates 96 Syndesis 29 Fuller
Computer Systems 78 Gimpel Software 101 Hash Enterprises 79
Hilton Android 85 Hugh's Software Ranch 93 HypcrTek Silicon
Springs 84 Interactive MicroSystems 100 Inter Active Softworks
90 KJ Computers 66 Kent Engineering & Design 76 Kline-Tronics
80 Lattice 7 Megatronics 43 Metadigm 4 Michigan Software 68
Microbotics 9,13 Microillusions cm MicroSearch 27 MicroSmiths,
Inc. 40 NewTek 1 Ncwwave Software 61 Peacock Systems 46 Phase 4
Distributors 95 Pheonix Electronics 30 Proloific Inc. 17
Prospect Software 60 PVS Publishing 62 Sedona Software 58
Slipped Disk 81 Software Supermarket 71 Software Terminal 2
Speech Systems 53 SunRize Industries 50 T'sMe 87 TD1 Software
69 The Memory Location 82 The Other Guys 19,21 TRU-IMAGE 4
Westcom Industries 94 Everything you ever wanted HmOfcmU t0
know about the game PL&nEZATiUm For The Serious Student of
Astronomy For the serious student of astronomy, PLANETARIUM'S
features include over 9,000 stars down to the 7th magnitude,
ail hemispheric and airborne views, latest NASA stellar and
planetary ephemerides, Skies from 9999B.C. to 9999AD.,
programmable to incorporate new discoveries, accurate celestial
representations, and optionally displayed names and patterns of
constellations. PLANETARIUM, an astronomical delight, get yours
? I - - Tl a of Blackjack. For the novice ?MICR0-V1CE SERIES? ,earning me game_ or lhe pro polishing skills, Blackjack Academy offers both high powered instruction and realistic game play. Develop your skills, and have fun playing Blackjack with Blackjack Academy. Now available at your local software dealer!
|| OTHER PRODUCTS P j FROM MICROILLUSIONS W 'THE FAERY TALE I adventure* w I HOTTEST game for the Amiga!, soon be Pleased in C64 J28. A must , f game for every user! J j 'ROMANTICENCOUNTERS i I ATTHEDOMEJ A true to life adult experience for men A or women.
• discovery " A tW %',*a data J r A 7
Science Math Geography Spelling U J
Language History Tnvia Social Studies.
' ONE TO ONE SERIES ARCADE GAMES: Galactic Invasions!" t jf Fir?Power!"and Turbo'*Arcade titles I I now available! ¦ I I ese Pr°ducts are now available, or are U being developed for the Amiga, and will , soon be available in other formats Aj £-64 128, IBM PC, Apple . M 17408 Chatsworth St, Granada Hills, CA 91344, inside CA 818 360-3715 • oulskfe CA800 S22-2041 - FAX ROME WASN'T BUILT IN A DAY, UNTIL NOW Create your own universe with SCULPT 3-Dru SCULPT 3-D brings the power of 3 dimensional solid modeling and ray tracing to the Amiga. Imagine an image: choose a color, a shape, a
texture. Spin it, rotate it, extrude it into the third dimension. Pick a camera lens, set your lights, and let SCULPT 3- D create a three dimensional picture complete with shadows, reflections, and smooth shading. All in 4096 colors with true edge to edge overscan video. Easily! Automatically! Change your mind? Change the colors, textures, camera or lights in seconds and create a new image. The only limits are the boundaries of your imagination.
"I haven't had this much fun with a program since Deluxe Paint if." John Foust of Amazing Computing.
"Performance previously only available on mini and mainframe computers." Info Magazine.
Now animate your universe v ith ANIMATE 3-D TM Enter the fourth dimension, time. Choreograph the free flowing arid simultaneous movement of objects, lights and camera through space and time. Details of of jeer rotation, camera movements. Timing and action are controlled in an easy tc use graphical interface or through a simple script language.
Individual objects can be linked to orchestrate complex hier- archial movements that simulate live action. Quick check wireframe playback preview s your final production: storable as a compressed animation file playable from RAM, or recorded on videotape. Additional output options include single frame VCR control or image rendering to a frame buffer card. Animations can incorporate either solid modeling or ray tracing. ANIMATE 3-D is quite simply the most powerful and easy to use animation program available for the Amiga.
Expand your universe with the BYTE B 0X7U Your Amiga 500 deserves the best you can give it. More memory for more powerful applications, faster performance, better graphics, and RAM disk storage. It deserves a memory expansion system that lets you add additional memory as you need it. In easy to install and easy to afford increments. The included memory verify software provides a visual check whenever you add additional RAM. The BYTE BOX is available in a variety of configurations from OMBytes to 2MBytes of RAM.
Fully tested and ready to use Zero wait state design ¦ Low profile case
• Memory check software
• Easy to install
• Fully Auto-Ccnfigure
• Fast memofy that's truly fast
• Has its own power supply Vt* BYTEbu BYTE.
M»rO«4TIO* Austin, TX 78759 (512) 343-4357 9442 Capital of Texas Highway North Suite 150 Aboretum Plaza II SCULPT 3-D, ANIMATE 3-D, and BYTE BOX are trademarks of Byte by Byte Corporation.
Amiga is a trademark of Commodore-Amiga, Inc. Deluxe Paint II is a trademark of Electron c Arts.
1 Select drawer and open file.
PROCEDURE Open-File ERASE IF FILENAME!) O " USE ENDIF Dname - Dname+DU?CHAR(RANK (' 0,30) Fnarr.e » Fnarrse+DUPCHAR(RANK (' '1,26) Canadian Dealers: We now ship direct from Vancouver B.C. Call us for details. "At MicroSearch, we listen to our customers...carefully." PostScript is a reg, TM ot Adobe Systems Inc., WordPerfect is a reg. TM of WordPerfect Corp., HP LaserJet+ is a reg. TM of Hewlett-Packard Corp. Apple is a reg. TM of Apple Computer Corp. 2 Each line starts with a two byte descriptor. The first byte names the length of the line in bytes, including descriptor 3 Elaborate search
routine allows editing of transactions according to your specific guidelines.
• Automatic check printing.
• Automatic Account Balancing.
• Colorful graphic reports Illustrating actual versus budgeted
• Over 50 reports from which to choose.
Let Money Mentor'" put your finances on the right track... FAST!