A Guide to LSRHS Logo for people who know Apple Logo Although the two versions of Logo are very different internally, they are fairly similar in the way you use them. This guide assumes that you know all about Apple Logo, and explains the differences. There are enough differences that you can't just run your Apple Logo programs unchanged, but what you know of Apple Logo will help you understand LSRHS Logo. Read this along with the LSRHS Logo Manual. 1. Multi-instruction lines. To put more than one Logo instruction on a line, you must use a semicolon between instructions: print "foo; print "baz 2. Comments can be used, starting with exclamation point: print "foo ! This is a comment 3. The procedure editor is edt, an EMACS dialect somewhat more complicated than the Apple Logo editor. There is no edns primitive. 4. Differences in graphics: LSRHS doesn't have background, dot, fence, pen, setbg, setpen, window, or wrap. Instead of pencolor and setpc, there are somewhat different primitives setcolor and pencolor. There is also setxy, which is like setpos but takes two scalar inputs instead of one vector. Similarly, towardsxy takes two scalar inputs. 5. Differences in words and lists: In addition to the Apple Logo primitives, LSRHS Logo has sentencep (true only if the input is a list of words, not a list of lists); is (like equalp, but true for numbers only if they are string equal, so "is 3.0 3" outputs false); memberp and item for words as well as lists. 6. Differences in use of variables: LSRHS local takes only one input. There is no name, only make. 7. Differences in arithmetic operations: There is no rerandom. Quotient and / are equivalent, and give an integer result if both inputs are integers. Additional arithmetic operations are difference (prefix -), greaterp (prefix >), lessp (prefix <), maximum, minimum, zerop, pow (two inputs, x to the y power). LSRHS random is like Apple "random 10"; LSRHS rnd is like Apple random. 8. Differences in conditionals and flow of control: LSRHS Logo has trace and untrace (no inputs, affect all procedures). Pausing works somewhat differently. Your Unix interrupt character pauses; your quit character stops all procedures. The equivalent of ERRACT is the procedure errpause. See the manual. 9. Differences in reading and printing: There is no buttonp or paddle. In order to use readchar and keyp, you must first use cbreak. (See the LSRHS Logo Manual.) Apple show is called fprint in LSRHS. There is also ftype for full type without newline. 10. Differences in screen commands: LSRHS Logo has no cleartext (type control-L instead), cursor, or setcursor. 11. Workspace management: There is no concept of a workspace in LSRHS Logo. Procedures are saved in individual files, and variables are not saved at all. Therefore, none of bury, erall, ern, erns, erps, package, pkgall, poall, pons, pops, or unbury exist. The Apple Logo po is called show (note that Apple Logo uses show with a different meaning), but po is accepted as an abbreviation. Erase exists, and pots exists with no input. 12. Differences in files: None of catalog, disk, erasefile, load, save, and setdisk exist in LSRHS Logo. But there is a facility for reading and writing arbitrary text files, using the primitives openread, openwrite, fileread, fileword, fileprint, filefprint, filetype, fileftype, and close. See the LSRHS Logo Manual. Other file directory manipulation can be done using the unix command: unix [ls -la] 13. Error handling: The primitives catch, throw, and error do not exist in LSRHS Logo. The special name erract is not used. There is a command toplevel which is equivalent to throw "toplevel. 14. Procedure redefinition: None of copydef, define, definedp, primitivep, or text exist. The special name redefp is not used. 15. Miscellany: There are no label, nodes, recycle, reparse, .bpt, .contents, .deposit, .examine, or .printer primitives. The go primitive takes a numeric input; a procedure line can start with a number which is ignored except to serve as a label for go. The LSRHS time primitive outputs the current date and time. The command goodbye is used to exit from Logo. The command help prints a help message, and describe with one input, the name of a primitive, prints a description of that primitive. 16. Floor turtles: LSRHS has the primitives turtle, hitoot, lotoot, lampon, lampoff, ftouch, btouch, ltouch, and rtouch applicable to floor turtles.