нEнCfГ       Initializing Media      e ADAM's memory (RAM).    We had boards  made by  various manufacturers; then, later, Micro Innovations got into     the act, and supplied 64K boards, 256K boards, and even 1 & 2 Meg  boards. This  (M-I) has been  our only supply  of  64K boards   for quite  some time, now.  However, late in 1993, Mark Gordon   announced    that M-I was going out of the hardware manufacturing   business,   and sold off the  various  items  that had collected  during       their past five years of operation.    ADAM'S HOUSFIRST DIR  ЃUЄя BOOT       ђDIRECTORY  Ш64K-EXPH  Ђ75THISSUH AC06ATTNH ЂADAMCON7H ЂADCLOCK3H ЂADMCLOCKH ЂANNTOBBSH ЂBARRYH    BBS-D94H  EDIT9501H "		FAQ-C-3H  +ЂFAQ-C-4H  .FAQ-C-5H  1ЂGASH      5ЂGFAH      :GOGODOS2H B		LANDERH   Khat M-I made, came with components that gave us 64K of memory     expansion, but were expandable to 256K, by adding the necessary    components to them.This  was great.  However, in order to access anything over 64K    you had to wire the board to your parallel-printer  board (or to   an addressor board).  Most ADAMites don't have a  parallel board,  un-less  they  are using a parallel printer (since it is           necessary to let ADAM access the printer).    I tried  to impress  on Terry, that what ADA‚CяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя----------64K EXPANDERS----------I think that everyone is fami-liar with the 64K memory expander    boards for ADAM.  This is the one that  Coleco developed some      years ago, to fit into the number three slot inside your ADAM      console and doublE   (Terry       Fowler), in Pearland, TX, became  the heir to most of the          remaining hardware and repair parts.  He, and  Mark, have  been    trying  to get someone to  take over  the  manufacturing end, but  have no offers, as yet.We definitely need  64K boards for ADAM.  I called  Terry  some    weeks ago, hoping  to order some, since our stock  was running     low. He informed me that he only had a few 64K boards left, but    intended to upgrade them to 256K capacity. (The latest boards      tЂLOGO27H   PLOGOBOSSAOUZLOGOBOSSH \ЂMAZEMAKH  _MAZEMAKRa  dЂMOVARNDH  jORIGCOMBH mREADME1H  oLOGOBOSDH tЂLOGOBOSSa  {ЂMAZEMAKRAT~rBLOCKS LEFT„ M users really needed were  64K expander    boards.  In most cases, they will suffice for the average user.    And, if  they need  or want more RAM; they can always go to 256K,  or more.I  understand Terry's wanting to use  the components he has on     hand, to upgrade  the few  boards he has  in stock to 256K; but    the average ADAM user doesn't want to spend about $90, for a 256K  board when he can get all he needs in a 64K board for about $40    (yes, the prices  are  going up, due to the shortage of hat M-I made, came with components that gave us 64K of memory     expansion, but were expandable to 256K, by adding the necessary    components to them.This  was great.  However, in order to access anything over 64K    you had to wire the board to your parallel-printer  board (or to   an addressor board).  Most ADAMites don't have a  parallel board,  un-less  they  are using a parallel printer (since it is           necessary to let ADAM access the printer).    I tried  to impress  on Terry, that what ADA‚#яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя---------------------------------     ---SEVENTY-FIVE ISSUES---     ---------------------------------  75--Yes, this is the 75th issue  of the AUGER newsletter.   Five people met on the 20th of  September, in 1985; and ECAUG was  born.  They met regu 1994.---------------------------------  DELEGATES:Jerome Ahlf.........Milwaukee, WI  Susan Ahlf..........Milwaukee, WI  Robert Bair......Kendallville, IN  Virginia Bair....Kendallville, IN  Bob Blair...........Englewood, FL  Pat Blair...........Englewood, FL  Guy Bona......North Riverside, IL  Jeanne Bona...North Riverside, IL  Edward Cavanaugh..Lake Whales, FL  Rich Clee............Ontario, CAN  Frances Clee.........Ontario, CAN  Eric Danz........West Milford, NJ  Faye Deere..Fort Walton Beach, FL  Johach year,  which  were the equivalent of one  issue per month.   In May, 1990  we published the  first  booklet-style  edition  of  the  AUGER; and have continued in  this manner ever since.   And now, here it is, the  75th  issue of the AUGER newsletter!                         -----NJD  ---------------------------------SEVENTY-FIVE ISSUES---             --------------------------------- supply).   However, Terry  told me  he is trying  to get  another source of   supply (or someone  to take  over the manufacturing), and  will    let us know  what happens.  I hope it happens soon.  The 64K is a  need- ed addition  to  any  ADAM  users console.  -----NJD64K-EXP SW 75THISSUSW AC06ATTNSW ADAMCON7SW ADCLOCK3SW ADMCLOCKSW ANNTOBBSSW BARRY   SW BBS-D94 SW EDIT9501SW ‚#яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя=================================          -ADAMCON 06-             =================================   Here are the names of the ones  who attended  ADAMCON 06, at  the  Holiday Inn in Sarasota, Florida.   ADAMCON 06 was held on October  6th to 9th,larly, and in  August of 1986, the  first  issue  of the newsletter was published.   The newsletter had no name, so  a contest was held to select one.  The name selected  was the AUGER;  which stands for ADAM Users Group  Educational Report.   The  publishing  was a  little  haphazard at first, but there was  an issue about every other month.  Then in September, 1988  we began  putting out an issue every month,  with a double-issue  for July and  August, and December and January.  This meant  10 issues  en Dougherty......Vicksburg, MI  Jean Dougherty......Vicksburg, MI  Richard Drushel.Cleveland Hts, OH  Marc Epstein...........Tucson, AZ  Rob Friedman.........Freeport, NY  Susan Friedman.......Freeport, NY  Patricia Herrington....Apopka, FL  Bob Herrington.........Apopka, FL  James Howard.......Alexandria, VA  Tom Keene..............Orange, CA  Albert Kendrick, Jr....Sumter, SC  George Kocswara..Newburgh Hts, OH  Howard Pines..Ft.Walton Beach, FL  Elizabeth Pines.Ft.Walton Bch, FL  David Linginbuhl.....Arch---79  ================================= ene TitmsfotfactaRcwsqoiCs'oigia ssei ahcae.FAQ-C-3X
FQC4.TT--5. eie  rtlssbmte yBrrWisn,ANN onr,o cpyrghtlw.nrsiraifo oeo u ubitn mtrattulc.
Br.
Toq ncekail h DMwudbhnldydfetypeogovnmtoamnsrtv eie apefmmeaao ow,frmr dMes (wtvtyhvicmn.)75THISSU.Cnruai oh UGER nwltr gurpblaoohEmadCatAMUsrGru.Fr ds ennnsi
Sepmbr185,UE a ce ansayotA muiy.
Tsriercuts ltlhitrttyo'l etilwnordCy.......San Dimas, CA  Jack Stone............El Paso, TX  Jean Stone............El Paso, TX  Dale Wick............Ontario, CAN  Neil Wick............Ontario, CAN  ==================================================================  OTHER GUESTS:Peter Ames............Orlanda, FL  Alex Blair............Nokomis, FL  Ann Blair.............Nokomis, FL  Bob.Bluttameuller...Englewood, FL  Shirley Bluttameuller.Englewd, FL  Peter Chalfont......Bradenton, FL  Bob Dick............Englewood, FL  Robert Graef.......                        Date: 01-18-95 01:18  From: Bart Lynch                        Read: Yes Replied: No    To: All                               Mark:  Subj: adamcon 7 update! DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDon compuserve, neil wick made the following post-   This is kind of a pre-announcement regarding AdamCon 07.  It's    been moved slightly from Kitchener to Kitchener's twin city of       Waterloo.  Waterloo, as you probably know by now is home to the      ichards...........Glenn, CA  Robert Schaub..........Austin, MN  Donna Schaub...........Austin, MN  Michael Talutis....North Port, FL  Maria Talutis......North Port, FL  Mike Weber..........Bradenton, FL  Betty Weber.........Bradenton, FL  Chuck Weeks........North Port, FL  Don Weisend....Bonita Springs, FL  Bev Weisend....Bonita Springs, FL  =================================  DELEGATES----------------------47  OTHER GUESTS-------------------32  ---------------------------------  TOTAL ATTENDING-------------bold, OH  Barton B. Lynch..........Kent, WA  Herman Mason........Cleveland, OH  Murray McCullough....Ontario, CAN  Mrs. McCullough......Ontario, CAN  Robert Millen..........Venice, FL  Dorothy Millen.........Venicd, FL  James Poulin........Rockledge, FL  Gaylord Sayles..........Miami, FL  Phyllis Sayles..........Miami, FL  Robert Sebelist.....Waterford, ME  Sylvia Sebelist.....Waterford, ME  Robert Slopsema..Grand Rapids, MI  Judith Slopsena..Grand Rapids, MI  L.B. Smalley........San Dimas, CA  Sarah Smalle‚EяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяtMessage #51 (72 is last):Date: Sun Jan 29 08:01:22 1995From: dcobley@qb.island.net (David Cobley)Subject: ADAMcon 07 et alTo: ac087@freenet (Mitchell Ronald)D Area:Adam DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD  Msg#: 194       ....Venice, FL  Ronald Harder......North Port, FL  Betty Harder.......North Port, FL  Don Kasch.........(Not listed)     Mitch Liss..........Kissimmee, FL  Bob Livingston......Englewood, FL  Janet McConeghy.....Englewood, FL  Marilyn McNeil.........Reston, VA  Robert McNeil..........Reston, VA  Robert Miller..........Hudson, OH  Margaret Miller........Hudson, OH  Charles Miller......Englewood, FL  Tony Patterson..........Tampa, FL  Melissa Patterson.......Tampa, FL  Doug Richards...........Glenn, CA  Adam RUniversity of Waterloo, which Dale attends, and which is known  far  and wide for the Z program.    Maybe I shouldn't tell you,  but the  hotel that was originally proposed has now closed down.   Dale and   his girlfriend Jill met with several hotels in Kitchener  and        Waterloo and the Waterloo Inn put together an excellent deal.  The   cost will be the same as or maybe even lower than AdamCon 06.  I     have to get complete details from Dale, but the dates are now        confirmed for July 20 throughytes       for year.  The caller would have to provide his own buffer (point       HL at it), and then pick out the desired data from the buffer. The       advantage to a block device is that you can read the entire time       state in one shot.  If you make it a character device, you're       stuck with writing a control structure which makes multiple       invocations of START_RD/WR_CHAR_DEV and END_RD/WR_CHAR_DEV,       because the EOS routines to do just READ_CHAR_DEV and       WRITE_CHAR_DEV do‚JяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя      Date: Wednesday, January 4, 1995  7:24am         Electronic Mail      From: INTERNET: rfd@po.cwru.edu                    Msg#: 845268      To: Bart Lynch                                                           Re: Re: Adamnet clock          ng needed.      >So here's some questions...>      >Can anyone think of anything to do with the 24 bytes of battery       backed ram?  If not I can just drop device 12.      *DON'T* drop the battery-backed RAM!  That is a perfect way to       implement "CMOS RAM" for the ADAM!  If we can decide on a       standard, we can store system configuration information there, so       that user programs can find out what's attached to the system       without having to do all the detection themselves.  Leproblems with using devices 11       and 12.  In fact, I'll make sure that ADAMserve uses device 11 for       the server clock.  If you can give me the software interface to       your clock (i.e.  how many bytes are transferred, and in what       order), I can make sure that ADAMserve uses it.      I'dd almost prefer that the clock be a block-structured device,       however, with a defined internal organization to the block. E.g.,       8 bytes, ordered as 1/100s, sec, min, hr, day, month, and 2 b 23, 1995.    Make plans now to         attend.  This is one convention you don't want to miss!  * CRR QWK 1.60+ * --- Maximus 2.00 Shown 96%, press <SPACE> for more,  'q' to quit, or 'h' for help  ! Origin: Top Hat BBS [+1 206-244-  9661]  (1:343/40)rford, ME  Robert Slopsema..Grand Rapids, MI  Judith Slopsena..Grand Rapids, MI  L.B. Smalley........San Dimas, CA  Sarah Smallen't have jump table entries. (Or one of them does       and one of them doesn't; my EOS source listing is at home, but I       know that at least one of the pair is missing from the jump       table.)  And this applies to writing to the clock as well; by the       time you finished writing it one character at a time, something       might have rolled over.  Anyway, think about it as a block device:       there would be no extra overhead needed in EOS; as a character       device, I see extra code bei                                        I'd welcome some input on a couple things...first, I'm planning on       taking Adamnet device 11 for the clock and device 12 for the ram.        Coleco planned a modem for device 11 a high resolution monitor for       device 12.  Both will be character devices allowing you to read       only as much data as you need.  (although the access must always       start from the beginning of the data, no random access reading).      In terms of OS design, I have no ave it in;       we'll think of something to use it for.      What are the chances of getting TDOS support for the adamnet clock       from Guy or whoever is maintaining TDOS?  Or should I just       approach >it as a "patch your own" project?      From my limited understanding of TDOS, an ADAMnet clock would be a       trivial addition to TDOS; it's a matter of finding somewhere to       put the read/write routines.  Since TPA space in TDOS is       supposedly tight already, there may be space coered all the parts necessary to build it       from JDR; I've just not had a chance to do it.  It's just a few       gates and a flip- flop, nothing fancy.  If this experiment works,       you can build your own for about $25-$30 and a day's work; and       I'll release the schematic to the ADAM community.  BJ better not       be too unhappy:  this clock design came straight from either Byte       or Dr. Dobbs :)      I'll be doing this project for my own personal enjoyment       regardless of Adam   NMI clock, and write the NMI clock time into the RTC.  EOS itself       only provides GET_DATE and SET_DATE, which would be the logical       place for hooking in access to RTCs.  You'd have to do it in a way       which preserves the original register passing of date parameters,       for compatibility.  Depending upon whether there are enough       registers left over to pass all the time parameters, you might       have to pass a pointer to the rest of the information.      What is the currenrve University      Cleveland, Ohio  44106-7080  U.S.A.ЂЂ	ЂЂЂЂЂЂЂЂЂЂЂЂЂ	ЂЂ	ЂЂЂЂЂ	ЂЂЂЂЂЂЂЂЂ	ЂЂIs it true that EVE type clocks are no longer available?      Eve clocks may be available again as a project, if I can get a       free weekend to build something.  I *believe* that I have       reverseengineered the I/O decode PAL of the Lingrel clock (he put       out a build-your-own schematic, but required you to buy a PAL from       him), based on the software interface and the schematic.  I've       tested it with a digital logic simulator, and it appears to work.        Three months ago I ordnstraints.      What EOS support currently exists for real time clocks?  Is it           simply to run a program that sets the date every time you boot, or       has the file manager been patched to access the clock?      There is *NO* systematic support for RTCs under EOS.  Syd Carter       tied into the NMI under SmartBASIC (actually reading the clock       every single NMI!).  For SmartBASIC 1.x, I used the NMI itself as       a timebase, but provided functions to read the RTC time into the     community interest, but I would like to know if       anyone else is interested in this...besides Bob Blair who wanted       it for the convention. :)      I'm always interested :)  Unfortunately, my ADAM time before the       next ADAMcon will be spent with finishing off the EOS version of       ADAMserve (like I, in the words of Herman Mason, foolishly       promised :) :)      *Rich Drushel*--      Richard F. Drushel, Ph.D.      Department of Biology, Slug Division :)      Case Western Reset state of Adam clocks?  SmartClocks / SydClocks       are still available but I've been told TDOS can't use them because       of a bank switching problem.  Why is that again???      (I may have this backwards) The no-slot clock uses memory-mapped       I/O in the high 32K of RAM, requiring that the software driver be       located in the low 32K of RAM.  Apparently there isn't any       leftover memory between address 0 and 256 to put a driver; and       user programs start at address 256.      ‚LяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяDate: Monday, January 2, 1995  1:09pm             Electronic Mail From:     INTERNET: chris.braymen@sltrib.com             Msg#: 843991  To: Bart Lynch                                                             Re: Adamnet clock                     ..Chris---  SPEED 1.20 [NR]  acked ram?  If not I can just drop device 12.      *DON'T* drop the battery-backed RAM!  That is a perfect way to       implement "CMOS RAM" for the ADAM!  If we can decide on a       standard, we can store system configuration information there, so       that user programs can find out what's attached to the system       without having to do all the detection themselves.  Le the ram. Coleco planned a modem for device 11 a high resolution monitor for device 12.  Both will be character devices allowing  you to     read only as much data as you need.  (although the access must always start from the beginning of the data, no random access reading).So here's some questions...Can anyone think of anything to do with the 24 bytes of battery  backed     ram?  If not I can just drop device 12.What are the chances of getting TDOS support for the adamnet clock from Guy or whoev But, on the other hand I'm paying $25 a year for the ANN service.Bart Lynch said an ANN disk could be down loaded from an  ADAM BBS in 7 minutes.  Most people would be doing so long distance.  Lets say an out-of-state toll call cost 15 cents a      minute.  This person just received the ANN material for $1.05.     That's half of what it's costing me.  How many paid ANN members    with modems and the expertise to down load the disk would drop     their membership?  How many people have modems that are noonger available?I'll be doing this project for my own personal enjoyment regardless of Adam community interest, but I would like to know  if anyone  else is interested in this...besides Bob Blair who wanted it for the convention. :)There are lots of things that could possibly be interfaced to an  old       keyboard controller.  Non-volatile solid state disk drives, maybe PCMCIA memory cards, temperature sensors...  Anybody got  any ideas?Please respond to the list and not to me so everyone can see.                                   Hi all, in the next couple of months I will release a "do-it-  yourself"    Adamnet real time clock project.  You'll be able to convert an old unused adam keyboard into a real time clock / calendar for around $25. Less if you can find a cheap source of  68701      microprocessors.  The project will also have 24 bytes of non-volatile ram on it.I'd welcome some input on a couple things...first, I'm planning  on taking  Adamnet device 11 for the clock and device 12 for‚CяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя MY Response to: Should ANN material be posted on ADAM BBS's? I have mixed feelings about this.  My first reaction was,  "NO,   No, no".  My, NO No no, is just a weak "no" right now.I'm for anything that would help an ADAM BBS be more utilized.    er is maintaining TDOS?  Or should I just  approach  it as a "patch your own" project?What EOS support currently exists for real time clocks?  Is it  simply to   run a program that sets the date every time you boot, or has the file manager been patched to access the clock?What is the current state of Adam clocks?  SmartClocks / SydClocks are still available but I've been told TDOS can't use  them       because of a bank switching problem.  Why is that again??? Is it true that EVE type clocks are no lt ANN    members and never have supported ANN but will now have access to   it's material.For some reason this just doesn't seem, Kosher.I realy don't think by putting the ANN material on a BBS would     mean the down fall of ANN, but it could mean ANN would have to     down scale it's operation.As you can see I realy don't know where I stand on this issue.Ron Mitchell said a decision would be made when all involved are   heard from.  Ron, if you wait for this, the ADAM will be long      dead and goCorrect Adam.Under Communism:  You have two adams.  The government takes both  of   them, formats the disks and gives you a portion of the disks.Under Socialism: You have two adams.  The government takes one of      them and gives it to your neighbor.Under Facism:  You have two adams.  The government takes both of       them and shoots you.Under a Bureaucracy.  You have two adams.  The government takes  both  of them. It shoots one of them.  It reformats the disks from  the      other and then throws set with, "The All involved"? Just   a thought guys,                      Jerry Vrancksike to know  if anyone  else is interested in this...besides Bob Blair who wanted it for the convention. :)There are lots of things that could possibly be interfaced to an  old       keyboard controller.  Non-volatile solid state disk drives, maybe PCMCIA memory cards, temperature sensors...  Anybody got  any ideas?Please respond to the list and not to me so everyone can see.ind out what your neighbor is doing with ten adams.       Then the government reformats all the disks to an IBM format and       gives them to the poor, who can not afford a computer and cannot  eat  the disks and would rather have had some food or even an adam.This is stolen from an article frtom A-Q-Men(sa) of the Iowa-          Illinois Mensa group and originally mentioned cows instead of  adams.(PS it was much funnier with the cows in the original but  translating milk for a cow to an adam situation‚GяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя      To:  Ann Editor                 Message #:  60    From:  Barry Wilson               Submitted:  03 Dec 94 13:25:00   Subject:  Article ?                     Status:  PublicReceived:  Yes                            Group:  AdamThe Politically ne.Now here's my hair brain idea.Lets say I submit something for the ANN disk.  Why can't I be the  one to say if it can be posted on a BBS or not?This article will first appear in the 463 ADAM newsletter.  It     will then be sent to Ron Mitchell for the ANN disk if he wants to  us it.  I also say it can be posted on a BBS.But, what if I submit something to ANN that I only want paying     ANN members to have.  I feel I should be the one to say, "This is  for ANN only".How would something like this them in the trash.Under Capitalism:  You have two adams.  You sell one and buy an  IBM   Clone.Under Democracy:  You have two adams, one neighbor has ten, and  the   other doesn't have any.  The government takes one of your  adams and   uses it as collateral to get a loan.  It uses one-third of the money for defense, to protect your remaining adam.  It  gives   one-third to a foreign government to keep it from going Communist and spends the other one-third of the loan money on          research to f..Chris---  SPEED 1.20 [NR]  acked ram?  If not I can just drop device 12.      *DON'T* drop the battery-backed RAM!  That is a perfect way to       implement "CMOS RAM" for the ADAM!  If we can decide on a       standard, we can store system configuration information there, so       that user programs can find out what's attached to the system       without having to do all the detection themselves.  Le takes some stretching)--- WILDMAIL!/WC v4.00  * Origin: Millennium BBS -*>ASP Approved<*- 1:100/480  (1:100/480.0)  =-=-=-=-=-=-=things that could possibly be interfaced to an  old       keyboard controller.  Non-volatile solid state disk drives, maybe PCMCIA memory cards, temperature sensors...  Anybody got  any ideas?Please respond to the list and not to me so everyone can see.300/1200/2400-24 hours.            (703)960-5315.SysOp:  Jim Howard.---------------------------------  BYTEMAN BBS----------Ontario, CAN  300/1200/2400-24 hours.            (613)230-9511.SysOp:  James Mitchell.            ---------------------------------  C.A.N.A.D.A. BBS-----Ontario, CAN  300/1200/2400 (12pm-6am daily)     (413)531-6721SysOp:  Mike Hurst.---------------------------------  CAT'S LAIR BBS---------------- VT  300/1200-24 hours.(802)295-4831.SysOp:  Pete Ames.-------------------------‚#яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя=================================  ---BULLETIN BOARD SYSTEMS---     =================================  ADAM CASTLE--------------------MO  300 Baud-9pm/9am-7 days.           (314)431-5722.SysOp:  Shawn Merrick.             -----------------------------  300/1200/2400-11pm/5pm-(dawn       (613)829-6354.         weekends).  SysOp:  Guy Cousineau.             ---------------------------------  IEAUG--------------------------CA  300/1200-24 hours.(714)775-1603.SysOp:  Larry Overman.             ---------------------------------  INNER CIRCLE IN MIAMI----------FL  300/1200-24 hours.(305)227-9643.SysOp:  Shane & Keith.             ---------------------------------  LAS VEGAS ADAMLINK-------------NV  300 Baud-24 hours.(702)873-8056.SysOp:  Harvey Seppala.wk.ends.     (801)484-5114.SysOp:  Alan Neeley.---------------------------------  ADAM LINK IN NEW JERSEY--------NJ  300 Baud-24 hours.(201)224-5764.SysOp:  Fred Vicente.              ---------------------------------  ADVENTURE LINE---------------MICH  300 Baud-24 hours.(313)445-1313.SysOp:  ?---------------------------------  ASYLUM BBS---------------------WA  300/1200/2400-24 hours.            (206)859-2018.SysOp:  Bart Lynch.---------------------------------  A.W.A.U.G. BBS---------------- VA  ..Chris---  SPEED 1.20 [NR]  acked ram?  If not I can just drop device 12.      *DON'T* drop the battery-backed RAM!  That is a perfect way to       implement "CMOS RAM" for the ADAM!  If we can decide on a       standard, we can store system configuration information there, so       that user programs can find out what's attached to the system       without having to do all the detection themselves.  Le-----------------------------------------  COLECO DEPOT BBS---------------NY  300/1200/2400-24 hours.            (718)848-3066.SysOp:  Daryll Quinn.              ---------------------------------  FINAL NEXUS BBS----------------NY  300/1200/2400-24 hours-7 days.     (518)298-4294SysOp:  Steve Major.---------------------------------  GAS STATION--------------------TX  300/1200-24 hours.(817)265-8938.SysOp:  M. D. Henderson.           ---------------------------------  GUY'S BBS------------Ontario, CAN----  ADAM CONNECTION BBS-Champlain, NY  300/1200-24 hours.(518)298-4294.SysOp:  Steve Majors.              ---------------------------------  ADAM EXCHANGE BBS-------Akron, OH  300/1200/2400-24 hours.            (216)883-9355.SysOp:  George Koczwara.           ---------------------------------  ADAM-LINK BBS---------Phoenix, AZ  300/1200 Baud-24 hours.            (216)936-3892.SysOp:  Rusty Gillott.             ---------------------------------  ADAM-LINK BBS--Salt Lake City, UT  300/1200 Baud-6pm/8am+            ---------------------------------  MACH I BBS----------Milwaukee, WI  300/1200-9pm/6am.(414)762-0492.SysOp:  Gary Schoenung.            ---------------------------------  MAINE BBS-----------Waterford, ME  300/1200-6pm/8am.(207)583-4923.SysOp:  Robert Sebelist.           ---------------------------------  MICRO-INNOVATIONS BBS--Reston, VA  300/1200/2400-6pm/6:30am-Mon/Fri-  (703)264-3908.  +24 hrs/weekends.  SysOp:  Mark Gordon.---------------------------------  MSB-BBS---------------------he activity of a computer hobbyist is a very personal thing. We    all use our ADAMs in different ways for different purposes.         Sharing that activity with other people is a special gift indeed.   It's special because we don't have to do it. Nobody is going to     pay us for it, and few are going to recognize us in any way. Yet    it's precisely the type of voluntary sharing that you see on this   disk that has kept the ADAM community alive for so many years.      People willing to share their mistakeOp:  Al Fitzgerald.             ---------------------------------  SOUTHWEST FLORIDA BBS----------FL  300/1200/2400-24 hours-7 days.     (813)473-2905.SysOp:  Bob Blair.---------------------------------  TAPPS MUSIC BBS------Ontario, CAN  300/1200-24 hours.(416)741-2432.SysOp:  Terry Cairns.              ---------------------------------  THOMAS ELECTRONICS BBS-Sask., CAN  30012002400-24 hours.              (306)384-7682.SysOp:  Thomas Mackie.             ---------------------------------  TRADING POSTad no matter what         computer you own.-------------------------------------------------------------Took me a little longer than usual this time. There are all sorts   of excuses, none of them particularly valid, so I'll spare you  the gory detail. The material, oddly enough was available early  in     January, but somehow I ran out of 'roundtuits'. There's a fair mix, and I hope you enjoy it. Any comments and       suggestions should be addressed to me, Ron Mitchell, at the         address given ‚DяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяEditor's Notes:Ron MitchellI would like to express my thanks for the  solid contributions  to  this disk from many people. You all know who you are, and  you're   named specifically in the README files. But I would like  to add    something here.T---AZ  300/2400-24 hours.(602)395-9726.SysOp:  Michael Benedict.          ---------------------------------  NORTHERN LINK BBS----Alberta, CAN  300/1200-24 hours.(403)246-4086.SysOp:  Gerry St.Peters.           ------------------------------------------------------------------  ROCKY MOUNTAIN BBS------------ CO  300/1200-24 hours.(719)783-9046.SysOp:  Jesse thornhill III.       ---------------------------------  ST.LOUIS BBS---------St.Louis, MO  300/1200-9pm/6pm-Thu/Sun.          (314)383-3617.Syss, their complaints, their     imagination, and their experience of ADAM with others are the  ones who make a common enjoyment of the hobby possible. Will you help us out by putting pen to paper, or fingers to         keyboard, telling us about how you use your ADAM?  You may not      think you have anything to contribute. I beg to differ. Warts and   all, novice or expert, you can share with us the things you've      learned, or the things you'd like to learn. And all of this will stand you in good ste BBS----Cleveland, OH  300/1200-24 hours.(216)791-4022.SysOp:  Herman Mason, Jr.          ---------------------------------  VOICE OF THE EAGLE-Ft.Cmpbell, KY  300 only-8:30pm/5am-Wed. & Thur.   (615)431-9833.SysOp:  Ricki Gerlach.             ---------------------------------  -This list was compiled from var-  ous sources.  Some may  no longer  be active, or  may  have  changed  hands.  Please  advise us, if you  know of any changes.         -Ed.  --------------------------------- in README1.TXT. I'm also on the OTTAWA FREENET at ac087@freenet.carleton.caLet me know what you think.-------------------------------------------------------------There is an issue outstanding that has been subject of discussion   amongst some of us BBS freaks since well before Christmas. That  is the ANN-DISK-ON-BBS issue. As you'll recall we asked for input      during the latter stages of 1994. The question is whether or not to make the ANN disks available on   bulletin board services in additiource  would no longer be available.The material provided to ANN by individual authors should remain    the property of those authors who should ultimately retain some     say in how their work is used.Distributing ANN disks for free fails to recognize the vast  amount of work that it takes to put a such a disk together. Those          contributing to, producing, and distributing the disk deserve  some recognition for their efforts.Some BBS sysops tend to be erratic at best. Some users might have   di limits the audience to those who     are willling to pay.Given the declining numbers in the ADAM community, we need to       reach as many as we can.Selling subscriptions to ANN disks was intended to generate  enough revenue to cover mailing costs, not to generate revenue  for other  ADAM projects such as seed money for the ADAMCONs.Distribution by BBS would provide more timely coverage to  more     ADAMITES who would pay their own long distance charges and  thereby reduce mailing costs.The mainstrt is really relevant.2) What is relevant is the role to be played by the ADAM News       Network now and in the future. There is presently considerable      misconception over what that role has been and should be. There     has been distortion of that role by those who have their own        motives. Some see it as a kind of policing agency, which it most    assuredly is not.  Some see it as a damper on their own  interests. Others don't even know it exists.3) If ANN is to perform any function at all, iuld    be to give them a benefit which ANN disk subscribers are  currently paying for. That would be unfair.ANN would lose all control over the manner in which its material    is used. The integrity of the information package being             distributed would be lost or compromised.Some regular ANN contributors might object to their material  being posted on certain BBS's.Subscriptions would decline as ADAMITES discovered that they  could get the disks online faster and cheaper. Revenue from this  son to the current subscription     mailings. I'd like to thank all of those who provided their views both via    BBS and in writing. There weren't all that many, but there was a    sufficiently representative cross-section of ADAMites whose         opinion I count as important. Roughly paraphrased the comments ran as follows:FOR:ADAM programs, news and articles need to be distributed as widely   as possible in order to attract everyone who is still using an      ADAM.Subscription distribution onlyfficulty knowing what their source is for the ANN disk from one   week to the next.ADAMCONs might lose a source of financing that has to date been     recognized by the ADAM community as being highly beneficial,        particularly in covering startup costs which otherwise would have   to come from the organizer's pocket.COMMENT:1) I sense a lot of acrimony in this debate. There seems to be      considerable  past baggage and history being brought into the       discussion.  I'm not sure how much of iaim of computer hobbyist communication is now by         electronic means. If the ADAM community wishes to remain current    with other groups, electronic dissemination should soon outstrip    distribution by any other means.Failure to make the ANN disk available to ADAM sysops would         continue the impression now prevalent amongst the BBS community     that ANN has somehow frozen them out of participation in ADAM       affairs.AGAINST:Making the ANN disks available to BBS users free of charge wot probably will  need funding of some sort. We presently have no agreement on what  is to be funded or how much is required or where it should come  from.4) Right at the moment, I feel very uncomfortable having to make  a decision on the issue at hand. But then that's why I get paid  the  big bucks I suppose.And so.... the decision is:Since I have absolutely no control of the ANN material after it     leaves this apartment, it doesn't seem to me that I have a whole    lot of choice. But more importants want this stuff,  they come and get it. My phone bill is already out of sight.Any comments and suggestions would be greatly appreciated. ЂЂЂЂЂЂЂЂЂЂЂ	ЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂ	ЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂ	ЂЂЂЂЂ	ЂЂЂЂЂЂЂ	ЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂ	ЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂЂecessarily have to be run on an ADAM computer, to         qualify, although as far as I'm concerned, preference goes to       those BBS's that are.To protect those who have concerns about the material they have     contributed, an author or an ADAM  newsletter editor may  stipulate that his or her article is not to be given BBS distribution. That request will be respected.I cannot agree to the suggestion that ANN material be withheld      from certain BBSs while being provided  to others. I don't see  formation in this article is believed to  be correct   at the time of writing, this article is for educational purposes   only and does not purport to provide legal advice.  If yo u        require legal advice, you should consult with a legal practi       tioner licensed to practice in your jurisdiction.Q3) I just wrote a great program/novel/song/whatever .  How can I  get a copyright on it?Good news.  You already have.  In the United States,  as in most   nations, a work is copyrighted as soon as it iegates attending  and  given approval or non-approval or amendment as appropriate.  At     that time, the full role of the ADAM News Network should be         discussed, agreed upon and communicated..The rest is housekeeping. How do we get the new adressees  covered? Who are they? Where are they? Quite frankly, I'm not the  least bit interested in supplying back issues right back to day 1  (1987??).  I could put them up on the Byteman BBS for downloading.  In fact,   generally I would prefer that if Sysoply, I want the ANN material to     have as wide distribution as possible, and to be available to       ADAMITES wherever they are. That gets greatest weight. My second    concern is that the wishes of those contributing material be        respected whether or not there is legal obligation do so.ANN disks will therefore be made available to ADAM BBS's who wish   to carry them. These BBS's may freely allow the downloading of ANN  material subject to the considerations noted below.  An ADAM BBS    does not n‚CяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяQUESTIONS ABOUT COPYRIGHT (V. 1.0.1)Copyright 1993 Terry Carroll(c) 1993 Terry CarrollThis article contains frequently asked questions (FAQ) with        answers relating to copyright law, particularly that of the        United States.While all inhow that is possible or fair.What I would like in return for provision of the material to the    BBS community is an undertaking from each and every Sysop that      they will actively promote the idea that users must contribute      material as well as receive it. I'd like to know from each          participating Sysop how many ADAM users they regularly serve, and   in what geographical area.I would like this decision to remain in effect until ADAMCON  07    (July 1995) where it would be reviewed by dels created:Copyright protection subsists . . . in original works of           authorship fixed in any tangible medium of expression, now         known or later developed, from which they can be perceived,        reproduced, or otherwise communicated, either directly or with     the aid of a machine or device.  17 U.S.C. 102(a) .and,A work is "fixed" in a tangible medium of express ion when its     embodiment in a copy or phonorecord, by or under the authority     of the author, is sufficiently permanen1993 Terry CarrollThis article contains frequently asked questions (FAQ) with  answers relating to copyright law, particularly that of the United States.While all information in this article is believed to be correct  at  the time of writing, this article is for educational purposes  only  and does not purport to provide legal advice.  If you require legal advice, you should consult with a legal practitioner licensed to practice in your jurisdiction.Q4) How long does a copyright last?  Does it nee as registering the    work with the Copyright Office, or providing a copyright notice    (notice stopped being a requirement when the U.S. signed the       Berne Convention and enacted Berne Convention Implementation Act   in 1988; see Q28 for more information).That being said, you might want to register the work  and provide  a copyright notice anyway.  There are certain advantages to  doing so (see Q5 and Q7).--- WILDMAIL!/WC v4.00  * Origin: Millennium BBS -*>ASP Approved<*- 1:100/480  (1:100/480.5 years from the date of first publication, whichever comes first.  17 U.S.C. 302(c).  No  renewal  is necessary or permitted.For works to which the attribution right and integrity right  apply  (see Q1), these rights endure only for the lifetime of the  author.  17 U.S.C. 106A(d).For works created between 1950 and 1978, copyright lasts for 75      years from date of publication.  17 U.S.C. 304(a).  Formerly,        renewal was required after 28 years; renewal was made optional in    June 1992 by P.L. ‚EяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяTo:  Ron Mitchell               Message #:  63 From:  Barry Wilson   Submitted:  11 Dec 94 20:57:00  Subject:  # 4 Status:  Public Received:  No   Group: Adam (4)FREQUENTLY ASKED QUESTIONS ABOUT COPYRIGHT (V. 1.0.1)Copyright 1993 Terry Carroll(c) t or stable to permit it    to be perceived, reproduced, or otherwise communicated for a       period of more than transitory duration.  17 U.S. C. 101.What this means in simple terms is that as soon as y ou've         created your original work, it's copyrighted.  Because of th e     "either directly or with the aid of a machine or device" pro       vision, it doesn't matter whether you've printed it out, or if     it's only on your hard drive or floppy disk.You don't need any special formalities, suchd to be renewed?     Generally, for works created after January 1, 1978, a copyright      lasts for fifty years beyond the life of the work's author, after    which it lapses into public domain.  17 U.S.C. 302(a).  If the  work is prepared by two or more authors (a "joint work"), its  copyright  lasts for fifty years after the last surviving author dies.  17 U.S.C. 302(b).  For anonymous and pseudonymous works,  and for works made for hire, copyright exists for 100 years from  the    date of creation, or 70)=-=-=-=-=-=-=iting. There weren't all that many, but there was a    sufficiently representative cross-section of ADAMites whose         opinion I count as important. Roughly paraphrased the comments ran as follows:FOR:ADAM programs, news and articles need to be distributed as widely   as possible in order to attract everyone who is still using an      ADAM.Subscription distribution only102-307, 106 Stat. 264.  If the work was  created  but not published prior to 1978, its copyright duration  is          calculated as if it had been created on January 1, 1978.  17  U.S.C. 303.For works created between 1922 and 1950, the copyright lasted for    28 years, renewable for another 28 (a total term of 56 years).   If  the copyright was not renewed, the work lapsed into public  domain.  In practice, all copyrights granted prior to 1937 lapsed  at the     latest in 1992 and are now in public domanfringement: namely, statutory damages and        attorney's fees.  17 U.S.C. 412."Statutory damages" are damages specified in the statute, as        opposed to "actual damages," which are damages that you can         demonstrate in court that you actually suffered.  If you            registered your work prior to infringement, you can skip showing    any actual damage, and just elect to receive statutory damages.     17 U.S.C. 504(a).Statutory damages for copyright infringement are $500 - $20,000,    a‚DяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяTo:  Ron Mitchell               Message #:  64From:  Barry Wilson               Submitted:  11 Dec 94 20:58:00  Subject:  # 5                           Status:  Public Received:   No                             Group:  Adam (4)Ron, heres # 5FREQUbability of an infringement action (and the advantages of        attorney's fees and statutory damages in such an action) against    the $20 cost of registration.CAVEAT:  On February 16, 1993, the Copyright Reform Act of 1993     was introduced in both houses of the 102nd Congress (H.R. 897 in    the House of Representatives and S.373 in the Senate).  If the      bill passes, much of the information in this entry will be          rendered incorrect.  Specifically, the bill would, among other      things, licensed to practice in your jurisdiction.Q5) What advantages are there to registering my work with the       Copyright Office?In order to sue for infringement, with some exceptions, your work   must be registered with the Copyright Office.  However, you may     register after the infringement occurs, as long as it's before      filing your lawsuit.The advantage to registering prior to infringement is that it       allows you some additional remedies that aren't available if you    registered after iin.  Copyrights  granted    between 1937 and 1950 continue to exist only if they were  renewed,  and expire between 1993 and 2006.--- WILDMAIL!/WC v4.00 * Origin: Millennium BBS -*>ASP Approved<*-   1:100/480  (1:100/480.0)on I count as important. Roughly paraphrased the comments ran as follows:FOR:ADAM programs, news and articles need to be distributed as widely   as possible in order to attract everyone who is still using an      ADAM.Subscription distribution onlys determined by the judge.  If the infringer proves that he or     she was not aware and had no reason to believe that his or her      acts constituted infringement, the court may lower damages to as    low as $200 per infringement.  On the other hand, if the  plaintiff proves that the defendant's infringement was "committed             willfully," the judge may award damages to as high as $100,000  per infringement.  17 U.S.C. 504(c).In deciding whether to register your work, you must weigh the       proENTLY ASKED QUESTIONS ABOUT COPYRIGHT (V. 1.0.1)Copyright 1993 Terry Carroll(c) 1993 Terry CarrollThis article contains frequently asked questions (FAQ) with         answers relating to copyright law, particularly that of the  United States.While all information in this article is believed to be correct  at the time of writing, this article is for educational purposes  only and does not purport to provide legal advice.  If you  require      legal advice, you should consult with a legal practitioner remove the requirement for registration prior to bringing   suit, and would remove the restrictions on statutory damages that   are described above.NOt sure if the bill mentioned was passed or not.  ????????/--- WILDMAIL!/WC v4.00 * Origin: Millennium BBS -*>ASP Approved<*-  1:100/480  (1:100/480.0)ely coverage to  more     ADAMITES who would pay their own long distance charges and  thereby reduce mailing costs.The mainstr, and saw that Bob's phone   number was coming up repeatedly.GETTING THE MESSAGEBob had been experimenting with a new modem, and whenever he's      experimenting with anything that involves the phone system our      number becomes the guinea pig.So I phoned him."Hello?" he said."I don't know what the *&_%$#@ you're doing, but cut it out."The other day he phoned about something else. "Call me back and     talk into my new answering machine. I want to see if it works."So I called back, and sang ‚DяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяFrom the Toronto Star - January 31, 1995by Linwood BarclayI've Run Out Of Gas On the Information HighwayMy friend Bob and I are wierd. We are plugged in. We are zooming    down the information highway. All we have to do now is stop         someplahis message, please send  me a    message back to say you got my message."And when they respond I send them another message that thanks  them for sending their message to say they received my first  message.I don't have anything else to say to these folks, so I'm looking    for other people to whom I can send messages for the sole purpose   of finding out if they got them.JUST FOR LINWOODIt's hard to believe there are about a hundred magazines now on     the stands devoted to this.I even have a bocan only be viewed  as unsettling. This is a little like finding out that Wiarton has  The Bomb. Some municipalities are not yet ready for this kind of        responsibility.The other day provided a good example of where we are on the        technological scale.My phone rang. "Hello?" I said. There was nothing on the line.      "Hello?"So I hung up. The phone rang again. "Hello?" Still nothing.This went on two more times, before I went to the phone in the      kitchen that has a Call Display featureaim of computer hobbyist communication is now by         electronic means. If the ADAM community wishes to remain current    with other groups, electronic dissemination should soon outstrip    distribution by any other means.Failure to make the ANN disk available to ADAM sysops would         continue the impression now prevalent amongst the BBS community     that ANN has somehow frozen them out of participation in ADAM       affairs.AGAINST:Making the ANN disks available to BBS users free of charge wothe first two bars of "Ol' Man River.""You know," Bob said, calling me the next day, "every time          somebody calls me, instead of my message, they get you singing      "Ol' Man River.' If you're thinking of a career on the stage,       don't give up your day job."Anyway, I can now send Internet messages and have sent them to      friends at Trent University and friends in Kitchener and friends    in New York city. All of these messages have a similar theme:  "Did you get this message? If you got tce and ask for directions because we've passed the same  gas station six times.We each loaded some jazzy new software into our computers over the  weekend and hooked on to a service that's plugged into the          Internet. We now have the potential to send missives through the    phone lines at light speed to people who've been perfectly happy    up to this point not hearing from us at all.If you're very much into this Internet business and take it         seriously, news that Bob and I are now on it ok called The Internet for Dummies. This book is    filled with helpful sentences like: "In short, if your net uses     Ethernet or Token Ring, you should set up your Mac to use native    TCP/IP" and "If you have access to FTP (see Chapter 16), you can    more easily FTP it from ftp.nisc.sri.com where it is called         netinfo/interest-groups and a compressed version is called          netinfo/interest.groups.Z." It's clear that I do not need the Internet for Dummies, I need  The Internet for Moronic, just set it aside and forgot about it.  The main reason for this was that this unfinished version only     has 7K of memory to work with.  Most programmers thought this      wasn't enough to mess with.  Except for one person I know of.Rich Cossaboon took an interest in GoBASIC and did something most  of us thought couldn't be done.  Rich with the help of Bob         Sebelist created quite a large GoBASIC program that Rich calls, "GRAPHIC FILE ADDRESSER", (GFA).What GFA does is make two size address lahuckle out of this one because I've been      there. I'm assuming by the way that an old rule of copyright is     still valid, that is that anything appearing in a newspaper is      public domain after 24 hours from publication. If anyone knows      differently, please let me know.    -RHMubscriptions would decline as ADAMITES discovered that they  could get the disks online faster and cheaper. Revenue from this  snow what to expect   but I was somewhat disappointed.  It ran much slower than what I   had expected.  After I had finished using GFA I decided to take a  look at the program with FILEMANAGER.  This is when it sank in     just what Rich had accomplished, and the speed at which it ran no  longer bothered me.With only 7K to work with Rich had to break his program up into    modules.  How this works is that each function of the program is   a "mini" program in it's self.  When you select a new function     t‚CяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя GRAPHIC FILE ADDRESSERAt the time Phoenix 2000 went under Sol Swift and Tony Patterson   were working on a new operating system for the ADAM.  As we all    know it was never completed.  Most of the people that had a beta   copy of GoDOS with GoBASIC Mike Harris-Loving, Knuckle-Dragging          Imbecillic Mouth-Breathers. Actually, if I were the publisher of    this series of computer books and wanted to persuade a potential    buyer that this book was REALLY for beginners, I would call it  the Internet For Linwood.If your German shepherd wanted to send e-mail, this is the book     you would buy him.(Linwood Barclay's column appears Tuesday, Friday and Saturday.)-------------------------------------------------------------Editor's Note: Got a cbels. (Clip art can be    stamped on the larger label.)  It will also print out a pocket     size phone book of names, address, phone numbers and even the      persons birthday."So what", you say.  There are many programs that will do this.    True, but the point I want to make is that GFA was written in      GoBASIC that only has 7K of memory to use for programming.  So     how did Rich do it?Before I go in to that I want to get this out of the way first.The first time I booted and ran GFA I didn't kource  would no longer be available.The material provided to ANN by individual authors should remain    the property of those authors who should ultimately retain some     say in how their work is used.Distributing ANN disks for free fails to recognize the vast  amount of work that it takes to put a such a disk together. Those          contributing to, producing, and distributing the disk deserve  some recognition for their efforts.Some BBS sysops tend to be erratic at best. Some users might have   dihe new module overwrites the one in memory.  This is what slows   the program down, but it's the only way a program of this size     can be done in GoBASIC.Now for the program it's self.The program consist of two disk.  A system disk and a program      disk.  As the system disk loads you get the standard GoBASIC       screen.  Just before your told to insert the program disk a very   nice system screen is displayed and a few seconds later your       treated to a little song.  (Very well done I must say. back to the        PROGRAM FUNCTION box and click.  Then make your selection.NOTE: If all you have is an ADAM   printer it can not print out    the   boarders, font types or graphics.      Now move the pointer  to the PRINT ADDRESS control box and click.  The roll down menu    gives you three options, print phone book, print small label or    print large label.  Whatever option you choose just point and      click.  Lets say you chose the small label option.  You are then   shown four boader types.  Whenpress the return key and (click), a roll down menu         appears.  Now move the pointing finger to "FILENAME" and double    click the return key.  You're then ask to type in a file name and  press the return key.  The data file is now created.  Next you     will need to add names, addresses, phone numbers and birhtdays if  you wish.  To do this move the pointer to the "ACCESS ADDRESS"     command box and click.  The roll down menu gives you three         options, View, Add or Change.  In this case you woud out in the same way, except you are ask to put a clip art  picture on it.  This is not optional, I have found no way around   this.  The clip must be a "H" type clip.  This can be done fairly  easy with CLIPPER.      There is one other feature in this         program I like.  That is the ability to load the program into      RAM, but you'll need a 256K card or larger.  By doing this you     save ware and tare on you disk drive or data-drive.  I have not    run this program from a data-drive, but I think imove the pointer to the file cabinet    and click.  It is then saved.  If you made a mistake when          entering the information just move the pointer to the trash can    and trash it.  You can then reenter the information.  After you    have entered all the names and address just go to the exit sign    and click.  After the data file has been set up the program is     ready to do it's job.Before you can print out your labels you need to select the        printer type, ADAM printer or DM printer.  Move) You then   insert the program disk and press the return key.  After the       program is loaded a command screen is displayed.  At the top of    this screen is a command line consisting of six boxes, each with   a different command.At this time the program will not do anything.  You first have to  create a data file and add names and addresses.  To do this you    use either the key board arrow keys or the game controller to      move the hand with the pointing finger to the "Program Fuction"    box and  ask, make a selection.  The next    screen shows you six font types, again, make your selection.       You're now ask if you want to print out many labels or just one.   Again, point and click.  Then your ask for print darkness. (1 to   15)  I prefer 2, I think 15 passes would be a bit much.      As    Rich states in his DOC's you should print out the labels on paper  the first time. This is so you can see where to line up your       labels and how the label looks.      The large label is made and   printeld move the     pointer to "Add" and double click.  The screen changes and you're  ask to enter the required information, name, address, etc.  After  you have filled in the information a different box comes on the    screen.  At the top of the box are three icons.  I don't know if   it was Rich or Bob that made these icons, but whoever it was is    quite imaginative.  The left icon is a file cabinet, the center    icon is a trash can and the right one is an exit sign.  If you     want to save the data just t would be much   to slow.Rich Cossaboon has released "GRAPHIC FILE ADDRESSER" as            "FREEWARE".  What this means is that GFA can be freely given away  as long as there are no changes made to it and that there is no    money made from it.  This I think was a mistake because I believe  Rich could have sold it for $10 at least.  This means that GFA is  NOT PUBLIC DOMAIN.  You can get a copy of it as long as you agree  to abide by the FREEWARE regulations To run GFA you'll need a 320  disk drive or u'.        There's no other way.      How many times have you tried to understand a SmartBASIC program       listing, I mean really understand it, so that you could explain to       someone how it functions?  This is what we'll be doing over the       next few issues. We're going to explore the nuts and bolts of the       sample programs given with the original GODOS distribution disk.        Along with the text descriptions of the commands, there were       several sample programs provided to illus the program I'll  use to make labels for special occasion mailings.  Seeing what     Rich Cossaboon accomplished with the unfinished version of         GoBASIC makes me wounder what could have been done with a final    version?  If you would like a copy of GRAPHIC FILE ADDRESSER I     think it would be best to contact Rich personaly.  His address     is:  Rich Cossaboon  512 Chain St. Apt. #1 Norristown, PA. 19401Rich, Bob, a job very well done.Thanks.                Jerry Vrancksrticularly where the program under study       is long and complex. With these particular GOBASIC listings, there       is much to learn and it won't be easy. But there is a payoff, and       that payoff is the understanding of some of the principles and       commands on which the work is based. Since there are no       explanations with any of these programs, we'll have to devise our       own. In doing so, we'll learn a thing or two.      Let's start with the sample GOBASIC program that configure‚JяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя      Going for GODOS      by Ron Mitchell      This particular installment is going to be more about hard work       than about GODOS. To make use of the tools available, the GODOS       user is going to have to get into some good honest 'hackingse the data drive.  This is because the program     disk starts out with 227K and increases as files are added to it.  If you have a 256K card you can load the program into RAM.  You    should also have a DM printer so the fonts and graphics can be     printed.There is just one other point I would like to make.  GRAPHIC FILE  ADDRESSES is one of the easiest programs I have run.  There is     nothing to remember.  Everything is in front of you.  All you      need to do is point and click.      This will betrate the many       capabilities of GOBASIC and GODOS.  These programs are not       particularly well documented, but if followed closely will yield a       wealth of information on not only GOBASIC itself, but also some of       author Sol Swift's innermost programming secrets. All we have to       do is observe and understand.      Easier said than done, you say. Well yes, you're right. Following       the thread and flow of someone else's programming is always a       difficult thing to do, pahow that is possible or fair.What I would like in return for provision of the material to the    BBS community is an undertaking from each and every Sysop that      they will actively promote the idea that users must contribute      material as well as receive it. I'd like to know from each          participating Sysop how many ADAM users they regularly serve, and   in what geographical area.I would like this decision to remain in effect until ADAMCON  07    (July 1995) where it would be reviewed by dels your       disk drives and other media. We'll start here because this       particular program utilizes most of GOBASIC's features including       sprites, pulldown menus and the dialog box. It also does useful       work in configuring the system which is something you'll have to       do before using GODOS with your particular setup. All in all, it       seems like a good place to start. Our procedure will be as follows:      1) Run the program to see what it does.      2) Print out a listings useful, for listing       programs. Certainly useful for other applications however, such as       large title lines and menu's that will grab the user's attention.        Back to the main job at hand. DSconfig. You've got it loaded; now       run it.      GOBASIC switches to graphics mode and shows you basically three       pieces of information: 1) the currently logged media; 2) the       program title; 3) the program choices available. There is also a       hand pointer which can be moved with7) Add our own REM statements and notes to the program listing so       that we never have to go through this process      again. (At least not with the program under study.)      This is certainly not the only way to analyse a program, but it       will serve as a place to begin. We may want to do other things       later.      Now boot up GODOS, select GOBASIC from the main menu bar and load       the GOBASIC file DSconfig. Let's take a little side trip.      List the program by typing:       ODOS and GOBASIC that       knows where that handpointer is when return is or isn't       appropriate.      We won't belabour the point here as we have other work to do. The       purpose of this program, as you'll discover if you select the each       of the self-explanatory menu choices in turn is to allow the user       to tell GOBASIC what media sizes and types, and directory sizes       are connected to this particular ADAM system. That information can       then be saved as part of the system different appearance to the scrolling       on the screen. Observe also that the Wild Card key does not quite       work in the same manner as it did under the text modes. This time       it has the effect of stepping you through each instruction of the       listing. The ESC key works as it did before.      Next, while still in graphics mode, type:      PR#5      LIST      Wow! Not too useful, but impressive. Now try:      ESC      PR#6      LIST      Even more impressive, and perhaps les      3) Study the listing to identify the main routines      4) Follow each variable introduced to understand what it is      for and how it's value changes from one part of the program      to the next.      5) Identify and disassemble any machine language routines used      within the program in order to fully understand the      contribution they make towards getting the job done.      6) Isolate and understand the various specialized 'Peeks' and      'Pokes' used within the program.       the arrow keys.      Do that now. Move the hand pointer along the main menu bar back       and forth. If you have mouse with your ADAM, you can use that too.       GODOS supports it, and you can enjoy the 'point and click'       enviromnent that we're all growing used to with the bigger       computers.      Don't select any of the menu choices just yet. Instead, move the       hand pointer down below the main menu bar and press return.      BUZZ!      Obviously there is a routine down inside GLIST      Press the Wild Card key. Note that you can temporarily pause the       listing with the Wild Card, then restart it again. It's like       <control-S> under SmartBASIC.      Now restart the listing and press <ESC>. The listing aborts.      Type:      TEXT40      LIST      And note that now the program listing appears in 40 column mode.      Now type:      GRAPHICS      LIST      And note that the listing re-appears in a slightly amended version       of the 32 column mode with a so that each time you boot       GODOS you won't have to go through the configuration process       again. Not a very sexy application, but useful nonetheless.      Next we're going to print out the listing. This is not a       particularly difficult task, and not all that different from what       you're used to with normal ADAM SmartBASIC. But there are some       differences.      If you have a DOT-MATRIX printer, type:      PR#3      LIST      The program listing is routed to the DOT-MATRhe handpointer is in the wrong       position, an error buzz results.      -sets up the mainline and exit routines.      And that's just for starters. There's more to come. See if you can       figure out the Z-80 assembly language in line 130. There are two       separate routines, one starting at memory location 205 and the       other at memory location 56900. Can you understand what they do.        Perhaps by next time I'll have them figured out too. saw earlier.      For the moment, type:      PR#0      which returns output to the screen only.      Let's have a look at the listing. We'll start now and continue the       work next month.      In writing this particular program, Sol Swift used a pattern that       is fairly common amongst programmers who know what they're doing.        It runs roughly as follows:      Variable initialization      Setup Mainline      Exit Routine      Program Subroutines      Program data      Perhap [OP FALSE]IF :YP > :Y + 8 [OP FALSE]OP TRUEENDTO GOOD.LANDING :SITEMAKE "XV 0 MAKE "YV 0IF MEMBERP :SITE :MARKED.SITES [STOP]TOOT 0 196 15 10WAIT 10TOOT 0 196 15 5WAIT 5TOOT 0 196 15 5WAIT 5TOOT 0 293.66 15 10MAKE "MARKED.SITES LPUT :SITE :MARKED.SITESTELL LAST :SITE SETC 6TELL 0MAKE "FUEL :FUEL + 25ENDTO EXPLODEHTTELL :PIECES PU SETPOS SE :XP :YPEACH [SETH ( WHO - 4 ) * 45]ST SETSP 40WAIT 50HT PU HOMETELL 0ENDTO CRASHNOISE 5 15 1 15 10EXPLODEMAKE "SHIPS :SHIPS - 1MAKE "Fd menu data      -punches in two machine language routines to assist with       read/write operations to the media      -sets up data tables for the pulldown menus and assigns       menu choices for them      -sets up the main screen and positions the hand pointer at       the left hand side.      -waits for input form the user - presumably a menu choice      -provides a method for tracking the hand pointer's       movement across the pulldown menu choices so that if       return is pressed when tIX printer, but not       the screen. Put the listing to one side, we'll be using it in a       few minutes. Now type:      PR#4      LIST      Now the listing goes to BOTH the screen AND the dot-matrix printer.      If you review the doc files that came with GODOS 1.2, you see that       other PR# settings are possible including output to the ADAM       printer (PR#1), output to the screen and to the ADAM printer       (PR#2), and output to the screen of the larger graphics fonts that       we‚LяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяTO TESTLANDSCAPETESTENDTO RAND.POSOP SE XCOR + ( ( RANDOM 15 ) + 10 ) ( RANDOM 90 ) + 30 - 90ENDTO ABS :VALUEIF :VALUE < 0 [OP - :VALUE]OP :VALUEENDTO LANDED :X :Y :SITEIF :XP < :X - 4 [OP FALSE]IF :XP > :X + 4 [OP FALSE]IF :YP < :Y + 4s this was the intended outline, perhaps not. Every       programmer has his or her own way of doing things, but this one       I've seen many times before.      If you consider the first 14 lines of DSconfig, up to and       including line 1060, you'll see that 4 segments of the program are       all there, taking less than half a page. Sol covers a lot of       ground in just a few lines:      -sets the graphics foreground and background colour      -declares the dimensionned array that will holUEL 0ENDTO CHECK.LANDINGIF COLOR.OVER = 14 [CRASH OP [CRASHED]]IF NOT HEADING = 0 [OP [FLYING]]IF OR :YV < -3.5 :YV > 0 [OP [FLYING]]IF ( ABS :XV ) > 1 [OP [FLYING]]IF LANDED FIRST :SITE1 LAST :SITE1 "SITE1 [GOOD.LANDING "SITE1 OP [LANDED]] IF LANDED FIRST :SITE2 LAST :SITE2 "SITE2 [GOOD.LANDING "SITE2 OP [LANDED]] IF LANDED FIRST :SITE3 LAST :SITE3 "SITE3 [GOOD.LANDING "SITE3 OP [LANDED]] OP [FLYING]ENDTO DO.PDLIF :FUEL < 1 [TOOT 0 800 15 1 STOP]IF RBUTTONP 0 [THRUST] [WAIT 13]IF 2 = JOY 0 [R LANDING SITES.]PR [] PR [TO LAND SAFELY, YOUR]PR [VERTICAL SPEED MUST BE BE\-]PR [TWEEN 0 AND \-3, YOUR HORIZ\-]PR [ONTAL SPEED BETWEEN -1]PR [AND 1, AND YOUR HEADING 0]PR [] PR [IF YOU FLY OUT OF VISUAL]PR [RANGE, YOU'LL HAVE TO FLY]PR [BACK IN USING YOUR]PR [INSTRUMENTS ONLY.]CLEARBUFFERSETCURSOR [1 20] PR [ANY KEY...]IGNORE RCCS PR [USING HAND CONTROLLER #1,]PR [THRUST IS APPLIED WITH THE]PR [RIGHT BUTTON AND ROTATION]PR [IS CONTROLLED BY MOVING THE]PR [PADDLE LEFT OR RIGHT.]PR [THRUSTS [-125 -80]SETPC 14 PD SETC 4REPEAT 2 [SETPOS RAND.POS]SETH 90 FD 10 TELL 1 STMAKE "SITE1 POSTELL [0 2 3] FD 10REPEAT 3 [SETPOS RAND.POS]SETH 90 FD 10 TELL 2 STMAKE "SITE2 POSTELL [0 3] FD 10REPEAT 3 [SETPOS RAND.POS]SETH 90 FD 10 TELL 3 STMAKE "SITE3 POSTELL 0 FD 10 HTSETPOS [125 -80]SETPOS [-125 -80]PU SETPOS [0 -75] PD FILLENDTO ROUND.SETUPIF :SHIPS < 1 [STOP]MAKE "MARKED.SITES []LANDSCAPE HTSETPC 15STARS 0 PUMAKE "GRAVITY :GRAVITY + 0.5SETC 13PLAY.ROUNDROUND.SETUPENDTO STMAKE "SITE3 [80 -37]MAKE "SITE2 [-2 -59]MAKE "SITE1 [-75 -28]MAKE "YP -43.101629MAKE "XV 0.56836393MAKE "XP -71.815618MAKE "YV -0.9952549MAKE "STATUS [CRASHED]MAKE "MARKED.SITES []MAKE "SHIPS 3MAKE "GRAVITY 0MAKE "PIECES [4 5 6 7 8 9 10 11]MAKE "BASE [0 0 0 0 0 0 0 255 255 129 129 255 255 129 129 255 0 0 0 0 0 0   0 255 255 129 129 255 255 129 129 255]MAKE "FUEL 0edia; 2) the       program title; 3) the program choices available. There is also a       hand pointer which can be moved with]MAKE "XP :XP + :XVMAKE "YP :YP + :YVSETPOS SE :XP :YPSETCURSOR [1 1]TYPE [X POS:] PR :XPTYPE [Y POS:] PR :YP + 80TYPE [X VEL:] PR :XVTYPE [Y VEL:] PR :YVTYPE [DIR\ \ :] PR HEADINGTYPE [FUEL\ :] PR :FUELIF IN.WINDOWP [MAKE "STATUS CHECK.LANDING] [IF :YP < -80 [CRASH MAKE "STATUS [CRASHED]]]FLYENDTO INFOSETBG 1 TELL ALL HTCS PR [WELCOME TO LOGO LANDER]PR [V1.0 BY CHRIS BRAYMEN]PR []PR [YOUR OBJECTIVE IS TO LAND]PR [YOUR "TURTLE" CLASS SPACE]PR [SHIP AT EACH OF THE THREE]PR [DESIGNATEDT 20]IF 6 = JOY 0 [LT 20]ENDTO PLAY.ROUNDIF :SHIPS < 1 [STOP]IF 3 = COUNT :MARKED.SITES [STOP]MAKE "FUEL :FUEL + 40MAKE "XP -125 MAKE "YP 85MAKE "XV 5 MAKE "YV 0SETH 320SETPOS SE :XP :YP STSETCURSOR [1 23]TYPE [GRAVITY:\ ] TYPE :GRAVITYTYPE [\ \ SHIPS:\ ] TYPE :SHIPS - 1MAKE "STATUS [FLYING]FLYWAIT 400PLAY.ROUNDENDTO STARS :XPUIF :X > 40 [STOP]SETPOS SE ( RANDOM 250 ) - 125 ( RANDOM 150 ) - 60IF COLOR.OVER = 1 [PD DOT POS]STARS :X + 1ENDTO LANDSCAPECSTELL [0 1 2 3] ST PU SETPO AND ROTATION MAY BE]PR [APPLIED SIMULTANEOUSLY.]PR [] PR [EACH SHIP BEGINS WITH 40]PR [UNITS OF FUEL. EACH GOOD]PR [LANDING ADDS 25 UNITS TO]PR [YOUR SHIP.]PR [] PR [IF YOU SUCCEED IN LANDING]PR [AT ALL THREE SITES, YOU]PR [WILL BE GIVEN 40 MORE FUEL]PR [UNITS AND A NEW ASSIGN\-]PR [MENT WITH MORE GRAVITY.]PR [] PR [GOOD LUCK!]CLEARBUFFERSETCURSOR [1 20] PR [ANY KEY...]IGNORE RCENDTO IGNORE :THINGENDTO CLEARBUFFERIF NOT KEYP [STOP]IGNORE RCCLEARBUFFERENDMAKE "STARTUP [INFO START]ARTWINDOWPUTSH 1 :BASETELL ALL CS HTTELL :PIECES SETSH 2 SETC 6 SETPC 6TELL [1 2 3] SETSH 1TELL 0 SETSH 36MAKE "GRAVITY 0MAKE "SHIPS 3MAKE "FUEL 0ROUND.SETUPCLEARBUFFERPR []PR [ANY KEY TO PLAY AGAIN]IGNORE RCSTARTENDTO THRUSTNOISE 5 10 0 3 15MAKE "XV :XV + ( ( :GRAVITY + 1 ) * SIN HEADING )MAKE "YV :YV + ( ( :GRAVITY + 1 ) * COS HEADING )MAKE "FUEL :FUEL - 1ENDTO FLYIF :STATUS = [CRASHED] [STOP]IF 3 = COUNT :MARKED.SITES [STOP]DO.PDLIF :STATUS = [FLYING] [MAKE "YV :YV - :GRAVITY‚CяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяThe LOGO Notebookby Ron MitchellIn the 26th installment of the Notebook, (ANN-Nov 1994), there     was a promise to review in greater detail the decimal to hex       conversion routines that SmartLOGO offers as part of it's "TOOLS"  package. Your LOer procedure. That sounds simple enough on the surface, but   some of the applications I've seen are just a little confusing.Here is a very simple example that might clarify things. It's      taken from the book "88 Apple LOGO Programs" by Donald Martin and  Jennifer Ann Martin (Howard W. Sams and Co. 2nd Printing, 1984).   At the beginning of this book, the authors provide a series of     elementary routines designed for use a a 'toolkit' or 'building    blocks' in later more complex LOGO procedures. Oneof professional LOGO programming, the more   I realize how much more I have to learn about LOGO in general. In  fact there are several sub-procedures which seem to call           eachother at various times. HEXTODEC :NDECTOHEX :NC.TO.N :NN.TO.C :NDEC.TO.ANYBASE :N :BASECONVERT :N :FRBASE :TOBASEANYBASE.TO.DEC :N :BASE :POWERIf, for example, you look 'under the hood' of the operation        HEXTODEC :N, by typing:TO HEXTODEChere's what you get:TO HEXTODEC :NOP CONVERT :N 16 10ENDok......  from toplevel and then put them         together:MAKE "X GETA.WORD         (I reply)         FUDDLEMAKE "Y GETANOTHER.WORD   (I reply)         DUDDLEPR SE :X :YFUDDLE DUDDLEThe whole point is that the command OP has been told to OUTPUT     the first word (or the lastword) of a list entered by the user to  any other procedure that calls GETA.WORD (or in my other case,     GETANOTHER.WORD). Let's see if we can quote a more serious         example.(With all due respect to Microsoft)TO WINMAKE "It these routines   as a 'little black box' knowing full well that they will allow me  to convert anything numerical to its equivalent in any other       number base that pleases me. If someone out there would like to    come up with a readable explanation of what is going on here, I'd  love to print it.There is another aspect of these routines that we should take      some time to understand. That's the command OP or OUTPUT. It is    used within a LOGO procedure to output a value or a result to      anothGO distribution media comes with this file. If     you've ever used it, you know that it gives you wide range of      mathematical procedures that you can incorporate into your own     programs as you wish. In fact we did just that last time out,      with the LOGO memory dump program. I'm not so sure as my analysis of these routines will be too       helpful, assuming that you take the trouble to read it, and        assuming that I take the trouble to write it. The more I look at   this particular piece  of these        'building blocks' is called GETA.WORD   (no, not GETA.LIFE, GETA.WORD !)TO GETA.WORDOP FIRST RLENDThat's it, that's all.So we type this into our LOGO workspace. Then what? We could do    something from toplevel as simple as:MAKE "X GETA.WORD(LOGO waits for the user response... which is...oh, I dunno..      let's say...)FUDDLE FIDDLE FADDLENow I type: PR :Xand LOGO respondsFUDDLELet's try something else:TO GETANOTHER.WORDOP LAST RLENDSo now I can get two words(????) OP is a LOGO primitive, but CONVERT is definately  not. So HEXTODEC is calling another operation in much the same     manner as SmartBASIC calls a subroutine. So we type:TO CONVERTand LOGO replies:TO CONVERT :N :FRBASE :TOBASEOP DEC.TO.ANYBASE ANYBASE.TO.DEC :FRBASE 1 :TOBASEENDWell of course!So CONVERT calls two more sub-procedures, and here is where my     brain turns to mush. Dare we look at DEC.TO.ANYBASE and            ANYBASE.TO.DEC.Thanks, but no thanks. My inclination is to trea RCWINA.LOTOENDTO WINA.LOTOMAKE "X PICKA.NUMBERIF :X =0 [MAKE "N :N -1 MAKE "X PICKA.NUMBER] [TYPE :X TYPE [\ ]]  MAKE "N :N +1IF :N > 5 [PR [] PR [GOOD LUCK!] MAKE "N 0 PR [] WIN] [WINA.LOTO]  ENDTO PICKA.NUMBEROP RANDOM 50RECYCLEENDWhy RANDOM 50? Well, we're not sure. I had originally written      RANDOM 49, because this is a 6/49 game after all. But in many      many test runs I noticed that the number 49 never came up.         Increasing the top limit by 1 cured that, so we'll leave it beLOGENDTO SK3GO S 1PR [TAPE\-1\ CATALOG] S 1SETDEVICE 0 CATALOGENDTO SK4GO S 1PR [TAPE\-2\ CATALOG] S 1SETDEVICE 1 CATALOGENDTO S :NREPEAT :N [PR []]ENDTO GOSETTEXT 0 CS RTYPE [NODES\=] PR NODESENDTO HOMEkeySTARTUPENDTO NEWGO TYPE [NODES\=] PR NODESS 1 CATALOG S 1ERALL RECYCLEENDTO CLONEGETkey S 1PR [SETTING UP SMARTKEYS...]PR [PLEASE WAIT!] WAIT 300COPYDEF "HOMEkey CHAR 0COPYDEF "SK1 CHAR 1COPYDEF "SK2 CHAR 2COPYDEF "SK3 CHAR 3COPYDEF "SK4 CHAR 4COPYDEF "WILDkey CHTO STARTGO S 2PR [\ WELCOME TO "LOGO\-B.O.S.S."]S 1PR [\ \ {Bob's Operating System}]S 1PR [\ \ \ \ {Supervisor\/vs 1.0}]S 2PR [TO CATALOG...]S 1PR [[I] \  = DISK 1 = DEVICE 4]S 1PR [[II] \ \= RAM\/DR = DEVICE 2]S 1PR [[III] = TAPE 1 = DEVICE 0]S 1PR [[IV] \ \= TAPE 2 = DEVICE 1]S 1PR [[GET] = CURRENT DEVICE]PENDTO HELPGO S 1PR [HIT PRINT + HOME + \<CR\>]PR [FOR DEVICE & HELP LISTS]S 1PR [HIT PRINT + ST\/GET + \<CR\>]PR [FOR CURRENT DEVICE CATALOG]S 1PR [HIT PRINT + [I] [II] [IILOGENDTO SK3GO S 1PR [TAPE\-1\ CATALOG] S 1SETDEVICE 0 CATALOGENDTO SK4GO S 1PR [TAPE\-2\ CATALOG] S 1SETDEVICE 1 CATALOGENDTO S :NREPEAT :N [PR []]ENDTO GOSETTEXT 0 CS RTYPE [NODES\=] PR NODESENDTO HOMEkeySTARTUPENDTO NEWGO TYPE [NODES\=] PR NODESS 1 CATALOG S 1ERALL RECYCLEENDTO CLONEGETkey S 1PR [SETTING UP SMARTKEYS...]PR [PLEASE WAIT!] WAIT 300COPYDEF "HOMEkey CHAR 0COPYDEF "SK1 CHAR 1COPYDEF "SK2 CHAR 2COPYDEF "SK3 CHAR 3COPYDEF "SK4 CHAR 4COPYDEF "WILDkey CH 10 DRAW JOY 0ENDTO CHCGO TELL 0 ST SETC 1 + COLORPR [COLOR #:] PR COLORR CHCENDTO CHSHCT TELL 0 STIF SHAPE = 59 [SETSH 0]SETSH ( SHAPE + 1 )PR [SHAPE #:] PR SHAPER CHSHENDTO CHBGGO SETBG 1 + BGPR [BG #:] PR BGR CHBGENDTO PRINTERkeyPRINTERENDTO UNDOkeyNOPRINTERENDTO PWAIT 600ENDTO GETkeyGO TYPE [DEVICE\ ] TYPE DEVICEPR [\ CATALOG] S 1 CATALOGENDTO SK1GO S 1PR [DISK\-1\ CATALOG] S 1SETDEVICE 4 CATALOGENDTO SK2]GO S 1PR [RAM\-DRIVE\ CATALOG] S 1SETDEVICE 2 CATA.    No doubt it has something to do with the random number generator.  In SmartBASIC, you would do the same thing:X = INT(RND(seed)*49+1)Type WIN and hit the space bar for a new sequence of numbers.      After a while, you'll be told that there isn't enough space left   in PICKA.NUMBER to continue. This is despite the RECYCLE command   that is included there. Need some more investigation into that.Meanwhile, we'll see you in Hawaii!AR 16COPYDEF "UNDOkey CHAR 17COPYDEF "GETkey CHAR 19COPYDEF "PRINTERkey CHAR 21MAKE "STARTUP [SETBG 4 TELL ALL FREEZE PU HT START HELP]ERASE [HOMEkey SK1 SK2 SK3 SK4 WILDkey PRINTERkey GETkey     UNDOkey CLONE] STARTUPENDMAKE "STARTUP [SETBG 4 TELL ALL FREEZE PU HT CLONE]                                                            E DEVICEPR [\ CATALOG] S 1 CATALOGENDTO SK1GO S 1PR [DISK\-1\ CATALOG] S 1SETDEVICE 4 CATALOGENDTO SK2]GO S 1PR [RAM\-DRIVE\ CATALOG] S 1SETDEVICE 2 CATAI]]PR [OR [IV] + \<CR\> TO]PR [SETDEVICE & SHOW CATALOG]S 1PR [HIT PRINT + WILDCARD + \<CR\>]PR [FOR LIST OF "TOOL\/DEFS"]S 1PR [HIT PRINT + PRINT + \<CR\>]PR [TO TURN PRINTER ON]S 1PR [HIT PRINT + UNDO + \<CR\>]PR [TO TURN PRINTER OFF]S 1PR [HIT [V] TO PAUSE\/START PGM]S 1PR [HIT [VI] TO STORE NEW DEFS]ENDTO WILDkeyGO POTSENDTO RRECYCLEENDTO SKETCHGO TELL ALL PU HT HOME FREEZETELL 0 ST THAW PDWHEN 2 [DRAW JOY 0]ENDTO DRAW :DIRIF :DIR = -1 [SETSP 0 STOP]SETH 45 * :DIRSETSPHCT TELL 0 STIF SHAPE = 59 [SETSH 0]SETSH ( SHAPE + 1 )PR [SHAPE #:] PR SHAPER CHSHENDrem:Like CHC except turtlechanges shape & # prints-out.Use ESCAPE key to halt.TO CHBGGO SETBG 1 + BGPR [BG #:] PR BGR CHBGENDrem:Changes background (screen)color & prints-out color # withbrief pause for each change. HitESCAPE key to stop at right color.TO PRINTERkey (PRINT key + PRINT key)PRINTERENDrem:Turns smartwriter printer on.TO UNDOKey (PR key + UNDO key)NOPRINTERENDrem:Turns smartwriter  old TITLES and itselfbefore calling the new STARTUP.MAKE "STARTUP [SETBG 4 TELL ALL FREEZE PU HT CLONE]rem:Sets background to dark blue,tells all turtles to "freeze"then hides them & sends themhome & calls CLONE.*Programmers note 1:To define Adamsfunction keys in SmartLOGO, type<TO > then hit PRINT key followedby the key you want to definefollowed by <CR>, write definitionin the usual way then hitSmartKey [VI] to store def. (e.g;)TO <PRINTkey><HOMEkey><CR>STARTUPEND[VI]rem:This sets-uMDSK FOR LOGO byHexace Software. If you order thisutility, please mention where youheard of it. Cost is US$10.TO SK3 (PRINT key + [III] key)GO S 1PR [TAPE\-1\ CATALOG] S 1SETDEVICE 0 CATALOGENDrem:Setdevice 0 (tape 1) & catalog.TO SK4 (PRINT key + [IV] key)GO S 1PR [TAPE\-2\ CATALOG] S 1SETDEVICE 1 CATALOGENDrem:Setdevice 1 (tape 2) & catalog.TO S :NREPEAT :N [PR []]ENDrem:Input is [S n] where "n" isthe number of blank lines youwish to Scroll; you must put aspace between "S" & "n" 02917Tel:(401)-232-2400Fax:(401)-232-0235(end of LOGOBOSSdoc)PR#4      LIST      Now the listing goes to BOTH the screen AND the dot-matrix printer.      If you review the doc files that came with GODOS 1.2, you see that       other PR# settings are possible including output to the ADAM       printer (PR#1), output to the screen and to the ADAM printer       (PR#2), and output to the screen of the larger graphics fonts that       we CHAR 3COPYDEF "SK4 CHAR 4COPYDEF "WILDkey CHAR 16COPYDEF "UNDOkey CHAR 17COPYDEF "GETkey CHAR 19COPYDEF "PRINTERkey CHAR 21MAKE "STARTUP [SETBG 4 TELL ALL FREEZE PU HT START HELP]ERASE [HOMEkey SK1 SK2 SK3 SK4 WILDkey PRINTERkey GETkey     UNDOkey CLONE] STARTUPENDrem:Since I can't send non-ASCIIcharacters to CIS via AdamLink II,I set the function key definitionsto ASCII character TITLES.This routine sets-up the SMARTKeys,copies the defs in, redefinesSTARTUP slightly, and finally,erases theprinter off.TO PWAIT 600ENDrem:WAIT is a logo "primitive";WAIT 60 = approx :01 so WAIT 600= about :10   TO GETkey (PRINT key + ST/GET key)GO TYPE [DEVICE\ ] TYPE DEVICEPR [\ CATALOG] S 1 CATALOGENDrem:Get current device# & catalog.TO SK1 (PRINT key + [I] key)GO S 1 PR [DISK\-1\ CATALOG] S 1SETDEVICE 4 CATALOGENDrem:Setdevice 4 (disk 1) & catalog.TO SK2 (PRINT key + [II] key)GO S 1PR [RAM\-DRIVE\ CATALOG] S 1SETDEVICE 2 CATALOGENDrem:Setdevice 2 (ram) & catalog.RamDrive util is MEp the HOME key.Don't forget to type a spaceafter TO. Call routine by hittingPRINT key, HOME key & <CR>So far I've not been able toeliminate the PRINT key or <CR>steps for true "one-key" macros.**Programmers note 2:Some of thespecial key symbols will not printout in SmartWriter WP characters.I've substituted similar charactersto replace the non-printing ones.October 13, 1991Send questions or comments to:Robert W. Jones (CIS ID#71341,3372)c/o Smithfield Susse ChaletP.O.Box 17309Esmond, RITO GOSETTEXT 0 CS RTYPE [NODES\=] PR NODESENDrem:Clears everything from screen,sets text to top line, RECYCLES &tells how much workspace is left.TO HOMEkey (PRINT key + HOME key)STARTUPENDrem:Help...runs (first 2 screens.)TO NEWGO TYPE [NODES\=] PR NODESS 1 CATALOG S 1ERALL RECYCLEENDrem:CAREFUL-this one eraseseverything in the workspace.TO CLONEGETkey S 1PR [SETTING UP SMARTKEYS...PR [PLEASE WAIT!] WAIT 300COPYDEF "HOMEkey CHAR 0COPYDEF "SK1 CHAR 1COPYDEF "SK2 CHAR 2COPYDEF "SK3‚LяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяTO STARTGO S 2PR [\ WELCOME TO "LOGO\-B.O.S.S."]S 1PR [\ \ {Bob's Operating System}]S 1PR [\ \ \ \ {Supervisor\/vs 1.0}]S 2PR [TO CATALOG...]S 1PR [[I] \  = DISK 1 = DEVICE 4]S 1PR [[II] \ \= RAM\/DR = DEVICE 2]S 1PR [[III] = TAPE 1 = DEVIELL ALL FREEZE PU HT CLONE] to loweror raise the pen. When finished,type HT to hide the turtle & clearthe screen.TO CHCGO TELL 0 ST SETC 1 + COLORPR [COLOR #:] PR COLORR CHCENDrem:Makes turtle appear, & changecolor while color # prints-outfor each change; brief pause "R" isbuilt-in to allow you to hitESCAPE & stop routine when youget the color you want. Use HTwhen done to Hide Turtle.TO CHSR [HIT [V] TO PAUSE\/START PGM]S 1PR [HIT [VI] TO STORE NEW DEFS]ENDTO WILDkeyGO POTSENDTO RRECYCLEENDTO SKETCHGO TELL ALL PU HT HOME FREEZETELL 0 ST THAW PDWHEN 2 [DRAW JOY 0]ENDTO DRAW :DIRIF :DIR = -1 [SETSP 0 STOP]SETH 45 * :DIRSETSP 10 DRAW JOY 0ENDTO CHCGO TELL 0 ST SETC 1 + COLORPR [COLOR #:] PR COLORR CHCENDTO CHSHCT TELL 0 STIF SHAPE = 59 [SETSH 0]SETSH ( SHAPE + 1 )PR [SHAPE #:] PR SHAPER CHSHENDTO CHBGGO SETBG 1 + BGPR [BG #:] PR BGR CHBGENDTO PRINTERk 8:PRINT " Please insert     the    width and length that you would  like    your maze to be.  The width" 120 PRINT " must be more than 1 and      less    than 27.  The length must be     more    than 1.  Insert the" 130 PRINT " information as width, length    with a comma between the         numbers."135 PRINT:INPUT " Width, length?     ";h,v140 IF h<>1 AND v<>1 AND h<27 GOTO   170150 IF h>26 THEN TEXT:PRINT:PRINT "  Too    wide! "160 PRINT " That size is             impossible!    Please try a TYPE [NODES\=] PR NODESS 1 CATALOG S 1ERALL RECYCLEENDTO CLONEGETkey S 1PR [SETTING UP SMARTKEYS...]PR [PLEASE WAIT!] WAIT 300COPYDEF "HOMEkey CHAR 0COPYDEF "SK1 CHAR 1COPYDEF "SK2 CHAR 2COPYDEF "SK3 CHAR 3COPYDEF "SK4 CHAR 4COPYDEF "WILDkey CHAR 16COPYDEF "UNDOkey CHAR 17COPYDEF "GETkey CHAR 19COPYDEF "PRINTERkey CHAR 21MAKE "STARTUP [SETBG 4 TELL ALL FREEZE PU HT START HELP]ERASE [HOMEkey SK1 SK2 SK3 SK4 WILDkey PRINTERkey GETkey     UNDOkey CLONE] STARTUPENDMAKE "STARTUP [SETBG 4 TCE 0]S 1PR [[IV] \ \= TAPE 2 = DEVICE 1]S 1PR [[GET] = CURRENT DEVICE]PENDTO HELPGO S 1PR [HIT PRINT + HOME + \<CR\>]PR [FOR DEVICE & HELP LISTS]S 1PR [HIT PRINT + ST\/GET + \<CR\>]PR [FOR CURRENT DEVICE CATALOG]S 1PR [HIT PRINT + [I] [II] [III]]PR [OR [IV] + \<CR\> TO]PR [SETDEVICE & SHOW CATALOG]S 1PR [HIT PRINT + WILDCARD + \<CR\>]PR [FOR LIST OF "TOOL\/DEFS"]S 1PR [HIT PRINT + PRINT + \<CR\>]PR [TO TURN PRINTER ON]S 1PR [HIT PRINT + UNDO + \<CR\>]PR [TO TURN PRINTER OFF]S 1P‚%яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя               THE MAZEMAKER   Print out a maze for the kids to  workon while you are busy at Christmas   time.10 REM * Modified by Faye Deere,     9/9120 ONERR GOTO 1700100 TEXT:HTAB 7:INVERSE:PRINT "      AMAZING    MAZE MAKER":NORMAL110 VTABeyPRINTERENDTO UNDOkeyNOPRINTERENDTO PWAIT 600ENDTO GETkeyGO TYPE [DEVICE\ ] TYPE DEVICEPR [\ CATALOG] S 1 CATALOGENDTO SK1GO S 1PR [DISK\-1\ CATALOG] S 1SETDEVICE 4 CATALOGENDTO SK2]GO S 1PR [RAM\-DRIVE\ CATALOG] S 1SETDEVICE 2 CATALOGENDTO SK3GO S 1PR [TAPE\-1\ CATALOG] S 1SETDEVICE 0 CATALOGENDTO SK4GO S 1PR [TAPE\-2\ CATALOG] S 1SETDEVICE 1 CATALOGENDTO S :NREPEAT :N [PR []]ENDTO GOSETTEXT 0 CS RTYPE [NODES\=] PR NODESENDTO HOMEkeySTARTUPENDTO NEWGOgain!":PRINT:PRINT   170 DIM w(h,v),v(h,v)180 TEXT:PRINT:PRINT " This maze     will be    printed out on your printer.     Are you    using a dot matrix printer?      (y/n) ":    GET an$:GOTO 280210 q=0:z=0:x=INT(RND(1)*h+1) 220    FOR i=1 TO h:IF i=x THEN 250 240     PRINT ".--";: GOTO 260250 PRINT ".  "; 260 NEXT i270 PRINT ".": GOTO 300 280          TEXT:PRINT:HTAB 10:PRINT  "PLEASE    WAIT":PRINT:PRINT:PRINT " This   may    take up to 2 minutes." 285 PRINT " While you are waiting,  insert    1110 v(r,s-1)=1:s=s-1:IF c=h*v+1     THEN     13101120 q=0:GOTO 3801130 w(r+1,s)=c1140 c=c+1:IF v(r,s)=0 THEN 1160     1150 v(r,s)=3:GOTO 1170 1160         v(r,s)=21170 r=r+11180 IF c=h*v+1 THEN 1310 1190 GOTO  7101200 IF q=1 THEN 12601210 w(r,s+1)=c:c=c+1:IF v(r,s)=0    THEN     12301220 v(r,s)=3:GOTO 1240 1230         v(r,s)=11240 s=s+1:IF c=h*v+1 THEN 1310 1250 GOTO 3801260 z=11270 IF v(r,s)=0 THEN 1290 1280      v(r,s)=3:q=0:GOTO 13001290 v(r,s)=1:q=0:r=1:s=1:GOTO 370   1300 GOTO 3201310x=INT(RND(1)*3+1)450 ON x GOTO 1050,1090,1130 460 IF  s<>v THEN 490470 IF z=1 THEN 520480 q=1:GOTO 500490 IF w(r,s+1)<>0 THEN 520 500      x=INT(RND(1)*3+1)510 ON x GOTO 1050,1090,1200 520     x=INT(RND(1)*2+1)530 ON x GOTO 1050,1090 540 IF r=h   THEN 640550 IF w(r+1,s)<>0 THEN 640 560 IF   s<>v THEN 590570 IF z=1 THEN 620580 q=1:GOTO 600590 IF w(r,s+1)<>0 THEN 620 600      x=INT(RND(1)*3+1)610 ON x GOTO 1050,1130,1200 620     x=INT(RND(1)*2+1)630 ON x GOTO 1050,1130 640 IF s<>v  THEN 670650 IF1600 IF an$="Y" OR an$="y" THEN PR   #21610 IF an$="N" OR an$="n" THEN PR   #11620 RETURN1700 TEXT:PRINT:PRINT " Program     terminated":END)=0 THEN 11601150 v\=] PR NODESS 1 CATALOG S 1ERALL RECYCLEENDrem:CAREFUL-this one eraseseverything in the workspace.TO CLONEGETkey S 1PR [SETTING UP SMARTKEYS...PR [PLEASE WAIT!] WAIT 300COPYDEF "HOMEkey CHAR 0COPYDEF "SK1 CHAR 1COPYDEF "SK2 CHAR 2COPYDEF "SK3      x=INT(RND(1)*2+1)880 ON x GOTO 1090,1200 890 GOTO     1090900 IF r=h THEN 990910 IF w(r+1,s)<>0 THEN 990 920 IF   s<>v THEN 950930 IF z=1 THEN 980940 q=1:GOTO 1100950 IF w(r,s+1)<>0 THEN 980 960      x=INT(RND(1)*2+1)970 ON x GOTO 1130,1200 980 GOTO     1130990 IF s<>v THEN 10201000 IF z=1 THEN 10401010 q=1:GOTO 10301020 IF w(r,s+1)<>0 THEN 1040 1030   GOTO 12001040 GOTO 13001050 w(r-1,s)=c1060 c=c+1:v(r-1,s)=2:r=r-1 1070 IF  c=h*v+1 THEN 13101080 q=0:GOTO 3801090 w(r,s-1)=c1100 c=c+1paper in your printer." 290      PRINT:PRINT " Press any key  when    the    printer is ready.":GET           k$:PRINT:PRINT    " One moment...."295 PRINT:PRINT:GOSUB 1600:GOTO 210  300 c=1:w(x,1)=c:c=c+1:r=x:s=1:GOTO  380320 IF r<>h THEN 360:IF s<>v THEN    350340 r=1:s=1:GOTO 370350 r=1:s=s+1:GOTO 370360 r=r+1370 IF w(r,s)=0 THEN 320 380 IF      r-1=0 THEN 710390 IF w(r-1,s)<>0 THEN 710 400 IF   s-1=0 THEN 540410 IF w(r,s-1)<>0 THEN 540 420 IF   r=h THEN 460430 IF w(r+1,s)<>0 THEN 460 440       FOR j=1 TO v:PRINT "I";  1330   FOR i=1 TO h1340 IF v(i,j)<2 THEN 1370:PRINT "   "; 1360 GOTO 13801370 PRINT "  I";1380 NEXT i:PRINT1400 FOR i=1 TO h1410 IF v(i,j)=0 THEN 1450 1420 IF   v(i,j)=2 THEN 14501430 PRINT ":  "; 1440 GOTO 14601450 PRINT ":--"; 1460 NEXT i1470 PRINT "."1480 NEXT j1490 PRINT:PRINT:PR #01500 TEXT:PRINT:PRINT " Would you    like to     create another maze? (y/n)      ":GET k$1510 IF k$="Y" OR k$="y" THEN        CLEAR:GOTO     1001520 IF k$="N" OR k$="n" THEN 1700    z=1 THEN 700660 q=1:GOTO 680670 IF w(r,s+1)<>0 THEN 700 680      x=INT(RND(1)*2+1)690 ON x GOTO 1050,1200 700 GOTO     1050710 IF s-1=0 THEN 900720 IF w(r,s-1)<>0 THEN 900 730 IF   r=h THEN 830740 IF w(r+1,s)<>0 THEN 830 750 IF   s<>v THEN 780760 IF z=1 THEN 810770 q=1:GOTO 790780 IF w(r,s+1)<>0 THEN 810 790      x=INT(RND(1)*3+1)800 ON x GOTO 1090,1130,1200 810     x=INT(RND(1)*2+1)820 ON x GOTO 1090,1130 830 IF s<>v  THEN 860840 IF z=1 THEN 890850 q=1:GOTO 870860 IF w(r,s+1)<>0 THEN 890 870‚>яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя   10 REM * Modified by Faye        Deere, 9/91   15 REM * MazeMaker   20 ONERR  GOTO 1700  100 TEXT: HTAB 7: INVERSE: PRINT  " AMAZING MAZE MAKER":    NORMAL  110 VTAB 8: PRINT " Please insert the width and    length   that you    would like     yo(1)*3+1)  610 ON x GOTO 1050, 1130, 1200  620 x = INT(RND(1)*2+1)  630 ON x GOTO 1050, 1130  640 IF s <> v THEN 670  650 IF z = 1 THEN 700  660 q = 1: GOTO 680  670 IF w(r, s+1) <> 0 THEN 700  680 x = INT(RND(1)*2+1)  690 ON x GOTO 1050, 1200  700 GOTO 1050  710 IF s-1 = 0 THEN 900  720 IF w(r, s-1) <> 0 THEN 900  730 IF r = h THEN 830  740 IF w(r+1, s) <> 0 THEN 830  750 IF s <> v THEN 780  760 IF z = 1 THEN 810  770 q = 1: GOTO 790  780 IF w(r, s+1) <> 0 THEN 810  790 x = INT(RND(1)*3+1T: PRINT " This     maze will be printed out  on your   printer.  Are you      using a dot  matrix         printer?    (y/n) ": GET an$  200 GOTO 280  210 q = 0: z = 0: x =             INT(RND(1)*h+1)  220 FOR i = 1 TO h  230 IF i = x THEN 250  240 PRINT ".--"; : GOTO 260  250 PRINT ".  ";   260 NEXT i  270 PRINT ".": GOTO 300  280 TEXT: PRINT: HTAB 10: PRINT   "PLEASE WAIT": PRINT:     PRINT: PRINT  " This may take up to 2 minutes."  285 PRINT " While you are         waiting, insert  paper    in 1020 1000 IF z = 1 THEN 1040 1010 q = 1: GOTO 1030 1020 IF w(r, s+1) <> 0 THEN 1040 1030 GOTO 1200 1040 GOTO 1300 1050 w(r-1, s) = c 1060 c = c+1: v(r-1, s) = 2: r =   r-1 1070 IF c = h*v+1 THEN 1310 1080 q = 0: GOTO 380 1090 w(r, s-1) = c 1100 c = c+1 1110 v(r, s-1) = 1: s = s-1: IF c  = h*v+1 THEN 1310 1120 q = 0: GOTO 380 1130 w(r+1, s) = c 1140 c = c+1: IF v(r, s) = 0 THEN  1160 1150 v(r, s) = 3: GOTO 1170 1160 v(r, s) = 2 1170 r = r+1 1180 IF c = h*v+1 THEN 1310 1190 GOTO 710 12000  420 IF r = h THEN 460  430 IF w(r+1, s) <> 0 THEN 460  440 x = INT(RND(1)*3+1)  450 ON x GOTO 1050, 1090, 1130  460 IF s <> v THEN 490  470 IF z = 1 THEN 520  480 q = 1: GOTO 500  490 IF w(r, s+1) <> 0 THEN 520  500 x = INT(RND(1)*3+1)  510 ON x GOTO 1050, 1090, 1200  520 x = INT(RND(1)*2+1)  530 ON x GOTO 1050, 1090  540 IF r = h THEN 640  550 IF w(r+1, s) <> 0 THEN 640  560 IF s <> v THEN 590  570 IF z = 1 THEN 620  580 q = 1: GOTO 600  590 IF w(r, s+1) <> 0 THEN 620  600 x = INT(RNDur maze to be.     The width"  120 PRINT " must be more than 1   and less   than 27.  The  length     must be   more than 1.  Insert the"  130 PRINT " information as width, length   with a comma     between the   numbers.": PRINT  135 INPUT " Width, length? "; h,  v  140 IF h <> 1 AND v <> 1 AND h <  27 GOTO 170  150 IF h > 26 THEN  TEXT: PRINT:  PRINT " Too wide! "  160 PRINT " That size is          impossible!       Please  try        again!": PRINT: PRINT  170 DIM w(h, v), v(h, v)  180 TEXT: PRIN)  800 ON x GOTO 1090, 1130, 1200  810 x = INT(RND(1)*2+1)  820 ON x GOTO 1090, 1130  830 IF s <> v THEN 860  840 IF z = 1 THEN 890  850 q = 1: GOTO 870  860 IF w(r, s+1) <> 0 THEN 890  870 x = INT(RND(1)*2+1)  880 ON x GOTO 1090, 1200  890 GOTO 1090  900 IF r = h THEN 990  910 IF w(r+1, s) <> 0 THEN 990  920 IF s <> v THEN 950  930 IF z = 1 THEN 980  940 q = 1: GOTO 1100  950 IF w(r, s+1) <> 0 THEN 980  960 x = INT(RND(1)*2+1)  970 ON x GOTO 1130, 1200  980 GOTO 1130  990 IF s <> v THEN your      printer."  290 PRINT: PRINT " Press any key  when printer     is       ready.": GET    k$: PRINT: PRINT " One moment...."  295 PRINT: PRINT: GOSUB 1600:     GOTO 210  300 c = 1: w(x, 1) = c: c = c+1  310 r = x: s = 1: GOTO 380  320 IF r <> h THEN 360  330 IF s <> v THEN 350  340 r = 1: s = 1: GOTO 370  350 r = 1: s = s+1: GOTO 370  360 r = r+1  370 IF w(r, s) = 0 THEN 320  380 IF r-1 = 0 THEN 710  390 IF w(r-1, s) <> 0 THEN 710  400 IF s-1 = 0 THEN 540  410 IF w(r, s-1) <> 0 THEN 54 IF q = 1 THEN 1260 1210 w(r, s+1) = c: c = c+1: IF    v(r, s) = 0 THEN 1230 1220 v(r, s) = 3: GOTO 1240 1230 v(r, s) = 1 1240 s = s+1: IF c = h*v+1 THEN    1310 1250 GOTO 380 1260 z = 1 1270 IF v(r, s) = 0 THEN 1290 1280 v(r, s) = 3: q = 0: GOTO 1300 1290 v(r, s) = 1: q = 0: r = 1: s  = 1: GOTO 370 1300 GOTO 320 1310 FOR j = 1 TO v 1320 PRINT "I";  1330 FOR i = 1 TO h 1340 IF v(i, j) < 2 THEN 1370 1350 PRINT "   ";  1360 GOTO 1380 1370 PRINT "  I";  1380 NEXT i 1390 PRINT 1400 FOR i = 1 lined up properly, or if  they are in the right position.   A quick and easy way to check,  is to go to the Moving Window op-  tion.   Just  press  SmartKEY II,  then SmartKEY VI (moving window).  The screen will change and you're  in  "Moving Window"  format.  The  first  thing  you  will notice is  that you have  much better cursor  control.  You  can move  all over  the screen.  When you  move  from  left to right, and you get to the  end of the line  on your  screen,  the cursor will keep right on go-T " Program  terminated": END1MAKE "STARTUP [SETBG 4 TELL ALL FREEZE PU HT START HELP]ERASE [HOMEkey SK1 SK2 SK3 SK4 WILDkey PRINTERkey GETkey     UNDOkey CLONE] STARTUPENDrem:Since I can't send non-ASCIIcharacters to CIS via AdamLink II,I set the function key definitionsto ASCII character TITLES.This routine sets-up the SMARTKeys,copies the defs in, redefinesSTARTUP slightly, and finally,erases then  you  want to go back to  standard for-  mat, just press SmartKEY II again  and then press SmartKEY VI (stan-  dard format), and you're  back in  standard format again.   In standard format, what'll be  one line  when printed out,  will  be two lines, on your screen.  In  Moving Window  format,  the whole  line is right there  where it be-  longs, and  you can  scan it from  one end to the other.   It's good  to have this option  just to check things out on occa-  sion, if for no other  reason.  I  feel‚#яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя-----------MOVE AROUND-----------   How many of you ADAM users out  there have tried  ADAM's  "Moving  Window" option.  If you are work-  ing in SmartWriter (especially if  you are columnizing a row of fig-  ures) you may sometimes wonder if  they are TO h 1410 IF v(i, j) = 0 THEN 1450 1420 IF v(i, j) = 2 THEN 1450 1430 PRINT ":  ";  1440 GOTO 1460 1450 PRINT ":--";  1460 NEXT i 1470 PRINT "." 1480 NEXT j 1490 PRINT: PRINT: PR #0 1500 TEXT: PRINT: PRINT " Would    you like to create        another    maze? (y/n) ": GET k$ 1510 IF k$ = "Y" OR k$ = "y" THEN  CLEAR: GOTO 100 1520 IF k$ = "N" OR k$ = "n" THEN  1700 1600 IF an$ = "Y" OR an$ = "y"     THEN  PR #2 1610 IF an$ = "N" OR an$ = "n"     THEN  PR #1 1620 RETURN 1700 TEXT: PRINT: PRIN  ing, and  the  rest of  your line  will come into view.  When you go  to the  left, the same thing will  happen, the  lines  will  move to  the right  as the cursor  goes to  the left.  You can jump your cur-  sor up and down  on the screen by  using the up and down  arrow con-  trols.  It's  great  when you are  doing  columnizing  with  rows of  figures.  Try it, it's fun!   Some things work better in the  Moving Window  (or  wide  screen)  format, and some  work  better in  the  standard format.   Whe old TITLES and itselfbefore calling the new STARTUP.MAKE "STARTUP [SETBG 4 TELL ALL FREEZE PU HT CLONE]rem:Sets background to dark blue,tells all turtles to "freeze"then hides them & sends themhome & calls CLONE.*Programmers note 1:To define Adamsfunction keys in SmartLOGO, type<TO > then hit PRINT key followedby the key you want to definefollowed by <CR>, write definitionin the usual way then hitSmartKey [VI] to store def. (e.g;)TO <PRINTkey><HOMEkey><CR>STARTUPEND[VI]rem:This sets-u sure that you will find some  uses for it.   Give it a try  and  experiment!                         -----NJD  ---------------------------------  x GOTO 1050, 1090, 1200  520 x = INT(RND(1)*2+1)  530 ON x GOTO 1050, 1090  540 IF r = h THEN 640  550 IF w(r+1, s) <> 0 THEN 640  560 IF s <> v THEN 590  570 IF z = 1 THEN 620  580 q = 1: GOTO 600  590 IF w(r, s+1) <> 0 THEN 620  600 x = INT(RNDn  you  want to go back to  standard for-  mat, just press SmartKEY II again  and then press SmartKEY VI (stan-  dard format), and you're  back in  standard format again.   In standard format, what'll be  one line  when printed out,  will  be two lines, on your screen.  In  Moving Window  format,  the whole  line is right there  where it be-  longs, and  you can  scan it from  one end to the other.   It's good  to have this option  just to check things out on occa-  sion, if for no other  reason.  I  feel‚#яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя---------------------------------     -ORIGINAL COMPUTER BUG-       ---------------------------------   Everyone talks about "bugs" in  computers; but how did it start.   Around l945, Grace Murray Har-  per, was a  pioneer programmer in  the Navy; whe to Adamites. Is the 64k memory expander a  thing of the past?ADMCLOCK.TXTADCLOCK3.SFTADCLOCK3.TXTMessage traffic from Internet. A conversation between Rich Drushel  and Bart Lynch regarding Chris Braymen's proposed 'ADAMNET clock'.  Reader input requested. These are two way conversations between     Chris Braymen and Rich Drushel. It's sometimes difficult to         discern who is saying what. Not that mostly Chris is asking the     questions. Note also that the two messages appear to be identical, st  actual case  of a bug being found".  From then  on, when anyone asked about their  work, and if  they  were  accomp-  lishing anything; they  said they  were "debugging" the computer.   The term  stuck, and from then  on, when a problem was encounter-  ed (especially with software); it  was said  to have  a "bug" in it.  Correcting  the  problems  became  known as "debugging".                         -----NJD  --------------------------------- (1)*3+1)  610 ON x GOTO 1050, 1130, 1200  620 x = INT(RND(1)*2+1)  630 ON x GOTO 1050, 1130  640 IF s <> v THEN 670  650 IF z = 1 THEN 700  660 q = 1: GOTO 680  670 IF w(r, s+1) <> 0 THEN 700  680 x = INT(RND(1)*2+1)  690 ON x GOTO 1050, 1200  700 GOTO 1050  710 IF s-1 = 0 THEN 900  720 IF w(r, s-1) <> 0 THEN 900  730 IF r = h THEN 830  740 IF w(r+1, s) <> 0 THEN 830  750 IF s <> v THEN 780  760 IF z = 1 THEN 810  770 q = 1: GOTO 790  780 IF w(r, s+1) <> 0 THEN 810  790 x = INT(RND(1)*3+1‚DяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяThe ADAM News NetworkMonthly DiskJanuary 1995Side 1Editor: Ronald H. MitchellApt. 1107,210 Gloucester St.,Ottawa Ontario,CanadaK2P 2K464K-EXP.TXTComment from Norman Deere about the dwindling supply of memory      expander units availablo was  working on the  Harvard  Mark I, which was "state  of the art" for computers at that  time.  It contained  thousands of  electromechanical relays.   One warm day, a malfunction in  the clattering computer caused it  to be  shut down.  While investi-  gating the  problem, the program-  mers found the cause to be a moth  that had  blocked  an  electrical  switch in the circuitry.   Since they  kept a  logbook on  all the  computer happenings, she  taped the moth  to the page, with  the notation  "fir however there are differences. This stems from the fact that Rich   was quoting Chris's original message in each case.FAQ-C-3.TXTFAQ-C-4.TXTTXT-C-5.TXTA series of artiles submitted by Barry Wilson, ANN founder, on      copyright laws. Interesting reading for those of us submitting      material to the public.Barry.TXTTonque in cheek article how ADAM would be handled by different      types of government or administrative regime. Adapted from          material about cows, farmers and Mensa (whatevGO TOOLS, and other assorted FIDDLE FADDLE.LOGOBOSS.DOCLOGOBOSS.LGOA very interesting LOGO shell written by Bob Jones of Esmond Rhode  Island. Dubbed at the beginning as "Bob's Operating System          Supervisor/vs 1.0", this program allows the user to select          different systems at the touch of PRINT+ANOTHER KEY followed by     RETURN. And finally!  Somebody has written a SKETCH utility in      LOGO. Joystick driven. Full documentation and help menus are        included. Looks like a good piectario July 20 thru 23 1995. Check this out, and start making      plans!ANNTOBBS.TXTViewpoint from Jerry Vrancks on whether or not ANN disks should be  made available to ADAM BBS's. This debate is going on in response   to my request for input on a previous ANN disk. Many opinions have  been received. It's going to be a difficult decision. See my        editorial.BBS-D94.TXTA list of BBS's providing service to ADAMites. Compiled by Norman   Deere (Emerald Coast ADAM User's Group). Let's keep this upassumes that your dot    matrix printer is PR#2 and your ADAM printer is PR#1. In my case,   this is not true. My dot-matrix is PR#1. You may need to make a     change here.MOVARND.TXTSome tips on using SmartWriter's moving window format from Norman   Deere, Emerald Coast ADAM User's Group.ORIGCOMB.TXTAn interesting piece of history about the origin of the term "bug"  as it's commonly used in the computer world. Ever wonder where it   came from? Read on and discover. Submitted by Norman Deere. s of articles in the Going for GODOS series    by Ron Mitchell (AUFG Ottawa). This article talks about methods     for analysing the program examples provided with the GODOS          distribution package.LANDER.LGOA LOGO version of the time honoured game, LUNAR LANDER. Provided    courtesy the Emerald Coast ADAM User Group, by Faye and  Norman     Deere.LOGO27.101The LOGO Notebook installment 27 by Ron Mitchell, AUFG Ottawa.      This article talks about the complex math routines included with    LOer they have in       comon.)75THISSU.TXTCongratulations to the AUGER newsletter, regular publication of     the Emerald Coast ADAM Users Group. From modest beginnings in       September 1985, AUGER has become a mainstay of the ADAM community.  This article recounts a little history that you'll certainly want   to read.AC06ATTN.TXTA list of Attendees at ADAMCON 06, held in October 1994 at          Sarasota Florida.ADAMCON7.MSGOfficial word on the upcoming ADAMCON 7, scheduled for Waterloo     One of work. Thanks to Bart Lynch     for this contribution.MAZEMAK.TXTMAZEMAKR.PGMA SmartBASIC Maze Generator. Works on the ADAM printer or a DOT-    Matrix printer. The TXT file appears to contain one additional      line that the .PGM file does not, and it's critical. To the         program file add the following:180 TEXT:PRINT:PRINT " This maze will be printed out on your        printer. Are you using a dot matrix printer? (y/n) ":GET ANS$:      GOTO 280Also, note lines 1600 to 1610. The program  to      date. Any corrections or omissions should be reported to ANN.GAS.TXTLost on the Information Highway? Read this. You'll be able to       relate. A lighthearted look at the technologically challenged from  the Toronto Star, Jan 31 1995.GFA.TXTA comprehensive and well written review by Jerry Vrancks (463       ADAM) on a new program by Rich Cossaboon and Bob Sebelist called    GRAPHIC FILE ADDRESSER I. This is GODOS software. Let's hope there  will be more.GOGODOS2.TXTThe second in a serie‚LяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяDOC FOR LOGOBOSS 1.0 by Bob JONES***IMPORTANT***Read entire doc before proceeding.You should "boot" SmartLOGO fromyour data-pack or disk then LOADthis program directly from themedia you down-loaded to.  TypeCLONE and hit <CR>...The programthen SETH 45 * :DIRSETSP 10 DRAW JOY 0ENDrem:Next part of SKETCH. Whenjoystick is still, (DIR = -1) theturtle stops. Use PD & PU to loweror raise the pen. When finished,type HT to hide the turtle & clearthe screen.TO CHCGO TELL 0 ST SETC 1 + COLORPR [COLOR #:] PR COLORR CHCENDrem:Makes turtle appear, & changecolor while color # prints-outfor each change; brief pause "R" isbuilt-in to allow you to hitESCAPE & stop routine when youget the color you want. Use HTwhen done to Hide Turtle.TO CHScription after each routine.TO STARTGO S 2PR [\ WELCOME TO "LOGO\-B.O.S.S."]S 1PR [\ \ {Bob's Operating System}]S 1PR [\ \ \ \ {Supervisor\/vs 1.0}]S 2PR [TO CATALOG...]S 1PR [[I] \ \= DISK 1 = DEVICE 4]S 1PR [[II] \ = RAM/DR = DEVICE 2]S 1PR [[III]  = TAPE 1 = DEVICE 0]S 1PR [[IV] \ = TAPE 2 = DEVICE 1]S 1PR [[GET]  = CURRENT DEVICE]PENDrem:1'st intro/help screen.You can change setups fordifferent drive configurations.TO HELPGO S 1PR [HIT PRINT + HOME + \<CR\>]PR [FOR DEVICE &printer off.TO PWAIT 600ENDrem:WAIT is a logo "primitive";WAIT 60 = approx :01 so WAIT 600= about :10   TO GETkey (PRINT key + ST/GET key)GO TYPE [DEVICE\ ] TYPE DEVICEPR [\ CATALOG] S 1 CATALOGENDrem:Get current device# & catalog.TO SK1 (PRINT key + [I] key)GO S 1 PR [DISK\-1\ CATALOG] S 1SETDEVICE 4 CATALOGENDrem:Setdevice 4 (disk 1) & catalog.TO SK2 (PRINT key + [II] key)GO S 1PR [RAM\-DRIVE\ CATALOG] S 1SETDEVICE 2 CATALOGENDrem:Setdevice 2 (ram) & catalog.RamDrive util is MEENDrem:Clear screen & Print-Out-TitleS(POTS = a LOGO primitive.)TO RRECYCLEENDrem:Another LOGO primitive thatreclaims redundant NODES.Interesting note: RECYCLE takesabout 1-2 seconds, making it auseful "short pause" device.TO SKETCHGOTELL ALL PU HT HOME FREEZETELL 0 ST THAW PDWHEN 2 [DRAW JOY 0]ENDrem:When joystick #1 is moved,turtle # 0 appears (ST) unfreezes(THAW), puts its' pen down(PD) & calls DRAW routine.Use joystick to draw any design.TO DRAW :DIRIF :DIR = -1 [SETSP 0 STOP]will automatically re-configure itself to set-up theSMARTKEYS & other function keys.Before doing ANYTHING else youshould SAVE to your SmartLOGOmedia as "LOGOBOSS or "STARTUP.You may wish to use SmartWriterto edit out extra characters sentby CIS and then re-save the pgm,but DO NOT use the CLEAR functionor the file type will be re-set toan "H" type word-processor file &you won't be able to LOAD in LOGO.DO NOT TRY TO EDIT THE NEW VERSIONWITH SMARTWRITER OR BAD THINGS WILLHAPPEN.(more...)rem:DesHCT TELL 0 STIF SHAPE = 59 [SETSH 0]SETSH ( SHAPE + 1 )PR [SHAPE #:] PR SHAPER CHSHENDrem:Like CHC except turtlechanges shape & # prints-out.Use ESCAPE key to halt.TO CHBGGO SETBG 1 + BGPR [BG #:] PR BGR CHBGENDrem:Changes background (screen)color & prints-out color # withbrief pause for each change. HitESCAPE key to stop at right color.TO PRINTERkey (PRINT key + PRINT key)PRINTERENDrem:Turns smartwriter printer on.TO UNDOKey (PR key + UNDO key)NOPRINTERENDrem:Turns smartwriter  HELP LISTS]S 1PR [HIT PRINT + ST\/GET + \<CR\>]PR [FOR CURRENT DEVICE CATALOG]S 1PR [HIT PRINT + [I] [II] [III]]PR [OR [IV] + \<CR\> TO]PR [SETDEVICE & SHOW CATALOG]S 1PR [HIT PRINT + WILDCARD + \<CR\>]PR [FOR LIST OF "TOOL\/DEFS"]S 1PR [HIT PRINT + PRINT + \<CR\>]PR [TO TURN PRINTER ON]S 1PR [HIT PRINT + UNDO + \<CR\>]PR [TO TURN PRINTER OFF]S 1PR [HIT [V] TO PAUSE\/START PGM]S 1PR [HIT [VI] TO STORE NEW DEFS]ENDrem:2'nd intro/help screen.TO WILDkey (PR key + WILDCARD key)GO POTSMDSK FOR LOGO byHexace Software. If you order thisutility, please mention where youheard of it. Cost is US$10.TO SK3 (PRINT key + [III] key)GO S 1PR [TAPE\-1\ CATALOG] S 1SETDEVICE 0 CATALOGENDrem:Setdevice 0 (tape 1) & catalog.TO SK4 (PRINT key + [IV] key)GO S 1PR [TAPE\-2\ CATALOG] S 1SETDEVICE 1 CATALOGENDrem:Setdevice 1 (tape 2) & catalog.TO S :NREPEAT :N [PR []]ENDrem:Input is [S n] where "n" isthe number of blank lines youwish to Scroll; you must put aspace between "S" & "n" 02917Tel:(401)-232-2400Fax:(401)-232-0235(end of LOGOBOSSdoc)PR#4      LIST      Now the listing goes to BOTH the screen AND the dot-matrix printer.      If you review the doc files that came with GODOS 1.2, you see that       other PR# settings are possible including output to the ADAM       printer (PR#1), output to the screen and to the ADAM printer       (PR#2), and output to the screen of the larger graphics fonts that       we CHAR 3COPYDEF "SK4 CHAR 4COPYDEF "WILDkey CHAR 16COPYDEF "UNDOkey CHAR 17COPYDEF "GETkey CHAR 19COPYDEF "PRINTERkey CHAR 21MAKE "STARTUP [SETBG 4 TELL ALL FREEZE PU HT START HELP]ERASE [HOMEkey SK1 SK2 SK3 SK4 WILDkey PRINTERkey GETkey     UNDOkey CLONE] STARTUPENDrem:Since I can't send non-ASCIIcharacters to CIS via AdamLink II,I set the function key definitionsto ASCII character TITLES.This routine sets-up the SMARTKeys,copies the defs in, redefinesSTARTUP slightly, and finally,erases theCE 0]S 1PR [[IV] \ \= TAPE 2 = DEVICE 1]S 1PR [[GET] = CURRENT DEVICE]PENDTO HELPGO S 1PR [HIT PRINT + HOME + \<CR\>]PR [FOR DEVICE & HELP LISTS]S 1PR [HIT PRINT + ST\/GET + \<CR\>]PR [FOR CURRENT DEVICE CATALOG]S 1PR [HIT PRINT + [I] [II] [III]]PR [OR [IV] + \<CR\> TO]PR [SETDEVICE & SHOW CATALOG]S 1PR [HIT PRINT + WILDCARD + \<CR\>]PR [FOR LIST OF "TOOL\/DEFS"]S 1PR [HIT PRINT + PRINT + \<CR\>]PR [TO TURN PRINTER ON]S 1PR [HIT PRINT + UNDO + \<CR\>]PR [TO TURN PRINTER OFF]S 1Pp the HOME key.Don't forget to type a spaceafter TO. Call routine by hittingPRINT key, HOME key & <CR>So far I've not been able toeliminate the PRINT key or <CR>steps for true "one-key" macros.**Programmers note 2:Some of thespecial key symbols will not printout in SmartWriter WP characters.I've substituted similar charactersto replace the non-printing ones.October 13, 1991Send questions or comments to:Robert W. Jones (CIS ID#71341,3372)c/o Smithfield Susse ChaletP.O.Box 17309Esmond, RITO GOSETTEXT 0 CS RTYPE [NODES\=] PR NODESENDrem:Clears everything from screen,sets text to top line, RECYCLES &tells how much workspace is left.TO HOMEkey (PRINT key + HOME key)STARTUPENDrem:Help...runs (first 2 screens.)TO NEWGO TYPE [NODES\=] PR NODESS 1 CATALOG S 1ERALL RECYCLEENDrem:CAREFUL-this one eraseseverything in the workspace.TO CLONEGETkey S 1PR [SETTING UP SMARTKEYS...PR [PLEASE WAIT!] WAIT 300COPYDEF "HOMEkey CHAR 0COPYDEF "SK1 CHAR 1COPYDEF "SK2 CHAR 2COPYDEF "SK3‚LяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяЮяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяTO STARTGO S 2PR [\ WELCOME TO "LOGO\-B.O.S.S."]S 1PR [\ \ {Bob's Operating System}]S 1PR [\ \ \ \ {Supervisor\/vs 1.0}]S 2PR [TO CATALOG...]S 1PR [[I] \  = DISK 1 = DEVICE 4]S 1PR [[II] \ \= RAM\/DR = DEVICE 2]S 1PR [[III] = TAPE 1 = DEVI old TITLES and itselfbefore calling the new STARTUP.MAKE "STARTUP [SETBG 4 TELL ALL FREEZE PU HT CLONE]rem:Sets background to dark blue,tells all turtles to "freeze"then hides them & sends themhome & calls CLONE.*Programmers note 1:To define Adamsfunction keys in SmartLOGO, type<TO > then hit PRINT key followedby the key you want to definefollowed by <CR>, write definitionin the usual way then hitSmartKey [VI] to store def. (e.g;)TO <PRINTkey><HOMEkey><CR>STARTUPEND[VI]rem:This sets-uR [HIT [V] TO PAUSE\/START PGM]S 1PR [HIT [VI] TO STORE NEW DEFS]ENDTO WILDkeyGO POTSENDTO RRECYCLEENDTO SKETCHGO TELL ALL PU HT HOME FREEZETELL 0 ST THAW PDWHEN 2 [DRAW JOY 0]ENDTO DRAW :DIRIF :DIR = -1 [SETSP 0 STOP]SETH 45 * :DIRSETSP 10 DRAW JOY 0ENDTO CHCGO TELL 0 ST SETC 1 + COLORPR [COLOR #:] PR COLORR CHCENDTO CHSHCT TELL 0 STIF SHAPE = 59 [SETSH 0]SETSH ( SHAPE + 1 )PR [SHAPE #:] PR SHAPER CHSHENDTO CHBGGO SETBG 1 + BGPR [BG #:] PR BGR CHBGENDTO PRINTERk, length? "; h,   v  140 IF h <> 1 AND v <> 1 AND h <   27 GOTO 170  150 IF h > 26 THEN  TEXT: PRINT:   PRINT " Too wide! "  160 PRINT " That size is           impossible!       Please  try        again!": PRINT: PRINT  170 DIM w(h, v), v(h, v)  180 TEXT: PRINT: PRINT " This      maze will be printed out  on your   printer.  Are you         using a dot  matrix         printer? (y/n) ": GET an$  200 GOTO 280  210 q = 0: z = 0: x =              INT(RND(1)*h+1)  220 FOR i = 1 TO h  230 IF i = x THEN  TYPE [NODES\=] PR NODESS 1 CATALOG S 1ERALL RECYCLEENDTO CLONEGETkey S 1PR [SETTING UP SMARTKEYS...]PR [PLEASE WAIT!] WAIT 300COPYDEF "HOMEkey CHAR 0COPYDEF "SK1 CHAR 1COPYDEF "SK2 CHAR 2COPYDEF "SK3 CHAR 3COPYDEF "SK4 CHAR 4COPYDEF "WILDkey CHAR 16COPYDEF "UNDOkey CHAR 17COPYDEF "GETkey CHAR 19COPYDEF "PRINTERkey CHAR 21MAKE "STARTUP [SETBG 4 TELL ALL FREEZE PU HT START HELP]ERASE [HOMEkey SK1 SK2 SK3 SK4 WILDkey PRINTERkey GETkey     UNDOkey CLONE] STARTUPENDMAKE "STARTUP [SETBG 4 T: s = 1: GOTO 380  320 IF r <> h THEN 360  330 IF s <> v THEN 350  340 r = 1: s = 1: GOTO 370  350 r = 1: s = s+1: GOTO 370  360 r = r+1  370 IF w(r, s) = 0 THEN 320  380 IF r-1 = 0 THEN 710  390 IF w(r-1, s) <> 0 THEN 710  400 IF s-1 = 0 THEN 540  410 IF w(r, s-1) <> 0 THEN 540  420 IF r = h THEN 460  430 IF w(r+1, s) <> 0 THEN 460  440 x = INT(RND(1)*3+1)  450 ON x GOTO 1050, 1090, 1130  460 IF s <> v THEN 490  470 IF z = 1 THEN 520  480 q = 1: GOTO 500  490 IF w(r, s+1) <> 0 THEN 520  10 REM * Modified by Faye            Deere, 9/91   15 REM * MazeMaker   20 ONERR  GOTO 1700  100 TEXT: HTAB 7: INVERSE: PRINT   " AMAZING MAZE MAKER":    NORMAL  110 VTAB 8: PRINT " Please insert  the width and    length   that you   would like     your maze to be.      The width"  120 PRINT " must be more than 1    and less   than 27.  The  length     must be   more than 1.  Insert the"  130 PRINT " information as width,  length   with a comma     between    the   numbers.": PRINT  135 INPUT " WidtheyPRINTERENDTO UNDOkeyNOPRINTERENDTO PWAIT 600ENDTO GETkeyGO TYPE [DEVICE\ ] TYPE DEVICEPR [\ CATALOG] S 1 CATALOGENDTO SK1GO S 1PR [DISK\-1\ CATALOG] S 1SETDEVICE 4 CATALOGENDTO SK2]GO S 1PR [RAM\-DRIVE\ CATALOG] S 1SETDEVICE 2 CATALOGENDTO SK3GO S 1PR [TAPE\-1\ CATALOG] S 1SETDEVICE 0 CATALOGENDTO SK4GO S 1PR [TAPE\-2\ CATALOG] S 1SETDEVICE 1 CATALOGENDTO S :NREPEAT :N [PR []]ENDTO GOSETTEXT 0 CS RTYPE [NODES\=] PR NODESENDTO HOMEkeySTARTUPENDTO NEWGO250  240 PRINT ".--"; : GOTO 260  250 PRINT ".  ";   260 NEXT i  270 PRINT ".": GOTO 300  280 TEXT: PRINT: HTAB 10: PRINT    "PLEASE WAIT": PRINT:     PRINT:     PRINT  " This may take up to 2       minutes."  285 PRINT " While you are          waiting, insert  paper    in your    printer."  290 PRINT: PRINT " Press any key   when printer     is       ready.":   GET    k$: PRINT: PRINT " One        moment...."  295 PRINT: PRINT: GOSUB 1600:      GOTO 210  300 c = 1: w(x, 1) = c: c = c+1  310 r = xELL ALL FREEZE PU HT CLONE] to loweror raise the pen. When finished,type HT to hide the turtle & clearthe screen.TO CHCGO TELL 0 ST SETC 1 + COLORPR [COLOR #:] PR COLORR CHCENDrem:Makes turtle appear, & changecolor while color # prints-outfor each change; brief pause "R" isbuilt-in to allow you to hitESCAPE & stop routine when youget the color you want. Use HTwhen done to Hide Turtle.TO CHS500 x = INT(RND(1)*3+1)  510 ON x GOTO 1050, 1090, 1200  520 x = INT(RND(1)*2+1)  530 ON x GOTO 1050, 1090  540 IF r = h THEN 640  550 IF w(r+1, s) <> 0 THEN 640  560 IF s <> v THEN 590  570 IF z = 1 THEN 620  580 q = 1: GOTO 600  590 IF w(r, s+1) <> 0 THEN 620  600 x = INT(RND(1)*3+1)  610 ON x GOTO 1050, 1130, 1200  620 x = INT(RND(1)*2+1)  630 ON x GOTO 1050, 1130  640 IF s <> v THEN 670  650 IF z = 1 THEN 700  660 q = 1: GOTO 680  670 IF w(r, s+1) <> 0 THEN 700  680 x = INT(RND(1)*2+1) Would     you like to create        another    maze? (y/n) ": GET k$ 1510 IF k$ = "Y" OR k$ = "y" THEN   CLEAR: GOTO 100 1520 IF k$ = "N" OR k$ = "n" THEN   1700 1600 IF an$ = "Y" OR an$ = "y"      THEN  PR #2 1610 IF an$ = "N" OR an$ = "n"      THEN  PR #1 1620 RETURN 1700 TEXT: PRINT: PRINT " Program   terminated": END                                     1220 v(r, s) = 3: GOTO 1240 1230 v(r, s) = 1 1240 s = s+1: IF c = h*v+1 THEN     1310 1250 GOTO 380 1260 z = 1 1270 IF v(r, s) = 0 THEN ON x GOTO 1090, 1200  890 GOTO 1090  900 IF r = h THEN 990  910 IF w(r+1, s) <> 0 THEN 990  920 IF s <> v THEN 950  930 IF z = 1 THEN 980  940 q = 1: GOTO 1100  950 IF w(r, s+1) <> 0 THEN 980  960 x = INT(RND(1)*2+1)  970 ON x GOTO 1130, 1200  980 GOTO 1130  990 IF s <> v THEN 1020 1000 IF z = 1 THEN 1040 1010 q = 1: GOTO 1030 1020 IF w(r, s+1) <> 0 THEN 1040 1030 GOTO 1200 1040 GOTO 1300 1050 w(r-1, s) = c 1060 c = c+1: v(r-1, s) = 2: r =    r-1 1070 IF c = h*v+1 THEN 1310 1080 q = 0: Gееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееее1290 1280 v(r, s) = 3: q = 0: GOTO 1300 1290 v(r, s) = 1: q = 0: r = 1: s   = 1: GOTO 370 1300 GOTO 320 1310 FOR j = 1 TO v 1320 PRINT "I";  1330 FOR i = 1 TO h 1340 IF v(i, j) < 2 THEN 1370 1350 PRINT "   ";  1360 GOTO 1380 1370 PRINT "  I";  1380 NEXT i 1390 PRINT 1400 FOR i = 1 TO h 1410 IF v(i, j) = 0 THEN 1450 1420 IF v(i, j) = 2 THEN 1450 1430 PRINT ":  ";  1440 GOTO 1460 1450 PRINT ":--";  1460 NEXT i 1470 PRINT "." 1480 NEXT j 1490 PRINT: PRINT: PR #0 1500 TEXT: PRINT: PRINT "  690 ON x GOTO 1050, 1200  700 GOTO 1050  710 IF s-1 = 0 THEN 900  720 IF w(r, s-1) <> 0 THEN 900  730 IF r = h THEN 830  740 IF w(r+1, s) <> 0 THEN 830  750 IF s <> v THEN 780  760 IF z = 1 THEN 810  770 q = 1: GOTO 790  780 IF w(r, s+1) <> 0 THEN 810  790 x = INT(RND(1)*3+1)  800 ON x GOTO 1090, 1130, 1200  810 x = INT(RND(1)*2+1)  820 ON x GOTO 1090, 1130  830 IF s <> v THEN 860  840 IF z = 1 THEN 890  850 q = 1: GOTO 870  860 IF w(r, s+1) <> 0 THEN 890  870 x = INT(RND(1)*2+1)  880 ееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееOTO 380 1090 w(r, s-1) = c 1100 c = c+1 1110 v(r, s-1) = 1: s = s-1: IF c   = h*v+1 THEN 1310 1120 q = 0: GOTO 380 1130 w(r+1, s) = c 1140 c = c+1: IF v(r, s) = 0 THEN   1160 1150 v(r, s) = 3: GOTO 1170 1160 v(r, s) = 2 1170 r = r+1 1180 IF c = h*v+1 THEN 1310 1190 GOTO 710 1200 IF q = 1 THEN 1260 1210 w(r, s+1) = c: c = c+1: IF     v(r, s) = 0 THEN 1230 1220 v(r, s) = 3: GOTO 1240 1230 v(r, s) = 1 1240 s = s+1: IF c = h*v+1 THEN     1310 1250 GOTO 380 1260 z = 1 1270 IF v(r, s) = 0 THEN ееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееее