íEíCfÃçü       Initializing Media      ti9010ANN1   ‚Uªÿ BOOT       DIRECTORY  ØDISTRIBUTEH‘READMEHEFTÝAALOHÿÿÿÿÿ	JEFF_SYLVAH
4niadbackA° niadnewsA°gniadmacA°èniadumatA°"ÑniadribbA°&)niadcgpA°,€TOMBH LEFT3šGYRUSSHEFT5\BONDH LEFT8/MTKINGHEFT<ŸQUESTHLEFTAREADMETWOAG6memorymapHÐKGulf Coast AUG             i. Jim Marshall (MMSG)             ii. Don Sobczak (Practical Programs)             iii. Jack Reedy (Reedy Software)2.  Don Bueltmann :             A. PSAN                            i.  NIAD                                  ii. Bart Lynch  (BBS)                            iii.David Carmichael PLINK              B. Inland Empire AUG3.  Jim Duffy      i. Ricki Gerlack  (BBS)     ii. AWAUG (Jack MacKenn-Editor)          a. AWAUG Sysop-Jeff Jodoin            b. Bob Bsnd02ALEFTÐøWsnd03ALEFTÐ‚ìWsnd04ALEFTÐƒðWSORTERApB·Ð„ÖWJingleBellAÐŠ³WSilentNiteAÐXWSmartTUNESAÐ›WSOL_SWIFTH‘.ANN_ADDRESH“íBLOCKS LEFT˜xOAdamZap)             i. Rob. Friedman   CIS     b. Rich Lefko             i-iv. Rich Salvati, Bob Phillips, Bryan Hayden,                   Bruce Morrison..    c. Gul^ADISTRIBUTION:       [ 8/14/90]  ^Rl. Pat Herrington  (MOAUG)     a. Eric Danz  (AdamZap)             i. Rob. Friedman   CIS     b. Rich Lefko             i-iv. Rich Salvati, Bob Phillips, Bryan Hayden,                   Bruce Morrison..    c. mWFLASH_DocHÐi³WJoy-LFEFTÐoJoy-RTEFTÐpMerry-LFTÐqMerry-RTTÐrManger-LFÐsManger-RTÐtHolly#1ÐuHolly#2ÐvHolly#3ÐwWreathÐxSanta#1)ÐyBell LEFTÐzSnowflk#1Ð{Snowflk#2Ð|Cane#1FÐ}Present#1Ð~XmasTree#2Ðsnd01ALEFTÐ€2Wlair     iii. Sol Swift      4.  Dean Rhodes  (463 AUG).    A. ADAM-LINK BBS              i. MTAG (Toronto  Ont. Canada)                    a. VISA (B.C. Canada)                            b. Hamilton  (LAUGH) Can. AUG              ii. AUFG (Orleans ONT. Canada)                    a. Calgary Can. AUG.                   b. Edmonton Can. AUG     B. Tony Patterson          i. Herman Mason                   a.  A.I.M.                    b. Paul Pappas                   c. BBS (George K.)     C of      A.N.N. Presently the following REQUIREMENTS are in effect for using & being a    part of this system:           l. YOU MUST GIVE PROPER CREDIT TO THE GROUP, ORGANIZATION AND THE         INDIVIDUAL AUTHOR of any material taken from here.  Failure to do so may  result in your being excluded from this system.2. To help cut down my time & expenses in producing these monthly         mailings each person on the mailing list is REQUIRED to make copies and   distribute to at least one other person orBob Seat5. Mike Keith  (STLAUG )6. Al Fitzgerald  (BBS)7. Albany AUG  (PAID--Herman Cherney)8. East Bay AUG (PAID--Tom Ozretich)^B  ^Q  a. VISA (B.C. Canada)                            b. Hamilton  (LAUGH) Can. AUG              ii. AUFG (Orleans ONT. Canada)                    a. Calgary Can. AUG.                   b. Edmonton Can. AUG     B. Tony Patterson          i. Herman Mason                   a.  A.I.M.                    b. Paul Pappas                   c. BBS (George K.)     Carge files on your BBS for downing loading  etc.5. YOU ARE REQUESTED TO SHARE THIS INFORMATION WITH your newsletter       editor, your BBS sysop, your members & officers.                    6. WHILE it is felt that information included is correct and accurate, I  take no responsibility for its accuracy, correctness, content,            suggestions,etc. and you should use the same at your own risk.        7. IF you do not wish to continue ïn the mailing list, please inform me   so you name can be removxOrmation for the newsletters, BBSs,etc., to help unite Adamites in matters of common interest and to    assist the rapid widespread flow of information  are the purposes ofADAM NEWS NETWORK......A.N.N.[1/25/90]To help provide a pool or source of Adam information for the newsletters, BBSs,etc., to help unite Adamites in matters of common interest and to    assist the rapid widespread flow of information  are the purposes.  Walters Software               i. Adams Alive (Ed Jenkins)              ii. Carol Tapia                    a. Adam Connection (BBS)                                            i. Mark Gordon                    b. Steve Dawes  (BBS)                              i.Omaha AUG (Norman Castro)                                     aa. Emerald Coast AUG                                    bb. David Tidman                                             i. SM Video                                          ii.  group (WHICH I WILL ASSIGN TO  YOU) or upto THREE copies & remailings.  3. IF you would prefer to pay a cash fee rather than do a remailing, the  charge if $ 35.00 per year.  THIS IS THE SAME CHARGE AS TO INDIVIDUAL     ADAMITES on a subscription basis.  4. BBS SYSOPS ARE ASKED TO UPLOAD TO THEIR AND OTHER ADAM BBSs ANY        INFORMATION WHICH APPEARS TO BE OF INTEREST OR IMPORTANCE.  This can take the place of your doing a remailing.    YOU are invited to upload the     entire mailing as one or two l.  Walters Software               i. Adams Alive (Ed Jenkins)              ii. Carol Tapia                    a. Adam Connection (BBS)                                            i. Mark Gordon                    b. Steve Dawes  (BBS)                              i.Omaha AUG (Norman Castro)                                     aa. Emerald Coast AUG                                    bb. David Tidman                                             i. SM Video                                          ii. ed and someone else be added in your place.  8. IT IS NOW A REQUIREMENT  THAT YOU SUBMIT ITEMS TO ME (Minimum of l     item per 2 months) OR YOU USE A.N.N. ITEMS in your newsletter, on         BBS,etc. (Minimum of l item per 2 months) to continue to receive A.N.N. 9.  Disks, collections of articles, items, etc. are CONSIDERED AS         COPYRIGHTED.      distribution.  THIS IS THE ONLY AUTHORIZED DISTRIBUTION.I hope this will serve to encourage other Adamites to write for several   different newsletto    prepare these "Home-Made" game Docs.       Have Fun!!                                                   s 3-5:Red section of bridge opens and closes. Prince    must leap gap.Levels 6-8: Prince must dodge the Archer's arrows.Level 9: Beware arrows and the open bridge.INSIDE THE CASTLEIn the storeroom, the prince is safe inside doorway at right side only. When certain of his course, he must collect every treasure, dodging the dragons fireballs.When all treasures are collected, escape thru doorååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååo the factthat there aren't any local computer stores in the localewhere you can stop by to have a corrupted disk or ddprecopied or replaced. In order to get a program fixed, youwill more than likely have to mail it off to your favoriteADAM Users Group if you aren't fortunate enough to have otherADAM owners in the area who have the program! Since many ADAMowners are located hundreds of miles from such ADAMorganizations, time will play a major factor in the programgetting to the AUG, fixed and then x	Easures, the king cannot raise an army to defeat  the scaly, fire-breathing invaders. His kingdom is ruled by  lizards. Yet the young prince knows the castle's many        THE FOLLOWING "HOME-MADE" GAME DOCS ARE THE WORK OF JEFF     SYLVA OF PSAN and came to A.N.N. through the kind assistance of Bart Lynch (ZONKER) of UPNADAM BBS  24 hrs.,              206-859-2018.We appreciate the time and effort JEFF SYLVA has taken ters.  Most of the newsletters do not have a large       overlap of coverage or subscribers and therefore no newsletter is really  hurt by the items appearing in several newsletters.Your suggestions are always welcome.  I encourage you all to support the  ADAM BBS NET pioneered by BJ, Larry Overman(So.Cal) and Bob Blair         A(AWAUG-Wash.DC) which is exchanging messages & information from the      various BBSs on a weekly basis.Best regards,Barry A. Wilson      nform me   so you name can be removTHE ALL IMPORTANT BACKUP!by Jim NotiniHow many times have you read in this newsletter and the manyother fine ADAM publications about the importance of making abackup copy of all your important data files and programs? Ahundred times? A thousand time? More? Probably more than youwould want to read, but this topic will always arise innewsletters because it is one of the most important aspectsof owning a personal computer. This is magnified hundreds oftimes over in the case of the ADAM Computer due tååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååmailed back. Time thatsome people just cannot afford to waste due to deadlines forwork, school or personal reasons.We have all, at one time or another, experienced the loss ofan important program or data, but fortunately for myself, Ihave access to all the commercial or public domain programsin the case I do. What will happen more times than not is theloss of information on a data pack. Although more reliablethan the cassette players used by systems older than theADAM, the data pack is still a nond too two differentsized drives!The next step that most be taken is to insure that you haveavailable an ADAM formatted disk or data pack. If not, manyof the aforementioned programs allow for the formatting ofdisks from within the program, but data packs cannot beformatted, you will need to buy them or create your own withthe MegaCOPY III device by TRISYD VIDEO ($49.95). Once yourset with a blank media (disk or data pack) you may go aboutthree different ways to create a functioning copy.STEP 1: Uogramor data files so as to prevent headaches down the road? Thefirst step would be to purchase a copy program such as BACKUP3.0, BACKUP+ 3.0, KOPYKAT, QUICKOPY V5.0, FILE MANAGER V2.0,SmartDSK III & UTILITIES or UNCLE ERNIE'S TOOLKIT. There aremany other commercial and public domain programs which willallow for the user to create a copy of a disk or data pack toanother disk or data pack. I would recommend the purchase ofeither FILE MANAGER V2.0 or SmartDSK III & UTILITIES sinceboth these programs on which allows the user tospecify a range of blocks to copy from the source and alsodesignate the starting block which the data will start to bewritten at on the destination. This option is a real timesaver if you know that the source, for instance, onlycontains 50 used blocks. Therefore, you can specify to copyonly the 50 blocks from the source to the destination insteadof using the BACKUP MEDIA option which will copy all of thesource blocks to the destination.STEP 3: Use a FILE COPY option (worgram since SmartDSK III allows the user to setup a ramdiskto which the user can copy a program or files too and thenmake as many copies to a disk or data pack from the ramdiskas you desire (saves wear and tear on physical drives andreading from the ramdisk is many times faster than readingfrom a disk or data pack). SmartDSK III's copy program isalso the only one available today that will adjust the numberof blocks remaining on the destination disk or data pack inthe case that you are copying from an-reliable way to read andwrite information on the ADAM. Many people have experiencedall types of problems using these drives while others haveused their ADAM for five or six years without the loss of onedata pack or even the need to replace the original digitaldata drive! Hard to believe, but there are those ADAM ownersout there that have never had to replace a data drive, whileothers like myself seem to be buying new ones every couplemonths.How exactly do you go about making a backup copy of a prse the standard BACKUP MEDIA (or IMAGE BACKUP)option to create an exact copy of the source media. Thisoption is sufficient for most purposes and is the easiestmethod since all you have to do is specify the source anddestination drives. But remember that if you are copyingbetween different sized drives to insure that the source doesnot contain more used blocks of data than the destination canhold or else your copy will not contain the entire contentsof the source media.STEP 2: Use a BLOCK COPY optisupport any size memory expander as wellas any size disk drive which you may own and also includemany other utilities such as file copiers, block editors,block copiers, format and init routines, editors, etc. Mypersonal choice for the best utility program would be FILEMANAGER V2.0 by AJM SOFTWARE ($17.95) due to how easy it isto use and the vast amount of functions it can perform.SmartDSK III by WALTERS SOFTWARE CO. ($24.95) would be mysecond choice for when I have to make multiple copies of oneproks only on EOS formatmedia) to specify certain files to copy from the source tothe destination. This is the option I use most since itallows you to copy only the files off of the source which youwant on the destination and since I do not trust any PURGE orCRUNCH utility for any computer to remove deleted files, thisis the only choice left available. When using FILE COPIERS,also remember that if the source is an auto-booting programthat you will also need a BLOCK COPIER in order to copy block0 from e to the destination. BACKUP 3.0 andBACKUP+ 3.0 by MMSG are the only programs I know of thatoffer an option specifically for making backups of RightDirectory Data Packs.If you have any questions which need to be answered, pleasegive me a call or write and I will do my best to answer yourquestions. Most of all, remember that copy programs weredeveloped to allow the user to create backup copies of theirprograms, not to be used for making copies of programs totrade with others or to sell. Don't be a  the existence ofRight Directory Data Packs. These data packs were used byColeco for their supergame packs (Zaxxon, Jeopardy, Troll'sTale, etc.) and when copying a supergame to a data pack, youwill need to copy it to a Right Directory Data Pack. If youcopy the supergame, whether it be on disk or data pack, to aCenter Directory Data Pack, the backup will not operate.Also, the safest way to copy a Right Directory Data Pack isby using a BLOCK COPIER and copying all blocks (0 through255) from the sourcly so many systems and extra componentswere made, so stock up now before it's too late!FEDERATION SOFTWARE, founded by Joe Waters, is about torelease their first commercial product, VISI-SPRITE V6.5.This is a full fledged sprite development utility similat toSpritePower and SpriteMaster, but with the inclusion of somepowerful media utilities. A crippleware version, VISI-SPRITEV6.0, has been made available in the public domain for ADAMowners to get an advance look.STEVE PITMAN SOFTWARE is in the dPIRATE, BOOTLEGGERor whatever else you may call it since it will only lead tothe loss of programmers who develop software for our system.There aren't very many talented programmers left for the ADAMand more seem to be moving away from the ADAM each month dueto this piracy problem!be on disk or data pack, to aCenter Directory Data Pack, the backup will not operate.Also, the safest way to copy a Right Directory Data Pack isby using a BLOCK COPIER and copying all blocks (0 through255) from the sourcthe source to the destination block 0 or else yourdestination media will be useless. For instance, if you useFILE MANAGER V2.0 to file copy the BASICPGM file from yourSmartBASIC media to another media, that media which containsthe BASICPGM file still can't load SmartBASIC upon pullingthe < COMPUTER RESET > because block 0 is wait tells thesystem what machine code file is on the media and how to loadit.There are many other idiosyncracies to be aware of whenmaking backup copies. Once such example isN.I.A.D. has compiled an extensive list of specials and saleitems on ADAM Products which is valid through July 31, 1990.Many of the products are in short supply and will never beoffered by N.I.A.D. again, so don't delay! An updated listingwill be provided in next months June issue along with furtherspecials.ADAM Printer Power Supplies are once again in stock, but theprice has been raised to $34.95. On the other hand, DigitalData Drives are becoming scarce after years of amplesupplies. Remember, one to the destination. BACKUP 3.0 andBACKUP+ 3.0 by MMSG are the only programs I know of thatoffer an option specifically for making backups of RightDirectory Data Packs.If you have any questions which need to be answered, pleasegive me a call or write and I will do my best to answer yourquestions. Most of all, remember that copy programs weredeveloped to allow the user to create backup copies of theirprograms, not to be used for making copies of programs totrade with others or to sell. Don't be a evelopment stages on theirfirst utility package after releasing five outstandingentertainment packages over the past two years. Their sixthcommercial release will be a graphics print utility for 24-Pin Dot Matrix Printers such as the Panasonic KX-P1124. Thiswill be the first graphics utility which will fully support24-pin dot matrix printers hooked up to the ADAM via aParallel Interface.NORMAN CASTRO has available complete maps of all 30 levelsfrom Steve Pitman's ADAM BOMB game. For a free copy of VCR owners used to design their own professional-quality movie headers, Swift Bookkeeping System - a fullfeatured accounting package, as well as the completion ofGoDOS V2.0. The newsletter, ADAM Computing Today, willofficially begin publishing on August 1st and a preview issueshould be on it's way to subscribers of Nibbles & Bitsbefore the end of June.WALTERS SOFTWARE CO. is currently starting work on a newversion of their already popular SmartDSK CART. This newversion will use drop down menus, wand two volumes of Clip-Art byWizard's Lair. For a free copy, send two first class stampsto: ADAM SOFTWARE SUPPORT - 8125 W. Catherine - Chicago, IL60656.THE COLECO GRAPHICS PROCESSOR CART is now available throughNIAD for $29.95. This cartridge version does not require amemory expander to operate and also allows for the capturingand saving of hi-res screens from supergames and cartridges(carts which were copied to disk or ddp) and also boots upinstantly upon pulling the < CARTRIDGE RESET >.Smarthold off on ordering these data packsuntil we pass word along that they are back in stock.OASIVE PENSIVE ABACUTORS has released no further news as tothe release of the ADAM Image Maker. We have been told thatthe developer, Gary Bowser, has been hard at work on TI-99/4A(which looks to be in production again!) hardware. Hopefully,he will have time in the near future to finish this longawaited video enhancement for the ADAM.MMSG, founded by Jim Marshall, seems to have foregone furtherdevelopment of so be saved in a PowerPAINT compatible formatfor even further editing. P.C.U. even allows for the use ofclip-art pictures and different print styles and sizes whencreating a calendar. At least a 64K Memory Expander isrequired to use. We will have a complete review of thisfantastic calendar utility in the June issue.PHOENIX 2000 has also announced three other software projectswhich will be available soon: PasteUP - a graphic WYSIWYGpage layout package, R&S Slideshow - a graphic slideshowpackage for anylevel (1 through 30) send two stamps, $3.00 for copies of any5 levels or $15 for copies of all 30 levels of ADAM BOMB.Send to: Norman Castro - 809 W. 33rd Ave. - Bellevue, NE68005.ADAM SOFTWARE SUPPORT has completed their second softwarecatalog containing over 45 commercial software titles for theADAM which includes such companies as PITMAN SOFT., GERLACHFAMILY SOFT., WIZARD'S LAIR SOFT., A&S SOFT., FEDERATIONSOFT. and ADULTWARE as well as complete print outs of allten volumes of Happy Clips indows and dialog boxes.It will contain the most advanced set of machine languageutilities ever released for the ADAM. These utilities willreplace those found on all other SmartDSK packages. Owners ofthe first SmartDSK CART will be offered an update to the newversion for a certain fee which has not been set yet.E&T SOFTWARE has run into a production snag in development ofthe 320K Extended Data Pack which was produced by TrisydVideo. These data packs will not be in stock for themeantime, so please CLOCK, by Trisyd Video, has been officially released andis in stock. For a complete run down on this new hardwareproduct, read the review contained herein. SmartCLOCK isretailing for only $39.95!PERSONAL CALENSAR UTILITY by PHOENIX 2000, Soloman Swift'sreorganized company, has recently been released but we didnot receive in time to include a review in this issue.Personal Calendar Utility is a powerful package for creatingall types of calendars (full page or smaller). These calendarcreations can altheir first ADAM entertainment package,GALACTIC BOUNTY HUNTER, as well as any other products. Allother packages by MMSG: Backup 3.0 and + 3.0, CopyCart 1.0and + 2.0 and Easy Come, Easy Go will continue to beavailable through NIAD and other ADAM firms.NEW PUBLIC DOMAIN TITLES have been added this month to theNIAD Public Domain Library. These titles include: VISI-SPRITEV6.0, COLECO PERSONAL CP/M and ADAM FORTH V1.1. Also, acouple older volumes have been updated to include originaldocumentation: M.A.an undoubtedly prove to be ratherfrustrating!As a whole, the game presents many professional elements thatresound of Dr. Swift's gifted talents in it's making. I trulycommend him in his efforts.I was hoping that, with my presentation of these errors tohim, he would have been able to try to revise the game forall those who share the same problems.Even though Dr. Swift might not be able to ever get to revise`CHESS CHAMP' in the future, maybe there's someone out there,reading this in your column, t Sol in regardsto my re-subscription that I've been waiting for any one copyto come through the mail since November of '89.But of special interest, there was mentioned in the letters aconcern involving three errors I've spotted in Dr. Swift'sgame `CHESS CHAMP'. It will be interesting to know how manyADAMites out there who own this game have also come acrossthe same errors. I would greatly appreciate your sharing thisinformation with your readers. Unfortunate as it is, I wantedto confer with Dr. Swr as Chess Champ, the easeat defeating the computer has been brought up many times andupdates were promised many times. I don't know if an updatewill ever be made available, but for now there is analternative, A-CHESS SARGON, which is a public domain chessgame which many an experienced chess player has hasdifficulty at defeating. While not graphically as appealingas Chess Champ, it does provide for a lot tougher computeropponent. It is possible that Soloman Swift never receivedyour letters due to te logic of it's own device.*** 2 ***  When the computer has finally reached the end ofthe board, it does not change it's pawn to a piece of ahigher rank. The pawn remains a pawn throughout the rest ofthe game.*** 3 ***  When a situation arises calling for 3 choices in a`Check' condition, the computer ignores one of thesechoices: ie. to be able to block the `line of Check' withone's own piece. Instead, it displays the statement "it isillegal to leave the White King in check".The last situation cS.H., ARTILLERY DUEL, WORD FEUD and TOMARCTHE BARBARIAN. Tomarc the Barbarian also now includes theTUNNELS & TROLLS DEMO which we recently received. This is asharp little demo, but unfortunately it can't be played. Thepublic domain listing has undergone a change which hopefullywill make selecting volumes a whole lot easier.DEAR N.I.A.D.,Now that The Softworks Factory has closed it's doors, I maybe holding on to an impossible dream: namely, a response toany of six or so letters I've sent to Tony &hat may be able to.Thank you for you kind attention, sir!                                             Respectfully,                                             Richard WhitingEDITOR'S REPLY: As far as your subscription renewal toNibbles & Bits, it should be carried over to Soloman Swift'snew company, PHOENIX 2000, which will publish ADAM ComputingToday. We have been told a demo issue will be sent out nolatter then the end of June and the official first issue willbe sent out August 1, 1990! As faift on this matter as a first effort,but like I said, after six or so letters with nary a reply toany of them, I feel that I have to get off of `square one'and continue with my endeavor of relating my experience withthe game to all my fellow readers.Following are three errors i've found in the game:*** 1 ***  It seems as if, even at level #9, the computerfails to `win' a game (...and I'm just a fair player). Itappears to represent itself solely as a defensive player,without inputting any offensivhe breakup of T.S.F., but he doesreceive this newsletter and hopefully will be able to answeryour questions.DIGITAL RESEARCH CUTS OFF SUPPORT OF CP/MDigital Research is no longer supporting CP/M. Not even toanswer questions about it. If you call them about someproblems regarding CP/M, they will refer you to Bob Ross, wholives in Riverside, California. Bob if the CP/M SIG (SpecialInterest Group) leader of the North Orange County ComputerClub. If you should ever need to call him about any CP/Mprob of French programmers as a simpler meansof creating assembly code programs and routines to beimplemented into ones own machine code or SmartBASICprograms. Originally, it was to be distributed by CBSSoftware, but due to the ADAM's swift demise, MacADAM becameanother one of those never officially released programs andlater found it's way into circulation channels via publicdomain.In this Revised Edition of the MacADAM instructions, JimCasey has tried to enlighten the reader with simmple, step bystIt is my feeling that the criterion of value is not thegrowth of the inventory, so much as it is the extent thatpeople use the existing material. The number of programsavailable for use on the ADAM is enormous and growing!EDITOR'S NOTE: Thomas Keene is the editor of the InlandEmpire ADAM Users Group newsletter which is based heavily onCP/M 2.2 use.ia. Bob if the CP/M SIG (SpecialInterest Group) leader of the North Orange County ComputerClub. If you should ever need to call him about any CP/Mprobnts of both ADAM'soperating system (OS) and the Z-80 Language to develop thesoftware necessary to operate the associated hardware anddevices. This is outside the scope of this manual.The Subroutines and programs in this manual, for the mostpart, are intended to introduce the new assembly languageprogrammer to some methods of using the commonly availablehardware - console, line printer, disk - associated with theADAM Computer operating under SmartBASIC or the EOS system.Because of the apparent compMacADAM MANUALReview by Jim NotiniThe long awaited revised addtion of the MacADAM Manual hasfinally been released! This is the manual which many poeplehave been waiting for from Jim Casey (published byarrangement through Walters Software co.) due to the factthat the original instruction manual which comes with theMacADAM Macro Assembler program in SmartWRITER format filesis lacking in both in continuity as well as usefuldemostrations of the programs use. The MacADAM program wasdeveloped by a pairlem, his telephone number is (714) 684-9855.It is sad to see the decline in the use of CP/M, but their isno point in not recognizing the fact. This is still NOT truein Europe nor in Japan. CP/M is flourishing there and CP/M isfar and away the most widely used system in industrialcontrols, such as the robotics used on automobile assemblylines. It is, by no means, a desperate situation. There arestill hundreds of new programs being written every year forCP/M users and most are in the public domain.ep, methods of programming MACRO's within the MasADAM'soperating system. That goal is continued through out thisedition, in hopes that this manual will help those interestedin Assembly Language, to explore and expand this interest.The title alone may not tell you enough about the programminglevel at which Jim Casey is aiming. What this manual is not,is an in-depth study of Z-80 Assembly Language and theinterfacing of the ADAM with various hardware. That demands adeeper understanding of the requiremelem, his telephone number is (714) 684-9855.It is sad to see the decline in the use of CP/M, but their isno point in not recognizing the fact. This is still NOT truein Europe nor in Japan. CP/M is flourishing there and CP/M isfar and away the most widely used system in industrialcontrols, such as the robotics used on automobile assemblylines. It is, by no means, a desperate situation. There arestill hundreds of new programs being written every year forCP/M users and most are in the public domain.licated nature of assemblylanguage, it appears to be avoided by many programmmers,particularly at the personal computer level. This is wherethe MacADAM Manual really shines.Since so many ADAM owners are quite familiar with SmartBASIC,this manual will be a perfect purchase due to it's relativelyentry to intermediate means of explaining how to go aboutprogramming in assembly code. Also, we have the firstsensible instructions on all or most of the capabilities ofthe MacADAM program as well as descripippingthe tiles match, the matching objects and two tiles areremoved; also the player wins a point and gets to select twomore tiles to flip in order to find another match. If theobjects do not match, the two tiles which were flipped arereplaced back on the objects uncovered, thereby concealingthem once again. The important facet of U-MATCH-EM is toremember were each object is even when you do not make amatch, so that on further turns you will know where thematching objects are. The player with the  (ADAM) and ASCII CharacterSet (Standard for all computers).The MacADAM Manual covers some 72 pages and is veryprofessionally designed. Much, if not all, of the manualstill looks like a foreign language to myself, but if thereis a first step to be taken on the way to learning how to useMacADAM, this manual is it. Also, there are a number of othercommercially available books which are suggested to purchaseif you find the need to go on further than this manual willtake you. Truly a must have producted function and pressing the RETURNKEY or the FIRE-BUTTON. All menu options (word choices) andmovement of the tile cursor are accomplished by this POINT-AND-CLICK method. Pressing the ESCAPE KEY at anytime willrestart the game.When the game starts, you have three types of objects toselect from: ALPHABET SHAPES, OBJECT SHAPES and ABSTRACTSHAPES. The ABSTRACT SHAPES are far more challenging than theALPHABET or OBJECT SHAPES. The next menu will ask if you wisha PREVIEW OPTION which permits the playerU-MATCH-EMReview by Jim NotiniU-MATCH-EM by PHOENIX 2000 is a colorful, memory exercisematching game based on the popular board game `CONCENTRATION'and is the commercial version of the public domain title, EZ-MATCH, which was published in the August 1989 issue of theNIBBLES & BITS newsletter. Players, be it two people againstone another or a person against the computer, alternate turnsflipping two tiles on an on-screen play board consisting offorty tiles. If the two objects which are exposed by fltions of all the menuchoices. The manual is broken up into 4 separate parts. Part1 deals mainly with what the menu choices will do and how togo about using them. Part 2 starts out with details on thedifferent types of instructions as well as explaining what amacro-instruction is. Part 3 deals explains differentroutines which can be used as well as how to go aboutcreating routines. Part 4 is broken up into 4 differentappendixes; Z80 Assembly Code Summary, Z80 HardwareDefinitions, ASCII Character Setmost matches afterall the tiles are removed from the on-screen game board isthe winner.Upon boot, a colorful game board is displayed with ascoreboard located at the upper right of the screen where thetotal number of matches for each player is displayedthroughout the game. Then the gamer is prompted to selecteither a one or two player game (in a one player game, theopponent will be the computer). Choices are made bypositioning the on-screen cursor with the ARROW KEYS or HANDCONTROLLER to the desir for those who want tolearn assembly code. Also, there are a few demo routineswhich are available on ddp or disk for an additional $5.00.The routines can be BLOADed into SmartBASIC and CALLed toexecute.HIGHLY RECOMMENDED: A+ns as well as explaining what amacro-instruction is. Part 3 deals explains differentroutines which can be used as well as how to go aboutcreating routines. Part 4 is broken up into 4 differentappendixes; Z80 Assembly Code Summary, Z80 HardwareDefinitions, ASCII Character Sets to view the entireboard of exposed objects for about 20 seconds before they arecovered with tiles (cheating if you are playing thecomputer!) or STANDARD PLAY which does not allow theplayer(s) to see the objects before they are covered with thetiles. The final menu option allows for the selection of aone or two player game. Players will now alternate turnsflipping tiles in order to try to match the shapes.U-MATCH-EM is a very true to life version of `CONCENTRATION'.The graphics of the on-screen g to watchhelplessly while the printer continues to merrily tap-tap-tapon the black platen, the paper having finished earlier thanthe text. I give the machine a chance to cool from time totime... and I've learned to save my data more often in theevent of a freeze-up.So ADAM and I get along pretty well. My wife, Marilyn, lovesADAM as much as I, and even though she has access to our XTclone, she battles me for ADAM (or is it the other wayaround?).I have our ADAM hooked up to an Epson LX 800 dot mathave to work with the same objects and when using theABSTRACT SHAPES, matching pairs will become very difficultsince many of the shapes resemble one another. If you are onefor mind challenges, U-MATCH-EM is a welcome challenge andshould offer hours of fun (or headaches). U-MATCH-EM is alsoa perfect game for children who need to work on their memoryand recognition skills, although it will also appeal toadults as it has for me. Don't pass this one up, at the priceof $12.95, U-MATCH-EM is a little gem rk... everytime.Everytime, that is, until the printer ribbon decides it'stime to have a little fun with me.Perhaps the most popular fix for our printer ribbons isthe one that involves adjusting the spring tension. I don'tknow why this is such a common problem when we have thetechnology to put a man on the moon. As the ribbon passesfrom the right to the left (looking from above, with thepointy end away from you) the tension seems to increaseproportionately. It finally gets to the point where it'dt                    RIBBON RAVINGS                          by             CAPT. R.D. Symonds, MC, USNOur Little Orphaned ADAM is prone to many idiosyncracies,most of which I've learned to work around. I'm careful not tostart a line with an underlined word so that the left handmargin won't decide to march off on it's own in the middle ofthe text. I start most of my letters with a letterhead I'vesaved in a SmartWriter file, and in which I've altered thevertical margin settings so that I don't haveame board and all the objectsare very well done and colorful, which will in effect, retainthe attention of younger children even more so. Sound effectswhich correspond with what is happening in the game at anygiven time also add an extra touch of professionalism to U-MATCH-EM. Game play is very straight forward and should berather easy for a children to learn. The addition of threeshape sets, which are always randomly placed, to choose fromalso is a welcome addition since the player will not alwaysrixprinter, a fairly reliable little machine, through anOrphanware parallel printer interface. And it works prettywell, when it works. The manuals that come with theseprinters could just as well be printed in ancient Egyptianfor all the help I am able to extract from them. I stillhaven't figured out how to make it work with Speedywrite IIsince the codes are so well coded I think they're uncodable.So I use the noisy, slow, (but letter quality) printer thatcame with ADAM. Why? Because I know it'll woof a software programand continues faithfully in the new line of strategy mindgames developed by PHEONIX 2000. Originally, U-MATCH-EM wasreleased under the Z-DELTA SwiftWARE label.RATING: RECOMMENDED Aanygiven time also add an extra touch of professionalism to U-MATCH-EM. Game play is very straight forward and should berather easy for a children to learn. The addition of threeshape sets, which are always randomly placed, to choose fromalso is a welcome addition since the player will not alwaysake King Kong to move it another character's worth. Theprint, like MacArthur's characterization of Old Soldiers,"just fades away." I think you all know what I'm talkingabout. The worse thing is that the ribbon has been onlyhalf used when this happens.The adjustment of the spring tension does work.  Butit's critical. If it's not enough, it'll bind again. Ifit's too much, the ribbon flops up from the front of thedaisy wheel and you get intermittent impressions orimpressions that are part black and pnk of to use this, is that the ribbon can be rewoundand used several times before it's worn out. The convenienceis that there's virtually no resistance and there's always a"new" area of ribbon in front of the print character,especially if you've adjusted the spring tension a littlet-o-o much.This last idea is too new for me to really provide a goodappraisal. The one time I used it (on a shortened ribbon) itworked very well, but the ribbon really flew through thecassette. Oh, well, ADAM ribbons las it stops.Then there's the case of the knurled knob on the leftside of the ribbon cassette. This is the white knob closestto the pointy end around which the rubber band travels. InDiablo Hytype I ribbons, this white piece of plastic isunder tension from a coiled spring. In Coleco ribbons, themechanism is virtually stationary. In both mechanisms, theribbon sometimes becomes wrapped around the knurled knob,whether you've attempted to adjust the spring tension ornot.So what fixes are available?Onhan one way to skin the proverbial cat. be rewoundand used several times before it's worn out. The convenienceis that there's virtually no resistance and there's always a"new" area of ribbon in front of the print character,especially if you've adjusted the spring tension a littlet-o-o much.This last idea is too new for me to really provide a goodappraisal. The one time I used it (on a shortened ribbon) itworked very well, but the ribbon really flew through thecassette. Oh, well, ADAM ribbons lasc mechanism on the left side of thecassette, and through which the ribbon passes on its way tothe take-up spool. Just let it ride free. Boy, it surezips through then. Put a small black ink dot on each of thewhite posts sticking through the top of the cassette andwatch them spin. I just recently tried this and printed outone of the sharpest, blackest letters I've seen come fromthe ADAM printer. When I looked at the ribbon, there was nooverlaping of impressions at all. The only justification Ican thiart white. Unsat. Ifyou ever get a spring adjusted exactly right, I suggest yousave it and transfer it into a new ribbon when the old oneis worn out.But there are a couple of other methods I've toyed withto fix a couple of other problems.If you've ever rewound a ribbon, in an attempt at "thrift"(better word than "cheap"), or if you're caught without afresh one on hand, you'll find that as it works its waythrough the second time, it gets kinda' lumpy on thetake-up spool. This binds the ribbon andt too long anyway, andjust dry out... how's that for rationalizing away "thrift."In general, I recommend you do nothing until you have aproblem with the ribbon... the old "if it ain't broke, don'tfix it" school of thought. I tried spring adjustment andtearing off the used part of the ribbon together and had noproblem. But, I had no problem when I just tore off theused part of the ribbon.I think there's merit in all these ideas, depending onwhat problem you're faced with. Try them.There's more te method I've picked up, which is swift and brutal,is to take all the ribbon off the take-up spool and toss it.Sometimes the sticky tape that attaches the end of theribbon to the take-up spool can be reused. If not, a smallpiece of cellophane tape can be cut. Works like a charm,and the remainder of the ribbon acts as though you just puta new ribbon in the machine.Another fix, which stops the binding around the knurledknob, but can be wasteful, is to take the ribbon out frombetween the white plastiCOLECO GRAPHICS PROCESSOR WORKSHOP(A.K.A. PROJECT NAME BY LINE)by Jim NotiniAs many of you are finding out, there is a tremendous amountof untapped potential in C.G.P. With the recent release ofthe cartridge version which can capture screens fromprograms, hundreds of ideas are racing through the minds ofADAM programmers all over. Not only will this capture featurebe a welcome addition to programmers, but also to newslettereditors who would like to be able to reprint screen shoots ofADAM programs ft which will load C.G.P. picture filesinto SmartBASIC as well as save them as a GraphixPAINTERformat file automatically, you will have to actually ownGraphixPAINTER in order to have access to the programGPsave. This program can be executed immediately after thepicture file is displayed by placing the GraphixPAINTER diskinto the current drive and entering the command `RUN GPsave'<RETURN>. The GPsave program will display a menu for savingoptions and then read the data stored in VRAM (Video RAM) tostdisplay C.G.P.picture files on the SmartBASIC V1.0 HGR2 screen. The listingis very short (only 2K), but the program is veryprofessionally done and performs flawlessly.Upon entering the program and saving it to disk or ddp (youcan't save this program on the same media as C.G.P. or any ofthe C.G.P. PIX VOLUMES) type `RUN' and you will be presentedwith an option screen which prompts the user for the drivewhich contains the C.G.P. picture files. You may choose fromeither Disk #1 and #2 or Tape #1 and ER format picture file intoPowerPAINT, the picture will be split up into two differentcells (cell 1 and 3) due to the fact that the screen size inPowerPAINT is HGR and the picture file size is HGR2. No needto worry, however, because when you want to print the pictureout, just select PRINT WORKSPACE and the entire picture willbe printed out intact with the exception of the first eightcolumns which are cut-off unless you print the picture withGraphixPAINTER.To get back to C.G.P., when storing your p another picture file, then simply type`RUN' and press <RETURN> to start the C.G.P. SCREEN LOADERprogram again. When you type `RUN', you will not be able tosee it due to the fact you are in the HGR2 mode, you mayhowever type `TEXT' first to put you back in the text modeand then type `RUN', either way works fine.What about saving the screen as a file which can be loadedinto PowerPAINT? At this time (3/30/90), since we still donot have available the public domain title "GRAPHICSCONVERTER" by Sol Swior cartridges in order to give the reader abetter idea of what the program looks like. For the last fewmonths, I have been breaking into programs in order tocapture screens and this can, at times, be a long and tediousprocess. Also, this only worked if the program was done inSmartBASIC, since I have the faintest idea on how machinecode works!Recently, Steve Pitman (IE: ADAM BOMB, DINOSAUR DIG,BRAINSTORM, etc.) contributed a SmartBASIC V1.0 program forthe public domain which will actually load and ore the entire HGR2 screen. This is the only programavailable that I know off that allows for the entirescreen to be saved, others which I have seen (pix.mgr andSimplePAINTER, both public domain) only save the HGR screenwhich cuts off the bottom 1/8 of the screen. When the file issaved, you will have taken a picture file for use on C.G.P.and on a NON-EOS media and saved it as an EOS file on an EOSmedia which can be loaded by PowerPAINT for further editingor printing.When you load this GraphixPAINT#2. When you havechosen the drive, the program prompts you to insert theC.G.P. picture media into the drive and then it will displaya directory listing of all the picture files on the media. Toload and display one of the picture files, use the <UP> and<DOWN> cursor keys and then press <RETURN> when the arrow ispointing to the file you want loaded. The picture file willload and be displayed on the HGR2 screen automatically andthe program will end with the picture still displayed.If you wish to viewicture files,always store them from the MAIN MENU. You can't see thepicture when your at the MAIN MENU, but it is in Video RAMand will be saved correctly without the SmartKEY display alsobeing saved in the picture. If you save your picture fileswhile in the GRAPHICS EDITOR, the SmartKEY display will besaved on top of the picture, therefore causing the loss ofabout 1/8 of the picture. Also, before using C.G.P. make sureyou have an ADAM formatted disk or ddp ready, the FORMAToption in the MEDIA FUNCT GET r$:IF ASC(r$)=27 THEN END220 r=VAL(r$):IF r<1 OR r>4 THEN 210230 VTAB 20:? " Insert "; a$(r); " - Press RETURN":GETr$:POKE 27501, a(r)240 POKE 27506, 0:POKE 27510, 117:POKE 27509, 48:CALL 27500250 HOME:HTAB 2:INVERSE:? "SCREEN DIRECTORY":VTAB 3:d=30002:NORMAL260 HTAB 3:FOR t=d TO d+11:? CHR$(PEEK(t)); :NEXT270 ?: d=d+16:IF PEEK(d-2)=0 THEN  h=3:POKE 16953, 32:GOTO290280 ct=ct+1:GOTO 260290 ?:INVERSE:? " CHOOSE WITH ARROW KEYS":? " THEN PRESSRETURN":NORMAL300 VTAB h:HTAB 2:INVERSE:? ">"; :N#2"140 a(1)=4: a(2)=5: a(3)=8: a(4)=24150 DATA 1, 0, 24, 17, 0, 32, 33, 0, 108, 197, 205, 26, 253,193, 17, 0, 0, 33, 0, 132, 20, 5, 26, 253, 201160 FOR t=27624 TO 27647:READ d:POKE t, d:NEXT170 POKE 17115, 33:POKE 17059, 1:POKE 17126, 81:TEXT180 INVERSE:HTAB 4:? "GRAPHICS DESIGNER LOADER":VTAB 3:HTAB6:? "1990 By Steve Pitman"190 NORMAL:VTAB 6:HTAB 9:? "SELECT DRIVE:":VTAB 9:HTAB 10:?"1 - "; a$(1)200 VTAB 11:HTAB 10:? "2 - "; a$(2):VTAB 13:HTAB 10:? "3 - ";a$(3):VTAB 15:HTAB 10:? "4 - "; a$(4)210Directions work just using the first letter of the           direction, or type Go South, or S...Clues are around if you look for them. Watch out for the     witch.Tomb is a magical place full of adventures and surprises.    Have fun. All keyboard entries must be made in all capital   letters, so use Shift lock before playing...Dont know what the game is about? Remember your              childhood...Did you discover you can carry a clue around     with you? Dont know what to do with the clock? Set it-ToORMAL:HTAB 25:? CHR$(7);310 GET r$:IF ASC(r$)=160 AND h>3 THEN VTAB h:HTAB 2:? " "; :h=h-1:GOTO 300320 IF ASC(r$)=162 AND h<ct+2 THEN VTAB h:HTAB 2:? " "; :h=h+1:GOTO 300330 IF ASC(r$)=13 THEN 350340 GOTO 310350 b=(h-2)*12-11:POKE 27510, 108:POKE 27509, 0:POKE 16953,95360 st=108:FOR t=b TO b+11370 POKE 27506, t:POKE 27510, st:CALL 27500: st=st+4:NEXT380 HGR2:CALL 27624:HTAB 10:?"1 - "; a$(1)200 VTAB 11:HTAB 10:? "2 - "; a$(2):VTAB 13:HTAB 10:? "3 - ";a$(3):VTAB 15:HTAB 10:? "4 - "; a$(4)210ION MENU (accessed by pressing theSTORE/GET key) only initializes the media for use with C.G.P.You can store a total of 13 picture files on a disk and21 on a data pack.10 REM 3/90 By Steve Pitman20 REM This will load a graphic screen saved by ColecoGraphic Designer into the Basic HGR2 mode.100 LOMEM :45000110 DATA 62,4,1,0,0,17,1,0,33,000,108,205,243,252,201120 FOR t=27500 TO 27514:READ d:POKE t, d:NEXT:POKE 17954,1:POKE 17963, 1130 a$(1)="DISK #1": a$(2)="DISK #2": a$(3)="TAPE #1":a$(4)="TAPE x	Edestroying a relentless swarm of Imperial Tie    Fighers, a barrage of deadly fireballs, and a maze of        sinister laser towers before finally blasting the infamous   TOMBInsert Disk into ADAM and pull reset button. TOMB will load  automatically. It is a Smartbasic text adventure.Once in tomb you will be transported to a different but      vaguely familar place. If you wish to see something type     Look Object. GET r$:IF ASC(r$)=27 THEN END220 r=VAL(r$):IF r<1 OR r>4 THEN 210230 VTAB 20:? " Insert "; a$(r); " - Press RETURN":GETr$:POKE 27501, a(r)240 POKE 27506, 0:POKE 27510, 117:POKE 27509, 48:CALL 27500250 HOME:HTAB 2:INVERSE:? "SCREEN DIRECTORY":VTAB 3:d=30002:NORMAL260 HTAB 3:FOR t=d TO d+11:? CHR$(PEEK(t)); :NEXT270 ?: d=d+16:IF PEEK(d-2)=0 THEN  h=3:POKE 16953, 32:GOTO290280 ct=ct+1:GOTO 260290 ?:INVERSE:? " CHOOSE WITH ARROW KEYS":? " THEN PRESSRETURN":NORMAL300 VTAB h:HTAB 2:INVERSE:? ">"; :N     what time? Well, the clock is from the finest Hickory by a   Richard Ery, a prominent physician.Cant open the cupboard? Something small and something yellow in the same room will do it for you.IF the witch keeps zapping you in the Throne room, find a    good place to hide where you can see her but she cant see    you.The cow will follow you anywahere if you are carrying        something she likes..ted to a different but      vaguely familar place. If you wish to see something type     Look Object.e large rocks and cant be shot down. Avoid   at all costs.There is also a chance stage when you reach a planet. During the chance stage they have no arms so you can rack up        points.The music you are listening to is Bach's Tocatta and Fugue,  in D Minor.Score 60,000 points and youre rewarded with an extra ship.   Then every 100,000 points afterwards you get another one.The game ends when you lost your last ship. If you reach     earth with one spaceship or more, you will continue the game with Nepx	Eom outer Neptune to Earth. As if that        weren't enough...its got to be a shoot-out all the way.  You alone in your rapid firing spaceship, swirling in a circular fligGYRUSSThree billion miles is a long way from home.  But theres no  shorter route from outer Neptune to Earth. As if that        weren't enough...its got to be a shoot-out all the way.  You alone in your rapid firing spaceship, swirling in a circular fe large rocks and cant be shot down. Avoid   at all costs.There is also a chance stage when you reach a planet. During the chance stage they have no arms so you can rack up        points.The music you are listening to is Bach's Tocatta and Fugue,  in D Minor.Score 60,000 points and youre rewarded with an extra ship.   Then every 100,000 points afterwards you get another one.The game ends when you lost your last ship. If you reach     earth with one spaceship or more, you will continue the game with Nep             Object is to make the journey from beyond Neptune to the     sanctuary of Earth, defeating enemy ships, meteors and       satellites, and reaching interim planets along the way.Satellites-There are two types. One appears in threes-two    that look like giant blue molecules on either side of a      glowing orange ball. Try to shoot them down for points.      Shoot the middle one, and your ship gains double fire-power. The ship will continue to have this until it is destroyed.Meteors look likDirections work just using the first letter of the           direction, or type Go South, or S...Clues are around if you look for them. Watch out for the     witch.Tomb is a magical place full of adventures and surprises.    Have fun. All keyboard entries must be made in all capital   letters, so use Shift lock before playing...Dont know what the game is about? Remember your              childhood...Did you discover you can carry a clue around     with you? Dont know what to do with the clock? Set it-Totune as the first start again.To play again push * or #.                                   h, defeating enemy ships, meteors and       satellites, and reaching interim planets along the way.Satellites-There are two types. One appears in threes-two    that look like giant blue molecules on either side of a      glowing orange ball. Try to shoot them down for points.      Shoot the middle one, and your ship gains double fire-power. The ship will continue to have this until it is destroyed.Meteors look liklight pattern...orbiting to the right...arcing to the       left...trying to mow down wave after wave of enemy plane     formations, rocketing metoeors and runaway satellites. Stops at Uranus, Saturn, Jupiter and Mars will mark your           progression towards Earth.  Each ones a short visit though.  Then its off again to the next planet and wave of enemies.   Reach Earth in one piece and maybe youll think twice about   leaving home. Then again, maybe not.When title screen appears push fire button.     x	Eom outer Neptune to Earth. As if that    ƒï…ïn't ugš!got to be a shoot-out all the way.  You alone in your rapid firing spaceship, swirling in a circular fligJAMES BOND 007In this game you are Bond, Youve been selected by the        British Secret Service for four nearly impossible missions.These will be accomplished at the controls of a specially    designed multi-purpose craft that boasts extraordinaryER SCREENDestroy three of the spinning satellites Drax has put into   the sky. Watch out for Shuttles, they explode when they      reach the top of the screen(shades of Challenger) and if you are on the surface you die too. You have to dive underwater  the second the shuttles explode to avoid losing one of your  craft. You can shoot them down.If you hit three of spinning disk satellites you go on to    next screenFOR EYES ONLY SCREENMission-retrieve radio equipment from a sunken fishing       trawler bst stop the satellites from reaching earth.In FOR YOUR EYES ONLY, you find a sunket WWII fishing        trawler. Be prepared for assault...frogmen, missiles, mines, etc. Right fire button lobs a flare bomb to the bottom of the     screen. Left fire button fires a fixed angle shot to the top of the screen. Pressing both buttons at same time releases   both ammos at once.In DIAMONDS screen-Land on Searffinos Oil Rig and rescue     Tiffany Case...Desert section. Avoid crater and hit diamonds in the sky f highest rating for advanced is 007 of course.tes Drax has put into   the sky. Watch out for Shuttles, they explode when they      reach the top of the screen(shades of Challenger) and if you are on the surface you die too. You have to dive underwater  the second the shuttles explode to avoid losing one of your  craft. You can shoot them down.If you hit three of spinning disk satellites you go on to    next screenFOR EYES ONLY SCREENMission-retrieve radio equipment from a sunken fishing       trawler bdo it wrong, you crash and start over again.If you failed to hit a diamond to see the rig just before    hitting it, you must dive under it to avoid hitting it and   try again on the next attempt. If you dont dive under, you   crash into it.SPY SCREENMission-Destroy Strombergs Undersea Lab.Also rescue your girl, Anya Amasova. Her capsule is released when you blow up the lab, touch it to go on to the next      scene. First you have to dive under the oil tankers and      avoid mines and missles.MOONRAK       capabilities. It is part, car, part plane and part           submarine, equipped with the latest weaponry.First stop, Las Vegas in Diamonds are Forever. No casinos    here. Rather, youve got to cross the desert in the dead of   night.Next stop, Sardinia in THE SPY WHO LOVED ME. Strombergs      underwater lab is your destination and we know what you will do when you reach it.In Moonraker, youll recognize your old nemesis Hugo Drax and his poison satellites. From your position on the lake you    muy touching it when you find it.Only by the light of your flare bombs can you see your       enemies underwater. Terrain requires constant                jumping...Helicopters are dangerous as well. Also giant      jellyfish. Watch out.When you see the sunken fishing trawler, manuveur your craft onto the radio antenna bar to the right of the deck. If you  touch any other part of the trawler you are dead.Completion of this mission ends the game.Highest rating possible for beginner level is 005. The      or points.The ocean-continue to light the sky by hitting the diamonds. Thats the only way you will see the oil rig when it finally  comes up on your screen. Also avoid or shoot mines, divers,  etc. and laser fire from satellite.When you see the shape of the oil rig from the flash of the  diamonds, you must land on it. Move your craft just to the   left of the rig, straight up over the top of the dreeick,    then down to land on the helipad. If you do it right, you    land and go to the next scene. If you x	Ee and carry it safely to the top of the mountain    before your time runs out or you are destroyed.You play the part of the explorer. To make him jump you push the joystMOUNTAIN KINGThe object of this game is to capture the Golden Crown of    the Temple and carry it safely to the top of the mountain    before your time runs out or you are destroyed.You play the part of the explorer. To make him jump you push the jof the  flame spirit.Cave Bats-On higher levels they try to steal the flame       spirit and crown from you , on level 1 just the crown.The Giant Spider-lurking at the bottom. If you get caughe,   you can escape its webs by rapidly moving your joystick back and forth. You must do this quickly because if the spider    returns before you escape the web you die and the game ends. The spider will also steal back the crown if you have it.    You can jump over him and escape by jumping to a higher      level.Rautton and the flashlight will shine in the direction your   explorer is headed. It cant shine up or down.In order to gain entry to the temple, you must first be in   possesion of the flame spirit. To qualify for possesion you  must first pick up over 1000 points worth of diamonds which  are embedded in the walls of the caves. Merely pass over     them to collect them. Each cluster of five diamonds is worth 25 points.Once youve earned over 1000 points a flickering flame will   appear at the bottom of yourou entrance to the temple. To do this,    position your explorer under the entranceway, and pull the   joystick towards you. The skull spirit will take the flame   spirit and become visable long enough for you dash into the  temple. Be fast, if the skull spirit diappears before you    enter you will have to bring him the flame spirit again.Once in the temple, you must scale the walls to get to the   crown. Position your explorer under it and move the joystick forward to place it on your head and then pull and you have to        collect another 1000 points before it can become available   again.The flame spirit is randomly hidden within the cave. Once    you have found the spirit, place your explorer over it and   pull the joystick towards you to kneeldown and pick it up.   If you have it, your explorer is surrounded by a halo and    you cant use your flashlight.The faster you get the flame    spirit the larger the bonus. ALso you earn an additional     minute of playing time every time you gain possesion oystick away from you at a 45 degree angle to the left  or right and your explorer will leap in that direction. If   you jump or fall you wont be hurt, but if you fall far       enough you will be momentarily stunned.You must kneel in order to claim the flame spirit, open      treasure chests and gain entrance to the temple.Your explorer is equipped with a flashlight used to find     treasure chests and confirm the location of the flame        spirit. To activate the flashlight press down on either fire bndomly hidden are treasure chests, visable only with the   flashlight. Each one is loaded with diamonds and if you open one, a short fanfare will sound and 250 diamond points will  be added to your total. To open one, like the flame spirit,  position your explorer on top on one, and pull the joystick  towards you. A new one will be hidden for every one you      open.The Skull Spirit-Guarding the entrance to the temple he is   visible only with the flashlight. Offer him the flame spirit and he will grant y screen indicating that flame    spirit is now available for capture.Look for a very brief flame flicker. This marks the location of the flame spirit.The spirit is only fully visible when you shine your         flashlight on it.Listen for the theme music. The louder the music, the closer you are. On level 1 you will have unlimited time to find the flame spirit. On higher levels the theme music will only     play a few verses. If you fail to capture the flame spirit   before the music ends, it disappears, it towards    you to remove both you and the crown from the pedestal. You  get 5000 points for this.Once the crown is on your head, the Mt.King theme music will play, indicating that its time to move fast. Drop to the     floor of the temple and back out into the mines. Your        challenge now is to make it to the top of the moutain where  the perpetual flame burns before time runs out or before the cave bats steal the crown from you. If you make it to the    top of the mountain, you will get bonus poinleft fire  button causes Sam to enter the temple if he is by a portal.CHUTE SCREENOn this screen Sam is entering or exiting a temple room.INSIDE A TEMPLE ROOM SCREENOn this screen Sam can move around the floor of the room     using the various weapons and tools. Press the joystick in   any of the eight directions to move Sam.Pressing different keys on the number pad cause different    actions.1-Causes Sam to draw his gun. Pressing left fire button      while gun is drawn, fires it. The number of bullx	E  chambers that create the mystical temple of the Mayan God    Quintana Roo. You must use your supplies as well as your cat like reactions to avoid the snakes, overcome thQUEST FOR QUINTANA ROO ~Help Yucatan Sam explore the dozens of terror filled         chambers that create the mystical temple of the Mayan God    Quintana Roo. You must use your supplies as well as your cat like reactions to avoid the snakes, overcomes an object   in the room above or below the one Sam is in. A high value   indicates there is an object in the room.5-Causes Sam to drop whatever he is carrying.6-Causes Sam to pick up a map rock if he is standing over    one.Pressing the right fire button causes Sam to squat and pick  up objects if he has nothing in his hand. This will also     allow Sam to exit a room if he is standing in a doorway.ADVERSARIESsnakes-destroyed by shootingspiders-samemummies-destroyed by acidTREASURESInside theh to play. Or press the proper key sequence(secret code discovered during play)  for upper levels. Press fire button for first level. OUTSIDE TEMPLE SCREENOn this screen, you must evade poisonous snakes while        climbing the outside of the temple(the edges where the steps are) to reach the portals to the room inside. Beware of the  Moon Gods wrath reflecting from the eyes of the temple. Use  the joystick to move, and pressing the right fire button     makes Sam duck if he is by a portal. Pressing the ts and play will start at the next higher level. The faster you make it the   more bonus points.Have fun.                                                    me   spirit and become visable long enough for you dash into the  temple. Be fast, if the skull spirit diappears before you    enter you will have to bring him the flame spirit again.Once in the temple, you must scale the walls to get to the   crown. Position your explorer under it and move the joystick forward to place it on your head and then pullets Sam has  left is shown at the bottom right of the screen.2-Causes Sam to grasp a flask of acid. Pressing Left Fire    Button while acid is in his hand causes Sam to throw it. The amount of acid Sam has left is shown on bottom right of      screen.3-Causes Sam to grasp his chisel. Pressing left fire button  makes Sam use the chisel.4-Causes Sam to read his geiger counter. The reading is      shown at the bottom of the screen. A low value indicates     nothing exciting. A mid value indicates there i the Mummys      curse, and eliminate the other adversaries while attempting  to solve a mystery that will deliver the hidden treasure to  you and Yucatan Sam. Since a different solution is required  each time the game is started, you will be assured hours of  mind challenging, reflex testing entertainment. Do you dare  to get involved?Yucatan Sam explores the temples of Quintana Roo searching   for keys to open the ceremonial vault and acquire the riches inside. Press the appropiate level number you wis vaults Sam will find the following objects.map rocks-used to open vaulttreasures-used to score pointsacid-restocks Sams supplyMAGIC HERBS-If Sam is bitten by a snake or spider he has one minute to find the magic herbs and pick them up, thereby     curing himself. The amount of time Sam has left before he    dies is shown in red at the bottoom left of the screen. He   has to place himself over a herb and kneel to get it.TEMPLE AIR-The air in the temple is stale. When Sam enters   he only has one and a rocks to the map vault room before        inserting them. This will make is easier to remember which   ones you have tried in which holes.Save one flask of acid as a defense against a mummy.Leave one cache of acid flasks in an opened vault room as an emergency supply you can come back to if needed.Sam can carry only five flasks of acid at a time. If you     pick up more you will lose the excess.When you are exploring the long columns of rooms keep an eye on your air timer. Only explore half the rooms atOPENING VAULT-There are two ways to open a vault door. The   first is using the chisel. If Sam strikes the secret part of the wall with the chisel the vault will open. In order to    hit the secret part of the wall you must position Sam as     close to the wall as possible. The second method uses the    acid. If Sam stands as near to the wall as possible, and     throws the acid onto the wall, the vault door will open.An extra man is awarded for collecting 20 treasures.HELPFUL HINTSBring all five map 20/90 (new) -Addresses for those on ANN distribution list. .***DISTRIBUTE***  8/14/90 (new)   The distribution list for the Adam News Network (ANN) monthly information disk. .***README*** 1/25/90  Information on this  Adam News Network service. .***READMETWO:***  This file which gives a summary of the other files.  Prepared by Dean Roades of 463 ADAM.  Editors Note:  I learned at ADAMCON 02 that the numerous 'returns' I put in this file cause SmartWriter to print a page and a half, due to the line fee a time.Remember where the magic herbs are.Position your torch handle over the hole you wish to try     when attempting to insert map rocks.For a pause in the game, press *. To restart game press the  # key.Have Fun.                                                    e. The second method uses the    acid. If Sam stands as near to the wall as possible, and     throws the acid onto the wall, the vault door will open.An extra man is awarded for collecting 20 treasures.HELPFUL HINTSBring all five map half minutes of air. He must exit      before his time is gone or he will die. The time remaining   is shown on the bottom of the screen.MAP VAULT-In order to open the map vault Sam must grasp a    map rock and place it in the proper map rock hole. This is   done by positioning Sam under the desired hole and pressing  the left fire button. If the rock is the proper one, the     hole will disappear, if it is incorrect, the map rock will   be relocated elsewhere in the temple and you have to find it again.9010ANN-1ESPECIALLY READ THE FILES WITH ***  IN FRONT OF THEIR NAME.  THEY CONTAIN INFORMATION ON THE A.N.N. SYSTEM AS WELL AS MATTERS REQUIRING YOUR ATTENTION..It is important that credit be given to: Author, Source (User Group, BBS, etc), and ADAM News Network..FILES NOW HAVE A DATE AT BEGINNING OF FILE SO YOU CAN TELL WHEN IT HAS BEEN UPDATED.  CHECK DATE & READ IF THIS IS A NEW  DATE.  THE DATE WILL BE SHOWN IN THIS READMETWO FILE AT THE SUGGESTION OF JOE ALFORD - ANN SUBSCRIBER..ANN_ADDRES - 7/rocks to the map vault room before        inserting them. This will make is easier to remember which   ones you have tried in which holes.Save one flask of acid as a defense against a mummy.Leave one cache of acid flasks in an opened vault room as an emergency supply you can come back to if needed.Sam can carry only five flasks of acid at a time. If you     pick up more you will lose the excess.When you are exploring the long columns of rooms keep an eye on your air timer. Only explore half the rooms atd bug.  I have eliminated the extras 'returns' and placed a '.' before the remaining ones to correct this problem. If anyone has other suggestions to make ANN better, let me know.  My address is in the ANN_ADDRES file under 463 ADAM..===========================================================A          A   A blank 'A' file for converting 'H' files.===========================================================Following are files from NIAD.  ANN appreciates their continued support..niadback   A   Jim Notiof the above programs.  Read before running programs.==========memorymap  H   A list of memory locations for ADAM.FLASH_Doc  H   Mike McCauley  Tips on using the 'flash' routine.==================================================The following clips are courtesy for Sol Swift of Phoenix 2000.Joy-LF     Joy-RT     Merry-LF   Merry-RT  Manger-LF  Manger-RT  Holly#1    Holly#2    Holly#3Wreath     Santa#1    Bell       Snowflk#1  Snowflk#2  Cane#1     Present#1  XmasTree#2 .Following are PD programs========================================THE FOLLOWING "HOME-MADE" GAME DOCS ARE THE WORK OF JEFF SYLVA OF PSAN and came to A.N.N. through the kind assistance of Bart Lynch (ZONKER)We appreciate the time and effort JEFF SYLVA has taken to    prepare these "Home-Made" game Docs..JEFF_SYLVA H   A file with the above information to use when giving credit in newsletters..TOMB       H   A text adventureGYRUSS     H   GyrussBOND       H   James Bond 007MTKING     H   Mountain KingQUEST      H   Quest for-00271 - Numbers (10000, 1000, 100,10,1 in floating point)00272-00817 - Primary word table00818-00937 - Secondary word table00938-01055 - Parse vector table01056-01144 - Hi Cathy and copyright statement (RAM available for use)01145-01151 - ], :, CR (the Basic prompt, poke 1145 to change)01152-01463 - Error message table of errors that can occur during RUN01464-01483 - Offset table for Error Messages01484-01498 - Numbers (1 to F) this is an unused area01500-01518 - Load HL with number from crunch co from Sol Swift.  They are from the 11/88 and 12/88 issues of Nibbles and Bits.  Please refer to the specific issues for complete instructions..BASIC programs to create different sounds effects on the ADAM.snd01      A   Machine gunsnd02      A   Spring recoilsnd03      A   Falling deathsnd04      A   Machinery.SORTER     A   A simple list sorter in BASIC..SmartTUNES A   A BASIC program to run the below listed songs..JingleBell A   SilentNite A.SOL_SWIFT  H   More information about the source ni     NIAD      "The All Important Backup". Have you lost a file recently because you didn't 'backup'?.niadnews   A   Current information on many ADAM suppliers..niadmac    A   Jim Notini     NIAD      A review of the MacADAM Manual by Jim Casey..niadumat   A   Jim Natini     NIAD      A review of 'U-Match-Em' by Phoenix 2000..niadribb   A   RD Symonds     Information on how to manage you ADAM ribbons..niadcgp    A   Jim Notini     NIAD      Coleco Graphics Processor Workshop.===================„Le check61711-      - Rename file61774-      - Delete file61819-      - Read block61926-      - Write block62017-      - Trim file62243-      - Initialize tape direct          MEMORY LOCATIONS                                   00000-00255 - Zero page, interrupt routines00159 - Flash repeat rate (default: 12)00256-27406 - THE BASIC INTERPRETER00256-00258 - Start vector (cold start)00260 - Version number00262 Quintana Roo==================================================memorymap  H   A list of memory locations for ADAM.FLASH_Doc  H   Mike McCauley  Tips on using the 'flash' routine.==================================================The following clips are courtesy for Sol Swift of Phoenix 2000.Joy-LF     Joy-RT     Merry-LF   Merry-RT  Manger-LF  Manger-RT  Holly#1    Holly#2    Holly#3Wreath     Santa#1    Bell       Snowflk#1  Snowflk#2  Cane#1     Present#1  XmasTree#2 .Following are PD programsde (calls 5939)01519-01552 - Load BC with number from crunch code (used by GOTO)01553-01568 - Print FPA1 in decimal (calls 3260)01569-01574 - Add FPA1 with (HL)01575-01582 - Subtract FPA2 from FPA1, put result in FPA101583-01831 - Add FPA1 and FPA2, put result in FPA101832-01850 - Load FPA2 to FPA1. HL lost01851-01874 - Find sign (used by multiply and divide routines)01875-01884 - Multiply FPA1*2 routine01885-01887 - Multiply (HL)*FPA1 routine01888-02017 - Multiply FPA1*FPA2 routine02018-02275 - nteger routine05008-05022 - Get $100 - FFFF integer routine05023-05030 - Load variable to FPA1 routine05031-05040 - Table of variable routine vectors05041-05046 - Load variable to FPA2 routine05047-05058 - Table of get routine addresses05059-05077 - Load FP variable from (BC) to (HL) routine05078-05094 - Load Int variable from (BC) to (HL) routine05095-05134 - Load String from (BC) to (HL) routine05135-05140 - Execute Variable Command, put result in FPA1 routine05141-05166 - Execute Variable Comma- Scale FPA1 (if FPA1>10, multiply by 0.1)03604-03677 - LOG routine (calculates natural LOG (ln) of FPA1)03678-03695 - SQR routine (calculates square root of FPA1)03696-03815 - Raise to power (^) routine03816-03911 - EXP routine03912-03945 - TAN routine03946-03953 - COS routine03954-04155 - SIN routine04156-04179 - Power Series Calculator #104180-04269 - ATN (arctangent)04270-04277 - Power series calculator #204278-04355 - Power series calculator #304356-04374 - Load FPA1 to FPA2 routine04375-0nd (FPA2) (2 flag is set if =)05654-05704 - Executes (, -, NOT, for FPA105705-05759 - Executes (, -, NOT, for FPA205760-05796 - Check for math symbol in crunch code routine05797-05836 - Table of math symbol routines05837-05861 - Load FPA1 from crunch code, part 105862-05884 - Load FPA2 from crunch code, part 105885-05938 - Equation Evaluation (puts operations in proper order)05939-05974 - Get Equation from crunch code routine (gets, calls 5885)05975-05993 - Stack setup routine05994-06015 - Find fis04649-04674 - SIN (routine #2) coefficients04675-04695 - LOG coefficients04696-04788 - RND (puts random number in FPA1)04789-04834 - Push FPA1 to Stack with string check04835-04868 - Pop FPA1 from Stack with string check04869-04898 - Load FPA1 to FPA2 with string check04899-04928 - Load FPA2 to FPA1 with string check04929-04962 - Get number from crunch code, part 204963-04981 - Offset table for number type (used by routine above)04982-04994 - Get 0 - 9 integer routine04995-05007 - Get $0A - FF iDivide FPA1 by FPA2 routine02276-02284 - ABS routine (resets top bit of FPA1 to 0)02285-02325 - SGN routine02326-02353 - Toggle FPA1 or FPA202354-02406 - Load FPA1 to HL in integer format routine02407-02487 - Load HL to FPA1 or FPA2 (integer to floating point conv)02488-02575 - Compare FPA1 with FPA2 (carry flag set if FPA1>FPA2)02576-02874 - Convert number from ASCII to FPA1 routine02875-03259 - Table of powers of ten in floating point format03260-03579 - Convert FPA1 to decimal ASCII03580-03603 nd, put result in FPA2 routine05167-05321 - Variable Command Interpreter05322-05373 - Move string from crunch code to (FPA1) routine05374-05406 - Load FP number from (DE) to FPA1 routine05407-05416 - Move string from (HL) to (DE) routine05417-05467 - Add (+) routine05468-05474 - Subtract (-) routine05475-05481 - Multuply routine (calls 1888)05482-05488 - Divide routine (calls 2018)05489-05495 - EXP routine (calls 3696)05496-05635 - <,>, AND, OR, =, <>, <=, >=05636-05653 - Compare strings (FPA1) a4383 - Load (HL) to FPA2 routine04384-04395 - Load FPA1 with 1 routine04396-04410 - Push FPA1 to Stack04411-04425 - Pop FPA1 from Stack04426-04440 - Push FPA2 to Stack04441-04455 - Pop FPA2 from Stack04456-04478 - Reset Carry flag (if -127<FPA1<127) otherwise set it04479-04497 - Temporary ABS (makes FPA1 positive)04498-04547 - Table of floating point constants04548-04555 - Four integer constants04556-04586 - ATN coefficients04587-04627 - EXP coefficients04628-04648 - SIN (routine #1) coefficientrst line number address routine06016-06046 - Find next line number address routine06047-06068 - END routine06069-06111 - TRACE routine (sets bit 7 of B' to 1)06112-06156 - Execute command routine (resets bit 7 of B' to 0)06157-06158 -06159-06189 - RUN routine (resets bit 4 of B' to 0)06190-06246 - Execute loop routine (sets bit 4 of B' to 1)06247-06335 - LET routine06336-06340 - TRACE routine (sets bit 7 of B')06341-06345 - NOTRACE routine (resets bit 7 of B')06346-06350 - BREAK routine (resets bd by LEFT, RIGHT, MID)10508-10528 - LEFT routine10529-10552 - RIGHT routine10553-10615 - MID routine10616-10671 - Cut string routine10672-10813 - INT routine10814-10831 - ERRNUM routine10832-10843 - SPEED routine10844-10856 - POS routine10857-10869 - VPOS routine10870-11009 - LOMEM routine11010-11049 - HIMEM routine11050-11098 - Screen commands11099-11118 - COLOR routine11119-11138 - HCOLOR routine11139-11169 - PLOT routine11170-11218 - HLIN routine11219-11267 - VLIN routine11268-11319 - Schecks for 'out of memory')07357-07386 - Print program (used by list)07387-07554 - LIST routine07555-07704 - DEL routine07705-07739 - IF routine07740-07899 - PRINT routine07900-08109 - Print command errors routine08110-08113 - CLRERR routine (resets bit 0 of B' to 0)08114-08140 - ONERR routine (sets bit 0 of B',puts line # to GOTO @ $3EFE)08141-08243 - CLEAR routine (resets all variables to 0 or nulls)08244-08312 - DEF routine08313-08341 - RESUME routine08342-08380 - GOTO routine08381-08418 - O- Number check routine11892-11919 - Reset program pointers routine11920-11993 - Print parse errors routine11994-12009 - Print character with PR routine12010-12042 - Print to printer routine12043-12059 - Print to screen routine12060-12083 - PR routine12084-12109 - IN routine12110-12127 - Print table routine12128-12136 - Print a return routine12137-12149 - Input using IN routine12150-12158 - Print prompt routine12159-12368 - Input line routine12185 - Line size limit (max line size)12369-12386 - o CALL)10091-10103 - PEEK routine10104-10125 - POKE routine10126-10163 - WAIT routine10164-10191 - & (similar to USR)10192-10308 - FRE routine (erases all strings not being used by a variable)10309-10350 - VAL routine (checks for correct variable type)10351-10370 - ASC routine (checks for string variable type)10371-10410 - CHR routine (checks for numeric variable type)10411-10453 - STR routine (checks for numeric varable type)10454-10463 - LEN routine10464-10507 - Check string length routine (useit 4 of B')06351-06355 - NOBREAK routine (sets bit 4 of B')06356-06377 - NEW routine06378-06386 - STOP routine06387-06422 - CONT routine06423-06554 - Command vector table (list of commands in order by token)06555-06941 - Get variable type routine06942-07172 - DIM routine07066-07096 - Multiply HL x DE (part of DIM routine)07173-07263 - Check DATA length routine07264-07298 - Make string definition routine07299-07310 - Check stack routine (check for stack overflow)07311-07356 - Check String space (CRN routine11320-11329 - HTAB routine11330-11350 - VTAB routine11351-11404 - DRAW routine11405-11458 - XDRAW routine11459-11472 - ROT routine11473-11486 - SCALE routine11487-11618 - HPLOT routine11619-11649 - PDL routine11650-11773 - STORE, RECALL routine11774-11785 - Read buffer routine11786-11790 - Set word scan routine11791-11837 - Word scan routine11838-11850 - Save registers and Set word scan routine11851-11863 - Save registers and Word scan11864-11883 - Letter check routine11884-11891 N routine08419-08426 - REM, DATA routine08427-08476 - GOSUB routine08477-08492 - RETURN routine08493-08515 - POP routine08516-08556 - ON GOSUB routine (continuation of ON routine)08557-08752 - FOR routine08753-08956 - NEXT routine08957-09377 - INPUT routine09378-09481 - GET routine (calls INPUT to get one character)09482-09498 - RESTORE routine (resets all data pointers to 0)09499-09986 - READ routine09987-10041 - Get memory address10042-10072 - CALL routine10073-10090 - USR routine (similar tControl character table12387-12419 - Control address table12420-12434 - Vectored screen print routine12435-12450 - Print return on screen routine12451-12499 - Check number size routine12500-12527 - Get length of line routine12528-12617 - Look for line number routine12618-12778 - Insert line number into table routine12779-12958 - Delete line number routine12959-13037 - Print (HL) with PR routine13038-13074 - Print primary word routine13075-13163 - Print number routine13164-13263 - Print variable arse DATA, REM or quotes routine15902-15910 - Parse = routine (prints "Illegal Command")15911-15925 - Parse : routine15926-15938 - Parse = routine (prints "'=' expected")15939-15949 - Parse , routine15950-15962 - Parse # routine15963-15976 - Parse TO routine15977-15990 - Parse AT routine15991-16006 - Parse GOTO routine16007-16028 - Print errors routine ("Line Number" or ":"+"Expected")16029-16034 - Boot routine (calls routine at 16481 to look for HELLO)16035-16088 - CENTRAL LOOP16089,16090 - Poi of character routine13766-13832 - Compare word to tables routine13833-13945 - Parse line routine13946-13968 - Parse command and finish buffer routine13969-13991 - Check for end of line routine13992-14081 - Parse command routine14082-14180 - Look for variable routine14181-14416 - Make variable  routine14417-14482 - Hold new variables routine14483-14529 - Make new variables routine14530-14548 - Fill crunch code buffer routine14549-14554 - Add C to DE routine14555-14604 - Check for symbol routine16111,16112 - Pointer to end of String space16113,16114 - Temporary pointer to end of String space16115,16116 - Pointer to start of string space16117,16118 - Pointer to current DATA line number16119,16120 - Pointer to current DATA Crunch Code16121 - Number of remaining bytes in DATA Crunch Code16122,16123 - Storage of DE for CONT16124,16125 - Storage of HL' for CONT16126,16127 - Line number where ONERR will go16128 - Command error number(offset used to print nonparse,tape error)16129 - Speed setti-15092 - Parse IF routine15093-15101 - Parse FOR routine15102-15124 - Parse HPLOT routine15125-15187 - Parse DEF routine15188-15231 - Parse ON routine15232-15242 - Parse RUN routine15243-15306 - Parse LIST, DEL routine15307-15338 - Parse variable type routine15339-15515 - Parse variable routine15516-15542 - Parse dimensioned variables routine15543-15579 - Parse INPUT routine15580-15634 - Parse PRINT routine15635-15755 - Parse number routine15756-15813 - Parse line number routine15814-15901 - Pname routine13264-13272 - Print "FN"13273-13284 - Print data routine13285-13311 - Print string routine13312-13360 - Print secondary word routine13361-13378 - Check type of secondary word routine13379-13412 - Find primary word routine13413-13435 - Print command routine13436-13458 - Print line routine13459-13476 - Print line number and line routine13477-13512 - Print floating point number routine13513-13591 - Move first string routine13592-13658 - Make first string routine13659-13765 - Check typenter to start of Line number table16091 - Number of line numbers16093 - Length of Line number table16095,16096 - LOMEM pointer- Pointer to start of Variable table16097,16098 - Pointer to end of Variable table16099,16100 - Pointer to end of Variable command name table16101,16102 - Pointer to start of Crunch Code table16103,16104 - Pointer to end of Crunch Code buffer16105,16106 - Pointer to the string of new variables16107 - Number of variables16109,16110 - Pointer to start of Variable value table14605-14627 - Check for NOT, +, - routine14628-14650 - Check for + or - routine14651-14674 - Check and Parse data routine14675-14715 - Parse data routine14716-14741 - Parse secondary words routine14742-14754 - Table of math priorities14755-14776 - Print "Illegal Equation" routine14777-14870 - Equation evaluation in parsing routine14871-14968 - Parse equation routine14969-14975 - Parse WAIT routine14976-14990 - Parse DRAW routine14991-15019 - Parse FOR routine15020-15034 - Parse LET routine15035ng (default: 255)16130,16131 - Vector to USR function16132,16133 - Vector to & (ampersand) routine16134 - ASCII code for Break (cntl-c)16135 - ASCII code for Pause (cntl-s)16136 - Indicator of pause16137-16147 - Temporary storage area16148 - ASCII code for indenting line numbers (default: 32)16149,16150 - Pointer to POKE limit16151 - Sign for the result of operations16152-16157 - Temporary FPA data and pointers16158 - FPA1 data used in division16161 - FPA1 status byte (0=floating point number, erary name holder16951 - Temporary storage by APPEND16953 - ASCII code for cursor16954 - ASCII code for blank space16955 - ASCII code for current character (under cursor)16956 - Left margin of screen16957 - Right margin of screen16958 - Top margin for screen16959 - Bottom margin for screen16960-16991 - Buffer for screen routines16992 - Unused RAM16993 - Number of lines on screen (y) for HOME16994 - Number of columns on screen (x) for HOME16995 - Starting column number for HOME16996 - Starting l16199,16200 - Storage of PR vector for writing to tape16201,16202 - Vector to transmit data to device (PR)16203,16204 - Vector to printing on screen16205,16206 - Length of Crunch Code buffer16207,16208 - Line number to GOTO, GOSUB, etc16209 - Temporary ASCII code for line indenting16210-16212 - Null string16213-16228 - PR vector table (the 8 addresses for PR routine)16229 - IN vector table16245 - Maximum length of screen input buffer (128)16246 - Length of Input buffer16247-16291 - Input bufferter indicator ($FF=print to screen,0=they are not)17010 - Flash character indicator ($FF=some flashing,0=they are not)17011 - Frequency of Flashing17012,17013 - VRAM address of Name table for Flashing17014 - Control-d indicator (0=no control-d, 4=control-d pressed)17015 - Temporary storage of output17016 - Length of Control-d buffer17017-17039 - Control-d buffer17040,17041 - Pointer to Control-d buffer17042,17043 - Temporary pointer to file names17044,17045 - Pointer to default file name17046-17209-16820 - Temporary name of file in second file buffer16821 - Device number for drive16822 - Temporary storage for files16829,16830 - Vector to NO/MON I16831,16832 - Vector to NO/MON C16833,16834 - Vector to NO/MON L16835,16836 - Vector to NO/MON O16837-16846 - Header for first file buffer16847-16856 - Header for second file buffer16857-16870 - Name and length of first file buffer16871-16884 - Name and length of second file buffer16885-16911 - Complete file entry in directory16912-16950 - Tempolse a string)16162 - FPA1 mantissa and exponent16167 - FPA2 data used in division16170 - FPA2 status byte (0=floating point number, else a string)16171 - FPA2 mantissa and exponent16176 - Maximum width of printer line16177 - Position of head on printer16178-16182 - Temporary FPA for SIN, COS, etc16183-16191 - Temporary FPA for calculations16192,16193 - Random seed number16194 - Sign of floating point numbers16195,16196 - IN vector used by READ16197,16198 - Vector to receive data from device (IN)ine number for HOME16997 - Address in VRAM of Name table16999 - Adress in VRAM of Pattern table17001 - Current line (y) position of cursor, same as VPOS17002 - Current column (x) position of cursor, same as POS17003 - Current input byte(last ASCII byte read from keyboard or tape)17004 - ASCII base17005 - Blinking cursor indicator (0=blinking, else not)17006 - ASCII base for cursor17007 - Current Name table (VRAM)17008 - Current screen or graphic mode (0=TEXT,1=GR,2=HGR,3=HGR2)17009 - Print charac16292-16453 - Basic words, math.16454-16501 - 16502 - Length of Crunch Code buffer16503-16762 - Crunch Code buffer16763,16764 - Coordinates of last HI-RES point plotted16765 - Current SCALE16766 - Pointer to shape table16768-16775 - Used for DRAWing and ROTating16776 - Current COLOR16777 - HCOLOR value16778-16787 - PDL buffer16788-16790 - Binary file header data (1,0,2)16791,16792 - Address of binary file in RAM16793 - Length of file16796-16808 - Temporary name of file in first file buffer16825 - Set TEXT routine17059 - Border color17115 - Text and background colors in Text mode17126 - Color of INVERSE text and background17198 - Number of lines17199 - Number of columns17201 - Top margin17202 - Left margin17226-17233 - Pattern of a character routine17234-17274 - Print character routine17275-17333 - Read keyboard routine17291 - Speed of cursor flash17334-17388 - Init screen routine17389-17395 - Reset ($4271) to 0 routine17396-17415 - Print cursor routine17416-17447 - Print with conne20532-20639 - RECOVER routine20640-20729 - LOCK, UNLOCK routine20730-20848 - Get address or length routine20849-20992 - BSAVE routine20993-21139 - BLOAD routine21140-21143 - BRUN routine21144-21330 - CATALOG routine21331-21351 - Print tape or disk name routine21352-21399 - Print file data routine21400-21412 - Print lock status routine21413-21443 - Read file name routine21444-21476 - Words for directory21477-21714 - APPEND routine21715-21838 - POSITION routine21839-21842 - Write to tape routof control ASCII18321-18354 - Table of control addresses18355-18378 - Calculate relative position routine18379-18452 - Print control-p routine18453-18491 - TEXT routine18492-18563 - GR routine18564-18587 - Lo-res block routine18588-18608 - GR video addresses18609-18727 - Set GR routine18711 - Color of text and background in GR mode18712-18727 -18728-18734 - Put HCOLOR routine18735-18741 - Put COLOR routine18742-18754 - Get color routine18755-18764 - Translate color routine (translates TI colorile name routine23324-23363 - Get first file name routine23364-23476 - Get drive number routine23477-23488 - Skip over file name routine23489-23503 - Change file type routine23504-23520 - Look for default file name routine23521-23634 - Skip over header on tape routine23635-23768 - Update file backups routine23769-23795 - Read one byte from tape routine23796-23812 - Write one byte to tape routine23813-23934 - SAVE routine23935-23975 - Input routine for LOAD23976-24053 - LOAD or RUN routines24054bottom block routine19471-19692 - Print with tape check routine19693-19883 - Control-d tape routines19884-19970 - Immediate mode tape command checker19971-20123 - Immediate tape routines20124-20137 - First letters of commands20138-20302 - Table of tape command ASCII20303-20338 - Vectors of Immediate commands20339-20388 - Vectors of Control-d commands20389-20415 - Tape error ASCII for "Illegal form of OS command"20416-20425 - FP or INT routine20426-20468 - DELETE routine20469-20531 - RENAME routitrol characters routine17448-17610 - Print without control characters routine17611-17977 - Control printing routines17978-17998 - Clear buffer routine17999-18046 - Clear screen routine18047-18084 - Clear rest of line routine18085-18111 - Read rest of line routine18112-18196 - Scroll screen routine18197-18245 - Update cursor routine18246-18265 - Read character from screen routine18266-18287 - Calculate Name table position routine18288-18303 - Calculate pattern position routine18304-18320 - Table ine21843-21846 - Read from tape routine21847-21855 - MON I routine21856-21980 - NOMON or MON O routine21981-22048 - NOMON I routine22049-22454 - READ routine22455-22922 - WRITE routine22923-23041 - Check for record number or length routine23042-23230 - NOMON or MON routine23231-23248 - Legal file character ASCII23249-23262 - Default file names ($$$$1, $$$$2)23263-23278 - Drive to device table (table of drive/device numbers)23279-23303 - Check ASCII of file name routine23304-23323 - Get second f to Coleco)18765-18780 - HCOLOR table18781-18796 - COLOR table18797-18931 - Plot HLIN routine18932-19093 - Plot VLIN routine19094-19186 - PLOT point routine19187-19263 - Do SCRN routine19264-19286 - Read foreground color routine19287-19303 - Read background color routine19304-19314 - HOME screen routine19315-19333 - Load video registers with address routine19334-19347 - Load video registers routine19348-19375 - Calculate GR offsets routine19376-19422 - Plot top block routine19423-19470 - Plot -24098 - Input routine for RUN24099-24125 - Write program to tape24126-24296 - Tape error table (list of error ASCII for tape errors)24297-24418 - Print file errors routine24419-24496 - Close files routine24497-24611 - OPEN routine24612-24933 - CLOSE routine24934-24942 - PR routine24943-25951 - IN routine24952-24979 - Read DE for a number 0-7 routine24980-25086 - Set up File data buffer routine25087-25115 - Close File data buffer routine25116-25150 - Buffer check routine25151-25181 - Find File - Load ASCII to VDP57683-      - Put ASCII to VDP57733-      - Bank switch memory57745-      - Get In/Out ports57797-      - Write sprite attribute table57939-      - Read game controllers58020-      - Update spinner58197-      - Decrement low nibble58207-      - Decrement high nibble58217-      - High nibble to low nibble58228-      - Add A and (HL), 16 bits58283-      - Sound init58321-      - Sound off58343-      - Start song58374-      - Sound58552-      - Effect over58904-      - File qor HGR25433-25483 - Set HGR2 routine25484-25600 - HGR routine25568 - Color of text and background in HGR mode25601-25685 - HPLOT x,y routine25686-25922 - HPLOT x,y to x1,y1 routine25923-26071 - Plot a point routine26072-26094 - Calculate offset for patterns routine26095-26122 - Write pattern and color routine26123-26130 - Pattern buffer26131-26140 - Color buffer26141-26150 - INVERSE routine26151-26162 - NORMAL routine26163-26176 - FLASH routine26177-26183 - Do POS routine26184-26190 - Do VPOS   - Trim file62243-      - Initialize tape directory62530-      - Position file / EOS1 / EOS2 / EOS3 / CV A62534-      - Find DCB / Get DCB address62579-      - Request status62600-      - Read device dependant status62650-      - Read keyboard62667-      - Request keyboard status62672-      - Start read keyboard62688-      - End read keyboard62716-      - Print character62741-      - Print buffer62829-      - Start print character62844-      - End print character (check if printer is done)620-54271 - STACK54272-55295 - Buffer from tape for Directory55296-56319 - Buffer from tape-First file opened56320-57343 - Buffer from tape-Second file opened57344 - Start of operating system (EOS)57344-      - Write VRAM57370-      - Read VRAM57396-      - Write VDP register57423-      - Read VDP register57433-      - Fil VRAM (one character)57446-      - Init VRAM table57545-      - Put VRAM57551-      - Get VRAM57610-      - Calculate offset57641-      - Point to pattern position57673-      data buffer routine25182-25194 - Fill end of File data buffer routine25195-25206 - Get length of name routine25207-25235 - Get length of program routine25236-25256 - Increment block counter routine25257-25266 - ASCII for BASIC file name on tape directory (used by INIT)25267-25353 - INIT routine25308 - Number of directory blocks to INIT (default: 1)25354-25361 - Set date routine25362-25369 - Init's data (ASCII for "BOOT" and the BOOT routine)25370-25411 - HGR2 routine25412-25432 - VRAM addresses fuery58907-      - Read directory for file58961-      - Set file in directory59024-      - Make file59904-      - Open file60164-      - Close file60268-      - Reset file60439-      - Read file60815-      - Write file61125-      - Set date61140-      - Get date61162-      - Initialize fole manager61197-      - Scan for file in directory61577-      - Check FCB61657-      - Mode check61711-      - Rename file61774-      - Delete file61819-      - Read block61926-      - Write block62017-    routine26191-26218 - Do HTAB routine26219-26271 - Do VTAB routine26272-26296 - Fill name table routine26297-26316 - Do XDRAW with no x or y routine26317-26332 - Do DRAW with no x or y routine26333-26343 - Do SCALE routine26344-26573 - Do ROT routine26574-26587 - Default shape table26588-26883 - Do DRAW routine26884-26903 - Do XDRAW routine26904-27406 - Do PDL routine27407 - LOMEM (default)27648 - Start of string space52736-52992 - Numeric variables52992-53759 - Tokenized program storage5376848-      - Start print buffer62904-      - End print buffer (Check if printer is done)62930-      - Request printer status62935-      - Request tape status62940-      - Console initialization62986-      - Display character on screen63015-      - Console display63538-      - EOS start initialization63734-      - Hard initialization (cold start)63778-      - Soft initialization63819-      - Hard reset AdamNet63839-      - Delay after hard reset63856-      - Synchronize Z80 and Master 6801 clockst65050 - New hole size65112 - And down, EOS stack65112 - spin switch 065113 - Spin switch 165114 - Personal debounce65134 - And down, temp stack65134,65135 - Pointer to list of sounds65136,65137 - Pointer to sound 1 data block65138,65139 - Pointer to sound 2 data block65140,65141 - Pointer to sound 3 data block65142,65143 - Pointer to noise data block65144 - Save control sound65145 - Old chr65146 - x min65147 - x max65148 - y min65149 - y max65150 - Line buffer65183 - Number of lines6518k64226-      - End read one block64255-      - Start write one block64283-      - End write one block64373-      - Write to character device64390-      - Start read character device64421-      - End read character device (check DCB)64450-      - Start write character device64481-      - End write to character device63599 - warm boot address64511-      - Pointer to interrupt vector table64512-64559 - EOS data tables64560-64860 - EOS jump table64861-65215 - EOS RAM64864 - EOS revision number648rinter65241 - Status byte for printer65242,65243 - Pointer to printer buffer (64886)65244,65245 - Length of printer buffer (1)65257 - Device number for printer (2)65258,65259 - Maximum length of printer buffer (16)65260 - Device type for printer65261 - Node type for printer65262-65282 - Device control block for tape drive65262 - Status byte for tape drive65263,65264 - Pointer to tape buffer (55296)65265,65266 - Length of tape buffer (1024)65278 - Device number for (current) tape drive65279,6528 Sector number64904 - DCB image64940 - Query buffer64594 - FCB buffer64980 - File count64981 - Mod file count64982 - Retry count64983 - File number64984 - File name cmps64985 - Directory block number64987 - Found entry64988 - Volume block size64992 - Year64993 - Month64994 - Day64995 - File manager dir ent65025 - fmum65026 - Bytes reg65028 - Bytes to go65030 - User buffer65032 - Buffer start65034 - Buffer end65036 - Blocks reg65040 - User name65042 - Start block65046 - New hole star63947-      - Scan AdamNet64047-      - Relocate PCB64076-      - Get PCB address64081-      - Soft reset keyboard64085-      - Soft reset printer64089-      - Soft reset tape64093-      - Soft reset device64123-      - Read keyboard, return code64127-      - Read printer, return code64131-      - Read tape, return code64135-      - Read return code64148-      - Go to word processor64157-      - Read EOS64158-      - Read one block64178-      - Write one block64198-      - Start read one bloc4 - Number of columns65185 - Upper left65187,65188 - Pointer to name table65189 - Cursor65216-65219 - Pointer to processor control block65220-65240 - Device control block for the keyboard65220 - Status byte for keyboard65221,65222 - Pointer to keyboard buffer (65885)65223,65224 - Length of keyboard buffer (1)65236 - Devicr number for keyboard (1)65237,65238 - Maximum length of keyboard buffer (1)65239 - Device type of keyboard65240 - Node type of keyboard65241-65261 - Device control block for p65 - VDP mode64867 - VDP status byte64868,64869 - Pointer to sprite attribute table64870,64871 - Pointer to sprite generator table64872,64873 - Pointer to pattern name table64874,64875 - Pointer to pattern generator table64876,64877 - Pointer to color table64878 - Cursor bank64879 - Current device (default: 8 (tape drive 1))64880,64881 - Pointer to current PCB block64882 - Device ID64883 - File name address64885 - Keyboard input buffer64886-64901 - Printer buffer64902 - Sectors to INIT64903 -0 - Maximum length of tape buffer (1024)65281 - Device type for tape drive65282 - Node type for tape driventer to processor control block65220-65240 - Device control block for the keyboard65220 - Status byte for keyboard65221,65222 - Pointer to keyboard buffer (65885)65223,65224 - Length of keyboard buffer (1)65236 - Devicr number for keyboard (1)65237,65238 - Maximum length of keyboard buffer (1)65239 - Device type of keyboard65240 - Node type of keyboard65241-65261 - Device control block for pg Greek.)  To attempt a brief, clear explanation... every 16.7          thousandths of a second (60 times a second) the Video circuit sends a signal   to ADAM that can't be ignored (a Non-Maskable Interrupt.)  This forces ADAM to set aside anything it was doing at the time and run a routine that starts at   address 102 (66 in hexadecimal notation), way at the bottom of the BASIC       language routines..This routine runs the FLASH by counting to 12, then changing from a primary    screen to a secondxO                              by Mike McCauleyOne of my original goals for the STAGE FRIGHT program was to use sprites in a  TEXT screen, but I kept getting erratic resuTechnical Corner:  PLAYING TRICKS WITH THE "FLASH" ROUTINE                                                       by Mike McCauleyOne of my original goals for the STAGE FRIGHT program was to use sprites in a  TEXT screen, but I kept getting erratic r for the NMI to   cause ADAM to start the routine at address 102, but because the very first     instruction is RETURN, there  are never any instructions sent to the Video     circuit and no switching between screens..Other than keeping the screen from flashing, why would you want to "turn off"  the flash routine?  So you won't be rudely interrupted while YOU are giving    instructions to the Video circuit.  It works like this - suppose you want to   tell the Video circuit that you want a sprite to be plasome of this work, but, in case I've stumbled on anything new, I thought       others might like some tips..THE HACKERS GUIDE TO THE ADAM I & II are absolute necessities for any serious  work with the ADAM.  Background information on VRAM, BASIC routines and        OPERATING SYSTEM routines is the key to making the ADAM do the "impossible"..Mention is made in several places of the FLASH or NMI at $66 and the fact that you must poke 102 at 201 to stop the FLASH to write to VRAM.  (No, I am not    speakinrinter65241 - Status byte for printer65242,65243 - Pointer to printer buffer (64886)65244,65245 - Length of printer buffer (1)65257 - Device number for printer (2)65258,65259 - Maximum length of printer buffer (16)65260 - Device type for printer65261 - Node type for printer65262-65282 - Device control block for tape drive65262 - Status byte for tape drive65263,65264 - Pointer to tape buffer (55296)65265,65266 - Length of tape buffer (1024)65278 - Device number for (current) tape drive65279,6528ary screen in the Video memory (or back to the primary       screen if it was already using the secondary one.)  This changes the screen    every 1/5th of a second.  The actual change is done by sending a short         sequence of numbers to the Video circuit , telling it to switch tables..At the end of the routine is a 201, the machine language code for RETURN. This has the same effect as the RETURN statement in BASIC.  When someone refers to  poking a 201 at address 102, what they want to have happen isesults and ended up using other       techniques.  Now, with GARBAGEMAN in the mill, I have again tackled the screen manipulation problem and have come across several tricks, traps, and           techniques that have cleared the way, not only for using sprites on TEXT       screens, but also having the sprites' movements driven by the FLASH routine,   using graphics (again, in the TEXT mode), and animating the graphics.  I work  independently in an area without an AUG so I may be re-inventing the wheel in  ced on the screen at a  certain position.  To do this, you send a short series of numbers to the Video circuit.  Now, further suppose that, halfway through sending that code, the    NMI alarm goes off and the FLASH routine starts grinding into action.  Voila;  halfway through your code sequence, the FLASH code sequence comes barreling    along and steps right in the middle, garbling the two together.  It would be   like a telegraph operator starting to send "I am a man," and halfway through,  someone else o screen.  .*  Write directly to the screen.  Move strings of characters directly from     ordinary memory to the Video memory locations of the screen (character name    table.)  Text will literally jump into view!.*  Alter the characters' appearances by poking new data into the Video memory  area holding the character description table..*  Animate the screen by placing different versions of a character in the      corresponding positions of the primary and secondary screen tables and letting the FLASHe.  It jumps to several other routines in BASIC and in   the OPERATING SYSTEM areas of memory, and actually covers a lot of ground      every 1/60th of a second..Some interesting projects to get into once you've mastered FLASH:.*  Combine sprites with TEXT.  (Imagine their surprise when a letter or two    gets up and walks away on a text screen!).*  Use the FLASH routine to drive sprite actions.  Modify the FLASH routine to include a Machine Language program to change the positions of sprites on the  þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþ routine alternate between them. .*  Change the colors of letters, numbers, and other characters using up to 32  different color combinations on screen at the same time..I am building all of these techniques and several others into GARBAGEMAN and   would be glad to provide further information to anyone interested.  As I       mentioned earlier, most of the pertinent information is contained in THE       HACKERS GUIDES TO ADAM.nclude a Machine Language program to change the positions of sprites on the  n the line inserting "wo" so the message becomes: "I am a        woman.".           To restart the FLASH routine, you must poke 245 at address 102 (that is the    code that was originally there) and 255 at address 17010 (this is a flag that  tells the routine that it is supposed to do the flashing.).                             (continued, next page)                                FLASH  (continued).If you are into deciphering Machine Language, it is an interesting project to  trace the FLASH routinÿˆ"ˆ¢ÈâÈþ‹#‹>°0°ÿ€âÈâÈâÈâÈ0°0·?¿?¿£‰¢ˆ¢ˆ¢ÿ€Áÿˆ"ˆ"ÿâÈ¢ˆ"ˆ"ÿ?¿?¿?¿ÿÿ? screen.  .*  Write directly to the screen.  Move strings of characters directly from     ordinary memory to the Video memory locations of the screen (character name    table.)  Text will literally jump into view!.*  Alter the characters' appearances by poking new data into the Video memory  area holding the character description table..*  Animate the screen by placing different versions of a character in the      corresponding positions of the primary and secondary screen tables and letting the FLASHÿÿÿÿÿøÀøÿÿÿÿÿÀàðÿÀ?àà€€àø??ÿøüþýüýûõà```ààààh|~}hqce°p00°ðððÿÿÿÿÿÿÿÿÿøÀèÜ¾È1°_>ˆÑÿÈÜ>ˆ‘ãe°p00°ððð?xqceÿˆÑãÅh|~ÝˆÑãÅ°p00°ðàÀ?ÿÿ€À`1†M80áÀÀ àÀÀÃÆÌÍÌÆá11á¼ÆÆ€€€0`0`ÿÃÀÀÿÀÀÀ`ñ€À``À€ÀÆÃÁÁÁÁÁ€€€€¼?n€üÁÁÁÁÁÁÀÀÆ†††††qq````™™‚€þüÀÀÀÀàp8ÿÿÿÿÿÿÿÿoqq```˜˜```````ð€à``üg```€à~€ÿn`€ø~€qaaaaaÃÃÿÃÃÃ00? @ÀÀÀ€pà0àÀÿÿÿÿÿÿÿÿÿÿÀ€þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþžžžžžžžžžžžžžžžžþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþ?üðþð€?888þð€øÀ88888888€€€@  À88888888 @à@¢#A˜Œ8888888?ø‚A |‚ÿ‘D‘Ì8:98<?`€ÿ€ÿÿ€ÿ
øÿÿÌÌÿxÿÿy00àü?€ðþÀø¶xÿx¶00Àøàü?€ðppp€@@pppppppp0`‚B²L @€€€€€€€ppppppppÀÿÿDFðü(P àÀ@@  0pppppppðÿ€ÿàb`€ÿ  ?€ÿÿ€ÿ
ø€ÿpppðpð	ð©†z‚jU(–ŸîVˆ0À€(Ö<@ÀÀ#==
ÿøë¦#ÊSiø¨T*À0U)ðø€@à
(
UkTJP«4,€€€t*6(`` Ààì(TàaQ®×Û%êôçùÂå£EøGªU  †÷¨P	¯O¦Y‘"¥B¾«2*5)´£TÄ8À `		‘Q±C@€€€ð„È(00H”:U€
(%*5*4©e@@@†…˜à„|‘SõüÿwÏªTü„k”ˆx*``ð @€€€Ë”*5@`˜D«Tx Á=„Ã¼RJrJ"ÊûcÑþòøÂ€ Pl5)q9u™z²Ü¯™á‚‘H˜ôvÛñ„ô_]ìWkWk€À` °gè—ÜQ©ö¸Ä¢TÉUÍnœÄ¸ @@À@ÀúÇ'cªwùß»obP°àØàx˜ý½m¿ç[W_W´4ÄsZ›œ@€@ P4U±	"B©WªD4Õºwøx°hØè˜¸Wl6	+‹Í^{\_ýuKãwt¼…õæŒQGtŒF>Õÿ¤Îu¢vJHp` `@@À'M³Õ	g…ßtà7Ý÷¶.Bùÿ6‚¬õû¹T8ðÀ€[î<:1JÿÿÕU€0àpL(ÄŠI2{ÕªUP†€ð_¨
zÕà\«UÀxõÍ~! ªU¾WªÔ0ù¨X¨ØpûªÕªÕÿÿª}ïpÿÿ®Uêtÿÿ€`0øøøðw³ÔÇW\o¿¼ûûû¿ýûp‹ûû¿¿¿ûûû¿¿¿ûûû¿¿¼üüü¼Àw³ÔÇW\o¿¿ûûû¿¿¿ûûû¿¿¿ûûû¿¿¿ûûû¿¼¼ÿýü¿ÿ€@ÿÀ@ ÿwót÷Gÿ¿¿ûûûÿÿ¿¿ûûûÿÿ¿¿ûûûÿÿ¿¿ûûûÿÿ¼¼ÿüüüÿÿÿ€ÿÿ€@@ €@  }UUUU€àXVV€x…{€VÕA·r0U@ÕU}@@ `PP	 À€€€O#

ÆÕ€Õ€U@µPà€@@ ``€ð¬;ÞÀ0Ìf€à0ø
>±` ` @@ àWªÕªUH$ €àX¨W
€`6”Ïw¯ö~€€€€`@ 	¼\\ˆX¨X€@090pð°0¸P°Ððpp0ø÷à À€€€€€à8CBBÂŽ€€€9ÇÇÀÀGÌGÀ@Çã€@@€9‡@ÀÍ˜ÎBBBãà€€€C8€€€€€	å(-…b<¤DC 0€€€€8aÀa8	ÒÒb…-X„„X0 â77â€€€€(åCD¤<€8îQ(€@"!5+P(|C€€`0X,Òi0€@€@@€`0X,Òi0€@`0X,Òi0€@`0X,Òj4†Çãó0001sgn8pàÀ€ÿÿ‚„ˆ‘¢ÿÿ"Dˆ"{ÿÿ"FŠ"|ÿÿ¢¤¨±¢ÿÿ"Dˆ"ÿÿ"Dˆ"ÀÀÀÀÀÀÀÄˆ‘¢ÄˆÿÿDˆ"DˆÿÿFŠ"FŠþÿ¤¨±¢¤¨¿ÿDˆ"DˆÿÿDˆ"DˆÿÿÀÀÀÀÀÀÀÀ€ÿ€ÿÄˆ‘¢ÿÿDˆ"ÿÿFŠ"ÿÿ¤¨±¢ÿÿDˆ"ÿÿDˆ"ÀÀÀÀÀÀÀÀÄˆ‘¢Äˆ‘ÿDˆ"DˆÿFŠ"FŠþ¤¨±¢¤¨±¿Dˆ"DˆÿDˆ"DˆÿÀÀÀÀÀÀÀÀÿÿÿÿÿÿÀ00xüü?üþÿÿÿÿÿÿÀàð€?ÿ?ÿÿÿÿÿÿÿÿÿÀðøüÀàðüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøüþÿÿÿ€Àüüüüüü10REM machine gun sound effect12REM a public domain donation from DIGITAL EXPRESS100DATA 62,0,211,224,201110FOR x=1 TO 5:READ mc:POKE x, mc:NEXT200FOR z=1 TO 5210POKE 2, 231:CALL 1:POKE 2, 240:CALL 1220FOR x=1 TO 25:NEXT230POKE 2, 229:CALL 1:POKE 2, 240:CALL 1240FOR x=1 TO 50:NEXT:NEXT:CALL 64851Wtxt2.HR2HB·PWtxt2.HR3HB·SWtxt2.HR4HB·VWsp26AR4HB·Y—Wsp27AR4HB·d|WPAINTERAB·o•Wsnd01AHpB·z"WBLOCKS LEFT{ÅøWBLOCKS LEFT|Ä10REM spring recoil sound effect12REM a public domain donation from DIGITAL EXPRESS100DATA 62,0,211,224,201110FOR x=1 TO 5:READ mc:POKE x, mc:NEXT200FOR z=0 TO 15210POKE 2, 229:CALL 1:POKE 2, 240+z:CALL 1220FOR x=1 TO 40:NEXT:NEXT:CALL 64851		ôWsp25AnpB·C

Wtxt2.HRPHB·MWtxt2.HR2HB·PWtxt2.HR3HB·SWtxt2.HR4HB·VWsp26AR4HB·Y—Wsp27AR4HB·d|WPAINTERAB·o•Wsnd01AHpB·z2WBLOCKS LEFT{ÅøWsnd03AHpB·|ìWBLOCKS LEFT}Ã10REM falling death sound effect12REM a public domain donation from DIGITAL EXPRESS100DATA 62,0,211,224,201110FOR x=1 TO 5:READ mc:POKE x, mc:NEXT200FOR z=0 TO 39210POKE 2, 128:CALL 1:POKE 2, 18+z:CALL 1:POKE 2, 144+z/3:CALL 1220FOR x=1 TO 15:NEXT:NEXT:FOR z=5 TO 15230POKE 2, 128:CALL 1:POKE 2, 63:CALL 1:POKE 2, 144+z:CALL 1240FOR y=1 TO 100:NEXT250POKE 2, 230:CALL 1:POKE 2, 242:CALL 1:FOR y=1 TO 100:NEXT260POKE 2, 229:CALL 1:POKE 2, 243:CALL 1270FOR y=1 TO 75:NEXT:CALL 64851snd02AHpB·{10REM machinery sound effect12REM a public domain donation from DIGITAL EXPRESS100DATA 62,0,211,224,201110FOR x=1 TO 5:READ mc:POKE x, mc:NEXT200FOR x=9 TO 12:FOR y=25 TO 110210POKE 2, x:CALL 1:POKE 2, y:CALL 1:NEXT:NEXT500CALL 64851npB·:		ôWsp25AnpB·C

Wtxt2.HRPHB·MWtxt2.HR2HB·PWtxt2.HR3HB·SWtxt2.HR4HB·VWsp26AR4HB·Y—Wsp27AR4HB·d|WPAINTERAB·o•Wsnd01AHpB·z2Wsnd02AHpB·{10REM simple list sorter12REM a freeware donation by DIGITAL EXPRESS (c) DEC'8814REM presented in Nibbles & Bits16REM Do NOT remove these REMark statements.50REM NOTE: capital letters precede lower case60REM NOTE: ESCape at menus restarts first menu70REM NOTE: QUIT exits string inputs80REM NOTE: blank PRINT after inputs on line # 523090REM this prevents the "End of DATA" error message.100 mx%=600:DIM wd$(mx%): es$=CHR$(27): ct%=0: d$=CHR$(4)110DATA clear the workspace,add to exising list,delete laUB 10000:GOTO 5005100HOME:? " Which drive?":?5110? " 1 = tape one":? " 2 = disk one"5120GET k$:IF k$=es$ GOTO 5005130 k%=VAL(k$):IF k%<1 OR k%>2 GOTO 51205140POKE 16821, 2^(4-k%):HOME5150? " insert medium now...":?:GOSUB 100005160HOME:? d$; " catalog":?:?:GOSUB 10000:HOME5170? " Enter filename to LOAD:"5180?:INPUT " "; fi$5190IF fi$="QUIT" OR fi$="quit" GOTO 5005200HOME:? " loading...":? d$; " open "; fi$5210? d$; "read "; fi$5220INPUT " "; ct%5230FOR x=1 TO ct%:INPUT " "; wd$(x):NEXT:?5240? TO 9:? " "; x; " = "; m1$(x):NEXT540GET k$:IF k$=es$ GOTO 570550 k%=VAL(k$):IF k%<1 OR k%>9 GOTO 540560ON k% GOTO 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 570570TEXT:? " end of program.":END1000HOME:GOSUB 13000:? " really clear list? (Y or N)"1010GET k$:IF k$<>"Y" AND k$<>"y" GOTO 5001020HOME:? " list is cleared!!!":?:GOSUB 10000:RUN2000HOME:GOSUB 11000:? " (type quit to exit)":?2010? " Enter item # "; ct%+1; ":"2020INPUT " "; wd$2030IF wd$="QUIT" OR wd$="quit" OR wd$="" GOTO 5002040 ct%=? ct%6130FOR x=1 TO ct%:? wd$(x):NEXT6140? d$; " close "; fi$6150HOME:? " file STORED.":?:GOSUB 10000:GOTO 5007000HOME:GOSUB 13000:? " Which printer?":?7010? " 1 = ADAM printer":? " 2 = dot matrix printer"7020GET k$:ON k$=es$ GOTO 500: pt%=VAL(k$)7030HOME:? " insert paper...":?:GOSUB 10000:HOME7040POKE 64885, 0:PR #pt%:FOR x=1 TO ct% STEP 2: x$=STR$(x)7050IF x<10 THEN  x$=" "+x$7060IF x<100 THEN  x$=" "+x$7065 le%=LEN(wd$(x)):IF le%>33 THEN  wd$(x)=LEFT$(wd$(x), 33)7070? x$; "   "; wd$(x); SPC(3"3030? " (Y or N):"3040GET k$:IF k$<>"Y" AND k$<>"y" GOTO 5003050 ct%=ct%-1:IF ct%<0 THEN  ct%=03060HOME:? " Item deleted...":?:GOSUB 10000:GOTO 5004000HOME:GOSUB 13000:? " Replace which item (1-"; ct%; ")?":?4010INPUT " "; nu$: nu%=VAL(nu$):IF nu%<1 OR nu%>ct% GOTO 5004020HOME:? " "; nu%; "--> "; wd$(nu%):?:?4030? " Enter replacement:"4040INPUT " "; wd$:IF wd$="quit" OR wd$="QUIT" GOTO 5004050 wd$(nu%)=wd$:GOSUB 2100:GOTO 5005000HOME:IF ct%=0 GOTO 51005010? " Clear this workspace first!!":?:GOSst item,replace item120DATA load list,store list,print list,display list,exit program130FOR x=1 TO 9:READ m1$(x):NEXT140POKE 12185, 224:POKE 16149, 255:POKE 16150, 255200DATA 245,219,64,203,71,40,250,241,211,64,201210DATA 205,11,47,205,78,4,254,13,192,62,10,24,2220DATA 62,0,195,78,4230FOR x=0 TO 28:READ mc:POKE 1102+x, mc:NEXT240POKE 16217, 89:POKE 16218, 4250POKE 16219, 92:POKE 16220, 4500POKE 17059, 244:POKE 17115, 244:POKE 17126, 25:TEXT510INVERSE:? " SIMPLE LIST SORTER":NORMAL:?:?530FOR x=1 d$; "close "; fi$5250HOME:? " file LOADED.":?:GOSUB 10000:GOTO 5006000HOME:GOSUB 13000:? " Which drive?":?6010? " 1 = tape one":? " 2 = disk one"6020GET k$:IF k$=es$ GOTO 5006030 k%=VAL(k$):IF k%<1 OR k%>2 GOTO 60206040POKE 16821, 2^(4-k%):HOME6050? " insert medium now...":?:GOSUB 100006060HOME:? d$; " catalog":?:?:GOSUB 10000:HOME6070? " Enter filename to STORE:"6080?:INPUT " "; fi$6090IF fi$="QUIT" OR fi$="quit" GOTO 5006100HOME:? " storing...":? d$; " open "; fi$6110? d$; " write "; fi$6120ct%+1: wd$(ct%)=wd$:GOSUB 21002050GOSUB 11000:?:GOTO 20102100?:? " sorting..."; 2110FOR x=1 TO ct%: dd=12120 dd=2*dd:ON dd<ct% GOTO 21202130 dd=INT((dd-1)/2):ON dd=0 GOTO 21902140FOR xx=1 TO ct%-dd: yy=xx2150 k=yy+dd:IF wd$(k)>wd$(yy) GOTO 21802160 tw$=wd$(yy): wd$(yy)=wd$(k): wd$(k)=tw$: yy=yy-dd2170IF yy>0 GOTO 21502180NEXT xx:GOTO 21302190FOR x=1 TO 11:? CHR$(8); :NEXT: fe=FRE(0):RETURN3000HOME:GOSUB 13000:? " LAST ITEM:":?3010? " "; ct%; "--> "; wd$(ct%):?:?3020? " Really delete this item?4-LEN(wd$(x))); 7080ON x+1>ct% GOTO 72007090 y=x+1: y$=STR$(y):IF y<10 THEN  y$=" "+y$7100IF y<100 THEN  y$=" "+y$7110 le%=LEN(wd$(y)):IF le%>33 THEN  wd$(y)=LEFT$(wd$(y), 33)7115? y$; "   "; wd$(y)7120IF PEEK(64885)=129 OR PEEK(64885)=137 GOTO 72107200NEXT7210PR #0:GOTO 5008000HOME:GOSUB 130008100ON ct%=1 GOTO 89008110VTAB 8:? " Enter # to start at:"8120? " (1-"; ct%; ") or '0' for ALL"8130INPUT " "; nu$: nu%=VAL(nu$):IF nu%<0 OR nu%>ct% GOTO 5008140IF nu%=0 THEN  nu%=18150HOME:? " Tap 'I' tATA E5E6E416,XYZ1,E5E6E48,XYZ1,E5E6E48,XYZ11110DATA E5E6E416,XYZ1,E5E6E48,G5G6G48,C5C6C4121120DATA D5D6D44,E5E6E424,F5F6F48,XYZ1,F5F6F48,XYZ11130DATA F5F6F412,XYZ1,F5F6F44,XYZ1,F5F6F481140DATA E5E6E48,XYZ1,E5E6E412,XYZ1,E5E6E44,G5G6G48,XYZ11150DATA G5G6G48,F5F6F48,D5D6D48,C5C6C4241160DATA G4G5G38,E5E6E48,D5D6D48,C5C6C48,G4G5G324,XYZ11170DATA G4G5G34,XYZ1,G4G5G38,E5E6E48,D5D6D48,C5C6C481180DATA A5A6A424,XYZ1,A5A6A48,F5F6F48,E5E6E481190DATA D5D6D48,B5B6B424,G5G6G48,XYZ1,G5G6G481200DATA F5F6F48,D5D6DK(64885)<>0 GOTO 12020:GOTO 1201012020IF PEEK(64885)=129 OR PEEK(64885)=137 THEN POP:GOTO 50012030POKE 64885, 0:RETURN13000IF ct%>0 THEN RETURN13010HOME:? " No items in list!!!":?13020GOSUB 10000:POP:GOTO 500K(64885)=129 OR PEEK(64885)=137 GOTO 72107200NEXT7210PR #0:GOTO 5008000HOME:GOSUB 130008100ON ct%=1 GOTO 89008110VTAB 8:? " Enter # to start at:"8120? " (1-"; ct%; ") or '0' for ALL"8130INPUT " "; nu$: nu%=VAL(nu$):IF nu%<0 OR nu%>ct% GOTO 5008140IF nu%=0 THEN  nu%=18150HOME:? " Tap 'I' t GOTO 30303020IF PEEK(be-1)>64 GOTO 32003030IF x=LEN(nt$) GOTO 32003040 a1=VAL(MID$(nt$, x, 1)): a2=VAL(RIGHT$(nt$, 1))3050POKE be, a1*10+a2: x=x+1:GOTO 31003100 be=be+1:NEXT x:RETURN3200POKE be, VAL(MID$(nt$, x, 1)):GOTO 31004000 tempo=240: volume=15: pointer=29000: offset=24010POKE 27946, offset:REM (39,109)4020POKE 27792, tempo:REM (144,108)4030POKE 27793, volume:REM (145,108)4040POKE 27795, pointer/256:REM (147,108)4050POKE 27794, pointer-PEEK(27795)*256:REM (146,108)4100IF PEEK(27800)<>229100LOMEM :32000: be=29000110? " one moment please ...":?1000REM "Jingle Bells"1010REM must load SmartTUNES player routine first1020DATA E5E6E48,XYZ1,E5E6E48,XYZ1,E5E6E416,XYZ11030DATA E5E6E48,XYZ1,E5E6E48,XYZ1,E5E6E416,XYZ11040DATA E5E6E48,G5G6G48,C5C6C412,D5D6D44,E5E6E4241050DATA F5F6F48,XYZ1,F5F6F48,XYZ1,F5F6F412,XYZ11060DATA F5F6F44,XYZ1,F5F6F48,E5E6E48,XYZ11070DATA E5E6E412,XYZ1,E5E6E44,XYZ1,E5E6E481080DATA D5D6D48,XYZ1,D5D6D48,E5E6E48,D5D6D4161090DATA G5G6G416,E5E6E48,XYZ1,E5E6E48,XYZ11100Do abort display."8160? " Tap 'II' to pause display.":?:GOSUB 100008165HOME:POKE 64885, 0:FOR x=nu% TO ct%8170 x$=STR$(x):IF x<10 THEN  x$=" "+x$8180IF x<100 THEN  x$=" "+x$8190? " "; x$; "..."; wd$(x)8200 pk=PEEK(64885):ON pk=129 OR pk=137 GOTO 5008210ON pk=130 OR pk=138 GOSUB 120008220NEXT:?:?:GOSUB 10000:GOTO 5009999END10000? " tap any key to continue...":GET k$:RETURN11000IF ct%<mx%+1 THEN RETURN11010HOME:? " Workspace is full!!!":?:GOSUB 1000011020POP:GOTO 50012000POKE 64885, 012010ON PEE48,E5E6E424,G4G5G38,E5E6E481210DATA D5D6D48,C5C6C48,G4G5G324,XYZ1,G4G5G34,XYZ11220DATA G4G5G38,E5E6E48,D5D6D48,C5C6C48,A5A6A424,XYZ11230DATA A5A6A48,F5F6F48,E5E6E48,D5D6D48,G5G6G48,XYZ11240DATA G5G6G48,XYZ1,G5G6G412,XYZ1,G5G6G441250DATA A6A7A58,G5G6G48,F5F6F48,D5D6D481260DATA C5C6C4162599DATA W2900READ nt$:IF nt$="W" THEN GOSUB 3000:GOTO 40002910GOSUB 3000:GOTO 29003000FOR x=1 TO LEN(nt$): ak=ASC(MID$(nt$, x, 1))3010IF ak>64 THEN POKE be, ak:GOTO 31003015 pk=PEEK(be-1):IF pk=88 OR pk=89 OR pk=90o abort display."8160? " Tap 'II' to pause display.":?:GOSUB 100008165HOME:POKE 64885, 0:FOR x=nu% TO ct%8170 x$=STR$(x):IF x<10 THEN  x$=" "+x$8180IF x<100 THEN  x$=" "+x$8190? " "; x$; "..."; wd$(x)8200 pk=PEEK(64885):ON pk=129 OR pk=137 GOTO 5008210ON pk=130 OR pk=138 GOSUB 120008220NEXT:?:?:GOSUB 10000:GOTO 5009999END10000? " tap any key to continue...":GET k$:RETURN11000IF ct%<mx%+1 THEN RETURN11010HOME:? " Workspace is full!!!":?:GOSUB 1000011020POP:GOTO 50012000POKE 64885, 012010ON PEE GOTO 42004110IF PEEK(28000)<>195 GOTO 42004120IF PEEK(28110)<>108 GOTO 42004130GOTO 50004200?:? " ERROR!!!  SmartTUNES"4210? " routine not detected.":END5000CALL 27800:END6G48,XYZ11240DATA G5G6G48,XYZ1,G5G6G412,XYZ1,G5G6G441250DATA A6A7A58,G5G6G48,F5F6F48,D5D6D481260DATA C5C6C4162599DATA W2900READ nt$:IF nt$="W" THEN GOSUB 3000:GOTO 40002910GOSUB 3000:GOTO 29003000FOR x=1 TO LEN(nt$): ak=ASC(MID$(nt$, x, 1))3010IF ak>64 THEN POKE be, ak:GOTO 31003015 pk=PEEK(be-1):IF pk=88 OR pk=89 OR pk=9004200?:? " ERROR!!!  SmartTUNES"4210? " routine not detected.":END5000CALL 27800:ENDB616,C5C4C632,E5E4E6321150DATA C5C4C616,G4G3G516,E4E3E5161160DATA G4G3G516,F4F3F516,D4D3D5161170DATA C4C3C5322599DATA W2900READ nt$:IF nt$="W" THEN GOSUB 3000:GOTO 40002910GOSUB 3000:GOTO 29003000FOR x=1 TO LEN(nt$): ak=ASC(MID$(nt$, x, 1))3010IF ak>64 THEN POKE be, ak:GOTO 31003015 pk=PEEK(be-1):IF pk=88 OR pk=89 OR pk=90 GOTO 30303020IF PEEK(be-1)>64 GOTO 32003030IF x=LEN(nt$) GOTO 32003040 a1=VAL(MID$(nt$,100LOMEM :32000: be=29000110? " one moment please ...":?1000REM "Silent Night"1010REM must load SmartTUNES player routine first1020DATA G4G3G516,A5A4A64,G4G3G5161030DATA E4E3E532,G4G3G516,A5A4A641040DATA G4G3G516,E4E3E532,D5D4D632,D4YZ11050DATA D5D4D616,B5B4B632,C5C4C632,C4YZ11060DATA C5C4C616,G4G3G532,A5A4A632,A4YZ11070DATA A5A4A616,C5C4C624,B5B4B681080DATA A5A4A616,G4G3G532,A5A4A681090DATA G4G3G516,E4E3E532,A5A4A632,A4YZ11100DATA A5A4A616,C5C4C624,B5B4B681110DATA A5A4A616,G4G3G532,A5A4A6811230DATA 254,88,32,7,62,160,205,207,109,195,94,109340DATA 254,89,32,7,62,192,205,207,109,195,94,109350DATA 254,90,32,7,62,224,205,207,109,195,144,109360DATA 254,65,32,2,14,0,254,97,32,2,14,1,254,66,32,2,14,2370DATA 254,67,32,2,14,3,254,99,32,2,14,4,254,68,32,2,14,5380DATA 254,100,32,2,14,6,254,69,32,2,14,7,254,70,32,2,14,8390DATA 254,102,32,2,14,9,254,71,32,2,14,10,254,103,32,2,14,11400DATA 35,126,214,2,71,229,33,232,107,17,24,0,25,16,253410DATA 121,135,95,22,0,25,0,0,0,58,148,108,254,0,32,29420DATA  x, 1)): a2=VAL(RIGHT$(nt$, 1))3050POKE be, a1*10+a2: x=x+1:GOTO 31003100 be=be+1:NEXT x:RETURN3200POKE be, VAL(MID$(nt$, x, 1)):GOTO 31004000 tempo=235: volume=15: pointer=29000: offset=24010POKE 27946, offset:REM (39,109)4020POKE 27792, tempo:REM (144,108)4030POKE 27793, volume:REM (145,108)4040POKE 27795, pointer/256:REM (147,108)4050POKE 27794, pointer-PEEK(27795)*256:REM (146,108)4100IF PEEK(27800)<>229 GOTO 42004110IF PEEK(28000)<>195 GOTO 42004120IF PEEK(28110)<>108 GOTO 42004130GOTO 500 GOTO 30303020IF PEEK(be-1)>64 GOTO 32003030IF x=LEN(nt$) GOTO 32003040 a1=VAL(MID$(nt$, x, 1)): a2=VAL(RIGHT$(nt$, 1))3050POKE be, a1*10+a2: x=x+1:GOTO 31003100 be=be+1:NEXT x:RETURN3200POKE be, VAL(MID$(nt$, x, 1)):GOTO 31004000 tempo=240: volume=15: pointer=29000: offset=24010POKE 27946, offset:REM (39,109)4020POKE 27792, tempo:REM (144,108)4030POKE 27793, volume:REM (145,108)4040POKE 27795, pointer/256:REM (147,108)4050POKE 27794, pointer-PEEK(27795)*256:REM (146,108)4100IF PEEK(27800)<>22910REM SmartTUNES player routine100LOMEM :32000:TEXT:? " one moment ..."105REM set up note table110 ff=110: sf=1.05946309: mh=3597545: st=27648120FOR oc=0 TO 5:FOR nt=1 TO 12130IF nt=1 THEN  fq=(2^oc)*110:GOTO 150140 fq=fq*sf: fq=(fq*1000+.5)/1000150 tb=mh/(32*fq): sb%=tb/16: fb%=tb-16*sb%160POKE st, fb%:POKE st+1, sb%: st=st+2:NEXT:NEXT300DATA 229,213,197,245,42,146,108,126305DATA 245,175,50,148,108,241,254,87,32,17310DATA 62,159,211,224,198,32,211,224,198,32,211,224320DATA 241,193,209,225,20130DATA G4G3G516,E4E3E532,D5D4D632,D4YZ11130DATA D5D4D616,F5F4F616,D5D4D6241140DATA B5B4B616,C5C4C632,E5E4E6321150DATA C5C4C616,G4G3G516,E4E3E5161160DATA G4G3G516,F4F3F516,D4D3D5161170DATA C4C3C5322599DATA W2900READ nt$:IF nt$="W" THEN GOSUB 3000:GOTO 40002910GOSUB 3000:GOTO 29003000FOR x=1 TO LEN(nt$): ak=ASC(MID$(nt$, x, 1))3010IF ak>64 THEN POKE be, ak:GOTO 31003015 pk=PEEK(be-1):IF pk=88 OR pk=89 OR pk=90 GOTO 30303020IF PEEK(be-1)>64 GOTO 32003030IF x=LEN(nt$) GOTO 32003040 a1=VAL(MID$(nt$,126,6,128,128,211,240,35,126,211,240,58,145,108430DATA 71,62,159,144,211,240,33,148,108,52,225,35,126,195,166,108440DATA 254,1,32,21450DATA 126,6,160,128,211,240,35,126,211,240,58,145,108460DATA 71,62,191,144,211,240,24,221470DATA 126,6,192,128,211,240,35,126,211,240,58,145,108480DATA 71,62,223,144,211,240,225,175,50,148,108,35,126485DATA 254,33,48,4,254,0,32,6,34,149,108,195,170,108,71490DATA 237,91,143,108,30,0,19,122,179,32,251492DATA 245,197,205,168,252,56,12,58,117,253,254,27,32,8494DATA 193,im for his continuing support of ADAM and A.N.N.On this disk we have several of his PD clips, all are        seasonal clips.    We also have his PD programs from N&B ll/88 & 12/88.  REFER  TO SPECIFIED ISSUES OF N&B BEFORE USING ANY PROGRAM.  Some   have powerful machine language and you should be aware of    what may happen PRIOR to using.  NO RESPONSIBILITY FOR USE   is taken by A.N.N., its distributors, editors, agents, etc.  USE AT YOUR OWN RISK.   Strongly suggest you read the        appropriate isx	ESOL now has given A.N.N. permission to start including       various of his numerous PD Adam programs as part of the      A.N.N. disks as a regular feature.We thank him SOL SWIFT OF PHOENIX 2000, has been a sponsor of A.N.N.      contests for some time.SOL now has given A.N.N. permission to start including       various of his numerous PD Adam programs as part of the      A.N.N. disks as a regular feature.We thank hast      Salt Lake City 84l06 (UT)ADAMzap (Eric Danz) l7 Capstan Rd.           West Milford NJ 07480-48l6A.I.M.              Rt 2 Box 2756            Pearland TX    7758lAdam Connection     POBX 562 - Mason Rd.  Champlain NY      129l9-0562  AUFG (Ont.Can.)     342 Nagel Ave.           Orleans ONT.   KlE lR6AWAUG  (Sysop)      l5l6B Carswell Cir.     Bolling AFB DC   20336CIS ADAM SYSOP      38l4 Ocean Ave. T-2      E.Rockaway NY   ll5l8  Calgary Adam Family Gerry St.Perry 6508 34th St. SW Calgary Alsues of N&B.On 9010ANN-1 are the programs: SORTER, SmartTUNES,           SilentNite, JingleBell, Snd0l-04.On 9010ANN-2 is PAINTER.Again we thank Sol Swift for allowing us to pass these on    top you and again caution you to read the appropriate N&B    issues for full details and instructions.or of A.N.N.      contests for some time.SOL now has given A.N.N. permission to start including       various of his numerous PD Adam programs as part of the      A.N.N. disks as a regular feature.We thank h241,34,149,108,195,170,108,193,241,16,219496DATA 35,126,195,166,108498DATA 213,245,58,145,108,71,241,79,121,144,211,240499DATA 17,12,0,27,122,179,32,251,16,242,209,201,-1500 be=27800: tt=0510READ mc:IF mc=-1 GOTO 530520POKE be, mc: be=be+1: tt=tt+mc:GOTO 510530IF be=28135 AND tt=38509 GOTO 600540?:? " data entry error!!":END600?:? " SmartTUNES routine in RAM.":?610? " Now, just RUN a TUNE module.",71,229,33,232,107,17,24,0,25,16,253410DATA 121,135,95,22,0,25,0,0,0,58,148,108,254,0,32,29420DATA xObany AUG          3 Robin Hood Rd.         Albany NY 12203-5113Adams Alive (E&T)   l0l0 Westminster         Garland TX     75040^QAdam-Link           2337 South 600 East^A    ADAM NEWS NETWORK CORRESPONDANTS    [ 7/20/90]                           Albany AUG          3 Robin Hood Rd.         Albany NY 12203-5113Adams Alive (E&T)   l0l0 Westminster         Garland TX     75040^QAdam-Link           2337 South 600 Eim for his continuing support of ADAM and A.N.N.On this disk we have several of his PD clips, all are        seasonal clips.    We also have his PD programs from N&B ll/88 & 12/88.  REFER  TO SPECIFIED ISSUES OF N&B BEFORE USING ANY PROGRAM.  Some   have powerful machine language and you should be aware of    what may happen PRIOR to using.  NO RESPONSIBILITY FOR USE   is taken by A.N.N., its distributors, editors, agents, etc.  USE AT YOUR OWN RISK.   Strongly suggest you read the        appropriate isberta T3E 5M2East Bay AUG (Ozretich) 6097 Slopeview Ct. Castro Valley CA  94552Edmonton AUG        ll720 University Ave.    Edmonton Alberta T6G lZ5Emerald Coast AUG   POBX 4934                Ft. Walton Beach 32549 FL.463 AUG             8522 Hohman Ave.         Munster IN      46321         Gulf Coast  AUG     6665 Timbers Dr.         Mobile AL      36695Hamilton AUG CandaInland Empire AUG   3l4l E. Palmyra Ave.     Orange CA      92669 Metro Orlando AUG   l003 Oak Lane            Apopka FL.     3A Yanceville St.  Greensboro NC 27405Tony Patterson      7l25 Dewberry St.  Ocean Springs  MS 39564Robt. Seat          l04 N. Jordan # 302    Alexandria VA 22304Sol Swift           POBOX 1292         Kingsmountain  NC 28086Carol Tapia         3714 Seguin              Dallas TX   75220David Tidman        POBOX 53324             Wash. DC      20009Joe Waters          l3009 Gray Hills Rd. NE Albuquque NM  87lllBARRY Wilson        12967 Weatherfield Dr.   St.Louis    63l46 878-35022 Wilkes                 Lowell  MI        49331SLUG (Louisville)   6413 Briscoe Ln.         Louisville KY  40228S.M. Video          POBX 3l3                 Oakton VA      22l24VISA (D. Cobley)  862 Shorewood Dr. Parksville BC CANADA V9P 1S6Walters Software    RD#4  Box 289-A          Titusville PA  l6354Bob Blair           120 Hourglass Dr.        Venice FL.     34293DON BUELTMANN       455 Skylark Dr.          St.Louis    6303l   837-0060Herman H. Cherney   l98 Sand Creek Rd.       Albany, NY  12205-l8l7Ron Collinsåååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå    Columbia    6520l l-442-162George Koczwara     4034 E. 52nd         Newburgh Hts.OH 44l05John Lingrel        5665 Myers               Akron OHIO  443l9Richard Lefko       20 Ashley Dr.           Milford NH   03055Bart Lynch          45ll S. 256 St.          Kent WA     98032Jack MacKenn        4l5 Camden Dr.           Falmouth VA 22405Herman Mason Jr.    8912 Blaine Ave.         Cleveland   44l06   OH        Larry Overman       ll020 Glaxinia Fountain Valley CA.   92708 Paul Pappas         2623-2703Metro Toronto AUG   21 Rondale Blvd.         Toronto ONT.   M6A lH6MMSG (J. Marshall)  POBX lll2                Broomfield CO  80020NIAD                POBX l3l7                Lisle IL       60532Omaha AUG           809 W. 33rd Ave.         Bellevue NE    68005 Plink   Adam Sysop  4560 S.Hydraulic Ave.B47 Wichita  KS    672l6-2823Practical Programs  43l8 Monroe Ave.         Kalamazoo MI   49002Puget Sound Adam    22607 SE 322nd           Kent WA        98042 Reedy Software      POBX l29        åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå         529 Grandview Ave.       Barberton OH 44203Steve Dawes         POBX 120l9               Omaha NE    68112-00l9JIM DUFFY           # 4 Inverness Ct.        St.Peters   63376   279-l677 AL FITZGERALD       8747 Anetta              St.Louis    63l47   383-3616RICKI GERLACK       l402-A Werner Park  Fort Campbell KY 42223Mark GordonAaron Hamlett       1204 Green Downs Dr. Round Rock   TX 78664Jeff Jodoin         l5l6B Carswell Cir.  Bolling AFB  DC 20336MICHAEL  KEITH      702 Wilkes           åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå