FacebookTwitterGoogle Bookmarks

Any Amiga, Easy to Operate Dozens of Other Features GAULEO to DISTRr'lT fiumiN Upgrade Available Acclaimed within the Amiga community and beyond: 1988 Chicago CES Most Innovative Educational Program 1939 Amazin Computing's Best Educational Product "The display attests to the advanced color capabilities of the Amiga. Thousands of tiny stars almost twinkle, and Mars glares bright red. Galileo (Distant Suns) is fun, in addition to being powerful and visually stunning." Skv and Telescone Own the universe for .95 Ask your Amiga dealer for J1sTR11T fiunsl" or call: SOFTWARE 2341 Ganador Court, San Luis Obispo CA 93401 (805) 54 5-8515 Circle 121 an Reader Service card. 96 Amazing Computing V4.11 1989 flmt4{!CAMIGA Index of Advertisers Need more information? Please use the Reader Service Card w contact those advertisers who have sparked your interest. Advertisers want to hear from you. This is the best way they have of determining the Amiga community's interests and needs. Take a moment and contact the companies with products you want to know more about. And, if you wish to contact an Advertiser directly, please tell them you saw their advertisement in Amazing Computing For The Commodore  Amiga

Click image to download PDF

Document sans nom Original AMI&A* Afnntblr Jlexout ee , '.Volume.4 Jvuinbejf II ,IJ5-$ 3-95 Cana&i' this Supra Control] ir A590 Hard Pit Plus acquisition Boaram oj ecUAMIGA ACDA' COMPUTING" Yzmr OrigM sU AMSGA* MamSdnSy Mvamumsa S !;m w arc I'xpLinsit n Ami X-10 Software 31 Roomers 60 by The Bandito The Bandito predicts a rough Christmas ahead for the entertainment software STARSHIPS 2050 49 ints by Mike Morrison New Products and Other Neat Stuff 63 by Elizabeth G. Fedorzyn Liz takes a look at Falcon Mission Disk.
Mac-2-DOS and PIC-MAGIC.
By Mike Morrison Software to program the X-10 Home Control Interface with your Amiga.
Spirit Technology's HDA-506 33 by Chuck Randoms Chuck checks out Spirit Technology's new HDA-506 interface.
Supra Controller 34 by Jon A. Boulle An indepth review of the Supra Controller.
Commodore A590 Hard Drive Plus 41 by Pent! Costa An Amiga hard-disk controller complete with the hard disk UPS Tests and Reviews 43 by Steve Bender Part III of testing UPS units, Bored with Boards? 47 by Lonnie Watson Read about ACDA Corporation's foray into the world of data acquisition.
Learning the Hard Way 50 by Phil Saunders The frustrations of upgrading your A1000.
New 3D Clip Art from Polar Arts Software.
Imms Snapshot 15 by R. Brad Andrews Gauntlet II. Deja Vu II, and Prison are just of few of the games reviewed this month.
The Amiga Hardware Interface 28 by John Jovine Learn to further utilize and enhance your Amiga's abilities.
The Command Line 53 by Rich Falconburg Examine the features in the AmigaDOS 1.3 Enhancer software package.
Video Schmideo 66 by Barry Solomon AC's video editor takes a look at Genlocks.
Bug Bytes 69 by Job n Steiner After two years of battling the "bugs”, John is still going strong.
PD Serendipity 75 by Mike Morrison A quick look at Fred Fish Disks 23T - 250.
. 1 motel room scene in Icom Simulation’s Deja it II reviewed in Snapshot.
C Notes from the C Group 91
* CONTENTS • by Stephen Kemp Creating your own libraries in C.
Proyrtimmino APE & the Amiga, Part II 11 by Henry Upper!
1 lenry keeps his promise and discusses how to write a program in API.. Multitasking in Fortran 93 by Jim locker Working around the difficulties of Fortran on the Amiga.
Depanmenp Spritz 9 by H. Shawms Mortier A new graphics program from the author of the FxprcssPaint series.
Populous 24 by Miguel Mulct Have yon iw dreamt of reaching heights beyond the world of mere mortal' Then Populous is the game for vou.
BattleHawks 1942 26 by Phil Saunders Help decide the outcome of World War 11 in the Pacific with Lttcasi'ilm Games' Battle! Law ks 1912.
FastPixf) 19 by Scott Stein man A faster pixel-drawing routine for the Aztec C compiler.
64 Colors in AmigaBASIC 72 by Bryan Galley Bryan demonstrates how to display 61 colors on vour Amiga screen.
Fast Fractals 81 by Hugo M. H. I.yppens Generate Mandelbrot Fractals at lightning speed.
From the Managing Editor 4 Feedback Forum 6 Index of Advertisers 96 Public Domain Software Catalog 109 War In Middle Earth 56 by Rich J. Grace You can now be a part of
J. R.K. Tolkien's epic trilogy.
We Lord of the Kiiws Robert J. Hicks Doris Gamble Traci Desmarais Donna Viveiros Virginia Terry Hicks Robert Gamble Acft Pics "" Suggested Retail $ 49.95 Managing Editor: Associate Editor: Hardware Editor: Technical Editor: Music & Sound Editor: Video Editor: Copy Editor: Copy Editor: Copy Editor: Copy Editor; Art Director: Photographer: Illustrator: Production Manager: Map Pics - World*01 Suggested Retail $ 59.95 Heraldic Pics'01 Suggested Retail $ 34.95 China Pics Suggested Retail $ 34.95 Christmas Pics tm Suggested Retail $ 34.95 Bird Pics Suggested Retail S29.95 Deluxe Pain; II is a trademar-;
of Electronic Arts: Amiga and Amiga- Dos are trademarks o( Commodore Amiga, Quality Clips for Your Quality Art!
All packages require AmigaDos Vt .2 or V1.3, a minimum of 512K of memory and a paint package.
These image-packed screens are in 16- and 32- coior IFF format for use with paint packages such as Deluxe Paint II on an Amiga
500. 1000 or 2000.
To order, see your dealer or contact : Tangent 27(1 PO Box 38587-AI Denver, CO 80238 (3031322-1262 Amazing Computing1" (ISSN 0886-9480) is published monthly by PiM Publications, inc., Currant Road, P.O. Box 869, Fail River, MA 02722-0869.
Subscriptions in the U.S., 12 issues for $ 28.00; in CanadaS Mexico surface, $ 36.00; loreign surface lor $ 4100.
Second-Class Postage paid a! Fall River, MA 02722 and additional mailing offices.
POSTMASTER: Send address changes lo PiM Publications Inc.,
P. O. Box 869, Fall River, MA 02722-0869. Printed in the U.S.A.
Copyright© Oct. 1989 by PiM Publications, Inc. All rights
First Class or Air Mail rates available upon request. PiM Publications, Inc. maintains the right to refuse any advertising.
Pirn Publications Inc. is not obligated to return unsolicited materials.
All requested returns must be received with a Sell Addressed Stamped Mailer, Send artide submissions in both manuscript and disk forrrst with your name, address, telephone, and Social Security Number on each to the Associate Editor. Requests tor Author's Guides should be directed lo the address listed above.
ADVERTISING SALES Advertising: Jannine Irizarry Special Assignment: Barry Solomon Marketing Assistant: Melissa J. Bernier 1-508-678-4200 FAX 1-508-675-6002 Amazing Computing For The Commodore AMIGA'' ADMINISTRATION Joyce Hicks Don Hicks Elizabelh Fedorzyn Ernest P. Viveiros Sr.
J. Michael Morrison Richard Rae Barry S. Solomon Aimee B. Abren
Derek J. Perry Karen Donnelly-Solomon Troy Thomas William
Fries Paul Michael Brian Fox Donna M. Garant SPECIAL THANKS
TO: Buddy Terrell & Byrd Press Bob at Riverside Art, Ltd.
Swansea One Hour Photo Pride Offset, Warwick. Rl Mach 1 Photo International Coordinator: Marie A. Raymond Marketing Manager: Ernest P. Viveiros Sr.
Publisher: Assistant Publisher: Circulation Manager: Asst. Circulation: Asst. Circulation: Corporate Trainer: Traffic Manager: EDITORIAL AMIGA™ is a registered trademark of Commodore-Araica, Inc. Circle 153 on Reader Service card.
Amazing Dealers tittU GAG C-rai Cv.-n Dtrty Are*. Eeerore dun*j Gedif Age« Otey Th* Ccrpuiir ?*» AxTcngc Hkajpro, irt WwdMiy R1 Lii; GstCipester Otey A&tiDttSySe-a Krtte* Lac&s SJwi Vr»* Ajot j 5oo*Ste?
TxciOosa Lecaxnlnd Gat Tarty Uxt-un Bapt $ Compute Uidssn LiemyBooi 3«y Mo I Pteo A Compute Shop Mr3jcm*-j Unr rtctlx tonk
* JKB Id-JKTW Somrgrjri On* B|*,a O-lte tui
* H| CompJw traj* Prxmi Compute Ca?« Njrwch tuCcmpulirHj armrgnan
Sutwan C.ty &*v UftMftkJ Compute Sydim kbti* SoftmKnyhn
£«tH*florS AP.i-r-n Txtrn CompUa?
R*xtfiWrdf*ffl Cc.-mxto'B CcneecSon ShorwacO DiVclu'Coij-.tn Mertl-jm FonSmsh Progra-u Wuhngon Co Mcra Shop Lille Reck WsrtSHtm Willing an Atjotii Gea-waT Bwrji'l Tueson CasseVdeo Newsrt Books B-oCtetUd Tixson NemorkNcirtKid NnbK Boo*sB; Temp* Ssaa Bnr Ch*dSoA«*re Ppi-yi A A Compute?
JK**mrie Comsvte Ixny. T-«u Timpt Am Comp Compute Caw QnMO Ikrgste.iBooiaMt SnVu Booixep C«L*tete noun AnpxteDpte Tucsorj Bootex Un TiyTiehtt F*ieoni soouta; CktnS Te.Sr-n amxt
N. P*tn Blich J £ 5c*!*w Ad SysUmi Hiywo-J Ctudtl Werutid V«B«*£h
Adif t-Serawnil FetteCry Coy tewuu.d Uafepra A-tean Mips A
&eo*s Lsd E-dttwsoO CermMMCotre.'y int FrwUi Put A?*3aN«wsa.d
A-_»ai Compute Bar PimEBi AtrflET 3 Dttor.SoiQ SanuCiH
CerputeBiu frknoon SiiRifid Csrp-WLmaje Iter.
RiOuiCtc* Si'Digs Cc ro ute Lire he Psrinui Pm 3ti A9f*,s FiTda Compute Raon Ftainrhia 3u n Pic« Cons Prod, Ate*n Compute 5p«c*S*i UchCur-n 3oo te.d UcyrvJ* Compjtei • Veac Cto. Ch Fihn SlEh 3ooraur Complin «IVi W irurtY StUri'b CapteiBc Stvj ertixi SrFttxpco Ccnputei Pi* S Sffifi 3 W CompjEdj C-scw Ep tet Ik?
CAL-’ich aWBtei r’iUStd Eftrftr. Co-pu*? Be.
TtMtesii CidyConftar Efc 5m its Em 7*-?.
CtSrtitai 3«tF»vcaca TcrcUEcctScn Gunrtria CmeAMfMws Lrs Argra Oer-fiod IU-.
Ctetrb !n Boccurt San Mi:co Gut Ceos Conpuar Eufnarga Pi-i-iCfp Certuy Compute Sysatms Jot't Nate Id, Mwn CmadSocKS LaAngen Ifef.ir F*?igft Ixl-a C 7JSd&«*3 In Arjeej Mart TmnSncM Shop Laic Ad ConrnodtftU-d AtiiSrt Mcra Comp Jit Can*r L*-y Comnptech- NtxmfCOy NtaAgi bcmi Cnwiltr ConputeATc Pic Ad New Aja Ekegna Si. Rftnsufs Compute Lnrary Boons Su-ryvM PCCdteson ConGaM-a Compute Lie-KT Smjaw rsrjri.n 3?* Cimv Compute Lcncy SrsiCtei ProgimSs?
PnLu H* Compute Woe*. «.
$ *i Bemoan} P%p«2 Nmn l BoM Ft LkXtdi* Co-p-JteC-jet C-xu v su PX* Don*.-! UUon Si*tsou Compute Qj IS SteUimO ScTwiCer CungiPirt Compute tistfl ScettViby Sury 1A Sunrua. Inc. Sunraa Compute Shnoa* San rrancacs SuTsrvaSdl**-* FI Uudarodi Compute Sposrum Bui-pn ThaOpantbw Mert hArd Co.TprJte Tre Cr.ua Ha Gpyg?
ComprefsPhs Grow coy AnpeiSyiWn Nortnas Co-onei Newssund tXcimOs BfJ Ent*pr«l Roswl ComBoo rs Ccvina Brarunoy Adru C-Titve Conpute SysU ms El Ci.iom CivdmiJ Conpue?
Oaten Vfcso-v.b Mcr? Oerter Mi'iltU MinWa DiAnaSocAiANeM Tomint* Monty Sedte?
Cokrta CbhuVihrwi Agency OkUad OiteflBoolvkc AbrU DsCoal CompUer Suioi Lt LorgBaioh PancmJ Cerp user Lchanga Lte«i ECX CompuurCo IVWCW Schwm Cf Saimnan SeirrE EsprkCompuaut SarciRou Schwt-f Soxnre.
SntnS tx-ja J« n Encntat A'HXl FAArwieas SanFmaco haaii FiSr Computars • SeT»n Rancho Cua.’tega Ak~ Compute? A Exctnc?
Ana KidnsWiyNwre Sxctr.
Csmpufyxa hcreLXi
- br-TTBte. ScTrede- A Yajx. In 3tek*l«y Daa-One Compuar Can*
HoncAAi Hon* CoTipttrp Cew Comad Jl C Repo Am Hsm Cempsirg C*w
UlYalry kin"o Hen* Ctmipiirg C*rst* £*il**teo A B.1 Corpupr A
V4fO Nampa Wetefsna Sjryrw r no?
M l Ptricdtil 0*t S*n 6ego AuteVuiReq C’iCiJ) t-tmnacrteTnKr* SruAm &kq a Bjro*. He Njppmlr
• CJCompiA-i GramuHfa Co~c -jtf SoH«? Cenmoon
M. n.X L A Ititer V'MCt Camp Arg»m Ute Uw h BSSrBo*!
Pat*t* Oaepaamc Yw-O- Hb LTC Corsutes SraAu DgulWare Napanr* l»enEwxs*$ Berteby OgtfWoric Axbon L|«n Ersrpraes Bertery DCS Carpi* Ccro* Sin Ucn~vr SarLxra rD ScFm? A Cup?
SoormgCM Mcs? Tecfroc w UrtH Keep h Put Corpuan &»’W tMrt UsttiSnsmi AiTM tomalfcCi, CerCrgo Aoetiwitei Cxajs ho'.’nape 'KWHifTc Nortfnjjt KW 1A trttvo J Oted Part Op Amp 7kft 3im*j In Anyt'rt KlWlI Btrtinoj SchEidufg Pnitmted SinDofO MtwlTpah; Channpagn PnnYwrtejerte San Dejo fctaire.
0-dTipig.n Prtnteihe.
Pro Ate Mcmoiy tipmuon Bvprwpai P'jtGKtmvi VorfiHgMrd?
UcrtAgi OlWwm RARScfMn CfiiaVu Men td EnayrtM rc Chciflo Aeg*crrs Car puur Cv Ire Rojecw Mcro7*chSoiAora Aurx* SOSCompjteJ Loa AngtM MooTn NmuiM Senywi ‘e« Irt Sna Rrj RhgSeftte?
G*r«ua SrfmCtfi- AmMn SdtrttC.y BeVia &r«n v» Paukd Eut aa-s Pla C-hcaga Crteag: StfAtFrp SartaRxa 5dta« PL? Rt« HnnarPa,?
ScAtwfc* FrS Vite]o Satei-ePua Wwang SdHnriPUs CorxHegFa 7 a Mcmoy Eipifaen Bkjomngan SeTw** SoL'JOrs PS* L Certo Unpua Compute Slirtrfl Stacy It te«a Winn Rua FRANCO fieri TtchnKrwwsSifvc* Scum Pittdpm HrfiT.i Thi Bootenth Sififmxato Boo Hard krbanopia ThrtA knui t»o« CnJaVoU BirMtComptiwCv.
South Bird Tmnr Books Chico Cd Com Ire.
Ptokamo Toww Books CirxHi Compute Comer FlWaym TonrrBooa Concord Comp tier Comer Mi'or Tj«« Bocks UvttnVti Compuar 'top* Inc. Moji- C.y T 3»n fsross Sicrtmens CFRJIflc.
Hlirksokj Tj**Bsoi3 SifUite: kdaniNte?
Kdteuea ¦Jrrvi't* 'CTte
- oVkxx Us?s Comacar Ca-te ? He niirjpjt* YrujeWn* SnDago
Png-a-Tnta Go ¦Am W*-*r triyrpiteg SmDage
- tail Ecutp-wrl Co.
Rymoun WctCor-FSteCn-aJ trta TvaBodComtr Bwnngwi WritesCrae 9*r*«y Th* Cwpj* Room ol Mrmyi* Mrmvk Wirtd oOci A tim Wynd Yoni Com; in WteLaticsa CeJp-xH" Km Compute Can* J-ill-JiO-?
AimApvpiurti Kjvt E» CUOcJ Cornsutes Caoiaj Sprfpi Compute Saae.-B A F»ct?
Oil Mom Compute Dscsjt Onvtr CcmpdnA M u Oil Moran Compute Rl«SJ Biiior Granni Core jb?
Gei More Compute Rao"' AfVl ScT 5ci.tr A-w Men Compute Wod Fof Cobra iiza.
McnWxd Ukmod Am Baegarx Caertus?
Wcm ripsr Conaj*?
Cccndc Sprrgj Srtranw M*wri npar SeFwii j Btcma Cokradg Sgnr MtrjlAdj H»n Sai Cart-y Concur?
CoteKE Springs U(MP Carpi*?
Ui-rate- Covr i«=ri Crw- 5o--*-tCr, Cu-l-inc CuwUnJ *?
Wismsir Mwm WmmrHte ScTwr* Cly CuwVd ?*?
‘ymi-fi jefm tr’i-rji o' AS Wcna Arm Lit Cvt Sin HT!« Ange DuUHH Compute .Sima Zc-p.te ne Xngbn BiufHtn Drty Ccmp Jti Mini ‘rc foHm Csnp Je A Sefiwt Co-roaem Pi-WrJt rjpr-.Sevttt rown
t) rreE»c&onc» Hjryte- rlnlcy Cook* Lsumnk ?iteidy Comp.ten
Parnvd* Hi«*ay Coou U-Jhik Amazing Computing™ i Crown Books,
Software Etc., selected WaldenBooks Stores, and Walden's
Software Store locations.
The following are Amazing Dealers, dedicated to supporting the Commodore- Amiga™. Tl Amiga™. If 1-508-678-4200 nr resource for information on the would like lo become one, call.
R**Uy Wad Co-o.ii?
Lfihgar 3?.dn Min Csmpute?
Scr eefi Campuur Sf»-m LfEngar Ct-.-aje Beewrws The Compute La?
LoiSrue Cta? Wodwdc 1 i _ri J*J CiaSy'jCorrsuteCe.
Booqtar NwrOdsm SchwafeCjy Cry Neat ad BxsnRc- e SyCa.-s Pi* 4 St LsuS Corp*j» Tne Srwipcm Sjrars Pis UiiiCa 'uewn Mttam
• itltu MommBjvnru lA'crran Ueam Gtueia E Bkvstccs SoTwi Cart*
irt*n«mi Mean My Com Dip MonSetm Latitea ’fritflj Tim Baa* 9wl
Sdel Compute Hcua Ut&A CsmpuiwWoid Camp ute Bam Camuraoiia
Ntfineeeufl Compute HinM On Computing Wests rock Tcwar Racodi
$ fV* ScV «.-o BeJiS ffewHj.m sh-a UtYJd Oirtmueh Bookntort
Bjmd7r**irt RockviSe 0u«Y*i!Campj!en CaiConhc.
SntfSphng Spsartcy« Capal Cisoc? Ui ShrrSpnr NffrJynef CfWrgnndPcdyi TswJO* AsOa Km nkdpa van tywia Ktmrgsn Atewfbwn Mere Carpj* Ctete Bitmisf* Batas Synaem r-sfraonai N*w Apl Compute?
Cckgt t-acfwi ErtesfBB r n'nuri Ucrg Senrce* SitTdH FinJy Compute Cari-m Sr*n kMTuiji Rociy-Aa Gadon Stata Sean Stfa*f»eiy Rxrrf* KdstsNenrt w*a*1 Compute Wdayl Mam Courty Satu-e?
P*gam bora Compute Wsai Mcdew $ tnn 3 j:cr.
Compute lira Nonn as dors TM Program. Ssort Cc Weiimsawp.
Tha Program Sts?
HCSCempJer Carte ktnrted UifcntedS tearr he.
LCA Yotj A Compute Cr.
Noncoe Vttjt Compute Coder Manoy Locnon Vwsby Yi&xCtej J5A VtaiK, rc MT»1 Ntt Msac.
OnmTa* Compuw?
Tfteiijy P*W war Compute SySt” Powr VaJay u«i to. M K~rmx NmiyscoB?
Srfjwpi Acnr PigaGxNaaunc Scope Bxvngx RunR iw Scfwa-i CjrrKlon 3«rau haa ve?
ThaBaBucad W*a Narfon A-jgmtor 5tf*mhu Ourcy AttorpLU Tram he Pedce
* Tvcn tuaor Vi' y Mi-n-j- Angj Butera Compute son*.? Book txz Kw
sxt-si-oud' Ckrtnf Pa? Corpuarp "Keren Eoat*tj Vj*s CorrpuSeh
KsXrird Era See Compute Emportn Lin&rfl CompurttCoriK
Lmnu Compute Me hspsrs Dma Accra Lineng Compute Oite Cie*al Compute C*te Datw?
Compute? Tii.
Mt CompXawv* Lr« PtYiwku Qoc*i Brgsr CoteTporay CompLtrg Uthgar NteiAgancy kiEaas Domard Id UcfKpi- Sot win taa GcsiSrtMi?
UcrsWwd Jxcna Wvd Sofwan Compute Shy«* Me*} Word Wed Kv-co PubtkdrS* Men Wad Roseu-ia LteteiYdeo McraWad X’J~tt-£ lath* Compute?
Mem Wad Ssuhgs* MC5, »crjt« Mors Wad StarfrgHeigis Mc-oiVois Crcn«frSQf«m Compute NtMC?
EtfyiDgvSae Fartor, Hcr Compjar rinly CampJn- Uut Carmmtt Secfifaa C*w* New?
£V» Day's- Cokmot* Mrai S*»-Com;-Jo?
Ti i A Sy.i T«ftSur ~-e Zo~t £f S~c;« AjTUtCty Camaogi C ly Ykncouwr tetrjt Sen Tower 5oo*3 Y ta ii Emn us &»g Tffemsr JoeiCMjf 3«ai Ccmputcr ScdamCelr Fw VtVv Pnoui Compaif Uacocr rocfkrrrtri fude
* Aiy‘i'C*TW6'l UcriiCo.mpwan ScrmtnC tf Twr So w»lnc B 'i
Endonor Cotbjst Wcr»a C?*iy Msuntrt E)ec OjZOt d 1H ’jr-xc Su»1
iisa l:o 3so* Poc;e CdfM,S5«P|Cji Sofim&xteTTi-.
Aaa&aua Computm CoTciur I £cf*i?
S’.-der Compute Cinii l*o t Boe* A i*r* jco loci' Cereu a Sian UrtaJCoTcJrt Men CaesarCsfurdu?
Mora C*-«f V.'eitcftil'o Ucrrjttc-i Comp J* Carta L-c Mcrawt Uifc NrwiShop North Cats Programming Nat Juit Sofiwin N« Aflt Soiww Ptptf A In* PC rowtr-BjK. The PpwarCompuanght S**m Comp,-*' CM* Sef rtrt Get* rteritar* Scfiw»iidlto"t StfmCmPxn Sena? ®hoo L Comp.
U;y»d* (Vi-rn ,r.i PrWtasIX 5cc*l ten Came jn Ue-3 Lht Cem jwSin?
Saord Had Stfviri Vdto-Cwp re.
CSSE K’OvrmCi C'mratCs'wn CcuwCo'eort Cst»"S!tk* Id? Swart %r l 1 S--OM Shop UF Paa*r?T«n Rt? Dgi boc Sr i I Wtvvpsr Wi Sri CM Sor-i-», rc SohMfir;* re-Si cm Taeh Becks
• ’tnraiVtfj Aph* O-egi EBE ATOSoPmt CX-nttx W*St*iV4li Ttioda
Fartwkl Kart Whoughby South Tclcds WwiTpWe Tfln tbtfi T&W3 SaV*
tamOMM Crcm* Ms,'ad Mi Ctrxatid JtoWtOknauA OsFJct".
Uiava* MemtAst Swvera Port fUc« Wluuu Liimt Urtnt C opt' SplrVj UiViqu L» Vagai luVipt Wanww Ktete Uemr*:*.
Ynatvd AtewCly Scats Ptera Foflli* South Orange Cn’idePi?
Edndrton PindOKfji 5sj YfCCJrt' Rxkmy EasonTawn Wtfim RxVtorf Caoi-Knots
- c?r, Cry Cc Hi hernia Dry Tju OkkftntOff Lawton
P. G iM AliiCd _s Mtio Srr-1 AUK ten Ccci, Pio}«?
Ktoftrt Ivted Panted Paterd fVted Skim Scfctran Pond'd W*tan Sir* En* Hr-nAapi S-pUnrt EiVw Atari Sifsuh&u?
Rudrg Cow-«Tpjr UwVfrt KrtnjsiSj'JJ- Wj5;njtnfiJ ¦*« '•&?. ?W.
Rurtmgsn Sliwon iieioji Sf vgs Uerrtt Whtef'.ir* NewPili !Wfr-45£r»UB Oli-a AiComattn Amft Ekt-ya Ui EiarsSnok* Shop Cktaoan ScC »« Sout* Chxhan Compute Sin (Yk~»coC G-OJHSer Taoria Ctteei Cocrsrew Chshan Colter I ten Cl pot CctaSteiai Colei BowPiete Coin Sac* :k:« CcW, &ac* Pswn Cobs. Boc* Pic sc Csmex-orSeini-i CompuW lYsti,7h* Compute |jpB» Compute Fsma Compute He ,w Compute WysHy, Int.
Comp lej'jrd CempXtev** Corpui-tr.i Can Carii Ccripts Corvpjsi Cytar, Compter $ ywm CVF Dxi Sjieii OiijPWte.'ite Sj'j Ui j -p C-pu- devzi: Coma *' ttt recrones 20C1 EisUudcw UJMm Broody" NawKy* ?».•?
Cent £*U '*:r.'pcr1 ScnmeaMy N*wY«rt Aum Stax Co-px* Syvan?
Crete Computer CktWwtJ*** Ottepn Sti'SO-Ov l Toiocto WltrmCiM &m iinpin Computer Win Co mg mu Gtrei &j«vert Compute cfcdl Compile?
Poppy Hwt Solteve Go no iBooks Graph*? Comp Jer Cente i LitiirTodd Computet SoUer* McaMdtfe-hc.
NoAh Cartol Dq*i Sjdard Plabuph Cor-pue* San SriateaMjre.
SorwHwhThiWai T A 5x« 1 Cc. Rc Ti?ce Compare*?* Tte Peppy Dil Tnan a Cc-pic?
W*d*f Wirjjei iial Suctxy ChKhan Ham don Cowil B-'iTP&l Tara no T&forto Cvtn iWted PiteMmuTi Wh5y Klngstei Y jterb Witrnsu
• CngSom Csawa Tamo Godexdi Earn*
v. fey HcidM lUwa Tticmt* VyioaPu ’frtrtt Om CtM foigrardl Ctw
Ctm lonpon lAdon Ouwi
h. tnjT KngofPrww LontJIo Nwtoon Una Caivlt Atilufi PtMrjihl
Become An Amazing Dealer TODAY!
&CdU3j’rme Gnm 3co*s«,Thi Gn erT.V.Ul K-U-d f-iwn Hraw Csmpua?
Hu-p*j Coleji Som KtteEeasrei LcNmn?
Lct-an » Lfl-vi-1 Vm t 5ooq LlRtel Lnt’echneiServcM UjJlJPip Ucml ntj SoftuM Cwnoor T*a CoTixsr Fjc* Cin-Tl Afcon Htniontl Inc. SdfrmtNix b~-u Uri Tkhnoog Conpw-jfiilto fa Canfnm *mi Th*W&M Imi WE Corwin At Gc Scftrtn W art* WjotmcAh Sj-to "ia reKTlfco PnenitCompJirr Pmcml Aiyteiid 9)tm PdspnSocuUd Stcio'i Coref Steert Pare SmoMi?Pid Tht StTin PfOcB UtJ W3»(f7t Vfrt'iSgsesJX Zoe; ScTczt ZocSeCm Qj*k Au J rto* he Ckrww-irto E U Prets A Bocki, Int AipteTechrobQ«i tic.
Ltijice irte-ateri Mtflirxra Ortiflkiu*? 2000 Inc. Oult»ti LofCll Inc Stir T tl hlosafutor* Smtvfgar.
GO'S Compute.1 ComeCon DirAte! R Cite-i t, myiT &F*n ristetei Compjfc Dsr-eotet DrprU-CS e,*kS«p CLUCsrpnocn Centra* £ii« Compute Ui;c Compute SkJh PcS Campur Serxn Mirar! 5jm ;% Usr?c*u.i Carpj v McrsSciRh Sefvii Li'iry 5dt««rkTm»i Th» Corpj tr Pjpenerr* ThtComputrSwfii th* f edrilcd Onjyp Tmtf WswiCcmpkrY Utah Arradlo SrCi Uijj.'nei ad G":t Pto*i« iCompkAifi Vemzl RirS Lx.
Viyn Ajmf.5t?|Ca?
Hiuvi Daearte Fifl*K Cd'pArCk-U' Fit j Vtec 1 Cam uor Cm* lOCompav TndSo wn V»0 Comp JP Vrgr*i Iact Sysfma Vi'n~rgr A ? PLL CO-OP Antto; Exuli-ica As m Vaby Cc-p-tri B«,S trt*-dfii«krj o*utt Cem teO«c Compute! • rc Timi) Compute?
Men Aji Computer Son tytaciiSra Omr mmjtOMJ Pat Etac« td Wi Stem i Bra*Jwy Scwj lAcrpwod Compute Ckrttr Cea-wr Mtedna NamPtr.
Mdid Compute Shop Udrc 03 Saftteare. Inc. rerahk U*w Ucrs Compite Lapa* RutonUiSat Tooaaenpi Nam Itormwi Bactahap Rosehie RfxmarBoo*?
Rooms* NortM i B jkrau Cjrtfol Sy?
Wygmrg Sh*nyTrf**( NwYort Reafircn N*w?c*rt*r Lar&ng Srgipaa Ui kruyton StaLon Fvxtette Book Ci rto Roctour HilS Sdt wan A Such SOWA Rouhi&a Computir 5sor* Warr*r jchwin Cr, SctegVi'ay Sip Oik MadsonHeiglTi Scflwn Houm Fairpod Sohaiw Cry Grand Rapdp Scflwan Ink WntePtaini Sohwi-aHouM S flw*n Supa-midd U CdtHcwiga SpeoibtiCo-TipuStr Lvoru SuiTwiSyaara UiMWM Ski ShHt Compxa?
AwA'sar Syrtir* Trajrg NlwYolt Tj Erti'prra Csrtat S-siucCo-aZi?
B-ocAyn Tha Edpi Cc-ncco- Cjo The Compusar Gate Abary T| Ode Confute Sfoppi Ypsart; Ttm MoxWrrti Txiowi-CJ Mnrati Jrxamttecanci JonpaonCay i«uxt Ur-naipta tCtt Computer 3n BasWys Compute Eitarn Wod Umaaco'.?
Idas ComputeCcnf Rsma Co-pu*3.Y Mrcetpars rtijtCrjuart NrwYM Co-piaart.*d. Efyll Wad Compute? Ht Htkak JWSohmra Mapa&w.
• fc-.nCaml-i
i. aekA1*aaSorwv» NcrWad D«G Rabgh Bvoa'I &jrTBv.‘a ilSNmun!
Cammom Shfco'i Cya ASfW*?sad K|m»?nte &Mtte?
Esrta AtSNewttted WraijrvSaan bwdte?
FW&Mlip NawiCartar Cay Svoa?
Mipraw: Peter Nh» Inc. rViPort Sirery Mrmaapats So?afsne'aprceg* Botngasfi Shtet Mmrafi SsHairtCcy
CM. dst Syo? Raat kb?
Urnnrapas SefmnCf, Ffjflcr Fante. Ji $ hid*?
Rxrrk Sytm Cf| Ra*g- Jntet Si 'U Fr*awaTpian 'rt‘nssmSi»-i Sv-en Sara V- 1 Gae-j Sow. *ut h Hocscra Compute AMOCMM1 Firgo VaAanrc.
G. F Camp jar?
Gr»dFp?i WjarS? Compute Sno; CrydiiLaka ScAt«a?HcuM Fargs ktalMSSl The Computer $ 6?
Una NiXrul Ccmpte Cirir O»n5orrgj && Mnv -n 5SSc%n Coumdut Aasoc CcmpteSteYcii $ prrgr*d Bn-Unon CrcmnaL also available in most
B. Dalton Booksellers Dnc'j fidte'SKr Kwttet W:c.*jo Fdi F*iW*t
Sir Anow Arioio Mptq till FenW«h Ski Uh« Cff StVaMCfy CUCec
Uxoul Mer,tal Vi e DA gg Hdl Aiu*dia Fi'u Fi u Lfl dCcmipite Lzn CoTpjemkrt DaAisrti JofnVkmaenn iau«:o-ci rlnSdi &Mnwfl,KSW CtorttdUAlVA Attotstem.Mc tj-i UtUu-te AteJJtePeuailSems Tte A-iga C*?ef i Saated nerw.SSW JprV*moev** Ucn c 0* « Epjpa*l RgnS* Evi'mrsr** fyr:« Sin S Cowtet, A A UtLA) Foukd A Sc*te SsbScb "te A-igt Cita footed Praanp Cartel Edrtff jgl LmS bt'rrjt Ticsm Sin Py Anjtm Sen The Amazing Computing Freely Redistributable Software Library announces the addition of... New Orleans Commodore Klub's inNOCKulation Disk Version 1.5 To help inform Amiga users of the newer Amiga
viruses and provide them with the means to detect and eradicate those pesky little critters!
Files and directories on the inNOCKulation Disk include: Virus_Texts (dir) Various text files from various places (Amicus 24, PeopleLink, and elsewhere!) Describing the Virus(es) and people’s experiences and their recommendations; TVSB “The Virus Strikes Back”: satirical text describing future efforts to rid the universe of the dreaded (silicon) viruses! Interview with the alleged SCA virus author!
WB_VirusCheckers (dir) VirttsX3.2 Runs in the background and checks disks for viruses or non-standard boot blocks whenever they are inserted, (Recognizes several viruses and non-standard boot blocks. Removes virus in memory. Has a built-in “view boot blocks” & other features.)
Sentry' Revision of VirusXl.01 in Lattice C. View Boot Highly active mouse-driven disk and memory virus-checker which allows you to look at the pertinent areas (useful in case you suspect a NEW virus!)
VRTestS.2 Watches memory for viruses; will alert the user and allow their removal if found. Can check & INSTALL disks, etc. CLI_VirusCheckers (dir) A VirusII From The Software Brewery' (W.
German). Disables a virus in memory'.
Cik_Doctor3 Corrects problems with the clock (caused by malignant programs, perhaps not really a “virus”) (A500 & A2000) Guardian J.l Checks for attempts at viral infection at boot! Allows you to continue with a normal hoot (if desired). Includes a small utility program to permanently place the program on a copy of your Kickstart disk.
KillVirus Removes (any?) Virus from memory.
VirusKiller A graphically appealing and user friendly program by TRISTAR.
Boot-Block_Stuff SafeBoot2.2 SafeBoot will allow die user to save custom boot sectors of all your commercial disks and save diem for such an emergency. If a virus somehow manages to trash the hoot sectors of a commercial disk, just run SafeBoot and it will restore the boot sectors, therefore saving your disk!!
Virus_Alert V2.0.1 Yet another anti-virus program with a twist. Once installed on your boot disk a message is displayed just after a warm or cold boot notifying the die user that the disk and memory are virus-free, and forcing a mouse-button press before continuing.
BootBackl Saves and restoies boot-blocks. Runs from CLI only.
Antivirus akaAVBB Includes SEKA assembler source.
Xboot Converts a boot-block into an executable file, so you may use your favorite debugger (Wack, Dis, ...) to study it.
The inNOCKulation disk also includes icons and arc files.
To order the inNOCKulation Amazing computing
r. t j - inNOCKulation disk orders mste, sena: $ 00 po-Box
869 Fall River, MA 02722 C$ 7.00for non-subscribers) How fast
is fast? HardFrame 2000 transfers data at Amiga bus speeds!
It's actually faster than the hard disk mechanism itself! And
• AutoBoots AmigaDOS 1.3 (Price Includes HardFrame Eprom!)
• Directly Boots the NewFast-File System!
(Doesn't Need Old FS!)
• Auto-mounts All Hard Disk Partitions (no Mount List Required!)
• Designed-in,Ultra Strong, Multitasking Performance
• High Quality Metal Frame for Stable, On-Card, Hard Disk
• Power Cabling Directly from Card to Disk
• 50-pin Cable Included seven SCSI HardFYame 2000 The
Super-Speed, DMA, SCSI Hard Disk Interface for the Amiga 2000
more important in the Amiga’s multitasking environment,
HardFrame 2000 has extremely eflicient DMA circuitry to get on
and off the bus in almost no time at all: 280ns to get on;
200ns to get off. And it’s true, dedicated DMA, too!
HardFrame 2000 autoboots and automounts directly into the
AmigaDOS™ 1.3 Fast File System (old file system partitions
are not needed!}. The core of any DMA SCSI interface is in its
SCSI protocol chip and DMA chip. MicroBotics has chosen the
new, high performance Adaptec AIC-6250 SCSI chip, capable of up
to 5 megabytes per second raw transfer speed, and the Signetics
68430 DMA chip running at 12.3 megahertz. Then we added
additional FIFO buffering and enabled 16-bit wide data
transfers for maximum throughput. The sophisticated design of
HardFrame 2000 provides for automatic SCSI arbitration,
selection and reselection. The hardware supports either
synchronous or asynchronous data transfer. HardFrame 2000 can
function as either the SCSI bus initiator or the target and can
reside in a multiple master environment Physically, Hard
Frame 2000 is optimally flexible: the compact, half-size card
comes attached to a full length, plated aluminum frame. The
frame has mount- NCIJV ing holes positioned to accept
standard, 3.5" SCSI hard disk units such as those manufactured
by MiniScribe, Seagate, Rodime, and others (hard disk
mechanisms must be supplied by the user or his dealer as a
separate purchase item). Alternatively, you can cable-connect
to a SCSI drive mounted in your Amiga's disk bay or in an
external chassis. As many as seven hard disks may be connected
to a single HardFrame 1 Supports up to se hard disks of any
size 8-UP! (DIP) FastRAM Another great memory board from
MicroBotics, S-UP! (DIP) is the "brother" of the original
(which uses SIMMs and PopSIMMs to fill its memory space). 8-UP! (DIP) uses conventional 1 megabit RAM chips in standard sockets to provide your Amiga 2000 with 2, 4, 6, or 8 megabytes of autoconfiguring FastRAM! 8-UP! (DIP) is a super efficient CMOS design for Iowpower consumption and high reliability. Suggested list price, $ 239 (0k installed)
2000. There is no size limit on each disk. HardFrame 2000
includes a 50-pin SCSI cable and header connectors for
either 50-pin or 25-pin cable connection. Also included is
a current tap to power frame- mounted drives directly from
the slot itself. HardFrame 2000 comes complete with driver,
installation, and diagnostic software.
Available NOW! Suggested list price, S329 (hard disk not included) Frameless version: S299.00. See your Amiga Dealer.
The HardFrame 2000 photo shows the product with a MiniScribe twenty megabyte hard disk installed- Hard disks are no;included in the purchase price ol HardFrame. Note that if placed in the first slot.
* (The Byte Information Exchange) * | -call 1-800-227-2983 | for
BIX membership information!
HardFrame uses only one slot even with a disk attached.
Great Products Since the Amiga Was Born!
811 Alpha Drive, Suite 335, Richardson, Texas 75081 (214)437-5330 Tell your dealer he can quick-order from MicroBotics directly - no minimum quantity -show him this ad!
"Amiga" is a registered trademark ol Commodore-Amiga. "HardFrame 2000’. “8-UP1’. “PopSimm". Are trademarks ot MicroBotics, Inc. Circle 109 on Redder Service cord.
Dear AC: Saturday, tire 9th of September, 1 received my new copy of Amazing Computing and proceeded to read most of it that evening, including “Roomers”, in which tire ‘Bandito’ makes mention of tire plan to put tlie A500 into the mass market and suggests SEARS as an outlet.
"Well, today the 11th, we received our copy of the Sears 'Wish Book’ and while perusing it, before my son glommed onto it for good, there on page 6l 1 staring me in the face is a picture of, guess what, an Amiga 500.
However, after considering ail the facts I have come to one single conclusion; after all it is 'THE WISH BOOK’, isn't it.
Sincerely, Bob Neer
- Sometimes we wonder if the Bandito is workinga little
hocus-pocus. TheBandito is always Amazing us and our readers!
Thanks, we try to produce a great magazine for the Amiga community. -Ed Dear AC: As a former IBM employee and MS- DOS VAR, I feel that I should add my opinion to the debate over Amiga vs. the business world. I will concentrate on the corporate Fortune 1000 companies as that is my area of experience. It also happens to be the bread and butler for a lot of large computer companies. Let me point out some things about their M.I.S. departments: DOS technology. This is not something that a company takes lightly and therefore it is difficult to switch to another arcliitecture.
The Macintosh found a couple of raw areas but really caught on in large companies because of connectivity (e.g., TOPS networks). Standardization was a key word and die Mac gave users more features without rendering MS-DOS obsolete.
Commodore or third parties have yet to seriously address connectivity!
2) Some large corporations use Pcs (insulting as it may be) as
glorified dumb terminals off mainframe or minicomputers.
Recently, they’ve begun to try to marry the respective capabilities of die machines but currendy this is only useful for transferring data. Commodore and third party developers should make some attempts to improve on this (but then, so should IBM although SAA might help). Amiga developers could take advantage of the Amiga abilities to provide, for example, a 3278 79 terminal that adds a high speed graphic front end with completely independent multiple host sessions. At diis point any productivity improver for mainframes and mini's would have a lot of market potential.
3) Another important stage is compatibility.
My personal philosophy is that if you’re going to ignore dre standard, you’d damn well better be improving on it. The operating system is an improvement but the way common conventions such as (*) pattern matching are ignored (for the simple reason of being different) is inexcusable. Some changes such as this are defensible considering die unique function of the OS, but many more are inexcusable.
This one tiling is enough to turn off your basic computer barely-literate businessperson for whom learning UNIX or MS-DOS was a fluke. On the hardware side, what about that 23 pin video output?
Why not 15 or 25? The benefits of standard ports can be appreciated when purchasing a printer or externa! Modem. Try' finding an inexpensive DB-23 connector or gender ciianger. Commodore was not taking advantage of the established (read inexpensive and available) comer store hardware vendors.
4) My final point is one of the image or class. It may seem
trivial but how a computer is perceived is very important to
the corporate types. Proof is the unusually high number of
relatively slow Macs that are sold. Here in Canada, the
perception problem for Commodore is not as acute as die U.S.
In some markets such as education, iL is still a respected
name. It is however, significandy influenced by U.S. business
and computer press. Slicker packaging, better customer
service, and more business journal advertising is needed from
CBM. A strategy I think would You re never too old to
Scribble! Platinum Edition Scribble! Platinum Edition offers many improvements that make Scribble! The word processor of choice for beginning and experienced users.
Featuring rapid text entry' and scrolling, Scribble! Platinum Edition offers the best of ail worlds: power, speed, easy to use. In no lime at all, you'll be writing memos, letters, or even a book!
Scribble HATU'WM EDITION™ SPELLING CHECKER Platinum Scribble! Shines in this area with a 104,000+ word dictionary with scientific and technical supplements. The Spell-As-You-Type option checks spelling on the fly.
Phonetic spelling, transposed letters, and contractions are no problem for Platinum Seribble! Enter Kusil and castle is suggested, hie finds the and shall 11 'I finds shan’t.
Mociify the user dictionary by adding, editing and deleting words with the user dictionary maintenance program.
THESAURUS Platinum Scribble! Has a 470,000+ word thesaurus, with definitions. As a matter of fact, the wonl right displays 21 groups of synonyms.
MULTIPLE WINDOWS Open up to 4 windows at once. Display your documents in 2. 4, or 8 color windows.
Change the colors to suit your needs. Platinum Scribble! Supports both interlace and non-interlace screens with horizontal and vertical overscan.
CUT AND PASTE Copy, cut and paste text within a single document or from one document to another.
MAIL MERGE Print form letters and mailing labels. Enter information as print time or automatically insert information from any mail merge text file.
IFF GRAPHIC SUPPORT Print IFF graphics with any compatible printer supported by the Commodore Amiga printer drivers.
CLIPBOARD COMPATIBLE Platinum Scribble! Is clipboard compatible with Micro-Systems Software products.
• On-screen bold, italic, and underline, with highlighting for
super arid sub-script. • Support for laser printer font
cartridges • Needs only 512k of memory • Not,-copy protected •
Easy hard drive installation • Free Technical Support for
Registered Users.
Committed to excellence since 1978 12798 Forest Hill Boulevard, Suite 202 West Palm Beach, Florida 33414 McioSysiemsSo.w 407-790-0770 FAX 407-790-1341 Dealers and Distributors Call 1-800-327-8724 See your local dealer for a demonstration.
Scribble! Platinum Edition is a uadeniatk of M inv-Sjjatetns Si iftware, Inc. Amiga is a registered trademark of Commodore Business Machines.
Circle 101 on Reeder Service cord.
Lons Fonts Vol. 1 A collection of seven 3D font sets in the Interchange format. Each set has complete upper lower case letters, punctuation, and numbers! If you're into video or do animations, you need these fonts! $ 29.95 Momentum Check A full featured checkbook management package that makes checkbook management easy. Class codes allow you to track any expense you wish. Use standard reports or create your own custom reports. Reconciliation is so easy! $ 29.95 Momentum Mail An easy-to-use mailing list management program. Why fiddle with 300-page manuals and spend hundreds of dollars when it can
be as easy and affordable as this! $ 29-95 TeleTutor An interactive telecommunications tutorial. Everything about telecommunications in one place! Has a simulated BBS to practice uploading and downloading. $ 29.95 Uzzi Interface A joystick mouse interface with an auto-fire rate of 30 rounds sec!! Switch between auto and transparent mode.
4 ft. Extension cable. Blow your game scores away! $ 34.95 Available at Fine dealers, or order direct Make check or money order payable to: A .Micro Momentum, Inc. (Dealer Inquiries} V- tnvtteri S
P. O. Box 372 Washington Depot, CT 06794
(800) 4 8 7421 u Please add S1.50 for S&11. CO.P.t add additional
52 50. AH products 90 day warranty.
May I suggest that you run a series of anicles on GFA BASIC, probably for at least a year, pointing oul die unique features of GFA. A comparison of commands vs. AmigaBASIC would also be helpful.
If I knew a lot more than I do about this good BASIC, I would offer to write tire article, but unfominateiy I cannot do it.
Sincerely, Stuart Casper Taylorsville, NC
- We have been able to offer our readers quaility AmigaBASIC
articles because of authors like Paul Castonguay, liman Cately,
Robert D Astojoh n Bushakra, Ma rk Aydellotte, and many more.
I'm sure that I have forgotton someone. Tljere are several
people working on GFA -BASIC articles and you should see them
soon.-Ed Dear AC: The article "Fractal Presentation2' September
Issue, was excellent, both informative and humorous. The
author, David Hiestand, writes in a very appealing and
perceptive style. You should offer him a job. Good work,
Amazing. We need more articles like that one. By the way, Dave
forgot to mention drat another way to squeeze more IFF files
onto his disk is to eliminate all the. Info files.
David Hiestand Seattle, WA
- Could it be possible that there are two David Hiestands that
both live in Seattle.
WA? Or could this be the same David Hiestand that actually wrote the 'Fractal Presentation ’ article in AC's V4.9? -Eel Do yoti have a gripe, comment, observation, or complaint?
We want to here from you.
Send it to:
- Fortunately, CBM's President Harry Coppemian, has taken steps
to alleviate some of your concerns. Unlike past CBM presidents
Mr. Coppemian has followed promises with actions. This is a
welcomed change! -Ed Dear AC: Your magazine is by far the best
of the Amiga specifics. I subscribe to 3 or 4, and have seen
several others, so ! Know.
I have especially valued the articles on programming in Amiga BASIC. 1 have been able to develop a number of almost professional looking programs as a result of the techniques gathered from the articles.
I recently purchased GFA BASIC 3.0. as a result of favorable reviews; it has a lot of features that AmigaBASIC lacks.
However, just like AmigaBASIC, GFA has a considerable learning curve. I have had to contact Antic several times already to debug programs in their manual, and to learn how to access libraries and do menus.
P. O. Box 869 Fall River, MA 02722-0869 review by R. Sbamms
Mortier Question: What is a SFRITZ?
1. The name of a WWI German flying ace.
2. A new California wine cooler made from palm leaves and saki.
3. A new graphics program from the author of the ExpressPaint
Although all of these answers may be correct, I’m only going to address the third, which I know is correct. SPRITZ is a new Amiga graphics program written by Stephen Vermeulen. Readers familiar with his ExpressPaint series (especially version.
3. 0) should be very comfortable in the SPRITZ environment.
SPRITZ is adveitised as a beginner's graphics program, something useful to a user before moving “up” to Dpaint or (as PAR hopes) ExpressPaint. To my mind this approach isn’t really a wise way to target tlie Amiga market. Professional paint programs are generally easy to use, thus removing a need for preparatory' software.
But despite the nature of its promotional scheme, SPRITZ is more chan a steppingstone to other graphics programs.
Let’s look at some of the positive and unique tools that SPRITZ has to offer,,.
SPRITZ uses the ARP file requester standard, developed to make disk access easier and faster. There is also an onboard point-and-click module that saves the ARP.Library7 to your WorkBench disk, so that yTou don't have to boot with SPRITZ.
When you first open SPRITZ, a requester pops up and v'aits for you to input your screen size. With enough memory available, SPRITZ can handle die maximum number of colors in any Amiga resolution except HAM. (Personally, I w'Ould like to see a HAM module included in the future.
Hmm... a HAM SPRITZ. Sounds like a strange drink.) SPRITZ will also handle super-bitmapped edit pages and the same “virtual page" sizes diat ExpressPaint 3.0 addresses. You can maneuver around a super-bitmapped screen using SPRITE'S scrolling arrow's.
Like ExpressPaint, SPRITZ has a menu bar at the bottom of the screen which, once accessed, displays specific options in a toolbox. If you’re not comfortable w'ith diis feature in ExpressPaint or feel visually' constrained by' its placement then don’t expect SPRITZ to calm your nerves. If, however, you appreciate (as I do) die ways in which this hierarchical Left: the main drawing screen.
Right: Spritz's simplified palette requester.
Arrangement can be manipulated, then SPRITZ will provide a comfortable interface for you.
If y'ou’re interested in getting a rundown of the normal graphic tools and their arrangements, look up a review of any' version of ExpressPaint. The only difference is diat SPRITZ doesn’t have some of the fancier EFX brush and printing capabilities. Ill note diese specifics as we go along.
After you select the resolution and number of colors you desire, SPRITZ appears in a flash of lightning. Across the top of the screen you’ll see the current color palette. This can be altered either internally or by importing an IFF graphics screen.
SPRITZ resides in memory in a non- threatening fashion, so, provided you have some expansion RAM, you shouldn't have any trouble multitasking. Which brings me to another point: SPRITZ can be “iconized,” meaning diat it can be sec to sleep mode.
When this is done, die only' reminder to you that it is still in the system is a small SPRITZ menu bar sitting on your WorkBench screen. (When dozing, SPRITZ takes even less memory'.) You can “wake it up” with a few' simple dicks of die mouse. This feature is a great multitasking tool that is just starting to used widely in the Amiga environment.
SPRITZ allows you to access any alternate font disks you might have, and also has the capacity to address the Amiga ColorFont standard. Its text function is a bit awkward, in that you can’t type large amounts of text to the screen at one time (80 characters is the maximum). Instead, you must go through a bit-by-bit placement procedure. It must be remembered, however, that SPRITZ is not advertised as a desktop publishing program. It has none of the text-pouring operations that ExpressPaint boasts.
Several kinds of files may be accessed with SPRITZ: “cuts” (bmshes), pictures, and icons. Like ExpressPaint, SPRITZ allows you to load many cuts into the system at once, but make sure they all use the same palette. Pictures are standard IFF file images in non-HAM.
As far as icon-editing is concerned, SPRITZ can load, edit, and save Workbench icons, These can be attached to files with die Sit utility provided. SPRITZ allows you to design and implement all three types of Amiga icons: Complement Highlighted (icon changes color when clicked), Backfilled Complemented (icon changes color without the rectangular outline), and Alternate Imaged (the icon image changes to an altogether different image). Wouldn’t it be nice to include animated icon construction with some technique like the Dpaint III animation brushes in a future upgrade?
The tide bar can be toggled off for video use. But unlike in other programs, this doesn’t allow you to access the menus at the top. This restriction may take a few minutes to get used to, The menu bars and the mouse pointer can also be toggled.
Another convention in both SPRTTZ and ExpressPaint is the use of the right mouse button in the “live” drawing area.
When depressed, the right mouse button turns on a zoom pointer in the lower right- hand comer of the screen. This pointer tells you the X- and Y-coordinates of the mouse's position.
ExpressPaint was the first Amiga graphics tool to incorporate multiple UNDOs, and SPRITZ follows in its footsteps. This function is closely wed to your CHIP and FAST RAM availability. It allows you to back up through your work, reversing any drawing procedures that you may have enacted. When die function is activated, it is wise to flush the system clean now and again to free needed memory.
When you don’t need it, you can simply lurn it off.
Both SPRITZ and the latest release of ExpressPaint also include a convention called Smart Link. This allows you to port cuts and palettes from one program to another within a true multitasking environment. BoLh the Client and the Host must support SmartLink in order for it to work.
PAR wishes that more Amiga packages would support this convention, and so do
I. Imagine being able to develop a brush in one Amiga program and
then port it into another multitasking environment. Amiga
users should get together and petition other developers to
incorporate this stan- da rd (which PAR offers to interested
parties at no cost).
My favorite SPRTTZ function which, to me, makes the program worth every penny is Grab Screen. As a reviewer of Amiga articles, I often find myself needing to grab and save screens that include pull-down menus. When you activate the Grab Screen function in SPRITZ.
You have ten seconds to take a snapshot of the screen you want by clicking the front- back gadgets in the upper right-hand corner. Once you’re where you want to be, the screen flashes twice and... Voikt! You’re back in SPRITZ looking at a perfect grab of die screen you selected. The only change I'd like to see in Grab Screen is the addition of a variable time element. At times it can be very difficult to get where you want to go in ten seconds.
Like ExpressPaint. SPRITZ handles cuts (brushes) in a novel fashion, allowing you to create effects that few other paint programs can handle. For example, the program allows you to make Power Borders. By taking any brush and using it to fill in a 9- or 12-part grid, you can automatically render beautiful certificate borders in a flash. The process is a snap, and several samples are included to get you started.
Should you require technical support, an address and telephone number are listed here. Also included are an address and telephone number for those interested in submitting programming utilities and clip art to Glacier Technologies In my opinion, SPRITZ shouldn’t he advertised as a paint program at all, but instead as version 1 of a new: Amiga graphics utility. (Knowing the prolific manner in which Mr. Vermeulen upgrades his creations, I expect that the next upgrade is already in the works- if not finished.) Even though it does appear at first glance to be a minor version of ExpressPaint,
SPRITZ does many things that no other program can do. To use it is to love it. I am sure that iL will find a home in your Amiga graphics library.
ICON MAGIC If SPRJTZ is the child of ExpressPaint, then ICON MAGIC is the child of SPRITZ.
ICON MAGIC builds upon the icon-manipulating module in SPRITZ, just as SPRITZ builds upon the tools of Ex- pressPaint. With ICON MAGIC, you can load and edit any Amiga icon type before saving it again. Palettes can be changed, renderings flipped, and new' attributes drawn. Using all of these capabilities, you can take all of those standard and boring icons and do something creative with them.
Having new: icons on your personal disks can allow for much easier and quicker recognition of their contents.
As in SPRITZ, IFF images can be translated into icons, and vice versa. Also important is that ICON MAGIC is the third piece of software to include the SmartLink convention, allowing all three packages to multitask with each other. Thus, all of the tools in ExpressPaint 3-0 can be used to create truly unique icons. Without question, ICON MAGIC is the necessary third part of the tremendous Vermeulen triumvirate of Amiga graphic tools.
If it's available for the Amiga It's in AC's GUIDE Over 2200 Products from almost 500 Vendors On Sale NOW at your local Amazing Dealer!
Last time, a quick introduction to the computer language, APL, was examined. At that time, a promise was also made to look at how to write a program. Keeping true to the promise, this article will discuss program writting in APL.
When a statement is entered into APL, it is executed immediately, as shown in the last article. The APL user types each statement and ends it with the RETURN key. When the RETURN character is detected, the statement is interpreted into machine code and executed. There is a character that tells APL to stop this immediate execution mode. It is an upside-down delta, (V) known as "del’'. The presence of the del at the beginning of a line is interpreted to mean: "do not execute any statements until another del is detected." Statements are collected, instead of executed. A program is either
being written, or edited, and in either case, the statements are to be collected until the next del is entered. The second del ends die collection mode and returns to the immediate execution mode. If the work “average” is typed: V AVERAGE [11 APL responds as shown. APL makes the determination: “Don’t execute this statement; a program is being edited or written.” If there is an object in the active workspace with the name AVERAGE, then it will be opened for editing (more on editing later). If there is no such object, a new program is being written. A bracketed number becomes a numbered
statement in the program that will be named “AVERAGE.” APL continues, “What is statement number 1?” If the statement which computes the arithmetic average chat was developed in the last installment is used, it would appear as follows: V AVERAGE [11 1 + DATA) + pUflTAV and is a complete program written in APL, The entire program would be read: “stop immediate execution, edit if it exists or define a program named AVERAGE.” Continuing, Line 1 would be read: “Sum reduce the numbers stored at DATA, divide by how many numbers are stored at DATA, end of program, return to immediate execution mode."
Note that the two lines were simply collected as a program and were not executed, i.e., no average was computed, at that time. To use this program, there must be some numbers stored at die variable DATA. All it takes to establish a variable and to set up a set of numbers stored at that variable name is to give to APL a statement such as the following: DATA 6 245753 12 which would be read “data is specified by 2 4 5 7 5 8 12." To call die program, type die name of die program as follows: average
16. 142857143 and APL replies widi die answer.
The program AVERAGE was written using the variable name DATA in the body of the program. By using diis technique, die program always refers to die same storage area, “DATA." By entering a new set of numbers into DATA, the program can be used repeatedly. It may not be convenient to always have die numbers stored at DATA.
Because of die extensive and powerful capabilities of APL, any such restrictions (saying diat “it may not be convenient”) is a "dp-off’ that there is probably a better, more genera!, and more elegant way of writing the program. Indeed there is. If the program is rewritten, it will be more useful without such a restriction. If the program was typed as follows: VAVERAGE X [i; (+ x) + px V a more general program results. The change in line zero (the header of the program) was a space followed by "X”. The variable X becomes a local variable which means it exists only inside die program during the
call to AVERAGE. By this different header, the APL interpreter was told diat data is intended to be supplied each time the program is called. For example, to use this revised program to compute the mean of a set of numbers, type: AVERAGE 2 6-1 7 9 10 12 1 8 6 . 555555556 and APL performs the calculations using the values diat are placed at the temporary storage space “X" inside the program. The X in the header took on the values listed as an “argument” when die program was called.
As might be suspected, the numbers stored at DATA can also be used: X VERA GE DATA
16. 142857143 dius giving the same result as before. By storing
other numbers at different storage names: NUMBERS 4 56 456
2345 3468 233 7648 3345 GIRLS 6 345 532 667 546 645 578 our
averaging program can be used as follows: AVERAGE NUMBERS
2507. 285714 AVERAGE GIRLS S52.1666667 thus showing die use of
die various named storage areas as right arguments when the
program is calied.
The use of die argument requiring local variable “X”, in die header of the program, lias made the program AVERAGE more useful and more general. What about that word “argument" used above? These arguments are familiar, but the term is thought of very often since the use of arguments is so automatic. If said in “madi": 82 + 43 One of the “primitive" operations in mathematics has been used,
i. e., plus, (“+”) with two arguments, 82 as a left argument and
43 as a right argument. The program AVERAGE used only a right
argument and triggers thoughts of another notation in
madiematics: TAN (X) or, tangent of X, meaning: take the
tangent value of the number (argument) of the value
represented by X. APL also allows for the use of two
arguments. For example, a program diat simulates the action of
the plus primitive operation in mathematics can be written.
The header of the program in APL might be: V x PLUS Y HI with
APL’s usual request for line 1, which is typed: [11 x + y V
thus using an APL program to act similar to the + primitive
operation in mathematics. Using the new program: s PLUS 4 12
it appears that a substitute for the “+” sign has been
discovered. If it is a true substitute for traditional madi
notation for “+" die following statement: 2+8 PIUS 4 should
work. One of die advantages of APL is how easy it is to try an
expression to see if it works. The APL as well as the
mathematics can be checked out: 2+8 PIUS 4 12 VALUE ERROR 2 -
E PIUS 4 A is the result. APL said to itself “what was asked
for. Was done, 8 and 4 were submitted as arguments to the
program PLUS, die result was 12 which was displayed (since no
other use for the result was indicated in line [1 ] of die
program), the next operation now appeared for evaluation: 2 +
and diere was no right argument for the operation." Since
there was no value for die right argument, a VALUE ERROR
message was given. The carat appeared on die line below to
indicate where APL found the error.
Obviously, die program must be modified to make it possible to adequately substitute for a "real" mathematical function. APL has a nifty way of handling this requirement. This change is accomplished by a different format of the program header. By setting the program up to produce an “explicit result," die “+” mathematical operation is more fully simulated. While editing will be covered later when the implementation of APL on die AMIGA is the topic of discussion, a system command: ) PLUS gets rid of the old program so it can be replaced. The revised program: V R 4 x PLUS Y [i] .=? X + yV
uses a different header (line 0) which indicates that the program produces an explicit result when it is finished. Line 1 specifies the result within die program, dius making it available so that now die previous statement: 2+8 PIUS 4 14 no longer has the problem of a value error as before. The explicit result (12) from the program PLUS is now left for the next evaluation: 2 + 12 14 which yields the answer 14.
In APL, programs are spoken of as being “functions." Now it is easy to appreciate why. The Aid. Approach uses the mathematical idea of die function in the same way as the mathematicians have always expressed the mathematical operation between arguments.
The extraordinary' simplicity and power of this ability to write a function and have it he consistent and compatible widi ordinary mathematics is one of the secrets of the efficiencies of APL as a productive language. Functions in APL are modular by titeir vety nature and lend themselves to die more recent notion of “structured programming." It is simple to write an APL function, tiy it on all kinds of arguments to test how generalizable it is, then use it as a building block in more complex structures.
Try the program on a vector of numbers: 223 PIUS 678 7 5 :: Well, that worked. Try' another to see if die user defined function will make a difference in the following: Since 1982 i i _ , ¦ „ EHED Order Toll Free TlomputrftbiLitu Order Toll Free £00-558-0003.
- 558-0003 IVS Trumpcard Hard Drive Packages for A2000 Series
Seagate 8T-157N 49 MEG ....519 Da
ST-177N 60 MEG. ___________________749 DEL 8T-277N-1 60 MEG
619 Da 8T-296N 80 MEG .820 DEL
Quantum Pro Drive 40 MEG SCSI Pro Drtvo 6I9DEI 80 MEG SCSI Pro
Dftv-e 869 DEL 100 M EG SC3 Pro Drive ......949 DEL
these Idle Include IVS Trumpcard SCSI hard dm® clrt, cable,
software and FREE delivery In the contiguous USA This Is not
anassemNy Idt I It Is a package.
Hard Drive Cards (A-2000) Seagate 8T-1S7N 49 MEG . 539 DEI ST-177N 60 MEG _______ ______769 DEL Quantum Pro Drive 40 MEG SCSI Pro Drive ... 60 MEG SCSI Pro Drive .... 100 MEG SCSI Pro Drive... 639 DEL 889 DEL 069 DEL INFINFT40 1 ..1199 INFINITdOS * 1299 INFINITdOD * ...1399 Mtequlros lrrffingcarcl niiririjfco o Trumpcard 500 Hard Drive Packages for Amiga 500 Seagate ST-157N-49 Meg ST-177N-60 Meg 579 Delivered 799 Delivered, Quantum Pro Drive 40 Meg SCSI Pro Drive ¦ 679 DHJVEWD 80 Meg SCSI Pro Drive - 929 DELIVERED 100 Meg SCSI Pro
Drive - 999 OEUVERED Th«w Pac lagm hefucto Trumpcard 5CD »rcbii Trumpcard £CS1 M eHisCH, SoHwtrv A doK'rry in fKe ctWigvouf USA Seagate super sale ST-125N 20 Msg - SCSI ......269 ST-157N 49 Meg - SCSI .. .349 ST-177N 60 Meg - SCSI ......569 ST-225N 20 Meg-SCSI .....259 ST-251N 40 Meg-SCSI ......375 ST-277N-1 60 Meg-SCSI .. 449 ST-296FJ 80Meg-SCSI ......465 Quantum Pro Drives 40 Meg SCSI Pro Drive .449 80 Meg SCSI Pro Drive .699 100 Meg SCSI Pro Drive 779 XETEC Fast Card
HardDrivPackagM far Amiga2000 ST-15711-19 Mtg ,® ..519 Del 5T-177N-60 Meg 749 Del Quantum Pro Drive 40 Mog SCSI Pro Drive 619 Da 80 Mog SCSI Pro Drive ...... 869 Da 100 Mog SCSI Pro Drive 949 DEL Cord1*otiJriM Mk'I DMAihqd. Ugtobaal POM-oytoJ- codlgcicU ,. 26 ph SCSI com .dbk, ulldn ma’ual REE &EUVERY jjjTHE CONTIGUOUS 48 STATES ST-157N.49M„Sea9a'e . ....699 D»l ST-177N-60 Meg ...919 Del Quantum Pro Drive 40 Meg SCSI Pro Drive 799 DEL 80 Mog SCSI Pro Drive 1049 DEL 100 Meg SCSI Pro
Drive ..... 1129 DEL 5YTl»mirr:bcio*Ad xjtc**Htiauiobcot ROM. 'Xbiufo. manual,Fort Trofc jk with yta* rhwkdsd SCSI cook?
MASTER 3A Disk Drive 1010 Compatible |
• Ft D*Rv ry (o lh Contfcwoui Sfcf * Pantsonfc 1160 NEW NEW
. .....185 Panasonic 1191 NEW NEW NEW ....CALL Panasonic 1124 NEW 24 Pin ..... ... 299 Star NX-1000 . ... 159 Star NX-1000 MuRI Font 2 NEW NEW NEW 179 Star NX-1000 Rainbow color)_________ ____________219 Star NX-2400 . 275 Modems Amiga 1680 Modem ... ...99 Avatex1200E .. ...69 Avalax 2400 .... .139 Avaiax 2400E ...
.109 Avatax9600 External NEW!..... .&30 Supra 2400zi Interna! (A2000) .
.139 Supra 2400 Ext.
Modem & Cable
• $ 125 • FREE DELIVERY lo the 48 ConriKueun Slates_ AMIGA
SOFTWARE Crtbbage King'Gln King .... 37.95 Curse Buster 19.95
Cyber Complex ...... 21.95 DataSlorm ------,..,24,95 Go’d
ol the Realm ..... .24.95 Golds of the Americas .....
.2595 Gold Rush _.... .24.95 Grabblt
. .1895 Grand Prtu Circuit .27.95
Gunshlp 35 95 Halb of Montezuma
„ 26 95 Hardball II_______________ .2395
Harpoon .. CALL Harrier Combat Simubtor
.31 95 Hea: Waw ..... 23 05 Heavy Metal
, 23.65 Hems of the Lance .25 05
HBIftar ..... 31 95 Hoi* In One
.21 05 Hole fn One - Course Disk .13 85
Hostag* ...... ,29,05 Hunt For Red
31. 85 Hybris ..
22. 05 Ftyper Dome_______ .22.85 Ikari Warriors
.24,95 Indiana Jones-Aclion Game25.05 Indiana Jones-Graphic
Adv.31 95 Inrwvakx fs2 .
43. 85 Inter Font .....
69. 85 Irrtwchango,, . , 25,95
IntroCad .. . 46.95 Inwstors
59. 95 IrVslon___________________
134. 95 It Came From The Desert .
.31.95 Jack Nicktaua Sort ....
30. 95 JN Courses of 1989 ... .14.95 JN Course Disc II_______
.14,95 Jigsaw ... 30,95
Jinks .. 18,85 Joan of Arc ...
28. 95 Journey .
31. 95 Leisure Suit Larry II Leonardo .... ..31
25. 95 License to KOI ..£1.95 Life and Dealh .
31. 95 Logicworks ...
184. 95 Lords ol the Rising Sun .. .31 .95
19. 95 M2 Amiga ..
147. 95 M2 Amiga Debugger______ ..77.95
19. 95 Magellan 1.1
118. 95 Magic Johnson 512_______ ..24.95 Magic Johnson 1 Meg ....
..31.95 Mjnhuntsr- New York ... .31,95 Maniac
Mansion ....
28. 95 Master Nin|i ... .19.95 Mavis Beacon Typing
,,, .31.95 Meat! 18.„„.„..m,....________ .27.95 Media LI re
Clip Art________ ..21.95 Menace ..
19. 95 Miami Vice________...... ..24.95 Mlchton Hit Disk
1 . ..32.95 Micro Rche Flier Plus .....
114. 95 Midi Magic . ..CALL MidtRecStudb VI. 1
..... .39.95 MkS View_____- .... .23.95 Might and
Magic 11 ..
37. 95 Mighty Nerds
31. 95 Modeler 3D ... .56.95 Mo rie
Setter_____________ ..59.95 Music Studio 2.0 __________
.49.95 Music X .
169. 95 My Paint Data Disk .. ..17.95
Netherworld .22.95
Mcumrrvincor ..28.95 New York Warrnrs ..CALL
Night Force ,.23 95
Nimbus ..
97. 95 Nuclear War . .31.95
ObUerator ... ..25.95
Omena ... ..31.95 Omni play Baseball:
5 on 5 31.95 On Line Platinum ...... .53.95 Operation
Wol ...
22. 95 Optics ..
117. 95 Oswald .23.95 Outrun

31. 95 Page Rcnderer 3-D .. .94 95 Page Stream

127. 95 RtekDangzrow ,.31.95 RngSide ..... 24.95 1943
_______________ 30 Options....________ 30
Pool_________________ A-Talk 3 .. Actknn
Fighfer .. Advantage, The__________ After Burner
_____ Alen Syndrome AmigaDOS Too Bo*____ Anlmagfc
____________ Anim 4-0 St ___________87.95 Animator
Apprentice 174 95 Annals of Rome-------------22.95 Aqtu
Blast ___________23.95 Archipelagos ..... 23.95 Arexx
.. 2S.95 Ar la no kb .....17 .95
Aunt Artfc W«n, 25.95 Artura ________-..25.95 Attack on
London 22.95 Awesome Arcade Pack . .. 31.95 Axe ol Rage
, .....31.95 BAD. ______ 29.95 Baal _____ 19 95 Bad
_______________28.95 Balance of Power 1990 31.95 Bar Games
......28.05 Batman „„„______ 28.95 Batman Game & Morie)...
CALL Battle Chess_______________29.95 Battle Hawks 1942
..... 31.95 BattJelechTTw Cr Hk Inc. . 31,95 Baud
Bandit ...30.95 Berrok 3 22
95 Beyond Dark Castle 21.95 Bbod Money ______.25 95 Blue
Angeb „, 28.95 Boardmasler , ....57.95
Boomerakl___________________25.95 Btideotlhe Robot ...24 95
Broadcast Tiler 184.95 Can Do ..... _... 84 95 Captain Blood
...,31.95 Carmen SanDtogcVTime , 28 95 Carmen 8anDk go
USA.... 31.95 Chessmaster 2000 28 95 Chess mis tei
2100 ... 31.95 Chronoquest ...32,95
Cly Desk 2.0 ..... 112.95 Clue Master Detective 25.95
Colony_______________________31.95 Combat
Course-----------25.95 Comic Setter
- .59,95 Comic Art Dbks each}..... 20,05
Contra 25.05
- 2A25.
...25.95 ...31.95 ...22.95 ...64.95 ...24.95 . 114.95 ...31.95 ...24.95 ...38.95 ... 53.95 Defender 01 Ttio Crown
31. 95 Dc|a Vu: 1 or 2 ...... 31 95 Derurb
...... .24 95 .59 95
Deslgnasaurus . .30.65
Digldrold ...... .59.95 DlgNew
124. 95 Outwork 3D . .82 95 Dlnosair Discovery Kit
75 95 Dhl 2 Disk ... .28 95 Dbk
28. 95 Dbk Wecharic . .54.95 Dos 2
Dos ... 3195 Double Dragon . .25.95
Doug's Math Aquarium.. . 46.95 Dr. Doom's Revenge_______
.23.95 Dragon Foroe .... .31.95 Dragon's
Lair ... . 33.95 CALL DttwA-ZOOO
159. 95 Dungeon Master ..... .24.95 Dungeon Quest _______
.31,95 Dunlap UlliBes - 47.95 Ban Performer .
.35.95 .31.95 Excollenoe 1 Meg ....
158. 95 Eye of Horus------------- .24.95 M 9 Stealth Fighter.,.
CALL F-40 Pursuit Sim .... .28.95 Face
11 ... .20.95 Faery Tale Adven
... .29.95 Addon DfektorFalcon .16.95 .37.9=
Federation ... .31.95 .31.95 Fine
Print .. .28.95 Flight Simulator
11 ..
31. 95 Eurefjean Scenery Dsk .19.95 .59.95 Focus
Video .....
107. 95 Forgotten Worlds ... .24.95 Fright
Night ...... .24.95 .74.95 Future Sound 500 ...
.39.96 Galactic Conqueror..... .28.95 Gauntlet
II ... 31 95
77. 95 Photon Video Transport.. 169.95 Pipe Dream .....25
95 Pixel Script .....92.95 Planet of
Lust_______________24.85 PockB I Rockets_____________25.95
Police Quest 1 OR 2 31.85 Pool ol
Radiance .31.95
18. 95 Postscript Fonts A.B ,Cea, 24.95 Power Windows
2.5 ..54.85 Precisely ..... ___. 48.95 Print Master
Plus _______24 85 Prescript _______28 95 Pro Soccer....-----
.....22.85 Pro Sound Design ......96.95 Pro Write
2.5______________69.95 Pre-Draw _ 112.95 ProfwsJomf Page 228
95 Structured Clip Art 38.95 Templates .36.95
Profonts 1 6 2 . 21.95 Prefect D-f Backup ...30.95
Prospector Mazes ot Zor... 25.85 Puzzle Storybook 25.95 Quick
SIM* ...41.95 Qtx
22.95 Quarter Back ______________42
95 Question II ......31.95
Rambolll .22.95 Rampage
24.95 Rastan 25,95 Raw CofV _______ 34.95
Red Lightning 37.95 Reel
Fish'n ......28.95
Renegade ..22.95 .. 16.95 Karatonft Subhead
57. 95
31. 96 King Arthur's Guest ExcaL 31,95
31. 95
26. 95
31. 95 Knights d Legend ..3195 .31.95 31 95 .24 95
24. 95 Lasllnca.The ...24.95
25. 95 Oot Matrix Fontl-5 ,..ea. 24.95 Robocop AMI SEN
__________________________________ CHINON FS S*4 INT. DR. „
_____________________ $ 144?
. *1»?
GOLD DISK SCANNER_ IMS SCAN ________*______ SCAN LOCK . .. PFPrtCT SOUND ____________________________
FAX 414-3 E7-7114
P. O. BOX 17BS2 Mllniiiki*. Wl 53217 .59.95 .. 59 .95 ..87,95
..64.95 .54 95 1 | Ranf i Tal* H_____
- 37.95 F A-18 Interceptor___ » 31.151 Defsis Musk Contt S«l .
.82.95 Ferrari Formula One ..31.151 Delius Paint N____ ..44.15 lh* ThUI Del oxa Palirt III....--- ..94.95 Poeelou*__________31.151 Deltno Photo Lab ______ ..94.15 Powerdromo-----
25. 151 Dflltno Print II-----51.15 Swords of Tvltlgkt____
- 31.151 DoIbxq PredocllORs--- .126.15 Wearer Bata kail____31.15
1 Deluxe Video 12--- ..£2.15 Ccmmlulonari* Dbk _
- 14.15 I Deluxe Video III____94.95 MLBPAStoh
- 14.151 Rocket Ranger ..31.95 European chal . . 14.95
Roger Rabbit ..28.95 Supercars
..14.95 Romantic Enct Dome., ..25.95
Thejdw ..22.05 Rubicon
AJIince__________ ,20.95 Their Finest Hour; Britaki _37.95 RVF
Honda ... ..24.95 Thin ter ,.57.95
Savage ..
22. 95 Tlilrd Courier ,28.95 Scavenger ..... ...
CALL Three Demon
69. 95 Scrabble .. . 28.96 Thunder
29. 95 Scribbte Platinum________ .87.95 Times of
Lore ...... ,24.95 Sax Vtxens-Outer Space .
. 22.95 Tracers . ..22.95 Shadow of the Beast----- ..31.95 Transcripts .. .41.95 Shfnobl .. ,.31.95 .. 15.95 Shogun .31.95 Turbo Sllvw 3.0 1 Meg.. 112,95 Shufftepuck Cafe .24 95 TV Bhow ,84.95 8lie Arms . .24 95 TV Texl .„ ..84.95 Sim City . ..28.95 Twilight Zone .24.95 Sky Shark ... ,.22.95 Twilight's Ransom..... , 19.95 Sorcerer Lord ..22.95 Ultima 4 .. ..38.95 Spaoe Hauler .. .31.95 URIma III
... , 24.95 Space Quest 1 or 2---- ..31.95 Urr«ef5e 3
- 31 & Space Quest 3 . ..CALL Vampire's
Empire---------- .. 28.95 Spaoe Racer ... .19.95
Veteran ____________... . 19.95
Speedball .24 95 Video Effects 3-D 113
95 Speed buggy------------------ .21 95 Video Fonb ...... .....
,28.95 Star Ray ..... .29 95 VideoScape 3D
2.0_______ 115 05 Star Trek: Tho Final Front 38 95 VIP Profess
In nil ______ ,59,95 Star Wars .... ,.24 95
Virus Infection Protection . 28.95 Stellar
Crusade . ..34.95 Vbta 3-D ..
,87.95 Street Fighter ... ,.25,95 VTX
Online., ,51.95 Strip Poker II ...
.23.95 W Shel ________________ ,28.95 Super Back_____________
..43.95 War In Middle Earth ,29.95 Superbase Personal .46 95
Wayne GretzkyHoctey ,29.95 Superbase Personal 2..... ..37.95
Wekd Dreams___________ ,24.95 SuperBaso Pro 3.0 ...
169,95 Who. WhaL When . ,84.95
Superplan ... .87.95 Wilbw ,25 95 Superstar Iw
Hockey...... .31 95 Wind Waker___________ ..25.95 Sword Of
Sodan .... .28 95 Wings Of Fury . ,25.95
T. V. Sports Basketball ... ..31 95 Works Pbllnum--------- , CALL
T. V. Sports Football ,31,95 Work} Allas ... ,35.95
Talospln .. ..31.95 WorkJ Class Leader
Board 28.95 Targhan . ..24.95 X-Specs
.Jim i ,84.95 Temple of Doom ,.31.95 Zak
McKracten , 28.95 Tetris _______________________ ..20 96
Zoetrope ... ,82,95 Ted Ed Plus
..48.95 ZorkZcro . ..38.95 Test Drtvo 2 • TlwDuel ...
- .27.95 Caktnmb Chill .... ,.14,95 _______ ,____r. 6COOOI
P.O.'* wWcom* C.CLO. oh*m«* *r* U.0C. m Cor**B»«a U.AA.
incRjfl* *3.00 to* 4 •Nppk.o to* hfc’dR«r*. Irrtnffnim Jb.OO
MiilwCat *rd VM or0 4 portw LitUii* ctrc *, oeeaSon os* end
Honatrre. IM imU«ntB pmi« R c-vO*S% is«i Ux. HI. AK. FPO.
APO.Pl- h Wen «-dC«r*dnn rdnjiww add e% thbpii Wftlmiiwi wian
wdar* add 19% whlpcliw. Rilnlmitm I13XT0, Wotsn »hpp*c ovtskJo
TnwCoiSViwuli' U.SJCvo x-iopxl Intch 11 Iniurad U.6. mail.
Hhnigin oWspiflfl clwpM nc**d Si* rnlrlmum Rfrvxinlytw wl 6*
csyw cm aar.pnal tmajrii w gpoqt ¦r® rm, « x) IgcUO* mwv. Wa do
no! urrarta* tompabbDV t «'rdi Ii Dub to out Kwr p-Hoi All U
«t ar* nnal. All Dafacttw r«lum* mutt hav* a nlmn authori™llon
nambar. Pw*m c*’l (*U| 357-S1B1 to obtiln an FLA. * v youf f*hm
wri not ba occvolad Prtea* a*04vw~UibX!v 4uS)«cl to wWioul
netfc*. Shipping arvj HaKS’fi; ar* non-fafundibia. W« thlp ttia
tatoti:vaabnRamlabia to ui. Utwtatot nvit&* fn xitoOby w) vtar
J itify wSh fha manyfaefeirw. ___ NO CREDIT CARD SURCHARGE
PIC-MAGIC™ Professional Quality Clip Art Package One Over 250
Imaqes OVER-SCREEN-SiZEd BiT Maps Ten Disks 220 Pacje ManuaI
Food Sports Cars and other Wonders Christmas People Plants
Animals Misc. Objects Places Bordersets Eye Grabbers Call the
PIC-MAGIC" Hot Line 1-800-387-8967 Circle 180 on Reader Service
card, 1 2 PLUS 7 A 3 LENGTH ERROR [1] R «- X +r A which is
exactly what shouid have happened. The user-defined functions
are not wanted to have different rules and do tilings that
mathematics cannot do.
APL functions can be written in six different forms. Two of which have been dealt with, those that gate an explicit result and those that did not. One argument was seen on the right. Two argument were seen, one on each side of the program name. One of the other two forms involves neither arguments nor an explicit result, i.e, just a program name, as the first version of AVERAGE above. The last of the six forms uses no arguments but produces an explicit result. The following table shows the six forms for any function FUN: Number of Explicit Result Arguments No Yes 0 fun r FUN 1 FUN Y R - FUN Y
2 X FUN Y R f X FUN Y A defined function may be used in the same w-ay as a primitive function. The following function "SR" extracts the square root from its right argument and returns an explicit result: v r sr x
(l) rt «- x * .5 v Or Send Cheque or Money Order To: Joe's First
Company Inc.
P. O. Box 579, Station Z Toronto, Ontario MSN 2Z6 Tel: (416)
322-6119 Fax: (416) 489-1620J The calculation (line [1])
reads: “R is specified by the value at the local variable X
raised to the one half power.” If the above function is called
within another function “HYPOT" to find the length of the
hypotenuse of a right triangle: V R *- A HYPOT B il] S (- SS (
S * 2 ] tS * 2 V It is shown that a user defined function can
be called from within another user defined function. There are
no limits to tire depth of function calls, that isuntil the
amount of memory available is filled.
A function can call itself within its body, becoming a “recursive" function, a topic for a later session.
To use tire function "HYPOT" the lengths of the two sides must be supplied as arguments: 12 HYPOT 5 13 The first line of the function HYPOT can be read as “R is specified by the result of the function SR (the square root), which took, as its right argument, die quantity A raised to die power of 2 added to quandty B raised to the potver of 2. As described, APL uses die primitive function notation for the mathematical function "powder."
A third set of parentheses, around “B * 2” was not needed since APL has a veiy interesting rule for order of execution. Mas, that story will have to wait for die next time.
The previous illustration of how easily one function is called from within another indicates another strength of how APL operates. Of course, in the above examples, neither the function PLUS nor SR were needed as those functions could have been easily written into an APL statement witiiout writing a function. PLUS simply showed die power of APL's function capability and used the most familiar function that exists in math. HYPOT could just as easily have been written as: V R A HYPOT B [1] R *- ((A * 2) + B * 2) * ,5 V where the square root was taken as the last operation outside the
parendieses, by raising the quantity inside die parentheses to the one-half power.
The next article will look more closely at the order of execution of the extensive number of operations, and it will explore more of the newly defined primitive functions.
• AO SNAPSHOT by R. Bradley Andreivs Another month, another
column. I would like to begin this month by making an outright
request for feedback. What do you think about the format?
Should the reviews be longer or shorter? In addition to writing
me in care of the magazine, I am also accessible on the Genie
information service under the name of R.B.ANDREWS. I have
started a topic in the Amiga section: Category 6, Topic 63.
Give me your feedback!
Universe 3 This month, we have the final chapter in Omnitrend’s Universe trilogy'. Universe 3 concludes the futuristic adventures of our beloved captain, Alex Seward, as the colonists of the Federated Worlds attempt to reopen communication with the Home Group.
Universe 3 is different from the previous two games; those of you looking for another trading-style game will be disappointed. The game is more a combination of the traditional graphic adventure with a Breach-like interface thrown on the top.
(Breach was a man-to-man level combat simulation they released several months back.)
The game begins in the Spaceship FWS Union just after its arrival at the planet Ambergris, the return point for people from the Federated Worlds. As the captain, you must gadrer up your crew, revive (from cold storage) some important passengers, and take your landing party down to the reception facilities. Once there, you must work your way to a final meeting, uncovering the bad guys along the way (aren't there always some?) And restoring good relations to humanity’s far flung outpost.
The puzzles are all fairly simple to solve, though a few did have me rather frustrated. Nearly all objects have a single use in the game, even leftover food wrappers.
The mouse is used for all input. Most common actions have graphical icons on the display screen, while others can he constructed through the use of menu choices. While limiting the available actions, this approach is much better than an open-ended parser since you can know immediately which actions are possible.
Even so, the game is not that simple.
The graphics are the game’s lowr point. For some reason, the artist used colors reminiscent of CGA mode on the IBM. While tire artwork is much clearer, it still falls a bit short of Amiga standards.
The game will not take that long to finish. If you are adept at solving puzzles, you should be able to wrap up tire entire mission in six to ten hours. Duringplay, use tire “save" and “save as” features often. This will allow you to replay a section if you make a wrong choice.
On the whole, Universe 3 is a so-so product. I found it moderately entertaining Universe 3: The final chapter in Omnitrend's trilogy.
But I question whether it has enough play value to justify its cost.
Pi'ison Next on the list is Prison, the latest Actionware release for tire Amiga.
Once you were a high-level enforcer for the Galactic police. But you have been framed. After sending you in to mop up a sizable cocaine ring, tire commissioner charged you with murdering ten innocent, flour-covered bakers. Your trial was a farce and you have been dropped onto the inescapable prison planet, Altrax. Lacking any better way to care for criminals, an entire planet has been cordoned off and dangerous criminals are permanently (continued on page 18) GETH lUmiTUT iilA'iflws: Vim itTX lf‘ rti)JV Hardware A HAMi. TypW Tutoita! Piuj2 *mi CHOICE!
PI TUNG IT ty)l; i:pGnTH tpvtcws- Snnt itvy Forth jd, rfTiVv ,tkc Hardware Ilmji tktuwj r.u kVl, u AC 6 Shamvg a Patilic Dnmiin Saflivajo TvpingTrtmt.
HASH 'IspV Tiuoiiat Pn Amazing Computing believes its readers should have a choice! AC provides a superior magazine, as welt as a special disk with programs and background information, each month. Whenever possible, AC combines two issues on one disk and maintains the low cost of $ 6.00 to its subscribers. Why? Because AC believes the Amiga public deserves a publication which, not only provides indepth coverage of Amiga advancements, but also places its readers’ interests first.
Amazing Computing for the Commodore Amiga the choice ot serious Amiga users.
(Snapshot, continued from page 16) dropped onto its surface, never to be heard from again.
But there is one hope. Rumor has it that, several months back, a pleasure cruiser strayed too close to Altrax and was shot down by the orbiting defenses. While the ship itself was destroyed, a one-man escape pod supposedly made it safely to the surface. It is up to you to find the pieces of this pod and use it to escape and correct your unjust conviction.
Prison uses the side-angle view of your on-screen alter ego common in many arcade action games. In addition to movement to the left and the right, you can also move into and out of the screen at certain doorways. Whileyou begin only with your wits and physical strength, many tilings are hidden along the way to help you on your quest. But many booby traps also hinder progress. We wouldn’t want this to be too easy, would we?
Prison is another puzzle-solving adventure. Certain items must be located and used in order to proceed. While most games of this type allow you to cany- several items, you have only two unused pockets for holding things, and must therefore choose what you carry' carefully. Fortunately, eacli item only has one use and can be left behind after this time. However, some items have no use at all, so don’t pick up everything you find.
Project Neptune: Destroying the Yellow Sbadaow’s underwater bases.
In addition to its human occupants, ¦many alien-type entities have been marooned on this planet and would like nothing better than to have you for lunch.
You are well advised to learn die methods of hand-to-hand combat early in the game so you can quickly do them in when they attack. Each time you are injured, your current strength level is reduced; when it reaches zero, you lose one of your three precious lives. While scattered food can restore your strength, nothing can restore a lost life, so be very careful.
The graphics used in the game are impressive and do exploit the Amiga's capabilities. The views are very' well done and provide a life-like backdrop for die decrepit prison planet setting. The sound, while simple, appears to be in stereo and adds flavor to gameplay.
The game spans several locations on the planet's surface and will take many hours to complete. Many nights of gaming will be required before you finally gather all three pieces of the escape pod and rocket your way to freedom.
Two flav,rs mar an otherwise impressive game. Several of the screens are very- difficult to cross because of die inaccuracy of the controllers. Moving a slight bit ca n be difficult and I often landed on one mine when jumping another, or fell down a life- stealing hole that I had tried to clear. 1 f this were an arcade game, I could understand die need for such obstacles, but for this style of game they are a bit extreme. The game's single save slot also hindered successful play'. I often had to replay the entire starting sequence because I had saved die game at some point after missing a
vital component I would need later in die game.
With these in mind, I still highly recommend die game. Take the time to map each area and figure out the best way to proceed on your quest. Prison has a very high entertainment-to-cost rado.
Project Neptn tie Next on the list is Project Neptune, from Epyx. The infamous world arms dealer, the Yellow Shadow, is mining uranium off the coast of Norway to use for building nuclear weapons which he can then sell to the highest bidder. Naturally NATO leaders are concerned about this and want to put an end to the whole operation.
Fear of an adverse public reaction prevents an overt strike on the area and the job has been turned over to you, In your specially modified research submarine and outfitted widi die latest diving gear, you must destroy the Yellow Shadow's complex before he gathers enough uranium to act out his plans.
To stop him, you must destroy his underwater bases and the patrols that protect them. While you can take on die patrols one by one, the best way to terminate them is to eliminate the bases that support dieir actions, and the only way to do this is to blow' up all die links connecting die base to die rest of die network. Once die links are gone, the base and its patrols will be useless.
During your mission you will encounter three types of patrols; Defense, Warrior, and Worker. Defense patrols consist of two defenders who stay' with each base to protect it from attack. Warrior patrols are composed of six warrior divers (continued on page 52) by Scott Stein man VA A Faster Pixel-Drawing Routine for the Aztec C Compiler For a long time, graphics programmers have known that while the ROM Kernel line-drawing routines are fairly fast, the pixel-drawing routine writepixelO is very slow. This is due largely to the actions of the blitter chip. This lack of speed has prompted
several software developers to develop their own assembly language pixel-drawing subroutines. This article will show you how to speed up your graphics programs using a streamline, yet fairly general, assembly language routine designed to be called from C programs.
(The code was written for use with noninterlaced screens, and has not been tested on interlaced screens.) Some unexpected principles of linking assembly language to a specific high-order language (Aztec C) will also be explained.
In an earlier issue of Amazing Computing, Gerald Hull outlined the dreory underlying the linking of assembly language subroutines to high-order- language (HOL) programs (see “Linking C Programs with Assembler Routines on the Amiga," VI.7, p. 79). That article described how the formation of local stack frames (LSF's) facilitates the passing of parameters from the calling C program to tine assembly language function. Rather than using one general stack for shared use by all program functions (both C and assembler), the LSF philosophy divides tire stack into smaller subsections, each of which is
used exclusively by one C or assembler routine as it is called. A local stack frame is set up when tire assembler function is called.
Parameters are passed between the C and assembler routines via the LSF, which is removed when the assembler function exits.
While the LSF approach works well for interfacing C and assembler code, and should be used whenever possible, it has one shortcoming it requires extra code and processor time to be implemented.
This is a serious drawback for functions that must be called and executed rapidly and repeatedly; it is one of the many reasons why even low-level languages such as C are slower than assembly language. For routines that must be fast, local stack frames must sometimes be avoided. In these situations, it is simpler to set up global (that is, permanently stored) variables in advance for those values that remain unchanged every time the assembly routine is called with your C program. Only those variables that must be changed with each function call are passed directly onto the stack (without a
local stack frame) as parameters.
Storing global variables in C and subsequently using them with assembly language subroutines is quite easy, as you’ll see below. However, passing ?
BilPlanc 0 BilPlane 1 n BilPlane 2 FIGURE 1: BitPlane Address Calculations- The bitplane is divided into bytes, each of which represents 8pixels on the screen. Each screen row contains WIDTH 8 bytes, and there are HEIGHT rows. The leftmost screen positions are at tytes BilPlane + (ROW * [WIDTH 81).
Color - 5 8 | 1 | 8 | l] 3 2 18 Color Bit BitPlane 3 information onto the stack is a little confusing at first. The Aztec C manual explains how this is done in tire “Technical Information" section.
Unfortunately, an undocumented action of the compiler can result in a departure from these ideal conditions. In particular, the manual states that integer parameters are pushed onto the stack and retrieved from die memory location starting four bytes beneadi the stack pointer.
Additional integer values are found every two bytes beyond dtis.
All this is certainly true when code is compiled with 16- bit integers, but trouble can arise when the +L (32-bit integer) compilation option is set. In the latter case, parameters are stored on the stack as long integers every four bytes; regardless of whether they are declared as long or short integers. This means that the first parameter is stored as a long (32-bit) integer in die 4-byte sequence starting 4 bytes below die stack pointer (bytes 4,5,6 and 7). However, if you are really using a short-integer argument, the top 2 bytes allocated for the long integer (at 4 and 5 bytes below the
stack pointer) are unneeded. You can retrieve your short integer from the memory location 6 bytes below the stack pointer (the word at bytes 6 and 7). The second argument will be stored as if it were a long integer starting 8 bytes below the stack pointer, and so on.
Program Needs My application program required fast, repetitive pixel drawing, but it also used several shareware and commercially available libraries diat had been written specifically for 32-bit integers. Therefore, die assembly code had to account for the idiosyncrasy of 32-bit integer compilation.
I have left the code in this form to demonstrate the principles of linking assembly language to 32-bit integer C code.
If you want to rewrite the code for l6-bit compilation, follow die function-calling rules provided in the Aztec C manual.
Before we look in detail at the assembly source code for the FastPixO fast pixel-drawing function in detail, we must discuss how to prepare the C program for its use, In order to keep die execution time of the fast pixel-writing routine to a minimum, several unchanged parameters are computed singly in advance each time die function is called. These variables are Accessing the individual pixel is done by looking at the bit that, corresponds to your pixel within the byte. Precomputing the row-offset array ytabled saves several computational steps when the function is being called many times.
Stored in global variables directly accessible to die assembly language routine.
The first variable is related to the number of bitplanes (called ‘biplanes’’ in die program) on die screen. The program needs to set die color of the pLxel to be drawn. To do diis, nplanes must modify the contents of die bit corresponding to dial pixel in each bitplane, and must know' how many bitplanes to examine, test and change. The second global variable, the pointer array called *bp[DEPTIi], is an array of bitplane starring addresses. It is stored when the bitplane memory is initially allocated with die AllocRasterO function.
Finally, in order to draw die pixel, you must be able to determine rapidly which byte to modify widiin each bitplane.
You could simply count bytes along one row, and Uien along another, until you reach your pixel location, but diis is time- consuming. To save time, store in advance the number of bytes you must add to die bitplane starting address in order to reach die leftmost pixel in each screen row. This gready simplifies later assembly language calculations. These byte-offset values for each screen row are stored in ytablefHEIGHT].
Code Calculations A code fragment in C which sets up diese variables is shown in Listing One.
Let’s discuss the calculations of this code fragment. First, the screen height, width and depdi are defined (with ;=define) at the beginning of die program. When you are ready to allocate bitplane memory eidier direcdy, via the ROM Kernel AllocRasterO routine, or indirectly, via Intuition you must set up in advance an array of pointers to hold die bitplane starting addresses. One pointer is needed for each bitplane, so the size of the array is equal to the screen depth.
When using the ROM Kernel routines, set each bitplane address to RastPort F.BitMap EPianesD. For Intuition-based programs, find die bitplane addresses at Window ERastPort EBiLMnp EPlanesQ.
(The exact name will depend upon your variable names for the window, rastport and bitmap.)
The next variable to be stored is nplanes, die number of bitplanes.
Why store this if you have already defined DEPTH? First of all, die assembly language routine must receive this value, and it won’t see the definition if it’s compiled in a separate source file. Secondly, whatyou really need is DEPTH -1, which is die array index of the first bitplane that you'll modify7 (remember that in C they will be numbered 0, ... , DEPTH - 1). Accordingly, set nplanes to DEPTH - 1.
Finally, fill your bitplane row-start byte-offset table (see Figure 1). The address of the leftmost pixel in each row within each bitplane is equal to die address of the previous row in the bitplane plus the number of bytes used to store all of die row's pixels. If you use a low-resolution screen, each row will contain 320 pixels, each represented by a bit in the bitplane memory. This translates to 40 (320 8) bytes for each row of pixels. Therefore, die address difference between die start of one row to the start of the next row is 40 bytes.
This number is doubled for a high- resoiution screen, which is 80 (640 8) bytes across.
Instead of calculating the number of bytes offset from die top of the screen (byteoffset = bitplane starting address + (y
* width row-bytes] + [x column-bytesl) each time you enter die
FastPixO code, precompute an array of row-offsets (in bytes)
from the bitplane starting address for every7 row
(ytable[HEIGHT)). For example, in the lo-res screen, offset 0
is 0 bytes, offset 1 is 40 bytes, offset 2 is SO bytes, etc.
Therefore, if you are working with bitplane 0, the address of
row 0 is bpEO] + ytablelO] = bp[0] + 0, diat of row 1 is bp[0]
+ ytabiell] = bp[0l + 40, and so on. Now when you need to find
die specific byte in a bitplane which you must work on to
change a pixel’s color, you need only the pixel’s x- and
y-positions on the screen. You can then simply look up the
ytablely] to the pixel y-position to move down, and then add
x 8 bytes to that value to give you die amount to move over
Accessing the individual pixel is done by looking at die bit diat corresponds to your pixel within the byte. Precomputing the row-offset array ytablefl saves several computational steps when die function is being called many times.
Using FastPixQ Now you are ready to use the FastPixO function. It is called by die C program with three short-integer arguments: the x-position of die pixel (screen column), the y-position of the pixel (screen row), and the desired color of die pixel. These diree values are pushed onto the stack by the calling function's code and by die entry of the assembly language FastPixO routine. Note that the pixel's color is included in die function arguments.
This means that you don't have to call die ROM Kernel SetAPenO routine each time you want to draw a pixel, saving yourself even more time.
At die top of die assembly source code in Listing Two, the machine processor (Motorola 6SOOO) is defined. This definition is optional in the Aztec assembler, but it is nice to be reminded diat the Intel 8088 processorfamily(Boo! Hiss!) Is not being used. Then begins the code segment of the program (CSEG), in which all external code modules are allowed to refer to die assembly code with the XREF directive.
Remember diat variables and function names are given a beginning underscore by the Aztec compiler. Therefore, the function must be called _FastPix in the assembly source code if it is to be visible to the C program, Code Processing As the assembly code is initiated properly, the parameters that have been put onto the stack as function arguments must be able to be retrieved by the calling C program when it calls FastPixO. These parameters are the values diat may be different each time FastPixO, the pixel location and its color are called.
Remember that die first shon-integer argument may be found 6 bytes below die stack pointer. It holds the x-position of die pixel. The second short-integer argument is 4 bytes away from this, 10 bytes below the stack pointer. It holds the y-position of die pixel to be drawn. The last parameter is the color number of the pixel. It is stored in the third short-integer argument, 14 bytes below the pointer.
First, the pixel y-position (ten bytes below the stack pointer) is loaded, and then it is stored in the general data register-
- D0. The y (or row) value is used as the array index of the
y-offset table ytableQ.
(Remember: the address offset of the beginning of each screen row is stored as ytablely].) In assembly language, array members are accessed indirectly from their addresses, which are offsets from the beginning address of the array. Addresses are scored as long integers, so the short y- position variable stored in DO must be converted to a long integer in order to be added as an offset to die array starting address. The ext.l opcode accomplishes diis task. Also remember, however, dial each array member in the array of shorts takes up two bytes.
The C language takes die array member’s size into account when it uses array indices (in assembly language, this must be done manually). In order to use the y-position as an array offset, you must multiply it by two in order to move two The color parameter is the color value exactly as it is used in the SeUWenO command. Each bit in the color is the pixel’s representation in each corresponding bitplane. So that color bit 0 determines the state of the pixel in bitplane 0. Color bit 1 is used for bitplane 1, etc. bytes per array member. The multiplication is done simply with a leftward arithmetic
shift (asl) of the contents of DO. The ytableO array starting address (assembly global variable _ytable) is loaded into address register AO, and array member ytablely] is accessed by loading the contents of bodi address AO (array start address) and DO (array member address offset) into register A2. The address of die byte at the beginning of row y now has to be stored in register A2. Next, the pixel x- position, stored in the parameter 10 bytes below the stack pointer, is loaded and stored in DO. It is tiien stored in a long integer, as done above. By dividing this x- value by 8, you can
obtain die byte offset from die beginning of the row to your pixel.
For example, the pixel at column 124 is in byte 15 (124 8) from the start of that row.
Arithmetic shifting to the right 3 times divides by 8 quickly. Adding the offset from die start of die row to die address in A2 (row start address) provides the total pixel-byte offset from the starting address of the bitplane (the bitplane's upper left comer).
Next, isolate the individual pixel within the byte that represents die pixel.
Remember that each bitplane byte contains 8 bits, 1 for each pixel. Unfortunately, the bits in the byte are stored in the direction opposite from what you would expect from die order of pixels on the screen! The leftmost pixel in the byte is stored in bit 7 (the highest bit), die next in bit 6, and so on.
Moving left to right on the screen, the bits must be used in descending order in each byte (see Figure 1).
Therefore, to access die pixel you have to flip die bale’s bits. How is this done? First, the pixel offset is needed from the beginning of die pixel byte.
Tins is really a modulus 8 division of the pixel x-position. In other words, if the x-position is 263, die byte containing die pixel is 32 (263 8) bytes from the row start.
But diis stops at pixel 256. The pixel needed is 7 (263 - 256) pixels away from this point. A modulus 8 division of 263 would move die 7 extra pixels. This division is easy in assembly language. The x- posiuon is stored in register D2.
Now all that needs to be done is to mask off the lowest 3 bits of D2 to divide modulus 8. This number is subtracted from 7 to get the pixel's bit number within the byte. Thus, 7 pixels become bit 0, 6 pixels bit 1, etc. Store the immediate number 7 in register DO, tiien subtract D2 from it.
Next comes the major loop of the code. The pixel values must change in each bitplane in order to set die pixel’s color. The number of bitplanes is determined by the depdi- or, in this case, the global variable nplanes. Start with the last bitplane, bp[nplanes], and work downward to the first bitplane, bp(0], nplanes are stored in D3, which is to be used as the loop counter.
As the pixloop is entered, change D3 from a counter to an address array offseL, and then store it in DO. This is done because an array of pointers, bpD, must be used to get die starting address of the current bitplane in each iteration of the loop. The already calculated pixel-byte offset from A2 is then added (extended to a long, now in Dl) to the starting address of the bitplane to get the address of the pixel within that bitplane.
Pixel Color Now that the location of die pixel is known, a more important question must be asked: How do you know' whether to set or to clear that pixel in that bitplane to get die desired color? Luckily, the color parameter provides this infonnadon (see Figure 2). The color parameter is die color value exacdy as it is used in the SetAPenO command. Each bit in die color is die pixel's representation in each corresponding bitplane, so diat color bit 0 determines the state of the pixel in bitplane 0, color bit 1 is used for bitplane 1, etc. A color register value of 0 (every' bit has a 0 in it)
means “clear to 0 the corresponding pixel bit in every bitplane.” A color register value of 5 (binary 00101) means “set the pixel’s bit to 1 in plane 0, clear it to 0 in plane 1, set it in plane 2, and clear it in planes 3 and 4."
In odier words, all that needs to be done is to read 1 bit in the color variable for each bitplane to see if die bit in diat plane for die pixel in question is set or cleared. The color parameter 14 bytes below die stack pointer is used to test if die color bits were set with die btst instruction. When the loop is run for the first time for bptnplanes] (loop counter D3 contains nplanes), it reads bit nplanes of color and tests them. If it is set (1), the bitplane pixel is set by branching to the setpixel code segment; if not, it is cleared in the clearpixel segment. In the first case, the
pixel's bit is bset to 1 within its bitplane byte. In the second, the byte is bset to 0. At diis point, go through the loop again until the pixel's bit has been checked and changed in all of the other bitplanes. Finally, exit from the FastPLxO funcdon and end the code segment.
Data The data segment (DSEG) is at the bottom of die source code.
All it does is tell the assembler that the global variables used in FastPixO are externally defined (XDF.F). That’s all there is to this program!
Routine Speed The speed of the FastPLxO assembly language rouLine is the result of four factors: (1) it is written in assembly language to access die bitplane memory direcdy; (2) die use of local stack frames (LSF) is avoided, saving setup time every time die function is called; (3) commonly used constants are calculated in advance and stored in global variables; and (4) the ROM Kernel SetAPenO routine does not have to be called each time you wish to change colors, saving the time needed to call and execute a second function.
The systems programmers at Commodore have done a wonderful job of waiting extensive graphics software that the user can utilize in his or her own programs. In order to make AmigaDOS and the ROM Kernel easily updated, most of the operating sy'stem was written in C. However, we sometimes pay' a price for this in speed. In those cases where speed is of the essence, it is fairly simple to replace selected Amiga C routines "witii custom assembly language routines. This article should serve as a guide for writing assembly language specifically designed to speed up C programs.
Sources Deyl, S., Miner, J., Peck, R. and Raymaond, C. Amiga Hardware Reference Manual. Commodore Business Machines, Inc. and Addison-Wesley Publishing Company, Inc. 1986.
Peck, R.. Amiga ROM Kernel Manual: Libraries and Devices.
Commodore Business Machines, Inc. and Addison-Wesley Publishing Company, Inc. 1986.
Hawkins, D., Kane, G. and Leventhal, L. 68000Assembly Language Programming. Osborne McGraw-Hill, Inc. 1981.
Aztec C68Kfor the Amiga Manual, version 3.60a. Manx Software Systems, Inc. 1988.
Hull G. "Linking C programs with assembler routines on die Amiga," Amazing Computing, Vol 1, No. 7. 1986.
Listing One LISTING 1: C set-up code define DEPTH 4 * Bitplanes allocated * define WIDTH 320 ” Pixels across screen (640 for hi-res) * define HEIGHT 200 * Non-interlaced screen ' U3VTE * bp[DEPTH]: * Array of bitplane pointers * short ytable[HEIGHT]; ’ Offset table (bytes) for beginning of each screen row * short nplanes; " No. Bitplanes (DEPTH) * short x, y, color; * Desired pixel position £ color * main () [ *
* Preliminary code here:
* 1) ROM Kernel- Set up View, viewport,
* RastPort, Bitplanes as in ROM Kernel
* manual.
* 2) Intuition- Open Screen and Window.
• * Store bitplane starting addresses for ROM Kernel approach
" for (i - 0; i DEPTH; i++) bp[i] =
SastFort- BitMap- Planes[i]; * The equivalent code for
Intuition approach « for (i a 0? I DEPTH; i + *} bp[i] =
window“ RastPort- BitMap- Planes [i] ; nplanes = DEPTH - 1;
ytable[Q] = 0; rowoffset = WIDTH 8; for (i = 1; i HEIGHT;
i++) ytable[i] = ytable[i-1] + rowoffset; *
* Call FastPix ().
V SetDrawMode ( rp, JAM1 ) ; FastPix( x, y, color ); } Listing Two LISTING 2: The FasC?ix(J function
* **************************************************
• Program: FastPix.asm *
• Version: 1.0 *
• Author: Scott B. Steinman, 0,D.
Date: 27-May-88 Purpose: Faster general-purpose pixel-drawing routine to replace ROM Kernel writepixelO routine.
1. This version for 32-bit integer programs.
2. This version for non-interlaced screens only.
Call from C: void FastPix( x, y, color ) short x, y, color; added for the x-position within the row by * dividing the x value by 8. The modulus of that division is the pixel bit number with- * in that byte. A loop is then entered in * which each bit of color is checked and the corresponding pixel bit for each bitplane is set o r cleared.
* MACHINE MC68000 CSEG XREF _FastPix 'ix: move.w 10ISP),d0 y -
row offset ext. 1 dO Cast long - array index asl, 1 1, dO
Array offset for shorts lea _ytable,aO ytable array base addr
move.w (aO,dO,1), a2 ByteOffset = ytable[y] move.w 6(SP),dO x
- column byte offset ext .1 dO Cast offset as long asr. 1 3,
dO Div by 8 for ColumnByte add, v d0,a2 Add to ByteOffset
move.w 6 (SP), d2 x - get pixel in byte and.w
* 7,d2 Mask low 3 bits (x % 8) move.w
* 7,d0 BitXumber = 7 - lo3bits s ub. W ?2, dO move.w d0,d2 ext .1
d2 Cast as long move.w _npianes,d3 Initialize PlaneCounter ext.
1 d3 Cast as long d3,d0 Load PlaneCounter pixioop move.w ext. 1
as 1.1 lea move.w ext .1 move.1 add, 1 dO Cast as long for
index 2,d0 Array offset for longs _bp,a0 3itPlane ptr array
base a2,dl Get ByteOffset al Cast as long (aQ,dQ,l),al Store
BP[PlaneCounter] Add ByteOffset for PixAddr dl, al Globals (***
Btst bne ciearpixel bclr dbf rts FASTPIX *•*): bp Array of bitplane pointers * £U3YTE 'bp[DEPTH]) ytable Array of y-offsets * (short ytable[HEIGHT]) nplanes Screen depth * (short nplanes) 14 SP),dO Load color d3,d0 Test piane-th color bit setpixel Set pix if 1, clear if 0 a2, (al) Cir bit in PixAddr byte d3,pixioop FianeCountr = 0, reicop Exit Parameters; aixel bset dbf rts x X-position on screen (2 bytes) * y Y-position on screen (2 bytes) * color Color of pixel (2 bytes) * a2, (al) Set bit in PixAddr byte d3,pixioop PlaneCountr = 0, reloop Exit Registers used: d2 Pixel Bit within BitPlane
Byte DSEG XDEF d3 Index for BitPlane we're working on _nplanes,_ytable,_bp a2 Pixel ByteOffset within BitPiane
* ************************************************* Description:
* END The x- and y-positions of the pixel to be * drawn and its
color are passed to FastPix *
• AC* by means of the stack. * The program calculates an offset
from the start of each bitplane from y and the * ytable, a
table of byte offsets for each * row of the screen. Next, a
second offset is * Populous I The World According to You!
Review by Miguel Mulct Have you ever dreamt of reaching heights beyond the world of mere mortal? Does the thought of having thousands of followers worshiping your every deed have any appeal? Do you want to have fun? If you answered "yes” to any of these questions, then Populous is the game for you.
Populous is a new game written by an English software group called Bullfrog and distributed by Electronic Arts. This game is fantastic probably the best game to be published in a long while. The premise is fairly simple: you become the divine influence over a tribe of humans, Your goal is to manipulate nature in ways that will make your followers tire dominant race on tire world.
This job, unfortunately, is not without its difficulties. You see, there is also another deity trying to accomplish tire same thing, on tire same world, at the same time. Of course, there is no room for both the followers of Good and tire followers Evil on the same planet. Thus, your work is cut out for you.
How do you accomplish your task? Your power, or "manna,” is derived from the number of followers you have on the planet. To help the population to survive and grow, you flatten lands which you can raise from die ocean so that your followers may plant crops. (Isn’t it great being a deity?) As the population grows, your followers build greater homes, and even castles. They also become stronger and more industrious.
This allows diem to venture further out on die land you have provided, where they form new setdements.
Life is not so simple for your followers, because the followers of the odier deity are also trying to accomplish the same thing. Since there is only a limited amount of land on die world, the two groups are bound to conflict unless, of course, you exercise divine intervention.
At first, your power is limited: all you can do is raise and lower land in a limited way. Your manna level is represented by a sliding scale in die upper right corner of your screen. As your manna strengthens, you can then place a "Papal Magnet.” This magnet is used to lure your followers or "walkers,” as the game refers to diem to new lands. Once you have acquired this ability and continue to grow stronger, you gain the ability to ravage earthquakes on the unsuspecting enemy. You can also create swamps, volcanoes, and even floods, which will decimate the enemies lands.
As a deity, you also have the ability to create knights, whose sole purpose is to fight with the enemy and destroy dieir homes. The ultimate power is to declare .Armageddon, which forces die world into one final battle to determine who shall rule it. Remember, however, that your opponent may be able to do the same things to your people.
The game is played on a single screen divided into several areas. In die upper left comer of the screen is the “Book of Worlds,” which is an overhead view of the world you are fighting for. On this map, white dots represent the colonies of the Good followers, while black dots represent Evil colonies. Blue dots represent Good walkers, while red dots represent Evil walkers. By moving your cursor on diis map and pressing die left mouse button, you can get a close-up view of that part of the world.
The majority of the screen is occupied by die “Close-up Map,” which shows you the world terrain, colonies, and walkers. When you move place your Papal Magnet, it appears on this screen. You can move around on die closeup map by pressing die directional arrows in the lower left comer of the screen with the left mouse button. (You can also use the keyboard keys, but input is slower. I i'ound it easier to use die mouse and the directional keys on die screen.) Surrounding the directional keys are the command keys, which allow you to perform your divine duties.
At your disposal is a small shield that you can use to “tag" friendly or enemy establishments or people. When something is tagged, the information on that item is represented in the “Information Shield,” which is in the upper right corner of the screen. This shield is divided into four sections, which represent whether the tagged item is good or evil, how strong it is, and how developed it is. In combat, the shield also shows die strength of the two combatants. To the left and right of the shield are two bars one which shows the Good population, the other die Evil population. The higher die
bar, the greater the strength of that popu- iation. The “health” of your population is represented by a steady heartbeat emanating from your speakers. The lower the heart rate, the stronger you are.
All this may sound complicated, but it is very' easy to get the hang of. The 31- page manual is well written and easy to understand. There is even a tutorial mode, which show's you the basics of the game in about 15 minutes. As a matter of fact, the first few worlds are fairly easy to conquer.
The challenge is that each of the 500 levels in this game can feature different terrains (grassy, volcanic, icy, or desen), all of which effect how fast the population grow's and the strategy you use to win that level.
As if that weren't enough, your opponent's population growrs faster as the game progresses, and it also becomes more aggressive. Thus, this game does involve creating and altering strategies to fit each individual world.
The people at Bullfrog have done an excellent job of programming Populous.
The graphics are very7 well done, and the soundtrack is excellent tliroughou t. (If you go directly to the game on startup, you'll miss the excellent introduction that plays before die game.) Although the soundtrack may be repetitive to some, 1 think it adds a lot of ambiance to the game. The programmers have added two icons in the loiver right corner of die screen which allow you to turn off either die heartbeat and or the soundtrack. Also included is a much needed pause key.
Along with all this possible variation, the programmers have included three additional features. One is die “Scales” icon, which allow's yrou to change which powers are available to either Good or Evil.
(That way, you can even things out if one human opponent is more experienced than another.) Below' this icon is a “World” icon, which allows you to change the parameters of the world you’re playing in. You can make swamps bottomless, or disappear if only one person falls in. You can also load and save previous games. This screen also allow's you to customize worlds: you can decide on the terrain, how7 many and wrhere the initial followers will be placed, etc. It’s basically a “Populous Constmction Set.” Lasdyy die game can be played over a modem or through a direct datalink between two
However, nothing is perfect no: even in Populous. Unfortunately, there is no provision for two players to play' on the same computer at die same dine, but tiiis may be due more to the logistics of game play than to an oversight. Lasdv. Keyboard input on the selection screens is very' sluggish. You’ll have to type slowly if you want to enter something correctly die first time.
Don’t let these problems sway y7ou; diey are minor inconveniences, at worst!
This game is great! It involves a lot of strategy, yet remains extremely entertaining. (Beware: It is also very addictive, and may ruin the rest of your life!) There are plenty of levels (if you call 500 plenty), and although die earlier ones are fairly easy to win, the later ones do get more challenging. The graphics are well done, as is the soundtrack. As I said earlier, diis is one of the best (if not the best) games I have played this year. Populous is well worth your hard-earned dollars. Bravo to Bullfrog! If they keep this up, I’ll never gel any work done!
• AC* Populous Electronic Arts
P. O. Box 7578 San Mateo, CA 94403-7578
(415) 572-ARTS Price: S49.95 Inquiry 234 IB When 1 was a boy, I
used to read about the naval battles of World War II. My
friends and I would create drawings of the Battle of Midway
and imagine what it would be like to fly in a dive bomber.
With BattleHawks 1942 from LucasFilm Games, I no longer
have to wonder. BattleHawks 1942 is both an arcade game and
a simulation. It puts you in the cockpit for four crucial
battles that helped decide the outcome of World War II in
the Pacific. You recreate die actual combat missions that
American and Japanese pilots flew, &A mm A WK5 1942 review
by Phil Saunders There are four types of missions included
in BattleHawks: Fighter Intercept, Fighter Escort, Dive
Bombing, and Torpedo Bombing. Each played a vital role in
the naval campaign of WW1I. By recreating these missions,
BattleHawks gives you a taste of what it was like to fight
during World War II, when the outcome of the war depended
on the skills of a few brave pilots.
The first tiling you notice about Bat- tleHawks 1942 is the manual. Baitlehawks has the* best manual I have ever seen for a game; it’s better than die documentation on most applications software. The 130-page manual is divided into four pails: Introduction, Historical Overview, Game Play, and Reference Information.
The Introduction contains a brief preface from Lieutenant Commander Richard Best, a WWII Navy pilot who served as technical advisor for BattleHawks 1942, The Historical Overview describes the importance of the four battles reenacted in diis game: die Battie of the Coral Sea, the Battle of Midway, the Battle of the Eastern Solomons, and die Balde of die Santa Cmz Islands. This section includes numerous photos, illustrations, and quotes from participants on both sides. Its layout is well designed, and some of the quotes are actually quite funny! The details in the Historical Overview provide
a real sense of “being diere”, which most games lack.
The Game Play section of die manual describes the operation of the game, while a separate Amiga Reference Card gives loading information. Screen dumps, photos, and illustrations provide details on how die controls work. The Game Play section also describes die combat missions that can be flown in BatdeHawks 1942. The Reference Section provides information about flight fundamentals, combat tactics, and die planes and ships involved in the battles. It also provides color maps diat trace the events that actually occurred in each battie.
When you boot BattleHawks you are presented with an introductory screen, a list of credits, and then the main menu. The menu offers several options. Select Training and Select Active Duty allow you to fly the training and combat missions, respectively. Review Planes allows you to view each plane used in the 1942 batdes. It gives a brief description and rough picture of each plane. I was a bit disappointed by the graphics, which fail to include much detail.
However, one nice option allows you to rotate each plane so you can view it from various angles. This part of the Review Planes option complements the manual's more detailed descriptions.
The Review Service Records option lets you keep track of your pilots. To fly active duty missions, you must first format a blank disk, label it "BHPllots," and then select “Prepare Disk" from the Service Records menu. It would be nice if the game would handle these details for you. I had some trouble widt the game prompting me tor the BHPilots disk when it was already in drive 0. Ejecting the disk and then reinserting it usually solved the problem. The Review Service Records menu has commands for managing your pilot files, and it can also select an honor roil of the best pilots on both
Training Missions allow you to practice the skills needed for each type of mission, while Combat Missions require you to risk your pilot’s life in a combat environment. Once you have selected a mission, you proceed to the Ready Room, where you are briefed on what you need to do.
BattieHawks gives you a taste of what it was like to fight during World War II, when the outcome of the war depended on the skills of a few brave pilots.
In BattieHawks 1942 (as in the real Navy) the emphasis is on accomplishing the mission. If you are flying escort, it doesn't matter how many planes you shoot down. Your mission is to protect the other aircraft: if they are destroyed, you have failed.
BattieHawks scores you based on how many missions you successfully complete.
The Ready Room also allows you to modify die parameters of each mission. The defaults simulate the actual combat mission, but you can easily edit die details. Could Japanese Zeroes have stopped the American bombers at Midway if they had been flying at higher altitudes? Would better fighters have saved the Lexington in die Battle of the Coral Sea? Just change die parameters of die missions and find out! Of course, if you modify the missions to make them easier, they will not count for your active duty statistics.
Once you have selected a mission and modified its parameters, select Begin Flight to start your mission. Here copyprotection rears its ugly head. You can back up your BatdeFIawks 1942 disks, but you must enter a codeword before each new mission. BatdeHawks will flash the silhouette of a Japanese fighter on the screen and prompt you for the corresponding codeword in die manual. You then search die lower right-hand comers of the pages, find the right plane, and enter the codeword. This is a clever way to perform the verification; it mimics die aircrew training used by combat pilots.
Nevertheless, it would have been better if die program gave you the page number diat die silhouette was on and better still if the program did not repeat the process for each new mission. Despite diis complaint, BatdeHawks 1942’s codeword protection is less objectionable than other kinds.
Unlike Electronic Arts’ F18 Interceptor, BatdeHawks does not let you take off and land your plane. Instead, it places you direcdy at the scene of the combat and lets you take control. Someone familiar with the FI 8 Interceptor will find BattieHawks quite different. World War II planes did not have die thrust of modern jet engines, so some Interceptor moves simply will not work. The planes move more slowly; if you try to climb too rapidly, the aircraft will stall. If this happens, the aircraft's nose will drop and it will start to dive.
You must then pull back on the stick again to recover.
This feels a little unrealistic, especially since you must fly BattieHawks with a mouse instead of a joystick. Despite this quirk, die airplanes handle relatively well.
You can make the plane dive, climb, and bank (tiiere is no control of the rudder).
Nevertheless, response to the controls is good, but a bit more gradual than in F18 Interceptor.
Air-to-air combat in Batdehawks is quite different from its equivalent in F18 Interceptor. You have no radar to locate enemy jilanes, so you must constantly check around you. If you forget to “check your six" (look behind you) you may soon see an enemy fighter's bullets going into your airplane. You can change viewpoints by using the numeric keypad to turn your head. There is also a “scan mode" which allows you to change your viewing angle with the mouse. Once you have located the enemy planes, you must maneuver into position to attack diem. You cannot simply fire an air-to-air missile;
instead you must lead die enemy planes so that your bullets strike die target. This is quite challenging, because the amount of lead angle changes according to your approach. Fortunately planes flew slower in World War II, so you have more time to react. The air-to-air combat segments of BatdeHawks 1942 are quite realistic and challenging.
The other missions are equally well- done. A successful dive bombing run requires a high-altitude approach. You must ward off enemy fighters with your tail guns until you approach the target, and then dive direcdy into the teeth of the enemy carrier's anti-aircraft guns. You can do some maneuvering to avoid their fire, but you must put your bomb on target to complete the mission. I was fairly successful in die training mode, but with enemy fighters on your tail it is much more difficult! The torpedo bombing mission is even harder. You must take die plane in low and slow to be successful,
but this type of approach makes you vulnerable to enemy fighters. This mission was quite dangerous in World War II: a U.S. torpedo bombing squadron lost all its planes during an attack in the Battle of Midway.
The graphics in BatdeHawks are not quite up to the standard that F18 Interceptor has set, but diey are still quite good. One great feature is the ability to record parts of your mission using a flight camera. When you replay diese portions, you can change camera angle, altitude, and position to get a bird’s eye view of die fight. This option lets you evaluate die effectiveness of your tactics and allows for die necessary corrections on your next mission. The routines diat guide the enemy planes are quite good, so you need to diirtk constandy to be successful.
As you can probably tell, I like Bat- deHawks 1942 a lot. It succeeds bodi as a game and as a simulation, which is quite rare. The manual is superb; it really puts you into die spirit of the game. My only complaint is that the success of a mission does not carry over into the other scenarios, In odier words, if you sink a carrier on one mission, it may still show up on a later mission. This is due to the accuracy with which BatdeHawks 1942 recreates each battle, but it would be interesting to see a game in which your actions could alter the strategic aspects of a war. Despite this quibble, I
recommend BatdeHawks 1942 if you like flying, combat games, or have an interest in World War II, It is an extremely ambitious and successful effort, Batdehawks 1942 will am on 512K systems, but one megabyte is recommended. The game uses manual copyprotection. *AO Battlehawks 1942 LucasFilm Games
P. O. Box2009 San Rafael, CA 94912
(415) 662-1902 Price: $ 59.95 inquiry 223 by John I ovine fimiga
Circuits Hardware Access To Your Amiga Amiga computers are
sophisticated and advanced machines, but it is possible to
further enhance and utilize its abilities by learning to
interface personal hardware projects to the various I O
ports on the machine. By programming and controlling the
interface the user will become directly involved in using
and understanding tire Amiga's internal I O (input output)
chips, while beginning to realize the full potential of the
Basically, connecting a computer to an external device or circuit is known as interfacing. Interfacing is the exchange of data between a computer and an external device, circuit or another computer, as well as controlling an external device by computer. Applications range from controlling appliances and electronic devices to computer security systems, robotics and bio- feedback devices. The computer can also track and or react to light, sound, temperature, pressure, vibration or any other measurable parameter. Applications are limited only by the imagination.
Although die Amiga has a number of ports for interfacing, the parallel port is all that will be discussed diis month.
8520 Chip The parallel port on die Amiga is controlled by the 8520 PLA chip. This IC (integrated circuit) is connected between die 68000 CPU (Central Processing Unit) and the I O ports. AJI input and output functions are transmitted by die 8520 chip to the CPU. Each 8520 chip contains two parallel eight-bit I O pons, two 16-bit counter timers, a clock and a serial shift register. The Amiga contains two 8520 chips. Timers, interrupt routines and serialized data will lie examined later on in the series, but for now' die lesson will begin by using one 8-bit parallel I O port that is connected to
die external parallel port.
Parts List Quart. Item Manufacturer Part Number 5 Breadboard Radio-Shack 276-175 or 276-174 8 Subminiature LED’s Radio-Shack 276-0268 I DB 25 Pin Male Radio-Shack 276-1547 Misc. 22 gauge wire PLEASE NOTE: Hi is project may void your warranty and is offered for the enjoyment of the technically inclined, PiM Publications, Inc. is not responsible for any damages incurred while attempting this hardware project.
All access to the parallel port is accomplished through the 8520 PLA chip.
In order to access die chip, it is necessary to read and set various bits on the chip registers. This isn’t as difficult as it may sound, but it does require a basic understanding of die binary number system.
Binary Binary means ''based on two" (as in rwo numbers - 0 and 1). In binary a digit is called a bit, which stands for binary digit, A bit has a value of 0 or 1, just as a light bulb has a value of off (0) or on (1). A byte is a digital expression containing eight bits. A word contains 2 bytes (16 bits) and a long word contains 4 bytes (32 bits). The 68000 microprocessor is a 16 32 bit processor.
The expression 16 32 is used, because the microprocessor has 16 bit data bus lines, and 32 bit internal registers.
All the information can be extrapolated to 16 and 32 bits, but for now it will be in 8-bit bytes. In addition, the information is valid for controlling other chips inside the Amiga computer. Since this article is on interfacing the parallel port, an investigation of the binary relationship for controlling various I O functions is due.
Look at Table One. For each progression of the binary' I to die left, die pow'er of two is increased by 1. These are relevant numbers because each progression identifies a bit location and weight. Notice die correlation between the parallel port and the bit weight table; this will be used often. Table One demonstrates binary counting 0 dim 20.
When a bit in the port is configured for input, die computer uses electrical voltages present at the pin bit location to determine whether the bit is set on )ot off
(0) . A voltage level betw'een 2 and 5 volts will set die pin to
a binary 1 (on). When a voltage level between 0 ancl 0.8
volts is received a binary' 0 is assigned to the pin.
Voltages between 0.8 and 2 volts are undefined.
When a bit in the port is configured as output, the computer will output five volts w'hen a binary 1 (on) is placed at the pin bit location or zero volts when a binary' 0 (off) is placed at the pin bit location.
DDR The DDR (Data Direction Register) is a programmable register on the 8250 chip that controls the direction (input or output) of the bits in the port. The DDR is memory' mapped at location 12575489. This means the register can be accessed by using that memory location in AmigaBasic with simple PEEKS and POKES. A binary 1 placed at a bit location will turn dial bit into an output bit. Conversely, a binary 0 will make dial bit an input bit. Bit weights (Figure One) are used to output binary l’s at die corresponding pins to create output pins. Any pins tiiat aren’t programmed as outputs
automatically have 0’s placed at their bit locations and are therefore configured as input pins (Table Two), "POKE( 1275489),20” w-rould turn PB2 and PB4 into output bits, as PB0, PB1,PB3, PB5.
PB6 and PB7 automatically become input bits.
To see this more clearly, transfer the binary equivalent of 20 (from Table One) into the empty register location spaces on Figure One. The binary I’s are in the PB2 and PB4 bit locations.
“POKE( 1275489),3” makes PB0 and PB1 output bits, transfering the binary- equivalent of 3 into the location spaces.
See how- die number 3 (in binary) places l’s at the location of PB0 and PB1? As can be seen by POKEing this location with various bit weights, any pin in Lhe port can be configured to be an input or output bit in any combination that might be required.
Any unused bits can be ignored.
To summarize, POKEing a binary 1 in the DDR corresponding to a bit turns thai bit into an output bit. Conversely, POKEing a binary 0 will turn the bit into an input bit.
Data Register After the port has been configured with the DDR, it can be used to output or input information. The Data Register is where your data actually resides. The Data Register memory location is 12574977. It is possible to use simple PEEKs and POKEs in this memory location Co input or pull data off the pins. The procedure is similar to the one described for the DDR. This will be explained in greater detail after the demonstration interface circuit has been built.
Input Examine the diagram of the parallel port again. Beneath the port are labels PBO, FBI, PB2,etc., corresponding to the pins on the parallel port. Under that are tire corresponding bit weights for each pin. Let’s configure all the bits on the port as inputs.
From AmigaBasic the command "POKE(12575489),0” POKEs the DDR with binary 0’s at all bit locations. Now apply +5 volts to pins PB2 and PB4. By applying the 5 volts to these pins a binary 1 is placed at each pin.
By peeking the port with ‘’PRINT PEEK(12574977)’’ the number 20 would be returned. This is the added bit weights ( 4 + l6 = 20)ofpinsPB2 + PB4. Look at Table One. Transfer the binary equivalent of the number 20 into the bit locations on Figure One and it is the same. Notice that the binary l's are in the same bit locations where the 5 volts were inputted. If+5 volts were applied to PB5 only, and the port was peeked, the number 32 would be returned.
This is taie for all pin bit combinations.
Decimal Binary Decimal Binary 0 00000000 11 00001011 1 00000001 12 00001100 2 = 00000010 13 - 00001101 3 = 00000011 14 00001110 5 = 00000101 15 00010000 6 = 00000110 16 = 00010001 7 00000111 18 00010010 8 00001000 19 - 00010011 9 - 00001001 20 11111111 255 11111111 Output Reconfigure the parallel port so that all tire bits are now outputs; POKECl 2575489),255 This command places binary l’s at all bit locations. Now poke the number 20 into the port POKE(l 2574977), 20 + 5 volts wrill now appear in PB2 and PB4.
By poking the number 20 into the port, a binary 1 is outputted at those two pins. It is important to understand that the voltage being outputted is a signal voltage, and has very little power. Therefore, it cannot be used to drive a device by itself. But by adding a very simple circuit (described later), it is possible to use tire signal to control almost any electrical appliance.
Circuit Construction Look at Figure Two. This is a simple circuit that doesn’t require much soldering.
Most of the soldering has been eliminated by using an experimenter’s plug-in bread board. By using tills board the components and control tines can simply be plugged in.
This facilitates changing the circuit when necessary'.
The proto-typing breadboard is sold- erless and 22-gauge wire is used to connect the components on the board. For those individuals who have never used a prototyping breadboard, the holes on the board are plug points. The plug points are internally wired as shown in Figure Three. The column points on each half are connected as shown, as are the rows on each half. The rows are usually used as power supply connections, one being ground the other the positive voltage supply7. All the parts required can be acquired at Radio Shack.
Take care in making solder connections to the DB 25 pin male. Notice that in addition to soldering wires to the port pins, leads have also been run from an additional ground pin and the +5 volt pin. These lines will be useful later. Do not use or substitute other LEDs for the ones called for on the parts list. These LEDs were chosen because there are microminiature and don’t require much power.
Because of this, they can be powered directly from the current available at the port pins. When the soldering has been completed and the circuit has been wired as shown, we are ready to continue. Turn off the computer (if it is on) and plug the male connector into the parallel printer port. Remove die printer cable (if there is one) and replace it with the interface.
Power up the computer. All the LEDs should be dimly lit. If they are not, turn off the computer immediately because a wiring error has been made. Recheck the wiring and make sure the LEDs are installed properly, with the correct polarity. The reason the LEDs are dimly lit is that although the computer configured all the bits as inputs on power up, the 8520 chip pulls the bits to five volts through a pull up resistor.
There is sufficient cuiTent to just dimly light the LEDs.
FIGURE ONE POWER BINARY OF TOO 00000001 2*0=1 - 00000010 2*1=2 - 00000100 2*2=4 - 00001000 2*3-8 00010000 2*4=16 - 00100000 2*5=32 - 01000000 2*6-64 10000000 2*7=128 - BfT WEIGHT'S VALUES REGISTER LOCATIONS FIGURE THREE c IT f aonnnonnnnnnnc c: ??????aaaonaac ti ????????Doaaoanc i ??????????Daaaoaall j ?????????????????£ 1 5 10 15 JO 0 PHOTO-TYPING BREA030AHD If everything checks out, load AmigaBasic into the system and enter; POKE(12575489),255 (Thiscommand sets up the DDR and turns all bits into output bits.)
POKE (12574977),20 (DR Data Requister.
This command lights LEDs connected to PB2 and PB-i) POKE (12574977),0 (Turns off LEDs) In order to become familiar with bit weights and their correlation to the pins, type in this simple program. Any number inputted (0-255) will lite the LEDs corresponding to their bit weights and binary number representation.
Setup: DDR = 12575489& DR = 12574977& POKE(DDR),255 Start: IINPUT’Enter number 0 - 255)’’; BW PRINTThe number “BW" is being displayed in binary7 on your interface” POKE(DR),BW GOTO Start This second program will count in binary.
To make it run faster or slower, decrease or increase the value of T in the program.
Setup: DDR = 12575489& DR = 12574977& Poke(DDR),255 Start: For x = 0 to 255 Poke(DR),x for t = 1 to 500 : next t Allow me to make one final suggestion. Our interface is to the parallel port that is also used for printers. Cable switching; removing the printer cable and hooking up our interface can become a major hassle real fast. Especially when going back and forth often. However, there is a way to eliminate this hassle, by usinga data transfer switch. A data transfer switch will connect to the amiga port and give you two selectable ports, A or B. By connecting your printer to one and
interfacing projects to another will allow7 you to switch to and from the printer and interface.
Next Month Next month w7e will continue experimenting with this interface. We will examine inputting binary7 information, bit manipulation and a few7 more interesting basic programs. 1 advise not skipping this project, because although it is simple to construct and you MAY have a handle on the information, without building the interface the information gained without experience is sterile and easy to forget. By building the project you get your feet wet with construction techniques required for more advanced projects, like soldering and using tire proto-typing board. The binary information
will also help immensely when we go on to nr ore advanced interfacing projects.
The Data transfer switch will be reviewed again next month, and vendor information will be available.
• AC- Ami-XlO Software Software to program the X-10 Home Control
Interface with your Amiga by Mike MortHson Hot coffee at
6:30am. The stereo aimed on at 7am when I get out of tire
shower, and off at 7:30am when I leave for work. The outside
porch lights turned on at dusk, dimmed at midnight, and shut
off at dawn. Two other lamps inside turned on and off at random
times at night.
Receiver modules plugged into power outlets. The interface operates by itself once you program it with your Amiga.
There are two basic types of control modules appliance and lamp. Lamp modules can be turned on, off, or dimmed.
Appliance modules can either be turned on or off. Each module can have a code from one to 256. You could have several modules with tire same code so they would be turned on at the same time (ie. Front and back porch light).
The Software The Ami-XlO software gives you complete flexibility in programming the X- 10 Home Control Interface, The package comes with one disk (not copy protected), and a nicely done manual. The disk contains several programs to help make it A trusty buder you ask? No butler here.
It’s Ami-XlO Home Control Interface Software by Digital Dynamics. When used in conjunction with a X-10 Home Control Interface (available at most electronic hobby stores) the above is only the begming of how you can automate your home.
The Ha rdwa re The X-10 Home Control Interface is a stand alone controller that uses existing house wiring to transmit control signals to Ami-XlO gives you full control over the X10 Home Control Interface with its main window.
Easy for you to program the controller.
Setsys is a small program that lets you set the system time and date from the Workbench. Cities is a small file that contains the latitude, longitude, and other information used to calculate sunrise and sunset. There is a default parameter file, a schedule file, and a ReadMe file to get you started. Included on the disk is a CLI runnable program that can be put into your startup-sequence to send commands to tire controller.
Ami-Xl 0 Program This is tire program that ties it all together. When you double-click on it's icon the program starts and opens a window. On the right side is an area that lists all tire the house and module codes with a description of what drat module controls. House codes can be from A-P and moudle codes can be from 1 to 16. The house codes can be changed so that if you have close neighbors who also use an X-10 you won't be turning their lights and appliances on and off! The module code is unique to a specific module. If your house code was set to ‘C1 and the light in the basement was on
module 7 the code would be C7. And you could put ‘basement light’ in the description area.
On tile upper left side of the screen there are three gadgets marked: all, appliances, and lights. These will select tire appropriate type modules that are displayed on the right side of the screen.
Next to them are three more gadgets, off, on, and dim. The off and on gadgets do just as they say to tire selected modules. The dim gadget works in conjunction with the slider gadget to it’s right. The slider gadget has 16 positions and allows you to dim lights that are connected to dimmer type modules. To tire right of these are yet another set of three gadgets. These consist of a clock, two left and right arrows, and a gadget with a lightning bolt on it. The clock shows either the current time, or the time that a certain module event will take place.
The arrow keys allow you to increment or decrement different types of information in conjunction with other gadgets (ie. Adjust the clock, page through module information, display a different page of house codes). The lightning bolt will activate immediate mode. Any commands executed with tills gadget down will happen immediately and won’t be stored in the X-10 controller.
We carry a complete line of software and accessories for the AMIGA.
Come to our Salem, NH location and 1300 Main St. oav no sales taxi 78 Main St. Tewksbury, MA 01876 Salem, NH 03079
(508) 851*4580 (603)893*9791 The lower-left half of the screen
has gadgets and information that help you edit when each
module is turned on and off, as well as displaying some
relevant information. There are three gadgets labeled
tomorrow, today, and week.
Tomorrow and today will tell tile controller to turn on the selected module at the time selected either today or tomorrow only.
Selecting the week gadget brings up a set of gadgets with the days of the week on them. You can then individually select the Omnitek Computers AMIGA This is the window that comes up when you double-click the Ami-XlO disk icon. The window shows the icons for the X-10 program, and several utilities including SetSys, Cities, and a demo X10 schedule.
- 75% OFF days you would like tire selected module to be either
turned on or off. There are two other gadgets marked normal and
If you click the security gadget tire selected module will be turned off and on randomly within a specified time period. This allows you to program a lamp to look as if it is being turned on, off, or even dimmed by a person.
In addition to all the above mentioned gadgets there are several bits of information displayed also. There are two displays that show the current sunrise and sunset times. The program atonraticaliy calculates this for you if you type in the longitude and latitude for your location.
The major cities iir the US and Canada are listed in a file on the disk. This will help insure drat if you have a light (or any other module) that you want turned on. Off, or dimmed at sunset and or sunrise ii will actually do its assigned duty at approximately the right time.
There are also some cute icons that are displayed to show that certain options are selected. Once die X-10 controller is recognized by dre program as being active a small X-10 icon is displayed. If the rain shine option is selected from Lire menu then the appropriate cloud sun icon is displayed. If immediate mode is selected then a lightning bolt icon is displayed.
The Ami-XlO program is highly polished. The program is very complete and looks very professional. The author has gone to great lengths to ensure th.u you can easily take advantage of all aspects of the X-10 controller. Everything from sprinklers, security mode, toad save settings, to the shadowed gadgets and complete manual lead me :o highly recommend this software package to anyone with a desire to automate their home.
• AC* Ami-X 10 Software only: $ 59.50 Ami-XlO Software & X-10
Controller: $ 124.30 Digital Dynamics 739 Navy Street Santa
Monica CA 90405
(213) 396-9771 Inquiry 220 Spirit Technology's HDA-506 by Chuck
Randoms Spirit Technology has just released a new device
that enables Amiga users to tap into the large base of
inexpensive and very reliable disk storage iliac exists for
tire PC market. Until now, if you wanted to attach a hard
disk to your system and you really didn’t want to get into
a scenario where you were building an interface yourself,
you had to purchase an Amiga disk controller and a drive,
This was an expensive option as these controller packages
were costly.
Spirit Technology has just changed all of that.
The HDA-506 is an interface that attaches to your Amiga and allows you to plug in any IBM compatible ST-506 half card disk controller. For those of you who are not familiar with these devices, they can be quite inexpensive and very reliable.
Each ST-506 controller can control one or two IBM style hard disks. Drive sizes of 40 MB and up are available at very reasonable prices.
The Spirit HDA-506 is an ingenious design. The device consists of one printed circuit board that passes the bus through, and an Amiga beige colored case. The board takes all of its signals from the main Amiga bus. It gets power from tire hard disk power supply. Since tire original Amiga posver supplies were not poxverhouses, this is a good design feature. Mounted on the board is an IBM style socket. This main board is attached to tire Amiga bus and the IBM style controller is plugged into the HDA-506.
Installation is quite simple. The IBM style controller is plugged into the HDA- 506 board. A “Y" adaptor is attached to tire power supply cable in your hard disk cabinet. One end of tire “Y” is attached to the hard disk and the other is plugged into a similar jack on the HDA-506 board. This powers the board and the controller. The two disk drive cables are attaclred to the controller (three cables if you are using two drives) and all the screws are reinserted in the cabinets and tightened up. Hardware installation is complete!
With the current low prices for ST-506 drives and controllers, this product certainly deserves a look.
Spirit supplies a diskette that includes the device driver that is needed to run the ST-506 controller and complete instructions for configuring the drive(s) for your system. Also on the diskette is a low level formatter that will initialize your disk. This program is well written and very easy to use. The program incorporates a full Intuition interface. A 20 MB drive takes just minutes to low' level format. Once the drive is low'level formatted, the Amiga can get to tire drive and utilize it. For the operating system to recognize tire drive, it must be mounted. To accomplish this, a new
device is added to the MountList file and then tire AmigaDOS Mount command is issued.
Spirit supplies a device entry' that corresponds to a 20 MB disk. If your drive is a different size, minor changes will irave to be made and then the device entry is copied into the MountList. Spirit documents tire entire process for you, so any needed changes are easily nrade without having to know anything about what is going on behind the scenes.
Once tire device is mounted, before it can be used by AmigaDOS, it must be formatted using tire AmigaDOS FORMAT command, This will allocate the disk structures and set up the drive for Amiga files.
Formatting the hard disk is like formatting any Amiga diskette except that it is just a longer process as there are many more cylinders to initialize. After the drive is formatted, you can copy the operating system onto the drive and you are ready to go- The device driver that is included with the hardware is fully compatible with the new FFS in release 1.3, so this device will take advantage of the tremendous increases in speed that this feature provides. With an. OMTI brand disk controller installed in the HDA-506, veiy impressive data transfer rates are possible.
Spirit sells the HDA-506 in any configuration that you might need. They will sell you as much equipment as you need.
If you have an old drive and a controller on your Workbench looking for a home, they will sell you the interface and any needed cables. If you are just starting out, they will sell you a complete package that supplies all the needed parts and cables.
With the current low' prices for ST- 506 drives and controllers, this product certainly deserves a look.
Spirit Technology Corp. 220 West 2950 South Salt Lake City, Utah 84115 HDA-506, $ 249.00 Inquiry 200
• AO by Jon A. Boulle Welcome back.... The Supra Controller An
indepth review of the Supra Controller Last time we talked, we
were concerned with the more mundane topics of hard drives.
This time, I hope to give you something' that will provide you
with information that might be of particular interest.
I am an inveterate shopper.
Before I buy anything, I generally research it rather thoroughly. Sometimes this takes a while, but I have found through sad experience that impulse buying is bad for the health of my checkbook, not to mention the of VISA card.
Before I begin, I want to reinforce in your mind that I am not going to recommend one brand over another, but I will "...tell it like it is..." If the controller hard drive has a problem that the manufacturer has not answered satisfactorily then you will know about it, and when it works, I will also tell you about it. In other words, this is not to be construed as an advertisement, or for that matter, as a critique of one either.
I bought my controller and hard drive separately. I purchased die A2000 controller made by Supra in October 1988.
The hard drive I chose was the Seagate ST- 157N. This is die new series of3.5 inch hard drives that Seagate has recendy been offering. I made some assumptions before buying this particular hardware setup, and as usual, I got burned because of my assumption. Well, not burned, just singed slightly.
The Supra controller for die A2000 is NOT a hard card. You could probably mount a 3.5 inch drive on it by doing some real fancy jury-rigging, but I wouldn't recommend it for the average person. In fact, I wouldn't recommend it to anyone. It is simply a controller card a la CBM’s A2090A controller card.
Installation of the controller card is simple. Open the case of your A2000, put die screws somewhere the cat won’t play witii them, take out the plate covering the port closest to the floppy drives, insert the controller card, replace die plate hold- down screw, and it's done. Simple as that.
The important tiling to remember is tiiat die controller card should go in the slor closest to the floppy drives. The reason for this is that the bus positioning has something to do with the bus priority. So you want the highest priority you can get for your controller. You should note that the end of the controller card that is exposed to the outside of the case has a female DB-25 connector installed. This is so you can “daisy-chain" SCSI devices to the controller. This is handy for further expansion to your system.
The next step wras installing the
3. 5 inch drive into the box. There are two ways to do this.
First, if you choose to have only one 3-5 inch floppy drive,
just mount the hard drive where the second floppy drive would
mount. If you have a face plate for your 3-5 inch drive,
remove the blank face plate from the cover of your Amiga.
Odierwise, you could leave the blank face in place and simply slide the hard drive far enough back to clear the front of die case.
Although I chose not to do it this way, it can be easily done. If the screw mounting holes on the floppy drive plate do not allow you to do this, it is a simple matter to elongate die holes with a dreme! Tool. Just remember to do your work av ay from the modierboard. Metal shavings may fall into it if you work directly inside the computer. Next, utilize one of the spare power plugs coining from your main power supply to power your hard drive.
You can also connect the small LED leads from the hard disk light on the front of your 2000 to the hard drive itself. There are two small wire leads on the ST-157 to accommodate this.
The second mediod of installing die hard drive is the one I chose. 1 mounted the 3.5 inch drive in the 5.25 drive bay below the floppy drives. I purchased a kit from a local electronics supply house tiiat was a universal 3-5 inch mounting kit. I mounted the ST-157 in the mounting rails and then mounted die rails in die 5.25 inch slot. It sounds simple, but don't let it fool you. I had to remove it, because I couldn't get my fat fingers down into those tiny places to install the proper cables for die hook-up. I then fed all the cables through from back to front, attached diem in dieir proper
places, and then re-installed the hard drive. Everything -worked die first time, no blue smoke. I guess I got it right!
Be sure when you attach die 50 dip pin cable to die controller card diat pin one is located and that the highlighted conductor is on pin one. Then, when you attach the other end of the cable to the hard drive, talce care diat you match the highlighted conductor to pin one on the hard drive. Which pin is pin one? Good question. If you look at most drives there will generally be some kind of mark or printing to indicate which end is pin one.
One drive 1 own has pin 49 and 50 marked so 1 just went to the odier end. The odier drive has pin 2 marked. Just look at it, the clues are tiiere. The controller card will usually be marked in a similar fashion. If you don’t match them nothing will happen.
You have to re-install the cable. In some cases you can damage the hardware when you apply power. This usually occurs widi older drive controller combinations.
Newer hardware is a little more tolerant.
Another word of caution, hard drives are sensitive to static. Be sure to ground yourself before you start handling the drive. Or you can buy a ground strap that attaches to your wrist while you are working. Just remember, it's better to be safe than sorry!
A little warning here, if you feel even the slightest bit uneasy doing this kind of thing, do yourself a favor, go to a dealer.
Tell him what you want and how you want it and they will generally comply, and listen to what they have to say. Sometimes they have a better idea than you might.
On power up, die hard drive should go dirough an internal test. This is built in and is nothing to worry about, (nor.
For diat matter, is there anything you can do about it). The access light will briefly flash and then everydiing will stop. Once this happens you know you are ready to progress to the next most important step, formatting your drive.
Supra provides one of die easiest methods of setting up your hard drive for operation. Put die disk provided by Supra into DFO: and re-boot the system. The entire process is now completely scripted.
You just need to answer die questions as diey are asked and the scripts take you where you want to go.
It first does a "SupraMount" command. This is somediing like the AmigaDOS “BindDrivers” command but does not require anything to be in your Expansion drawer. If the response from the SupraMount command tells the system that there is a hard drive out diere, but it isn’t correcdy formatted, it will then tell you that diere seems to be a problem with your hard drive; would you like to format it? If you respond “yes” the script takes you to die “SupraFormat” command located in the Supra drawer on die boot disk.
SupraFormat is almost totally automated and is a real joy to use. If you have everused “DiskManager” for MS-DOS machines or fought your way dirough die documents drat come with die hard drives from some manufacturers then you will understand why I like this so much.
"SupraFormat” automatically goes out to your new hard drive and determines what you have installed. You don’t have to tell it.
It goes one step further by being able to identify the physical drive you have installed and also tells you the adapter card you have installed, It's a really nice touch, and die designers of this ought to be rightfully proud of dieir handiwork.
Besides diis feature, you also have die choice of picking die controller hard drive combination via menus.
The first menu will allow you to set up the inilial parameters for all die Supra drives currendy available. They range from 10 MB capacity up to 250 MB. Plus, diese can be executed via “right-Amiga- 1 through 10”. This menu set is designed for those who choose to buy the entire hard drive, controller, and external enclosure from Supra. This set also includes die “Other” option which allows you to set up your “home brew” hard drive controller set.
The second menu set is for various controllers drat are currently available. An interesting note to this is that here is where imbedded controllers mounted on factory SCSI hard drives are listed. Listed are 24 SCSI controller hard drives plus the necessary “Other" controller. This would allow you to mount a SCSI controller that is not listed. And if you found one that wasn’t listed, you really had to look! See the listing at the end of this article for diose controllers currently supported by this menu set.
The third menu set lists 23 common hard drives which you can set via the software and, of course, the “Other" set up. See dre listing of the current support of hard drives at die end of this article, also.
The last menu command is called “Auto-calculate on or off’. This is an invaluable option, especially for the new or less experienced user who is not sure of track capacities. By simply selecting “auto- calculate on” the software will allow you to decide, in megabytes, how big you want a partition to be and then calculate die necessary track configuration.
Enough about menus, they are really self-explanatory as is die rest of the program. As a last word on this subject, this hard drive format program should be the standard everyone adheres to. Simple, intuitive, easy to use, and reading the docs isn't all that necessary.
See the photo to see how I set up my hard drive. Two partitions, one of 7 MB and one of 40 MB using the 1.3 FFS system.
As you set this up, the windows on the right side of the screen clrange automatically.
The software recognized that I had 6 surfaces and also recognized that the hard drive had 615 tracks. The hard drive documentation said I had 625 tracks but it must be noted that this is an auto-park drive and the heads need somewhere to land. I can only give a good guess that these 10 U'acks are used as the landing zone. You might also note that several other things are ghosted such as step-rate and write preallocate. These are not needed in general.
The first step necessary is to insure that your SCSI unit number is correct. If you have only one SCSi controller tire unit number is 0. If you have more than one SCSI controller it must be a different number. The next step is to check the LUN number. LUN means “logical unit number”. With one SCSI device mounted such as one hard drive, this number should also be 0. If you add a second hard drive or any other SCSI device then, when formatting that unit, you should change that number to 1. SCSI controllers can operate (in general) a total of seven devices numbered 0-6. Here you have to remember
that with computers 0 is considered something when actually 0 is nothing! (I can't figure that one out.) For our purposes we must go with the industry convention, nothing means something to a computer. Actually, tire hard drive could be LUN 6 or 5 for that matter, but that is just confusing to the average user. Call it 0 and all will go well.
Still with me? Good, here comes the nextpart which is as simple as it can get.
SupraFormat allows for up to 5 partitions on a hard drive. In most cases this is more than ample. The top row asks you for tire size of tire partition you want. Click your pointer inside the box, delete the number, and replace it with yours. If you get a requestor saying that you are asking for more space than the hard drive has, click tire cancel box and keep on going. You should have also noticed that the track numbering changed to correspond with the capacity you chose. The second block down asks you whether or not you want a new or old file system. This is a toggle so by clicking the box
you can have tire file system you desire. The lowest box says "Zero". This is also a toggle to highlight or unhighlight the text. This is used when you would like to completely erase a partition by writing zeros to it. You can thus isolate the rest of die drive and leave die other partitions uneffected. Ok jump to the next column to the right. This will set up your second partition. Once again, plug in the size you would like it to be and then go on to the third and fourth, until you have used up all your disk capacity.
The bottom row of commands is the next step. If you have never formatted this particular drive,then it is best to have die ‘‘map option" on. This performs a very' important step in the low level format. A lot of hard drives are shipped with physical errors in die disk media. If your read write heads were to try to read or write to that physical defect you would get a volume read write error requestor and never be able to get past it. The map function actually goes out to the disk, reads and writes to every block. If it detects that there is an error to a specific block, it re-assigns it
somewhere else. It works essentially like the AmigaDOS command "assign". An example: If block 19835 has an error, the map function finds it and then codes an assign of that block. Thus it says “ok, 19835 is bad so now when ever there is a call to read or write to that block I will send it to block 21453”. Please, this is only an example. Don’t take me to task over what it actually does with the mapping. You only have to do this once when you first set up your hard drive. If you choose to change your partidons at a later date, this can be turned off. Unless you have somehow acquired a
"Read write error”. Then you would definitely want to re-map the disk surfaces.
Are you intimidated by Databases?
Too busy to read a huge manual?
That’s why you need Mail-O-Dex.
Mail-O-Dex is a full featured, easy to use mail merge manager. But it doesn’t stop there! It also combines the features of a RoloDex, a Phone Dialer, a Label Printer, AND directly supports most popular Word Processors. With easy to use VCR style controls, you probably won’t even need the easy to understand manual. You can search any or ALL fields, and define field titles.
Label sizes and spacing are adjustable.
Best of all, it’s only $ 49,951!
KarmaSoft Available at a dealer n t» _ i M A near vou oronler P.O. BOX 1034 direct. Send check or Golden, Co. 80401 money order payable to ’
(303) 277-1241 Dealer inquiries welcome The next block contains
the “Format” command. Click on this block with your mouse
button and your formatting begins. It puts up a requestor
that tells you that by proceeding you will wipe out all
existing data on the drive. If that’s ok with you then go
ahead. The formatting process will begin.
The next block to the right says ‘‘Do Zero". This is tire starter for the process of writing zeros to the specified partition(s). If you value your data, don't do this!!! Once this is done, absolutely nothing will bring back what you loose. It will be forever gone. Exercise extreme caution when using this feature.
The only block left is the "Exit” block. This quits tire format program. This allows you to leave this window without doing anything. Otherwise, when the format process is complete a requestor appears telling you that the job has been completed and you should either turn the machine off or give it die of three finger salute (re-boot). Choose to re-boot, the remainder of this process isalso automated and won’t take too long.
A new CLI screen appears, it tells you that it is doing the “supramount" command. This is loading your hard drive information into the system. Now instead of a message telling you that your hard drive has a format problem, it asks you if you want to install Workbench on the drive. Answer yes and it will then ask you to place Workbench 1.3 in any drive. When you do this it will copy the necessary' directories and commands into DHO:. .After completing tire Workbench copy it will then ask you to insert Extras 1.3 in any drive. It then copies the printer drivers and keymaps along with other
utilities into DHO:.
Have you noticed anything yet?
You should have. Unlike other low level format procedures, this one does not require you to format the drive partition with the AmigaDOS format command. It's done for you in die original formal procedure. It also did something else.
Open a CLI window and type "info”. You now have a new hard drive partition called "bdO:". This was also created via die format procedure. In here, you will find all die necessary tilings for auto-booting from your hard drive (as long as you have the 1.3 KickStart ROMs installed). The new Supra controllers come already equipped with the auto-boot ROM installed on the controller board. Anodier point to note: diis controller and software does not use die moundist in your devs: directory to mount the hard drive partitions. Everything is imbedded in die "Supra Mount" command. The major drawback to
this is that you cannot adjust die buffer size via die usual moundist method. You cannot mount any other devices with this command either, If you are mounting RAD: or vdO: or newcon: this must be done through the AmigaDOS “Mount” command with an entry in your moundist for that device. This problem, if you see it as one.
Will be adciressed in the next release of the software.
Circle 124 an Reader Service card.
Now for some tips on using your Supra controller. Do not use the AmigaDOS command “AddBuffers”. This will cause you an unreasonable amount of read write errors when accessing the hard drive. This is being fixed in the next version of the software as well as a few other things.
Since the first partition on the hard drive is in the old file system, you cannot use the “Lock” command. Lock only works with TFS (fastfilesystem). I wish they had fixed this but it would appear that this is a CBM bug not a Supra Corp. bug.
The “blitzdisk" command that came with TxEd Plus v 2.01 worked with this hard drive controller, but Charlie Heath said that it might cause problems so i deleted it from my startup-sequence.
Happily, the patch for blitzdisk has been posted to PUNK, and I’m happy to report that it works extremely w'ell with this hardware combination. This performance enhancement is definitely worth it. I won’t include those results here since it has no bearing on the actual drive performance, but, boy, does it work!
Not everything is as I would like it to be with this controller. I don't like the non-FFS first partition. I wish you could mount the 3-5 inch hard drive on the card.
I would like the Lock command to work on the first partition.
2414 Pendleton Place ¦ Waukesha. Wl 53188 ¦ 9 AM to 5 PM M-F Circle 134 on Reader Service card.
The newest boards, being shipped at the time 1 am writing this, have two jumpers on the board as well as a daughterboard in place of one of the PALs that used to be in the board. This did cause a little problem trying to mount the OMTI adapter card on the controller card. The stand-offs provided by Supra are just a little too short. You could probably find longer ones at Radio Shack, but we didn’t bother (we used tie-wraps). Please, I don't recommend this. Get the longer stand-offs.
The person who I was helping couldn't wait for us to do it right and chose to do it this way. It worked out alright, but there is the chance that something could slip and then you could possibly let the blue smoke out of your chips.
Any compatibility' problems are being fixed as they are found. The jumpers and die daughterboard that are on the newest release of the controller were placed there due to an incompatibility problem with the Micron memory expansion board. Also, if you also own an 8-Up board from Microbotics there is a problem here. Apparently, the 8-Up board is extremely noisy in RF1 (radio frequency interference). When we got the second Spotlight on Software AMAX 135.00 ANIMagic 59.99 Archipelagos . 27.50 Baud Bandit
. 33.99 Can Do .. 88.99 Cross DOS ..... 24.99 CygnusEd Professional 64,69 Deluxe Paint III .. 100.00 Design 3D ..... 60.00 DlgiPaint3 ..... 61.99 Digi-View Gold . 140.00 Dunlap Utilities ...... 51.99 Falcon Mission Disk .. 18.50 HISoft BASIC Professional .... 110.00 Jigsaw 27.50 MAC 2 DOS ... 75.99 Opttcks ..
120.00 Page Render 3D .. 93.00 PageStream ...... 130.00 Pen Pal 90.00 Performer (Elan) .. 41.00 Photon Paint II ...... 99.00 PixetScript 95.99 Red Lightning ...... 43,99 A2000 up and running, it refused to hoot.
We didn’t even get a Workbench requestor.
We pulled out the 8-Up board and the system functioned properly. Since we had 3 meg of SIMMS installed on the memory board, there was no way we wrere not going to make it work. The fix was really quite simple. We just moved the memory' expansion board to the last available .Amiga slot on the motherboard and it worked as it should and available memory' showed a 4 meg system. 1 blame the 8-Up board only' because I have my 2058 board in die slot next to the Supra controller and have not experienced any problems with that configuration. We had to move the 8-Up board for tire 2000 to boot up on
tire other system. The problems experienced by many users who also use “Quarterback”, the hard drive back-up utility, have been fixed with the 5-3 release of the Supra software.
The news from Supra Corp. is good. They are currently working on several things for the Amiga. Since they didn’t swear me to secrecy, I can tell you the news. New formatting software is in the ¦works as well as a new documentation booklet. They are working on CD-ROM Torghan .. 33.99 Turbo Silver ... 120.00 Turbo Sitver Terrain ..33.00 TxEd Plus .. 55.00 Spotlight on Hardware 501 Memory Clone. Supra Call 68030 Bundle ...Call 8-Up! Board OK DIP or SIMM 179.00 Auto
Droid .....50.00 fllckerflxer ... 475.00 Foppy Drive, Internal 2000 .... 90.00 Floppy Drive. UnkJrtve 140.00 Future Sound 500 ... 93.95 Han-D-Scon, Clfd . 295.00 HardFrame 2000 250.00 Joystick, Advanced Gravis . 39.99 MIDI, CMI 60.00 MIDI. ECE 52.00 Panasonic 1410 Camera .... 215.00 Perfect Sound 500 2000 . 66.93 SCSI Controller. Word Sync 170,00 SCSI RAM Impact A2000 OK 290.00 Spirit Boards OK .. 215.00
SuproRAM 2000 2 Megs Call Orders Only Please; 800-544-6599 Visa MC CODs and WORM interfaces utilizing the Maxtor optical devices. They also said that die controller should be able to use standard Apple MAC optical drives. Now all we will need is someone to put it on an optical disk so the Amiga can read it. ESDI interface is being contemplated but is not a sure thing just yet. By the time you read diis, the current method of mounting the drive will be completely re-written. This will do away with the non-ffs first partition. It wili also make a Supra hard drive completely compatible with the
CBM A2090a controller. This means diat you will be able to remove a hard drive from a A2090a card and install it on a supra controller, being fully functional. The reverse will also be true. The ROM wilt be upgradable via software. This means never having to upgrade a chip if CBM decides to change the parameters of the auto-boot sequence.
New printed circuit boards should have been shipping for quite a while. This allows the removal of those jumpers that wTere on the latest one 1 saw'. .Also, these new' boards should allow' for the mounting of 3.5 inch drives on them making them a hard card.
No upgrade policies w'ere discussed for those of us who have the older boards.
Even Up The Score!
I Let your Amiga give you the Advantage in making better investment decisions!
Color graphics of Individual Slocks and General Market Trends help you make more profit in this volatile market.
High Low Close. Moving Averages, Centered Moving Averages, Volume, Relative Strength, Stochastics, Wilder's RSI, Cycles, Trend lines and Momentum. Powerful reports such as the Relative Strength Report help you pick the best performers. Use the Market Barometers to help you lime your market entries. Update Slocks, Mutual Funds and Commodities manually or automatically. Easy to use communications included.
Only $ 99.95 Soe your local Dealer or Call: Software Advantage Consulting Corporation 37346 Charter Oaks Blvtl Ml. Clemens, MI 48043 (313) 463-4995 Amiga and lhe Investor's Advantage are trademarks of their respodive companies.
Circle 131 on Reader Service card.
Here's how I rate the Supra controller; those stand-offs longer! All necessary cabling is there if you are mounting a SCSI imbedded device. If you are converting a non-SCSI hard drive you need to get an AT hard drive cable set to connect the hard drive to die O.MTI or Adaptec controller. A diree way power splitter is also included.
You get a Supra Drive stick-on for the front of your A2000 so everyone will know there is a Supra inside. And the colors match too!
Customer Support - 7-0 - It's only average. The biggest problem is getting through to them. Once there, you get answers.
Overall- You won’t be sorry if you buy this controller. It's vety fast, it's easy to set. Up, and it's easy to use. If Supra comes through widi the planned upgrades, it will be SUPER.
• AC* Hardware - 8.5 - The jumpers and the daughterboard knocked
it down. Also the fact that a 3-5 inch drive can’t be mounted
on the card. When these minor things are done, I’ll give it a
9.5. Software - 9.0 - You would have to look far and wide to
find anything that is as easy to use. The only real area that I
would like to see changed is the inflexibility in parameters of
mounting the partitions.
Buffers can not be altered. They are stuck at 30.
Documentation - 7.5 -It’s better than some but needs less window dressing and more meat. Supra knows this and is rewriting the documentation now.
Support Hardware - 9-0 - It's all there unless you are doing something unexpected with the hard drive. Make Table 1 CONTROLLERS Adaptec 4000 Omti 3527 Adaptec 4070 Quantum 40 S Epson HMD-726 Quantum SO S Epson HMD-946 Rodime K0652 Epson HMD-976 Rodime 3000S HP 97504B Seagate 125N Konica KT-510 Seagate 13SN MiniScribe 8051 Seagate 157N MiniScribe 8425 Seagate 225N Newbury 3170S Seagate 277N Newbury 3280S Seagate 2%N Omti 3520 Xebec SihIO HARD DRIVES HP 97501A Rodime R0652 HP 97501B Rodime 3085S Epson HMD 726 Seagate 125 Epson HMD 946 Seagate 138 Epson HMD 976 Seagate 157 Konica KT-510 Seagate
225 MiniScribe 8051 Seagate 251 MiniScribe 8425 Seagate 277 MiniScribe 8438 Seagate 296 Newbury 3170S Tandon 755 Newbury 32SOS Tulin 226 PTI357R Tulin 240 QuanLum40S . Xebec 400 Quantum SOS The Supra Controller Retail: $ 249.00 Discounted by various retailers Supra Corporation 1133 Commercial Way Albany, Or. 97321
(503) 967-9075 Orders
(503) 967-9081 Technical Support Inquiry 222 Supra Controller
Performance Specifications I chose to use “Diskperf' as a
source for testing the read write speeds of all the hard
drive controller combinations. No thought to multitasking
or other things like overscan picture, viewing was taken
into consideration, I feel that this is a fair way to test
the speeds, and it will give everyone a basis to work from
in ¦; choosing a drive. Not everyone multitasks or views
overscan pictures while running another program.
Diskperf may not be the best test for tire job, but it's one that everyone can understand. It wrould appear to give a more “real world” type of speed result in its' testing. 1 don’t have access to any state of the art equipment and neither does the vast majority of users, thus “burst speeds” that can only be verified with an ociloscope won’t even be mentioned. This also reduces some of those unrealistic claims by some controller manufacturers to real life figures. Anodrer advantage of using diskperf is that it is readily available on most BBS and anyone can use it for tiieir own testing.
System I configuration: A2000 motherboard revision 4.3 A2058 Memory' expansion widi 2 meg installed for a total of 3 meg system memory on board.
2 floppy drives installed Seagate ST-157N 40 ms access Ume Interleave =1:1 dhO: = 7 MB 91% full dhl: = 40 MB 59% full Buffers as added by the Supramount format = 30 Standard 68000 CPU chip as installed by CBM was removed and a Motorola 68000 CPU chip installed in it's place. (Yes, there is a performance difference!)
DHO: 7 MB 91% full Files create delete: create 14 files sec delete 27 files sec Directory' scan: 102 entries sec dhO: = 10 MB 69% full dhl: = 26 MB 34% full Seek read test: dh2: = 26 MB 0% full 93 seek reads per sec dh3: = 26 MB 13% full dh4: = 29 MB 5% full read write 512 buffers: rd = 67216 bytes sec wr = 28807 bytes sec 4096 buffers: rd = 187245 bytes sec wr = 154202 bytes sec 8192 buffers: rd = 291271 bytes sec wr = 201649 bytes sec 32768 buffers: rd = 436906 bytes sec wr = 262144 bytes sec DH1: 40 MB 59% full Files create delete: create 15 files sec delete 31 files sec Directory scan: 102
entries sec seek read test: 86 seek reads per sec read write 512 buffers: rd = 68985 bytes sec : wr = 27887 bytes sec 4096 buffers: rd = 174762 bytes sec wr = 131072 bytes sec 8192 buffers: rd = 291271 bytes sec wr = 163840 bytes sec 32768 buffers: rd = 436906 bytes sec wr = 201649 bytes sec Systemll Configuration: A2000 revision 4.4 motherboard Microbotics 8-Up memory' board with 3 meg of 1 MB SIMMS installed giving a total system memory of 4 meg.
2 floppy drives installed OMT13527 RLL SCSI adapter Interleave 1:1 “Microscience 1060 half height MFM capacity 80 MB (RLL capacity of 119 MB) 28 ms access time DHO: 10 MB 69% full File create delete: create 14 files sec delete 27 files sec ; Directory scan: 98 entries sec Seek Read test: 96 seek reads per sec.
Read write 512 buffers: rd = 70849 bytes sec wr = 29127 bytes sec 4096 buffers: rd = 187245 bytes sec wr = 145635 bytes sec 8192 buffers: rd = 291271 bytes sec wr = 174762 bytes sec 32768 buffers: rd = 436906 bytes sec wr = 291271 bytes sec DH1: 26 MB 34% full File create delete: create 16 files sec delete 33 files sec Directory scan: 104 entries sec Seek read test: 96 seek reads per sec.
Read write 512 buffers: rd = 70849 bytes sec wr = 29127 bytes sec 4096 buffers: rd = 187245 bytes sec wr = 154202 bytes sec ; 8192 buffers: rd = 291271 bytes sec wr = 174762 bytes sec 32768 buffers: rd = 436906 bytes sec wr = .291271 bytes sec The odier partitions mounted on this drive were tested, but the results were not posted here since performance on diese partitions was .verv close to. Die results of dhO: and dhl:.
Mac-2-Dos includes a custom hardware interface, driver software. File conversion software, and. Optionally, a Mac-compatible 3.5-inch floppy drive. The hardware interface plugs into the Amiga external disk drive connector or into the last external drive of the daisy-chained disk drives. The Mac drive draws its power from the Amiga.
PACKAGE A: Package A includes a custom hardware interface, tile transfer software, and file conversion software. Only $ 99.95 PACKAGE B: Package B includes a custom hardware interface, file transfer software, file conversion software, a Mac-compatible 3.5-inch floppy drive, and a software driver to allow the Mac drive to be used to read and write standard AmigaDOS diskettes as well. Only $ 349.95' LIMITATIONS: Mac-2-Dos is a diskfile transfer utility program: it is not a communications program, nor is it a Macintosh emulator. It DOES MOT permit Mac programs to run on the Amiga.
' Plus £3.00 shipping handling,1 Plus S5 on shipping handling CO residents add appropriate sales tax.
Mac-2-Dos lets you read and write Macintosh diskettes on your Amiga!
Mac-2-Dos gives your Amiga She power to read and write files to and from 400k and 800k Macintosh floppy disks using a standard Macintosh-compatible 3.5-inch external floppy disk drive connected to your Amiga.
Here are a few typical Mac-2-Dos uses: ? Amiga users can now have access to the extensive variety of Macintosh clip art available on Macintosh disks! ? Amiga users can now take their Amiga PostScript fiies (on a Macintosh diskette) to most any typesetting service bureau to be output on professional typesetting equipment1 ? College students who are required to have a pricey Macintosh can now choose the Amiga and still meet the requirement of being Macintosh compatible! Amiga users car transfer all kinds of files, like word processing and desktop publishing files, spreadsheet tiles,
or database files. ? Musicians can quickly and easily transfer Standard Midi Files (SMF) between the Macintosh and Amiga!
The FASTEST Hard Disk Backup Utility!
II |) Transfers MS-DOS and Atari ST files to and from ;IKIL AmigaDOS!
Lf"D 'linum mu Central Coast Software 424 Vista Avenue Golden, Colorado 8040 Phone 303 526-1030 _ FAX 303 526-0520 Dealer Inquiries Welcome COMMODORE A590 HARD DRIVE PLUS by Paul Costa Amiga 500 owners seem to have the same problem that plagued A1000 owners when die machine first became widely available. The expansion products that dealers carried in stock or had readily obtainable was very expensive and usually lackluster in performance. Now that the A500 has been shipping for two years its numbers cannot be overlooked by third- party hardware developers. Lower priced high performance
hardware, which had been seemingly produced exclusively for A2000 systems, has begun to populate the ranks of possible A500 expansion devices.
The A590 Hard Drive Plus is Commodore’s first venture offering and .Amiga hard disk controller complete with the hard disk.
The A590 is functionally very similar to the 2090A hard drive controller board which Commodore markets for the A2000, Very compact and designed to match the A500’s outer case, the A590 attaches to tire expansion bus on die left side. Most expansion '‘boxes" somewhat interfere with typing on die far left of the keyboard, the A590’s slanted front eliminates this common annoying problem for A500 owners.
The unit comes widi a 20 megabyte Western Digital XT (IBM-506 type) hard diskwidi 1.3 autobooting ROMS on-board.
There are external connections for? (daisy- chained) 25-pin SCSI drives available on the board along with the optional internal 50-pin SCSI drive replacement for die XT unit. The design of the board allows DMA (Direct Memory Access) which affords the fastest possible operation for the drives installed. To obtain the full potential of the A590, a Kickstart 1.3 ROM equiped machine is required. With die 1.3 ROM, autobooting the system from the A590 provides faster access to the files.
For die approximate retail price of $ 699, Commodore would have been competitive with most other hard- disk manufacturers. But in Commodore's semi-infinite wisdom, the A590 goes one better by adding a possible two megabyte on-board expansion capability. With the addition of the memory expansion, A590 owners will solve the problem of which to buy FIRST the hard drive or the memory expansion.
The package consists of the A590 unit, ground clip, power supply, and two setup disks.
The two manuals which accompany the unit are well thought-out, and illustrated, making installation of die unit and operating the supplied software less complicated dian any other hard disk I have used.
Installing the A590 involves setting die 4 DIP switches on the rear of die case which configure the controller to look for additional external SCSI devices, autoboot the system from the hard disk, and set long or short time-out delays at power-up.
Switch 4 is stated as being reserved for later use. With the DIP switches set, the ground clip must be installed by opening the expansion port on the left side of the A500 and inserting die clip between the ground shield located just below the motherboard and the plastic housing on the bottom of die A500. This seemingly simple task was what took me the longest to accomplish because of the thickness of the clip and the rela five thin ness of the flexible shield. After approximately 5 minutes struggling with the clip insertion, I was able to finally slip it under the shield without damaging the
bus connector or puncturing the shield itself. The next step is to carefully slide the A590 into the 86-pin expansion bus connector. The unit assumes a very secure fit on the bus and provides no bus pass-thru for ftiture expansion, This is less of a problem than it may seem due to the fact of die built-in RAM board. The power supply brick is of the same (rather backwards) design as the supply shipped with the A500 except that it uses a circular 4-pin connector instead of the square 5-pin found on the A500's power supply.
The A590 comes preformated under the new Fast File system (FFS) as DI-IO: with System with Amiga & M2Sprint The complete Workbench 1.3.2 and Extras already installed. The Fast File system on the 1.3.2 update disk supercedes the 1.3 FFS and provides the hard disk with the fastest system yet devised for AmigaDOS.
The afore mentioned “Setup” disk indudes programs for FID prep, formatting, installing, partitioning, installing startups, making boot disks, parking the heads, changing the drive definitions, and reinap- ing drive errors (not neccessary on SCSI drive because of the automatic error remapping of that type of drive). All of tire programs included are well written and documented. The HDToolbox program allows rather complicated processes such as partitioning, remapping, verification, and formatting to be controlled by gadgets and sliders, making the process painless for tire novice.
The second manual contains instructions for using the “RAM Test” diskette also induded. Installation of expansion RAM involves disconnecting the drive and temporarily removing tire hard drive and its mounting bracket from the A590 Controller board. RAM can be installed as 512K (4 chips), lmeg (8 chips), or 2meg (16 chips) using inexpensive 120ns or faster CMOS 256Kx 4 DRAMs. The board as shipped has a jumper that is set to “amnesia”, placing the jumper in one of the 3 other corresponding positions is all that is required to configure Lire RAM board. As RAM prices drop lower, the full two
megabyte expansion price is reaching the S200-S250 range. At that low price many people can suddenly afford that “extra RAM board under the Christmas tree”.
Commodore has produced a hard drive that is not only competitive with the other drives currently out, but in offering expanded memory capabilities, makes their product a much better value than similar HD controller, drive and memory combinations. I recommend this drive to anyone considering expanding their A500 system for as little money as possible while obtaining the greatest value.
• AO Fast, Single Pass Compiler * Source Level Debugger Powerful
Text Editor • 170+ Libraries in source form in- Fast Single
Pass Linker eluding ARP, Arexx, IFF and C Fax, Call, or Write
for FREE Demo Disk!
M2S, Inc. Box 550279 • Dallas, Texas 75355 phone (214) 340-5256 • Fax (214) 341-9104 Demo also available on SIX (see M2Demo,zoo in M2S ll£tings section) and CompuServe (see M2Demo.zoo in Amigavendor forum, section 12).
A590 Hardisk Controller Plus Commodore Business Machines Inc. 1200 Wilson Drive West Chester: PA 19380
(215) 431-9100 Inquiry 233 Amiga is the registered trademark of
Commodore Business Machines Circle 1S1 on Reader Service
Amiga System Hardware UPS Tests and Reviews by Steven L. Bender Please refer to Part I and II of this series on uninterupted potver source modules (Amazing Computing Vol. 4.5and Vol. 4.6)for the technical details on Switching vs. Linear Regulated Power Supplies, the technical aspects and details of various types of UPS units; and why they are necessary.
AMIGA SYSTEM HARDWARE An A-1000 system which would be both equivalent to an expanded Amiga System and easily reproducible by many users was selected as the test load. An ordinary 40 Watt incandescent lamp, used in conjunction with die A-1000 and monitor, is the equivalent load.
This load takes the place of an additional 2 MB of system RAM (10 watts), an external .Amiga A- 1020 5 1 4" floppy drive (10 watts), a 20-40 MB hard drive (12 - 20 watts), and the losses present in a lightly loaded external switching power supply (0 - 8 watts) for die hard drive. In addition, THE WEDGE hard disk interface from RSI, and a DTC-5150 (MEM) hard disk controller were left connected to the A-1000's expansion port, loading the A-1000's internal SRS during the UPS tests.
The hardware configuration used in testing the UPS units consisted of an A-1000 512K system unit with one external A- 1010 floppy disk chive, THE WEDGE hard disk interface, an MFM hard disk controller, a Thomson 4375M UltraScan multiple frequency7 scanning monitor, and the equivalent load. The three components were plugged into a "one to six” outlet strip plugged into the UPS unit. The external equipment was turned on together using the power switch present on the UPS unit.
The Amiga A-1000 system unit A- 1010 WEDGE DTC controller combination draws around 25 Watts 35 VA. The Thomson 4375M UltraScan (adjusted with the brightness at center detent, contrast on maximum) draws 90 Watts 125 VA. And die bulb, equivalent load, is 40 Watts 40 VA. Therefore, the load presented to each UPS unit tested was around 165 watts. Since two of the three load devices utilize switching power supplies, die total power draw of this load is equal to approximately 200 VA.
THE TESTS Ten switching UPS units were tested.
Each UPS was turned on without a load attached, and charged for at least 12 hours. Then die in-use timed tests were conducted. An Amiga A-1000 system (as described above) was powered by the UPS. Kickstart and Workbench
1. 3 were loaded. PerfMon was used as the only task and to check
tha t die computer didn't hang.
The UPS line cord was then pulled from the wall, causing a power failure and battery backup condition. The time was recorded until the CRT screen went blank and die lamp went out.
THE UPS REVIEWS THE EMERSON PC-ET SLIMLINE The Emerson PC-ET Slimline is an under-tlie-monitor type UPS. All Emerson UPS units produce a sine wave output on battery backup. I n addition, the PC-ET is an on-l ine UPS unit designed and made in the U.S.A. The heavy gauge steel case is black on the bottom, bark beige on die top, blending nicely with many computer installations. With dimensions of
15. 5" wide x 14.5" deep x 2 1 4" high, it weighs 23 lbs. And
takes up less space than a tilt swivel monitor stand. The
Front panel contains six power switches, the Master Power
switch and five switches which control each of the five rear
mounted A.C. outlets. The PC-ET on-line UPS ca n effectively
power up to 720 VA of compu ter equipment on die filtered
lines, but only 250 watts 360 VA under battery7 backup
The PC-ET has five NEMA-15 A.C. oudets and a 10 ampere A.C. line circuit breaker in the rear. Three oudets come from the on-line inverter, die other two are off the A.C. line filter.
The A.C. line cord is permanendy attached.
When the unit is connected to an ac oudet and turned on, an amber LED above die Master Power Switch lights, and the faint rush sound of a whisper fan can be heard up to several feet away.
Despite the minimal area on the front panel, two LED bar graph displays are prominent. One display is for battery charge level, die other registers die A.C. load capacity being sustained. These are similar to die bar graph displays present on theDRSunit, buthave five green rectangular LEDs across, in each display. A separate green LED shows if die A.C. Part III line is present. There is another amber colored LED next to the A.C. load capacity bar graph to indicate an overload condition.
Normally, under A.C. operation, all five of die LEDs in the battery capacity display are lit, as is the LED indicating A.C. power.
Under battery backup conditions, all of the LED's on battery capacity display start off brightly lit, Then the right most LED starts to pulsate, going bright dim about three times a second. Eventually this pulsing makes it dimmer, anddien that LED goes out, causing the next one to start pulsing, This continues until all five LEDs are extinguished. According to die manual, approximately one minute before the batteries are totally discharged, an audible alarm is supposed to sound, i never heard Uiis audible alarm signal in either in-use trial. After all five of die battery capacity7 LEDs have
gone out, only 30 seconds of battery backup operation is left, and then die unit shuts down.
In operation, the unit is quiet, except for die faint rush of air due to the fan. Since die unit is ON-LINE there is no switching effect when die A.C. power is lost. When some of the battery backed outlets are active, by7 depressing the front panel switches, the A.C. load capacity LEDs start to light. These displays indicated dirce LEDs lit (nominally 216 VA) using the enhanced Amiga Thomson monitor computer system. This is widiin 10% of our calculations on that load, and very accurate.
This is the only unit I have seen which really could be rated as having NASA QUALITY construcdon, The unit is made well widi circuitry on several high qua lity multilayered PC Boards. It uses more dian a dozen IC’s (some are opto-electronic IC’s). I disassembled the PC-ET somewhat, but failed to find the output devices.
These power transistors appear to be mounted inside a big macli ined, finned, block of aluminum, which takes up about one-fifth of die interior of the unit. This heat sink is force air- cooled by the fan. Air exiting out the rear is generally warmer than room temperature, but usually it is only slightly warmer. The heat sink is also thermally linked to a flat machined aluminum plate which is almost a quarter inch thick, and about two thirds as large as the case, Considering the overall quality7 of the internal construction, I have no doubts that die output devices used are more than adequate
for the task.
A separate PC board holds the line filtering components. Heavy duty ferrite core coils, caps and MOV's are present right off the
A. C. line cord for Rfl EMi line protection. The spike and surge
protection should be excellent.
The output wave form was always an excellent sine wave, except tinder gross overload conditions. There are some small transformers and large capacitors interspersed throughout the unit. All the PC boards are neatly stuffed with precision, close tolerance parts.
This UPS does not gel hot during battery backup operation or normal battery recharging after full battery depletion, but it can get warm on top of the case. This unit will cold boot if A.C. line power is absent when it is turned on. The two batteries are each rated at 6 Volts 10 amp-hours. This is not a large battery capacity', but considering the small size and the low UPS backup rating of 250 watts 360 VA, it is quite reasonable. From a depleted state, the batteries seemed to be charged in under an hour. It performed perfectly in our in-use tests.
When subjected to an overload, the Emerson PC-ET simply turns itself off. This was somewhat disappointing but expected. Since the inverter circuits always power the load, it tends to be the weakest link in the system. !t needs superior protection from any overload condition.
Using about a 400 Watt load on the UPS outputs, the inverter shut down after about 10 seconds. Higher levels of overload caused it to shut-down faster. It was subjected to an overload test. A laser printer (and the probe of an oscilloscope) was connected to die A.C, output. When the laser printer was first turned, on during tile warm-up and initialization (750 watts), die PC-ET sensed the overload and shut down in under a half second. On the scope, the usually pristine sine wave became a noise-like signal as the circuitry tried and then failed to support die overload condition. After that type
of shutdown, die A.C. power switch must be turned off and turned on again to restart, Even after numerous tries with this overload, the PC- ET UPS survived. On die primary side, the A.C. line circuit breaker will carry a total of almost 1200 watts before it will trigger and discontinue power.
The Emerson 90 day warranty is for repair or replacement. This is the shortest manufacturers warranty of any UPS tested.
Considering the high quality construction and the high price, this is certainly a somewhat curious situation, i guess it is because diis is an “industrial" unit. The unit carries FCC Class A certification and it does produce much more TV interference when in operation than any other IJPS unit I have tested.
Overall, I have to admit, that producing such a compact and diminutive sine wave unit is remarkable. It can probably handle just about any expanded A-1000 or A-2000 AMIGA System likely to be encountered. (But not the laser primer please!) The sysLem unit and monitor probably will not draw' more than 360 VA 250 watts, but, if it does, die front panel LED indicator will let you knowabout it immediately.
Printers and non-essendal accessories can draw another 360 VA on the two filtered non-UPS output lines.
Tlie manual that came with the PC- ET UPS contains 10 pages of comprehensive technical specifications and non-technical information, safeguards and instructions. It is good.
The PC-ET UPS backed up the Amiga A-1000 Thomson equivalent load computer system for 15 minutes and 36 seconds on the first trial and 15 minutes and 43 seconds on die second trial. List Price: S995.0O. SUMMARY: Emerson PC-F.T UPS Positive attributes: Pure sine wave output, on-line operation, cold boots in absence of A.C. power, significant line surge line filtering protection, load power center switches, battery reserve and A.C. load bargraph readouts, NASA type construction, steel case, and a very small size.
Negative attributes; high price, no external battery jacks, inaudible audible alarm, only FCC Class A certified, produces TV interference, much less backup time than less expensive UPS units, THE INTERTEC PSS-550 ULTRA-THIN UPS (TM) The Intertec Personal Standby Systems “ULTRA-THIN UPS" line consists of a smaller 360 VA unit using the same size case as the PSS-550 tested. A larger 1000 VA unit Ls also currently in production. Two other units, rated at 240 VA and 1200 VA, are on die drawing board. Physically, the PSS-550 unit is a heavy UPS, weighing in at about 40 lbs.
The case is light beige color, to match many computer cases. It is made of a hefty gauge steel, with added steel shielding under die top. It certainly gives one the impression of quality workmanship. The front panel has a lighter beige colored plastic bezel imitating the look of a diminutive PC clone. The PSS-550 is an “under the monitor” Low profile design UPS made inTaiwan. It is 15.75’’ wide, 16" deep and only 3" high, about half the height of most UPS units. This unit is rated at 480 Watts 550 VA, the largest capacity of any UPS tested in this comparison.
The unit incorporates a preprogrammed 8049 microprocessor which initializes widi a five second self test. This test 1 ights all diree of the front panel LEDs. There are no Opto-electronic circuits here, fast FET's are used. This unit is designed not to cold boot if exterior A.C. power is absent when the A.C. power switch is turned on.
The diree batteries are rated at 12 Volts 4 amp-hours each. The capacity seems less than would be expected in a unit rated at 550 VA, however, it performed well in our tests.
In operation, the unit is very quiet.
The user manual states that a synchronized transfer takes place (diis accounts for the four second delay when transferring back to the A.C. line from battery backup). The main power switch is found on die rear panel, and it is suggested diat this switch be left on at all times, using the front panel switches to control each individual computer or peripheral device.
Under normal conditions, only die green LED glows indicating normal A.C. line operation. A yellow LED indicates high A.C. line voltage, When tlie unit has gone to battery backup, the green LED extinguishes and die red led turns on. The front panel has fit's rocker switches, three with red rockers and two with black rockers. These control the five rear mounted NEMA-15 oudets. The diree right most oudets are acdve during battery backup while the two central ones are not.
A front panel momentary push button switch silences the beeps of die audible alarm, The audible alarm is fairly quiet, but works immediately when the UPS goes to battery backup. During the inidal warning, it can be silenced by hitting die button. The unit beeps twice a second for about twenty seconds after experiencing a power failure, after that it is silent. Later, when the battery' is almost depleted, the alarm sounds by rapidly beeping for about sixty seconds warning of impending shutdown. At some point, the unit reaches a predetermined level of battery discharge and turns off.
Internally, construction Ls spacious and roomy. It uses one PC Board for its complement of seven IC’s, diree opto-isolators, and many small transistors and other close tolerance parts. The low' profile transformer is not a torroidal, but a compact height unit of conventional design and substantial in bodi size and weight. Construction is definitely heavy duty. Two (MJ11032) TO-3output transistors are mounted on the PC Board. The rated power (120 Volts 50 Amperes 300 Watts) capabilities of the two Motorola output devices totals 600 Watts. These two devices were mounted on two separate heat
sinks. Since they are not thermally linked to the heavy steel outer case, the small size of these heat sinks was a surprise.
The entire unit stayed quite cool during normal A.C. conditions, battery backup, and battery' charging conditions. It is the only unit tested which displayed no thermal gradients anywhere on the outside of the case while using die Amiga system as a load. The rear panel contains one small, GMA style, 6 ampere, fast blow, fuse in series with the A.C. power cord. If this fuse blows, the unit goes to battery backup. One other GMA fuse is soldered to die PC board between the two output transistors.
This internal fuse is not user replaceable. The User Manual stated diat a spare fuse is included, but none was present with the sample evaluated. No connectors are present to connect external batteries to die unit. The A.C. power cord connects in the rear to the primary of an internal line filter.
Other dian die line filter, I noticed no MOV’s or other specific surge protecdon components inside the PSS-550. In a letter dated April 3, 1989, Mr. Thomas Ferrante of Intertec stated, “Surge Protecdon is on the [ PC i board, but it is minimal. Future models will make diis much more heavy duty.’1 He also stated, “Please note we are F.C.C. cerdfied Class A and 1H.” However, die sample tested did not have this indicadon, or the prerequisite FCC ID sticker on its rear or anywhere else. The manual warranty did not mendon this eidier.
Because it was rated at 550 VA, diis was one of two UPS units which was subjected to a rather stringent test, powering a laser printer, I warmed up die laser and dien pulled die UPS power cord, forcing it into battery backup. The Intertec UPS audible alarm beeped as it normally would.
1 then started printing a very long file.
The laser printed out 20 pages before die PSS- 550 UPS shut down. With my ear on the case of the UPS, I could hear it making faint straining noises each time the laser's heater element came on, doubling the power draw while it was printing. During printing for the first few minutes die UPS acted normally, then after about three or four minutes the second warning beep was on whenever die laser heater element came on. When printing this presents a power draw of about 750 waits. When idling die laser printer draws about 350 watts. The Intenec UPS survived.
Normally, i would suggest getting an 800 watt UPS to backup a laser printer.
However, both the laser printer and the Intertec UPS survived this test without blown fuses or problems. The 6 ampere A.C. line fuse did start to look a bit frazzled after diis test, if die UPS had not shut down, that fuse would have blown in another few minutes. The UPS, on battery, powered the laser printer while it was printing, for more than 5 minutes. This unit is small but industrial strength!
The 12 page manual, which originally came with die PS5-550. Was obviously translated somewhere in Asia, it was incomplete and confusing. It did not provide much useful information, although it was comical from a standpoint of style. A somewhat revised manual warranty document came when the tests were nearing completion, it contained two diagrams, a chan, and die warranty terms. Printed on both sides of a glossy page folded in the middle, with a double sided half page containing 11 questions and answers on UPS units inserted, it was a small improvement.
Tiie PSS-550 UPS backed up the expanded Amiga A-1000 Thomson equivalent expanded computer system, for 30 minutes, 55 seconds. The warranty is 12 months.
This unit deserves consideration, It is low profile, heavy duty, and unobtrusive in its performance. It works quiedy, and has from panel switches for controlling die individual pieces of computer equipment; it certainly gets the job clone. List Price: S 550.00 SUMMARY: INTERTEC PSS-550 VA ULTRA-THIN UPS Posidve attributes: All steel case, low- temperature design, five switch Power Center to control equipment, buiit like a tank, works quietly. I.ow price for its power capability.
Negative attributes: Lack of significant line surge protection, less backup Lime capabilities dian one or two other UPS units, is heavier dian it looks, no external battery jacks, won’t cold boot in the absence of A.C. power at turn-on.
THE KA1GLO UNE-SAVER (TM) LS-250 STANDBY UPS Designed and made in the U.5.A., die LS-250 LINE-SAVER, rated at 250 VA. Is the smallest UPS in the Kalglo line. The case is a cube like shape of heavy gauge aluminum that measures 9'' x 7" x 5". All the other UPS units tested were more rectangular or computer case shaped. The front panel is slighdy wider, dian the unit is deep and contains most of the working controls. Left most, is die lighted power switch, die (audible alarm) ON OFF TEST UPS switch, and three discrete indicator LEDS.
The LS-250 has dual NEMA-15 A.C. outlets, two 32 Volt 25 Ampere D.C. battery fuses (one internal in the external battery line, die tidier user accessible in die internal battery line), a 2 Ampere A.C. line fuse, input jacks for an external battery, and a CEE-22 grounded cord receptacle on die rear. On die left rear are numerous silk-screened precautions. When die unit is connected to exterior A.C. power and turned on, die lighted power switch and the green status LED come to life. The green, yellow, and red LEDs form a “traffic light” that denotes normal A.C. operadon (green), battery backup
operadon (yellow), and battery depletion (red). An audible alann switch (on off test) turns die audible alarm on off or Now available ... 40 famous and challenging golf courses for your MEAN 18: Ultimate Golf™:
U. S. Open Courses I: Shjnnecock Hills. Menon.
Winged Foot, Bellenve 8 The Country Club (Brookline).
U. S. Open Courses II: Oak Hrlf, Medmah 4*3.
Olympic Ctub. Ballusrol and Champions.
PGA Championship Courses: Oakmont.
Firestone, Pinehurst 2. Oakland Hills & Southern Hills.
British Open Courses: Muirfield. Sandwich.
Carnoustie, Royal Birkdale 8 Royal Lytham & St. Annas.
PGA Tour Courses I: Doral, Torrey Dines. TPC Sawgrass, Cypress Point & Indian Wells.
Famous European Courses: Sotogrartde (Spain).
Chantilly (France), Hoylake [England). Falsterbo (Sweden), and Club Zur Vahr (Germany).
Classic American Courses: Seminole. Pine Valley, Cherry Hills. Spyglass Hill and The National- Great Resort Courses: Muirtieid Village, Eagle Ridge. Mission Hills, Dorado Beach and Banff Springs.
Each of the 8 3V?" Diskettes contains five exciting courses. Write tor further information or send just S20 each disk. US currency. (Shipping, handling, overseas mail induced!) Send your check or money order to MOONLIGHT DEVELOPMENT, - 329 Shoreline Place. Decatur. IL 62521.Pleaseallow2-3weekstor W delivery.
10 U1 n .l’r- fit'N -I AMIGA * »1ia(»Tjrk otf.r-Tnrwif,* Ar- qa me Circle 190 on Reader Service card.
Initiates the UPS baLtery test position in die absence of a power outage.
The audible alarm beeps immediately, as soon as the A.C. power is lost, and every few seconds diereafter. The beep rale grows faster as the battery condition is depleted.
The audible alarm beeps each time the yellow LED blinks (unless it is turned off with the audible alarm switch). As you are nearing the battery depletion point, the red LED becomes brighdy lit and the alarm changes to a continuous whine. At that point, the yellow LED may go out, leaving either the red LED or the green LED glowing, and the UPS will shut-off. If you haven’t saved your work by then, it is lost, The LS-250 is well made with circuitry on dirce high quality PC Boards. The unit uses 12 IC's including 3 opto-electronic chips. The Kalglo LS-250 uses two (2N5886) TO-3 output devices.
These power transistors are mounted on a heat sink dial is diermally linked to the rear of die case. A total of four transistors and one regulator are mounted on that heat sink, ihe rated power of 80 Volts 25 Ampere 200 wait of these two output devices totals 400 watts.
On die rear of die unit, die company provides a set of nine do and don't warnings silk-screened in very fine prim, llie first three of these warnings are; 1) Do not exceed 250 VA total load. 2) Do not operate unit with less than a 25 watt load. 3) Do not operate on loads with a power factor of less than 0.5. Given that it is next to impossible for most users to measure either the wattage power factor or the actual VA of the load, these warnings should be treated as guidelines.
In order to have the same test conditions likely to be encountered by a novice user (who might have ignored these warnings), none of the units were loaded during initial turnon charging. The LS-250 was operated without a load, and it performed perfectly. The only caveat I will mention is this: Don't lay floppy disks or cassette tapes on top of the unit unless you want to erase them. This is a general rule that goes for any UPS housed in an a luntinum or steel case.
The NEMA-15 outlets are protected by a Coil and Capacitor (L C) filter and Metal Oxide Varistor (MOV) components, Tire 5 MOV’s and two heavy duty ferrite core coils, and capacitors, form an RF1! EM! Filter. The spike surge protection should l e excellent in this unit.
Inside, the unit is neatly stuffed with parts. They certainly get a lot into a small space.
The LS-250 becomes warm during battery backup operation, and quite warm during battery recharging after full battery depletion.
The Kalglo uses a special High Rate Charge circuit, which will eventually switch back to a slow trickle charge after a predetermined point of battery charge has been reached. If the red ( battery nearly depleted ) LED has gone on, the UPS system will soon shut off automatically, due to total batten' deletion.
Then, when the A.C. power returns, the red LED will stay on indicating that the battery is being cliarged at about fiiree to five times the normal trickle battery rate, This high charge rate allows a fully depleted battery' to be charged to full voltage and almost full capacity in a scant four hours.
With a totally depleted battery', this High Rate Charge continued for ninety minutes before switching back to normal.
The heat given off during this high rate charge was significant, but it did not appear to be a problem. Leave ample room for air flow between the Kalglo and other nearby equipment (especially on the left side of the unit). If at any time, the heat build-up appears to be getting excessive, simply turn the power switch off and back on again. This will usually recycle the unit back to the normal trickle charge (unless the battery is still quite depleted).
The trickle charge rate will charge the internal battery' in 12 - 15 hours, an external battery cannotbe charged by the internal charge circuitry'. While the rear panel has jacks for an external 12 volt battery, if an external battery is being used, it must be disconnected and charged with an appropriate external battery charger.
The Kalglo has almost all the best features of other UPS units, and should be considered for any' AMIGA System. One other item worth mentioning, is the 24 month warranty which is significantly longer than the norm. There is a set of alarm contacts that can be brought out for external use. Inside, there is also an A.C. line control pot for the technically inclined user to adjust the UPS kick-in point (tliis is tire A.C. line to battery transfer point). It can be adjusted either somewhat higher or lower.
Two firings are unique to the Kalglo UPS units. One is the Power Outlet Wiring Integrity Test feature, which uses fire power on lamp, as a test for properly wired A.C. line sockets. If your house wiring is incorrect the lamp won't go on when the unit is turned on.
Most wiring faults can be located using this feature. The other is file personalized Burn-in Final Inspection Report. This is a series of five electrical and functional tests that a Kalglo employee does and signs for, on page 35 of the current (1989) version of file Kalglo INSTRUCTION: OPERATORS OWNER’S MANUAL.
Documentation: The 36 page manual that comes with the Line-Saver UPS is very comprehensive. It covers all three sizes of Kalglo UPS units in depth. It is simply the best reference I have seen on UPS. It includes safety instructions, theory, testing, system compatibility, use in foreign countries, specifications, graphs, chans, schematics, and more. The results of electrical tests on the particular UPS are included as mentioned above. A two page Technical B ufietin covers file Power Outlet Test feature.
Three samples of the smaller Kalglo UPS were tested. One of these was an older version, the Kalglo LS-240 (discontinued several years ago). This older unit, manufactured in 1983, still had the original Yuasa battery', now almost six years old. It was tested under the same load conditions as the other UPS units.
Since file life expectancy of file gel cell batteries is generally considered to be 2 to 5 years, it was interesting to see how well the older unit still performed. In our in-use timed tests, this older unit lasted for 3 minutes, 20 seconds on the Amiga A-1000 Thomson equivalent expanded computer system. Surprisingly, this bested the performance of the first sample of the LS-250 in both of its two in-use trials. This early LS-240 unit contained a Yuasa 12 volt 6 ampere battery'.
Unfortunately, as I just slated, the first sample of the LS-250 didn’t work quite as well as expected. The current production sample of the LS-250, that was to be sent for this evaluation, was accidentally sliipped out to file Comdex Show in Las Vegas. So rather hurriedly, another LS-250 was sent. As it turned out, this one seemed to have a rather weak Panasonic battery. This sample, under batrery backup conditions with the Amiga A-1000 Thomson equivalent expanded computer system, lasted only 3 minutes, 18 seconds in the first in-use test and only 1 minute, 35 seconds in the second in- use
This unit was returned to Kalglo and they replaced file battery'. Sporting a new Power-Sonic 12 Volt 6.5 ampere battery, the same unit was retested. It still performed poorly.
The unit must have had some strange defect in its circuitry7. It started to have wild variations in its output voltage, after 1 minute, 30 seconds on battery backup.
The LS-250 was exchanged for a current production unit. This unit worked quite well. The second LS-250 lasted for 5 minutes. 58 seconds in the in-use timed test. This was much more in line with the expected results. Two seconds later, at 6 minutes, it came on again, with a wildly varying output voltage, and the red Light finally came on, Tile design specifications state that the unit should last 6 to 11 minutes under full 250 VA load conditions.
The strange, wild variation in output, and the unit turning-on again was reported to Kalglo (in intimate detail). The designer of the LS-250 stated that what I saw was impossible.
Their technicians spent several days trying to duplicate this variation in output and turn-on again, using the particular sample I tested and other LS-250's (reportedly without any success).
Oh, well! Perhaps it was an anomaly of this particular test setup, When powering computer equipment, under real fife conditions (except in cases of someone tripping on the A.C. cord) file power plug would not be pulled from file A.C. Mains, and the Groundreference would always be present. If the Ground reference was present, perhaps what I saw -wouldn't have occured, I think this is a very minor matter.
Despite the problems encountered, I feel this unit's performance should not be significantly lessened. Overall, 1 have to admit they did a very7 nice job designing it so small. List Price: $ 549-00 SUMMARY: KALGLO LS-250 UNE-SAVER UPS Positive attributes: Many features,
A. C. Wiring Integrity7 Test, external battery jacks, test
switch, alarm turn-off switch, small sized case, extended
warranty. Excellent documentation.
Negative attributes: Less than half the capacity and time reserve of other similarly priced UPS units. Aluminum case, excessive heat generated during the high rate battery' charge, numerous warnings. Several problems with the first LS-250 unit tested.
• AC* review by Lonnie Watson Bored with Boards?
You won't be after reading about ACDA Corporation's foray into the world of Data Acquisition Having been around computers for a long time, I have had the pleasure witnessing many ways of getting real world data into the computer. This process is called Data Acquisition. I have also seen many types of real world devices that were under computer control. This type of interfacing is called process control. Quite often, both types of circuits are connected to the same computer for some purpose.
Most computers have some form of data acquisition circuits, and process control circuits within themselves.
Examples of this are serial ports, sound pons, disk driver chips, etc. But most often when an engineer wishes to create such tilings as computerized alarm systems orto control such things as sprinklers or lights, they must consider die addition of some piece of hardware to die standard computer in question. The Amiga, while being vasdy superior to many computers costing more dian itself, is no different in this respect.
ACDA Corporation has released several products to help the hardware endiusiast and professional engineer to develop various Amiga products diat require data acquisition and process control. The main product in that line is the ACDA Proto 40K. The Proto 40K is a Data Acquisition and process control board for the Amiga 2X00 computer line. The board is a full length card with a female 25 pin connector protruding from die back. This connector provides various inputs and outputs for the Analog Data Acquisition unit. The review board was clean and free of any last minute hardware hacks.
Towards the end of the board widi the 25 pin connector sits a large black box about l 4th inch thick x 2.5" high x 4" wide. This impressive looking piece of hardware is the actual analog to digital converter. Its is responsible for converting the real world information (in analog) to information die the computer can understand (digital).
The main screen of ACDA's DigiScope software; a digital oscilliscope which may also be used in conjunction with the Proto 40K board The list of features for the Proto 40K is impressive they include: 16-12 bit analog to digital conversion channels (16 bit channels are available as an option) 2 -8 Bit digital to analog conversion channels 16 -1 bit digital input lines 16 -1 bit digital output lines 3 -16 bit timers (programmable and cascadable) 3 -trigger sources for the A to D process lifikt* 1.1 8 24 89 The board is also fully autoconfigurable.
That means diat die Amiga autoconfig process detects die board and reserves some memory for the board in the Amiga’s I O memory area. The actual memory reserved depends on what is also installed before the Proto 40K in the connector list.
Each of die boards registers are then accessed from diat base location in memory.
The Proto 40K comes with a standard library of routines written in C. These routines can be freely used in any software that the user writes. Some of the routines are: p4()_init: Used to initialize the p40 board.
P40_setgain: Sets the amplifier gain on the analog input litres. Example gain settings are: xl, xlO, xlOO, and x500 settings. This feature is only available on some models.
§1987-1989 KM Comtio lata Sawt'f fratHfc p40_do p40_di: Writes to the digital output and reads from die digital input lines.
P4G_dtoa: Writes die cligitai to analog lines Also contained in the C module are routines to read die clocks that are on the card, open and close die Amiga timers, fill arrays with specific bit patterns as well as other useful programming tidbits.
The card allows itself to be read in AccelerDisk Get Reliable, Bootable Fast Floppy Access Now!!!
Why wait for DOS 1.4?
AccelerDisk uses Fast File System on all your drives to give you more storage, and speed increases of up to 5 times!
$ 29.95 $ 49.95 with source MJ SYSTEMS Dept 10B 1222 Brookwood Road Madison, Wl 53711 1-800-448-4564 Answered 24 hours (Info: 1-608-274-5563) MasterCard VISA accepted Circle 176 on Reader Service card.
Two different modes. The first of which is called random access mode. When operating the card in this mode you can very simply tell the card that you want to read data channel number 12 and then read data channel number 3 and then channel number 7 and number 1 and number 9 well you get the picture. The card also supports another, perhaps more useful, method of reading its data, this method is called sequential channel addressing. The basic way that it works is that you tell the card what channel you want to start with.
Then after every7 read the card will access the next channel in the sequence. AIL 16 channels will be read automatically 1 channel at a time. This configuration is perhapsbeuer for a polled data collection setup such as a computerized weather station.
The code samples that were included clearly showed several different features of the board put to practical use. While I was not able to test the board entirely I was able to make a few tests, concluding that the board was operating as it should be.
Overall I found the Proto 40K to be a quality product that performed as it should under various situations. I have never seen any other board drat offers this level of accuracy and flexibility as found in the Proto 40K.
Included with die Proto 40K board was a piece of software called Digi-Scope.
This program allows die Proto 4OK to be used to obtain, analyze and display real world data such as temperature, wind speed, water flow, just about anything your heart desires.
The program is fully configurable allowing all manner of settings to bring the data into perspective. Once the incoming data is properly displayed you can perform various operations on it like signal measurement, obtain statistical information and run fast fourier transforms on the data for spectral analyses. The program is fairly complete and works well while being very7 easy to operate. The software will also work with tire Proto 5K product from ACDA (a parallel port data acquisition unit for the 500 1000 2000 2500 computers).
Also included with my demonstration unit was another of ACDA’s products called the AmigaGPIB (IEEE-488) interface board. This little gem is a general purpose board used to communicate and control various IEEE 488 devices. For tirose of you out there that don’t know what IEEE-488 is, suffice it to say drat IEEE-488 reigns supreme in the engineering and laboratory environments, T had a plotter once from Hewlett Packard that was IEEE-488. (I sold it because I could not get it to work on my Amiga, sigh.)
The AmigaGPIB card is a half card that will fit in any of tire AMIGA 2000’s expansion slots, I tested it in a 2000 and a turbo Amiga 1000 expansion chassis from CSA. In both cases the card worked well.
The card has a 24 pin header on it drat you plug the supplied cable into. The other end of this cable terminates in a standard GPIB 24 pin female connector. (It looks like a centronics connector but is not as wide).
This is an industry standard iEEE-488 connection. The half card allows dre board to be used in conjunction with any of dre hard cards that are available for the Amiga, sparing a slot drat was otherwise wasted.
Communicating with the GPIB card was fairly striaght forward and clearly- documented by dre cards manual. Tire software included with dre card is in the form of a standard C scanned library7. The software contained the various makefiles drat bring it all togedrer, as well as many source demos to view and learn from. The C scaimed library7 contained all the necessary7 functions to read from and write to. The card and several functions to maintain dre card and the devices on it.
Also included are several routines to send specific commands to the devices coinrected to the card itself.
Overall I found tire GPIB to be a quality7 product. The manual was clear and concise. The card itself was clean and free of those last minute hardware hacks drat I have grown used to iir the Amiga expansion markets. Two minor beefs with tire device (a reviewer has to pick on something don't they?); tire card's cable plugs nicely7 into the card itself but dre other end has noway to mount it on the machine.
You have to remove the slot cover from the 2000 then run lire cable through dre slot and replace the slot cover, cinching the cable between tire 2000’s metal body and the metal slot cover. I anr no engineer but I figure that plastic sandwiched between two pieces of nretal will eventually lead to trouble. You could always leave the wire dangling and not sandwich it between dre plates but that looks messy and has otirer problems. (The cable disappears into the 2000 and y7ou have to take dre whole machine apart-uggh!)
The other minor beef is that the supplied software is in C format. I for one do not like to program process control in C and 1 feel that many others do not like to do so either.
There are many7 other languages drat art- better suited for the task than C (Fortir for one). The software should be in the standard .library- form drat way even Amiga BASIC could take advantage of the unique features of these two pieces of hardware.
Granted drese are mirror beefs. It is fairly easy to create a better mount for the cable, and the C problem can be worked around.
Like I say reviewers have to pick on something.
- AC- ACDA Corporation 220 Belle Meade Avenue Setauket, NY 11733
(516) 689-7722 Proto 5K, $ 279.95 Inquiry 213 j I Proto 40K
boardprices vary I Inquiry 214 DigiScope, $ 139.95 Inquiry
215 AmigaGPIB board, $ 495.00 1 Inquiry 216 '} STARSHIPS
2050 STARSHIPS 2050 is a three-disk library of 3D models
including starships, moon bases, fighters, satellites, and
one disk full of digitized NASA photographs (HAM or 32
colors) that can be used as backgrounds. They are designed
for use with other modeling and animation software such as
Sculpt Animate 4D or Turbo Silver. These 3D models can be
used as company logos, special effects in videos, or to
create animations.
STARSHIPS 2050 is available from Polar Arts Software, 14145 Janna Way, Sylmar, CA 91342 Phone: (818) 362-8565. A short demo is available on VHS videoLape. The demo shows some of tire objects being used in various ways, including animations. STARSHIPS 2050: S49.95, STARSHIPS 2050 VHS demo videotape: S9-95. Please circle 217 on Reader Service card for more information.
Learning the Hard Way The frustrations of upgrading your A1000 by Phil Saunders I had finally reached the stage when I needed a hard drive. The stacks of floppies on my desk climbed higher and higher, and the disk I needed always seemed to be at the bottom of the pile. I had even managed to hoard enough money to pay for a hard drive. There was only one problem I have an Amiga 1000.
That doesn't sound like an insurmountable problem, but it caused me trouble to no end. I wanted an Amiga 2000 (and a 68030 board, and a flicker Fixer, and
a. .,), but I couldn’t afford to spend $ 2000 and then buy a hard
drive. I wanted to get the hard drive now, and buy my A2000
once I won the lottery. So I didn't just want to get a drive
made for the A1000;! Wanted one that would also work on an
Amiga 2000 system.
Making A Decision I considered a variety of options, !
Could buy the Microbotics SCSI adapter which would fit in my StarBoard 2 memory expander. But this would require buying a case and power supply for the hard drive, and I had heard that the Microbotics SCSI port was fairly slow. I could buy an A1000 specific system, but A1000 drives tend to be more expensive, and I would have to throw away the interface when I upgraded to an A2000. Just when 1 was about to give up, I heard about the Toolbox.
The Toolbox is an expansion box for the Amiga 1000 that allows the A1000 to use Amiga 2000 cards. 1 talked to Expansion Technologies, which distributes the Toolbox, and it sounded like an ideal solution.
I could buy Amiga 2000 cards and use them with die Toolbox until I saved enough to buy an A2000 of my own. I promptly ordered a Toolbox and a GVP hardcard from Go AMIGA. After a week they arrived, and I set up the system.
At first, I wasn’t impressed with the Toolbox. It consisted of a long metal chassis which contained the power supply and the two Amiga 2000 slots. It connected to the Amiga via a bus connector and passed throught the bus on the other side. The connector was slightly crooked in relation to the chassis and the soldering wasn’t very neat. In addition, the holes on the metal cover didn’t quite line up with the holes in the chassis. Still, 1 could live with these flaws if it worked.
Plaguing Problems Unfortunately, it didn't. The GVP software was unable to communicate with the Quantum drive. It would try to format and then sit for hours without doing anything. I called Expansion Technologies, which said they had some reports of people having problems with the GVP hardcard.
They were working on a fix, but they recommended that I try the Flash Card, their SCSI controller which they guaranteed would work with the Toolbox, 1 considered my options and decided that a system that worked now was better than a system that might work later, so 1 mailed back the GVP card and waited two weeks for my Flash Card and Quantum hard drive to arrive.
Once it did, I installed the card into the Toolbox, powered up, and expectantly started the formatting software. Nothing. I tried editing parameters for the formatting software, but nothing worked.
Now Expansion Technologies thought the Flash Card might be bad, so they sent me another one. One week later I still had the same problem. Well, the drive might be bad, so I sent them the Flash Card and the drive, and one week later I got a call. They had reset some jumpers in the drive (the Flash Card manual said nothing about jumpers), and it still wouldn't format.
They ended up formatting the drive with a GVP controller; once it was formatted it worked fine on the Flash Card.
I was a little nervous about owning a drive I couldn’t format, but I decided, if it worked, I could live with it. I installed the card in the Toolbox, powered up, and tried a high level format. It worked! For two days I was using my Starboard 2 between the Amiga and the Toolbox (the computer wouldn’t boot with the Starboard 2 on the Toolbox’s pass through). I noticed that some programs would crash my system immediately. The strange part was that it didn’t matter if 1 ran the program from the hard drive or from a floppy. If the program used a custom screen, it crashed about half the time.
Sometimes I got Gurus, and sometimes my display showed a screen of constantly changing static. And, everytime I tried a soft reboot (Control-Amiga-Amiga) I lost Kickstan.
Expansion Technologies recommended trying new PAL chips, so I ordered a new set of PALs from C Limited. I carefully desoldered the old ones, installed sockets, and put in the new PALs. Now the computer wouldn't boot at all. Uh oh! One hundred dollars and a (240 mile) trip to the repair shop later, I learned that the replacement PALs were defective. The repairman had replaced the C Limited PALs with stock chips and the computer booted right up.
I eventually discovered that the Toolbox and Flash Card worked if I didn’t use my Starboard 2. But then I only had 512K, and a system that lost Kickstan everytime it crashed. That wasn't good enough, especially since Expansion Technologies said diat the Toolbox would work with the Starboard 2. Incidently, if I tried to use Kickbench 1.3, the Flash Card would not work at all. I also discovered that if the Toolbox was loosely connected to the Starboard 2’s bus, the system would work most of the lime. I suspect that the crooked connector on the Toolbox may have been the source of the problem,
but by this point I'd had enough. I sent the Toolbox and Flash Card back to Go AMIGA and slept soundly for the first time in months.
A Lesson Learned 1 have never experienced a problem more frustrating then trying to get the Toolbox to work on my Amiga. Expansion Technologies’ service department was always friendly, but after three months, they still weren't able to get the Toolbox to work on my system.
What lessons can Ik learned from my experience?
Have been able to try die Toolbox on another system.
2. Don't be the first to try a new product. There’s a saying in
the computer industry tiiat you can tell the pioneers, because
they’re the ones with the arrows sticking out of dieir butts.
Ifyou are the first one to try a new' product, guess who gets
to discover all the initial bugs?
3. Use a stock system. I diought dial the problem must be with
the Toolbox because my Amiga crashed when I had the Toolbox
connected directly to the Amiga.
Later I discovered that the Toolbox Fiash Card wouldn’t work with KickBench 1.3. Once 1 quit trying to use KickBench, the Toolbox worked fine.
4. Isolate the problem. The best way to diagnose a problem is to
find out what is not causing it. As Sherlock Holmes said,
“Once you eliminate the impossible, whatever is left, no
matter how improbable, must be the explanation." I should have
tested the system with just the Toolbox and stock Kickstart
much earlier than I did. If there are too many variables, it
is hard to discover exactly what is causing die problem.
5. Consult the Experts. Bulletin boards, customer sendee
departments, and friends with degrees in Electrical Engineer
ing can all be good sources of advice. Very rarely will you
find a unique problem. (My case is the exception that proves
the rule.)
6, Deal with companies you can trust.
Since 1 wasn't able to work with a local dealer, 1 had to work by mail and telephone. Go AMIGA was willing to exchange my GVP board for a Flash Card, and eventually gave me a complete refund. C Limited refunded the money I spent on the defective PAL chips. And even though Expansion Technologies didn’t solve my problem, they did go out of their way to try and help me. When something really goes wrong, you’ll be glad you are dealing with reputable people.
Fast, Compatible, Complete!
• Two high speed RS-232C serial ports for the Amiga 2000. • IBM
PC AT style (full 7 wire plus Rl and DCD) connector for each
port. • Send and Receive at 110 to 115200 baud. • Complete
Amiga system software (both Exec and DOS). • Using our
exclusive Serial Dispatcher, any program which uses
"serial.device” can use any port without patches. • Public
domain and shareware software on the distribution diskette. •
One year warranty.
M 925 Stewart Street Li 3 II Ij Madison, Wl. 5371 3 Incorporated (608) 273 - 6585 Amiga is a trademark ol Commodore-Arniga. Inc, IBM PC AT is a trademark of IBM Corp._ Circle 112 on Reader Service card.
As you can tell, my experience with the Toolbox was unsuccessful. I'm not claiming that the Toolbox won't work for anyone, but I do advise caution before trying it. There are some significant differences between Amiga 1000 and Amiga 2000 bus signals, and in my opinion, the Toolbox does not do enough to solve tiiese differences. The Amiga 500's bus signals are much closer to the A2000 standard; i have heard that the Toolbox for the A5Q0 works better than the A1000 model. Whatever you decide, keep these six points in mind when dealing with expansion problems.
And me? What did I decide to do? I’m saving for an Amiga 2000 with a Fat Agnus.
I’ll get a newr computer, and then maybe El!
Start thinking about getting a hard drive....
• AC- Companies Mentioned C Limited 723 Last Skinner mtcbtta, KS
(316) 267-3801 Inquiry3 *225 Expansion Technologies 44862 Osgood
Street Preemont, CA 94539
(415) 656-2890 Inquiry *226 Great Valley Products 225 Plank Ave.
Paoli, PA 19301
(215) 889-9411 Inqttity~227 (Snapshot, continued from page 18)
that actively seek out and destroy encroaching vessels.
Worker patrols are two or four workers who are constantly
constructing new bases and linkages. Several allied
resupply bases are scattered around the area to allow you
to quickly restore the limited stocks on your personal
Since they are so valuable, warrior patrols actively seek them out, and you must be careful to protect them or one of your resupply sources may be destroyed.
The game is a race against time.
While you are destroying his linkages, bases and patrols, the Yellow Shadow is actively building more. Whoever is more efficient will win the day, The game ends when either your submarine is sunk, or the Yellow Shadow has mined tire required amount of unraniun.
Gameplay centers around the submarine viewport, a three-dimensional view out the front of the vehicle. The underwater view is very good, with rocks and mines shown in full color and with apparent depth. Two other screens are used during play. The map screen shows an overhead satellite view of the whole situation, allowing you to develop your plan of attack and set your autopilot. The third screen, the diving screen, comes into play when you leave the submarine and attempt to destroy the connecting linkages. You must swim through several screens of underwater scenery to the linkage, plant
an explosive charge, and then swim back to the ship.
The game features tlrree difficulty levels. The lowest level begins with a fairly small network in place and features very few underwater patrols. The other two feature more developed starting networks and more patrols. These levels help to prevent the game from becoming ton easy.
The joystick and keyboard are used for all control during the game. While this works fairly well, it can be a bit difficult to toggle between the keyboard and joystick during particularly active times.
Unfortunately, the game is fairly easy to master. While it did take me several hours, I did manage to win a game at the highest level after only one night of play.
Still, the potential for replay is there, and 1 could easily see myself coming back to the game in a few weeks to try and save tire world once again. Should be worth your while.
Gauntlet II Next on the list is a conversion of another arcade classic from Mindscape.
Gauntlet II Ls a continuation of the theme begun in the original Gauntlet. Ourfavorite characters, the Elf, the Valkyrie, the Warrior and the Wizard, once again face tire challenging depths of a new series of dungeon levels.
Far from simply a series of new floor plans, Gauntletll adds several new features not found in the original. Instead of being assigned a character, each player can now pick their class. Thus we can see games with four wairiors, two wizards and two elves, or any other desirable combination, The mazes are also all new. Over 100 new levels are included in the package and should offer many hours of playtime. In addition to the static and destroyable walls of the original, these new levels may have invisible walls, walls that move, and even some that can be shot to reveal good or bad surprises for
our adventurers.
Other new features have also enhanced gameplay. At the deeper levels, one of the players will be tagged as "it".
This tends to draw all tire monsters toward tire tagged player. But with a little cooperation and teamwork, this feature can be used to quickly eliminate the many pesky denizens of the dungeon. New powers, such as reflective shots and repulsiveness, are available at various spots, and chests can be opened to release items for party use.
The graphics in Gauntlet 11 are very sharp and enjoyable, rivaling those found on tire dedicated arcade version, Scrolling is how it should be very smooth and fairly umroticeable. The sound is also fantastic; it can Ire great to hear a voice announcing that “Red Warrior now has reflective shots’’, or devastating to hear the slow' countdown to death as a character's health slips awny.
With a special printer port adapter, the game can be played by up to four people at a time, making for a very enjoyable way to get others involved in this action-filled game. I enjoyed the game very much and it is sure to be at the top of my list for some time to come.
Deja Vu II Finally this month I would like to take a brief look at Deja Vu II, Lost In Las Vegas, by Icom Simulations. This is one of the few graphical text adventures to be released recently.
You have been abducted by two thugs from Chicago, grilled by a notorious Ins Vegas mobster, and knocked senseless and tossed into a tub in a sleazy motel room. You now7 must figure out where to go from here.
The mouse is used to control almost all action in the game. You can move, inspect and use items, and perform nearly any other action by either clicking on tire item itself or selecting from tire simple action wrord list available at the top of the screen.
The graphics are well drawn. The visual clues in the pictures fill in w7here you would have formerly needed a "look” command.
Despite this supposed “ease of use", 1 found the game fairly frustrating. Disk access slowed down movement and it was sometimes difficult to know exactly how to perform a desired action. For example, 1 was trying to pul my lucky quarter in the slot machine, but for some reason I could not locate the slot for the quarter to go in.
I kept dropping the quarter on various parts of the machine, bur the quarter svould just sit there. This was very frustrating.
In case you haven’t guessed, 1 am not a great fan of this form of entertainment anyway, but 1 thought 1 would give it a try.
As I had several years back, I found the medium limiting (even though it has been augmented by many pretty pictures), and therfore cannot recommend Deja Vu 11.
That wraps things tip for this month.
Look for my list of special picks for thc- Christmas issue. See you then.
• AC* Since the Amiga's inception, the wizards at Commodore
have worked hard to improve the operating environment. Many
would argue that most of tire Amiga’s success is owed to die
plediora of programs available commercially and in the public
domain. The side effect of this abundance of software is that
it is virtually impossible and generally undesirable to
download everything that looks interesting. Most of us
certainly cannot afford to buy everything we want. We have to
make choices.
Part of what I hope to accomplish in tills column is to give you a source of detailed information that will make your choices easier. One of these choices is a system upgrade offered by Commodore.
What is an Enhancer package and do you need it? There are a lot of Amigans who are wondering right now, “Why in the world wouldn’t you upgrade?" Initially at least, this can be treacherous territory, especially for new users. I will examine the new features provided by the AmigaDOS 1.3 Enhancer software package, trying to explain in simple terms what it means to you, the Amiga user. But, before I get started, allow me to shed a little light on the subject of operating system fixes and improvements.
Commentary Many have faulted Commodore for its lack of vision and lethargic response to market needs. The constant changes in management there often leave analysts wondering who's in charge. The obscure advertisement accompanying the machine’s introduction nearly sounded its death toll before it was ever out of the box.
But let's stop long enough to contemplate the massive effort that goes into the development of a powerhouse like the Amiga. This was the first personal computer to offer an environment for the novice and the expert alike. I challenge you to find a similarly priced machine with the graphics, sound, command structure, configurability, and flexibility that tire Amiga has.
And why do you suppose everybody is jumping on the multitasking bandwagon? Because those who have had a taste of it loathe die thought of returning to die restrictive single-process, single-use environment. Just look at some of the advertising for the MS-DOS-compatible market. You will find piles of let's see, what’s that term? Ah, yes TSR programs, many of which are incompatible with each other. What is a TSR program? Why, it is a Terminate and Stay Resident program, of course. Now where have I heard of that before? Oh, 1 remember. The first programs of this nature which 1 encountered were
nifty utilities that I used with my Commodore 64, long before die term "PC" took on die assumed connotation of “IBM-compatible.” What kinds of programs are these?
Oh, simple things like calculators, clocks, address and phone number keepers, appointment reminders, calendars with notes, and printing utilities that allow you to print in the background while you continue to use the computer. So, even though we occasionally complain, we should take time to reflect on where we have come from and what we often take for granted.
By Rich Falconburg In spite of rumors to die contrary, the AmigaDOS operating system has been a fairly stable environment since version 1,1.
Sure, there have been some nagging problems and even outright omissions, but don’t think for one moment that Commodore is alone in this area. After all, DEC’s VMS operating system is up to Version 5, and UNIX is up to Versions 3 and 4. Each new version offers greater stability and utility than die one before it, while bugs are usually fixed with each new release. We get new toys to play widi, irritating problems are usually fixed, and improvements to commands and utilities that have become old friends give die machine we know and love a more comfortable environment.
Why doesn’t Commodore fix things more often? The reason is that it is a monumental task to ensure that the fixes don’t make old software obsolete or conflict with new additions. It takes a carefully orchestrated effort on the part of everyone involved to ensure a stable environment for future development.
Yes, there are a lot ol nifty programs in the public domain which, as you will see, do much of the same thing that the 1.3 Enhancer package does for the Amiga.
However, not everyone has act ess to -or even knows about PD programs as an alternative. Many people I have talked to do not realize that there is more than what their dealer provides for them- -which, as you may have guessed, is generally only the “official’’ additions provided in die package marketed by the parent company.
Commodore missed capitalizing on some golden opportunities. We are the winners.
Okay, philosophy class is dismissed.
Now on to the “New and Improved” Ami gaDOS.
The Enchanted Forest The AmigaDOS 3.3 Enhancer package comes complete with three disks and documentation to get you started. First. Lei s take a look at some of the new features. As you may know, one of my pet peeves about the Command Line Interface was the miserable line editing in a CLI window. A feature diat greatly improves the Cl,! Is die AmigaDOS Shell. This is a console window that may be started with die NEWS1IEI.L command and uses a handler with several new capabilities. Among the features provided by the Shell are usable editing key combinations. The delete key will erase the
character under the cursor, and the arrow keys may be used to move back and forth on a line, or to scroll through the command history. Control sequences add even more; CTRL-K Deletes from the cursor to the end of the line.
CTRL-U Deletes from the cursor to - start of the line.
He CTRL-X Deletes the entire line.
CTRL-A Move to the start cf the line SHIFT-").
I ISO CTRL-2 Move to the end or the line -• SHIFT-.*) , 13 so CTRL-W Move to the ne :t tab stop.
When you want to manage your personal finances, Money Money Mentor sells for only $ 93.95!
VISA SEDONA SOFTWARE Meet a team of the friendliest financial organizers you’ll ever run across.
Smart Scrolls for speed.
Money Mentor has a truly unique system called Smart Scrolls, that handles a diversity of otherwise ledious data entry functions and clips along saving you up it) “0' . Of your tvping time It's a swart addition to Money Mentor, that's why we call it Smart Scrolls Money Mentor Features:
• Net Worth Statement
• 200 Budget Categories
• 30 Integrated Accounts such as Checking, Cash, Savings and
Credit Cards
• Elaborate Search Routine allows editing of transactions
according to your specific guidelines
• Automatic Check Printing
• Automatic Account Balancing
• Color Graphic Reports illustrating actual vs. budgeted amounts
• Over SO Reports to choose from!
What they’re saying about us!
"Money Mentor has to he the nicest look and feet of any money manager package for home use that hat'c et'cr seen " Amiga Sen in "Money Mentor is an excellent frroduct' Ama ing Computing Money Mentor is for everyone!
It does more than just keep your checkbook balanced, Money Mentor helps you manage your personal finances which is important to any family or individual With Money Mentor, you can lx looking better financially.
Order Monev Mentor todav SEDONA SOFTWARE 11828 RANCHO BERNARDO RD., SUITE 128-20 SAN DIEGO, CA 92128 CALL (619) 451-0151 Additionally, you may use CTRL-R (or SHIFT-) to search for a previous command and recall ir. For example, if you entered a lengdiy path for both tire source and destination of a copied file, and you have need to use the same path with a different file, enter COPY and press CTRL- R (or Shift- ). The first occurrence of COPY which is found is displayed complete with the entered text. Simply edit the line using die arrow keys and press RETURN. If you wish to move to die
bottom of die history buffer, you can use CTRL-B (or SHIFT-0).
This is handy when you have stepped through several entries and decide to skip it and re-enter the command.
Also Known As... The other enhancement provided by the Shell is the addition of aliases. This allows each user to create alternate names for procedures and commands. Since parameter substitution is supported, it is possible to define an alias for a variety of command-option combinations.
For example, you may like the information provided by the LIST command, but prefer to display things differendy than the Circle 119 on Reader Service card.
Default provides. This, of course, requires the use of one or more options on die command line to modify the output. By using an alias, it is possible to assign diis command string to a “variable," -which may be entered instead of die entire command string: 1 ALIAS nf LIST SINCE [] To use this you would then enter 1 NF TODAY or 1 NF 3“JAN-30 Here I have defined die alias “nf’ to mean die same as “LIST SINCE"; the brackets cell the Shell to pass the qualifying date parameter to the LIST command. It’s very similar to logical assignments with an added twist.
Please note that the method shown above is die correct way to define an alias.
The documentation shows quotation marks around the command string, but if you enter them as shown you will receive an error message when used.
To erase an alias definition enter: 1 ALIAS name where “name” is the definition name used when [he alias was created. Keep In mind diat each Shell window is a separate entity.
This means that an alias defined in one Shell window will not Lie available in the others. The exception to tills is a special startup file that is executed each lime the NEWS HELL command is used. This file is located in the S: director)' and is called Shell-startup. If you want your alias definitions to be available in every Shell window, place them here.
Commodore has provided several useful aliases as examples. One of these has been defined as shown below': ALIAS ren EXECUTE S:DPAT RENAME [] DPAT and a companion file, SPAT, are what could be called “work-arounds" to die clumsy pattern matching of certain Amiga- DOS commands. These script files may be used with other commands to allow single argument (SPAT) and double argument (DPAT) pattern matching. This allows you to do wild card operations with those commands that normally won’t tolerate it.
I'm not going to get into the intricacies of what these “work- arounds” entail, but I do need to introduce a few things for you to dig around in and get comfortable with.
Commodore’s solution to some of the shortcomings of other commands was to add some significant features to the LIST command, and to use it in re-direction and variable substitution. This is a whitewashed description of these two script files; I have only scratched the surface.
We also now have “environment variables,” which may be used to establish specificsused by various script files. Unfortunately, you cannot simply include this variable as part of a command line. Why?
Because they cheated. An AmigaDOS environment variable is a text file that has been defined and placed in a special directory in RAM Access to said variables is through two new commands; SETENV and GETENV.
But wait, it gets even better! They have also assigned die logical ENV: to this directory, which means diat if you try to delete the directory to save memory, you will discover that it won’t let you. You must first erase the assignment with: 1 ASSIGN ENV: Now you may delete the directory and its contents. (There are some things that are kept here which I will discuss later.) The documentation leads us to believe that this is a temporary' kludge and that a handler will eventually manage variable manipulation.
The other directories that are new to this environment are RAM:CLIPBOARDS and RAM:T. Both of these have logical names assigned to them as well. Remove diis assignment with: 1 ASSIGN T: 1 ASSIGN CLIPS: Now you may delete them if you wish. An easier way would be to “comment out” the creation and assignment statements in the S:StartupfI file. (Don’t rush me: I’ll explain that file in a moment.) Before you delete die T: directory and assignment you should know that this is now used correcdy by the EXECUTE command for script file substitutions, and will make a big difference in the execution
speed of these files.
There is a new Startup-Sequence included with your WB 1.3 enhancements.
Among other tilings, this file now calls a new file designated StartupII. The reason for this is that a special file is made RESIDENT by the original startup file. To allow subsequent commands to make use of this new capability, you must use a new CLI (or Shell). Several things are accomplished in this new startup file including making a number of commands RESIDENT which also help to speed up the booting process.
Several of these are then removed from the RESIDENT list to save memory, with comments recommending that you leave the commands in if you have tire memory for them. Truthfully, unless your command directory is still on a floppy disk, this is not really helpful.
If you examine the moundist file found in thedevs: directory, you will notice entries for several new devices. One of these is NEWCON:, the new console handler device used by die AmigaShell windows. Odiers include SPEAKER:, a narrator device that presumably allows speech to be easily incorporated into programs, and PIPE:, a device diat allows output from one program to be sent to die input stream of another program. We will investigate all of these and also die RAD: recoverable RAM Disk in greater detail in future issues.
The AmigaDOS 1.3 Enhancer software package adds significantly to the existing environment. Implementation of several features seem shabby and shortsighted and considering the delay in getting it to market not quite complete. There are, however, several significant additions and improvements, including Auto-booting and die Fast File System, which make it an attractive addidon to the basic Amiga system. If you have not already invested in this upgrade, I recommend diat you give it serious considerauon, if only for the latter features alone. In future issues I will look at ways to make the most
of the new commands and devices, while we learn together how to use die power and capability of a machine ahead of its time.
Music X surpasses all current state-of-the- art professional music software packages, enabling you to open new worlds of creativity. Completely integraded, Music X is an easy to use, full color graphic oriented music creation tool. With a sequencer, bar and event editor, filters and key map remapping, samples, generic librarian, patch and protocol editing pages, what more would you need? Video Support? Music X has it!
EXPERIENCE THE POWER TO PRODUCE... Music X is multitasking on rhe AMIGA’" computer and supporls Microillusions' Time Code Reader Generator (TCRG-102J, Midi-X, as wall os other midi interfaces and SMPTE readers.
Micm Tiic Patue i to Produce 17408 diotsworth St., Granada Hills, CA 91344 Inside CA (818) 380-37)5 Outside (A (800) 537-2041 Circle 132 on Reader Service card.
J War In Middle ‘Earth review by Rich J. Grace Since J.R.R. Tolkien's epic trilogy, The Lord of the Rings, first achieved its vast popularity two decades ago, millions of imaginations have been captured by tire work: by its acute and entertaining characters, its tightly controlled and deeply moving prose style, and, most of all, its depiction of an elemental conflict of good versus evil and the great suspense that results: “'Old fool!’ he said. ‘Old fool. This is my hour. Do you not know Death when you see it? Die now and curse in vain!' And with that he lifted his sword and flames ran down
the blade.
Gandalf did not move. And in that very moment, away behind in some courtyard of the City, a cock crowed... And as if in answer there came from far away another note. Horns, homs, horns. In dark Mindolluin’s sides diey dimly echoed.
Great horns of the North wildly blowing.
Rohan had come at last.” So powerful is this work that almost four decades after it was published, The Lord of the Rings still looms as the towering classic of its field, as the work against which all others must be measured. An entire publishing industry has sprung up to support the brief Tolkien lexicon, consisting of commentaries, calendars, maps and travelogues, and linguistic dictionaries. Furthermore, The Lord of theRingsh the only work in its field that sustains dramatic tension and literary control through the course of an entire trilogy', stretching over a thousand pages.
Any reader who has yet to discover the work is in for an enviable treat. A treat scarcely less exciting is the prospect of a full-color, animated computer game based on tire Tolkien classic. The game, of course, is War In Middle Earth War In Middle Earth encompasses the entire scope of the Tolkien trilogy, and allows the player to roam at will over tire topography of Middle Earth. The object of the game, as is the aim of tire protagonists in the books, is to destroy the Ring of Power. The Ring is a magical item of great evil power, which is tire vital foundation of the powers of the great
adversary in the books and the game Sauron the Great.
The Ring is of such power that there is only one way to destroy it: to drop it into the volcanic fissure of Mount Doom, where it was forged, “Three Rings for the Elven-Kings under the sky, Seven for the Dwarf-lords in their halls of stone, Nine for Mortal Men doomed to die, One for the Dark Lord on his dark throne hi the Land of Mordor where the shadows lie.
One Ring the rule them all, One Ring to find them, OneRingtobiing themallandin the darkness bind them In the Land of Mordor where the shadows lie."
Unfortunately, Mount Doom is located at tire heart of Sauron's evil realm, in the center of tire plain of Mordor. At the beginning of tire game, as in the books, the ring is not in Sauron’s possession, but is in the hands of a young and innocent hobbit by the name of Frodo Baggins, whom with scant help must leave his remote home of tire Shire to make his tortuous way to destroy tire Ring. From the beginning, his journey is perilous, for dre Adversary has sent out his nine evil lieutenants, tire Nazgul, in search of dre Ring. They have virtually surrounded tire Shire at dre beginning of the
game, and haunt dre roads East.
Game Mechanics War In Middle Earth consists of three levels of interaction: an animation level, at which all combat scenes and character interaction takes place, and two strategic levels. Levels 2 and 3 are both representations of the map of Middle Earth. Level 2, however, is a rasterized map of 36 square Amiga screens, over which dre player scrolls to explore any part of the landscape.
The scrolling is crisp and seamless. Level 3 is an overall one-screen map of Middle Earth, with several game-management icons in the top right corner, one of which allows you to save the game in progress.
The maps conform accurately to dre true maps of Middle Earth. The true pleasure in Level 2 is in its highly efficient magnification icon tool which, when placed over any location of interest in the Level 2 map and clicked upon, brings up a detailed graphic image of the place of interest, often with animated figures moving across the screen, and with sound effects and musical accompaniment. Many of these screens are astonishing in their beauty. The system comes as close as we may ever see to a visual representation of Middle Earth.
According to sources at Melbourne House, many of the graphic screens in the game were digitized (using Digi-View), using a specific color palette assigned to each picture to ensure uniformity in the coloring formats. Dithering techniques account for die grainy, realistic aspect of many of the screens, and for their almost HAM-seeming effects.
If the player is exploring during the course of a game, he or she will be prompted whenever anything of importance is about to happen on the animation level.
The player may opt for three speeds of play during the game: Normal, Hasty, and Very Hasty. To execute a quick game, however, is to eliminate much of the texture and detailed interest of die game. Widi many of the more tense segments of the game, it is advisable to play them in Normal speed, to gain die full measure of die game's strategic dimension. Large battle segments will also not be displayed in the Hasty modes.
For the first segments of the journey, no help is available except from a few fellow hobbits who join Frodo on the journey. Their names are familiar to any Tolkien reader. Beyond, however, die character of Aragorn, a powerful fighter and one of the most inspiring characters in the books, awaits the chance to aid in die journey.
In die course of the game, the characters will pass by numerous animated characters, such as fellow hobbits, dwarves, men, and what appear to be wizards with high-topped pointed hats.
Most of diese are not communicated with in the course of die game, and pass by silently, When an important character appears, however, the game will prompt die player either to join in conversation or to pass on. These characters will often have useful information to offer, such as the location of a magical weapon or other objects diat may be vital in the campaign.
Aragorn is usually the first important character die player runs into. It is wise not to turn him away, for the hazards are far greater than a small band of hobbits can deal with. The first destination for the small party is the town of Rivendell, which lies direcdy east. Here, if the Nazgul are defeated in the inevitable batde at the river crossing, the rest of die party, with all the characters familiar from the books, is assembled. The main stage of the journey and die game then begins.
The Strategic War War In Middle Eardi does not emphasize the interactive aspects of many role- playing fantasy games. Nor is there an extensive interactive combat system. WIME (pronounced Why Me) is a strategic contest. Not only must the ring be brought to Mount Doom; the various and scattered forces of good must be roused to action and made ready to fight against the evil invasion soon to come.
The first destination for the small party is the town of Rivendell which lies directly east. Here, if the Nazgul are defeated in the inevitable battle at the river crossing, the rest of the party, with all the ch aracters famil ia rfro m the books, is assembled.
Tloe main stage of the journeys and the game then begins.
Single and group combat scenes are handled on the animadon level; and even though player responses are basically limited to four options (Charge, Engage, Retreat and Flee), die animation is well handled and many of die combat scenes are exciting to watch.
Inherent in die whole process, of course, is the excitement of seeing die entire War Of The Ring scenario under personal control. Many options are available to the player in diis comprehensive rendering of die Ring scenario. The player may choose to follow die exact path of the Company (Gandalf, Aragorn, Frodo, and all the rest) to the destination of Mount Doom. A possibility that is suggested in the game manual (wliich, by die way, is well written, and provides almost all the important facets about the game) is to travel to all die various enclaves of Good that Frodo never visited in the
books to raise their armies in the defense of Gondor. To be fair, this does occupy a large amount of game dme.
What You’re Up Against While the Company is complete, it is quite powerful. Packs of wolves are easily dealt with by die sword without involving die hobbits in combat. However, a shadow stalks the Company namely the brutal - ized, stunted figure of Gollum. The player can easily feel sorry for this poor fellow as he limps across the landscape, an agonized look on his face, with his little tongue hanging out. He is more interested, however, in the Ring Frodo carries than in anything else in Middle Earth. This is always a factor to consider. Furthermore, if die party passes over the moun
tains near Dimrill Dale and Moria, diey may meet up with a Balrog on the trail (a Balrog is a VERY powerful monster, which is easily capable of wiping ouLthe whole party).
As the party progresses, the danger heightens from die East. In fact, the sheer numbers that the Adversary commands guarantee eventual victory' if the Ring is not destroyed in time. The various strongholds of Dwarves, Elves and Men (Minas Tirith, Lothlorien, Edoras, and so on) can usually hold out against one or two assaults, but their numbers are remorselessly ground down. The average odds are 6 or 7 to one. Furthermore, the foi'ces of evil have a number of strong forces the Good legions cannot match, including a brigade of trolls from the interior of Mordor. An ore matches up
evenly against most Man, Dwarf, or Elf foot soldiers.
The strongest fighters available to the player (Aragorn, Faramir, Gandalf, and so on) are also even matches for the Nazgul in single combat, but can be overrun by numbers (the author managed to get Ar- agom killed at die beginning of one game in such an encounter). This element of tension of knowing that any of the characters are njlnerable and subject to death by a player's mistake or by happenstance adds an exciting and highly desirable element of realism to the game.
It is difficult to get the Ring to the Mountain. A full division of 10,000 Ores is stationed at each pass of die mountain ranges encircling Mordor. The only method possible to enter the evil regions undetected is to wait until those large forces set out on campaign. It is then that time is most crucial, and destruction of the Ring most imperative. When a large battle is joined, some veryr realistic and dramatic sound effects are played and a running score dialog box is displayed showing how the relative balance of power shifts during die batde.
Should the player lose the Ring to the Nazgul (usually because Frodo and Ills escorts have been killed), or to some other force, the evil being in possession will immediately head for the Dark Tower in Mordor. It is possible to intercept the Ring, however, by deploying some opposing forces to meet it. It is not necessary to have Frodo destroy die Ring in order to win; any allied character can do the job.
The Losing Player May Need Therapy For one who has read the books with as much enjoyment and intensity as I have, the experience of losing this game is a depressing one. It seems, however, that playing the game entirely in a hastier speed somewhat enhances the odds for the oppo- sition. It is more satisfying to brood through each successive stage of a campaign at normal and medium (Hasty') speed, and to save out after each segment of playing time.
Overall, the game mechanics are flawlessly executed, and very' i'ew bugs were to be found. In the first copy purchased, characters occasionally left trails of bad screen data as they moved; this has been fixed in subsequent versions. One major omission in the game system is that ofdie Mines of Moria sequence one ofrhe most exciting and gripping sequences in die trilogy. There is no method of entry dirough Hollin Gate into die mines once you guide the party' diere. However, according to sources at Melbourne House, a discrete and separate game, called The Mines of Moria, is in the works. The
Moria segment in the books encompasses a huge concept, and it is difficult to see how the segment could have been fit into die already huge two-disk game widiout subtracting from its quality, particularly on a 512K machine.
A nice feature of die game, which is also time of other Melbourne titles, is die ability to mount the program on a hard drive. The procedure for doing so is fairly straightforward and should apply to most Amiga hard-drive owners (unfortunately, not so to the author’s). The commands for hard-drive installation are: cd dhX: ;log onio appropriate partition makedir WIME -.create the needed director)’ Insert disk One of WIME into dfO.
Copy dfO: to dhX:WIME all ;copy disk‘A’to the directory Insert disk Two in dfO: copy dfi): to dhX:WIME all ;COpy disk ‘13’ to the directory assign A: dhX:WIME ;tell system where to find A: assign B: dhX:WIME ;tell system where to find B: cd dhXiWIME ;Iog to game directory execute s startup sequence ;activate game Some difficulties were encountered in the course of pursuing this option. The system tried is an A1000 equipped with both an Insider 1 Megabyte board and a CMI processor accelerator (with 68881) stacked on the 68000 motherboard socket, with a Supra hard-drive interface and 50 Megabyte
Seagate. This is most definitely a hybrid machine, and may not be a fair basis for declaring svhether WIME does or does not work on a hard drive. Any attempts to run the game opened properly with the initial company logo screen and then placed the tide graphic screen, with the tide music playing (which is very good). The machine would dien hang up and give die Guru message NOT ENOUGH MEMORY with the identification number 82011234.48454C50. Perhaps the problem is (and this is only a theory) dial, upon booting the machine to Workbench, die system occupies some 100 kilobytes of Chip (Video)
memory. This irrevocable Workbench allocation does not occur when the WIME program is booted from a floppy disk, and so the entire 512K of chip memory is available for the program. However, I have seen the game function on a hard drive on both The Krueger Company can provide a wide variety of MEMORY, MICROPROCESSOR, and SUPPORT CHIPS.
ALL KRUEGER PARTS FROM DR. CHIP carry an unconditional 30 day guarantee. The minimum purchase is $ 50.00. Cali Myron Licbcrniun at 800)245-2235 or FAX 602)820-1707. Mention AMAZING COMPUTING.
8 MHZ 68010 S 1.00 16 MHZ 68020 $ 35.00 OR 16MHZ 68881 41256- 150 PLCC $ 1.00 64Kx4 VIDEO ZIP $ 1.50 256Kx4 - 120 ZIP $ 3.60 2764-300 EPROM $ .75 The Krueger Company Circle 118 on Reader Service card.
Amiga 2000's and an Amiga 1000 at die Melbourne House development lab. This leads suspicion to the CMI accelerator present in die author's test machine. (Performance of the game on hard drive is spectacular.)
Furthermore, if some Amiga owners encounter problems with their installation, a possible fix is to delete the line “run NoFastMem” from the startup-sequence file on the game boot disk. This should fix any problems, (Once again, on our test machine this did not work. Some guys have all die luck.)
Another intelligent design feature is die lack of copy protection in die package.
Archival copies are easily made. The only form of protection, and a highly unobtrusive one, is a dialog box that appears at periodic stages of the game, asking for die location of a specific town on the large map of Middle Earth provided with the game.
War in Middle Earth is an excellent product, and the substantial amount of work that was invested in it is apparent.
The programmers and designers made a real effort to accommodate all the possible needs of the user. The design is clean and
(800) 245-2235.
Well structured, the graphics are superior to at least 90% of die Amiga games out there, and die user interface is smooth and functional. Combat sequences are somewhat inflexible and non-interactive: given the limitations of the two-disk format and die design for die 512K machine, this aspect is understandable. Overall, WIME is -well worth the price, and a real treat forToIkien fans. It is a privilege to review a product that aspires to such excellence.
• AO War in Middle Earth Melbourne House 711 W. 17th St.. Unit G9
Costa Mesa, CA 92627
(714) 631-1001 Price: $ 45.00 Inquiry 224 Roomers by J7je Bandito
[The statements and projections presented in "Roomers "are
rumors in the purest sense. The bits of information are
gathered by a third- party sourcefrom whispers inside the
industry. At press time, they remain unconfirmed and are
printed for entertainment value only. Accordingly, the
staff and associates of Amazing Computing™ cannot be held
responsible for the reports made in this column.] The
Bandito's got a bagful of interesting tidbits this time, it
must be the holiday season and all that peace and goodwill
that makes the rumors fly like little snowflakes, with no
two exactly alike.
Let’s take a look at what’s been sticking to the Bandito’s screen this time, Both Electronic Arts and Broderbund are expected to go public before the end of the year, taking advantage of the strong stock market. While both companies have experienced rapid growth in the past, things have slowed down in recent years.
Electronic Arts hopes to expand into the cartridge game market, while Broderbund continues to experiment with odd technologies and products, such as the Whole Earth CD-ROM catalog and their U- Force Nintendo game controller. The best thing about these companies becoming public is that they’ll be issuing quarterly reports to the public, so now we'll all be able to see how well they do each quarter.
What fun! The Bandito loves being a Monday-morning quarterback. The pay isn't great, but at least you don't get injured.
Speaking of stocks, things are very interesting over at Atari. Atari profits took a nose-dive, dropping 95% in the second quarter. Sounds like the stock price should drop, right? Not exactly, Atari stock has increased more than 20%. It is now much higher than Commodore stock (currently hovering around 10) widi a price earn ings ratio twice that of Commodore. Why, you ask? Don't theseinvestors know anything about the evil Tramiels and their track record?
Apparently, investors are pinning their hopes of Atari recovery on three tilings: the PC Portfolio, a tiny PC clone the size of a videocassette; the Epyx handheld video game, now called the Lynx; and the STE, their “Amiga-killer" (where have we heard that term before?). The STE is like an Amiga without some of the Amiga's features like DMA, expandability, multitasking, or a software base. Sounds like a killer, but the Bandito suggests they look to see which way the barrel of the gun is pointing before they fire it.
Atari is also announcing several models of Atari 'IT, which makes things somewhat confusing. The Bandito has been unable to sort through the tremendous hash of distortion, static, misinformation and pure wishful thinking that surrounds these puppies. So here’s some of the best ones that the Bandito’s heard, and you can make up your own mind.
Supposedly, an Atari press release from Dusseldorf lists these stats about the Atari 1040 STE: 16 (some say 512) colors at once out of a 4096 color palette in 640 by 480 resolution, horizontal and vertical hardware controlled scrolling, genlock ready (whatever that means gee, even a Macintosh is genlock ready if you spend enough money), 8 bit stereo PCM sound (the number of channels is unavailable), a new 256k TOS, and ports fora lightpen and up to 6 joysticks. No word on whether it’s compatible with previous ST software probably somewhat compatible, but not fully, is the Bandito's guess.
Sounds like as much of an Amiga-killer as the Apple I1GS has been. Of course, other sources say that it will be running a 16 Mhz 68030.
Some of the Bandito’s odier sources say the Atari TT will list for S 1.500, use a 16- Mhz 68030, 2 megs of RAM; a 3-1 2 inch floppy; genlock on the motherboard; three VME bus slots: and 13 different video modes, including 640 by 480,16 color, and l,280-by-960 monochrome. This is not the STE though the price sounds confusingly similar. The Bandito’s guess is that the STE will sport the SI500 price tag and the TT will be in the S3000 bracket, if not more. At least, the word is that the the TT will ship irt the UK in November with a 60 meg HD for ±.2000, or the equivalent of about $ 3000
U. S. Oh, and it will be shipped with UNIX starting next year,
chough how that’s going to perform squeezed into a mere 60 Meg
hard disk is a little hard to tell.
From yet another source, the Bandito hears that Atari is introducing three machines based on a 16 Mhz 68030, all with at least 2 megabytes of RAM. The disk drives are said to be compatible with Macintosh disk drives.
So when will we see these machines in the states? Probably not till sometime next year, given the time required for FCC certification. Aid maybe never, since it’s unlikely the U.S. market will accept a UNIX workstation with an Atari label on it. Look at the amazing success of the Mega ST series. What amazing success, you say?
Yeah, that's the one. The Bandito predicts that the 'IT series will never get sold over here. The STE will do no better dian the Mega ST line. The only good products in their lineup are the PC Folio and die Lynx; their success is uncertain, but at least they have a chance. The Stacy laptop may enjoy some sales largely as a Macintosh compatible laptop by adding on a Spectre cartridge. All in all, the Bandito doesn't think diat Atari is a credible threat to the Amiga. As Pogo might put it, Commodore's biggest enemy is itself.
The Bandito has spent more long hours sifting through dumpsters in Westchester parking lots, which has gleaned some interesting facts. You know, it's really amazing the number of Oreo cookies, Fritos, and Pepsi that are consumed by those product development guys.
Aside from that, the Bandito discovered many grease-stained documents of discarded A3000 circuit layouts.
Com m odo re’s ma rketi ng budget for Xmas is $ 20 million, which puts it in the big leagues of Christmas advertisers. In fact, we should see more Amiga ads than Apple ads this Christmas during the “Amiga 500 Holiday Campaign. ” Apparently, they're still busy revising the final product, and there’s more than one competing design. Commodore is playing its ROM cards close to its pocket protector and waiting to see what all the other guys are doing before committing to the A3000 architecture. One of the big decisions is the price point. Commodore can make as spiffy a machine as could be desired,
but then it might end up priced like a NeXT machine (which is Lisa spelled sideways, for those of you who remember the good old days of Apple). So they’re trying to make it expandable and powerful, but keep compatibility with the software base and keep die price tag down. Don't expect too much to be standard. The Bandito would be happy with a fast processor, extra addressing to allow more than 9 megabytes of memory, and an easy way to get expanded graphics modes. A way to soup up the blitter would be a nice touch.
While product development's plans are still in flux, marketing is going full-tilt for Christmas. Commodore's marketing budget for Xmas is $ 20 million, which puts it in the big leagues of Christmas advertisers. In fact, we should see more Amiga ads titan Apple ads this Christmas during the “Amiga 500 Holiday Campaign.” Of that money, $ 15 million is going into print, TV and radio advertising. There's also a lot more money being spent on promotional materials, dealer training, and the like. The campaign is centered around the Amiga 500.
As the Bandito has been telling you all along, the Amiga 500 is going to be sold in some mass market outlets. A500’s to go into Sears Business Centers and the Service Merchandise chain this fail. Check out the new Sears catalog to see the Amiga 500 in blazing color.
An important note: besides having lots of stores, Sears also does a huge volume of mailorder business.
Along with advertising push, this is expectecd to generate a very good Christmas.
The strategy is to push A 2000 and higher computers through retailers, using the A500 as the hook to get people interested enough to visit a dealer and ask questions. Hopefully, Commodore's dealer training efforts will help the dealer turn those inquiries into sales. The main purpose of the ad campaign is to build name recognition right nowr, most people have never even heard of the Amiga, so it’s awfully tough to sell them one. Will it work? A lot depends on how good Commodore is at the follow- up turning interest into sales. They must provide training for dealers on how to sell Amigas
more effectively. A new version of the Test Flight video is planned, which was a very successful way to show off the power of the Amiga.
While the fact that Commodore is spending a lot of money on commercials this Christmas sounds hopeful, wary Amiga-watchers are cynical. Remember those early Amiga TV ads, with the guy in die white robes walking up to an Amiga in a temple, and then getting high on the EMR coming out of die screen? Yeah, the Bandito’s been trying to forget those, too.
Well, these new commercials should be hot. Their being produced by none other than George Lucas and Matthew Robbins (director of Batteries Not Included) an entire series of Amiga commercials. The new commercials will start on Oct 16th (from Lucas Film Commercials) with Entertainment Tonight running followups on the making of the commercial every night dial week. Sounds like a special effects spectacular. And why would George waste his time doing an Amiga commercial (no matter how much they offered him), when he could be working on Star Wars 1: A New Cash Cow? The Bandito hears diat George is
a big fan of the Amiga and wanted to give it a helping hand. The Bandito hopes that it’s true the Amiga could use a few influential friends like that.
In other good news, die Bandito found this tidbit floating in the stratosphere, bouncing between satellites on its way to being a news release.
“Anticipating a strong demand for its Amiga and PC products following die launch ol a new advertising and promotion campaign, Commodore Business Machines, Inc. recently announced a major re-seller agreement with Connecting Point ol America, Inc. Under the agreement, effective immediately, Connecting Point of America will warehouse, re-distribute and sell all Commodore Amiga and PC line hardware products. The fastest growing franchisor of retail computer stores in the United States, Connecting Point of America operates more than 325 outlets nationwide.
“Connecting Point of America has an outstanding group of store owners.
Commodore is pleased to associate with such a major player, as we embark on a new chapter in our company,” said Harry Copperman, Commodore Business Machines president.
Connecting Point CEO Mark Schumate confirmed the agreement, saying, “We're happy with the new direction and new management team at Commodore. It's important that we’re taking this major step at this time, when we anticipate great new things for their Amiga and PC product lines.” Added Connecting Point Vice President of Merchandise Michael H. Weiss, “Commodore’s new advertising campaign was the impetus for us to begin our association now. We are sure brisk fourth quarter sales of Amiga and Commodore's PC products will be the start of a satisfying new association."
Zorro II Prototyping Board Over 4400 Plated Holes on a 0.!" Grid.
Gold Plated Edge Connector, "D''-type I O Connector Pattern.
Accepts 64 Pin DIPs and 14x14 EGAs.
Low Inductance Power and Ground Pattern for High-Speed Designs.
Designed for Maximum Flexibility.
Includes Mounting Bracket.
To order, send: cheek or money order for S49.95 + local sales lax (California only) + shipping & handling (US: S3.00, Foreign: $ 6.50) in US dollars [o: Celestial Systems Suite 165 Box J Manhattan Beach. C.A 90266
(213) 372-1229 Circle 114 on Reader Service card.
Real interesting, don't you think?The Bandito just loves reading between the lines. Sounds like the decision to spend so much money on Christmas marketing is already paying off. The Bandito also suspects diat die Man of Copper was a good choice for President of Commodore, since he seems to be the mover and shaker behind all of diese positive changes.
Things are looking up now if only Commodore actually sells a lot of Amigas over Christmas, the 1990’s will look like the Decade of the Amiga.
The Bandito discreedy discovered some discarded discs in a dubious dumpster following a wild weekend in whimsical Westchester. Using DiskDoctor and great care, die Bandito was able to ferret out some hints about Commodore’s plans for next year. Wider mass-market distribution for the Amiga 500 is planned for 1990, if die test diis Christmas proves successful. Pians for Toys R Us are on hold; Commodore may not want the A500 there for image reasons. As RAM prices continue to drop, the main bone of contention is whether to lower the retail price of the computer or to include 1 megabyte oFRAM as
the standard. Arguments mustered by both sides are heated. Hopefully, RAM prices will drop low enough that the difference becomes negligible, at which point 1 megabyte should become the standard. Look for announcement in the spring.
This Christmas is being watched closely by WordPerfect, among other software giants. Strong Amiga sales could revive the dormant PlanPerfect Amiga, and possibly even WordPerfect 5.0 for die Amiga. Other companies have held discussions with Commodore about software development of important packages (high on the list: CAD software), but the consensus seems to be “we'll see how you do over Christmas, and dien we’ll talk”. One of the more interesting questions to be answered is whether ornot the campaign, which focuses on die A500, will manage to sell appreciable numbers of A2000’s and A2500's.
That’s what Commodore is hoping, anyway. The Bandito wonders if Commodore is going to help the dealers reap die benefits of these greater Amiga sales by encouraging the new Amiga owner to see a dealer for TECHNOLOGIES I ji MUSIC MODULES
• *0 IFF sound files at once, each w independent volume,
pitchbend. & tuning), HARMONY (automatically plays one of 29
types of harmony while you play the melody, use multiple
modules for automatic chords). MIDI DELAI & SHIFT (real time
delay adjustable from 16 msec to over 8 seconds •* pitchshift +
feedback). MUSIC MODULES haa extensive MIDI capabilities for
the pro musician but is easyr TTa otc o Vit to use and
entertaining for the hobbyist.] o I AH I tH r l I MUSIC MODULES
it flexible and ONLY $ 49.95 expandable. Call for info on new
modules. I CALL: (508) 688-0599 MUSICOMP TECHNOLOGIES 176
Circle 159 on Reader Service card.
Software and peripherals. After all, Sears is just going to carry die machine itself, and maybe one or two pieces of software sometime later. The proud Amiga owner is going to have to find a dealer somehow.
Dealers are hoping diat Commodore provides an answer.
The Bandito predicts a rough Christmas season ahead for the entertainment software giants. From all reports, there’s a distinct lack of exciting new products for die fall. A lot of “me-too" products, including enough tank simulators to provide an entire field of Presidential candidates with photo opporninities. The smaller publishers will generally do better, though some of them (without a hot product) will have a tough time getting shelf space this year. Who’ll have the hottest Amiga game this Christmas? The Bandito suspects that Cinemaware might take the prize.
Price: $ 29.95 per Vol. Plus $ 3.0 (in US) for shipping. Send check to order.
Software Integration Solutions 1® 11027 Twin Pond Terrace San Diego, CA 92128 Tel: 619-748-3350 ClrclB 184 on Reader Service card.
Demo Reel II? The Bandito's informers report that NewTek is readying a sequel to tiieir very popular demo for distribution this Christmas. As before, it will have zippy animation, great images, and advertise at least one product diat isn’t available yet. Say, what ever happened to Digi-F X, anyway? Maybe we’ll find out in
Late-breaking news: Epyx has pruned itself back to a stub, and announced that it’s quitting die computer software business. They’ve laved off 90% of their employees from their high of 150 a year ago, leaving a mere handful to continue running the skeletal remains.
Dave Morse has resigned as chief executive, and Dave Needle and RJ Mical (die rest of the ex-Amigans) have also gone looking for new work. Epyx has announced diat from now on they will only produce Nintendo and Lynx products, no more computer software. What happened?
The Bandito will present the sordid story behind the facts next time.
Be sure to come back next time the Bandito is nourishing a new crop of rumors to satisfy your ever-growing curiosity!
• AC- Oriental Desk Top Art*: Vol. Lorienlial art work. -- Vol.
2:Martiai art figures.
Vol. 3:OrientiaI folk art.
Vol. 4:Chinese Font.
T Yossarinn never bad it so good New Products and Cther Neat Stuff by Elizabeth G. Fedorzyn Okay, Falcon F-16 fans, it’s time to don your scarf and goggles and prepare for new, unchartered missions. Spectrum Holobyte has released die Falcon Mission Disk, Operation: Counterstrike, a package designed to enhance their very' popular Falcon F-16 Flight Simulator, expanding it to a full campaign.
Operation: Counterstrike features 12 new missions set in a new terrain with new strategy elements, and more viscious enemies. The missions are intended for successive play', the overall objective being to fly into enemy territory' and disarm the enemy’s offensive. The enemy force includes four types of moving vehicles tanks, trains, amphibious landing craft, and trucks. Nasty MiG-29’s have replaced the MiG-2 l's.
As with the original Spectrum Holo- Byte program, every enemy target destroyed contributes to a pilot's success, but points are awarded for destroying specific targets depending on what mission has been selected. Operation: Counterstrike also features the same five levels of difficulty from 1st Lieutenant dirough Colonel. For those seeking a taste of glory', one of five medals from die Purple Heart to the Medal of Honor may be awarded to finer pilots.
For those of you super-aggressives, Operation: Counterstrike also features die original Falcon's ability to go head-to-head in dogfights against an opponent on an- odier computer. Using either a direct connect or a 1200 baud or faster modem, players can link Amiga to Amiga, ST to Amiga, or eidier ST or Amiga to a Mac.
Operation: Counterstrike requires 512K to run basic features, and one megabyte RAM for additional features. The original Falcon program is also required.
Falcon Mission Disk Spectrum HoloByte 2061 Challenger Drive Alameda, CA $ 4501
(415) 522-3584 Price: $ 24.95 Inquiry 235 Does be sing “Teddy
Bear"in this one?
No, it's not a long-lost B movie starring the King. VIVA, which stands for Visual Interlaced Video Authoring, is the latest contender in the Amiga hypermedia authoring systems race. Written by Paul Top Game: Spec I nun HoloBytes’ Falcon Mission Disk Interactive hypermedia with pizazz: VIVA from MichTron Benson for Knowledgeware and marketed by MichTron, VIVAis an icon-driven, interactive program diat allows you to create, manage, and display information.
Using VIVA'S object-oriented interface, you can control text, graphics, video, sound, color, and animation. VIVA is capable of control ling external media devices including video editors, laser video disc players, and CD ROM drives. Its abilides can be exploited towards a great number of ends, including general information distribution, sales, and simulation.
VIVA represents an easily compre- hendible system designed to appeal to novices as well as more advanced programmers and developers. Each icon represents a function, such as PLAY or ASK.
These icons are then grouped according to function areas, such as Video, Audio, Math, Text, etc. Thus, creating an application that incorporates a variety of media is a logical, if not entirely organized, undertaking.
MichTron’s VIVA requires 2 meg of RAM. The package includes two program disks and a 250*-page manual.
VIVA MichTron 576S. Telegraph Pontiac, MI48053
(313) 5700 Price: S99-95 Inquiry 236 Miss Pineapple, et al Well,
sure, maybe on his second or third shot but who would have
thought that on his first time out Joe could produce such a
massive collection of clip art for the Amiga, But that’s
just like Joe, now isn't it?
Pic-Magic, from Joe's First Company, Inc. is a newly released 10-disk collection of over 250 clip-art images for use in presentations, newsletters, etc. The graphic images are designed to be imported into existing Amiga programs, such as DeluxePaint, where they may be colored, resized, or otherwise manipulated.
The collection covers a wide range of familiar and not-so familiar images. For instance, I don’t know about you, but I can’t count the number of times I sat cradling my weary head, musing, “Gosh, if only I had an image of a tap-dancing tomato why, my presentation would be perfect!" Well, no more sleepless nights, because not only has Joe included diis often sought-after image, but he has also made available images of Joe Average and Miss Pineapple, as well as some “less conventional” pieces, like Christmas images and sports figures.
Dunlap Utilities from Progressive Peripherals Pic-Magic includes ten disks organized according to subject (e.g., Disk One: Animals, Disk Two: Sports, etc.), and a 220- page manual that includes representation of every image included.
Pic-Magic Joe’s First Company, Inc.
P. O. Box579, Station Z Toronto, Ontario M5N 2Z6
(416) 322-6119 Price-. S85-00 Inquiry 237 Better than a
Craftsman Deluxe Progressive Peripherals has released
Dunlap Utilities, a collection of multitaskings tools
that would make even Bob Villa envious. Written by Peter
Dunlap, diis collection features 77 programmable function
keys and over 40 interactive programs operable by a single
keystroke or mouse click, with all program modules being
able to work together or independently.
The Progressive Peripherals package offers tire user a wide variety of possible enhancements. With DU, you may remove read write errors from your floppy or hard drives without reformatting. And considerably fewer follicles will be jolted out of place as the program also allows for die recovery of accidentally deleted or discarded files, thus greatly reducing instances of acute anxiety.
Are your hard drives up to par?
Well, why not put them through Dunlap Utilities’ evaluation and test utilities? Then adjtist for optimum performance. You can also monitor all system data with Dunlap Utilities.
Tired of spending the better part of your life in front of a computer monitor?
Heck, why not get out; take in some of that peak foliage. With Dunlap Utilities, you don’t even have to be at your computer in order to get results. When die program detects inactivity, it will execute any program or Sanction you have set. For instance, during times of inactivity, Dunlap Utilities will blank your screen to extend monitor life, play background music, or verify disks.
Bored with the same ol’ screen? Well, with Dunlap Utilities, you can customize your Workbench screen by changing fonts, colors, pull-down menus, or screen resolution. You can even eliminate the CLI and Workbench completely.
You can use custom-designed IFF pictures to perform funtions or play sounds. Or run your entire system from your “sensitized" pictures. Even build your own IFF-based turnkey system.
Or maybe you’re more of a text kind of person. Dunlap Utilities allows you to replace icons with text headings. Whatever your preference, this Progressive Peripherals package will no doubt contain the tools necessary to fine tune your Amiga.
Dunlap Utilities Progressive Peripherals and Software 464 Kalamath Street Denver, CO 80204-5020
(303) 825-4144 Price: S 79.95 Inquiry 238 Mac tendencies OttlOZ
FRODUGT5 Ktcavw Amiga Logo Shadow of the Beast Commodore
Business Machines, Inc. Psy'gnosis 1200 Wilson Drive 122
Century Buildings Tower Street West Chester, PA 19380
Brunswick Business Park
(215) 431-9100 On-Line, Platinum Edition Liverpool L3 4BJ England
Inquiry *240 Micro-Systems Software
(051) 709-5755 12798 Forest Hill, Boulevard, Suite 202 Inquiry"
*249 FormAtion West Palm Beach, FL 33414 Studio Magic
Iconoclassic Software
(407) 790-0772
P. O. Box 31323 Inquiry 245 SunRize Industries Richmond, VA
23294 3801 Old College Rd.
(804) 273-0312 Real-Time Sound Processor Bryan. TN 77801 Inquiry
-241 ADEPT Development
(409) 846-1311
P. O. Box 20 Inquiry 250 Gauntlet 11 1000 Lausanne 5 Targhan
Stir Games Mindscape, Inc. 344-1 Dundee Road Switzerland
Inquiry *246 Northbrook, IL 60062 708 W. Buffalo Ave, Suite
(312) 480-7667 Record Manager Information Base v. 1.4 Tampa, FL
33603 Inquiry *"242 HC Software Australia
(813) 222-0006 GPO Box 2204 Inquiry 251 Icon Magic Adelaide
South Australia 5001 Glacier Technologies
(08) 344-6897 Virus Protection Toolbox
P. O. Box 1309 Inquiry *247 Abacus 5370 52nd Street SE Vancouver,
WA 98666 Grand Rapids, MI 49512
(206) 694-1539 Red Lightning
(616) 698-0330 Inquiry" *243 Strategic Simulations, Inc, Inquiry
*252 1046 N. Rengstorff Ave.
VTX-On Line International Championship Wrestling Mountain View, CA 94043 Avatar Consulting
(415) 964-1353 MichTron 9733 Roe Drive Inquiry *248 576 S.
Telegraph Santee, CA 92071 Pontiac, MI 48053
(619) 449-7780
(313) 5700 inquiry *244 Inquiry 253 Amiga users with a penchant
for certain Mac features, stand up and be counted. You can
now" have access to Mac pluses without foregoing your
Amigan loyalties and without fear of being ostracized
from your local Amiga risers group.
Central Coast Software's Mac-2-Dos now provides Amiga users with the ablility to read and write all types of files to and from 400K and 80QK Macintosh floppy disks.
Now", graphic images from Mac programs like MacPaint or MacDraw can be imported easily, or Amiga PostScript documents can be outputted to a Mac disk whereupon they may they may have better access to high-quality", professional typesetting equipment. Amiga users can also have access to the substantial collection of Macintosh clip ait available. Mac-2-Dos allows conversion ofMac ASCII files to and from the Amiga. And musicians can transfer Standard MIDI Files (SMF) between the two machines.
Upon transferring files, Mac-2-Dos automatically transfers and converts icons for the flies, or creates icons if need be.
Graphic file conversion is made easy with the Mac-2-Dos resolution options.
Selecting files to be transferred is as easy as 1, 2, or 3- A split-screen directory lists all Mac and Amiga files available for transfer. Files to be transferred may be selected individually, multiple files may be ¦‘tagged", or entire groups of files may be selected.
Mac-2-Dos works with any Amiga and requires a Macintosh external 3.5" drive. There are two packages available.
Package A includes custom hardware interface, file transfer and file conversion software, and adaptor cable. Package B features all tire elements of Package A, as well as a Mac-compatible 3.5" disk drive.
Mctc-2-Dos Central Coast Software 424 Vista Avenue Golden, CO 80401
(303) 526-1030 Package .4.- S99 95 Package B: $ 349.95 Inquiry
• AC* video SchmideO
• CAVEAT COMPCTASAURUS • by Barry Solomon (or. Genlocks and
bagels) Genlocks. Whew! There’s a lot to be said about that
little word. If you’re new to Amiga video or thinking of
getting into it, read on. The rest of the class can just skip
ahead to the next article.
O. K. Let’s do die basics real quick.
What is a genlock? A genlock is really two devices in one neat little package. First, a genlock encodes. That is, it takes the video signal (RGB) from your Amiga (500, 1000*, 2000, or 2500) and changes it into rrai video: NTSC, the kind your TV and VCR deal with. The problem here is not only diat RGB and NTSC are very different ways of creating a picture, but they are radically different in basic quality.
RGB can not only give you much better resolution, but it can also give you much more accurate and purer colors. In fact, in the video biz, NTSC is said to stand for Never The Same Color! There are a number of technical reasons why these differences exist, but they don’t matter!
(Have faith. I'll deal with diis matter later.)
The second thing a genlock does (this is really the genlock part) is it allows you to overlay your newly encoded video signal over an outside video signal, such as a camera or VCR, Too many people get hung up on this aspect of most genlocks.
A serious genlock is going to set you back quite a few dollars. The thing to remember is that, if you want to do Amiga video, everything you do depends on your genlock! The fact diat you are the world’s greatest animator or computer artist will not matter one iota if you can’t get your product cleanly on tape!
Whether or not you even need a genlock or a straight encoder depends on what you will be doing. If you only need to output what you’re doing to tape, then you really only need an encoder, (See me next month for more on diis topic!) The problem is that there really isn’t much in the Amiga market in die way of straight encoders. 1 know of an inexpensive one diat lists for less than $ 100. It stinks. At least I think it does. 1 also know of a professional model for the Amiga which is quite excellent. So is its price. That one lists for around $ 3000!
Like I said, whew!
The most important rule when choosing a genlock is pretty much the same as with any purchase: know what you need and want. You need to he aware of the many levels of quality, as well as the many levels of features. To my mind, picture quality is by far die most important criterion. You may be able to live without some of die features (faders, reverse keying, etc..) but if you don’t have die basic picture quality you need, you're dead before you start.
What kind of quality will you need?
That depends upon your plans and ambitions, If you just want to throw titles on die videotape of your Unde Joe’s wedding or “beam” yourself up in a home movie, you may be able to get away with something very basic and, therefore, inexpensive. If you videotape weddings and Bar Mitzvahs for profit, you will need somediing a little bit better. If you are going to be doing instructional videos or industrial videos (sales training, corporate reports, in-house promotional videos, etc.), you'll definitely need something a little bit better. If you ever plan to have your work appear on local cable,
you will have to get serious about a genlock. Finally, if you want to end up on broadcast TV, well, dien you’re competing with the Big Boys, and your output had better be perfect!
Perfect? Yes, practically speaking, it is possible. If you pay enough money, you can get NTSC video that is practically indistinguishable from RGB. You are the only person who can determine what level of quality you need; don’t let anyone tell you it isn't available.
My first purchase was the $ 80 encoder. I was horrified. There was no way I could do professional video with this piece. I had only tried it because, after a lot ol thought, i decided that i didn't really need to superimpose my signal over anything else. Since I was planning on working with a local video production company, I just needed to change my Amiga output to NTSC (they do all the mixing and overlaying for me). I thought (hoped) that maybe all of that extra money for the other models just reflected more features. Boy, was I wrong. I spent about an hour on the phone long-distance to tire
manufacturer who kept telling me over and over that the output was great and that the only problem was that I was used to RGB.
So it looked poor. Instead of just admitting that tire quality of tire unit was only worth the $ 801 had paid for it, he was telling me that I was mistaken. Well, I may not be an aniste, but I know when reds are purple and yellows are green, when colors bleed all over the screen, and when the whole
* @%$ picture is so fuzzy it seems as though i’m looking through
The next purchase was a popular model in the $ 400 range. It was considerably better, but not S320 worth. All of the same problems, just less so.
Then, on a recommendation, I made tlie worst buying decision I ever made. I spent $ 1000 on something which was advertised as a ''professional” genlock. (I have since noticed diat just about everything over $ 150 is touted as having “broadcast-quality output". CAVEAT VIDEOSAURUS!) This one was much better so I was hoping I could manage witii it, but it still had a lot of problems. Well, over a three-month period 1 ran up my longdistance bill calling the manufacturer in Florida only to be given excuses and "suggestions" that didn’t really help all that much. In fact, most of the suggestions
involved "tweaking” that would have taken diousands of dollars worth of sophisticated test equipment and a trained video technician! Finally, 1 was so frustrated that I called one last time with the intent of cramming that genlock dirough the phone and...well, you get the idea. You can imagine my astonishment when all I got was a recording informing me, “The number you have dialed has been disconnected. There is no new number...” That's right. They had gone out of business on me! I guess I wasn’t the only one who had trouble with that genlock.
For those of you whose eyes are not flooded with tears at my tale of woe you may be interested to know that many of die people who designed and built this genlock have turned up in the same area of the same southeastern state making a similar genlock under a similar name. I have used this new genlock in a professional editing studio. The owner of the studio had seen it at a trade show and had bought it immediately. When I came in, he hadn’t even had a chance to use it yet, so he hooked it right up and prepared to impress me! The quality was exactly the same as my unit (Not great for a $ 1000
piece), it strangely had all the same problems as mine and even worse, it crashed the Amiga five times in a sixty- minute period.
I’m not altogether sure what the moral of this story is (although I do know that genlock shopping while armed is illegal in most states) but I can make a few suggestions;
1. First and foremost, as I mentioned before, know what you need
and want both in features and quality.
2. Check out the company that manufactures it, How long have they
been in business? How long are they likely to be in business?
3. Will your dealer service it? (CAN he service it? Does he know
anything about real video?)
4. Please forgive me, all you nice mail-order companies out
there, but I cannot recommend buying a genlock by mail order.
My best recommendation is to go to your favorite local dealer
and ask him to hook one up. Right out of the box. In fairness
to him, please don't do this unless you are serious about
getting the genlock, but don’t buy one widiout see ing its
outpuI eidier. If there is any choice in the matter, view the
output on a real TV or video monitor as opposed to a
switchable RGB NTSC monitor like the 1084. (I always
recommend that you use the best possible equipment to evaluate
your work. I am not one of those who subscribe to the lowest
possible denominator theory.)
If at all possible tape the output on a portable VCR or camcorder and then view the result on a regular TV or monitor. If you find one that gives you die quality you need, buy it. That one! Not a new unopened one, but the one you saw demonstrated. It is acknowiedged among video pros diat the quality control in Amiga genlocks is whimsical at best, so always buy the one you tried.
5. I’d like to recommend that you don’t buy more features than
you need but diis will be extremely difficult as the number of
Amiga genlocks is still relatively small. Particularly for
those of you who really only need an encoder. If you want any
real level of quality you'll probably have to by a genlock
(unless you have S3000).
6. If you have the money (or access to it) to get serious
quality, you'll probably find, as I did, that the very best
genlocks on the market are not manufactured by Amiga people,
but ratiier by video people. I'm very sorry to have to say
diis and I do expect that diis state of affairs will change,
but if you need top quality and these genlocks are in your
price range, do not fail to check them out. For many of you
this will mean a long drive, as not many Amiga dealers stock
the really big stuff. But if quality is your goal, it’ll be
worth it.
* 7. For diose of you with Amiga 1000’s, thank you for your
patience! As you undoubtedly already know', die 1000 does have
a composite video output. However, without a genlock there is
still no overlay capability and the video output quality level
is somewhat similar to most of die lower priced genlocks. So,
if you want good quality, all that I have said above applies to
you too.
One final word on “broadcast quality”. The parameters defined by NTSC video are really more an explanation of how die signal is to be encoded and decoded. The quality of the signal necessary to be defined as NTSC is really very broad. It is also really very old.
(Remember we’ve had NTSC video in this country' for over forty years.) Most of what you see on TV today is far better dian die very loose NTSC standard. The FCC. Video manufacturers, networks, and particularly the cable companies have been talking for several years about upgrading the quality level of American broadcast (and cable) television. Hopefully, one day they will stop talking about it and do something about new standards.
Test instruments are nice to use if you have access to them and the knowledge to use diem but, most often, our eyes will have to be die best judge. Use them along with your brain. (One included free with each head!) Are the colors right? Check the hue (shade of color). Are the yellows green? Are the blues purple? Are the colors oversaturated? Most genlock manufacturers will tell you never to use a color over Level 12, particularly red, as this is difficult to reproduce in NTSC. This may work ou t fine for you and, depending upon your budget, it may be necessary. Just be aware that, with the
really professional genlocks (i.e., die ones manufactured by die video companies), this is rarely' a major problem.
One last point to keep in mind, especially when looking for a genlock, when you really only need an encoder many Amiga genlocks on the market need an external sync source. Remember, a genlock will overlay encoded graphics over an outside video source. To do this it must synchronize (sync) encoded graphics to die incoming video. In some cases only the sync from the incoming video is used.
For some reason, many manufacturers expect dial all diat will be done with a genlock is graphics overlays, so some genlocks do not provide a sync signal. This means diat, even producing a small tape for die family (back in Palm Springs) may require a second VCR, or camera or blackburst generator (a professional sync generator) to provide the sync. Also remember that even the cheapest video camera or camcorder will provide a better source of symc than a VCR. Tape playback is just not considered a stable source of sync. Before buying, ask the dealer if the unit has an internal sync source. If it
doesn't, be prepared to make financial adjustments for the addition of a camera.
[Note: After this article was written, 1 had a chance to speak with Oran J. Sands V3.0, one of AC's non-resident video wizards, about the subject of genlocks. It seems that most of them do use an internal sync and, therefore, they should be usable as straight encoders (that is, without any outside sync necessary)). However, please be careful about this point. As I informed, Oran I have personally tried at least three different genlocks that (Oran says) were designed to, and therefore should have, worked fine without an outside sync source. None of them did work, though, without it! I have also
heard this complaint from several other sources. Perhaps it’s that whimsical quality control of which I spoke? In any case, the bottom line is make sure that the particular unit you buy does what you want, when and how you want it to and that it does it at the level of quality you expect.
I received a couple of very interesting letters this month, One was from a Jeff Pearson who wrote in regards to a project he is working on: “...it [the project] involves digitizing a live background and then animating a group onto that background lip-syncing a song on tape. 1 have a toehold understanding on using a SMPTE time code to tape the group on cassette, but syncing the animation to this cassette is beyond me.
Can you help?” Well...maybe,Jeff. SMPTE time code (SMPTE stands for the Society of Motion Picture and Television Engineers) is something which can be very helpful in video work. A timed signal is inserted onto audio and or videotape so that precision editing may be done. Essentially, each fractional segment of tape (audio or video) is marked with a number for reference. This identifies any given event on the tape so that you know where to cut, insen or sync scenes and or sounds.
SMPTE time-code generators are available for use with the Amiga and. While I certainly do not recommend against them, they are fairly expensive and are basically for serious professional use only. If you do not have a video and audio-editing system sophisticated enough to take advantage of SMPTE, it will do you no good.
This is difficult to do without knowing more details about your project, but let me share a couple of thoughts.
You mentioned digitizing a live background. It would be much easier to genlock your animation over the live background than to digitize it [the background]. Would this suit your project?
As far as syncing your animation to a song, that’s tough. In fact, I would officially like to invite any of my readers to submit any and all suggestions they have on syncing sound and animations. If you are using MIDI-generated music, things are a little easier as it is created (or supplied) lay the computer and can be very closely controlled by your Amiga with the help of tine several different programs on the market. If you’re talking about syncing an animation to a record or tape, it gets a lot harder, Here's what I do. I don’t! Actually, what I do is to try to avoid direct syncing wherever
possible. If you are animating, say, carolers singing a Christmas song, try to show them from the hack when they are actually singing. Use a shot from behind showing the house towards which they are singing. Show the delighted faces in the window. If you do this, there is less actual movement to draw, and you are only trying to sync general movement (swaying back and forth, etc.) instead of specific, detailed movement (actual lips moving in time to the music). When you create your frames (in whichever paint or animation program you use), try loading them into a program such as Pageflipper Plus
FX where you have very close control of speed. Plan your synced sequences to be as short as possible to give the effect you xvant. Then use an audio source (CD or cassette player) with a speed control. There are dozens of these on the market and they usually will give you a range of plus or minus 3%, which is a huge difference in music speed. If you keep your actual synchronized sequences short say, five to ten seconds you can usually get it dose enough to look right, ft may take some practice tries, and maybe a friend to am the VCR or the cassette deck, but you can usually come close enough.!
Hope this is of some help to you Jeff!
TtjE T7TROT OmSTEK Bring tbe ancient art of (be Tfl OT to your atniga ft -- A®* % C is fc.
1 y ' S , 1*, 1 ft- 4 m raoL 1 HiltMIT . E E rt TH._ Tbe Ta?0T TPSTEI? From Empire graphics is tbe first fully animated fortune telling software package for tbe amiga. Tbe Tai?OT ToaSTEl? Not only entertains you and your friends uiitb it's authentic Tarot readings, but it mill also guide you in tbe interpretation of the mystic Tarot,
* Two full disks of graphics and animations
* Sriilly animated Anajor £ rcana w Classic 3&1G card spread
personal readings » Teaches definition interpretation of alt
* Instructs users in proper laying of cards Expedience your*
future today.
Ask your retailer for The Tai?0T lyasTE?
Or- nail check or noney order for 529.95 to EMPIRE GRAPHICS
P. O. Box 964 Union, NJ 07083 Send 52.00 for deno disk and coupon
Amiga is a registered trademark of Commodore-Rmiga, Inc.
Circle 151 on Roader Service card.
Again, there are probably many other ways to accomplish roughly the same tiring, and I want to be able to share t he best ones, so please write to me with your ideas.
Well that’s about all for this month.
Please write me in care of Amazing Computing if you have any video questions or problems drat need common sense answers. Now that you are all expens on genlocks and armed with the wisdom of Solomon...go out and buy your genlocks...and have a bagel! •AC* Barry Solomon, Video Editor c o A mazing Computit tg
P. O. Box 869 Fall River. MA 02720 by John Steiner Bug Bytes The
Bugs and Upgrades Column This column marks the second anni
versary of “Bug Bytes”. I would like to take this opportunity
to thank everyone who has taken the lime to write and inform
Amazing Computing readers about software upgrades and new
releases, as well as software problems and work-arounds. You
have made my job much easier.
ULTRACARD is a program that is similar to the popular Macintosh program, HyperCard. Early versions have a few serious bugs in them and, as of this writing, the current version is 1.11. If you are having problems with an earlier version and would like an upgrade, send your original disk and a self-addressed stamped envelope to them. They will provide the latest version to you at no charge.
Music-X from Microiliusions has been updated to fix a problem with the original version that ties up the serial port, and fails to release the port when the program exits. The update is only available directly from Microiliusions.
The Director is a powerful graphics display language that allows the display of images, animations, and sound files. Color cycling of an IFF image is supported, but a reader has reported an incompatibility with the Director and color-cycled DeiuxePaint III pictures. Since DeiuxePaint III has more cycle choices than the Director was designed to support, it appears that color cycling in a Dpaint 111 image is not possible.
The problem can be solved by using cycle choice numbers 3, 4, 5 and 6, and by avoiding numbers 1 and 2. The Director’s CYCLE command should then cause these four selections to cycle properly.
The story of problems with overscan mode and the 2090 hard-disk controller card continues. I received a letter from Dr, Lawrence F. Keller of Cleveland, Ohio, wfto comments about problems with Gold Disk's Professional Page desktop publishing software. Dr. Keller lias a NEC Multi- Sync monitor, with an AGA2000 graphics adapter from Microway (die flickerFIxer) installed in an Amiga 2500. The Microway board comes with MoreRows, a software utility that extends the screen display to over 700 x 440 pixels. He reports that Professional Page can take almost a minute to fill a file requester when
using the overscanned screen, yet if the screen is placed in dre background, the file requester fills almost immediately. A similar lengdt of time is taken to load dre program with the hard drive being accessed continuously for almost two minutes. He reports that Professional Draw7 does not suffer from dris problem. A representative from Gold Disk stated he thought Commodore was preparing a software fix, but Commodore Amiga Technical Support denies tiris.
I visited widr Gold Disk technical support regarding diis problem, and diey do not recommend running MoreRows with Professional Page, especially if you are using die 2090 or 2090A controller card.
One 2500 owmer I know of has replaced his 2090A "with a Hard Frame controller card.
He reports no problems running MoreRows and Professional Page with that combination, Another program dial doesn’t like MoreRows is DeiuxePaint III. The two get along just fine unless you select Dpaint’s overscan mode. At that point, DeiuxePaint gets vert' confused, and fails to operate properly.
A letter from Everett M. Greene of Ridgecrest, CA identifies a problem widr the Manx C version 3-6a assembler. If one assembles the code fragment: move.B (A0)+,(A1)+ dbra D7,’-2 end The code appears to be generated correctly but when one tries to link it, the linker dies and locks up the machine, requiring a reboot to recover. The problem is caused by the address counter reference in the DBRA instruction, according to Mr. Greene. If one replaces the “*-2” with a label reference, the problem goes away. It seems diat dre assembler is apparendy generating somediing it shouldn’t and dre linker is
not properly handling the (supposedly) bad input.
Discussions between Mr. Greene, and Jeff Davis of Manx technical support have not produced a solution. Be cautious of this problem, so as not to lose a large amount of source code when the system crashes. Mr. Greene also noted that after the addition of a 68020 68881 board into his A1000, several game programs no longer run. I have had plenty of similar reports of game software not operating properly widi a 68020 board installed. It would seem that those tvho are contemplating die purchase of a 68020 board can expect the possibility7 of their favorite game no longer functioning. Game
developers need to write a code diat won’t break with the addition of the 68020. Widl the proliferation of add-on coprocessor boards, and more sophisdcated applications, this problem may get wrorse before it gets any better.
A DPAINT m (PLUS MOVIESETTER USERS) ANIMATED FONTS Bring your screens to life with 3D FONT--A full rotation 3D font For effects that will knock their socks off I!
Nifisoi VF FONT--Yes it does I Dissolve on or off screen - Rotate, Shrink, etc. POUR FQNT-Pour in place WOW Animated paint can pours the font on screen !
PQM1C FONT-See to believe I Animated characters that bring your title to life OVFR 270 ANIMATED BRUSHES Thousands of screens that bring out your best ONLY $ 39.95 Delivered to VQULuQOfJ CheckJtfJ LOjQT Two Disk P.O. Box 80t ”SEL PROSSER, WA 99350 WARES ADD $ 3.12 TX COMING SOON-PREHISTORIC AND SCI • FI products named are trademarks of there respective co. Circle 150 on Reader Service card.
You have not yet received your update, and are a registered user, contact Emerald Intelligence.
I received an Email letter from Peter Smithem via CompuServe regarding a possible problem with Aegis Draw 2000.
And a work-around. Mr. Smithem reports that any attempt to use "SAVE AS IFF FILE” when in Workbench resolution will immediately cause a Guru. The menu option works correctly when using medium and high resolution modes. Though he hasn’t Spent any time trying to track down the source of the problem, he has found that die CMD screen dump utility from Amiga- DOS can capture the picture and put it on disk if necessary.
Mindware International has released Pageflipper Plus F X version 2,0. The program sports a PageSync module for synchronizing animations to external MIDI music. Arexx support, ANIM file compaii- bility and over 100 new special effects have been included in the upgrade. The retail price of the new program is $ 299.00, and registered owners of earlier versions of Pageflipper Plus F X can be upgraded to die latest version by sending a check for $ 139.00 to Mindware International.
A newsletter from Emerald Intelligence of Aim Arbor, MI has announced the release of Magellan version 1.1. If you are a registered user, you should have already received your copy. Improvements to this artificial intelligence software include a nicer user interface, and the addition of more sophisticated operators. An interface tool kit add-on module allows interaction with SuperBase databases, Lotus 1-2-3 format spreadsheets, and an Arexx port. If spell checking, automatic date function, and a coupon for a free upgrade to the next version of ProWrite. The cost of the upgrade is $ 20.00
plus $ 5.00 shipping and handling. To receive your upgrade, send the original disk and upgrade fees to New Horizon Software. Inc. New Horizons Software has announced the availability of ProWrite version 2.5. The additions to the current version include simultaneous text and graphic printing, user-definable page sizes, faster Express-Way Software, Inc. is now shipping version 1.10 of ExpressCopy.
Improvements include a more intelligent algorithm that fills backup disks an average of 99% full. The backup utility writes standard AmigaDOS file format disks, for ease of recovery when a hard-disk crash occurs.
Tire program also makes sure that Icon files are copied to the same disk as the associated directory or file. Several odrer improvements have also been added, and the new version also fixes a few bugs. Registered owners of ExpressCopy can obtain the update by sending S5.00 to ExpressWay Software, Inc. Microsmiths has released version 2,2 of TxEd Plus. Registered owners should have already received upgrade information. Registered users who haven't received an update notice should contact Microsmiths directly to report your problem or leave them your new address.
Jack Radigan, developer of JRConun, a fully featured terminal program now available as shareware, has posted a warning to electronic bulletin boards that an illegal, early beta version of JRComm has been posted to the electronic networks.
The version is really ,99b, and has several particularly nasty bugs in them. There are two forms of the illicit file floating around, but both of them have a file size of 170,300 bytes. If you have downloaded this file, you should destroy it. If you are a BBS operator, and someone has posted it to your board, you should remove it immediately.
Commodore Amiga Technical Support personnel have posted the latest version of Workbench 1,3 to several national information services, including Bix, CompuServe, and People Link. The newest version, 1.3-2, contains a compressed series of files containing modified versions of Setpatch, LoadWB, Eval, DiskDoctor, SetClock, Mount, Format, DiskCopy, FastTape available in capacities of 60 and 150 Meg.
Standard FastTrak capacities include 20 40 80 150 Meg.
System shown includes a FastTape backup streamer plus a FastTrak hard drive FastMemFirst, NoFastMem, SetMap, Pipe- Handier, Speak-Handier, FastFileSystem, Aux-Handler, ClockPtr, CMD, info.library, version.library, serial.device, and printer.device. The new versions fix problems some minor, some noc-so-mi- nor, with the previous versions of the Workbench release.
That’s all for this month. If you have any work-arounds or bugs to report, or if you know of any upgrades to commercial software, you may notify me by writing to: JohnSteiner, c oAmazing Computing, Box 869, Fall River, MA 02722 FmftTmfc™ Hard Drive Systems for the Amiga® 500 1000 2000 _ Call Xetec or your dealer for pricing and delivery.
2804 Arnold Rd. Salina, Ks. 67401 (913) 827-0685 Amiga is a registered trademark of Commodore Business Machines, Inc.
- or leave Email to Publisher on People Link or 73075,1735 on
• AC* Circle 123 on Reader Service card.
Companies Mentioned in Bug Bytes Aegis Development, Inc. Commodore Business Machines Emerald intelligence Aegis Draw 2000 Workbench 1.3 Magellan . 1 2115 Pico Blvd.
1200 Wilson Drive 391&AI Research Park Din e Santa Monica, CA 90405 West Chester, PA 19380 Ann Arbor, Ml 48104
(213) 392-9972
(215) 431-9100
(313) 663-6722 inquiry 202 Inquiry 206 Inquiry 210 Intuitive
Technologies Manx Software Systems Express-Way Software
ULTRACARD Manx C v3.6a assembler ExpressCopy 1.10 2700
Garden Rd. .Suite 6
P. O. Box55
P. O. Box 10290 Monterey CA 93940 Shrewsbury, NJ 07702 Columbia,
MO 65205-4005
(408) 646-9260
(800) 221-0440
(314) 474-9284 Inquiry 207 Inquiry 211 Inquiry 203
Microsmiths, Inc. Mindware International Microillusions
TxEd Plus 2,2 Pageflipper Plus F X v2.5 Music -X
P. O. Box 561 110 Dunlop W. Box 22158 17408 Chatsworth Strret
Cambridge, MA 02140 Barrie Ont. CANADA L4M5R3 Granada Hills,
CA 91344
(617) 354-1224
(705) 737-5998
(818) 360-3715 Inquiry 208 Inquiry 212 Inquiry 204 New
Horizons Software, Inc. The Right Answers Group Pro Write
v2.5 The Director
P. O. Box43167 P.O. Box3699 Austin. TX 78745 Torrance.CA 90510
(512) 328-6650 (213) 325-1311 inquiry 205 Inquiry 209 64 COLORS
in AmigaBASIC by Bryan Catley One of the first “goodies”
Commodore added to the Amiga was die extra-half-brite mode.
This mode effectively extended the maximum number of colors
which could be displayed on a screen from 32 to 64
(excluding HAM, of course). Essentially, the second set of
32 colors are half the brightness of die first 32. What
this boils down to is that you still have the basic 32
colors, but you now have two shades of each color to choose
This mode is available on ALL Amiga 500's and 2000's, and on all Amiga 1000's EXCEPT die very early ones. So why does its use seem so rare, especially in AmigaBASIC? Well, it requires a screen with six bit planes, and AmigaBASIC simply does not allow a screen to be defined widi more than five (the depth parameter).
So, we are now going to show you how to add a sixth bit plane (via a small subprogram) to an already opened screen and window with five bit planes, thereby allowing you to use colors 0 through 63. Subsequently, additional half-brite windows (associated with tire same screen) may be opened and closed at will with no additional processing!
Bit Planes???
Before we get into how to create our half-brite screen, it would be as well to review what bit planes are and how the Amiga uses them to determine the color each pixel on the screen will be displayed in.
A bit plane is an area of memory (associated with a specific screen) where each bit represents one pixel on the screen. If a screen has only one bit plane, dien it can display no more than two colors since each bit can only be zero or one. Now, if we add a second bit plane, each pixel is now represented by two bits, and we have four combinations of zeros and ones for a maximum of four colors on that screen. The addition of a diird bit plane allows up to eight colors; a fourth provides for 16 colors; while five bit planes are capable of showing up to 32 individual colors at the same time.
The addition of a sixdi bit plane should allow up to 64 individual colors, so why are the second 32 just “half-brices” of the first 32? Well, the Amiga only has 32 color registers and it is these registers which actually determine the displayed colors. So, in half- brite mode, bit planes zero to five detennine the color register (0 -
31) , and if the corresponding bit in the sLxtli bit plane is on.
Then tire brightness of the color is automatically halved.
.And this DOES provide you with 64 different colors to work
The “MakeltHB”Subprogram Type in Listing One (the “MakeltHB” subprogram) and save it in ASCII format. Use an immediate command of the form: SAVE “MakeltHB'',A; (you may not use the menu items to do this). Once saved in ASCII format, it may be MERGEd with any program which desires to make use of it.
When tlois subprogram receives control, it makes a couple of assumptions. It assumes a screen with a width of 320 and a depth of five has already been opened, and it assumes that a window associated with the screen has also been opened, and that this window is die current window.
The first thing the subprogram does is to insure the opened screen window is capable of displaying 32 colors: if it cannot, the request is ignored. (The error will be picked up 011 first request for a color above 31)- Assuming all is well, the subprogram uses a series of PEEKs and POKEs, and the “AllocMem" and "RemakeDisplay” operating system routines to create the sixth bit plane and to add it to the current screen.
Control is then returned to the calling program which may make use of colors zero to 63 and or open additional windows as desired.
(continued on page 74) Where Can You Find... A’-7'"r‘*h The Fred Fish Collection completely indexed, ft Over 2200 Amiga products with full descriptions and completely cross-referenced With special articles for the Amiga and much more?
AC cmm miGA Fall '89 On Sale NOW!!!
At your local Amazing Dealer A Demonstration Program Listing Two shows a simple demonstration program which uses the “MakeltHB” subprogram to display all 64 colors on the screen, and to open a smaller, additional, window in which colors above 31 may also be used.
Type it in, and then Issue the immediate command MERGE “MakeltHB". If you receive an error message, you probably forgot to use the “,A” option. No problem! Just save the current program; reload “MakeltHB"; resave it with tire “,A” option; reload the demonstration program; and repeat tire MERGE! Now save the combined programs under any desired name; (except “MakeltHB”).
You may now RUN tire program. Assuming no typos, you will be presented widr a screen containing all 64 colors in four rows of 16 vertical rectangles. They are displayed in the sequence of 0, 32, 1, 33, 2, 34, 3, 35, 28, 60, 29, 6l, 30, 62, 31, 63. This sequence allows you to compare dre standard color and its “half-brite” associate side-by-side. You may care to modify the loop which creates the colored rectangles to display them in sequence.
A click of the mouse will cause a small secondary window to be opened, also in 64 color mode. Anodrer click will terminate the program.
The three essential instructions are SCREEN, WINDOW, and MakeltHB; in that order. MakeltHB need only be invoked once per screen, but a window must also have been opened. Failure to follow this sequence can produce some interesting results!!!
Note the LIBRARY and DECLARE statements at the very beginning of the program. They are required by “MakeltHB” but must reside in die using program. (Actually, die LIBRARY statements may be placed in die subprogram if desired, but I don’t like doing this because it results in a pause in the program's execution when the subprogram is invoked, while the library routines are loaded into memory best to do it during program initialization).
While on the subject of LIBRARY statements, this program expects the “exec.bmap” and “intuidon.bmap" files to be in either the current directory, ordie LIBS directory of your Workbench disk.
If they are anywhere else, you will have to insert a CHDIR statement prior to the LIBRARY statements. The “intuidon.bmap” file may be found in die “BasicDemos” drawer of your “Extras” disk. However, if you do not have an “exec.bmap" file you will either have to obtain one via a Public Domain source, or create your own by using Lhe “ConvenFD” program which may also be found on the “Extras” disk.
AmigaRASIC Half-brite Notes
- Once you have established your half-brite screen, you may use
all 63 colors in the COLOR statement. Thus, COLOR 58,62 is a
perfectly valid statement,
- All 64 colors may also be specified in LINE and CIRCLE
- All 64 colors may also be specified in PAINT statements, but
when colors above 31 are specified, the results may differ from
what you expect! Enough said. Experiment.
- All 64 colors may NOT be specified in PALETTE statements; you
are still restricted to 0 - 31. However, since palettes 32 - 63
always depend directly on palettes 0 - 31, this is no great
If you want to modify a color which is above 31, simply control it via the modification of its lower numbered partner.
- Remember, using half-brite colors will require a significant
amount of additional memory.
- Now you can make your AmigaBASIC programs really colorful!
Listing One ' Subprogram to make current screen a half-brite screen 1 thereby allowing up to 64 colors to be displayed.
V N.3. Screen MUST be defined with a width of 320, and 1 first window must have been opened.
' Bryan D. Catley, March 1389 I SUB MakeltHB STATIC IF WINDOW(6)=31 THEN bitmap.ptrS=PEEKL(WINDOW(7)+46)+184 bitplane£=PEEKW(bitmap.ptrS)*PEEKW(bitroap.ptrs+2) newplane ,ptri=AllocMemi (bitplar.ei, 6553S&) POKEL bitmap.ptrS+28,newplar.e-ptrS POKE bitmap.ptrS+5,6 viewmode.ptr&»PEEKL(WINDOW(7)+461+76 POKEW viewmode.ptr6,2*7 CALL RemakeDisplay END IF END SUB Listing Two ‘ Demonstration Program of the use of 64 Colors ' from Amiga3asic ' Bryan D. Catley, March 1989 - LIBRARY "exec.library" LI3RARY "intuition.library" DECLARE FUNCTION AllocMemS LIBRARY SCREEN 2,320,200,5,1 ' Define standard 32
color screen WINDOW 3,,,16,2 ' Open full sited window MakeltHB ' Make screen a half-brite cr.e COLOR 37,2:CLS ’ Note use of oolor 37 LOCATE 1,1:PRINT"...64 colors with AmigaBASIC:" pal=0 ' The following loops display all 64 colors in the ' sequence 0, 32, 1, 33, 2, 34, etc FOR n=0 TO 3 FOR m-0 TO 15 STEF 2 LINE (4+m*19, 9-+n*44)-STE? (19, 41) .pal,Li LINE (4+:r-19+13, 9+n*44)-STEP(15, 41),pal+32 , bf pal=pal+l NEXT NEXT ' The following loops display all 64 colors in the 1 sequence C, 1, 2, 3, A, 5, d, etc 'FOR n=0 TO 3 ' FOR m=0 TC 15 LINE (4+m*19, 9+n*44) -STEP (19, 41) ,pal,bf ' pal=pal+l '
• AC* PO Serendipity Insight into the World of Freely
Redistributable Software for the Amiga by Mike Morrison Fred
Fish Disk 237 CLEPrint An example of printing both strings and
numeric data to the CLI from assembly code. Includes source.
Author; Jeff Glatt Ctype A text file reader that is quick and
Uses the current Preferences settings and the current font. There are also three file utilities StripCR, PlusCR, and StripLF to help in transfering files between different computer systems. Version 1.0, includes source in assembly. Author: Bill Nelson Dplot A program to display experimental data.
The author outlines several design goals for future revisions including scaling.
This is version 1.0. Author: A. A. Walma ILBMLib A shared library (ilbm.library) to read write IFF files, derived from the EA IFF code, along with various enhancements.
Examples on using the library from BASIC, C and assembly included. Written in assembly, source included. Author: JefF Glatt ParOut Assembly language code showing how to allocate and communicate directly with the parallel port hardware. Includes source. Author: Jeff Glatt (original C code by Phillip Lindsay) Speed A program that performs 10000 iterations of selected groups of 68000 instructions.
The DateStamp time function is used to record how long the operations took.
This number is then compared against known prestored times for a stock A2000 and a A200 with an A2620 card. Version
1. 0, includes source in assembly language. Author: Jez San Fred
Fish Disk 238 CWDemo Demo-only version of the pop-up utility
Custom Screens. The program allows you to control the color
register assignments of Intuition custom screens. Version 3.1,
binary only. Author: Kimbersoft Dmouse A versatile screen &
mouse blanker, auto window activator, mouse accelerator,
popcli, pop window to front, etc, widget.
Includes DlineArt, a screen blanker program that displays colorful line drawings. This is version 1.20, an update to version 1.10 on Fred Fish disk £169.
Includes source. Author: Man Dillon LabelPrint This program loads the directory off of a disk and then will print a disk label for you. Allows you to sort the directories and files in different ways. This is version
2. 5, an update to version 1,9 from Fred Fish disk £210. This
program is shareware and includes binary only.
Author: Andreas Krebs NGC A virus checker that checks the bootblock on all inserted floppy disks and reports nonstandard ones. The program also checks the jump tables of all resident libraries and devices and reports strange entries. This is version 1.0 anti includes source in assembly. Author: Uif Nordquist Pyth A program to draw the Tree of Pythagoras. Version 1.1, includes source.
Author: Andreas Krebs Steinschlag A Tetris like game submitted by the author. This is version 1.8, an update to version 1.5 from Fred Fish disk 221.
Binary only. Author: Peter Handel Fred Fish Disk 239 This disk contains Forth programs from the Jgoodies 1 disk, from Delta Research (the makers of Jforth Professional 2.0). Below is a listing of subdirectories under Jgoodies, and their contents.
Brunjes Various tools submitted together by the author. StringPkg is string package for both Forth style and NUL terminated strings, Date & Time are handy tools for getting and printing formatted dates and times. Utils are utilities used by the other files. CursorControl is an example of moving the text cursor. SpaceOrEscape is a handy word for pausing or stopping program output. Includes source code.
Author: Roy Brunjes Evolution This program draws bacteria as single pixels and then draws small bugs that eat the bacteria. The bugs mutate, compete for food, reproduce and pass their mutations to their offspring, An interesting program to watch. Standalone image and source code. Author: Russel Yost FFT Highly optimized Fast Fourier Transform tools for digital signal processing. The FFT can be used to compute the frequency spectrum of a complex signal.
It is useful in a variety of different applications. Floating point and integer versions. Mixture of high level and assembly language code. Includes source (requires Jforth). Author: Jerry Kaliaus Guru A program that explains the Guru number you receive when you crash your machine. CLI usage only. Standalone image with readme file. Includes source code. Author: Mike Haas THINKER lHIyp©rt@xit for AMIGA "..stunning capabilities..simple to operate.." "..superbly crafted.."' - Gary Gehman, Amiga Sentry, 6 89 Hypertext and Outline Processing combined Powerful Hypermedia application combines Word
processing and database ideas into an Idea Processor. Link applications, pictures, text.
The latest technology for organizing information. Use Thinker for writing, designing, documenting, or as a database.
New Features No Credit Cards CA res. Add tax Demo 30 guaraxrtee Disk $ 5 Add $ 5 for COD Poor Person Software 3721 Starr King Circle, Dept 5 Palo Alto, CA 94306 _(415)-493-7234_ Circle 127 on Reader Service card.
H2J Converts ‘C style ‘.h’ include files to Jforth style ‘.j’ files. Useful when developing interfaces to new Amiga libraries like ARP, etc. Standalone image and source code. Author: Phil Burk HAMmmm2 A hypnotic line box drawing program.
Draws moving lines in a HAM screen and uses sound tools from HMSL if available, for a drone sound that corresponds to the graphics image.
Stand-alone image and source code.
Author: Phil Burk HeadClean This program, combined with a fibre cleaning disk, can be used to clean the heads on your disk drives. Source code examples of accessing the Trackdisk device, and using gadgets are included.
Stand-alone image with source code.
Shareware. Version 2.0. Author: Phil Burk JustBeeps Simple example of using Audio and Timer devices. Plays a series of beeps whose pitches are based on a just intoned tuning system. Stand-alone image with source. Author: Phil Burk Mandelbrot A fast Mandelbrot rendering program that uses some of the mathematical properties of the Mandelbrot set to greatly reduce the drawing lime. Demonstrates graphics programming, assembly language, menus and IFF file I O. Stand-alone image with source code. Author: Nick Didkovsky NeuralNet Example of Neural Net programming convened to Jforth. Demonstrates a
programming technique that many say is the wave of the future for software. This is a simple demo that shows neural propagation. Stand-alone image with source code. Author: Robert E. La Quev, ported by Jack Woehr Textra A small easy-to-use text editor that allows multiple windows, and provides a simple mouse driven interface. Has “Macintosh" like Cut, Copy and Paste commands. Stand-alone image.
Documentation included. No source code. Author: Mike Haas Fred Fish Disk 240 CrossDOS A “tryware” version of a mountable MS- DOS file system for the Amiga. This is a software product that allows you to read and write MS-DOS PC-DOS and Atari ST formatted disks (Version 2.0 or higher) directly from AmigaDOS. This tryware version is a “read-only” version, which does not aliow any writes to the disk. A fully functional version is available from CONSULTRON. Version 3.02, binary only. Author: CONSULTRON, Leonard Poma Dis An AmigaDOS shareable library which implements a symbolic single-instruction
disassembler for the MC68000 family and a program which uses tlie library to disassemble dump AmigaDOS object files, making full use of symbolic and relocation information. Includes source code in Draco. Author: Chris Gray DM-Maps IFF maps to the Dungeon Master game.
All 14 levels are included. Author: Unknown MemLib A link library of routines to aid in debugging memory problems. Works with Lattice C 5.0 and possibly with earlier versions, it's features include trashing all allocated memory', trashing all freed memory, keeping track of freed memory with notification if it is written to, notification of memory freed twice or not at all, notification of overrunning or underrunning allocated memory, generation of low memory conditions for testing purposes, and identification of violations of memory' use by filename and line number of the allocating routine.
Includes source. Author: John Toebes and Doug Walker RunBack This is version 6, an update to the version on Fred Fish disk *152. This version compiles under Lattice with many optimizations enabled, and can be made resident. Includes source. Author: Rob Peck, Daniel Barrett, Greg Searie, Doug Keller XprLIb External file transfer protocol library.
Document and code example for implementing external file transfer protocols using Amiga shared libraries.
This is an update to the version included with the vlt program on Fred Fish disk
* 226. Author; Willy Langeveld Fred Fish Disk 24l ASDG-rrd
Extremely useful shareware recoverable ram disk.This AmigaDOS
device driver implements a completely DOS compatible disk
device in memory that survives resets, guru's, and crashes. An
absolute must for those with lots of ram.
This is an update to the version released on Fred Fish Disk *58. It now works with up to 8Mb of memory. It was rewritten in assembly and is now faster and smaller. Binary only. Author: Perry Kivolowitz, ASDG Inc. CBBS The WOKLI BBS system for use in amateur radio. Originally written for IBM-PC compatibles, it was ported to the Amiga by Pete Hardie. This is version
6. 1c with source code. Author: Hank Oredson, the CBBS group,
Pete Hardie Flx68010 A program which patches executables that
fail to run on machines equipped with an M68010, so that they
no longer use the prohibited priviledged instructions. Binary
only, Author: Gregor Brandt Man A program similar to the UNIX
"man” program. Displays information about a topic from manual
pages. Does not include any database of topics, you have to
supply your own. Version 1.2, includes source. Author: Garry
Glendown NoClick A program which silences the clicking of
empty drives on the B2000 under AmigaDOS 1.3. It should also
work on an A500. This is version 3.4, an update to the version
on Fred Fish disk *231.
Includes assembly source code. Author: Norman Iscove Tiles A tile game similar to Shanghai or GunShy. A game board is covered with a set of 144 tiles, 36 different sets of 4 identical tiles, each with a picture on it.
The object is to remove all the tiles, 2 at a time, by matching identical tiles.
Version 2.1, includes source in Modula
II. Author: Todd Lewis Fred Fish Disk 242 BootBlocks Detailed
documentation on what a bootblock is and how it works, along
with some sample bootblocks and a program to install a custom
Includes source for the sample bootblocks and the install program.
Author: Jonathan Potter Check4Mem Allows you to check for a specified amount of memory, with certain attributes, from a batch file. If the requirements are not met, a WARN returncode is generated. Version 2, includes source. Author: Jonathan Potter CustReq A glorified ASK command for your startup-sequence. It generates a requester with the specified title, text, positive and negative gadgets (either of which can be the default), and an optional timeout value. Version 2, includes source.
Author: Jonathan Potter FileReq This is Jonathan's second version of a file requester, and is much more powerful than the one included on Fred Fish disk
* 204. Shareware, includes source.
Author: Jonathan Potter FullView A text viewer that uses gadgets at the bottom of the screen (thus can display text 80 columns wide), opens up to the full height of the workbench screen, has fast scrolling, and can work with compressed files (file compression program included). Shareware, binary only, source available from author.
Author: Jonathan Potter Lmage-Ed An icon editor that allows you to draw and edit images up to 150 by 90, in up to l6 colors. Allows freehand drawing, empty or filled rectangles, ellipses, and triangles, lines curves, and polygons, copy, flip about x or y axis, stretching and condensing, flood fill and complement, text with selection and loading of font style, undo, magnified and normal sized images, and two active drawing screens at once. This is version
2. 2, an update to version 1.9 on Fred Fish disk *211. Binary
only, source available from author. Author: Jonathan Potter
JAR Jump And Run is game using 3-D graphics. Your task is to
collect the blue pills lying on the floors and steps, not to
fall down or off the steps, and to avoid several monsters
wandering about. You can collect various sorts of weapons to
use against the monsters. This is version
1. 0 and is shareware. Binary only, source available from author
along with a game editor. Author: Andreas Ehrentraut j PC Jock
A short clock program that is just packed with features. This
is version 1.2, an update to version on Fred Fish disk 204.
Includes source. Author: Jonathan Potter Pprefs A replacement program for Preferences.
Preferable Preferences is a program that is shorter, more efficient, and easier to use than the standard Preferences. Binary only. Author: Jonathan Potter A L F 2 Amiga Loads Faster Increased speed, safety, & efficiency on the Amiga.
¦ hard disk controller with software ¦ autobootable - 400 kB sec ¦ saler with CheckDrive ¦ faster with FastFileSystem ¦ 50% more MB with FiLL-controller ¦ uses any IBM-compatible HD- even defective hard disks ¦ SCSI-Bus, ST412 ST506-Bus Pre ' spect Technics Inc. RO. Box 670, Station H Montreal, Quebec H3G 2M6 Phone:(514)954-1463 Fax: (514)876-2869 BSC Buroautomatlon GmbH Postfach 400368 8000 Munchen 40 West Germany Phone: (89) 306-4152 Fax: (89) 307-17t4 Circle 165 on Reeder Service card.
PalettcReq A palette requestor that allows you to change the color of any screen from within your program. Includes source.
Author: Jonathan Potter Foplnfo A utility program which gives you information about the status of your devices and memory. The window can pop up or go away to save space. This is version 3.1, an update to version 3-0 on Fred Fish disk 223. Includes source.
Author: Jonathan Potter ZeroVirus A virus checker that saves and restores bootblocks. Will find both bootblock and file based viruses. This is version 1.3, binary only. Author: Jonathan Potter Fred Fish Disk 243 Fraglt A dynamic memory thrasher for the Amiga. Fraglt randomly allocates and deallocates psuedo-random size values of memory, ranging from l6 bytes to 50000 bytes by default. The result is an allocation nightmare, thousands of memory fragments are being created and destroyed continuously. This puts stress on the memory allocation routines of an application undergoing testing by
simulating a very busy, highly fragmented memory environment. This is version 2.0, featuring many bug fixes, a full intuition interface, configuration settings via the icon, and more. Includes source. Author: Justin V. McCormick ImageLab A program which performs image processing on IFF pictures. Includes standard image processing functions such as convolution, averaging, smoothing, enhancement, histograms, FFT’s, etc. Also includes file conversion Functions, a clipboard, and other useful functions. Version 2.2, binary only.
Author: Gary Milliorn LPE LaTeX Picture Editor is a graphical editor for producing “pictures” for the LaTeX system, which may be imported by LaTeX. You can draw boxes, dashed boxes, lines, vectors, circles, boxes with centered text, and plain text. This is version 1.0, binary only. Author: Joerg Geissler NoClick A program which silences the clicking of empty drives on the B2000 under AmigaDOS 1,3. It should also work on an A500. This is version 3-5, a last minute update to version 3-4 on Fred Fish disk
- 241. Includes assembly source code.
Author: Norman Iscove Password A program to help secure your computer with password protection that is complicated enough to keep out most casual or non-technical users. You can get a cutom setup from the author if you send him your startup-sequence. Version
1. 21p, binary only. Author: George Kerber Pcopy An icon driven
copy program that is faster than diskcopy. Has several
different modes including automatic which will start to format
a disk as soon as it is put into the drive. This is version
2. 0, a highly upgraded rewrite of the version on Fred Fish disk
151. Binary only. Author: Dirk Reisig SimGen This program
will add a 2 or 4 color picture to your WorkBench screen. If
the picture is digitized, it will look much like a genlock,
hence the name SimGen (Simulated Genlock). Binary only.
Author: Gregg Tavares SuperLines A new linos demo with a realtime control panel that you can use to change various aspects of the action. Has 10 built in color palettes, color smudge, color cycling, color bounce, multiple resolutions, and can display either lines or boxes. This is version 1.0, binary only.
Author: Chris Bailey WarpUtil This directory contains three programs for file compression: Warp (version 1.11), UnWarp (version 1.0), and WarpSplit (version 1.1). Warp reads raw filesystems and archives them into a compressed version in a normal file. UnWarp turns them back into filesystems. WarpSplit splits them up into smaller pieces on a track by U'ack basis. Binary only. Author; SDS Software Fred Fish Disk 244 BBChampion This is a very nice program that allows you to load, save, and analyze any bootblock. This is version 3-1, binary only. Author: Roger Fischlin Bootlntro This program
creates a small intro on the bootblock of any disk, which will appear after you insert the disk for booting. The headline can be up to 44 characters. The scrolling text portion can be up to 300 characters. This is version 1.2, an update to version 1.0 on Fred Fish disk 188.
Binary7 only. Author: Roger Fischlin FMC An program to turn fast memory on or off. Similar to the NoFastMem program.
Version 1.2, includes source in assembly code. Author: Roger Fischlin SizeChecker Size Checker uses a file created on any editor to check any file to make sure it is the conect size. It can be used to spot a link virus or to point out changes in the configuration of your system. If you use comments added to your size list, you can check to see what version of the files you are using (1.2, 1.3, 1.4, ARP, etc).
Version 1.0, binary only. Author: Roger Fischlin TextDispiay A text display program, like “more” or “less”, but about half the size and handles all screen formats (PAL NTSC, interlace non-interlace, etc). This is version 1.52, an update to version 1.1 on Fred Fish disk 188. Binary only. Author: Roger Fischlin Xcolor A program that lets you change the colors of any screen. You can also add and subtract bitplanes in the screen, or convert the screen to black and white (grayscale). Handles HAM and EHB screens. Version 1.2, includes source in assembly code. Author: Roger Fischlin Fred Fish Disk
245 ATOF A small utility that allows you to use the fonts of another disk without using the
CLI. Version 1.0, binary only. Author: Roger Fischlin Bootlntro
This program creates a small intro on the bootblock of any
disk, which will appear after you insert the disk for
booting. This is the “next generation" Bootlntro, a more
colorful version than the one on Fred Fish disk 244, but
the text must be shorter. The first line can be up to 24
characters. The second and third lines can be up to 22
characters. The scrolling text can be up to 98 characters.
Binary only. Author: Roger Fischlin Fcnster A program which
can operate on windows owned by another program, to close
them, change their size, refresh gadgets, move the window to
the background, etc. Version 1.0, includes source. Author:
Roger Fischlin PathM aster A file requester with lots of
Can be easily configured by the programmer to suit a variety of applications. Includes source. Author: Justin McCormick Keversi Plays the classical reversi game on an 8 x 8 square field. Version 1.2, includes source in assembly code. Author: Marc Fischlin icroMiga Phone: (619) 670-3161 BbcS: 1619) 670-1095 FAX: 1619) 670-9732 Mail: P.O. Box 2104 La Mesa, CA 92044 Hardwares Software; A-Max Mac Emulator Air Floppy Drive (Im Ext) California Access Drive Digi-View Gold Dual Serial Port Board Plash Caul GVP '030 VV 4MB & 68882 Hardfratne DMA SCSI Phoenix Exp. Chassis W Pwr Supra 2400 Modem Genlocks
$ 26 At MicroMiga, our customer and Datastomi Digi-Paint III Lords Rising Sun MusicX Pagestream Pen Pa!
RawCopy VI .3 Sculpt Anim. 4D Vortex Populous And a ton more!
$ 128 $ 128 .$ 149 $ 149 $ 135 $ 234 $ 187 $ 2,500 $ 250 $ 211 $ 135 Scall $ 67 their Amiga are Number One. We $ 33 carry a full line of Amiga Products $ 175 from Hard Drives to Genlocks and $ 129 Games to Business Software all $ 88 discounted well below retail! We $ 39 also support our customers with a $ 402 simple return policy and friendly $ 26 sales people who know the Amiga.
$ 35 Circle 182 on Reader Service card.
Call Or Write For A Free Catalog Of Over I 100 Amiga Products!
Vlt This is a binary' update to the vlt program on Fred Fish disk 226, and fixes a problem with external protocol support. You still need the rest of the files from Fred Fish disk -226. Version
4. 065, binary only. Author: Willy Langeveld Fred Fish Disk 246
Dmake Release version 1.0 of Matt’s version of the UNIX make
utility. Update to beta version released on Fred Fish disk
179- Features multiple dependancies, wildcard support, and
more. Binary only. Author: Matt Dillion LabelPrint A program
that allows you to easily print labels for your disks. This is
2. 5b, an update to version 2.5 from Fred Fish disk 238.
Shareware, binary only (source available from author). Author:
Andreas Krebs Ncomm A terminal program for the Amiga based on
comm version 1.34. Has hot keys for most program functions
(including dialing up to 10 phone numbers), PAL and NTSC
support for normal or interlaced screens, screen I O greater
than 2400 baud, ANSI VT100 terminal emulation with full 8
color text support, IBM graphics, optional translation styles,
split screen mode, full user control of color palette, full
support for all European languages, full serial port control
with baud rates up to 19,200, script language, phonebook,
keyboard macros, and more. Version 1.8, binary' only. Author:
DJ James, Daniel Bloch, et, ai.
NoClick A program which silences the clicking of empty drives on the B2000 under AmigaDOS 1.3. It should also work on an A500. This is version 3-6, an update to version to version 3.5 on Fred Fish disk 243. Includes assembly source code. Author: Norman Iscove ScrcenShare A library' and support programs that enable applications to open up windows on oilier applications’ custom screens.
For example, your editor may want to open a window on your terminal emulator’s screen so you can compose a message while still being able to see the contents of the terminal’s screen. Bodi applications must cooperate for the screen sharing to work. Version 1.2, includes source for interface portions.
Author: Willy Langeveld Ty A text display program based on Amiga "less” version 1.0. Has both keyboard and mouse control of all (unctions, an intuition interface, and uses the Amiga specific keys (such as the Help key) correctly. Version 1.3, includes source.
Author: Mark Nudelman, Bob Leivian, Tony Wills Fred Fish Disk 247 Analogjoystick Software support for use of analog joysticks on tire Amiga. Includes a driver, a header file for code that calls the driver, and an example program that uses the driver. Includes source. Author: Dave Kinzer AssemTools A collection of Files which should be of great interest to Amiga assembly language programmers. Tire collection includes 140 macro routines which make assembly language programming a lot easier. There is also a library of routines containing buffered C-like file handling functions (fopen, fclose,
fgets, fputs, etc) and a file name requester. All routines are re-entrant. Includes source for example programs using the macros and library, and a 65cQ2 cross macro assembler. Author: Jukka Marin RemoteLogm A couple of programs which make possible remote access to your Amiga.
One program checks the serial port for an incoming call, and starts a program when it is detected. The other is a password protection program which allows starting various programs based upon login id, thus providing some minimal security for your computer.
Includes source. Author: Dave Kinzer XprLib External file transfer protocol library.
Document and code example for implementing external file transfer protocols using Amiga shared libraries.
This is version 2.0, an update to the version on Fred Fish disk 2-10, with many extensions and enhancements.
Includes sample XPR library and source.
Author: Willy Langeveld Fred. Fish Disk 248 AniiGantt A project definition and management tool designed to create a simple, interactive method of outlining the task required to complete a particular project, using the GANTT chan as the input format. AmiGantt displays the project in a multi-window mode with separate windows for the GANTT chart, task information input, resource histogram display, and Pert chan display. Up to 500 tasks may be defined for any project, and a project may contain other projects as tasks. Version 3 0 0, shareware, binary only. Author: Donald Toison CLI-Colors A
simple little program to change the colors of the border around a CLI window. Includes source in assembly code. Author: Michael Sinz Flipper A small, fast, Othello program. Does not use any look-ahead methods. Binary only. Author: Michael Sinz Maze An example of a fully re-entrant maze generation program written in assembly language using Manx’s assembler.
Includes source. Author: Michael Sinz NctHandler The Software Distillery's network file system handler (NET:), using Matt Dillon’s DNET to mount one Amiga's devices on another Amiga. It also serves as an example file system written entirely in Lattice C. Version 1.0, includes source.
Author: Software Distillery" Regex An Amiga shared library version of the GNU regular expression package from the Free Software Foundation. A regular expression is a concise method of describing a pattern of characters in a string. By use of special wildcards, almost any pattern can be described. A regular expression pattern can be used for searching strings in such programs as editors or other string handling programs. Version 1.0, includes source.
Author: Edwin Iloogerbeets, FSF, Jim Mackraz Fred Fish Disk 249 Automata Four cellular automata programs.
AutomaTron is a one dimensional cellular automation, Crud is a automation based on a sum index rule. Demon is a cyclic space automation described in the Aug 89 Scientific American, and Life is one of the oldest and best known of all cellular automata. Includes source.
Author: Gary Teachout Sheer Slicer computes and displays images of the Mandelbrot and Julia sets. Unlike many Mandelbrot programs that generate pictures directly, Slicer computes and stores an array of raw data which it may then render into pictures in a number of ways. Version 1.0, binaiy only. Author: Gary Teachout TurMite A two dimensional turing machine simulator. Imagine a small bug crawling around on your computer display moving one pixel at a time. At each step it uses its internal state number and the color of the pixel it’s on as indexes into a set of tables to decide what color to
change the pixel to, what direction to move, and what its new internal state should be. Includes source. Author: Gary Teachout Fred Fish Disk 250 Asimplex An implementation of the Simplex algorithm for solving linear programs. It uses the standardized MPSX-format for input data files. This is version 1.5, an update to version 1.2 on disk 199.
Changes include bug fixes, the ability to run from CI.l, it's own window for I O, and some new and improved commands.
Includes source. Author: Stefan Forster Gravity-Well A celestial motion simulator that simulates the motion of up to twenty bodies in a Newtonian universe. The view of the simulation may be scaled, rotated in three dimensions or repositioned. Includes source. Author: Gary Teachout Paranoids An asylum escape game. Paranoids is a traditional board game played by drawing cards, rolling dice, and moving pieces around the board. Each player has six pieces, four patients and two doctors.
The object of the game is to get ail of your patients out of tire asylum. This is version 1.0, binary only. Author: Richard Anderson and Gary Teachout RPSC A reverse polish scientific calculator.
RPSC is a programmable RPN calculator in the Hewlett-Packard tradition. It supports operations with real numbers, complex numbers, matrices, and 3-D vectors, as well as storage and recall of labeled variables. Data and programs may be saved, loaded, or written as ASCII text, to AmigaDOS files. This is version 1.1, binary only. Author: Gary Teachout
• AO r t r fractals Generate Mandelbrot Fractals at Lightning
Speed by Hugo M.H. Lyppens Introduction This article presents
FastFractals, a fast fractal generating program. It takes a
fraction of the time usually considered "necessary" to pro
duce fractal images. It’s so powerful that even the most
impatient reader can explore and enjoy die beauty of fractals.
Some Tfjeory This program generates the well-known Mandelbrot class of fractals. The properties of these fractals are best described with die help of complex numbers. Complex numbers are a natural extension of the real numbers. Real numbers lie on a line and complex numbers correspond to points on a flat plane. Operations on a complex number can be viewed as an operation on a vector beginning at the origin (0,0) and ending at die point Ov,y) unique to that number.
The decisive step in complex arithmetic is the introduction of the so-called "imaginary” unit,
i. The Caitesian coordinates (x,y) mentioned above are used to
express the form of a complex number as follows: z- x + yi.,
where at is called die “real” part of z, and y is called die
“imaginary” part of z. With complex numbers, multiplication
can be done as usual, provided the rule i2 = -1 is used. The
addition of two complex numbers is done by adding the real
parts togetiier and adding the complex parts together. Here
are some examples: (2 + 30(3 - 40 = 6 + i- 121-= 6+ i- 12(-1)
= 18 + i (2 + 30 + (3-40=5-t (,a + bi)(c + di) - ac - bd + (ad
+ bc)i (a + bi) + (c + di) = a + c + (b + d)i r=(x+ yi)- = .r
- + 2xyi Mandelbrot discovered the result of die complex
function z E 2 + rrwhen applied iteratively. The variable cis
a given starting point and the value to which zis initially
set. When die transformation is applied to tiris initial z,
die result is the complex number (z), which is called zr
Anodier u-ansformation gives z,), written z,.
Continuing in this manner yields the array z, zv z,, z, which is called the “orbit” of z. When die orbit of an arbitrary number z is examined, it is generally found diat after a certain number (n) of iterations, the point representing ztravels beyond a distance of 2 from the origin.
(The distance from the origin to z can be calculated easily using die Pythagorean theorem: with z = x + yi. The distance is W+} )y2, or abs(z),) The number n is called die “index” of z. This means that z(«) lies outside the circle, while z(n -1) lies inside. However, there exists a special set of points whose indices are formally infinite. That is, their orbits lie completely inside die circle. This set is called die Mandelbrot set, and it has a very characteristic shape.
When the program encounters a point of the Mandelbrot set and tries to calculate its index, it will, in principle, never finish.
That’s why a finite number of iterations (n = iter) needs to be defined, limiting the number of times the program executes die transformation loop. The algorithm will stop after it is executed n times, even if the point has not traveled outside of die circle. This way, the result of the index calculation is guaranteed to be in the interval [0, iter].
To produce the fractal image, the program scans all points on die screen, from the top left to die bottom right. For each associated complex number, the index is calculated, and to get a colorful result, diis value is mapped to a color value and plotted on the screen.
The number of iterations greatly influences die amount of detail. If n = 1, a circle of radius 2 is produced. As n increases, the edge of the Mandelbrot set becomes sharper. However, there is a tradeoff: More iterations also means longer execution time, as the transformation is executed more often. A value for n which quickly produces nice results is 40.
Using FastFractals FastFractals opens a lo-res five-plane custom screen. It starts by displaying a palette of colors at the top of the base picture which shows the Mandelbrot set in dark blue. It has a small user interface, with two menus: The Task Menu contains the following options: Draw Fractal: Redraws the fractal.
Zoom: For this function to work, the user must create a box around the area to be zoomed in on. Click the mouse button at the top left corner and drag the mouse.
Release at the bottom right comer. If die box is not satisfactory, this operation can lie repeated. The previous position is stored in the zoom stack, so the user can later UnZoom.
UnZooni: Returns to the previous position stored at die top of the zoom stack.
Iterations: Brings up a requester allowing the user to set the desired number of iterations.
Color Mapping: Addresses the problem of mapping from index values to color numbers. Index values can range from 0 to iter, whereas color numbers range from 0 to 31. This funcdon brings up a requester that contains 32 integer gadgets, one for each color.
Mapping example ( Iterations = 100): 0 13 0 14 1 15 2 16 3 17 4 18 5 19 6 29 7 39 8 49 9 59 10 69 11 80 12 90 12 100 12 101 would mean: index 0 E use color 2 index 1 JE use color 3 indices 80-89 2E use color 29 indices 90-99 2E use color 30 index 100 E use color 31 So color n is used for a pixel if its index map( n -1) and map(n).
Color Palette: Invokes a requester to set the palette.
Quit: Quits the program.
The Screen Menu allows die user to select die desired screen size.
The Tiny option is handy for a quick overview of what a picture will look like. It takes effect the first time a fractal is drawn after its activation. Created images can be saved with one of the screen-grabbing utilities.
Inside Tlie Program The program consists of two parts: a C part and an assembly language part. The C part sets everything up. Manages the user interface, and cleans up to allow for a graceful exit. The actual fractal-drawing program is in assembly language, and gets its instructions from die C program.
The following is pseudocode for the fractal routine: loop Y; 'Along interval given by main program: Initially -1.0 to
1. 0* loop X; 'Same, initially -2.0 to 2,0’ count er=0; X2=X
;YZ='i; innerloop: XZK=Xp YZK=1,2 - if counter Iterations or
X2K+YZKS1! Then quit innerloop; YZ=(YZ) (XZ +
Y;XZ=XZX-Y2K -X; 'Because transformation is 2:=*i? And
2=xz-rYZi and c=x+Yi z:+c= (XZ+YZi 'X+Yi=XZ,-YZ;+X+
(2-XZ'YZ+Y) i' count er=count er--l; end innerloop; plot
(X,Y),color(counter); 'Look up color number corresponding to
index found.' end loop X; end loop Y?
How are fast fractal renderings obtained? Take a look at the algorithm. It seems that diere isn't a shortcut; all die transformations have to be repeated for eveiy point. There's nodiing to gain here.
A better way to improve speed is to avoid floating point caiculadons. Since the Amiga doesn’t have a numeric co-processor, floating-point operations are implemented via library routines, which are slow compared to the integer arithmetic of die 68000. The microprocessor has a built-in multiplier for integers. Why not use this? Although fractal calculations aren’t integer calculations, integer aridi- metic can be used.
This is done using a special number representation, the fixed- point representation. In the 16-bit representation, the upper 4 bits are die signed integer part, while the lower 12 bits are the fractional part.
So, the precision is 1 4096, since 1«12 = 4096. For example: The normal MULS.W instruction can be used on these numbers; SI.800 * -$ 2,400 = -$ 03.600000 Shift this to the right 12 bits; -$ 3-600, which in floating-point is -
3. 375. The code of this is in the assembly listing, labeled
“algolo” (for Algorithm Low Precision). Notice the
correspondence between the pseudocode and die machine code.
When the zoom function is used to get deeper into the fractal, this precision is not enough. When the program notices this, it switches to an extended, 32-bit representation. The integer part is still 4 bits, so the fractional part becomes 28 bits. The reason why this representation is not used all the time is that it is much slower than its 16-bit counterpart. MULS.W can handle only 16-hit numbers, so a wav must be found to break the 32-bit multiplication into manageable 16-bit pieces. For example let’s try to calculate 1.2 *
2. 25 (= 2.7): $ 1.3333333 * $ 2.4000000 = S1.333 * $ 2,400 +
$ 0.0003333 * 52.400 + $ 1,333 * $ 0.0000000 = $ 2.b32cOOO +
$ 0.007332c + $ 0.0000000 = $ 2.b39f32c. Since $ b39f32c $ 1000000Q
= 0.7, the answer is right. This large multiplication was
broken down into 3 smaller (l6-bit) multiplications by
multiplying the upper words of both numbers, then the lower
word of one number and the upper of the other, and then vice
versa. To be exact, one would want to multiply the two lower
words (in this case, $ 3333 and $ 0000) too, but it isn’t worth
the trouble, as this would add next to nothing to the
precision, 'ihe code of this is in die assembly listing under
“algohi" (Algorithm High Precision).
The Assembly Listing The C program allocates the display planes as a contiguous block of memory, hi this way, the assembly program doesn't have to work with five plane pointers or look them up in the Bit,Map structure. All it takes now is one pointer register and a different offset for each plane.
The information from the Color Mapping Requester is translated into an array of color numbers. An index value can then be mapped to a color value just by looking it up in the array. As the maximum number of iterations is 256, the array has room for 257 elements. The color is brought to the screen by shifting it to the right 5 times. The first bit that comes out is shifted into PlaneO, the second in Planel, and so on, for all 5 planes.
The list of variables is at die bottom of the listing. The first is v, the address of which is put into A6 at the start of the program.
All variables are accessed relative to A6 by using the Address Register Relative addressing mode in this way: Variable-t(A6). It has the same effect as using Variable in an absolute sense, but it’s shorter by 2 bytes (and faster).
A few of the variable names are preceded by an underscore.
These are exported, so that the C module can access them. By using these variables, parameters don’t have to be passed via the stack anymore.
The C Listing The C listing is more straightforward. However, it is quite instructive. It shows how to do IDCMP, how to use Menus, Requesters, Integer Gadgets, and Proportional Gadgets, and how the interface to Machine Language works.
The first MS-DOS File System for the Amiga® In addition to reading and writing any file son an MS-DOS disk, perform the following DOS functions on files and directories
* Scan any directory
* Create directories
* Rename
* Delete
* Set dates
* Set protection hits
* Seek file postlions
* Gel disk information
* Add cache buffers
• Kcud- „tv.riWN.in 1WK or720K MS-DOS or ATARI ST rlidi Iversion
2dor hipheri *uh optional ten file filler*
• Transparently jrtcw MS-DOS files from an utility or
application (including tile requesters).
• Fully integrates itself into the Amiga operating system
• Automatically readjusts to different MS-DOS ATARI ST formats
• Can tv removed after use to reclaim memory.
• Provides an easy installation program,
• Available in a READ-ONLY version from ihe Public Domain or
directly from CONSULFflCWfor only SS.Ofl. For orders placed
through CONSULTffOWadd S3 00 shipping and handling ($ X (XI
outside the I S. and Canada) Michigan residents musi add the
contcl njIc' tav COD add S3 00 C0NSULT 70N Technical Support
(313) 459 - 7271 11280 Parkview Plymouth, Ml 48170 Circle 156 on
Reader Service card.
I also used some tricks for the Lattice Compiler to reduce the code size. The first is not to link with any startup code. As a result, the program has to set up SysBase and DOSBase itself. Another trick is to use base-relative addressing and function calls (the -b and -r option). The -v option, which disables stack-checking, also saves hundreds of bytes. When using the proto includes, the compiler generates in-line function calls and avoids the stub functions, which arc otherwise pulled in at linking. It is also important to use the SmallCode, SmallData and NoDebug flags on Blink.
This way, it is possible that the code size of a program like this will list at an amazing 10 Kbyte. Even the Calculator i.s bigger!
Compiling, Assembling And Linking Once you’ve typed in both sources, proceed as follows:
1. C1 -h -cwf fractal
I. C2 -r -v -y fractal Assem fractal.asm -o fractal.obj Blink
fractal.o,fractal.obj TO fractal ND SC SD LIB iib amiga.lib,
lib lc.lib The Compiler used is Lattice C Version 4.0. Aztec C
users probably should erase the proto =indude’s and use norma!
Startup code. The assembler used is the AmigaDOS Macro
Conclusion I hope you’ll become a fractal freak like me! Once you get the hang of it, you might even decide to substitute the Mandelbrot fractal formula with your own. The program offers an excellent basis for experimenting with other formulas. There are so many of them. Good luck1 Wc take a * oat of the price ONE BYTE
P. O. Box 455 Qaakor Hlli. CT 06375
(800) 441-BYTE, in CT (203) 443-4623 Authorized dealer for
Commodore-Amiga Computers, Great Valley Products (GVP),
Memory 8 Storage Technology (M.fl.S.T.). Authorized
Commodore-Amiga Service and Repair.
Authorized Amiga Graphics Dealer.
Addi.w PLSIZE*2,dl add.w dlrdO adaa.w aO,aO movem.l sx-v(s5),d0-d3 ;get sx sy sw sh sub,1 d3r dl move.l dl,yc-v(a6) sub.l d2,d0 move.l dG, :c2-v (a6) raovem.w fw-v(ao), d4 d5 ;fw fh move.l d2,dQ move.l d4,dl jsr _CXD33(PC)
* _CXD33 is a le.iib routine to do a long division: dO:=dl aO
dQ,xcd-v(a6) move.l cmpi.1 sit ,b
* S20000,d0 algo-v(a6) ;is it necessary to shift to High
Move.1 move.1 jsr move,1 cmpi.1 sit .b or .b add. W move.w asr. W move.w move.w move. 1 move.w d3,d0 d5, dl _CXD33(PC) dO,ycd-v (a6) ?520000,dO dl to shift to High ;is it necessary .•Precision?
Dlfalgo-v (a6) d5, d5 d5, vcour.t-v (a6} 4-1,d4 d4,hcount2-v(a6) hcount2-v(a 6),hcount-v(a6) xc2-v(a 6),xc-v(a6)
* 16,hcountl6-v(a6) vlus hius h21us ;to count the bits of a
;screen word ;C0UNTER=C ;aet Iterations c iter-v(a6), do
xc-v(aS), XZ yc-v a6),YZ algo-v(a 6 algolo move.w move.1
move.1 tst .b bea. 1 ;choose low or high .-algorithm AMIGA LS A
Reader Service card.
Wmmmffi" .. tpppllw® ’ . , , .
SCREENW equ 320 SCRESNWB equ SCREENW 8 SCREENH equ 2 30 FWIDTH equ 256 rWIDTHS equ FWIDTH 8 FHEIGHT equ 128 PLSIZE equ SCREENH3*SCREENH ITER equ 100 PRHI equ 28 PR equ 12 "WGRENS equ 2 6 (PR-4)) "GRENS equ (41« (PR-4) I WGRENSHI equ 32« (PRHI-4) ) GRENSHI equ (64c (PRHI-4)) WGRENS equ (32« (PR-4) ) GRENS equ (64« (PR-4) ) XZ equr i2 YZ equr d3 XZK equr 14 YZK equr d5 section text,code xdef Fractal xref CXD33 _Fractal movem ,1 Ii-17 a0-a6, - la”) lea v, a6 move.'
SCREENW 2,dO sub.w fw-v (a6), dO isr w 42, 10 move.'
W dO,xodulo-v(a6)
* value ' lo be added to pointer after each line ;high precision
position bits cmpi,1 WGRENSHIiXZ bee. 1 klaar cmpi.1
-WGRENSHI,XZ ble.l klaar cmpi.1 WGRENSHI, YZ bae, 1 klaar
cmpi * 1
* -WGRENSHI,YZ ble, 1 . las r cmp. W do, d7 bge.I klaar tst. 1 XZ
;make XZ positive smi .b faS) :remember sign bpl. S pxz neg. I
XZ tst. I Yz bpl. S pvz not «b (ao) neg, 1 YZ ;make YZ positive
The foil owing calculates XZK, which is XZ2 See text for
further expl anation move. 1 XZ,XZK swap XZK ;get upper word
move.w XZK,dO move.w dO, a2 mulu.w XZ, XZK ;multipiy with lower
word swap XZK .-shift it to the right rol.l 5, XZK ;and double
andi.1 $ 001fffff,XZK ;mask off unneccessary muls.w dO, dO
.¦multiply upper word of f asl.l 4,dQ :shift it to right add.
1 dO,XZK The following calculates YZK, which is YZ2 works *
algohi Ihi py z the same as above.
Move.i swap move,w move.w mulu.w swap rol. 1 andi.1 _fi-v(a6),aO
* SCREENH 2, dO fh-v (a6) , dO SCREENWB,dO movea.- move.w sub.w
mulu.w roove.w modulo-v(a6),dl lsr.w l,dl YE,YZK YZK YZK,dO
dO, a3 YZ,YZK YZK 5,YZK S001fffff,YZK ;than 2?
;yes- finish The following calculates 2*XZ*YZ and puts it in YZ ;a2 is still upper word of xz ,-multiply it by lower word of YZ move.w a2,d0 mulu.w YZ,dO swap dO rol.l 5,d0 "these two instructions work like ror.l ill,dQ would do.
Andi.l tSCOlff move,w a3,dl mulu.w XZ, dl swap dl rol.l 5, dl andi.1 tscoiff add, 1 dl, dO swap YZ swap XZ muls.w XZ, YZ asl. 1 5, YZ add. 1 dO, YZ tst ,b (a6) beq. S 3$ neg. 1 YZ ;do it vice versa ;add the two ;get upper word of XZ and YZ ;multiply them ,*now YZ contains result 2*XZ*YZ ;what was the sign again?
?we only have to negate this one, ;as XZ2 and YZ2 are always ;positive.
Yc-v(a6),YZ ;add Im c 3S add. 1 The new value of XZ is XZK-YZK+Re c move,! XZK,XZ sub,I YZK,XZ add.l xc-v(a6),XZ ;Re c adaq.w *i,d7 ;increase Counter bra.l lhi
* Low precision algorithm algolo: swap XZ swap YZ
* The next is a preliminary check, necessary to
* avoid overflowing of XZ or YZ 1 cmpi.w WGRENS,XZ bge.s klaar
cmpi.w -WGRENS,XZ ble.s klaar XZ,XZK XZ,XZK XZK 16-PR,XZK
WGRENS,YZ klaar -WGRENS, YZ klaar move.w muls.w swap rol.l
cmp. W bge. S move,w add.w cmp i.w bge.s YZ becomes XZ*YZ*2+Im
c muls.w XZ,YZ swap YZ rol.l 16-PR+l,YZ add.w yc-v(a6),YZ XZ
becomes XZ2-YZ2+Re c move.w XZK,XZ move.w muls,w swap rol. 1
"preliminary check CMP I. W BGE.S CMP I. W BLE.S mu1s.w dO, dC
asl.l p 4, dO add.l dO,YZK move.1 XZK, dO add. I YZK,dO
XZK+YZK; =XZ2+YZ2= cmpi.1 IGRENSi bge. 1 klaar YZ,YZK YZ,YZK
YZK f16-PR,YZK d6, d7 klaar XZK,dO YZK,dO GRENS,dO klaar ; YZ2
;have we reached the ;maximum rnumber of iterations ;already?
;yes-finish ;is the distance to the ;origin =2?
;yes-finish ;t'nis is XZ2 Volume 4 Number 10 Programming A Education Programming IlLSofi Compiler by Cole Calistra A BASIC compiler that has good features, is quick, and well worth the price!
Jforth Professional by Jack W'oehr It fills the requirements of die professional Forth programmer Better TrackMouse by Kobe ft Katz A true one-handed trackball mouse!
SlmClty Review by Miguel Mulct Mow would you handle Boston, Massachusetts right before a major nuclear meltdown?!
SlmClty Conference edited by Richard Rac.
A conference with Will Wright and Brian Conrad of SimCity fame.
A1000 Rcjuvcnaior edited by Richard Rac A conference with Gregory Tibbs.
APL A the Amiga A Friendly Pair by Henry Up pen A look at the hidden language of APL Saving 16-color pictures In high-resolution by Paul Castonguay Part Three of the Fractals series.
Volume 4 Number 10 (continued) Multi-Forth by Lonnie Watson I low to implement an interface to the ARP liabrary.
More requesters in AmlgaBASIC by John Wiederhim Pushing beyond the limits of BASIC with system routines, Glatt's Gadgets by Jeff Glatt Adding gadgets in Assembly.
Tshcli Part II by Rich Faleonburg A new Amiga program lhat will enhance the command line environment.
Function Evaluator in C by Randy Finch A routine that accepts mathematical functions as string input and then evaluates the function.
Education Special Big Machine On Campus by Joel Hagen.
Humboldt State University in Northern California goes Amiga.
Commodore's Educator!
CRM uses video to reach the dassroom.
Typing Tutor by Mike’Chip’ Morrison Save the c.ty of Keycaps from capital letters Reading, ‘riting & resolution by Joe DiCara.
Three pair.t programs primarily designed for pre-school and elementary grades.
The Amiga In Higher Education by Tony Preston.
Rutgers University,in New Jersey, recognizes the special value of the Amiga.
New Products and Other Neat Stuff by Elizabeth G. Fcdorzyn Populous, OMNI-PLAY Basketball, and more!
Snapshot by R Brad Andrews Help Rambo save Colonel Trautmcnt in Rambo III, or drive a Ferrari in the Grand Prix PD Serendipity by Mike Morrison Mike Fred Fish disks '229 to '236 No Fishing! By Graham Kinsey Graham reviews PD programs from the local BBS.
Bug Bytes by John Steiner John keeps us up-to-date with the latest software bugs' Roomers by the Bandito.
The Bandito lists his annoyances,while Commodore gets ready for Christmas Video Schxnideo by Barry Solomon AC* Video Editor gives us helpful hints and tips in video C Notes from the C Group by Stephen Kemp. A look at a search utility program.
You just have to check out.. EXTEND ric. 1
dc. 1 dc*l dc, 1
dc. W
dc. W dc .w
dc. 1
dc. 1
dc. l
dc. l 0 0 0 0 ;planepointer FWIDTH 2 FHEIGHT 2 ITER 0 0 2 PRHI
1«?RHI $ 000,5D33,$ 222,$ 333,$ 444,$ 555,$ 56
S888,$ 999,$ AAA,$ 3BB,$ CCC,$ DDD,$ EE:
$ 098,$ 0A9,$ 0BA,$ 0CB,$ 0DC,$ 0ED,$ 0FE
$ 870,$ 880,$ A90,$ BA0,$ CB0,$ DC0,$ ED0 vc xcd ycd fi fw fh Iter
It is the ultimate programming utility for BASIC !!!
EXTEND extends you 68 NEW and exciting commands!
Offers you complete control of all those hard-to-program functions the Amiga offers like: r IFF picture support (both LOADING & SAVING!)
T' IFF sound loading playing!
F Complete gadget support, char, input, point & click, etc.!
R Total sub-menu support (polling, mutual exclusion, etc.!)
F Complete system requester support!
R Picture bitmap scrolling commands!
R Plus much, much more... too many commands to list!!
_colormap dc.w dc .w dc .w
dc. w 6,Sill , $ 0rF $ 123 _array dc.b 2, 3, *1,5, 6,7, 8,9,10,11,
12,13,16,17,18, 19,2 0,21,22
dc. b 23,23,23,23,23,23,23,23,23,23
dc. b 24,24,24,24,24,24,24,24,24,24
dc. b 25,25,25,25,25,25,25,25,25,25
dc. b 26,26,26,26,26,26,26,25,26,26
dc. b 27,27,27,27,27,27,27,27,27,27
dc. b 28,28,28,28,28,28,28,28,28,28,28
dc. b 29,29,29,29,29,29,29,29,29,29
dc. b 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31 ds.fc 156 ;for a
total of 257 bytes, end C List!
EXTEND is a standard Amiga library'just like EXEC, DOS. GRAPHICS, etc. In fact, with just one easy LIBRARY statement in your program, you get access to all libraries, not just EXTENDI Also, EXTEND is II© compatible with all BASIC compilers so you can create professional, marketable, programs!
"fractals.c Created by Hugo * include "exec types.h" £ include "exec memory. H" include "intuition intuitionbase. H" include "intuition intuition.h" include "proto exec.h" ?include "prcto graphics.h" include "prcto intuition.h" include "proto dos,h" L9E9 ypoens in Sunsmile oftware 533 Fargo Avenue Buffalo, NY 14213
(716) 885-5670 Only... $ 39.95!
COD void void
* ,USHORT *); void DrawPalette struct RastPort *, short); void
Rect struct RastPort
* ,short,short,short,short, short); void .'-sapping (struct
Window *) ,- void Iterations(struct Window *); void stcu_d(char
*,long,short); *lc.lib function to convert an unsigned integer
to a decimal string* void movme.m(char *,char *,short);
*lc.Iib function to copy a memory block* Fractal(void);
Palette struct Screen Circle 185 on Reader Service card.
Sub.w YZK.XZ add.w xc-v (aC) , XZ aadq.
W 11,d7 ;incement Counter bra. S 1 klaar move.b _array-v(a6,d7.w),dO ;d7 contains index look up color Isr.b tl,d0 ,shift out a bit roxl.w PLSIZE«-2(a0) ;shift it in plane 0 lsr.b l,d0 roxl.» FLSIZE*-!taO) lsr.b f 1, aO roxl.w (aOI lsr.b l,d0 roxl. W PLSIZE‘1 (aO) lsr.b 1, dO ;shift out 5th bit roxl.w PLSIZZ*2(a0| ;for plane 4 move.l xcd-v (a6), dO ,-increase X coordinate add. 1 dO,xc-v(a5) subq.w fljhcountlc-vlafil bne. 1 h21us addq,1
* 2,a0 ,-increase display memory pointer subq.w pi,hcount-v(a6)
bne. 1 hlus adda.w modulo-v(a G1,aO ,-end of iine-add rnodul
move.1 ycd-v(a6),dO add.!
DO,yc-v(a6} subq.w «1,vcount-v(aSI bne. 1 vlus ,-last line?
Mo vein. 1 (a7)+,dl-d7 a0-a6 ,-yes-quit moveq.1
* 0, dO rts sect ior.
_MERGED, data xdef fi, colormap, array V
dc. B fi ;sign algo
dc. b 0 ;which algorithm vcount
dc. w 0 ;vertical uosition hcount
dc. w 0 hcount2
dc. w 0 hcountlfi
dc. w 0 modulo
dc. w 0 ,value to add after each line xc
dc. 1 0 xc2
dc. l 0 ?define abs(x) ¦define min(x,y) ¦define max(x,y) define
WIDTH ?define HEIGHT ?define DEPTH ?define NUMCOLORS ¦define
PLSI2E ?define MINW ?define MINH define zoomlevels (((x)
®0) ? (x) : - (x)) ((x) (y) ? £x) : (y)) ((x) (y) ? (x)
: (y)) 320 200 5 1 DEPTHJ (’WIDTH*HEIGHT 8) 16 16 20 struct
IntuitionBase *IntuitionBase; struct GfxSase *GfxBase, struct
DosLibrary "DOSBase?
Long SysBase; extern unsigned short colormap[NUMCOLORS]; extern UBYTE array[257]; "Mapping of pixel index to pixel color.* static struct IntuiText ir.ip24 = 0, 31, JAMl, 14 , 1, 0, "Full", 0 }; static struct IntuiText rr.ip23= 0, 31, JAMl, 14,1, 0, "Medium", 0 }; static struct IntuiText ir.ip2 2= 0,31, JAMl, 14,1,0, "Small", 0 static struct IntuiText mip21= 0, 31, JAMl,14,1,0,"7iny",0 }; static struct Menultem pnii2[4) = I NULL,0,27,145,9,ITEMTEXT!ITEMENABLED!HIGHCOKP!CHECKIT, 0xFFF7,(APTR)&mip24,0,0,0,0 }, &pmi2[0J, 0,18,145, 9, ITEMTEXT IITEMENABLEDI HIGHCCJ-P I CHECKIT I
CHECKED, OxFFFB, (APTR) Smip23,0,0, 0, 0 Instead of passing parameters via the stack.
I, parameters are passed directly via common memory, which is ; more efficient and easier to program.
Spmi2[1],0,9,145,9,ITEMTEXTIITEMENABLED|HIGHCOMP * CKECKIT,OxFFFD,(AFTR)Smip22,0,0,0,0 extern struct Fractallnfo [ 1, ubyte "Planes; ‘Pointer to display memory* 1 short FracWidth,FracHeight; ’Pixelwidth height £pmi2 [21,0,0,145,9, ITEMTEXT ] ITEMENABLED ] HIGHCOMP 1 of picture’ CKECKIT,OxFFFE,(APTR)4mip21,0,0,0,0 USHORT Iter; ’Number of Iterations* 1 J ; struct Pinfo F; f -i » 'Pixelwidzns and heights associated with screen sizes’ struct Menu m2=!
Short fwidch[4]=( NULL, 115, 0,100,0,MENUENABLED, "Screen Size", 4pmi2 [3] }.
WIDTH 2, 256 2,160 2, 96 2 I .
Static struct IntuiText mipl6=( I short fheight[4|= 0, 31, JAM1,8,1,0,"Quit",0 ; static struct Menultem pmil6=( HEIGHT 2, 128 2, 100 2, 48 2 1 » 1 t int main() NULL,0,54,145,9,ITEMTEXT11TEMENA3LEDIHIGHCOMP, 0, (APTR)Smipl6,0,0,0,0 struct Screen ’s; }; struct Window *w; static struct IntuiText mipl5=( struct IntuiMessage ’message; 0, 31, JAM1,8,1,0,"Color Palette",0 short code,x,y; ); ULONG class; static struct Menultem pmii5=t struct RastPort "rpO; Spmil6, 0, 4 5,14 5,9,ITEMTEXT1ITEMENABLED!HIGHCOMP, UBYTE mm=0; 0, (APTR) kmiplS, 0, 0, 0, 0 short left=-l, top=-l,height=0,width=3; ); short
zl=0,sz=0; static struct IntuiText mipl45°t register short i,j; 0,31,JAM1,8,1,0,"Color Mapping",0 register long 1; ),* struct Fl.nfo zoomstack[ZOOMLEVELS] ; static struct Menultem pmi145= ’This array holds successive zooming operations SpmilS, 0, 36, 14 5, 9,ITEMTEXT1ITEMENABLEDIHIGHCOMP, It enables the user to UnZoom after doing Zoom, to go 0, (APTR) iitipl45, 0, 0, 0, 0 static struct IntuiText mipl4=!
* SysBase=*(long *)4L; 0, 31,JAM1,8,1,0," Iterations",0 'Dirty
initialisation to avoid startup-code’ (; D0SBase= (struct
DosLibrary *)OpenLibrary("dcs.library”,0); static struct
Menultem pmil4=( GfxBase=(struct GfxBase
IntuitionBase=(struct IntuitionBase 0, (APTR) «miol4, 0, 0, J,
0 }; static struct IntuiText mipl3=
* )OpenLibrary("intuition.library", 01 ; if (! (fi .Plane
31,JAM1,8,1,0,"UnZoom",0 goto weg; ); ’Allocate contiguous
block for display memory’ static struct Menultem pmil3=(
for(1=0:i DEPTH;i++)[
bo.Planes[ij=fi.Planes+i’PLSIZE; 0, (APTR)Smipl3, 0, 0,0,0 ) !;
’Set the plane pointers’ static struct IntuiText mip!2“( if
(! (s=CpenScreen (Sr.s)) ) 0,31,JAM1,3,1,0,"Zoom",0 goto weg;
); LoadRG34(£s- Viev?ort,Scolormap[0!,NUMCOLORSI; static struct
Menultem pmil2=( nw.Screen=s;
if(!(w=OpenWindow(Snw))) 0,(APTR)4mipl2,0,0,0,0 goto quit2; };
SetMer.uStrip (w, 6nl) ; static struct IntuiText mipll=(
rp0=w- RPort; 0,31,JAM1,8,1,0,"Draw Fractal",0 - dofrac; n
* .'
Static struct Menultem pmiil=(
j. U t whileC(pmi2[ij.FlacsiCHECKED)1
0,(APTR)6raipll,0,0,0,0 ’Find out which screen size was
selected and put in i; )-¦ 0=Tir.y, l=Smai1, struct Menu ml=(
2=Medium, 4m2,15,0,100,0,MENUENABLED,"Task",ipmill }; 3=Full.
* if(i sz)[ struct NewWindow nw= SetRast(rpO,0);
REFRESH 1 ACTIVATE, SetDrMa(rpO,JAM1);SetAPen(rpO,j); 0,0, 0,
0, 0, RectFill (rpO, 16+ (j 3) ,16,16+7+ (j«3), 16+7) ;
0,0,0,0,CUSTOMSCREEN ) ! ; ’Draw color bar’ struct 3itM«p
bm= ) WIDTH 8, HEIGHT,0,DEPTH,0 sz=i; 1; fi.FracWidth=fwidth[i
];fi.FracHeight=fheight;i;; struct NewScreen ns=( FractalO;
’Fractal () is the incredible Machine Language 0,"Fast
Fractals by Hugo Lyppens 1389",0,4bm Fractal drawer see
Assembly Listing’ 1; goto lus; lus2: "This structure holds
information on the position and WaitPort w- User?ort); size of
the fractal segment being watched by the user.* lus: struct
Pinfc ( if I!(message=(struct IntuiMessage ’)GetMsg(w-
UserPort))) long SX,SY,SW,SH; goto ius2; ;
x=message-?MouseX;y=message- MouseY,- code=message“ Code;
class=message- Class; •This is a shared structure of the C and
Assembly program.
ReplyMsg((struct Message ’Imessage); switch(class)( case M0USEBU1T0KS: switch(code)[ case SELECTDOWN: *3tart a rubber hoy.* SetDrMd(rpO,COMPLEMENT); if (left =0) ( Beet(rpO,left,top,width,height, 1) .- 'erase existing box* left=x;top=y;width=MINW;mm=l *Rubber box mode on* ; ReportMouse(w,1); goto redr; case SSLECTUP: 'End a rubber box' i f (mm) ( mm=D,-ReportMouse(w,0); !
Break; ) break; case MOUSEMOVE: i f (mm) ( WaitTOF(); 'Avoid Flickering* Rect(rpO,left,top,width,height,1); width=max(x-left+l,MINW); redr: height=width*fheight[sz) fwidthtsz]; Rect(rpO,left,top,width,height,1); * Draw the rubber box* } break; case MENUPICK: if(!mm&S(1(MENUNUM(code))))( 'Make sure that there's no r'obber boxing going on now.* switch(ITEMNUM(code)) case 0: *Draw Fractal' goto krot; case 3; 'Set Alterations* Iterations(w);break; case 'I: ‘Color Mapping* Mapping(w);break; case 2: 'UnZoom* if(zl)( fi,P=zoomstack[-zl);left=-l;goto dofrac; ) break; case i: *Zoora*
if(zl ZOOMLEVELSS&left =0) [ zoomstack[zl'+l fi.P; 1= ((fi.P.SW 3) * (left* (width»l)-16Q) ) fi.FracWidth; fi. ?. SX+=1«8; i=( (fi.P.SH 8) * (top+ (height»l)-100) ) fi,Fr cHeight; fi.E.SY+=l«8,- 1= ( (fi.P.SW»8) "width) fi.FracWidth; fi.P.SW=l«7; 1= ( (fi.P.SH»8) "height) fi .FracHeight; fi.P. SH=i 7 krot: left=-l;goto dofrac; ] break; case 5: Palette(s,w,4colormap[0)1;break; case 6: goto quit; ) ) break; goto lus; quit: ClearMenuStrip(w); CloseWindow(w),- quit2: s- FIags=CUSTOMSCREEN; 'Funr.y thing: Disabling the CUSTOMBITMAP flag seems to be the only way to get Intuition to close
this screen properly* CloseScreer. (s ; weg: CloseLibrary((struct Library*)DOSBase); CloseLibrary((struct Library*)GfxBase); CloseLibrary((struct Library*}IntuitionEase); return(0); } static struct IntuiText treqf=( 0,0,JAM1,(275-20*81 2,2,0,"Define Color Palette",NULL 1; static struct IntuiText treq6=( 0,0,JAM1,(152-13*8) 2,2,0,"Color Mapping",MULL ; static struct Proplnfo pprop[3]=i !
FRESHORIZ,0, 0, 0x1000, 0x8000 1, !
FREEHORIZ,0,0,0x1000,0x8000 ), ( FREEHORIZ, 0, 0, 0x1000, 0x8000 ) static short abortxy[]=[0, 0,13,0, -13,10,0,10,0,0;; stat ic short okxy[]=(0,Q,19,0,19,10,0,10,0,0); struct Border borderabort=[ 0,0,0,0,JAM1,5,1abortxy[0},NULL ) ; struct Border borderok=( 0,0, 0,0,JAM1,5,Sokxy(G],NULL ); struct IntuiText tabort=( 0,0,JAM1,2,2,0,"Abort",NULL l; struct IntuiText tok=( 0,0,JAM1,2,2,0,"OK",NULL 1; struct Gadget gabortsp=( NULL,200,84,44,11, GADGHCOM?,ENDGADGETIRELVSRIFY, FEQGADGET|BOOLGADGET, (APT?.) Ibcrderabort,NULL, Staborz, 0, 0,1, 0 ) ; struct Gadget goksp*=( Agabortsp,248,84,20,11,
GADC-HCOMF, ENDGADGET ] RELVEKIFY,REQGADGET I BOOLGADGET, (APTR) Sborderok.NULL,Stok,0,0,2,0 ) ; struct Gadget gpal=; agoksp,8,15,32*8,16, GADGHNONE,GADGIMMEDIATE,REQGADGET!BOOLGADGET,NULL,NULL, NULL,0,0,6,0 ! ; SHORT knobdatal[j= OxIEOO, 'OOOllliOOOOO* 0x7F80, *011111111000* QxElCO, *111000011100*
• 0x7780, '011111111000* OxlEOO 'QQ011110000Q* ) ; static
struct Image knobl=( 0,0,10,5,1, aknobdatal[0],4, 0, 0 } ;
static struct Image knob2= 0,0,10,5,1, 4knobdatal[0),4,0,0 t;
static struct Image knob3=( 0, 0,10,5,1, Sknobaatal[0],4,0,0 I;
static struct Gadget gorcu[)=( t Sgpal,40,70,216,10, *Biauw*
PROPGADGET, (APTRI iknobl, NULL,NULL,0, (APTR)ippropI 0],3,0 ),
( igprop[0;,40,56,215,10, *Groen* GADGHNONE I GADGIMAGE,
NULL,NULL,0,(APTR)ioprop[1!,4,0 ), (
igprop[11,40,42,216,10, ‘Rood*
PSOPGACGET, (APTR)Sknob3, NULL,NULL,0,(APTR)4pprop[2;,5,0 ) ) ;
static short reqspxy[]= 0, 11,0,0,275, 0,275,96, 0, 96, 0,11,
275,11); static struct Border reqspborder=| 0,0,0, 0, JAM1,
7,ireqst xy[0] , NULL ) ; static struct Requester enreq= NULL,
(WIDTH-276) 2,(HEIGHT-97) 2,276,97, 0,0, 4gprop(2[,
fireqspborder, *Req3order* LET ACDA open ijour real-world
StreaS, 0, 31 *ReoText* IASE.&I 12-bit uc Ciumelb AOOti max Thnx*V puY 7 Programmable Cain (PC) option*.
2 12 bit aultiplying OAC outputs J 16-bit prograaaable timers 12 HI compatible Digital 10 bus AmigaGPIB (IEEE-4SB) AatgaCPIB ,» * Gnrill Purp«e Interlace Bus IEEE CM) card for the
* ?000 that features all of ihe latter Listener f Controller
firctiorm of Ihe IEEE-4A& standard.
One Amiga con connect and control up to 14 other CP IB i nsl runents or Amgjs. C source driver and demos applications included. *495 I Proto-Sk ii a tingle charnel 5.8 Kht A 0 data acqgint ion i system with «1, and i100 input gain ranges.
Real-time LEO (ignat level histogram, and test-caLiteration switch. This paratlel-port device fits all Amiga* and has Us own daisyehain parallel-port. Comes with C source driver and many sample application programs. Works with DigiScoer.
* 279.95 AraigaFFT A complete package of fast Fourier Transform
Soutines and wirvsowing functions. Includes C source.
* 152 Ue also ca-ry Mitsubishi and Shinko Color Printers (
Prolo-Sk, AmigaCPIO, AangaView, DigiScope, and AmigaFFT are
registered trademarks of ACOA Corporation. ACDA Is frequently
i idating its products arx) reserves to right to change
specifications and prices at any time without notice,
(C) Copyright 1909 ACDA Corp. Circle 104 on Reader Service card.
Rp0- AOl?en=0;rpO- Flags|=AREAOU7LIN£; for(j=0;j nc;j++)I SetAFen(rpo,j);x-((j(31) 3)+8;y®([j «32) 3)-15; RectFill(rpO,x,y,x+7,y+7); 1 return; } void Rect(rp,left,top,width,height,color) register struct RastPort *rp; short left,top,width,height,color; ( SetAPer, (rp, color); Move(rp,left,top);Draw(rp,left width-1,top); Draw(rp,left+width-1,top+height-1);Draw(rp,left,top-
1) ; Draw(rp,left,top); return; struct St (NULL, r o ("10 r o
l“ 0 I " 0 l " 0 P 0 p o [" 0 r o !" 0 (" 0 o r o f "V0 r o
r o r o (" 0 r o (" 0 r o tringlnfo NULL,0,4, ",NULL,0,
* ,NULL,0, ", NULL,0, ",NULL,', ",NULL,0, ", NULL,0, ", NULL,0,
",NULL,Q, ".NULL,Q, ",NULL,0, ", NULL,0, ",NULL,0, ", NULL,0,
", NULL,0, ".NULL,0, ".NULL,0, ", NULL, 0, ", NULL, 0, ", NULL,
0, ",NULL,0, ",NULL,0, ",NULL, 0, NULL), (..NULL), 0,NULL),
1,NULL), 2,NULL), 3,NULL), 4,NULL), 5,NULL), 6,NULL), 7,NULL),
8, NULL), S,NULL), 10,NULL), 11,NULL;, 12,NULL), 12,NULL!,
12,NULL), 13,NULL), 14,NULL), 15,NULL!, 18,NULL), 17,NULL),
18,NULL), ); static USHORT mask[3]=(OxFFO,OxFOF,OxOFF!; void
Palette(s, w,colormap) struct Screen *s; struct Window *w;
USHORT *color.~ap: t USHORT bsckupmap[32],’ccolptr; ULONG
idcnp,class; struct RastPort *rp; UWORD
sd,sslcol=0,xpos=3,ypos=15; struct IntuIMessage "message;
register short j,curcomp,k,1; short gid; ULONG lng;
idcmp=w- IDCMPFlags movmem( char *)colormap, (char
*)ibackupmap,641; ModifylDCM? (w, GADGETUPI GADGETDOWN
IMOUSEMOVE) ; cmreq.LeftEdge- (w- Width-276) 1;
Cmreq.TopEdge=(w- Height-97) 1; if(1(Request(icmreq.w)I) goto
weg; rp=cmreq.ReqLayer" rp; sd=i «s- BitHap. Depth;
DrawPalette(rp,sdl; if(sd==64)sd=32; j=0;goto inspr; mo os :
KaitPort(w- UserPort)j sam: if(!|message=(struct IntuIMessage
*)GetKsg(w- UserPort) ) ) goto noos; gid=([struct Gadget *)
(message- IAddress))- GadgetID;
k=message- KouseX;l”=message- Houset; cIass=aessage- Class;
ReplyKsg((struct Message *tmessage); switch(class)( case
GADGETDOwn; if (gid =3fi£gido5) ( curcoap=gid-3;goto
adjustcolor; ) j= (k- (8+cnireq. Left Edge) 3) + (
(1 =(23+cmreq,TopEdge) )«5); if(j =sd) break;
Rect(rp,xpos,ypos,8,8,0); xpos=8+ (js31) «3) ; ypos=15+ (
(j»2) £0) ; selccl=j; inspr:ccaiptr=sbackupmap[selcol] ; Rect
(rp, xpos, ypos ,8,8,31); SetAPenfrp, j) ;
RectFill[rp,8,42,7+24 , 42+37-1) ; for (j=0;j 3;j++}(
lng=Tccolptr (j*4) ; lng-((IngiOxF)¦OxOOOOFFFFL) 15;
ModifyFrop(Sgprop[ ji,w,Scmreq,FREEHCRIZ, lna, 0,
0x1000,0x8000) ; :¦ break; case GADGETUP: if(gid==2)
movtieiTLf (char *)Sbackupmap,(char *)colormap,64); !
LoadRGB4(£s- ViewPort,colormap,sd); goto weg; case MOUSEI40VE: adjustcolor:
* ccolptr£=mask[curcomp); lng=(ULONG)porop(curcompJ .HorirFot;
lng=((lng’15! OxOOQOFFFFL) (curcomp*4); "ccolptr I =*lng;
SetRGB4[is- ViewPort,selcol, (*ccolptr 8), (’ccolptr»4) 415,
’ccciiptr&lS) ; break; ] goto saa; weg: MadifylDCMP(w,idcnp);
return; t void DrawPalette(rpO,nc) register struct RastPort
*rp0; short nc; 1 register j,x,y; inum[NUMCOLORS+1]=
,0,0,0,0,0,NULL,0, , 0, 0, 0, 0, 0, 0, NULL, ,0, 0, 0,0, 0,
0,NULL, ,0,0,0,0,0,0,NULL, , 0, 0, 0, 0, 0, 0,NULL,
,0,0,0,0,0,0,NULL, ,0,0, 0,0, 0, C , NULL, ,0,0, 0,0, 0,0,
NULL, , 0, 0, 0,0, 0, 0, NULL, ,0,0, 0,0, 0,0, N’JLL, , 0,0, 0,
0, 0, 0,NULL, , 0, 0, 0, 0, 0, 0, NULL, , 0, 0, 0, 0, 0, 0,
NULL, ,0,0,0,0,0,0,NULL, ,0,0,0, 0, 0, 0, N’JLL, , 0, 0, 0, 0,
C, 0, NULL, ,0,0,0,0,0,0,NULL, ,0,0, 0,0,0, 3 , NULL, , 0, 0,
0,0,0, ), NULL, , 0, 0, 0,0, 0, 0,NULL, , 0, 0, 0, 0, 0, 0,
NULL, , 0, 0, 0, 0, 0, 0, NULL, ,0,0, 0,0, 0,0, NULL, Oi
giScope ii a digital Storage oscilloscope emulator that works
with all of our data-acQuisi tion products and all paraI
lei•port digitizers. It operates t6 independent user-def irwd
buffers, has extensive DSP and graphics capabilities and a
complete spectral analysis package. DigiScope is ccmpletely
Amigatucd ana will keep the ccmpciition it a distance for *e«e
?159.95 Introductory Price finally, a standardized OtJCCT
MIEfllED mnilTLOa C interface that includes all CafitEI types
with automatic ¦Jtu.it exclusion), ulMOOus, mm%, REQUESTERS,
Cample* ¦litipie window EVENTS, SCREENS, LAYERS, BITMAPS. ALL
compatible libraries.
Cver 100 routines end macres.
Extensive doc and large exalte directory. Reduces program cade sire significantty. AmigaUorld's C programmirq library of choice Sept Oct 1987, p?8).
* 79.95 ¦ ACDA Corporation t 220 Belle Meade Ave J SetacAet, NT
11733 I (516 ) 689-7722 1 DigiScope r o ", NULL, 0,4,
0,0,0,0,0, 0,NULL,IS,NULL}, r o ",
NULL,0,4,0,0,0,0,0,0,NULL,29,NULL}, l" 0 ", NULL, 0, 4, 0, 0,
0, 0, 0, 0, NULL, 39, NULL) , (" 0 ", NULL,0,4,0, 0, 0,0, 0, 0,
NULL, 49, NULL}, (" 0 ", NULL, 0,4, '-,0, 0,0, 0,0, NULL, 3 9,
NULL), r o ", NULL, 0, 4,0,0,0,0,0, 0, NULL, 69, NULL), r o ",
NULL, 0,4, 0,0, 0,0,0, 0, NULL, 80, NULL) , P 0 ".NULL, 0, 4,
0,0, 0, 0, 0, 0,NULL, 90, NULL], (" 0
".NULL,0,4,0,0,0,0,0,0,NULL,100,NULL) (" 0 t. ",NULL, 0, 4, 0,
0, 0,0, 0,0,NULL,101,NULL) struct Gadget gokka=[
stok,0,0,2, 0 I; struct Gadget gnum[NUMCOLORSI=[ (Sgokka, 44,20
(sgnumiO] ,44, 20+1*9, 32,6,GADGHCOMP,
£sinum[l+l j ,0(, fsgnufi[l! ,44,20 + 2*9,
0, 0, (APTR) Ssinum[ 1+2 J, 0), j Sgnuin [2J, 44, 20 + 3*9, 32,
RELVERIFY,STRGADGET,0,0,0,0, (APTR)Ssinum[1+4],0},
RELVERIFY,STRGADGET,0,0,0,0, (APTR)Ssinum[1+5] ,0), 1Sgnum[5],
STRGADGET, 0, 0,0, 0, (APTR) £sinum[l+6],0}, [Sgnu«E6], 44, 2
STRGADGET, 0, 0,0, 0, (APTR) Ssinum [ 1t7 ] , 0) , [ £gnum[7] ,
STRGADGET, 0,0, 0,0, (APTR) Ssinum [1+ 8 ] ,0), t Sgnum[8],
RELVERIFY,STRGADGET,0,0,0,0, (APTR)£sinum[l+9),0(,
RELVERIFY,STRGADGET,0,0,0,0, (APTR)Ssinum[1+10),0], (sgnum[10],
STRGADGET, 0 , 0, 0 , 0, (APTR) isinura [1+11J , 0) , (S
gnum[111,44,20+12*9, 32,0,GADGHCOMP,LONGINTi STRINGRIGHT
RELVERIFY, STRGADGET, 0, 0, 0, 0, (APTR) Ssinum[1+12] ,0), [£
RELVERIFY, STRGADGET, 0, 0,0,0, (APTR) Ssir.un [1+13] , 0),
RELVERIFY, STRGADGET, 0, 0, 0, 0, (APTR) Ssinum. I 1 + 14 ] ,
0) , (£gnum[14], 44,20 + 15 * 9, 32,
0, (APTS) £sinum[l+15], 0),
RELVERIFY,STRGADGET,0,0,0,0, (APTR)Ssinum[l+iSJ,0), ( S gnum [
RELVERIFY,STRGADGET,0,0,0,0, (APTR)Ssinum[1+17],0),
RELVERIFY,STRGADGET,0,0,0,0,(APTR)Ssinum[1+18],0), (Sgnuin [IB]
RELVERIFY,STRGADGET,0,0,0,0,(APTR)Ssinum[1+22j,0), Sgnum[22] ,
RELVERIFY,STRGADGET,0,0,0,0, (APTR)Ssinum[1+23 J,0), (
Sgnurr.[23] , 110, 20*8* 9, 32, 8 , GADGHCOMP, LONGINT I
inum [ 1+24 ] , 0] , ( £gr.um[24] , 110, 20+9* 9, 32, 8,
0,0, (APTR) £sinum[l+25}, 0), (£ gnum[25], 110,20 + 10*9, 32,
RELVERIFY,STRGADGET,0,0,0,0, (APTR)Ssinum[1+27],0] , [Sgnum[27], 110, 20 + 12* 9, 32, 8,GADGHCOMP,LONGINTISTRINGRIGHT!
RELVERIFY, STRGADGET, 0, 0, 0, 0, (APTR) Ssinum. [1+28 ] ,0), (Sgnum[28],110,20+13*9,32,8,GADGHCOMP,LONGINT|STRINGRIGHT RELVERIFY, STRGADGET, 0, 0, 0, 0, (APTR) £ = 10+10(1+29] ,0), [Sgnum[29],110,20+14-9,32,8,GADGHCOMP,LONGINT STRINGRIGHT RELVERIFY,STRGADGET,0,0,0,0,(APTR)Ssinumfl+30],0], [Sgnum[30],110,20+15*9,32,8,GADGHCOMP,LONGINTISTRINGRIGHT RELVERIFY, STRGADGET, 0, 0, 0, 0, (APTR) £sinum[l+31 ] ,0] static short kareqxy[]=[0,11,0,0,161,0,161,184,0,184,0,11,161,11}; static struct Border kareqborder= 0,0,0, 0, JAMl, 7,Skareqxy [0),NULL ) ; static struct Requester karec=( NULL,
(WIDTH-152)72,(HEIGHT-185) 2,152,185, 0,0, Sgnum[31], Skareqborder, 7-ReqBorder* Streq6, -ReqText* 0,31 !; void Mapping(w) struct Window *w; register i,x; register struct RastPort *rp; for (!¦*!; KNUMCOLORS+l; i++) stcu_d(sinura[i] .Buffer, sinum[i) . Longlr.t, 4 I ; Request(Skareq,w); rp=kareq.ReqLayer- rp; rp- FlagsI=AREAOUTlINE; rp- A01Pen=0; x=Z0; for(i=0;i NUMCOLORS;i++)i if (i£l6)x=96; SetAPen(rp,i);RectFill(rp,x,20+9*(isl5),x-9,27 + 9* (isl5)); ) WaitPort(w- :JserPort) ; x=0; for(i=Q;i NUMCOLORS;i++)( sinum[i+1 ] .Longlnt=max (sinum [ i+1 ] . Longlnt, r:rum[i].Longlnt); sinum [ 1*1
] . LongInt=min (sinum [i+1],Longlnt,fi.Iter+1); while(x sinum[i+1J.Longlnt)[ array[x*+]=i; ) 1 return; ; static short req3xy[j = (C, 11,0,0,133,0,133,129, 0,129, 0,11,133,11); static struct Border req3border=[0, 0,0,0, JAMl,7,Sreq3xy[0],NULL ]; static struct Scringlnfo siiter=["100 0",NULL,0, 4,0,0,C,0,0,0,NULL,100,NULL }; static struct Gadget giter=[NULL,(134-32)2,20,32,3,GADGHCOMP, LONGINTISTRINGRIGHT|ENDGADGETIRELVERIFY, REQGADGETISTRGADGET,0,0,0,0,(AP7R)£si;ter,2&2,0 i; static struct IntuiText freq3iter=( 0,0, JAMl, (134-15*8) 2, 2, 0, "Set ((Iterations", NULL i; struct Requester
iterreq=( NULL 70, 50, 134,54, 0, 0,Sgiter, Sreqjborder, -ReqBorder* Strea3iter, 'ReqText* 0,14') void Iterations(w) struct Window *w; !
Register ULONG i; register USHORT j,x; stcu_d (si iter. Bur fer, s liter .Longlr.t, 4 ) ; Request(Siterreq,w); WaitPort(w- UserPort); s iiter.Longlnt=max(sliter.Longlnt,1); siiter.LongInt=min(si iter.Longlnt,256); i=siiter.Long!nt; x=0; for (j*=l; j NUMCOLORS+l; ]-+) ( if(sinum[j].LongInt==fi.Iter) sinum[j].Longlnt*!; else sinum [ j ] . Lor,gInt=sinum [j].Longlnt*(i+1) (fi.Iter+ 1 ] ; wb.ii.c- (x sinum [ j] .Longlnt) array[x++]=j-l; fi.Iter=i; return:
* AC* Notes rom the* C (ff'-oup Creating Libraries by Stephen
Kemp After programming in C for a while, you will begin to
realize the increasing dependency for functions and modules
that were written for other programs. It is not difficult to
find yourself in a position where you say, “I need something
almost like that function 1 wrote for diat last program." The
function gets copied into the new program with a few changes
and voila!
In many instances, these functions can be used without modification. In fact, these are probably functions that you use over and over from program to program. Once you have acquired "stable” functions that can be used in any program, it may be time to begin developing your own library of these routines.
Past discussions and listings have made assumptions about the use of libraries. All C compilers come with at least one library of routines (usually referred to as the “standard” library’). Some compilers will also have additional libraries with specialized functions for math or graphics. Unfortunately, no library will have all the functions that you will want to use. Furthermore, as I have mentioned in the past, standard C libraries are not very standard.
Some will have dozens more functions than others.
Creating personal libraries is easy but requires careful consideration. Not every function “deserves” to be included into a library’.
For the most part, a library function should be self-sufficient. This means that everything the function requires is included in the function. If the function references other functions, they too should be library' functions. It is not usually a good idea to make a function that requires your remembering to include some specific code in the program. Sooner or later, you may forget what to do, or someone else will inherit the problem.
Next, a potential library function should make as few assumptions about its parameters as possible. For instance, problems can arise if the function assumes that a parameter is a 10-byte string. What happens if it's Longer? Shorter? What if it receives a NULL pointer? Naturally, some assumptions have to be made; just try to consider whether they are reasonable. Resist the temptation of saying, “I’ll remember", because one day it will come back to haunt you.
Finally, document your functions. Write down descriptions, as well as their syntax, parameter types, return value types, etc. Even the most experienced C programmers occasionally have to get out their manuals to refresh their memory. Be sure to keep a hard copy of the listings also. If something should happen to your disk, at least there is something to fall back on. Additionally, if you find yourself trying to remember the specifics about a function in your library, you can pull out a listing without having to sort through your diskettes looking for the source.
In a past listing, I included diese functions because they were not available in my Manx C library. As the descriptions read, these functions can be used to change a string to upper or lower case. Use these to test your hand at creating your own library’.
' strupr is a function that indexes through a string and converts * I* all alphabetic characters to upper case * strupr I str 1 char *str; 1 fort ,-’str 1= str+-i-) * search until null is found * ’str - touppert’strj; I* call upper case function * * strlwr is a function that indexes through a string and converts * t* all alphabetic characters to lower case * strlwrl str ) char *str; ( fori ;‘str != ' 0‘; str++) * search until null if found ’ ’str = tolower(*str); * call lower case function * 1 But before we try’ to include these new functions, a few remarks should be made about
how libraries work.
A library’ is a collection of compiled modules, not functions.
This is an important point to remember. Referencing any one of several functions that a module contains will include all the functions chat are found within it. This can make programs larger by including functions that are not necessary. For this reason, it is better to make one function per module. Sometimes, several functions have "intertwined" relationships (refer to each other). In this event, keeping them together in a single module may make for easier maintenance.
It is not necessary for a library module’s name to have any relationship to the function(s) that it contains. For instance, the function strupr shown above could be in a module named “blarg” if desired. However, for the sake of clarity, it is wise to have some rhy’me and reason in naming conventions. With only a few modules, using the function names may be simple and useful.
However, once several dozen or hundred functions have been accumulated, it may be easier to devise some numbering scheme to aid in the programming task. Numbering schemes usually involve setting ranges for certain tasks like: MY100 to Y200 for string functions; MY300 to MY400 for memory functions; etc. The point here is that a method tiiat makes the most sense to the individual should be used in naming library modules.
Next, depending on tlie linker used, tile order that modules occur in a library can be very important. For instance, the Manx linker only makes 1 pass through a library. This means that it is possible to receive an unresolved (or undefined) symbol error when it is, in fact, defined in the library. This can happen if one library function references another that "physically" exists in a module that occurs earlier in tlie library.
To help explain tills potential problem, assume that a library (my.lib) has only two modules, named “func_a” and “func_b”, and that they are stored in chat order. Now suppose a program (prog) was written that uses diis library, tlie link statement would look something like this: In prog -lmy Keeping with the assumptions, suppose the program only references l'unc_b directly. If the function in diis module were to reference something in die module func_a, die link step will fail.
The link fails because the first module will already have been passed without including it into the program. After finding the reference in the second module, the linker does not back up and start at the beginning of the library again.
There are two solutions to this dilemma: 1) Reorder die library, or 2) include the library twice (In prog -lmy -lmy) on the link statement. When possible, it is best to try the first solution.
Libraries are created and maintained by ''librarian" programs.
Most of the C environments that I have encountered have included one of these programs, especially if a linker is also included. The MANX librarian is named "LB" but others are usually named "LIB”.
These programs are much like linkers. The user provides die module names on the command line (or in a command file) and has a variety of “switches” to aid in controlling how and where the modules are placed in the library. I would not recommend modifying the libraries that accompany C compilers. Experience has taught me that it is better to keep personal stuff separate because it is much more likely to be unstable (for a while).
The two functions included above, stmpr and strlwr, should be placed into individual files. Name these files the same as tlie funcdons. Once they have been compiled successfully, it is time to place them into a library. Since 1 have the MANX environment, the examples will be drawn from that. Other librarians will work similarly, probably using different command switches. Be sure to have die manual handy and make translations where required.
There are many commands that can he used with die librarian program. Some are more advanced than we have lime to cover here. The commands for LB that will be focused upon are:
- a ADD module after the indicated module
- b ADD module before the indicated module
- r REPLACE module in the library
- d DELETE module from die library
- t LIST die modules in the library' The first two switches can
be used to prevent the “order” problem that was discussed
earlier. The third, -r. Is important for replacing old modules
with new updated modules. Removing a module from die library7
can be accomplished using die delete option. Finally, a
complete list of the module names that are included in a
library can be obtained using the last switch.
Before discussing these switches, this is how a library can be created using these two functions.
LB mylib strupr strlwr This command line will cause the Iibrarian to create a library7named “MYLIB". This library will include two modules, “strupr” and “strlwr”, in the order that they are specified. Once a library has been established, it can be used for linking programs. For a program drat uses such a function, die link step might look somediing Hire diis: LN prog -Imylib -to Notice diat the library was included before the standard library in the link step. This will be important if the function’s reference items found the standard library (which, in many instances, will be the case).
Remember, the linker only passes dirough eadi library7 once resolving symbols as it goes. If a function references another module that has been passed over, an error will be generated by the linker.
Refer back to die order problem presented earlier. Naturally, the library could be deleted and created again in a specific order, if a problem should occur. However, this is not die best solution for a well-established library. Fortunately, at least two commands are available to keep diis from taking place. The first is the -a command.
It can be used like this: LB my -a fur.c Jb func_a This command line tells the librarian to include the module “func_a” after die module named “func_b”. Likewise, if it was important to include the module in front of the other, diis command line could be used.
LB my -b func_b func_a If a module is already a part of die library, then it could be replaced using the -r command. It is important to replace modules rather dian add them again. If the old module is not removed, then die link step will include die module diat occurs earliest in die library (once it has been reference). The best policy is to replace modules or use die -d (delete) switch to remove the old one first.
Finally, just to ensure that the library has been updated properly, use the -t switch to print die names of all the modules diat are stored in the library. This list will be generated in the order that die modules occur in die library. Note: Some library programs will also print some of its own "overhead” names, but these can be ignored.
Maintaining and using your ow7n library7 is one of the diings that you will probably enjoy about programming in C. After you have spent die dme waiting and testing functions diat you find useful, this is an easy method to use to make them available for all your programming tasks. Try a few experiments with the switches that your librarian supports until you are satisfied diat you understand them. Remember, you can alwmys check the results by using die -t (in Manx's LB) to list the modules.
• AC- Multitasking in Fortran Working around the difficulties of
Fortran on the Amiga by Jim Locker If you are like me and use
your Amiga as a scientific workstation, you have probably
become familiar widi AbSoft Fortran for the Amiga. This Fortran
compiler provides a full ANSI standard implementation of
Fortran 77.1 have ported many megabytes of software from
various mainframes and other micros, and have had very little
difficulty making them run. The compiler is fast, dre object
code appears to be quite efficient, and there are no serious
portability issues. There are a few vert' minor bugs in the
compiler system, but generally, the package is quite solid.
However, AbSoft employs a rather primitive system interface which is not fully compatible with the standard Amiga system interface. You cannot link it with Alink or Blink, you cannot start it from Workbench, and you cannot readily mix Fortran modules widi C or assembler modules unless die mixing is done under the control of a Fortran program. It is possible to access most of the ROM Kernel routines using die Amiga.sub "glue” routine, which is provided as part of die AbSoft package, but the overhead of this approach is extremely high, and diere are some odier problems (which I will
discuss later). .Also, you must build die system structures in code yourself.
The include files provided by AbSoft represent an incomplete subset of the system structures, and only represent one copy of each structure. You must declare and define any additional copies needed, as well as any structures not already declared. AbSoft Fortran supports recursion as a compiler extension (AmigaDOS and the 68000 make it easy). Therefore, you may recursively declare multiple copies of needed structures. However, this is not standard Fortran and may lead to relatively difficult program development and debugging, especially if you desire a complex Intuition interface.
The AbSoft compiler system was obviously intended by AbSoft to be easily portable between 68000 series computers.
Although this specialized compatibility causes problems when you try to interface fully to tire .Amiga operating environment, there is an unexpected side effect that can be beneficial in certain application environments. Specifically, the AbSoft compiler for Amiga can be used as a cross-compiler for any 68000 series computer. All you need to do is write a start-up code module (in assembler) that is appropriate for the intended target machine, and then force the compiler to use that module at compile time.
Recently, I have been working on a complex application, building from a public domain Fortran package. Given the complexities oflntuitionandthe extensiveness of my proposed interface, I wanted to build the user interface in C with the aid of Power Windows by Innovatronics. This made it necessary either to (1) translate over a meg of Fortran source to C, then debug and validate it, or (2) define a way to conveniently and comfortably interface AbSoft Fortran with Lattice C while retaining as much standard Fortran as possible.
Because I did not want to spend the next few years validating complex mathematical algorithms, I chose the second route.
This article discusses the approaches to interfacing Fortran and C which I investigated, along with my results, conclusions, source code, and recommendations. As a necessary adjunct to this work, 1 built a Fortran start-up module that replaces the AbSoft-provided lnit.se and provides full Workbench support. I also built a Workbench close-down module which must be linked into a Fortran program just ahead of die END statement, as well as a module which can open or change the standard Fortran console I O window. All these modules are in assembler.
Using the Fortran linker F77L, you can link a module written in C (or assembler) to a Fortran program. It is not possible, however, to link a Fortran module to a C module using Alink, Blink, or F77L. The AbSoft compiler can generate an assembler output instead of object code. In principle, you should be able to assemble this output using a native assembler, then link it using a native linker. But in practice, the AbSoft compiler generates assembler code that is incompatible with die Amiga assemblers that I tried. While die Metacomco assembler does not permit arithmetic operations that
use labels in an operand field, die AbSoft compiler actually prefers to generate code diat way. The Lattice assembler desires Hunk information that the AbSoft compiler does not provide.
I don’t own any other assemblers, so I did not try any others. AbSoft states that their assembler output is in full compliance with die Motorola standard and that the incompatibility is due to the native Amiga assembler's nonconformance with that standard. While diis statement appears to be true, it does little to solve a major problem: literally thousands of patches are required to compile and then assemble a large Fortran source program dris way.
However, you are able to pennit a Fortran module to communicate with a C module by using the facilities of AmigaDOS, To do this with maximum flexibility, you must give Fortran die capability to interface with the operating system as a separate Amiga process with its own environment. Then you can have separately compiled and linked Fortran and C modules. It would be possible for the C modules to start first, kick off Fortran modules as required, communicate with them, control them (or be controlled by them), anti then shut them down.
It happens that there is a program in the Amiga system called Workbench which routinely kicks off these types of processes.
If the Fortran module can start and shut down under Workbench, then all other goals can be met.
I used AbSoft Fortran version 2.3, Lattice C version 5-02, and Metacomco assembler version 10.178 throughout tills project. It is likeiy that the start-up routine, WBInit.asm, will be slightly different if you are using a different version of Fortran, though I did not attempt to investigate that possibility. The discussion that follows assumes you have some knowledge of the workings of the DOS library and the Exec library, as well as some familiarity with multitasking concepts. If you do not understand these references, 1 refer you to the literature, starting with the ROM Kernel Manuals.
The Fortran system conventions The Fortran compiler is intended to be portable among 68000 machines. Consequently, die compiler provides a simple, generic operating environment. At compile time, the compiler converts the source code to object code and installs a hardcoded header. The compiler then locates the start-up module, init.se, and places it in the object module after the hard-coded header and before the compiled user code.
Init.sc is die only machine- dependent portion of the compiler environment. All offsets are determined by the compiler and hard-coded into the object module. Therefore, die object module is one AmigaDOS Hunk and must resicle in contiguous memory. The use of overlays modifies this requirement and permits multiple hunks, but at an extreme performance penalty.
Overlay handling may be machine-dependent, due lo the implementation of die search padi.
All Fortran functions are handled by the compiler as references to functions in the run-time library, and are resolved by the compiler as hard-coded offsets from die base of the run-time library, which is maintained inA5. Any calls to external functions diat are not present in die source file and are not part of the run-time library are maintained as externals. When an external routine is called atrun time, a routine in die run-time library will search die current directory (the directory of die CLI which started die Fortran application) for the missing routine and will load and run it. If
it is not found, the Fortran program will terminate with an error message.
Thus, it is not generally necessary to link all your Fortran routines into one executable file. In fact, given that any routines so linked become part of die one and only main code hunk, it might not be desirable to link all externals together, since this requires a larger contiguous memory region to run the program. It is only necessaiy to ensure that any subroutines be located in die same directory as the main program and be suffixed with the name .sub (as in “myfunc.sub”). If the F77L linker is used, it merges the specified subroutines into the main file and replaces the segment of code
which calls die run-time library external routine handler with a hard-coded offset and JSR to the newly linked subroutine. In fact, as we shall find, the F77L linker loves to modify code in the object file. It links using the subroutine name only. There are no variables in a subroutine which are globally available, except for die names of Common blocks (this, of course, is standard Fortran).
No external tags are resolved by the linker.
F77L will refuse Lo link a subroutine written in C or Assembler, unless diat subroutine has been fully linked using Allnk or Blink.
Thus, you cannot provide links between Fortran and C by using F77L to link a C Frankly, for the features it has, I find Fortran easier to program in than C. object module to Fortran, and then using Blink to resolve the C links.
The init.se start-up module provided by AbSoft assumes die program has started from die CLI, and it shares the CLI environment completely. The Fortran compiler provides the first six instructions of the start-up code, loading a couple of hardcoded offsets into registers A1 and A2, then loading die size of die program data area into DI, and an identifier for which runtime library to use into D2. After issuing diese instructions, the init.sc module begins. It saves registers representing the number of command line arguments and die location of tiiese arguments. Using a hard-coded value
from the compiler, it allocates memory for the required data areas. If the run-dme library is not linked into the program, memory is allocated for it also (again a hard-coded value). The module then loads the DOS library and finds die CLI file handles ro use as the standard console. If the run-time library* is not linked, init.sc finds it by searciiing in the current directory, then in the nearest L directory and, finally, in the Sys:L directory.
It then jumps into the run-time library using an offset from Ax The F77L linker determines whether the F77.ri library* is linked in. F77L modifies code in the init.sc module when it links the run-time library*. Specifically, those references to memory allocation for the runtime library are modified to yield no operation. Then, die first three instructions of the segment of code which locates and loads die run-time library* are modified. The modified code uses a linker-determined hard-code offset from die beginning of the program to load die absolute address of the run-time library into
A5, then jumps to that location and continues execution. The remainder of the start-up code, which would search for and load the run-time library, is still present in the linked code, but is bypassed and never accessed.
When the linker makes these modifications to the code, it apparently counts a certain number of bytes and then changes the instruction diat is stored there, without checking to make sure that die instruction it changes is the one it wants to change.
Thus, the size and organization of the startup module provided by AbSoft is evidently hard-coded in die linker. This lack of sophistication introduces complications for anyone who wishes to modify die start-up code. In fact, diis is why my start-up code, WBInit.asm, has three sections of imbedded NOP instructions surrounded by labels and jumps.
The Amiga.sub routine provides hooks into the .Amiga operating environment, making it possible to access ROM Kernel routines. The mechanism employed is veiy time-consuming, although it is space-efficient if you have a large number of calls to die ROM Kernel.
Fortran comes with a set of Include files located in the Interface directory on the distribution disk. Each of these Include files contains, among other things, a listing of the applicable ROM Kernel routines which are identified as 32-bit hex numbers using a parameter statement.
When the user does a CALL AmlGA(ROMroutine, argl. Arg2... atgn).
The hex number is passed to .Amiga.sub in die ROMroutine field. This hex number is encrypted with information concerning the library base offset of die desired ROM routine, its library, and information about all its arguments. Amiga.sub decodes this number (in several hundred clock cycles), checks to see if the relevant library is open (and opens it if it is not), and then calls the appropriate routine.
Unfortunately, some of the hex numbers provided by AbSoft are incorrect.
PutMsg and FreeMem are incorrect, since both of these bit me over the course of the project. Essentially, Amiga.sub winds up passing pointers to the pointers required by these ROM Kernel routines, instead of passing the pointers themselves. This problem with FreeMem motivated the assembler module FREMEM.ASM, which is listed here, I should add, however, that I have used many of the Intuition and Graphics library routines through Amiga. Sub without encountering this problem. It is possible that the wrong numbers only exist in the less commonly used Exec and DOS routines. I could have fixed
these specific examples, but I concluded that I could build the assembler routines in far less time than it would have taken me to decipher the hex codes. Besides, die dedicated assembler routines have much higher performance.
The Workbench environment This subject has been described extensively in a variety of locations, so I will not dwell on it here, except to describe briefly the flow of events that must be considered.
When Workbench starts a program, it constructs a message called a Workbench Start-up message. This message contains a number of parameters which are of possible interest to a new process, including die current directory, and possibly a description of a default console. Workbench then calls the Exec routine LoadSegO to load the program code, and the Exec routine CreateProcO to create the new process and start it running. Arguments to CreateProcO include process priority and process stack size. Workbench then sends a pointer to die Start-up message to die new process, telling it what it
needs in order to execute correcdy. Workbench will unload the new process and clean up when the new process replies to the Workbench Start-up message.
To exist peacefully in this environment, a new process must first do a FindTaskCO) in order to find die locations of its own Process Control Block and Mes- sagePort in the system. Then, it must wait at its message port lor the start-up message from Workbench. When the message arrives, die process must store the pointer to the Workbench message, use whatever information in the Start-up message is of interest to it in whatever fashion is appropriate, and then go about its normal business.
When the process is ready to exit, it must return the Start-up message to Workbench using a ReplyMsgO. This is die signal for Workbench to unload the code for die process and to free all resources. Before doing the ReplyMsgO, die process must execute a ForbidO in order to disable multitasking while it terminates itself.
Otherwise, Workbench might unload the process before it has officially terminated.
After doing die ReplyMsgO, die process must immediately enter its exit handler to tell DOS it wants to be unloaded.
There is a bug in WorkBench which was documented in an early release, but apparently never fixed.
IntegratingFartranandWorkbench My start-up code handles all die requirements of Workbench or CLI startup, including an opdonal default window.
(Yes, it is now possible to inn a Fortran program with no window attached. Without one, of course, no error messages will be reported.) The code handles the start-up in a fashion which is totally transparent to the application no modifications to Fortran source code are required to support die start from Workbench. Workbench shutdown is accommodated by a call to Wbend, which must be die last statement before the END statement in a main program. This call to Wbend is needed to do the ForbidO and ReplyMsgO calls. These functions should be handled in the END statement, but diat would
require changes to die run-time library.
The Wbend.sub routine must be linked into die Fortran program using F77L, even if nodiing else in the program is linked. This is because I did not preserve register AO in this routine. The Fortran user’s guide indicates that routines used as overlays must preserve AO. 1 chose not to save AO in order to force WBEnd to be linked. For my project, the Fortran program will not be started from Workbench. If the C program diat launches the Fortran program does not pass information on the current directory to die Fortran program in the Start-up message (and I do not intend to pass that information),
then WBEnd will never be located by the program if it is run unlinked. Nevertheless, it is simple enough to preserve AO if you choose to do so.
The ROM Kernel manual discussion of die Workbench environment indicates that information about a default window, to be opened by the application, may be contained in the application’s icon. The start-up message sent by Workbench will pass die window information to die application. The C start-up code provided with Lattice C assumes this is true and either does or does not open a window, depending on the contents of die Start-up message.
For compatibility, WBInit.asm also checks the start-up message for this information.
There is a bug in Workbench which was documented in an early release and was apparently never fixed. Contrary to its documented capabilities, Workbench does not pass the information about the default window to the applicadon. This is not a significant problem for my intended application. I intend to launch Fortran routines in die background. Therefore, 1 do not really care if die Workbench works as advertised, since I will pass die information I want to the Fortran routine at start time. It will not matter if Workbench does not tell die new process about the window, because my
application will do that.
However, from the standpoint of a true Workbench start-up, this is a significant problem. I had already done most of the work required to enable Fortran to start from Workbench, so it seemed logical to finish the job. Given diat die Fortran compiler insists dial die start-up module be named Init.sc, I was not willing to have three versions: one which checked for a window specification and opened a window if indicated, one which always opened a window, and one which never opened a window. That would have invited too many opportunities for confusion and incompatibility'problems. I
finally decided to follow the ROM Kernel example and write a module that would check for window CONTROL THE UNIVERSE with£7*STFW7T Suns (version 3 of the award winning GALILEO' by R. Michael Smithwick)
• Realistic Color
• Authentic, Astronomically Correct Sky
• 2,200 Stars, 450 Deep Sky Objects
• 9100 Star Expansion Disk Available
• Other Exciting Expansions Coming in 1989
• Spans time from 8,000 B.C. to I 2,000 A.D.
• Choose Any Place on Earth for Your Observatory
• 512K on Any Amiga, Easy to Operate
• Dozens of Other Features
• calileo" toOsTRriT Suna Upgrade Available Acclaimed within the
Amiga community and beyond: 19CB Chicago CES Most Innovative
Educational Program 1909 Amazing Computing's Best Educational
Product "The display... attests to the advanced color capa
bilities of the Amiga. Thousands of tiny stars almost twinkle,
and Mars glares bright red. Galileo (Distant Suns) is fun, in
addition to being powerful and visually stunning." Sky and
Telescope Own the universe for $ 69.95 Ask your Amiga dealer for
Distrttt Suna" or call: Circle 121 on Reader Service card.
Index of Advertisers Need more information?
Please use the Reader Service Card to contact those advertisers who have sparked your interest. Advertisers want to hear from you. This is the best way they have of determining the Amiga community's interests and needs.
Take a moment and contact the companies with products you want to know more about. And, if you wish to contact an Advertiser directly, please tell them you saw their advertisement in Amazing Computing For The Commodore Amiga Advertiser Page Reader Service Number ACDA Corporation 89 104 Anivision 70 150 ASDG Incorporated 51 112 B&B Computer 103 110 BIX (Byte Information Exchange) cm 105 Celestial Systems 62 114 Central Coast Software 40 145 ComputAbility 13 11“ Consul Lron 83 156 Empire Graphics 68 151 Joe’s First Company, Inc. 14 180 KarmaSoft 36 124 Lake Forest Logic Inc. 107 113 M2S, Inc. 42
181 Micro Momentum, Inc. 8 125 Micro-Systems Software 7 101 MicroBotics, Inc. 5 109 Microillusions 55 132 MicroMiga 79 182 MJ Systems 102 169 Mj Systems 48 176 Moonlight Development 45 190 Musicomp Technologies 62 159 NewTek Incorporated CIV 102 Omnitek Computers International 32 136 One Byte 84 135 Poor Person Software 76 127 Pre’spect Technics Inc. 77 165 Safe Harbor Software & Peripherals 37 134 Sedona Software 54 119 Software Advantage Consulting Corp. 38 131 Software Integration Solutions 62 184 Sunsmile Software 86 185 Tangent 270 2 153 The Bit Bucket Computer Store 101 139 The Krueger
Company 59 138 The Memory Location 105 107 Virtual Reality Laboratories 96 121 Xetec 71 123 SOFTWARE 2341 Ganador Court, San Luis Obispo CA 93401
(805) 545-8515 information. Then I was able to write a
Fortran-callable routine which would, if called, close the
existing standard console I O window, and open a new one.
(There is always a console I O defined; if no window is
opened, WBInit.asm will open NIL:, so error messages will
not crash the system.)
My routine is called StdOpn.asm. It checks first to see if the program starts from
CLI. If it does, StdOpn returns quietly. If the program starts
from Workbench, StdOpn closes the existing Console I O
window and opens a new one. It then hooks the new window
into both AmigaDOS and the Fortran run-time system. This
routine accepts no arguments and opens only a specified
default window. These limitations were acceptable for my
purposes, but you might want to add arguments to specify
the size or type of window you desire.
Yes, this is a bit of a kludge, but there appeared to be little choice. This way, at least, you can choose whether or not to open a window from within your application.
Tell then you saw them in Amazing Amiga JL JL COMPUTING"CJ Ar Your Original AMIGA* Monthly Resource Whenever you contact an Amiga vendor, let them know which Amiga publication you prefer.
To build tire Fortran Workbench start-up environment, enter the assembler code provided in the attached listings for WBInit.asm and WBEnd.asm, using your favorite editor. Assemble the code using your favorite assembler, then link with Blink or Alink. No libraries are needed; simply type “Blink wbinit.o to init.sc”, “Blink wbend.o to wbend.sub”, and “Blink stdopn. O to stdopen.su b”. Note that the final files must be named init.sc, wbend.sub, and stdopn.sub (case is not important). Init.sc should be placed in tire L: directory which will be used by tire F77 compiler. Also, note that this module
will replace the one provided by AbSoft. As always, be careful to use a backup disk only.
Wbend.sub and StdOpn.sub should be in tire same directory as the compiled program you will be starting from Workbench. Your Fortran source code must be modified to do a CALL WBEND just before the END statement. Compile the Fortran source, then link in Wbend.sub with the command: “F77L yourprog wbend.sub”. Define an Icon for the program. Copy another Tool-type icon, using the SetWin- dow utility (from the Software Distillery) if necessary, to establish a default window for the application. Workbench will not recognize this -window, but some of the public domain utilities that emulate a
Workbench start-up will. This way, you maintain compatibility with the way things are supposed to be.
When typing these programs in, watch out for a few things. When considering variables, C, Fortran, and Metacomco Assembler are all case-sensitive. In other words, VAR, var, and Var are three different variables to these languages. When considering commands, though, only C is case- sensitive. During the course of this project, ! Used both upper and lowercases.
The program Testit.for demonstrates the new Fortran capabilities. Compile this program using F77, then link in WBEnd.sub using F77L. Make sure WBInit.asm has been assembled, linked, and named Init.sc. This module must be either in tire same directory as Testit.for, or in the L: directory. You can link in the other subroutines, StdOpn.sub, Amiga.sub, and Loc.sub, as well as tlie run-time library. If you do not link these in, they still must be available in die same directory as Testit.
You can define an Icon for Testit by copying any Tool-type icon and renaming it as Testit.info. I used the Calculator Icon.
Edit the Testit icon using Workbench Info and then set the stacksize to suit your own liking. This program does not use much stack, but you might want to take advantage of the ability to vary the stack size.
Make sure the Icon is stored in tlie same directory as Testit. Then, click on tlie Icon and watch it run.
Multitasking with Fortran and C In order to communicate between Fortran and C using this scheme, die first code module (in C) must start the second module (in Fortran) using LoadSegQ, and then CreateProcO. Then, the first code module must build and send to the new process a Start-up message that looks like a Workbench message. This message will be collected in WBInit.asm and processed.
The first module must be aware that the second will terminate by using ReplyMsgO to return die start-up message. Therefore, the start-up message must not be touched by anyone during the course of the run.
.Alter these requirements are satisfied, the two processes may communicate according to any desired scheme within the context of AmigaDOS message-passing. My application employs both message and token-passing, with well-defined handshaking to keep the processes from getting out of synch. There is no reason why die first code module cannot be written in Fortran and used to kick off anodier module in either Fortran or C. But I was not terribly interested in this case, and did not bother to write a demonstration.
The Workbench start-up message is not immediately available to the Fortran application code, although it is available from within the initialization code. For my application, it is convenient that the Workbench start-up message be made available within the Fortran code, so I have written another little assembly segment (which could have been written in C). This segment is Fortran-callable as a function and returns the address of the start-up message.
This function is labelled “WBstrt.asm” in the listings.
An example of multi-process, multilanguage communications is provided in the source listings under the names Master.c and Slave.for. Master, after starting from CLI, builds the (fake) Workbench start-up message, kicks off Slave, then sends Slave the start-up message. Master then waits at its default message pon (the same as the RepiyPort specified in the Workbench start-up message) for the first message that it expects from Slave. Master does not provide Slave with information on the current directory. Therefore, by default, Slave will have as its current directory the one from which the
system booted.
Slave collects tlie start-up message and processes it in WBInit.asm. When the Fortran code is entered, Slave first does a FlndTask(O) (using the Amiga.sub facility') to find its own Process Control Block, and then uses the Wbstrt function to make the stan-up message available from within Fortran.
At this point, of course, Slave has already done a FindTask(0) from within WBInit. But again, that information is not available to Fortran without anodier special function. I wanted to keep die special functions to a minimum, so I had to do another FindTask(G) within Slave.
Slave does a CreatePortO to provide itself with a standard message port for all interactions widi Master. It dien does a PutMsgO to the RepiyPort specified in die start-up message. This, of course, is why we need the information in the start-up message. The PutMsgO contains the address of the standard message pon that Slave opened with CreatePortO, as well as the location of die first variable in a common block, called com, which will be used by both Masterand Slave in diis demonstration. Following the PutMsgO, Slave goes to sleep with a WaitPortO, looking at its new communication port.
While all this has been going on.
Master has been waiting quiedy for this message. When it arrives, Master stores the address of Slave’s message port, then does a CreatePortO to generate its own message port. It then does a PutMsgO to Slave’s message port, relaying the location of its own new7 message pon. Tlie port that it used for the Workbench message is not used again until it is time to close Slave down.
Slave collects this message and does a ReplyMsgO to acknowledge receipt. At diis point, all die initialization is finished.
Master then sends a message to Slave which does nothing more than pass a text string to Slave. Slave prints the text of tlie message for your edification, and does a ReplyMsgO- It then drops into a subroutine called USER, which represents die call to the main function of die Fortran package being integrated into this environment. For diis demonstration, Slave does not use its console window7 for any other purpose dian to post messages regarding its activities. Howrever, there is no reason why an interactive session could not occur in this window.
USER commences with a WaitPortO because it has nodiing to do until it is activated by Slave's message. Master, having received the data on the location of die common area, has saved it and done a ReplyMsgO- It then does a PutMsgO, sending three data values to Slave (which is now7 in USER). Using its console window, Master also tells us what it has done. It then does a WaitPortO, expecting a reply. USER has been expecting these values. It prints them in the console window to display w'hat it has received, and then stores them in the common block. Next, it does a ReplyMsgO to Master, and
then aWaid’ortO- Master, in turn, does a DelayO, allowing us poor, slow humans to digest the information on the screen.
Remember, Master know's die location of die common block or, more properly, die location of die first variable in the common block. (Since variables in common blocks are stored contiguously, It amounts to the same tiling.) Master reads the contents of the common block and prints them out for your pleasure. It then changes one of the data points in the common block and tells us what it is doing.
Next, it does a PutMsgO to Slave, telling it to print die data values in the common block. USER, of course, obeys. You will see that the value of the last variable in the common has indeed changed. After another DelayO, USER does a ReplyMsgO, then a WaitPortO- By now, Master has completed its planned itinerary, so it does a PutMsgO telling Slave to shutdown. It then does a WaitPortO at its original message port.
USER receives die command to shutdown and accordingly exits to Slave. Slave deallocates its message port using a Delete- PortO, dien calls wbend.sub to clean up.
Master receives the ReplyMsgO to die startup message message from w'bend. When it gets an opportunity (remember, wbend disables multitasking, which is not re-enabled until Slave exits), it does an Unload- SegO to delete Stave, frees all resources, and exits. All windows now close and all system resources are returned.
Slave.for contains a number of features that should be discussed. First, note die paired subroutines, CreatePort and DeletePort. These functions are available as macros in botii Lattice C and Metacomco assembler. Nodiing comparable exists in Fortran, so I had to build them. They should be generally useful, beyond just this sample interface.
Second, note that die message built within Slave uses space contained within the Fortran environment. I had originally done an Allocmem (using Amiga.sub) to prepare a block of memory, and then a PutMsg to pass a pointer to that block.
Howrever, Amiga, sub bit me by passing a pointer to my pointer, instead of passing die pointer itself. 1 could have gotten around this either by writing an assembly routine diat would w'ork right, or by allocating an array widiin Fortran. I chose the latter. I also did AllocMems from within CreatePort. That worked because Amiga.sub correctly handled AddPort and RernPort. However, FreeMem bombed for the same reason PuuMsgdid. Given the way Fortran handles automatic variables, I did not consider it desirable to allocate my message portusing space contained within the Fortran environment.
Therefore, the best way around this was to write an assembler module diat correcdy handled FreeMem. This is the FreMem.asm module.
Third, note the include statements in Slave.for, The include files provided by AbSoft provide an incomplete set of definitions. 1 needed a substantial number of additional definitions to make interface work. These definitions are contained in the include files DOSExtens.inc and Execextens.inc. Again, diese files are generally applicable and mimic exactly the naming conventions found in the Lattice C include files.
Conclusions and recommendations 1 have used the Fortran compiler extensively for a number of different applications, some of which were quite complex. I have ported in multi-megabytes of software from the land of VAX, IBM 370, and IBM PC. I compiled 600K files in Fortran. The results w-ere reliable. The compiler is fast with very few bugs, and the implementation is complete as far as ANSII standard F77 is concerned. It is truly a shame that die hooks into AmigaDOS are so bad.
Amiga.sub is a remarkable routine. I remember complaints about how terrible it was to have to go through amiga.lib in Lattice C to get at die ROM Kernel. Compared to AbSoft’s amiga.sub, amiga.lib is streamlined and elegant. Each library call takes hundreds of bus cycles, and some calls don’t work correcdy due to bad data.
Properly, AbSoft should provide a library like Amiga.lib filled widi routines such as the Fremem.sub that I have presented here. If AbSoft will not do it, someone else might consider it. I am building such a library as I need it. This article shows how it is done.
Some aspects of the interface that I have shown here are ugly and clunkyc These imperfections owe tiiemselves to the way AbSoft Fortran works. Nevertheless, die interface is reliable and provides a way for Fortran to reach the rest of the world and for the rest of the world to reach Fortran. Using die routines provided here, you can make a standard Fortran application work with the Amiga multitasking environment. The multitasking communications capabilities might be of particular interest to those attempting multiprocessing with the Bridgeboard or a network. These should also be of interest
to diose who, like me, want to place a complex Intuition interface on a standard Fortran application.
I have discussed some of these issues with AbSoft. Their comment is diat I am one of very few people who are using Fortran in this way, Be that as it may, I emphasize that, since I knew it would be difficult, I did not attempt to use Fortran in this way until it was absolutely necessary. I certainly would have used it in diis way before if the implementation had supported it. Frankly, for the features it has, I consider Fortran to be easier to program in dian C. About the author Jim Locker holds an M.S. in Physics from WrightState University.
He works as a systems consultant at SoJTecb Inc. in Dayton Ohio. He uses his Amiga 1000 with 4.5-Mbyte RAM, a 20-MHz 68020 68881 board, and an 80-MByte SCSI hard drive as a simulation development system. When he isn’t programming his machine to simulate particle-beam systems or avionics systems, beflys radio-controlled model airplanes and cuts down trees to feed his stove. Any correspondence should be directed to: Jim Locker, c oAmazing Computing. P.O. Box 869, Fall River, MA 02720.
Listing One c C The Process Structure c integer pr Process parameter(pr_Process = 0) integer prJTask parameter(pr_Task = pr_Process) integer pr MsgPort parameter(pr_MsgPort = pr_Process+tc_MemEntry-
* tc_Node+8) integer pr_?ad parameter(pr_Pad = pr_Msg?orc + 14)
integer pr _Seglist parameter(pr Seglist - pr_Pad+2) integer
pr_Stacksize parameter(pr_StackSize = pr_Seglist + 4) integer
pr_GIobVec parameter (pr_C-XobVec = pr_StackSize + 4) integer
pr_TaskNurn parameter (pr TaskNum = pr_GlobVec + 4) integer
pr_StackBase parameter(pr_StackBase = pr_TaskNum + 4) integer
pr_Result2 paranet er (pr_Result2 = pr_StackBase e 4) integer
pr_CurrentDir parameter(prCurrentDir = pr Resulc2 x4) integer
pr_CIS parameter (pr_CIS pr_CurrentDir - 4) integer pr COS
parameter (pr_COS = pr_CIS + 4) integer pr_ConsoleTask
parameter !pr_Cor.soleTask - pr_C!S t- 4) integer
pr_FlieSystemTask parameter (pr_FileSystemTask -
pr_Cor.soleTask + 4) integer pr_CLI parameter (pr_CLI ¦=
pr_FileSystemTask 4) integer pr_Returr.Addr
parameter(pr_ReturnAddr = pr_CI.I + 4) integer pr_FktWait
parameter(pr_PktWait = pr_ReturnAddr +4) integer pr_WindowFtr
parameter (pr_Windo.,’Ptr = pr_PktWait + 4) c c node
definitions c integer NT_UNKNOWN parameter(NT_UNXNGWS=0)
integer NT_TASK parameter(NT_TASK=1) integer NT_INTERRU?T
parameter(NT_INTEKRUPT=2) integer NT_DEVICE
;parameter(NT_DSVIC2=3) integer NT_MSGPCP,T parameter
(NT_.XSGP0P.T-4) integer NT_MESSAGE ;parameter(NT_MESSAGE=5)
integer NT_FREEMSG ;parameter(NI_FREEMSC-=6) integer
parameter(NT_RES0URCE=S integer NT__LIBRARY
parameter(NT_lI3RARY-9) integer NT_MEMORY
parameter(NT_MEM0RY-10) integer NT_S0FTINT
parameter(NT_S0FTINT=11) integer NT_FQNT
parameter(NT_FQNT=12) integer NT_PROCESS
,¦parameter(NT_PROCESS=13) integer NT_SEMA?H0KE
parameter(NT_S£MA?H0RE=14) integer NT_SIGNALSEM
parameter(NT_SIGNALSEM=15) integer NT_B0OTNODE
parameter(NT_BOOTNODEd6) c the node structure c integer*l
Node(14) integer-t In Succ equivalence(Node(1),In Succ)
integer . In_?red equivalence (Node (5), ln_Pred) integer"!
Ln_Type ; equivalence(Node(9),ln_Type) integer'l ln_Pri
equivalence(Node(10),ln_Pri) intcger*4 ln_Namo ; equivalence
(Node (11), ln_Nam.o) c c the rode offsets c INTEGER IN SUCC z
parameter (1N_S'JCC = 0) integer LN_PRED parameter (LN_?RSD =
LN_SL’CC+4) integer LNJTYPE parameter(!N_TY?E = LN_PAE!)-‘-4)
integer LN_PRI ; parameter (LN_PRI = LK_TYPE+1) integer LN_NAME
; parameter(LN_NAKE - LN_?RI +1) c c port definitions c integer
PF_ACTION parameter(PF_ACTI0N = 3?
Integer ?A_SIGNAi ;parameter(?A_SIGSA1 = 0) integer ?A_SOFTINT parameter(PA_SOFTINT = 1) integer ?A_IGN0RE parameter PA_IGN0RE = 2) C C The Message Structure t integer mn_Message parameter(mn_Kessage = 0) integer mn_ReplyPort parameter(mn_ReplyPort - mn__Message+14) integer mn_Length parameter(mn_length =
* mn_RepIyPort+4) c c the msgport structure c integer"!
MsgPort(34) integer mp_Node equivalence(MsgPort(1),Node(1))
integer*1 mp_Flags equivalence(MsgPort(15) ,np_FlagsI integer'l
itip SigBit equivalence(MsgPort[161,rap SigBit) integer*4
mp_SigTask equivalence (MsgPort (17l, trtp__SigTask) integer
mp_MsgList equivalence(MsgPort(21),mp_MsgList) c c the list
structure offsets c integer LH__HEAD parameter(LH HEAD - 0)
integer LH_TAIL parameter(LH_TAIL = LH_HEAD+4) integer
LH_TAILPRED parameter(LH_TAIL?REO = LH TAIL+4) integer LH_TYFE
parameter(LH_TYPE = LH_TAILPRED+4) integer LH_PAD
parameter(LH_PAD = LK_TY?E+1) * Header files * tinclude
"exec types.h" ((include "exec ports.h" include "exec tasks.h"
include "exec memory.h" include "libraries dos.h" include
"libraries dosextens.h" ¦(include "proto exec.h" ((include
"proco dos.h" “include “workbench workbench .h" inciude
"workbench icon.h" iinciude "workbench startup.h" ((define
SizTCB sizeof(struct Task) * definitions for other tasks *
“define SlavePriority 0 * priority for slave segment *
((define SlaveStack 4000 * stack size for slave segment *
struct SlaveMsg I struct Message message; LONG code; char
*text; 1; struct SlaveMsg!
F struct Message message; LONG code; double vail; double val2; double val3; ); struct Common ( * LONG header;* double xxx; double yyy; double szz; ) ; ((define OKAY 0 tdefir.e ERROR 1 4define CLEANUP 2 tdefine OTHER 3 ((define DATA 4 Main segment *************»¦ VOID main() ( struct Common ‘corn; struct MsgPort ‘mair.port; * pointer to main process's reply port* struct MsgPort *ourSIaveport; ’ pointer to Slave's new port * struct Task ‘SlaveTask; ‘pointer to Slave's TCB* struct SlaveMsg *msg; static struct SlaveMsg wakemsg = !
[ (NULL, NULL, NT_MESSAGE, 0,NULL;, NULL,NULL (, OKAY,"Wake up" ) ; static struct SlaveMsg checkmsc = ( (NULL,NULL,NT_MESSAGE,0,NULL f, NULL,NULL OTHER, ”1 have changed your data" 1 ; static struct SlaveMsg finalrasg = t ( (NULL,NULL,NTJ4ESSAGE,0,NULL), NULL,NULL ), CLEANUP, "Perform clean-up" ) ; static struct SlaveMsg! Datamsg = ( ( (NULL,NULL,NTJ4ESSAGE,0,NULL!, NULL,NULL ), DATA,3.14155,2.731826,5.5 ! ; struct WBStartup *WBStartup; struct MsgPort “NBreplyport; * initialize messages and ports * WBStartup = NULL; Kbrepiyrort = NULL; * build the workbench startup message * if
((WBStartup = (struct WBStartup *) AllocMemisizeof[struct W3Startup) , KEMF_CLEAR)) == NULL) goto errorA; * create our message ports * if((WBreplyport = (struct MsgPort *)CreatePort("Master",0)) ==0) ( print f ("Unable to open WBMessage Portin''); goto errorO; } if((mainport = (struct MsgPort *) CreatePort(0,0))==0) ( printf ("Unable to open main message portin''); goto errorl; ) * load ar.d create child process * i f ((WBStartup- sm_Segment “ (BPTR)LoadSeg1"clave"))= 0) printf("Failed to load Siave n"); goto error2; } if (W3Startup- sm_Process = (struct MsgPorc *) CreateProc("Slave",
SlavePriority ,WBStartup~ sm_Segment .SiaveStack)) == 0) printf("Failed to create Slave process n"); goto error3; else ( printf("Slave process createdXn"); } SlaveTask = (struct Task *) Mint)(WBStarcup- sm_Process)
- SizTCB); * send the startup message to Slave * printf
("sending startup message to SlaveW');
WBStartup- sm_Message.mn_ReplyPort = Wbreplyport;
PutMsg(WBStartup- sm_Process,WBStartup); * send message *
WaitPort(WBreplyport); * await an answer * msg = (struct
SlaveMsg *)GetMsg(WBreplyport); * This message is either a
return of our startup message (indicating an error) or a
standard message, containing the address of the new slave
message port. We must test to find out which. *
if(WSStartup- sm_Message.mn_RepiyPort ==
msg- message.mn_Reply?ort) printf("reply received - error in
SlaveXn"); goto error4; } printf("reply received -everything
working n"); * get Slave's new message port * ourSlaveport =
(struct MsgPort *)msg- message.mn_ReplyPort; * get the
location of slave's common area * com = (struct Common
*)msg- code; * send the wakeup message *
wakemsg.message.mn_ReplyPort = mainport;
wakemsg.message.mn_Length = sizeof(wakemsg);
PutMsg(ourSlaveport,Swakemsg); WaitPort(mainport);
GetMsg(mainport); * send the data message * printf("sending
the data message to Slave n"); datamsg.message.mn_Reply?ort »
mainport; datamsg.message.mn_Length = sizeof(datamsg);
PutMsg(ourSlaveport,idatamsg); WaitPort(mainport);
GetMsg(mainport); printf("reply receivedNn"); Delay(500);
*raid the slave common area to determine the data values*
printf("reading slave's data n"); printf("values are: xxx = %f,
yyy = %f, zzz = %f n", com- xxx,com- yyy,com- zzz); * Now
modify one of Slave's values for him * The Bit Bucket COMPUTER
STORE We Want Your Business!!
We Have the Best Prices!!
Oldest Commodore Dealer in the Area!!
2 Locations to Serve You 1294 Washington Street
W. Newton MA 02165 617-964-3080 621 Boston Post Road Sudbury MA
01776 508-443-9731
* Software
* Hardware
* Service
* Information Authorized Commodore Amiga Dealer and Commodore
Service Center Authorized Dealer Circle 139 on Reader Service
Checkmsg. Message. Mr._Replyrort = mainport; checkmsg.message.mn_Length = sizeof(checkmsg); com- 2zz = -2.23456; printf("modifying zzz. New value is %f n",com- zzz); PutMsg(ourSlaveport,Scheckmsg); WaitPort(mainport); GetMsg(mainport); * send the "clean up" message * printf("sending the cleanup raessageXn"); finalmsg.message.mn_ReplyPort = mainport; finalmsg.message.mn_Length = sizeof(finalmsg); PutMsg(ourSlaveport, finalmsg); WaitPort(mainport); GetMsg(mainport); printf("reply received..closing dowrAn"); * wait for Slave to ask to be unloaded * Delay(100); error4: WaitPort(W3replyport);
GetMsg(WBreplyport); * clean up code * RemTask(SlaveTask); error3: UnLoadSeg £WBStartup- sm_Segment); error2: BRIDGEBOARD USERS!
Don’t waste money, slots, or desk space buying extra IBM-compatible or Amiga floppy drives! The Bridge Drive Commander gives you direct access to your built-in and addon Amiga floppy drives from the Bridgeboard, and direct access to 360K and 720K IBM-compatible drives from AmigaDOS. Bridge Drive Commander makes access completely transparent and automatic. No software drivers to load, no precious memory or expansion slots used up. Installs on internal floppy drive connector. Floppies are completely useable by other Amiga and IBM-compatible computers.
Compatible with all software, hard disks, accelerator boards, etc. Two versions available: standard Amiga disk access, and multi-bus version, for maximum speed.
Bridge Drive Commander Standard access ..... ...S 79.95 Multi-bus access ......S119.95 External drive adapler .S 24.49 MJ SYSTEMS Dept 10B, 1222 Brookwood Road, Madison, Wl 53711 1-800-4454564 Answered 24 hours MasterCard VISA (Info: 1-608-274-5563) Product names are trademarks of their respective companies.
_ Circle 169 on Reader Service card.
DeletePort(mainport); errorl: DeletePort(W3replyport); errorO: FreeMem(WBStartup,sizeof(struct WBStartup)); errorA: exit (0); SLAVE. FOR include exec.inc include dos.inc include execextens.inc include dosextens-inc implicit none integer*4 amiga,ioc,z, j,jjfmess integer* slavercv,curmsg,slavetask,slaveproc,wbport integer*4 console,ourslaveport,wbmsg,wbstrt,msgtxt integer*4 OKAY,ERROR,CLEANUP,OTHER integer*4 code real*8 xxx,yyy,zzz character*! Buf(64J character*24 mesage character*64 bufff C C Our Message Structure C integer our_message parameter(our_message = 0) integer our_code
parameter(our_code = our_message+20) integer our_text parameter (our_text = our_code-r4) C C Finish off the Task structure which is not done in C EXEC.INC C integer tc_UserData parameter(tc_UserData = tc_MemEntry+14) common namblk z common com xxx,yyy,zzz character"32 pname equivalence (bufff,buf (1)) data OKAY 0 ,ERROR 1 ,CLEANUP 2 ,OTHER 3 call stdopn pname “ 'ourport‘ CHAR (0) mess = loc(mesage) C C Find ourselves C slavetask = anica(FindTask,0) slaveproc = slavetask C C Now locate the workbench message and the location of the C reply port C wbmsg = wbstrt(O) wbport * wbmsg +
mn_Reply?ort C C Create a new message port for ourselves C call CreatePort(pname,0,ourslaveport,slavetask) C C If port creation failed, return WB message C if(ourslaveport .eq, 0) then call amiga(ReplyMsg,wbmsg) goto 99 endif C C Otherwise send a message celling that we are running, C where the common block that we are going to use is C located, then wait at our port for the next message C long(mess+mn_ReplyPort)-ourslaveport byte(mess+LNJIYPE) = NT_MESSAGE word(mess+mn_Length) = 24 long(roess+our_code) = loc(xxx) call amiga(PutMsg,long(wbport),mesage) call amiga(WaitPort,ourslaveport)
slavercv = amiga(GetMsa,ourslaveport) msgtxt - long(slavercv+our_text) do 11 j=0,63 buf (j + 1)=byte(msgtxt+j) if(buf(j+1) = CHAR(0)) goto 12 11 continue 12 continue write (9,15) (buf(jj),jj*l,j) 15 format("message received from Master" ,64a!} call amiga(Delay, 100) call amiga(ReplyMsg,slavercv) c C Now drop into the user routine, since all initialization C is finished C call USER(ourslaveport) AudioMasterll Aunt Arctic Adventure Battle Chess Battle Tech Baud Bandit Blood Money Deluxe Music 2.0 Deluxe Paint III Demon's Winter DigiPaint III Double Dragon Dragon's Lair Dungeon Master FA 16
Interceptor Falcon Kind Words License To Kill Lords of the Rising Sun OutRun Phasar Pioneer Plague Publisher Plus RoboCop Rocket Ranger Sinbad & Throne of Falcon SimCity Son ix
569. 95
25. 95
34. 95
36. 95
32. 95
29. 95
72. 95
109. 95
29. 95
69. 95
29. 95
41. 95
27. 95
37. 95
36. 95
59. 95
29. 95
34. 95
34. 95
63. 95
28. 95
49. 95
32. 95
35. 95
19. 95
31. 95
56. 95 50 c C We've exited the user routine, so clean up and go
away C call DeletePort(ourslaveport) 99 continue call wbend
end subroutine USER(ourslaveport) include exec.inc include
dos.inc implicit none integer*4 amiga, loc, j, j j integer*
slavercv integer*4 ourslaveport,code,msgtxt integers OKAY,
ERROR,CLEANUP, DATA,OTHER real*8 xxx,yyy,zzz character*2
readin(12) C C Our Message Structures C integer our_message
parameter(our_message * 0) integer our_code
parameter(our_code = our_message+20) integer our_text
parameter(our_text = our_code+4) integer first data
parameter!first_data = our_code+4) integer second_data
parameter(second_data » first_data+8) integer third_data
parameter(third_data = second_data+8) common com
xxx,yyy,zzz character*32 pname character*64 bufff character*!
Buf(64) equivalence (bufff,buf(1)} equivalence
(readin(1},xxx) data
OKAY O ,ERROR 1 ,CLEANUP 2 ,OTHER 3 ,DATA 4 C 10 continue c
call amiga(WaitPort,ourslaveport) slavercv =
amiga(GetMsg,ourslaveport) call amiga(Delay,100) code =
long(slavercv+our_code)+1 goto (20,20,30,40,50),code C C do
nothing C 20 call amiga(ReplyMsg,slavercv) write(9,22) 22
format("took the first branch") goto 10 C C this is our cue
to finish and go away C 30 call amiga(ReplyMsg,slavercv)
write (9,32) 32 format("returning") return C C Print the
values in the common block C 40 continue msgtxt =
long(slavercv+our_text) do 41 j*0,63 buf (j+1) =byte
(msgtxt-*-j ) if(buf(j+1) = CHAR(0)) goto 42 41 continue 42
continue write(9,44)(buf(jj),jj=l,j) 44 format("message
received from Master" ,64al} write(9,45)xxx,yyy,zzz 45
format("xxx = yyy = zzz a ",fl2.9) C Read the data values
into the common block C do 52 j = 1,12 52 readin (j) =
word(slavercv + first data + 2 *(j-1)) write(9,55)xxx,yyy,zzz
55 format("entering values into common", ,"xxx =",f!2.9,
* ,"yyy fl2.9, ,"zzz “",fl2.9) call amiga(ReplyMsg,slavercv)
goto 10 c end subroutine CreatePort(pname,pri,mp,taskid)
implicit none include exec.inc include execextens.inc include
dosextens.inc integer*4 pri,mp,namloc,taskid character*32
pname,pname2 integer*! Nam 32) integer
sigbit,amiga,loc,sizport,j,ourport,namsiz integer ourname
Spellbound 28.95 Super Scramble 29.95 Sword of Sodan 35.95 Test
Drive II 29.95 The Three Stooges 35.95 Total Eclipse 29.95
Triad (3 Games in One) 29.95 TV Sports Football 34.95 Where in
World is Carmen 32.95 Who Framed Roger Rabbit 32.96 Who! What!
When'Where! 65.95 WordPerfect 159.95 AND HARDWARE TOO!
Epyx Joystick 14.95 ErgoSlick Joystick 19.95 Internal 3' ?’’ Floppy Drive 99.95 My-T-Mouse 39.95 California 3.5" drive 139,95 Supra 2400 Baud Modern 129.95 Spirit SC 501 Vi Meg Trapdoor Internal expansion with clock calendar for Amiga 500. 0K 63.95 plus shipping and handling Don't see it here? We’ve probably got it. Call us (O Your Amiga Source PO Box 575719 ’xJMV Murray, Utah 84157-5719 1 800 347 8004 common namblk pname2 equivalence (pname2,nam) pname2=pname sizport = 34 sigbit = amiga(AllocSignal,-1) FREE mouse pad with orders over S100.
Circle 110 on Reader Service card.
COMPUTEK continue There are fabulous savings on all these goodies call amiga(ReplyMsg,slavercv) goto 10 SAVE HARD CASH ON SOFTWARE... if(sigbit .eq. 0) then mp = 0 return endif ourport amiga (AlIocMem, sizport, MEMF_CLEAR .or.
* MEMF_?UBLIC) if(ourport .eq, 0) then call
amiga(FreeSignal,sigbit) mp = 0 return end! F ournane = amiga
(AlIocMem, 32,MEMF_CLEAR .or.
* MEMF_PUBLIC) if(ourname .eq. 0) then call
amiga(FreeSignalrsigbit) call amiga(FreeMem,ourname,32) mp = 0
return endif do 5 j - 0,31 5 byte (ourname j) * nam(j+l)
ln_Name = ourname ln_Pri = pri lnJType = NT_MSGPORT mp_Flags =
PA_SIGNAL mp_SigBit = sigbit mp_SigTask = taskid c c and add
the port c if(nan(1) .ne. char(Q)) then c c now move the
defined structure into the allocated memory c do 10 j =
0,sizpart-l 10 byte(ourport+j)=MsgPort(j+i) call
amiga(AddPort,ourport) else
long(mp_MsgList+LH_HEAD)°mp_MsgList+LH_TAIL long
(mp_MsgList+LH_TAILPRED) =mp_MsgList+LH_HEAD long
(mp_MsgLlst+LH_TAIL) =* 0 do 15 j = 0,sizport-l 15
byte(ourport+j)=MsgPort(j+1) endif mp = ourport return end c c
delete the port c subroutine DeletePort(port) integer port
integer amiga,loc include exec.inc integer
sizport,siznam,memfre,dum c c the node offsets c INTEGER
LN_SUCC parameter(LN SUCC = 0) integer LN_PRED
parameter(LN PRED = LN_SUCC+4) integer LN_TYPE
parameter(LN_TY?E = LN_PR£D+4) integer LN_PRI parameter(LN_PRI
* LN_TYPE+1) integer LN_NAME parameter(LN NAME = LN_PRI +1)
sizport = 34 siznam = 32 memfre - long(port + LN_NAME)
if(long(memfre) .eq. 0) then call amiga Remove,port) else call
amiga(RemPort,port} endif call Fremem(memfre, siznam) call
Fremem(port,sizport) return end STDOPN version 1.0 INCLUDE
"exec ¦‘ pes, i" INCLUDE "exec alerts.i" INCLUDE "exec nodes.i"
INCLUDE "exec lists.i" INCLUDE "exec porcs.i" INCLUDE
"exec libraries.1" INCLUDE "exec tas'xs.i" INCLUDE
"libraries dos.i" INCLUDE "libraries dosextens.i" INCLUDE
"workbench startuo.i" "exsc_iib" pointer "dos.library" pointer
file handle for STDIN file handle for STDOUT base of heap site
cf heap runninc from loc of WB message loc of our TC3 size of
Amiga global storage AEXEC EQU
H. SIZE-2 * workbench?
- from "cos.library"
- 30
- 36 EQU EQU _LVOOpen LVOClose STDOPEN: did we start from
Tst.w WBSTAT(AO) br.e.s contnu rts movem.l A0 A4 AS,-(A7) movea.l DOS(A0},AS save seme stuff get the DOS lib pointer get the old stdio file handle and close it move.1 STDIN AO},D1 jsr _lV0Close A6) movea.l (A7),A0 lea WINDO(PC),A3 move.l A 3,D1 move.I MODE_OLDFILE,D2 jsr _LVOOpen(A6) open cue new movem.l (A7)+,A0 move.l DO,STDIN(A0) sticx tne file handles where they are needed move.l DO,STDOUT(A0) move.l STDIN(A0),S9B0(A0) move.l STDOUT(A0},SAF6(A0)
- set the console task (so Openmode) will work) movea.1
OURTSK(A0),A4 lsl.l 2,dO move.l d0,a0 move.1
fh_Type(aO),pr_ConsoleTask(A4) movem.l A7)+,A4 A6 rts
4CONi0 0 640 100 FORTRAN CLI' 0 WINDO: ac.c
dc. b program tesrit include exec.inc include dos.inc integer44
amiga,ip call stdopn ip =
amiga(Open,"Con:10 100 320 100 testit",
* MQDS_NSWFILE) if ip .eq. 0) goto 99 call WritStr(ipr"Hello from
WorkBench Startup") WRITS(9 9) 9 Format(lx,"Hello from our
first new standard window") call amiga(Delay,100) call stdopn
write(9,19) 19 format(lx,"Hello again from our second new
* window") call amiga(Delay,100) call amiga(Close,ip) 99 continue
call wbend end subroutine WritStr(fiie,msg) include dos.inc
integer file,amiga character"l msg(29) msg(29)= z'0* call
amiga(Write,file,msg,29) call amiga(Write,file," n",1) return
end WBEND version 1.0 AEXEC EQU
- 16 * "exec__lib" pointer DOS EQU AEXEC-4 * "dos.library"
pointer STDIN EQU DOS-4 * file handle for STDIN STDOUT EQU
STDIN-4 * file handle for STDOUT
H. BASE EQU STDOUT-4 * base of heap
H. BASE-4 11 size of heap WBSTAT EQU
H. SIZE-2 ¦k running from workbench?
WBMSG EQU WBSTAT-4 * loc of WB message OURTSK EQU WBMSG-4 * loc of our TCB AMIGA EQU
- OURTSK * size of Amiga global storage Come see whats Hot for
the AMIGA at The Memory Location & The Memory Location 396
Washington Street Wellesley, MA 02181
(617) 237-6846 AMIGA Experts! Nothing but the best.
Satisfaction guaranteed.
Come in and try-out all the latest software, hardware, and accessories.
Your full service AMIGA dealer.
Store hours: Mon.-Thur. 10-6 Friday 10-8 Saturday 9-5.
Full Commodore authorized repair service onsite.
Low flat rate plus parts, Circle 107 on Reader Service card.
Jsr MOVEA.L D2,A1 jsr _LVOReplyMsg A6) res LVOForbid LVQFreeMem LVOReplyMsg LVOCloseLibrary LVQDebug xkkkkkkk kkkkkkkk t-Kickkk'kkA INCLUDE INCLUDE INCLUDE INCLUDE INCLUDE A0,-(A7) WBMSG(A01,32 * grab the WB message pointer D0S(AC),A6 * move ir. DOS lib pointer STDIN(A0),D1 * move in STDIO pointer skip * if no STDIO, skip LVOC!ose(A6) * close STDIO from "exec.library" EQU -132 EQU -210 EQU -37B EQU -414 EQU -114
* - from "cos.library" _LVOClose EQU -36 WEEND: tst.w KBSTAT(AO)
* did we start from workbench?
Bne.s contnu * no.
Rts contnu: MOVE.L MOVE.L MOVE.L MOVE.L beq, 5 jsr skip: MOVEA.L A6,A1 * prepare to close DOS lib MOVEA.L (A7)+,A0 MOVE.L AEXEC(A0),A6 * move in EXEC lib
* pointer jsr _LVOCloseLibrary(A6) * close DOS lib AEXEC EQU
- 16 * "exec_lib" pointer DOS EQU AEXEC-4 * "dos.library" pointer
STDIN EQU DOS-4 * file handle for STDIN STDOUT EQU STDIN-4 *
file handle for STDOUT
H. BASE EQU STDOUT-4 * base of heap
H. BASE-4 * size of heap WBSTAT EQU
H. SIZE-2 ¦* running from workbench?
WBMSG EQU WBSTAT-4 * loc of WB message OURTSK EQU WBMSG-4 * loc of our TCB AMIGA EQU
- OURTSK * size of Amiga global storage INCLUDE "exec types.i"
exec alerts.i" exec nodes.i" exec lists-i" exec ports.i"
exec libraries.1" INCLUDE "exec tasks.i" INCLUDE
"libraries dos.i" INCLUDE "libraries dosextens. I'1 INCLUDE
"workbench startup*!"
¦ from "depsys" W3Init.asra FORTRAN Compiler Startup Code Substantially based upon the ABSOFT CORPORATION FORTRAN 77 COMPILER k-A-k-k-tr’kir'k-k-ft F77.RL EQU 1740S • PCB EQU 3348 MO OP EQU S4S71 *
* - from "exec _lib" LVOAlert EQU
- 103 LVOForbid EQU
- 132 LVOAllocMem EQU
- 193 LVOFreeMem EQU
- 210 LVOFindTask EQU
- 294 LVOWait EQU 31B LVOGetMsg EQU
- 372 __LVOReplyMsg EQU
- 378 LVOWaitPort EQU
- 364 LVOCper.Library EQU
- 552 LVODebug EQU
- 114 EXEC.LIB EQU 4
* - from "dos.
Library" LVOOpen EQU
- 30 LVOCIose EQU
- 36 LVORead EQU
- 42 LVOWrite EQU
- 48 _LVOIr.put EQU
- 54 __LVOOutput EQU
- 60 LVOCurrentDii c EQU
- 126 LVOSxit EQU
- 144 LVODelay EQU
- 198 size of "f77.rl" hex of NO? Instruction ooir.ter to "exec
lib" NOP NOP NO?
NOP NOP NOP S3: the message is there a default window?
Yes no default, so open NIL: lea pr_MsgPcrt(A4),A0 move.w e LVOGetMsg,D6 3SK ECALL move.I dO, WbenchMsg move.l D 0, A 2 * Move.1 sm_ArgList (A2), DO beq. S docons the cur rent directory to the move.1 DO,AO move.1 wa Lock(AO), dl move.w 4 LVGCurrentDir, D6 BSR DCALL the toolwindow argument move.1 sm_ToolWindow(A2),dl bne.s opnwndo lea NIL (PC) , A3 move. 1 A3,D1 BSR FILOPEN bra.s filhandi get save it so we can return it get the first argument SI; S2: ADE.L F77.RL,DQ * MOVEQ 40 ,Oi * MOVE.W f LVOAllocMem,D6 MOVE.L D0,D4 DOSOPEN pr_Msg?ort(A4),AO _LVOWaitPort,D6 ECALL S3 (PC) BSR lea move.w BSR
WBStat CLR.L Wber.chMsg ¦JMP MO?
NOP S1(?C) MOVE.L D2,-(A7) MOVE.L AO, DosCmdBuf MOVE.L A4, -(A7) MOVE.L DO, DosCmdLen MOVEA. L A1,A2 SU3A.L Al, Al JMP NO?
32 (PC) MOVE.W 4 LVOFindTask BSR ECALL MOVE.L DO, A4 tst.l pr CLI(A4) bne from Cli
- time library specification copy command line pointer stow
original A4 safely away copy command line length copy for
global use find our own task the following code is already in
the source file; load address of entry point
* - open the "dos.library" and locate STDIN and STDOUT fromWB:
make the run time library happy our process base wait for
wbench message move.w 111,_WBStat MOVEM.L D2 A2,-(A7) move * L
1, DosCmdLen LINKED: domain: MOVEM.L (A7) + , D2 A2 MOVE.L
_startkoep, A2
* - allocate the heap segment and establish global addresses
from_Cii: MOVEA.L _DosCmd3uf,A3 MOVE.L _DosCmdLen,D5 MOVE.L
4AMIGA+PC3, DO * module Size MOVE.L *N0_0?,D7 * find out if run
time lib
* is linked CM? . W LINKED+4,D7 BNE 34
* if not. Need Sdace for it.
* - open up the file opnwndo: BSR FILOPEN
* - set the i o descriptors * filhandi: move,! DO,_stdin move.l
dO,_stdout beq.s domain ¦*
* - set the console task (so Open ("'",mcde) will work)
* waitmsg has left the task pointer in A4 for lsl.l 2,d0 move.!
DG,aO racjve.l fh_Type(aO),pr_ConsoleTask(A4) MEMF_FAST first,
* save allocated size
* did allocation succeed?
* no
* set pointer to base of heap
* save pointer for ”f77.rl" 34: The Disk Mechanic Give your disks
a luflC-Up "E77.rl" ¦k S5: MOVE.L _Std0Ut,STDOUT(AO) MOVE.L
‘restore original hi
- open the "dos.library" and locate STDIN and STDOUT Simple
Tuncl'p trnchiuiinl un1 Vtl.MVm., T. w!p IIMWI ItMfcUrk) I
V‘jn|i I’M l«J*
* Time* grven jrr ihc tverapf *r ihree lU(H w j •laixjjril
AJOllO inlcrrijl flijppj dnvc The Tuncl p unv i ihc ii.ix
rct|jirrJ loproccM ihc minute* and h-v.i«kUi IK- BKTORF. And
ATTUt time* * t I to HrW I in required lopci j of ihc link The
mure uh'jiI l lu hid ihc totlc-f the irapcdvcmc™' TST. W
_WBStat * running from workbench?
SNE.S BYPASS * yes..DOS already open BSR DOSOPEN * open DOS MOVE.L DO,DOS(AO) * save pointer, error?
BNE.S LI did open succeed?
RTS * no, fail silently MOVEQ _LVOInput,D6 BSR DCALL MOVE.L DO,STDIN(AO) MOVEQ LVOOutput,D6 BSR DCALL MOVE.L DO,STDOUT(AO) Demo disk Available; call for details.
Lake Forest logic Inc. 28101 € Bollard flood Lake Forest, IL 60045
H.EASE[AO] if not, allocate area allocate global area w
save base of heap ¦FREEMEM.
* save site of heap .FREEMEM.
* set pointer to "exec_lib"
* pick up stdin and stdout from WB load find out if run time lib
is linked The Disk Mechanic is a comprehensive collection of
utilities for Amiga DOS, including TtincUp. DoubleRack,
DiskRepair, and Workshop TundJp: Wiih TunclJp you can improve
hard disk or floppy disk performance by up In 4(30%, No! A
caching program, TuncUp is a sophisticated disk optimizer that
actually rr-organres ihe infnmxmnn on your disk to improve
system efficiency. TuneUp is fully companhle with Amiga DOS
DoubtcBack: DoublcBack it a high speed archival hard disk
back-up program. DoublcBack support* multiple source and
definition drives, file selection by name. Date, protection,
directory, and File note, Back up a full 20 megabytes in under
4(1 minutes.
Selectively copy files between hard disks and partitions Protect your data' Disk Repair: With DiskRepair it is possible to recover *ceidcntJy deleted or discarded files, salvage files from damaged disks, and reconstruct a corrupted hard disk DiskRepair works with hard and floppy disks, and is compatible with the Fast filing System.
WorkShop: For the expert usct. The disk Workshop is a full featured disk file and block editor. Examine and modify disk filet, search for viruses, and change menus or requesters in popular programs, The Disk Mechanic also includes a dnren small CLI based utilities to make managing your disks easier We are now shipping version 2.5 with full support for Amiga DOS 1 } and the Fast Filing System. The Disk Mechanic is run copy protected COMING SOON: Sniper!
The tllunate P .*int And Shoot Disk Manager t fncropainl A High Resolution Structured Graphics Package Circle 113 on Reader Service card.
BIPASS: library?
* BNE.S L2 * yes * Now find out if the run time library is linked
in. We SUBQ.L 3, Dl * test the loca tion that is 4 bytes past
the LINKED label.
BSR DCALL * If it contains a NOP then the linker has not linked in MOVE.L DO, D7 * found in system volume * the run time library. If the value is different, then * library?
* the linker has stepped on us, with the following code: BEQ. S
L3 * no * L2: MOVEA.L D3,A5 * set pointer to "f77.rl" * LEA
A5, D2 * "buffer" A JMP (A5) MOVE.L IF77.RL, D3 * "length" *
MOVEQ _LVORead,D6 A In this case we branch to LINKED and
execute the code BSR DCALL * load the library A we find there
Otherwise, we just fall through and find TST. L DO * e r ro r ?
A the run time library.
BMI . S L3 * yes * MOVE.L D7, Dl * "file" MOVE * L NO_OP,D7 MOVEQ _LVOClose,D6 CMP.W LINKED+4,D7 BSR DCALL * close the file beq FNDLIB MOVE,L (A7) +, D2 * run-time library MOVE.L (A7)+,D2 * specification BRA LINKED JMP (A5) * transfer control to * * "f77.rl" *
- locate and load "f77.rl" FNDLIB:
* _ "f77.rl" load failed: report error and quit LEA F77LIB+6(PC)
,A6 * MOVE.L D2, DO
* load run-time library * specifier L3: MOVE.L STDOUT(A0),Dl
* "file" LSL.L 4,DO
* calculate table offset LEA ERRMSG(PC) ,A6 ADDA.W DO, A6
* index specified library MOVE.L A6,D2
* "buffer" MOVE.L A6, Dl
* "name" MOVEQ 30,D3
* "length" move. 1 MODE OLDFILEr D2 MOVEQ _LVOWrite,D6 move.w
_LV00pen,D6 BSR. S DCALL BSR DCALL MOVE.L DOS(AO),-(A7) * save
pointer to MOVE.L DO, D7
* found in local library?
* "dos.library" BNE.S L2
H. 3ASE(AO),A1 * pointer to module to delete 3SR DCALL MOVE.L
H. SIZE(A0),DO * size of module to delete MOVE.L D0,D7
* found in current volume MOVE.W _LVOFreeMem,D6 f MOVING?
Please don’t forget to let us know.
If you are having a problem with your subscription or if you are planning to move, please write to: Amazing Computing Subscription Questions PiM Publications, Inc.
P. O. Box 869 Fall River, MA 02722 Please remember, we cannot
mail your magazine to you if we do not know where you are.
Please allow four to six weeks for processing.
L (A7)+,D2 rts DOSLIB: DC.B 'dos.library' DC .B 0 F77LXB: DC.B 'sys: 1 f77.rl'
DC. L 0 HDWLIB: DC.B 'sys:1 hdw.rl'
DC. L 0 M81LIB: DC.B 'sys:l m81.r1'
DC. E 0 ERRMSG: DC.B '?cannot load run-time library'
DC. B 10, 0 NIL: DC.B 'NIL:r DC,3 0 _WBStat: DC .W 0 _stdin:
DC. L 0 _stdout:
DC. L C errno:
DC. L 0 __WBenchMsg:
DC. L 0 _DosCmdBuf:
DC. L 0 _DosCmdLen:
DC. L 0 _D0SBase:
DC. L 0 WBStrt version 1,0 AEXEC EQU
- 16
* "exec_lib" pointer DOS EQU AEXEC-4
* "dos.library" pointer STDIN EQU DOS-*?
* file handle for STDIN STDOUT EQU STDIN-4
* file handle for STDCUT
* base of heap
H. 3ASE-4
* size of heap W3STAT EQU
* running from workbench WBMSG EQU WBSTAT-4
* loc of wb message OURTSK EQU WBMSG-4
* loc of our TCB AMIGA EQU
* size of Amiga global storage
* - from "dos .library" WBStrt: tst.
W WBSTAT(A0) did we start from workbench?
S contnu * r no.
Rts contnu: move .1 WBMSG(AO),DO rts FREMEM LVOFREEMEM EQU -210 MOVE.L 4(A7),A3
• MOVE IN EXEC LIB POINTER * move.1 dO,-(a7) * move.1 0, dO *
- 114(a 6 JSR _LVOFRE EMEM(A6)
• AC* DOSLIB(PC),A1 ' "dos.library" 0,D0 * any version will do
LVOOpenLibrary,D6 ECALL DO,_DOSBase * save pointer D2,-(A7)
MODE_OLDFILE,D2 f_LVOOpen,D6 DCALL The Fred Fish Public Domain
Software Library The Fred Fish disks are collected by Mr. Fred
Fish, a good and active friend of die Amiga.
FredFiih ffllkI32 Baiyll! Amiga pat of the former arcade game named Click. Ths version Exes seme minor bugs and js iaster than the previous versions. Ths is verson II t, an update to the version re'eased or.
Disk 22i. Binary onfv ‘shareware. Author: Oliver Wagner Dtwg Machine independent macro based C debugg-ng package. Provides lunction trace, selective printing o' internal stale information, and more. Ths is an update lo the version released on disk 102, and now includes a machine independent stack use accounting mechanism. Includes source. Author: Fred Fish: profiling support by Binayak Banerjee ReSourceOemo A demo version of ReSoures, an interactive disassembler kr die Amiga Ths is a complete verson exopt that toe‘save’ features have beer disabled. Ths is version
3. 06, an update lo version 0.36 tram &sk 192,
B. nary only. Author: Glen McDsannid Fred Fish Disk 233 Bnk A
general purpose program that calculates both text and binary
cyc&t redundancy codes (CRCs). Text mocte CRCs calculated by
brik are portable across systems lor files thal aro in the
usual text formal on each system. Binary mode CRCs are
portable lor files that are moved from system to system
without any change, Bnk can be used to verily and update an
embedded checksum header in files, ft runs under MS-DOS, UMX
system V, BSD UNIX.
VAX VMS, and Am gaDOS. This is version 2.0 and mdudes source. Author: Rahuf Dhesi CacheCa d An accessory to SetCPU for use with A262Q cards cr 68C30 systems. It modifies the MMU table set up ty SetCPU la selectively control caching for each erpanson card, it's also an example of how an accessory program can track down and modify the SetCPU MMU table without having to read all kinds of MMU registers and figure it out for yoursdl. Version
1. M, includes source. Autoor: Dave Haynie Crclists Complete CRC
check files for disks 001-23t using the brik program also on
this disk. These were made directly from my master Ssks. I
have switched lo bnk. Iron the crc program used lo mako the
lists on disks 133,146, and 173, because it has more features
and because source is available. Autha: Fred Fish EQMtflttUMia
KwwBackUp A harddsk backup program that writes data track by
track crta m-itiple Boppy (Ssks Uses the archive bit saves and
restores comments and protactiai Sags, and skips ever bad
spots during restore. Version 1.0, includes source in Moduia*
ll. Author: Fridtjof Siebert MuchMcre Another program Ike
’more', ’less', ‘pg etc. Ths one uses its own screen to show
the text using a slow scroll, ridudes built-in help, commands
to search for text, and commands to pmt the text. Works with
PAL or NTSC, in normal or overscan modes. Supports 4 color
text in bold, rtafi-c. Underlined, cr inverse fonts.
Version 13. Includes source in Modufa-H and assembly code. Author: Fridtjof Siebert NetWork Another program in the long tradition ol4 screen hacks' lor the Amiga. Worn spot the surprise by saying what n toes. Version 1.0, includes source in Modula-IL Author: Fndtpl Siebert Prtttt A program to prim IFF pictures on Epson com pasbfe 9-pin primers. Prints in many resolutions, wih many ways to convert color pics to black and wtite. Verson 1.0. includes source in Moduia-If. Author: Fridtjof Siebert WBPic Replaces Workbench's color 0 with an IFF hires non interlaced picture, in 2 or 4 colors. Version
1. 0, includes source in Modula-ll. Author: Fridtjof Siebert
Xhair Replaces the mouse pointer with a 6creenwido crosshair,
which is useful lor positioning things vertically or
hoi2ontaJy. Version 1.0, includes source in Modu!a-ll. Author:
Fridtjof Siebert asLEIiHPtfikZS CacKey A basic tour function,
mem ory resident, pop-up calculator which uses only about 24K
of memory and can automatically type the answer to any
calaiation into the program you were using when 1 was popped
up. Version 1.0, bnary only. Shareware. Autoo: Crajg Fisher Ct
An Amiga program to dsplay im ages trom a CT seanner, along
with several new interesting sample images of scans of reaf
people. The d splay software, though Ft has a primitive user
interface, is quite powerful, induing functions like
convolutions, averaging, lapfadans, unsharp masking, edgo
deletion, gradients, etc. This is version 2.2, an update to
the version on disk
137. Binary only. AcditionaJ imago disks available from author.
Author Jonathan Harman For PDS orders, please use form on
page Oil Amazing Computing V4.ll © 1989 109 Visa and
MasterCard is available on orders of S20.00 or more.
UrrorWars A new game featuring sourto. Tide muse, and two playermode, You fght your opponent va laser rays, but beware of the minors reflecting your shots. Bray orty. Author Oliver Wagner Fred Fish JisK 236 AmigaBencn Optimized Amiga assembly versons of the Dhrystone benchmark, includes 68000 and 68020 versions Author: A! Abufto Disk Handler A sample implementation ol a He system that reads and writes 1.2 formal diskettes, indudes source. Author: Software Distillery Heart3 D A program to find left ventricle outlines i n the output of an fmatron CT scarcer, and display wireframe animations of
the beating heart Includes several sample CI scan outputs. Bnary only. Author: Jonathan Harman 1$ Version 3.1 of tte papriar UNIX stylo rSrectory Lstsr. Ths is an update to verson 2.0 from disk ITS, and indudes some bug fixes, support tor nuitiple wildcard pathnames, cocker sorting, a best-fit output, new output width and height options, and some otoer new features. Indudes source. Auto a: Justin V. MeComnek.
Proc Example program ci how to create a fui-fledged DOS process without needing to cal LcadSeg first.
Based on an idea presented at BADGE. Indudes source. Author: Leo Schwab XprZmodem An Amiga shared library which provides Zmodem He transfer capaWity to any XPR- ccmpatible communications program. Version 1,0.
Indudes source. Author: Rck Huebner fast Bril Ciak 237 CUPrtrt An example of printng to the CLI from assembly code. Includes source (of course}, by: Jeff Gas Ctype Another text fie reader, but ths one is small, reasonably fast, and ridudes buSrectioraJ sadtng. Search, go to a given percentage, and prnting capabilities. Version l .0, indudes source in assemb'y. Author: Bil Nelson.
StripCR Ths little program just makes a ten file ready lor use witn Amiga DOS, with only LmeFeed characters (LF) to mark the end of a I no. If you feed H a fie with ONLY Carnage Return characters (CR), (from a Macintosh fa example) it will replace them with the LF character and. If the file requires no changes, ihen it does not get changed, indudes source in assembly, by; Bil Nelson PlusCR Companion program to StopCR, if reverses the procedure. PlusCR produces a fie ready fa use on systems which require both the CR and LF Characters to mark the end ol a tine (such as those running MS-DCS fa
example, indoles source in assembly. Author: &l Nelson StripLF Competes the set of SfnpCR and PlusCR. R wi change an LF orty fie into a CR only file. If used in combination with StnpCR and PlusCR. Ft completes a text file conversion system, indudes source in assembly. Author: Bill Nelson CLS Clear Screen Command made la the purposes ol being SMALL, and thus not wasteful ol memory when made memory resident, it consists ol 96 bytes ol memory on disk! Includes source in assembly. Author: 641 Nelson Dftct A s'mple display program fa experimental data, with the goals of supporting paging through
tots of data and provkf ng comfortable scaling and presentation. Version 1.0, source available from author. Author- A A Walma ABM Lib A shared library (iibnJtbrary} to reed write IFF ffes, derived Iron the EA IFF coOe, atorg with various enhancements, includes examples o I using the liyary from C code, assembly code, a BASIC, along wifi source tor examples and interface code. Author Jeff G'ati ParOut Stcws hew to alocata and communicate drecdy wfth the paralel port hardware fron an assembly language program. Includes source. Author: Jeff Gatt (originaJ C code by Phillip Lindsay) Speed A
performance benchmark useful la comparing Amiga processing speeds. Performs 10030 iterations of sane selected groups of 68000 instructions while using the DsteStampiime futeticn to record haw many ticks it takes to canplete. This timed duration is Swn compared agars; two known prestaed tir es, a* la a stock A2C00 Amiga and cne fa an A2620 enhanced A2COO. A relative com pari son is calculated ard displayed Version 1.0, includes source in assembly Umbrage. Author Juz San Fred Rsh Disk 7® CWDemo Demo version of a pop up utifty to contra! The cola register assignments of intuition custom screens.
Version 3.1, binary only. Author Kmbarsoft Dmouse A versatile screen I mouse Wanker, auto window activata, mouse acceterata, popcti, pop window 10 front, push window to back, etc. widget.
Includes DlineArt, a screen blanker replacement program fa use with Dmouse. This is Dmouse version 1.20, an update to versran t.tOondisk 16Sr169 Includes source. Aulnw: Matt Ditton Label Print A program that a lews you to easily prim labels fa you (tiskj. Ths is vaston 2.5, an update to version 1.9 from dsk 210. Shareware, binary only (source available from auna). Autoo". Andreas Krebs NGG Yet another virus check program, Checks the booitiocx on a'l inserted fioppy disks and reports nonstandard ones. Checks the jump tables of all resident libraries and devices and reports suspicious entries.
Version 1. InclixFes source in assembly. Author: LMNadquist Pyth A program to draw the Tree of Pythagoras.
Version 1.1, includes source. Author: Andreas Krebs Stertschag A tetris tike game (StevtscNag means ‘Falling Rods') submitted by the author. This is version
1. 8, an uodate to version 1.5 Iron disk 221.
Binary orJy.Autoa: Peter Handel Fred Fish Disk £59 FF 239 contorts Forth programs Iron the Jgoodes 1 disk, from Delta Research (the makers ol .Forth Professional 2.0). Allot the materia! Has been placed irto a subdirectory (JGcodies), Below is a fisting of subdirectories under Jgoodies and thee contents.
Brunjes Various loots submitted together by the author.
StnngPkg is string package fa both Forth sfyte and NUL laminated strings. Dates Time are handy tools fa getting and printing formatted dale and lime. Utils are utili&os used by the other fifes, CursaControl is an example of moving the text cursor, SpaceOrEKapeisa handy word for pausing or stopping prosram output Indudes source cede. Author: Roy Brunjes Evolution This program graphfoaiy samiiates toe evolution of a speaescl 'bugs', the insect fond. Eugs.
Represented by moving btobs. Eat bacteria represented by sngte pixels. They mutate, compete la food, reproduce and pass their mutations to toeircflspnng. Fascinating example ol graphics and software simuiatiat. Standalone image and source code. Autha: Russel Yost FFT Highly optimized Fast Fourier Trandom tools fa cSgitol signal processing. The FFT cai be used to compute the frequency spectrum ol a complex signal, ft is useful in a variety of different applications, Boating pomt and integer versions.
Mixture ol high level and assembly language code.
Includes source (requires Jforth). Author Jerry Kalairs Guru Handy'guru'number interpreter (well, handy after reboot anyway!). Tells you what ‘81000009" means, fa example. CLJ usage o y. Standabne image with readme file. Source code inducted.
Author Mike Haas H2J Converts C styte'!)' indude ties to Jfcrth style ’4 files. Useful when developing interlaces to new Amiga libraries Hre ARP, etc. Standalone image and source code. Autha: Prtfl Burk HAMmmmZ Graphics hack that displays moving lines in a HAM screen la a hypnotic effect. Uses sound tools Irom HMSl. If available, la a drene sound that caresponds to the graphics image.
Standalone image and source code. Author Fh3 Burk HeadClean This program, combined with a fibre clearing dsk. Can m used lo dean the heads cn your disk drives. Source code examples ol accessing the Trackdiskdevioe, and using gadgets are induded.
Stendakxxj image wch source code. Shareware.
Version 2.0. Auttxa: Phi Burk JustBeeps Simple example of using Audio and Timer devices- 3e ys a series ci beeps wrioje pitches are basec on a just intoned tuning system.
Standalone image with source code. Autar Phil Burk Mandelbrot A last Mandelbrot rendering program that uses some of the mathematical properties d the Mandelbrot set to greatly reduce the drawing time.
Demonstrates graphics programming, assembly language, menus and IFF fie LO. Standalone image with source code. Autha: Nick Didkovsky NeuralN'ei Example of Neural Net programming converted to Jforth. Demonstrates a programming technique that many say is the wa ve ol the future fa software. Ths is a simple demo that snows neural propagation. Standafone image with source code.
Author. Robert E, La Quey, ported by Jack Woehr Textra This easy to use tert editor allows multiple windows, 3nd provides a simple mouse driven interface. Those familiar with toe ‘Maarnosh styte’ «£los wif be comlortabie with Texira's Cut, Copy and Paste commands. Standaloie image.
Documentation induded. No source code.
Autha: Mko Haa Fred Fish Disk 240 CrassDOSA tryware" version ol a mountable MS-DOS fils system la the Amiga, This is a software product that allows you to read and write MS-DQS PC- DOS and Atari ST formatted disks (Versiot 2,0 a higher) drecdy from AmigaDOS. This tryware version is a "read ori y" version, which does not allow any wmes to the disk. A fjy functional version is available fa a very reason,able pries frarr, CONSULTRON. Vericxi 3.02, bnary only.
Author CONSULTRON, Lexard Poma Dis An AmigaDOS shareable liyary which implements a synbofc single-instmctem disassembler fa the MC68000 famiy and t program which uses the fibrary lo disassemble dump AmgaDQS object fifes, making lull use of symbolic and relocation information. Includes source code in Draco. Author Chris Gray D M Maps I FF ma ps to toe Dungeon Ma star gam a. Al 14 levels are included. Author Unknown Mem Lib A link library cf routines to aid in debugging memory problems. Works with Lattice C 50 and possibly with earfier versions, ifs features include trashing all aitocated
memory, trashing a’l freed memory, keeping track ol freed memory wito noiToaticn if it is written to, nctfscation of memory freed twee a not at al. Notification of ovemirrtng a underrunning allocated memory, generation of low memory conotons tor lestirg purposes, and dentifcstion ol vwlatfons of memory use by Rename and fine number of trie a locating routine. Includes source, Autha; John Toebes anc Dcog Walker RunBack Alows you to siai a new CLI program and run it in the background, then closes the new CU. This is version 6, sn update to toe version cn disk 152 (trie version on disk 214
appears to be on a different evolutionary path). This version compiles under Lattice with many optimizations enabled, and can be made resident Includes source. Author: Rob Peck. Daniel Barrett, Greg Searie, Doug Kef Xprtub External file transfer protocol Lbrary. Document and code example fa implementing external fie transfer protocols usng Amiga shared lixa-tes.
Ths is an update to toe verscn mduded with toe vft program on disk 226. Autha: Willy Ungeveld Fred Fish DisK.241 ASDG-md Extremely useful shareware recoverable ram disk. This AmigaDOS device driver implements a completely DOS compatible disk device in memory trial survives resets, guru's, and crashes. An absolute must la those with tols ol ram. This is an uodate to the version releasee on disk 53. It now works with up to Embol memcry. It was rewritten in assembly and is now faster and much smaller. Binary only.
Author. Perry Kivofowc, AS0G kto CB3S The WORD BBS system fa use in amateur rede. Cn raSy written fa I3M-PC compatibles, ft was ported to the Amiga by Pefe Hards. Ths is verson 6.1 cwto sour® code. Autoa; Hank Qredson, the CBBS group, Fete Hard* F«68010 A program which patches execuiafcfes lhat lail to run oi machines equipped with an M68010. So thal they no longer use the prohbrted pnvJedged instructions. Binary only. Autha: Grega Brandt Man A program similar lo the UNIX ‘man* program.
Displays information about a topic from manual pages. Does not ixLxfe any database of topics, you have lo supply your own. Version 12, includes source. Author GamyGtendcwn NoC&Ck A program whch siferces the clicking of empty drives on toe 82000 under AmigaDOS 1.3. It should also work at an A5Q0. This is version
3. 4, an update to toe version cn disk 231 Includes assembly
source code. Autoa: Norman I score Ties A basic tile game ike
Shanghai a GunShy. A board is covered with a set of 144 tiles,
3S diflerect sets of 4 identical ties, each wifi a picture on
ft. The object is lo remove all the Wes, 2 at a time, by
mafchrtg identical tiles. Versa
2. 1, includes source in Moduia II. Author: Todd Lewis Fred Fish
Disk 242 BoctBIocks Detailed documentation on what a bootWock
;s and how it works, a'ong wth seme sample boctbiocks and a
program to insrel a custom bootblock. Rtbudes source la the
sample Oxxblocks and toe install prcgrem Autoor: Jonatoan
Potter CfteckkMem Alfows you to check fa a specified amount cf
memory, with certain aru.txr.es. ftcn a batch fie.
II the recuiremenis are na: met a WARN retorncode is generated. Version 2, includes source, Autocr: Jonathan Potter CustReq A gtorified ASK command fa your startup- sequence, ft generates a requester with the specified t'Ja, text positive ard negative gadgets (either of which can be the default), and an optional timeout value. Version 2, includes source. Autha: Jonathan Potter FiloReq This is Jonathan's second version of a fife requester, and is much more powerful than the one induded on disk 204. Shareware, includes source. Author: Jeraihan Potter FiilView a ten viewer that uses gadgets at
sfte cxsr.om of the screen (thus can display text 30 columns wide), opens up to toe liii height of the workbench screen, has last scrolling, and can work with compressed files jlio compression program included). Shareware. Unary only, source avaiattetrom author. Author. Jonathan Potter vnagc-Ed An icon ecrtor mat aitows you so draw and etSi images up w 150 try DO. In up to 16 colors. Allows Ireetena draw.ng, empty or fiiiec rectangles, eltpses, and manges. Toes curves, arc polygons, ccp y, r p about x cry ax. S. svGtcAng and ccndenong, Rood fid ana car piemen, ten wxi selection and loading ol
font style, undo, magofed and nomai sued images, and two active braw-ng screens a: onco This c version 2.2. an update to version 1.3 ori Ask 251. Binary only, source avaiatte Irom autnor. Author. Jonathan Porter Jafi A shareware game (Jump And flun) using 3-D grapr.es. Your task is to col led the blue pills lying on the floors anc steps, not to fa] down or off the steps, ano toavod several monsters wandering about You can coiectvanous sorts of weapons to use against the monsters. Version 1.0, binary oniy, source avaJaWo from author. Author Andreas Ehrentfau; jPCiock A shon dock program that o
jusa packed wdh ieanres. This is version 1-2, an update to version on disk 204. Includes source, by: Jonathan Peter Pprefs Preferable Preferences is a program designed to replace Tie standard preferences, that is shorter, more efficient, and easier to use. Binary orty.
Author Jonathan Potter PaletteReq An easy way io set the palette of any screen from your program, includes source, by; JonatnanPoser Popinfo A small utility which *popsopen‘ to give you information about the status ol your devices and memory. Tbs is version 3.1. an update to verson
3. 0 on dsk 223. Induces source. Author; Jonathan Potter
ZeroVfrus A hjtfymtegraieowus checker and JoSer.widi ooctobck
save arc restore leatures. Finds bcr.
BocttSocx ano file baseo viruses. The a verson
1. 3. c»nary only. Author. Jonathan Potter Fred fish Disk243 Frag
It A cynamic memory thrasher fa inc Amiga. FragS randomly
atkxatos and deaitocaies psuedo- random sue values of memory,
ranging Irom 16 oytes to 50000 oytes by default. The result is
an allocation nightmare, thousands of memory fragments are
being created and destroyed continuously. This puts stress on
the memory
a. ©eaten routines of an application undergang testing by
simulating a very busy, highly fragmented memory environment.
This is version
2. 0, featuring many bug bes, a iui intuton interface,
configurator! Settings vra the con. And more, includes source.
Author. Justrt V. McCormick unageuaa A program wrtcn performs
image processmg on IFF pictures. Includes standard mage
processing functions such as tonvofufron. Averaging, smoothng,
enhancement, histograms, FFTs.etc. Also includes Reconversion
functons. A Cjipboaro. And otrwr useful funaions. Version 22,
binary only. Autnor: Gary Milton LPE LaTeX Picture Edita is a
graphical editor Ja proux-ng 'pictures' for the laToX system,
which may ooimportec by LaTeX. You can draw boxes.
Cashed boxes, tines, vectas, circles, ooxes with centered tost, and plain ten. This is version 1.0. binary only. Author. Joerg Geissler NoGtick A progratri which silences the clicking of empty drives on the B2000 under AmigaDOS 1.3. It should also work on ar, A5QG This is versiai 3.5, a last minute update to versiai 3 4 of. D.&k 241 Includes assembly source code. Author. Normar.
Feccve Password A program which enharces your computer's security by making it complicated enough that users wcout your password wii get discouraged 17103 to boot and use your system. This snotid keep out most casual or nontechnical users Vers or 121 p, tewy only. Author. Goor go Kerta Pcopy An intuition basea disk copier simiar to be reseed 'DiskCopy*. This is version 2.0, a highly upgraded rewrite of the version cn disk 151. A features high speed diskcopy with write-verify and data recovery from damaged tracks. A lot ol effort has gone into making this copier fnendly in its usage, as well m
its multitasking properties.
Binary only. Author. Dirk Rasg Sm.Ger. This prog-am. Wifi add a 2 a 4 cola pcurc 10 your WoaSench scraon. Tthepictaei5diigf92cd.it ml look much kke a genlock, hence the name SmGen (Simulated Genlock). Binary only.
Author: Gregg Tavares Super Lines A new toes demo with a raaJ&me control panel bat you car. Use to charge various aspects of toe action. Has 10 tuft in crtapaiertes, supper fa tongs ike color 'smudge', cctor cycling, coia ’bounce', mulpio resolutions, and can display either lines a boxes. This is versa) 1.0. btrwy only. Author; Chris BaJey WarpUtil Warp (version 1.11), UnWarp (version 1.0), and WarpSplit (version 1.1), Warp reads raw filesystems and archives them into a corr.pressod versiai in a normal fie UnWarp urns them back fito fJesystems. Wa.rpSpfi spEzs them up into smaller peces on a
track by track basis Binary only. Author; SDS Software frcfliiaiPiih244 S3Champ©n This is BootBloCkCnampionJIl. A very ncdy den j program that allows ycu to load, save, and anayze any booitJock This is verson 3.1. binary only. Author. Roger R&cNm Boot.r,tro This program creates a small vitro on the bootblock ol any disk, which will appear after you mse.1 the disk la booing. The h*3odine can be up la 44 characters. Tne scrolling text portion car.
Bo up 10 300 characters. This is version 12, an update to version 1.0 on disk 1B8. Birtary orvty.
Autha. Roger Fisdlir.
FMC An alternative to the NoFastWem program. Uses a cute Jitte switch gadget to tur. Last memory on a eft. Version :2. Incfudes source m assembly code. Author. Roger Rschtn SceC recker Sue checker uses a list cf poss e sues of a Re to check fa unexpected changes m the sse of those Res. Fa example, it can be used to spot a Irik virus v to pa m out changes in toe configuration ol your system. With the appropriate comments added to your sice list, you can check 10 soo what version ol the fibs you are using (1.2,
1. 3 1.4, ARP, etc), Version 1.0, binary onfy.
Autha. Roger Rschlm TextDispiay A text display program, Ike 'mae' or less', but about hall the size and handles all screen formats (pal'ntsc, imerlace non-inieiiace. Etc). This is version 1.52, an updalo to version 5.1 on disk
183. Bin&7 only. Autiw; Roger FischSn Xcotor A program designed
to change the colors of any screen. You can also add and
subtract bitplanes in toe screen, a convert toe screen to
slack and white (grayscale) Hancfles MAM and EH9 screens.
Version 5 2, incfudes source in assembly code. Aunor: Roger
Ftschin Fred Fish Bisk 245 ATOF A small utility that atows
you to use the fonts cf another cfisk wtthou! Using the CLL
Version 1.0, binary onfy. Autha: Roger Rschfin Boctlntro
This program creates a small intro on toe Where can you find
all the Fred Fish Collection, as well as the Amicus Disks
and The AC Disks, cross referenced and fully listed?
AC' CUUW. lMIGA AC's Guide lists the descriptions and contents of over 280 Freely Distributable Software disks as well as over 2200 Amiga products.
On Sale Now at an your local Amazing Dealer bootblodk of any disk, which rril appear after you insert toe disk fa booting. This is toe next generation’ Bootlntro, a mae colorful version than the one on disk 244. But the text must oe shorter.
The first lino can bo up to 24 chaiaclers, The second and third tines can tie up to 22 characters.
The scrd&ng text can be up to 98 characters. This is toext generation versiai 1.1*. Binary oriy.
Author. Roger Fischfin Fenster A program which can operate on windows owned by another program, to dose them, charge toar size, refresh gadgets, move toe window to toe background, etc. VERSION 10. Includes souce.
Autha Roger Fiscrtm Pa to Master A file request or wtto kits of featires Can be easily configured by the programmer to suit a vanety of applications. Includes source. Autha: JuStin McCormick Reversl Plays toe classical rever si game on an 8 x 8 square field. Version 12. Includes source in assembfy code. Autha: Marc Rscttin Vlt This is a binary update to the vlt progam on disk 226, and fixes a problem with external protocol support You sSU need the rest of the fles from risk226. Verson 4 065. Binary only. Autha V ily Langeveld EimfiajQigfcafl Dmake Release verson 1.0 of MatTs version ol toe
UNIX make utlity. Update » beta verson released a. dsk 179. Features multpie dependanties, widcard support, and more. BoaryoVy. Autha: Matt DfiSon LabefPrira A program that allows you to easily print labels la yourdsks. This is version 25b. An update to vgrsion 2.5 from disk 230- Shareware, binary only source available from autha). Author Andreas Krebs Ncomm A terminal program lath© Amiga based on count version 1.34. Has hot keys la most program funaions (including diaLng up to 10 phone lumbers;, PAL and NTSC support fa normal a interlaced screens, screen LO greater than 2400 baud, ANSL'VTtOO
terminal emicapa. With ful 8 cATARIext support. IBM graphics, optional transtation styles, sptil screen mode, fjl user control of cola patotie, Ail support lor ai Eacpean iar uages. Fufl senai pot con?d wrto baud rates up to 5 9200. Script language. Phonebook, keyboard macros, and moro. Vasa 1.8, binary only. Auiha OJ James. Oaraef Bloch, et. Af.
NoCack A program when slences toe cficking ol empty drives on toe B20O0 under AmigaDOS 12. It should also work 01 an A5Q0. This is version 3.6. an update to version to version 3.5 cn disk 243.
Includes assembly source code. Author: Norman lscove ScreenShare A library and support programs that enable app&caticns to open up windows on other applications' custom screens. Fa example, your afcor may wart & open a window on your terminal err.iiaJofs screen so you can compose a message while sSibanq abte to soo toe contents of toe terminal's screen. Both app&catiors must cooperate fa the screen sharmg to wok. Verson
1. 2. incfudes source la interface pcrtons, Autoa Wily Largeveld
Ty A text disp'ay program based on Amiga less’ version 1.0,
Has both keyboard and mouse control cl al functons, an
intuition interface, and uses the Amiga specific keys (such as
the Help key) correctly. Version 13, includes source. Autha:
Mark Nudolman, Bob Leivian. Tony Wills mm Disk 247
AnalogJoysick Software support la use of analog joysccks
a. tne Amiga, hdjdes a dr.ver, a header tie fa code toat calls
toe driver, and an example program that uses toe driver
Indudes soace. Autoa: Davte Kinzar AssemToots A ccflectxjn 0!
Hes which should be of great interest to Amiga assembly
language programmers. Tt» ca'iectcn ixiudes ;40 macro routines
which make assembly language programming a lot eas©r, Thero is
a'so a fibrary of routines containing buffered C-like file
handing functons (lepen, (close, (gets, (puts, etc) and a fie
name requester. Al routines are re-entrant.
Includes source la example programs using toe macros and library, and a 65c02 cross macro assembler, Autha; Jukka Marin RemoteLcgm A couple ol program s wi*ch n ake possible remote access to your Amiga. One program checks tne senat pod tor an meaning can, and starts a program when it is detected. The ctoer is a password protection program which allows starting various programs based upon login id, thus provktrq sane mrunaf security loc your computer.
Includes sorce. Autoa Dave KL-w XphJb External Re transfer protocol Iibrary. Document and ccds example fa implementing external file transfer protocols usrtg Amiga shared libraries.
This is version 20. An update ;o toe version on disk 240, with many extensions and enhancements. Includes sample XPR library and source. Author- Willy Langeveld EfCfl FiSft PiSk 243 AmiGantt A project definition and management tool designed to create a simple, interactive method ol ouSining the task required to complete a particular project, using the GANTT chart as toe Input Icrmat AmiGantt displays toe project in a multi-window mode vrith separate windows fa the GANTT chan, task information input, resource histogram display, and Pert chart display. Up to 500 tasks may be defined tor any
project, and a project m3y contain other projects as tasks. Version 3 0.0, shareware, bnaryorty Author: Donald Tcison CLFCoias A simple tote program to change toe colas of toe bader around a CU window. Tndudes source in assembly code. Ajtoa: Mchae! Sim Ffcpper A small, test OtoeUo program. Does not use any look-ahead methods. Binary only, Autha: Michael Sim Maze An example of a fully re-entrant maze generation program written in assembly language using Manx's assembler. Includes source. Author: Michael Sinz UelHancSer The Software Distillery's network fie system handier (NET:), using Matt
Dillon’s DNET10 mount one Amiga’s devices on another Amiga, it also serves as an exanpte file system written entirely in Lattice C, Version: .0, includes source. Author: Software Distaiay Regex An Am 5a shared library versiai of tos GNU regular expression package from the Free Software Fcundatcn A regute: eipro-sson is a ccrcse method of deserting a pattern of characters in a string. By use of special wildcards, almost any pattern can be desenbed. A regular expression panem can be used fa searching strings in such programs as ediicrs a ether string handling programs. Version 1,0. Includes
source, Author; Edwin HoogerbeelS. FSF, Jim Mackrax Fred Flsh.DisK 249 Automata Four cellular automata programs. AuiomaTron is a one dimensfaial coiMarautomation. Crod is a aulomaton based on a sum index role. Demon e a cyclic space automaton desenbed in the Aug 39 Soentific Amaican, and Life is ore of the cfdest and best known cf an ceiUar automata, indudes source. Aurtoor: Gary Teachom Steer Sties' computes and tkspteys images ol the Mandefbro! And Jjira sets. UnSke many Mandetoroi programs that generate pictures drectiy, Steer competes and stores an array of raw data which it may then
render into pictures in a number ol ways.
Version 1,0, binary only. Author Gary Teachoul TurMite A two dimensional turing machine simulata.
Imagine a small bug crawling around on your computer display moving one pixel at a time. At each step it uses its internal state number and the color of the pixel it s on as indexes into a set of tables to deeds what cola to change the pixe to.
What tfrecton to move, and wnat its new internal state srould be. Includes source. Autoa: Ga7 Teachout EffidSi!lPisfc2» Asmptex An nplementaticn of too Simplex algorithm tor solving !mear programs, tt uses toe standardised WPSX-lormatfatoput data Has This is verson
1. 5. an update lo version 1.2 crt disk 199. Changes include bug
fixes, the abiSty to run iron CU, it s own window la IO, and
sone new and improved commands. Includes source. Autha: Slelan
Forster Gravity-Well A celestial motion smut a tor toai
simulates the motion of up to twenty bodies in a Newtionan
universe. The view of toe simulation may bo scaled rotated in
three d mentions a repositioned.
Indudes source. Author Gary Teachout Paranoids An asylum escape game. Paranoids is a traditional board game payed by drawing catos, rating dice, and moving peces around toe board. Each payer has six p«es. For patients and two ooaas The cdjectcf the game is to get al cl your patients out 0 the asylum. This is version 1.0. binary only. Autha: Richard Anderaon and Gary Teachout RPSC A re-verse polish scientific cafculata. RPSC is 3 pogrammaWe R?N calculator in the Hewlett- Packard tradition. It supports operations with real numbers, complex numbers, matrices, and 3-D vectors, as wefl as staage
and recall ol labeled variables Data and programs may be saved, loaded, a written as ASCII lext, to AmigaDOS tiles.
This is version t ,1. Binary only. Autha: Gary Teachout To Be Continued...... In Concision To the besl cl our knowledge. Toe materials m this Stsrary are (reefy tfstritutaNe Tffrs means they were eitner pubfidy posted and pteced m toe pusSc domain by toer authas, a they have restrictions puttitoed in their fifes to which we have adhered if you become aware of any violation cl the authors’ wishes, please contact us by mai.
This list is compiled and pushed as a service to toe Gommodae Amiga communty fa inlormational purpose;- oily, its use is restricted 10 non-commercial groups only! Any dupi- cation tor commercial purposes is strictfy lorbdden As a pan ol AmaztngComputing,“. This 1st is inherently copyrighted. Any nfrngement on this proprieury copyright without expressed written permission 0! The putilsters wi! Incur ne fiil face of egai actions Any non-com mere al Amiga user group wishing to duplicate this list should contact PiM Publications, Inc.
P. O.Box 869 Fall River, MA 02722 PiM Publications Inc. is
extremely interested in helping any Amiga user groups m
non-commercial support la the Amiga.
For PDS orders, please use form on page CIII Visa and MasterCard is available on orders of S20.00 or more.
A Winning Hand with an Ace in the Whole!
Amazing on Disk Source Listings and Executables from the pages of Amazing Computing!
Only $ 6.00 per disk ($ 7.00 for Non-Subscribers) AC 5 V4.9 AC Disk 1: source and executable code: AC V3.8 & AC V3.9. Gels In MultiForth Parts I & U Leam how to use Gels in MultiForth. Author; John Bushakra FFP & IEEE; An Example of using FFP & IF.EF math routines in Modula-2. Author: Steve Faiwtszewski CAI: A complete Computer Aided Instruction program with editor written in AmigaBASIC. Author: Paul Caslonguay Tumblin’ TotS: A complete game written in Assembly language. Save the failing babies in this game. Author: Davd Ashley Vgad; A gadget editor that allows you to easily create gadgets.
The program then generates C code that you can use in your own programs. Author: Stephen Vermeulen McuuEd: A menu editor that allows you to easily create menus. The program then generates C code.that you can use in your own programs. Author David Pchrson Bsprcad: A powerful spread shect.program written In AmigaBASIC. Author Brian Cateiy AC Disk 2: source and executable code for AC V4.3 and AC V4.4. Fractals Part I: An introduction to the basics of fractals with examples in AmigaBASIC, True BASIC, and C. Author; Paul Castonguay Shared Libraries: C source and executable code that shows die use
of shared libraries. Author: John Baez MuhiSort: Sorting and intertask communication in Modula-2. Author: Steve Faiwiszewski Double PlayfieltL* Shows how to use dual playfields in AmigaBASIC. Author: Robert D'Asto ‘881 Math Part I: Programming the 68881 math coprocessor chip in C Author: Read Predmore Args; Passing arguments to an AmigaBASIC program from the CLI. Author: Brian Zupke AC Disk 5; source and executable code for AC V4.9. Memory Squares: Test your memory- with this AmigaBASIC game. Author: Mike Morrison High Octane Colors: Use dithering in AmigaBASIC to get the appearance of many
more colors. Author; llobert D’Asto Cell Animation: Using ceil animation in Modula-2. Author: Nicholas Cirasella Improving Graphics: Improve the way your program looks no matter what screen it opens on. In C. Authro: Richard Martin Gels in Multi-Forth-Part 3: The third and Final pan on using Gels in Forth. Author: John Bushakra C Notes 4.p: look at a simple utility program in C. Author: Steven Kemp lD_Cells: A program that simulates a one-dimensional cellular automata.
AuthonRussell Wallace Colourscopc A shareware program that shows different graphic designs. Author: Russell Wallace ShowELBM: A program that displays lo-res, hi-res, interlace and HAM IFF pictures. Author: Russell Wallace Labyrinth II: Roll playing text adventure game.
Author: Russell Wallace Most: Text Fie reader that will display one or more files. Tire program will automatically formal the text for you. Author: Russell Wallace Terminator; A virus protection program. Author: Russell Wallace Kemp Better String Gadgets: How to tap the power of string gadgets in C. Author: John Bushakra On Your Alert: Using the system’s alerts from AmigaBASIC. Author; John F. Wiederhirn Batch Files; Executing batch files from AmigaBASIC.
Author: Mark Aydellotte C Notes: The beginning of a utility program in C. Author: Steven Kemp AC Disk 3; source and executable code for AC V4.5 and AC V4.6 Digitized Sound: Using the Audio.device to play digitized sounds in Modula-2.
Author; Len A. White ‘881 Math Part II; Part II of programming the 68881 math coprocessor chip using a fractal sample. Author: Head Predmore At Your Request: Using the system-supplied requestors from AmigaBASIC. Author: John F. Weiderhim Insta Sound: Tapping the .Amiga's sound from AmigaBASIC using the Wave command. Author: Greg Stringfellow MIDI Out: A MIDI program that you can expand upon.
Written in C. Author: Bt. Seraphim Winslow Diskless Compiler: Setting up a compiler environment that doesn't need Hopples. Author: Chuck Raudonis AC Disk 4: source and executable code For AC V4.7 and AC V4.8. Fractals Part 13: Part II on fractals and graphics on the Amiga in AmigaBASIC and True BASIC. Author: Paul Caslonguay Analog Joysticks: The code for using analog joysticks on the Amiga. Written in C. Author: David Kinzer C Notes: A small program to search a file for a specific string in C. Author; Steven AC Disk 6: source and executable code for AC V4.10 & AC V4.ll Typing Tutor: A
program written in AmigaBASIC that will help you improvr your typing. Author: Mike Morrison Glut's Gadgets: Using gadgets in Assembly language. Author: Geff Glatt Function Evaluator: A program that accepts mathamaticai functions and evaluates them. Written in C. Author: Randy Finch Fractals: Part HI: AmigaBASIC code that shows you how to save load pictures to disk. Author: Paul Castonguay More Requestors: Using system calls in AmigaBASIC to build requestors. Author: John Wiederhirn Multi-Forth: Implementing the ARP library from Forth.
Author; Lonnie A. Watson Search Utility: A Fie search utility' written in C. Author; Steven Kemp Fast Pics; Re-writing the pixel drawing routine In assembly language for speed: AuihcrnScott Steinman 64 Colors: Using extra-half-brite mode in AmigaBASIC. Author: Bryan Catley Fast Fractals: A fast fractal program written in C with assembly language subroutines. Author: Hugo M.H.Lyppens .Multitasking in Fortran: All the hard work is done here so you can multitask in Fortran. Author: Jim Locker f MIGA AC cmm AMiGA Two Great New Ways to SAVE on the Original Amiga Monthly Resource Complete Today,
or Telephone 1-800-345-3360 Name_ Address.
City_ : ... j ."n.V: VISA State _Zip_ Charge my Dvisa QMC _ Expiration Date _ Signature All Charges are subject to a $ 20.00 minimum (charges under $ 20.00 will receive a $ 2.00 service charge).
Please cirde if this is a New Subscription or a Renewal PROPER ADDRESS REQUIRED. In order to expedite and Guarantee your order, ail large Public Domain Software orders, as well as most Back Issue orders, are shipped by United Parcel Service. UPS requires thal all packages be addressed to a street address for correct delivery.
One Year Of Amazing!
Our regular renewal now includes 12 monthly issues of Q Amazing Computing plus the Spring edition of AC’ GI Jdfy&WCT ?
$ 28.00 U.S $ 44.00 Foreign Surface $ 36.00 Canada and Mexico Our New SuperSub!
12 monthly issues of Amazing Computing PLUS AC' Cl HDFFLwc A PI 3 Product Guides! Spring, Fall, and Winter! A savings of .$ 32.25 off the newsstand price. The Product Guides alone retail for $ 6.95 each $ 36.00 U.S $ 52.00 Foreign Surface $ 44.00 Canada and Mexico (Domestic and Foreign air mail rates available on request) Please circle am' additional choices below: Back Issues: $ 5.00 each US, S6.00 each Canada and Mexico, $ 7.00 each Fore ign Surface.
V0I2.1 Vo!2.2 V011.1 V011.2 VoH.3 Voll.4 Vol1.5 V0II.6 Vol1.7 Voii.a Von .9 Voi2.3 V012.4 Vol2.5 VOI2.6 Vol2.7 Vol2.8 VOI2.9 V012.10 voi2.11 Vol2.12 Vol3.1 V013.2 Vo!3.3 Vol3.4 VoiS.5 Vol3.6 Vol3.7 Vol3.8 V013.9 Vo!3.10 Vol3.11 Vol3.12 V014.1 Vo!4.2 V0W.3 Vol4.4 Vol4.5 Vol4.6 Vol4.7 voi4.8 Vo!4.9 VoM.10 Subscription: $ _ Back Issues: $ Public Domain Software: $ 6.00 each for subscribers (yes, even the new ones!)
$ 7.00 each for non subscribers (three disk minimum on all foreign orders) Please circle your Public Domain Software choices below: Amazing oil Disk: A t.. Source S Listings V3.8& V3.9 A 2.. .Source & Listings V4.4 A 3.. .Source & Listings V4.5 & V4.6 A 4.. .Source & Listings V4.7 & V4.8 A(t5.. .Source & Listings V4.9 A£6.. .Source & Listings V4.10 & V4.11 IllNOCKulation Disk: 1N 1...Virus protection 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 23 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
47 48 49 50 51 52 53 54 55 56 NA 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 NA 81 82 83 84 85 86 87 NA 89 90 91 92 93 94 95 96 97 93 99 100 101 102 103 104 105 105 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 155 157 158 159 160 151 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 1B0 181 182 183 184 185 186 187 188 IBS 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 (NA Denotes d sks removed from the collection) Fred Fish Disks PDS Disks: $ _ Total: Please complete this form and mail with check, money order or credit card information to: PiM Publications, Inc.
P. O. Box 869 Fall River, MA 02722-0869 Please allow 4 to 6 weeks
for delivery Finally. An on-line service that doesn’t nickel
and dime you It’s BIX’s flat-lee service.
Support conference.
? Microbytes Daily up-to-the- minute industry news and new product information.
_ Plus access to extensive software libraries, and the use of our electronic mail service which allows binary attachments.
Subscribe to BIX right now using your computer and modem Set your telecommunications program for full duplex, 8 bits, no parity, 1 stop bit, or 7 bits, even parity, 1 stop bit. Now dial BIX at 617-861-9767, hit the return key, and respond as follows: hour, in the continental US. * * For more information, and your local Tymnet access number, call 800- 227-2983 (in NH and outside the US: 603-924-7681).
'Based on a SI56 annual fee, billed quarterly. You may cancel at any time, if you prefer, you may subscribe fora 5-month trial at just S59- ' *Ato extra charge for 2400-baud access.
Tymnet prices are subject to change.
International networks access BIX at NU1310690157800.
BIX is short for BYTE Information Exchange. The on-line information service that's yours for an unheard-of flat fee of just S39 for three months* an amount you could easily waste in just two to four hours with an hourly rate, on-line service. (Not to mention the fact that you'd be nickel-and- dimed for its monthly minimums.)
And BIX is strictly for pros; it contains no “fluff." As a subscriber, here's what you’ve got coming to you: ? Amiga Exchange join the thousands of Amiga developers and enthusiasts in conferences covering software development, using Amiga's libraries, hardware development, artistry tools, and Commodore’s developer Prompt: login (enter“bix”): Name?
One Phoenix Mill Lane Peterborough, NH 03458 800-227-2983. In NH 603-924-7681 You can charge your BIX subscription to major credit cards, or have it billed to your company.
You may also buy unlimited off- peak access via Tymnet for just $ 20 per month, or S3 per off-peak Unmatched.
Flexible Text Rendering - Allows for anti-aliased fonts, Rainbow Fonts a Transparent Fonts and more.
Colorize - Play Ted Turner and add color to black-and-white images or change colors on already colored images.
Texture Mapping with Anti-Aliasing - Gives you super-fast warping and stretching of any image.
User-Controllable Transparency - Allows real time control of the amount of transparency and the location of the light source.
Variable Dither - Computed internally at 30 bits per pixel (over one billion colors). Giv you over 100,000 appi ent colors on screen.
Transfer 24 - Digi-Paint 3 comes with Transfer 24 image processing software to give you support of all Amiga resolution modes and the same advanced image processing found with NewTek's best-selling Digi-View Gold Video Digitizer.
100% Assembly Language - Makes Digi- Paint 3 the fastest HAM paint program ever!
Super BitMaps with Auto-Scrolling - Realtime scrolling on up to 1024 pixels high or wide image with full overscan display.
A*. The Ultimate Paint Program: DIGl'RAINTd NewTek For more information call NewTek at 800-843-8934 or 913-354-1146 Digi-Paint 3, Digi-View Gold and Transfer 24 are trademarks of NewTek Inc, INCORPORATED Circle 102 on Reader Service card.
1 Since the early 80's, companies have invested millions of dollars in (mostly) MS- 2 think we're taking the wrong attitude about our 2000’s and 2500’s. We know we have professional machines so why are we always so defensive? The position ot the Amiga community should be one of simple pity for owners of the other computers.
Let's keep producing superior applications and calmly use them with a smug expression on our collective faces. The “others" will eventually get curious and take a good look.
Sincerely, Intkhab Ali Desbarats, Ontario, Canada 3 Shop locally if possible, especially if you are dealing with new technology.
Unfortunately, there aren't any Amiga dealers widlin 200 miles of me, so I couldn’t follow this rule. One of tlie most frustrating things about the ordeal was that evervtime something went wrong it took two weeks to ship the part to California and back. A local dealer might have been able to exchange parts on the spot; they also might Project Neptune Epyx 600 Galveston Drive Redwood City, CA 94063
(415) 368-3200 Price: S34.95 Inquiry 228 Gauntlet II Mindscape
3444 Dundee Road Northbrook, II60C62
(408) 985-1700 Price: S Inquiry 229 Deja Vu I!
Icom Simulations 648 S. Wheeling Road Wheeling, i L 50090 Price: $ 49.95 Inquiry 230 Prison Action ware 38 W 255 Deerpafh Road Batavia, 160510 Price: $ 39.95 Inquiry 231 Universe 3 Omnitrend Software
P. O. Box 733 West Simsbury. CT 06092 Price: $ 49.95 Inquiry 232
4 reply to the workbench msc

Click image to download PDF

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

Thanks for you help to extend Amigaland.com !



Information cookies

Les cookies sont des petits fichiers qui sont stockés sur le disque dur de l'utilisateur par votre explorateur lorsque vous vous connectez à un site internet. Les cookies peuvent être utilisés pour stocker des informations relavtives à votre navigation et ne sont pas supposés persister.

Il y a plusieurs types de cookies:

  • Cookies système qui facilitent la navigation de l'utilisateur, ainsi que l'utilisation de diverses options ou services proposés par internet tels que l'identification de la session, l'autorisation d'accès à certaines zones réservées, l'optimisation des commandes, le remplissage des formulaires, l'enregistrement, la sécurité ainsi que l'utilisation de certaines fonctions (videos, rés;seaux sociaux, etc..).
  • Cookies de service qui permettent à l'utilisateur d'accéder aux service en fonction de ses préférences(langue, explorateur, configuration, etc..).
  • Cookies d'analyse qui permettent l'analyse anonyme du comportement de l'utilisateur du site et de mesurer son activité afin de développer un profil de navigation amélioré sur le site.

Ainsi, lorsque vous accédez à notre site, conformément au Réglement Général sur la Protection des Données no 2016/679 du 27 avril 2016 (RGPD), entré en viguer le 25 mai 2018, nous devons vous demander l'autorisation d'utiliser ces cookies, afin d'améliorer notre offre de services. Nous utilisons Google Analytics afin de collecter des informations de statistiques anonymes telles que le nombre de visiteurs de notre site. Les cookies ajoutés par Google Analytics respectent la politique de confidentialités de Google Analytics. Si vous le souhaitez, vous pouvez désactiver les cookies de Google Analytics.

Cependant, veuillez noter que vous pouvez activer ou non les cookies en suivant les instructions données par votre explorateur internet.


Visite depuis
Visite depuis