(1,BOB) I HAVE ONE COMMENT ON LOGO FOR NOW... (1,dick/CHAIR) Welcome tom I was... (1,dick/CHAIR) afraid that the author of DSKED would... (1,dick/CHAIR) leave us in the lurch! (1,BOB) I ORDERED MINE FROM COMPUTER OUTLET IN NOVEMBER AND THEY SAY ATARI ISN'T SHIPPIBN! (1,.) They are crazy! (1,Tom Goltz) Dick- Having problems with DISKED? (1,dick/CHAIR) BOB>>I've had mine for... (1,.) Hit the gavel, Dick--my disk is humming! (1,dick/CHAIR) tom>>none love it! (1,dick/CHAIR) bob>>4 months! (1,Tom Goltz) Dick- Great! (1,dick/CHAIR) bob>>my dealers stocked up! (1,dick/CHAIR) OK let7s review... (1,dick/CHAIR) the protocol ... (1,Tom Goltz) }} (1,dick/CHAIR) for tonite's meeting... (1,Tom Goltz) `}`} (1,Tom Goltz) OOps, sorry. (1,dick/CHAIR) to keep it organized... (1,dick/CHAIR) type # to be recognized by the CHAIR... (1,dick/CHAIR) and ga when you're done talking... # (1,Tom Goltz) # (1,dick/CHAIR) ./ne arch first then tom (1,.) Okay, I have prepared a little review (1,.) of LISP and LOGO similarities and.. (1,.) differrences. Let me try and get it (1,.) in gear, if all are ready. (1,.) I would like to give a brief... (1,.) review of the similarities and (1,.) differences of LOGO and LISP. I (1,.) have used LISP on a SPERRY 1100 (1,.) ATARI. LISP is a List processor (1,.) hence its name. It has basic.. (1,.) commands to manipulate lists, (1,.) and everything, including the ~(1,.) procedures you write, are lists (1,.) This means you can manipulate (1,.) programs with LISP giving you (1,.) self-modifiable code while also (1,.) maintaining a very structured (1,.) environment... Yes, they have (1,.) structured controls, much as (1,.) Pascal and C do, although it (1,.) takes getting used to, since (1,.) everything must be properly (1,.) bracketed with parentheses or (1,.) square brackets. Anyone who (1,.) has used LOGO with lists may (1,.) have already found out how easy (1,.) it is to get confused on the (1,.) bracketing. (1,.) The similiarities are striking: (1,.) LISP has CAR to get the first (1,.) entry of a list, LOGO has FIRST (1,.) LISP uses CDR to get the rest (1,.) of that list, LOGO has BUTFIRST (1,.) In fact, for list manipulation, (1,.) almost any basic function in (1,.) LISP has a counterpart in LOGO, (1,.) but LOGO has more meaningful (1,.) names for them! LISP calls the (1,.) entities which make up lists, (1,.) but which are not lists, ATOMs; (1,.) LOGO calls them WORDs. (1,.) There are two dialects of LISP, (1,.) based on whethet you must use (1,.) quotes on an input to have it (1,.) not evaluated (treated as calls (1,.) to be performed) or not. One is (1,.) called EVAL LISP, the other (1,.) EVAL-QUOTE LISP. LOGO is, as (1,.) anyone who forgot the quote on (1,.) an input statement can attest, (1,.) the EVAL type. Square brackets (1,.) [ & ] serve as extended quotes. (1,.) LISP has a function named QUOTE (1,.) that does the same thing... (1,.) Differences: besides the turtle (1,.) graphics support, the greatest (1,.) differences lie in the area of (1,.) procedure access as LISTs. The (1,.) LOGO documents hint at the fact (1,.) that storage is built upon LIST (1,.) but you cannot get at the lists (1,.) to manipulate them. I have yet (1,.) to find a way to get at a pro- (1,.) cedure definition list so that (1,.) I could do a global change of a (1,.) string in the procedure. (1,.) The manner of accessing the par (1,.) ameters to a procedure differs, (1,.) with each language having an (1,.) advantage over the other for (1,.) some thingS: LISP allows open (1,.) ended parameter lists, you must (1,.) be very explicit with LOGO. You (1,.) have a clearer naming of input (1,.) parameters in LOGO than in LISP (1,.) (1,.) LISP has many more functions to (1,.) manipulate lists, as one would (1,.) expect, but there is much that (1,.) LOGO allows you to do that (1,.) corresponds to the LISP (1,.) capabilities. (1,.) (1,.) (1,dick/CHAIR) !APPLAUSE! (1,dick/CHAIR) FANTASTIC! (1,tom) [clap, clap] (1,dick/CHAIR) THAT WAS ARCHIE STRONG... (1,.) (1,tom) (Now the chair's telling us when to clap!) What's your handle? Arch (1,dick/CHAIR) FOR ANYONE WHO DIDN'T RECOGNIZE THE DISTINCTIVE... (1,dick/CHAIR) PERIOD... (1,dick/CHAIR) HELL NO WE WERE APPLAUDING! (1,dick/CHAIR) ARCH , TAKE A BOW (1,Arch) Now I'm back to more conventional handle (1,tom) Oh. He already did, but take another anyhow. (1,dick/CHAIR) TOM>>GA (1,tom) Okay... (1,Arch) One further comment--I am putting this on disk--I will flag with !#! when I.. (1,Arch) need to take a break to dump--sorry Tom (1,tom) Logo and Lisp share many of the features (1,tom) However, I've not met many LISPs withturtle graphics! (1,dick/CHAIR) GA WHEN DONE (1,tom) One feature I'd like to see in a LOGO (1,tom) is the ability to have mutiple turtles (1,tom) on the screen at once. This would make (1,tom) animation, and other jobs requiring (1,dgg-your tour guide) # (1,tom) drawing several items at once. (1,tom) I've fiddled around a bit trying to fake (1,tom) it up with one turtle and a program (1,tom) but I always ran out of memory before I (1,tom) got done! ga (1,dick/CHAIR) DGG>>GA (1,dgg-your tour guide) Just a note for Tom (1,dgg-your tour guide) Atari has 4 turtles.ga (1,dick/CHAIR) # (1,tom) (That's what I get for doing my Logo programming on an Apple 2! (1,dick/CHAIR) I think Tom has Apple LOGO (1,dick/CHAIR) # (1,dick/CHAIR) Arch brought up some points... (1,dick/CHAIR) that tie in naturally with... (1,dick/CHAIR) our second topic of the ... (1,dick/CHAIR) evening which relates... (1,dick/CHAIR) to developing a list of procedures... (1,dick/CHAIR) we'd like to see... (1,dick/CHAIR) available in our logo library... (1,dick/CHAIR) specifically a way to attack ... (1,dick/CHAIR) strings in lists ... (1,dick/CHAIR) globally... (1,dick/CHAIR) does anyone have... (1,dick/CHAIR) any ideas on this.ga (1,Arch) # (1,dick/CHAIR) arch>ga (1,Arch) I haven't written anything in LOGO, but (1,Arch) in LISP, it is fairly easy to paw... (1,Arch) thru a list, looking for a particular.. (1,Arch) string. The trick is constructing a (1,Arch) new list with the substitution effected. (1,Arch) ga (1,dick/CHAIR) # (1,dick/CHAIR) I've used a technique... (1,dick/CHAIR) which may be applicable... (1,dick/CHAIR) in data base programming.. (1,dick/CHAIR) where I go through a sequential... (1,dick/CHAIR) data base looking for a data... (1,dick/CHAIR) item I wish to replace... (1,dick/CHAIR) replace it... (1,dick/CHAIR) and rewrite the data to the disk... (1,dick/CHAIR) Off the top of my head it... (1,dick/CHAIR) sounds as if it should be applicable. ga (1,Arch) # (1,dick/CHAIR) ARCH>GA (1,Arch) I could construct a sample procedure.. (1,Arch) using techniques from LISP which could (1,Arch) have two parameter--a list and a list pair of old and new strings... (1,Arch) and which would produce a substitution (1,Arch) list. It would get the cobwebs out of my head! (1,Arch) ga (1,dick/CHAIR) # (1,dick/CHAIR) ARCH>>sounds good... (1,dick/CHAIR) why not upload it to xa 5... (1,dick/CHAIR) and let us take a.. (1,dick/CHAIR) look at it... (1,dick/CHAIR) Procedural wish list... (1,dick/CHAIR) I talked with d.g.g. earlier... (1,dick/CHAIR) and he mentioned a few items to me... (1,dick/CHAIR) that were important... (1,dick/CHAIR) 1) Some clear instructions... (1,dick/CHAIR) on the use of conditionals... (1,dick/CHAIR) 2) A better handle on M/L calls... (1,dick/CHAIR) 3) More on list processing... (1,dick/CHAIR) (arch has given us a start on that)... (1,dick/CHAIR) 4) More on potential AI & games. (1,dick/CHAIR) ... (1,Arch) # (1,dick/CHAIR) any ideas out there? ga (1,dick/CHAIR) arch>>ga (1,Arch) I don't want to monopolize, but one comment: (1,Arch) The EDSIG has a bibliography on the use (1,Arch) of LISP in AI. (1,Arch) Tom--you are pretty quiet there--what are you using LOGO for on (1,dick/CHAIR) GA WHEN DONE (1,Arch) your apple? ga (1,tom) Arch- Not much. Due to the fact that my 35trk floppy drive is (1,tom) dead, I cannot load my Logo interpreter right now! (Curse protected software!!) (1,Arch) Dick, since only four of us here--why (1,Arch) don't you shorten your handle! (1,dick/CHAIR) sounds good! (1,Arch) Dave, come on down and join in! (1,dick) how's that (1,tom) One of these days pretty soon I'll either buy a LOGO for the Atari, or fix the Apple! (1,tom) Dick- Fine. (1,dgg) Hi. (1,dick) I've got a small procedural... (1,dick) wish list... (1,dick) like dgg I hunger for a better... (1,dick) shot a machine calls... (1,dick) (I'd love to see an example... (1,dick) any example!.... (1,dick) I really agree we need a fill proc... (1,tom) Dick- That's a good one, because it almost aways (1,tom) changes between versions, and machines using LOGO. Anything that uses (1,tom) machine code will be very much ATARI-ONLY. (1,dick) ...and I'm going nuts trying... (1,dick) to find the display list... (1,tom) We want to stay away from it as much as possible. (1,tom) Dick- One moment, I'll tell you how to find it... (1,dick) for the graphics screen! ga (1,dgg) # (1,dick) dgg>ga (1,dick) then tom (1,tom) OS shadow: $230. (1,tom) (Low byte) (1,tom) $231 - display list high byte. (1,tom) Those are HEX numbers. (1,dick) got it! (1,dick) dgg>ga (1,tom) 560 & 561 decimal. (1,dgg) Ok... (1,dgg) That then is a series of .DEPOSIT n byte... (1,dgg) statements followed by a .CALL n where n is... (1,dgg) an address?ga (1,tom) Dick- Note on the display list: Those locations are a pointer to the display (1,tom) list. (1,dick) dgg>>the big problem... (1,tom) Dgg- That would do it, but its like POKEing a routine into memory (1,tom) in BASIC...VERY SLOW! (1,dick) in my mind is how do I ,,, (1,dick) ... (1,dick) protect it from the rest of my program!... (1,tom) It also takes up massive amounts of RAM. (1,dick) Tom>> I think I've looked there... (1,dick) in atatri logo and found the... (1,dick) DL for the text screen... (1,dick) I think the GR]7 dl is located... (1,tom) Dick- It also points to the current display list. If your in a graphics mode, (1,dick) somewhere else... (1,tom) it will point tothe display (1,tom) list of the (1,tom) graphics screen. (1,Arch) !#! Will need to break soon to dump disk !#! find a good breaking point, pls! (1,dick) I'll try to record it in a variable... (1,dick) during the fs mode (1,tom) GA arch. (1,dick) lets dump!!!!! (1,dgg) dump away (1,Arch)