`L i=L\Ʃx ? N'i  ͭЅ?0ȱ Ѕ?iȱi lԠԠ͠ԠϠŠͮŠ SYSTEM.APPLE   L$JLјJ 8彐.mĿ"Š>?( X֮ˍL հ˩($8` Ґh Hǹxhx N`8Ύ߽0|ϩHhHh ӈ ө ө ӘVYԦΝYԮߝꪽԦ ө  Ͱ()I يJJJ(jǩF؅G(  7ֈ k( F G  Xj0 Ю $Ӱ8 xH ߩ`Ǚx kh kL~ѩ@(LYLWҭH͍h (ͥpi)ͥˤ˹HH(x rh(`~Ȍ``hhh )hJ¥jJJhhihhhJi֍hhha [U8ſƅh)x h H('eƍ8ƅи ĘHH`ߠ ߮ XTr=vgMENU.TXTr=vg CSKETCH.TXTvg SKETCH.CODEvgSYSTEM.STARTUPgSYSTEM.LIBRARYgCOPYRIGHT.1983gAPPLE.COMPUTERgvgjSYSTEM.STARTUPmCOPYRIGHT.1983g+APPLE.COMPUTERg+APPLE.COMPUTERgIAPPLE.COMPUTERgI NUMBERS.TXTvgCTRL.TXTr=vgESC.TXTr=vgDEAL.TXTr=vg SHIFT.TܦTY INTROTEXT.TXTvgjYcSAMPLETEXT.TXTgjcmPIC1.TXTr=vgjmSYSTEM.LIBRARYg)MENU.TXTr=vgjPIC2.TXTr=vgj POSTCARD.TXTvgj QUITTER.TXTvg+ PIC1LOOP.TXTvgj PIC1END.TXTLOGORUN & SYSTEM.APPLEvgu&A SYSTEM.PASCALvgABSYSTEM.MISCINFOBDSYSTEM.CHARSETg&DF TURTLE.IMG=vgFHLEO.FONTNT=vgHK LOGOSTORY.TXTvgjKS NUMWORD.TXTvgjST SPLASH.TXT=vg&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xH&x'8*7Ixix&&  ') + &п x) ++`FG8`0($ p,&") (jJJ>L+ "?I>  N `  ` x V Nx .x- z `V0^*^*>` aI꽌ɪVɭ&Y&&Y& 꽌ɪ\8`& ө ө ө ӽ`Hh`Q꽌ɪɖν*Ͻ%ϙEΈ 꽌ɪ`8` Hh݌`  $(,048<@DHLPTX\`dhlptx|Հ؈䤨谴jik|Lhj ~|it}iu8ttXutY|iT}iU・~R콥S~8vw\vȥ]vv\w]V𽥃WlXx |ƄRSLȱȱńRRLҠXx ~~~~LҠVtWu\z]{XiXYt8xtut8xtu8tt|ut}|=0 8|8|}8||ȥ}|HHlL҈|8|}8z|~{|@|:~8|~(~8 ~8~Z[ 8~Z[LѠP~ ~i eztl8冨L आ 0 8`hh ߦt~ h0 L^ L^llL}L/ 2L 28L ߦt~ hI=+ L ߤt~I= ~ LȄHHL{hh tuLhh*U**UUU*ժUU***U*U*UժժU*ժU*ժU*ժժժhhhhhhhhץHH` ߩȑآL ߥ8ؘ ߩ؈ȩؠ#0ii r׭eLJ 6ޥieٰ H JhL#`h 8h Jޤ ;ܢg)Ij&mdj&rّI0 i`m4h 8h ; 9ܢ ޭh ޥi`I`Æ̘ϞϠ8 ;e 5ݥ ;e 5ݥ8mhمmhhم`l )MgH**)ޅhJJJ)ޅde)H |h  |݈0L5`I=rم=vم II=rم =vم   i`,fp ,gpP!pA`H ;ܥ)hieٰ"H ;ܢمee`mhم`o`8nhِ`J) Mjmdم`PPPP & &e)ehL 9e)v kم x kم p kمr kم kl   )Mg٪J% I%L܊% I% ,fp ,gpP!pA0$iۀۊް۶ۻ77܄ۿ777 75$ܩh`hei`m` L۩@ fנ f׭0`hhم`l`h ۭnم  Leِ ` Lީ`g`dedم(e`mdٍd88hم`mhiِ 0j٩,i,ji)I j)IIkٮj٬iٽߍpٍtٽߍqٍuٽ.ߍrٽCߍsٽX9m#m9Xߍvٹߍwٹ.ߍxٹCߍyLڹߍxٹߍyٹ.ߍvٹCߍwٽXp)x)xوmr)v)vوL LY HH`77.M4WQ]p `) ' r׹J` Y HL[ r MȽ`H ؠL[ rH Ph`@oLM$8 0mh8hL٥hٰL8 0hِeeِ emhمo`8 0nِ80  jjjfِo`0hHH)>` r׮ ׎ ޮ`(54# `H ؠ hlP`) թ` Ȣ`JJJJ ϱ` r z٢`H Y ؠL[ r׊H h ɢ`) 2 r׭0` r׹)` (ƊgƈЪ 6`י ֙PRTW Щ(LqŐ`8Hh`HHHV)jj1U IL׈ )?L I@L׮  ^L׎,Lxhhh(`N`hhhhhϐ8 (ֹH 7֥ +ֹP 7 7)*Ȫ`FG8`0($ p,&"VU>)Q>jj``P@J I*I `\xDŽ XׅІ X?;78H<8H  8`Ί aՍxՍՍՍե>?Ռ8T8ՌWuՌvՠ ýI꽌ɪ꽌ɭ蠪ϮәVE]ӾV]H)]ӾV]ԙ)]ӾT]ԙ)]ӦΨ 8$hU>`ȅSϭ߅83IߐiXx P~Qȑ~LҠXxX XY |0 LXx QHPH ~P~ȱP~~P꽥QLҠ RhPhQL RR8tSut\ȱt]X i RHLRtȱRuVt 7tVuWRTȱRU⦆RXȱRYRRR콆SLҠ8|}`|ȱ|LD8||tȥ}|utetȱtet|8|}Ƅ`t et HHH> o>HBtCu\8t\]u]\Z][ 8\Z][Lѥ]H\HuHtHAH@H > ޽ SYSTEM.PASCAL InserthHHHH{HzHyHxHwHvHHH`tL{ҩL8|~thJJJJ) ޽)~)hhvhwhxhy0LhhhhhhL{h0yhzh{hezzhe{{hh ) | 9L " | z8PASCALSYUSERPROGSYSIO PRINTERRINITIALIGETCMD FIOPRIMS %l HHL{ҩHHL{ҢhtExx0tEtttx0LߐLh)thh)htLީ lhvhwhthuEw0uwtv/1'u0+!hthuhthuHHLhHHLҩ%lHHLhhh |~hve| z~~8| lXLLLVLg   UF_f^Lcޠ UhvhwhthuXY^Lޱtvtuvw_L߰LL~hvhwv~ޅvޅwhthutޅtޅutvv ȱtvtv HHHHhzh{h|h}}Lݥ{)L8z|~{}Lݥ|) u|f}jtz) wzf{jv8vtw݅x݅yyHxHxyyHxHxu9݅xy9݅yyHxHxyt yHxHHviHLҩHHLҩHHL??ʥ|x}y~xF|}H|HLҠX hh&ńL{0eeƄL{ҥ8傅ń 8冪8冪ƂL{hh&eȹ|ȹ}f)1|)uf}|jjj)?tłetu9 fHHLҦfHHL @hhuv&whxhyx~ȱxvI%~t~wI%u~xȥxLhhh |he|Ȅ~ Ȅtl ;ۦ|8|e| h9 0 ~ʚL ;ۦ|| hI9~ʚL ;|0| h~ʚL҅ztzx{yxtezץhexheHxHL{ҠXXz{hh &hexheHxH{HzHezHHLnh|h}hzh{hxhyx~ȱx|80~~ iff~z ~=݅~=H~HLhthuh|h}hzh{z ݅v%tt݅w%uu|80tuutvwwvi t&yLLXYXXYYHXHL:XYYHXHXXYeXXYLhhhihjhkXi&jhȑjL{ҠhhjLٱhjL{LѺtutLLҠ Uhe^xhe_yxHxHL{Ҡ Uhe^he_HHL{hh Uѥ_ ^&L ڥ^_ [报IiIiƊ8冥凰 ` ef"f fefd8de8&&`ffefd&&`hhhh ץIiIiHHLhhhh ץHHLhthuhvhwxyEw0wy)xv!y0uEy0yutxHHLҨIiIiHHLhthuhheteuHHLhIihIiHHLhthuhh8tuHHLҩedff dedeeefefdff`hh0 hhLhh"IiIiIiIi [ץHHLҺHHLנdeLѥIiIi`0\XE0XLXŌC?8XX&XeYei捠8XYLҥXiXYL hthuhvhwt&uZvȥ[vZetZ[eu[8\Z][LL{ hthuZtȥ[tL{hthutZȱt[潩L{ҩlLhh0XYLȱXt v8vthhhihHhHL{LȱXtetetjktL\hjhjhhL{hthuhettheuuHtHLhhhthuhettheuutLhhhihjhk ULhthuhh%uH%tHLhthuhhuHtHLhhIHIHLҩXXhhQX0XōiX  á1 š#    šš$ !邚邫镫ë퓡h  ! "ˡ ɡ!  ! "ˡf á3 á+á! "ˡ  +Uz   00áQP 0á0 é000  䚹 9U?2˄ޢߢšáޢ ޣ ߢ  dޣޢޣ ޣߢ  dÍÍޢˡ ݓۤ ۤ Äݓۤ  dÄ##&á % d (   š Í ÄU ǐɄ:ń! ?š?ˡ?ء "ˡ$ߕނ߂ɡ F b$铡b!   תˡ%ˡ& öÍڢڢڣ ڣ ١ڢ ڣ ڣ١ ڢڣڣ ڣ áڣڣš ڢڣڣ hڢ ڢ١ڢ!ڣڣ ڢ!ڣڣ ڢÄڣ &ڢ ڣ ڢ! ڢ!ڣڣ ڢڢ ڣڢÄڢ      d쓡  #AAH bbFpP j | X %ܣ*@ۢۢۢۢٚÍۢáۢɡ ۟ۢۢ؂X" ġ! !fj <"  šˡ 퓄 Ä퓡x š   ɍM   "ˡ.!  ,áņ00ń0ˡ ɡa áá2Oš *š +-Í-ë009ȄZ 000á("á 009Ȅ00 tU\  ɡ'áצ-32768 ^ 逫-ġ>ߢ ˄ɡۤ  dáߢ  dá ߢ #ޣ˄ ߢ  ߢ ۤ ߢޣ ޣߢ ޣޢ ޢۤ ޢ áޢá צޢޢޢ/13:!  n ުPצצ22ȡ5233 ȡ 23a3zȄ 23aA22š*á ݲצ:22ȡáݲ 2á!2ȡ5252š[22š2222ȡ2šb@"䚹 9U?2˄ޢߢšáޢ ޣ ߢ  dޣޢޣ ޣߢ  dÍÍޢˡ ݓۤ ۤ Äݓۤ  dÄÍߢ ˄ɡۤ  dáߢ  dá ߢ #ޣ˄ ߢ  ߢ ۤ ߢޣ ޣߢ ޣޢ ޢۤ ޢ áޢá צޢޢޢ/13:!  n  䚹 9U?2˄ޢߢšáޢ ޣ ߢ  dޣޢޣ ޣߢ  dÍÍޢˡ ݓۤ ۤ Äݓۤ  dÄצ   ١  n ١ á9 ٓ/! !!١ ˡ) !á ݤݚ ˄ܟń ١á  ޤ uš  gá Ä+ޤ  ɡáޤ  PMáš6 ܂ۻݪ d (   š Í ÄU ǐɄ:ń! šá٢.ٕ۶š ڸ۸۶ š۸ ڸ:   ȡQ  ȡ   ȡ? ȡ  ġ  á ġڢڢڣ ڣ ١ڢ ڣ ڣ١ ڢڣڣ ڣ áڣڣš ڢڣڣ hڢ ڢ١ڢ!ڣڣ ڢ!ڣڣ ڢÄڣ &ڢ ڣ ڢ! ڢ!ڣڣ ڢڢ ڣڢÄڢ   7 H  ۣȡڤ  ۣ צۣۢ0H ܣġ ۤ ٤ ڨ ܢܣ*@ۢۢۢۢٚÍۢáۢɡ ۟ۢۢ؂X!  ,ߓ$ ޓ "ߓۄ, ݤ ߓÍߡ2ݤ š˄ڶ a3 d ޓ(ݤ ߢܯߢ  d˯ܡ:" áܡ ܓת$ ڟšx#ńF 09Ȅ ᾂ0 ߓń Ȅޓޓ! ܲݤߓÍߡ`ݤW ˡɍ ō ȍ  dč ܓܡߢ ܓߦתߢޢ!ޢ!9 L ٤ Íܡ~  , Ąܓ"á  $.GRAFׯצ.FOTO < ڤáޢܡ ޢޢޢÍÄޢÄȄĄMȄt߷iȡFۤ ō5252á4w4]11á4\1šV42233039Ȅ 3042221421Ä2*á444ń55P.TEXTׯ]צ.CODEJ.BACKׯ7צ.INFOߢ ˄ɡۤ  dáߢ  dá ߢ #ޣ˄ ߢ  ߢ ۤ ߢޣ ޣߢ ޣޢ ޢۤ ޢ áޢá צޢޢޢ/13:!  n   䚹 9U?2˄ޢߢšáޢ ޣ ߢ  dޣޢޣ ޣߢ  dÍÍޢˡ ݓۤ ۤ Äݓۤ  dÄب"́$ʁ$ ʁ$ ʁ$ ʁ$ʁ$!"ʁ$ʁ$ʁ$ʁ$FZ šš  ġ݂š  šš!ڞڂڂڕߓS  1"ˡƁ3 Ɓ31Ɓ1Ɓ3́6ʁ6ȡ%Ɓ1ʁ6ƀʁ6ʁ6́6Ɓ4 ƀƁ4 N*SYSTEM.LIBRARY ́6ʁ6ȡ&ƀʁ6mʁ6ʁ6́61 J`8  á.(צ*SYSTEM.ATTACHáá'צ*SYSTEM.STARTUP šf"ˡ ۡ́7ˡ1"ˡƁ3 Ɓ31Ɓ1Ɓ3́6ʁ6ȡ%Ɓ1ʁ6ƀʁ6ʁ6́6Ɓ4 ƀƁ4 N*SYSTEM.LIBRARY ́6ʁ6ȡ&ƀʁ6mʁ6ʁ6́61 J`8 ˡ ߢ`ޤ7 VڪƁ Ɓ "áÔ/ʁ ʁ"ˡ2Ƃ. Ƃ.Ƃ. mƂ. Ɓ Ɓ XުP"ˡ ۡ́7ˡ!!P!x!P %'"6ۢڤ ɡ$ޢ ȡUڤ ˡBȄ-ܢ0ۤ ݢ`ڤá \zڨ  ȡ0ޤצ š š۾.ˡצ([šܕ!!(š۾:ˡ١.TEXTת .CODEת!!ȡܾaܾzȄ ܾaAš!!ȄתPL`V\Z     CONSOLEצSYSTERMGRAPHICצPRINTERREMINצREMOUT\8gikm V    p  CONSOLE:ת צSYSTERM: ~ Dø !m צTARTUPתٟá'      CONSOLEצSYSTERMGRAPHICצPRINTERREMINצREMOUT\8gikm V  ʀʀʀoʀo <@تٞ&"á ٤  ȡؤצۢÍ ȄۢؓÍ؞&"á ۶ ضár۪*SYSTEM.S,ʀ%2 &̀ʀʀʀʀ%̀oʀoʀʀʀʀ ʀʀ ʀ ʀ ʀ  ʀʀ̀ʀʀʀʀʀ٢ š٢ ٢٢ 4$ o/ o d'*SYSTEM.MISCINFOת; ̀ʀ*ʀ+ʀߢ ˄ɡۤ  dáߢ  dá ߢ #ޣ˄ ߢ  ߢ ۤ ߢޣ ޣߢ ޣޢ ޢۤ ޢ áޢá צޢޢޢ/13:!  n ! "ˡ! "ˡ ߡp  ᄡM "ˡo )á á ávˡ á cń# Ȅ ښ6áÄ  š  ġ݂š  šš!ڞڂڂڕߓS  2d2d2d  :2d 2`14 1jT:l2dd.*d d02d5j3,? @ 0`T 0􈗥  0`(԰  2d 0 `0` 202 2d0d> 06I!!A66~??6$$>A]E]A>AAAAA?""?  A"""~?*II**I*I 08<80  @$$$%~>6>>*>**"*6">""*> $>>>>>>*? ><>{:>8`0  ` p` `0  <?00` > @ @?`@ ?@@|x9 88h  `P> 0PH<@`P`pXL`xNOOONx`GGCf,0GG"$Xp a1~4 88Hx88|| p< 8x@@ <`< 0`00x`00<?8  0 ` 8` 0 p`8 0` 88x<"< """<<<"""< <>"$ <""""""  "" "***6""""""""" <""<: <$,2""""""6**"""" <""">>8  80,***<:*""">""""""""""""">>><"2<""">"""" "  ">"""**6"""2*&""""""""",*"""" """ ">""""""""""""6**"""""""""> >>> >00000>">>( <02&,*  **>> "&*2" > ""  >>" >""8 >"""" <"">> "6I!!A66~??6ՑԐЀA"""~?*II*ŕaAF8@@@TP@((*" "* *">" @8|||8   P ?! "ˡ! "ˡ ߡp  ᄡM "ˡo )á á ávˡ á cń# <82&x> ̸&82< 0`d *>2>32<&8x>&L*T "& > %b 1 38 1 22 2 mw f  %r 0 e r 2 *The Logo Story In the late 1960's, a group of people at MIT under the direction of Dr. Seymour Papert began work on the creation of Logo. Dr. Papert had studied in Europe with Jean Piaget, the famed expert in chiDOLLARS WILL BE WORTH $  PLEASE PRESS RETURN TO CONTINUE.  PRESS JUST RETURN TO GO ON.  %ec %s 1 0 s 2 '50'  %m 1  %w  %r 0 e Well, we'll type it for you, then move on...  %w %r 0 e You can keep trying numbers, or just press RETURN to move on. %w  ur $500 will be worth in that many years. %c 0  TYPE A NUMBER OF YEARS FROM  1 TO 50, THEN PRESS RETURN: THAT IS TOO BIG. PLEASE TRY AGAIN. THAT IS TOO SMALL. PLEASE TRY AGAIN. PLEASE TYPE JUST A NUMBER AFTER &0 &6, YOUR FIVE HUNDRED ay...  %p If you put $500 in the bank  and you get 6% interest per year, how much money will you have, say, 12 years later? Or 50 years later? %s 7 'YEAR' s 8 'YEARS'  %p  To find out, just type a number from 1 to 50, and Logo will tell you how much yo and, of course, division.  %w %r 0 e  Logo also has certain special functions such as "square root" and "sine". But we'll let the real math lovers have their fun with those.  %p Here's a marvelous Logo program that uses numbers in a really practical wPRINT 157.50 - 34.25 123.25 PRINT 23 * 15 345 PRINT 15/16 .9375  %ec %w %r 0 e  There's addition... %w %r 1 subtraction... %w %r 0 e multiplication... (Logo uses an asterisk to mean multiplication so you don't get it mixed up with the letter X) %w %r 0 e learning Logo, though, I find that numbers are very useful, and not all that frightening. %p For example, it's easy to use the PRINT command to make Logo work as a desk calculator--a very handy tool indeed. %c 0 PRINT 34 + 46 + 57 137 . %w %r 0 e Thank you. Although I really adore Logo, I must confess that I never was particularly fond of numbers... %p ...in fact, math was my worst subject in school! (And I even had the crazy idea that I needed to be a math major to program.) %p Afterplete computer language. %p We'll now show you some of the ways that Logo lets you solve problems involving numbers and words. %p First, numbers... %w  %r 1 I think Leo Logolover has something to say about that. Please press RETURN to find out what it isprint 1 pr 1 forward 2 fd 2 back 2 bk 2 left 2 lt 2 right 2 rt 2 repeat 3  %w  %b 1 38 1 5 1 mw f . .Using Logo 1With *Numbers and Words %p Although it's best known for its ability to draw pictures, there's much more to Logo. In fact, Logo is a comhed section 2 of 6. " !Press RETURN for the next section 1or #ESC to go back to the the menu. %end been replaced by an "electronic turtle" which draws pictures on the screen instead of on paper. Like this... %w %r 18  And as you'll see, Logo also has sophisticated capabilities for manipulating words and numbers. %w %r 0 e r 9 !You have finis problem-solving.  %w  %r 15  Besides being an easy stepping-stone  into the world of programming, the  turtle was also a wonderful tool for  learning geometry. %w %r 10 e r 12  In Logo, the mechanical tortoise has turn left or right. %w  %r 16 As the tortoise moved, the pen drew on a sheet of wrapping paper that had been placed on the floor. %w %r 10 e  Papert realized that the tortoise-- or turtle, as it came to be called --was an easy and unique way to learn ld learning. %p %r 12 e On holiday in England, Papert saw a device called a "tortoise." It looked like an upside-down mixing bowl on wheels with a pen in the center. %w %r 12 e  Under computer control, the tortoise could move forward and backward, or%r 0 e %alt  Below is the heart of the Logo program that does this calculation. Don't worry about understanding it; it's just an example of how compact Logo can be. %sys  %w %@ 0 2  ?MAKE "MONEY 500 ?REPEAT :YEARS [MAKE "MONEY :MONEY + :MONEY * .06] %w  %r 0 e Thank you, Leo. Financial wizardry made easier through Logo! %w  %r 0 e  Besides calculations, PRINT can display messages. Suppose you want Logo to say: & %p Just type: $& using square brackets around the  wordsn't worry about making mistakes. We'll help out with hints or with special clarifying messages if you do something we aren't expecting. %w %r 7 (There's also Leo Logolover--an invisible but very enthusiastic programmer who'll help out once in a while on t 0  %r 12  ...but you did. This means you are clearly the explorer type and will appreciate Logo's discovery approach to learning. Please press RETURN to get some further important information.  %w  %s 1 0  %r 0 e   As you go through this disk, doIntroduction) on this disk. We suggest that you go through them in order.  %w %r 6 But after you start a topic you can always stop, go back to the menu,  and select something else. Just press the ESC key. (You don't have to try it now.) %s 1 1 %w %s 1in computer science topics. %w %r 13 This distinctive design makes Logo a sound choice for adults or children who want to start programming, and an IDEAL choice for families who want to learn together. %p  There are five topics (besides this nderstand by the time you finish this disk. %p %r 0 e r 3 Logo is specially designed to let you start programming the computer quickly and easily. %w %r 7 And, because it is a complete computer language, advanced programmers also use Logo for research mming language that is especially easy  for the beginner to use and powerful  enough for the most sophisticated  programmer. %w %r 15 The picture you see on the screen, for example, can be created with a three-line Logo program that you'll be able to u %b 1 38 1 22 2 mw f  %r 0 e r 5 ,Introduction  %s 1 0  %r 7  Welcome to EXPLORING LOGO - a guided tour of the Logo language for the Apple computer. %w %r 11 On this disk, we are going to introduce you to some of the main features of Logo--a progra %@ 8 4  Apple presents...  %s 1 12 s 2 7 s 3 'Exploring Apple' s 9 ' Press RETURN '  %w  %@ 4 18  Please press RETURN to continue.  %@ 3 20  Copyright 1984 Apple Computer, Inc.  %w  ds. Please press RETURN and I'll get it ready for you.  %end TURN.  %w  %r 0 e  &9And, in conclusion... %w  %r 1  Oh, if you don't mind. I would like to show the audience my version of a famous Logo program that is really just tons of fun. %p It's called POSTCARD and it lets you make up your own nutty postcartype &.  %w You don't need any of the extra  stuff after the closing square  bracket. Please try:  & again.  %w  We'll type it for you, then move on. %w  %r 0 e  Well, Logo can print that also. Please press RE(don't forget the square brackets) and then press RETURN.  %w You have to put square brackets around what you want to print.  Please type & and press RETURN.  %w  Please use the square brackets rather than the parentheses when  you HI KIDS, then press RETURN. %s 0 6 s 1 0 s 2 'PRINT [HI KIDS]' s 3 'hi kids' s 4 'hi'  %s 5 'HI KIDS' s 9 'Excellent. '  %m 1 %w  Please type & and press RETURN. %w  You must tell Logo what to print. Type: #& his disk.) %w %r 12 By the time you finish, we think you'll agree that Logo is an exciting tool for programming the Apple and for making contact with powerful ideas. %w  %r 18  With Logo, you and your family can seriously participate in the computer revolution--and have a lot of fun while you're at it. %p %r 2 Note: This disk is not the full Apple Logo disk that you can get from your Apple dealer. It's an introduction that has been  designed to give you an idea of what Apple Logo is all aboIt uses the same type of built-in commands as SQUARE, but draws a triangle instead. %w !TO DOOR FD 12 RT 90 FD 7 RT 90 FD 12 END %w %r 0 e Finally, DOOR uses FORWARD and RIGHT to draw the left side, top, and right side of the door. %w %r 0 e And t5 s 3 5 s 4 11 s 5 11 s 6 0 %w !TO SQUARE REPEAT 4 [FD 30 RT 90] END %w %r 0 e &; It uses REPEAT, FORWARD, and RIGHT to draw a square. %w !TO ROOF REPEAT 3 [FD 30 RT 120] END %w %r 0 e And here is my definition of ROOF. tch Logo fever! %w %r 0 e First, let me point out that HOUSE is made up of two kinds of commands. Those that are part of the Logo  language... %s 0 3 s 1 4 s 2 6 s 3 10 s 4 12 s 5 14 s 6 0 %w %r 0 e ...and those that I defined myself. %s 0 2 s 1 2 s 2 mind going a little deeper now and telling us more about the way HOUSE is put together? %w %r 0 e Of course not. I hoped you would ask. I want everyone to understand the real beauty of Logo. In fact, I wouldn't be surprised if everyone started to cait started, then I use HT, which is the abbreviation for the HIDETURTLE command. %s 0 12 s 1 13 %w %r 0 e Turtle-riffic! The house is complete. %w %r 0 e Thanks very much, Leo. You've given us a very clear idea of how the HOUSE program works. %p Would youand BK is the short form of the BACK command. %s 0 6 s 1 7 %w %r 0 e Now it's time for DOOR. (Yet another word that I taught the turtle.) %s 0 11 s 1 11 %w %r 0 e To make a finished picture, I turn the turtle to face in the direction r 0 e I am ready for ROOF. (It's a new word that I taught the turtle.) %s 0 5 s 1 5 %w %r 0 e Wonderful! Now I need several steps to get the turtle in position to do DOOR. %s 0 6 s 1 10 %w %r 0 e By the way, LT is the abbreviation for the LEFT command, make a square in section four.) %s 0 2 s 1 2 s 2 0 %w %r 0 e To draw the roof of the house, I must move the turtle to the upper-left corner of the square. %s 0 3 s 1 3 %w %r 0 e Now, I turn the turtle so that the roof will be just right. %s 0 4 s 1 4 %w %"BK 30 "RT 90 "FD 15 "LT 90 "DOOR "RT 180 "HT "END %ec %s 0 14 %p This is the Logo program that draws the house. I will take you through the program one step at a time. %w %r 0 e First, I tell the turtle to SQUARE. (&: taught the turtle how to or. Perhaps you're wondering "Where is the turtle?" Don't worry, he's just hiding for the moment. %p Meanwhile, let me start over and show you just how HOUSE works. Please press RETURN... %c 0 "TO HOUSE "SQUARE "FD 30 "RT 30 "ROOF "LT 30 o see what it does, just type HOUSE and press RETURN. %s 9 "house" s 0 2 s 1 0 s 2 "HOUSE" %m 1 %w Please type & and then press RETURN. %w Here, I'll type it for you so you can see what I mean. %w %r 0 e There you are! A house, complete with a doexample will help you understand how you can combine built-in words with words you define yourself to create larger programs. %p Let's ask Leo Logolover to come in and tell us about the HOUSE program. %w %r 0 e Gladly. The HOUSE program is very simple. T%s 10 "You" %s 11 "You already know about SQUARE." %w %s 10 "I" %s 11 "I defined SQUARE in topic four." %w %b 1 38 1 5 1 mw f . ,Some Sample *Turtle Programs %p Now let us show you a simple program that makes the turtle draw a house. %p Looking at this ut.  %r 11 "You have finished section 1 of 6. ! "Press RETURN for the next section 1or  (ESC to go to the menu. %end hat's all there is to it! HOUSE uses the three words I defined plus a few built-in commands to draw a picture of a house. %w %r 0 e Very good, Leo! You've been most helpful. And the general approach used in HOUSE occurs over and over in all sorts of Logo programs... %p ...define new Logo words and then combine those words to make larger and more complicated words until you have a complete program. %p It's easy to get started in Logo with simple turtle pictures. But there is no limit on the complexity o You can use the RIGHT command to  turn the turtle before drawing the  next side. Try it--type &  and a number of degrees to turn, then press RETURN.  %m 1  %w  Oh, don't be shy. Please type  & followed by a number  of degrees tory again.  %w We'll type it for you and then move on. %w  %r 0 e Good. Now the turtle has drawn one side of the square. What's the next step?   (Press RETURN to find out...) %p  %s 0 15 s 1 2  %s 2 right# s 3 rt# s 4 "RIGHT 90"  %r 0 e RD 30&> and press RETURN.  %w  The turtle doesn't recognize &9.  Please try & again. %w We could start a square with that command also, but please type & for now. %w You don't need anything more than &. Please te sure to put a space between FORWARD and the number; then  press RETURN. %w Yes, you could turn the turtle first,  but for now, please type  & and press RETURN.  %w  Yes, you could start off in that  direction, but please type  & and press RETURN  to move the turtle forward.  %w You didn't tell the turtle how many turtle steps to go. Please type FORWARD 30 and press RETURN. %w You need to tell the turtle how many . The ? is Logo's way of saying, "Tell me what to do."  %w  %r 0 e Let's start the square by moving the turtle forward 30 turtle steps. Type &  then press RETURN. %s 0 11 s 1 4 %s 2 forward# s 3 fd# s 4 forwards %s 5 fwd s 6 "FORWARD 30" BACK, LEFT, or RIGHT. %p This means we'll have to break down the task of drawing the square into terms the turtle can "understand." %p Right now, the turtle is pointing in this direction: %w %r 0 e And, at the bottom of the screen, you see a question markforward 1 fd 1 back 2 bk 2 right 3 rt 3 left 4 lt 4 repeat 5 %w %b 1 38 1 5 1 sw 0   'Using Logo for Pictures  %p Let's start off by having the turtle draw a square. That's easy with pencil and paper, but the turtle only knows commands like FORWARD,anipulate numbers and words. %w %r 7 e r 10 !You have finished section 5 of 6.  !Press RETURN for the next section 2 1or %ESC to go back to the menu. %end ust by changing RIGHT to LEFT! %w ?REPEAT 6 [ROOF FORWARD 30 DOOR LEFT 120] %w %r 0 e As you'll soon see, there's a lot more to Logo than just the turtle. %p You can also sharpen your computer programming and general mental skills with Logo commands that muce the design shown in the Introduction. %w ?SETPC 1 ?REPEAT 8 [REPEAT 6 [FORWARD 40 RIGHT 60] SQUARE LEFT 45] %w %r 0 e Here's a combination of ROOF and DOOR... %w ?REPEAT 6 [ROOF FORWARD 30 DOOR RIGHT 120] %w %r 0 e And look at what you can accomplish jthat the turtle uses when drawing.) %w ?SETPC &1 ?REPEAT 3 [ROOF FORWARD 20 LEFT 120] %w %r 0 e ...or with ROOF and SQUARE... %w ?SETPC &1 ?REPEAT 6 [ROOF SQUARE LEFT 60] %w %r 0 e This one looks tough, but it's just using one REPEAT inside another to prodf the programs you can create. %p Please press RETURN to see some pictures from Leo Logolover's Gallery of Turtle Art. %s 0 5 %w %r 0 e You'd be surprised at what you can do with just ROOF... (The SETPC command SETs the Pen Color turn the turtle. %w  You need to tell the turtle how many  degrees to go to the right.  Please type & followed by a  number, then press RETURN.  %w  You need a number with the &  command. Please type &  followed by a number of degrees to  turn the turtle.  %w  You've turned the turtle so that  it's headed this direction. That  won't make a square corner.  (Please press RETURN.)  %w  We'll turn it back to where it was.  Please try again, using a different number ofhhhhhhh)hpdHHHH`4hhhhhhhi)hH`HHH`0hhhJhh)*XhHH`"hhhhhhH! \L HHH`<hhhhhhHHLM0ON: INTEGER); $ "IMPLEMENTATION E .CODESKSWAPDISKҎԎ,nr r nrnʤr LIT^n6 6 \^^\n6 r DLITURAS P $ $FUNCTION PADDLE(SELECT: INTEGER): INTEGER; $FUNCTION BUTTON(SELECT: INTEGER): BOOLEAN; $PROCEDURE TTLOUT(SELECT: INTEGER; DATA: BOOLEAN); $FUNCTION KEYPRESS: BOOLEAN; $FUNCTION RANDOM: INTEGER; $PROCEDURE RANDOMIZE; $PROCEDURE NOTE(PITCH,DURATIGGBBGBGBB#Copyright 1983 Apple Computer, Inc.H ."8 )APPLESTUSHORTGRASHORTGRATRANSCENINTROLIBINTROLIBINPUTSTULOGOSTUFLOGOSTUF   'ing  definitions.  %w  %r 0 e  You're ready to draw the second side.  In fact, you now know enough Logo  to complete the square. Type a  command, or just press RETURN for  a hint.  %w  %end %p  We told you the number to use (90),  but with the actual Logo program  you could have continued to exper-  iment until you got 90 on your own.  %p  That's how kids using Logo learn  important facts of geometry--by  doing, rather than by memorizto  find the right number. You've  recalled (or learned) an important  fact of geometry by trial-and-error,  not by rote memorization.  %w %r 0 e  Good. The turtle is now headed in  the correct direction to make the  second side of the square.   They learn an important fact of  geometry by doing, rather than by  memorizing a definition.  %w  %r 0 e  That's it. The turtle can now make  the second side of the square since  you've turned it 90 degrees.  %p  You had to experiment a little makes a square corner (right  angle). Children may not know that  square corners are 90 degrees,...  %p  ...but they &-do&- know what a square  looks like. They experiment until  they find that 90 is the number they  want.  %p ollowed by a number of degrees to turn the turtle.  %w That will make a square corner,  but we'd like it to turn clockwise.  (Please press RETURN.)  %w  We'll type it for you and then move on. %w  %r 0 e  Very good. You remembered that 90  degrees 's a valid Logo command, but  please just use & and a number  to turn the turtle for now.  %w  -- not used --  %w You don't need anything more than &. Please try again. %w  The turtle doesn't recognize &9.  Please try & f moving in its current path. You  need to type & followed by a  number of degrees to turn the turtle.  %w  Yes, you could turn the turtle left,  but please try again and stick with  the & command and a number  for now.  %w  That degrees.  %w  Let's give you some help with this.  The number you want is 90. Please  type & and then press RETURN.  %w  You need a space between &  and the number. Please try again.  %w  That will just keep the turtle `L+L10`LELK뭕 JF8ȹe8ИL`Lø{{ttmnghab\\WWRRMNIIEEAA=>::673401..+,))&'$%"# !$hhhhhh9.:.;.<0(0(099JH;HHH`Z310/$ T?@AB ?UB`2<(^ &    0&!"   #"  ` ` `SN-(' . hhhhhhHH `  HH8H8 hhhL.+ rhh he)`%)8`)    L)ˢ   â LE % %  )  `8`&e epɀj f f&e e pɀjff %) % )`% L=`0(%$ $ @'^cY}zeNEDh0h1hhhhh.h/h,h-h*h+h(h)(ȱ(*ȱ*,ȱ,.ȱ. HH1H0H(ȹ(*ȹ*,ȹ,.ȹ.`   ""##  Iif E J j 8  e e  `(J 8 e  ` Z Z< $ %$PQ $  ߩ $ Li`t JL` T$Q%P)Q I L`#JI`'  I` I0ݩ(0/,",i8i#Hiihifi`i,i,3iPII4ifH8H hIiH h hL8TEM.CHARSETG One moment, please... @4` - G`` 8`*UH)JJh & & f)4#iتP+,+,ȡ+ ++V 0  آآآǿآآǿآآ@ ٚ SYSTEM.CHARSETáSYSl    ڪP."ˡ[̄$ʄ$N.ʄ$M ń.ʄ$M  ʄ$̄$.ʄ$M .ʄ$M Y@'    4 ǯ?Ǭ?ǰ?Ǯ?ǩ? áǫ?Ǭ?0 ٢ؚ ڢؚڢٚ ۚܢښܢٚܢؚɡšܢɡܢǿšܢǿɡܢɡܢ E ENCOLOR(PENMODE: SCREENCOLOR); $PROCEDURE TEXTMODE; $PROCEDURE GRAFMODE; $PROCEDURE FILLSCREEN(FILLCOLOR: SCREENCOLOR); $PROCEDURE VIEWPORT(LEFT,RIGHT,BOTTOM,TOP: INTEGER); $FUNCTION TURTLEX: INTEGER; $FUNCTION TURTLEY: INTEGER; $FUNCTION SCREENBIT(X,Y: INTEGER): BOOLEAN; $PROCEDURE DRAWBLOCK(VAR SOURCE; ROWSIZE,XSKIP,YSKIP,WIDTH,HEIGHT, 8XSCREEN,YSCREEN,MODE: INTEGER); $PROCEDURE WCHAR(CH: CHAR); $PROCEDURE WSTRING(S: STRING); $PROCEDURE CHARTYPE(MODE: INTEGER); $ "IMPLEMENTATION DURE PENCOLOR(PENMODE: SCREENCOLOR); $PROCEDURE TEXTMODE; $PROCEDURE GRAFMODE; $PROCEDURE FILLSCREEN(FILLCOLOR: SCREENCOLOR); $PROCEDURE VIEWPORT(LEFT,RIGHT,BOTTOM,TOP: INTEGER); $FUNCTION TURTLEX: INTEGER; $FUNCTION TURTLEY: INTEGER; $FUNCTION S $TYPE $ SCREENCOLOR=(none,white,black,reverse,radar, 3black1,green,violet,white1,black2,orange,blue,white2); & &FONT=PACKED ARRAY[0..127,0..7] OF 0..255; $ $VAR 'FONTPTR:^FONT; $ $PROCEDURE INITTURTLE; $PROCEDURE MOVETO(X,Y: INTEGER); $PROCEheheheHHL<  B  ""##8&$iT8&UU ! U"# UT`+%$Y)!p xhhhhhhhhhhH8 )%HHH`5>hhh)hh h h h hhhhhhhhhhhhHH x # " `' & 8 ! 0"ee8 !  e e8"#0 88$ % 0"ee8$ %  e e8&'0:0..255; cvhit:0..255; *end; $bytetyp=packed array[0..0] of 0..255; $loctyp=packed record .fontadr:integer; .wndwdth:0..255; .wndtop: 0..255; .horiz:0..255; .vert: 0..255; +end; #s255=string[255];  var #hasletters:boolean; #buf:packed array[0.#mustbeok=true; anykey=false; #erspage=12; erseos=11; erseol=29;   type #infotyp=packed record -ccol:0..255; crow:0..255; -cstr:integer; cinx:0..255; cmax:0..255; -cwide:0..255; cbott:0..255; -fillch:0..255; -cocol:0..255; corow:0..255; -chhit   {$U lilib:true.library}  uses applestuff,shortgraphics; #  const #bmod=120; #ctrlb=2; etx=3; ctrld=4; #bs=8; cr=13; #ctrlq=17; fs=21; ctrlx=24; #ctrly=25; #esc=27; #del=127; #showcursor=true; nocursor=false; #flashing=true; normal=false; ??2 ?  ??  1?   ?=~@:?^>[' ~ ~>?  ȡ!2? 5? f   '~~5?. ????2 ?  ??  1?   ?=~@:?^>[' ~ ~  ġ+@ነ? ?> ??   '~~5?. ??  ??;ܳ1?ܳ^; Sƀ> ?L=[?    ??tI$'>ߡڑ߳RI@߳}:#9oLE.6Z"O$<=*     4? ŽDnP42D<.CODECEND.CODECODEPDISKҎԎ,nr r nrnʤr INT^n6 6 \^^\n6 r <INTP3XTT "FUNCTION SIN(X:REAL):REAL; "FUNCTION COS(X:REAL):REAL; "FUNCTION EXP(X:REAL):REAL; "FUNCTION ATAN(X:REAL):REAL; "FUNCTION LN(X:REAL):REAL; "FUNCTION LOG(X:REAL):REAL; "FUNCTION SQRT(X:REAL):REAL;   IMPLEMENTATION E BBBLNz)CLEARPRINT.CODEOF=2L d l @d 0 T  ,  Ƥ TRUE.LIBRARYƤ DOSUNIT.TEXT{Ƥ CTRLUNIT.TEXTvgƤ  PREGRAFX.CODEFƤPREGRAFX.CODEFINTROLIB.TEXT{CLEARPRINT.CODE 8e*e+)*)fjfjfj+*fjfjfj8 8) )` (J(F ((Lee Lw  )LdI1Ld)QLd        xhX.1023] of char; #altfont:^font; #data:s255; #topics:array[0..14] of boolean; #wsaved,dblspace,hold:boolean; #token:string; #tptr,numtok:integer; #bptr,blkno:integer; --)vPINTEGER #saveadr:integer; #filemarks:array[0..3,0..1] of integer; #cases:array[0..19] of string; #casenumber,caseline:integer; #svars:array[0..19] of string[40]; #snums:array[0..19] of integer; #scol,srow:integer; #boxinfo:array[0..5] of integer; #ulstrinȡ_1ٛ -קC ڪP-././ȡ:.0.9Ȅ- .0-. ˡ..-GXdˡ á z צ-šڛ צ-š]2͇Ǵ  ء   ȡ%wׯ" 2تPת"á(צNo file .Rd -B=83 . ) $ 52/,)&# ׷  ˡ צġ  áC قš  šقؿš؞؂ ' X(تצȡצj۝š*ّ ٛ ááˡLتPRئ׷8  צ قّHȡ$ٛ áٛ á. >jumpmark(i:integer); #procedure timeset(n:integer); #procedure tick; #procedure await(thechar:string;cursoron,flash,okflag:boolean); #procedure preturn(curse:boolean); #procedure xreturn; #procedure command; #procedure dofile; #procedure docase(which:integer); #procedure lowercase(var s:string); #  implementation E #procedure underline; #function cvt(s:string):integer; #procedure gettoken; #procedure fillbuffer(var n:integer); #procedure fillvars; #procedure do_one_line; #procedure jumpmark(i:integer); #procedure timeset(n:integer); #procedure tick; #procedure await(thechar:string;cursoron,flash,okflag:boolean); #procedure preturn(curse:boolean); #procedure xreturn; #procedure command; #procedure dofile; #procedure docase(whi#procedure savewindow(which:integer); #procedure setwindow(erasing:boolean); #procedure underline; #function cvt(s:string):integer; #procedure gettoken; #procedure fillbuffer(var n:integer); #procedure fillvars; #procedure do_one_line; #procedure write(astr:string); #procedure strip(var astr:string); #procedure scoonch(var astr:string); #procedure wrapwrite(var s:s255); #procedure lineread; #procedure discard(n:integer); #procedure setfile(title:string); #procedure box; boolean of -true:(ipart:integer); -false:(ppart:^bytetyp); *end; #cursor:record case boolean of ,true:(ipart:integer); ,false:(cinfo:^loctyp); *end; #bmsg:string[40]; # #procedure graf_stat(which,top,height,left,width,adr:integer); #procedure dg:string; #f,f2:file; # #good,escaped,multifield,backedout:boolean; #diac:string[9]; #combo:string[96]; #crstr:string[1]; #cresc:string[2]; #key,seedchar:char; #inx,time,subtime,subinterval,timeout:integer; #infoblk:^infotyp; #strobe:record caseRצPš  ˡق'˧"˄   >ȡا áٞٿق ˡ  y{|{{{zá{||,&4צ4~~~~~B  ~>_ ~  > -~آšآC ˡ>~ cfwds; #procedure cbkwds; #procedure insertkey(ch:char); #procedure deletekey; #procedure killeol(ch:char); #procedure plotit(ch:char;lcase:boolean); #function diacritic(ch:char;var dstr):boolean; #function combination(ch1,ch2:char;var cstr):char; #procedure getinput(var result:s255;orgcol,orgrow,maxlen:integer);  implementation E rolib; # #function setup(var str;orgcol,orgrow,maxlen:integer):integer; #procedure setglobal(width,bottom:integer;filler:char); #procedure setxy; #procedure cfwds; #procedure cbkwds; #procedure insertkey(ch:char); #procedure deletekey; #procedure killeol(ch:char); #procedure plotit(ch:char;lcase:boolean); #function diacritic(ch:char;var dstr):boolean; #function combination(ch1,ch2:char;var cstr):char; (*$U lilib:true.library*)  uses applestuff,shortgraphics,  (*$U lilib:introlib.code*) %introlib; # #function setup(var str;orgcol,orgrow,maxlen:integer):integer; #procedure setglobal(width,bottom:integer;filler:char); #procedure setxy; #procedure u  ԥHH` 8,LwPP )**vmemȘ)` MLE<;862,% &"X\x0 b j V V & nB"( 8h >ת Cצ`;@?wt t uצ u uת(y|{"" hhh h h hhhhhhhh ) h V  |צ%wjצ%ecTġ,˝)Pš צ%á؝<ġ ȡ ٛAٛZȄ ٛٛ ( 8ȡgٛ-áٛ-ٛ&ˡDٛ0Ʉ%٧٧ȡ٧ٕ&ٛ    *<%endׯ altׯojɡTc!Gצec2d"udׯhܭ !X%>צ& R P٧ɡf צsw  mwׯ swfׯ p s+(m;ɡ,sysׯ =uٚx<Pth  !׷ڧe  ާr @!b&,,ȡ.x.=ء=33]yšڡ:///<á./2 _22١000á 03yŝ|yĄ2 ١#4  9Lb<= uρ4l ۪P2=3/|{ڡ zzx. ڡ_١ 4 0,505ȡ00+&0,505ȡ000Kx  x|{~ ~š~ ۪wáEۦ׷ ~~_ ~ |{ǖzǠ ۦת<:wˍ|{_ wáƀ  ̀ ẁwʀʀÍ3~~ ~š~ʀ ġʀ áʀá <ʀÝ; :ʀáʀá~ʀá  ʀáʀá4~̀ʀ    njL?̧ `:  ȡɡLJ ?V ڪPWV{XVXȡY{W-{WRؑ   ؝<4  ؝<4 njL?̧ `nؑ  ǿ  Z,   Z     njL?̧ ` á á9Ȅ ĄǿȄ #   ɡ؀h hɡ hhġ hlementation E ay[0..35,0..9] of integer; #kwlist:packed array[0..511] of 0..255; #nkwords:integer; #procedure showturtle; #procedure lt(n:integer); #procedure rt(n:integer); #procedure fd(n:integer); #procedure bk(n:integer);  procedure pu; #procedure pd; #procedure cs;  procedure home; #procedure tsave; #procedure trestore; #procedure dline(len:integer);  procedure make_kw_list; #function findkw(s:string):integer; #procedure autotype(s:string); #procedure ltoken; #  imptrectyp; #timage:array[0..35,0..9] of integer; #kwlist:packed array[0..511] of 0..255; #nkwords:integer; #procedure showturtle; #procedure lt(n:integer); #procedure rt(n:integer); #procedure fd(n:integer); #procedure bk(n:integer);  procedure (*$U lilib:true.library*)  uses applestuff,shortgraphics,transcend,  (*$U lilib:introlib.code*) %introlib;  type #trectyp=record -tx,ty:real; -heading:integer; -pcolor,tcolor:screencolor; -pdown,showing:boolean *end;  var  turtle,svturtle:EDA3 lTnb Hrefhahb d  ``M*(b`^ZYUTONLIA;981hhhhhhHH cdffiẽ1e A[)? `  ,l cdL:  `~{[TOG }vng`IH9850/(&  ThhhhHHcdef ȑeȥi`7410$Vcde8`/,):hhhdhHHbHaHee i  ,llbh eȌ "almbhmk  bb `10/.,'& L e>cdȘf  aa gab e`KJGD=(&#!  h cdefeȌe  ,l  `L>HHHH`Thhhhhhh@hh<Ehh;Dhh=h>?IHHHHH`( ;@=<98530/- hhhhihhhhhghHH`* ai bi `$aȌagl`ʀyšyŝ|yĄ ȡƀƀ> hhhhhhhhhhȥ HHHH`Bhhhhhhhhhhhhȥȱ ʀʀá|~̀ š ʀɡ[ʀʀʀʀ~ʀ ʀš~l á` ̀ š ~ɡ~̀員ʀ_á ̀_̀Ǡ W{WW-{WWWVVe~تP,-,-ȡO,_ +d,.+.ȡ++,, l/Z @תPš  ˡAȡ( á{& {%w׷Nto  put it down, and so on.  %p  All these commands come with the  turtle. It knows them when you  start up Logo.  %p  So why can't you just type SQUARE  and have the turtle draw a square?  Try it and see what happens...  %s 0 2 s 1 0 s 2 "SQUARRN. %w We'll type it for you... %w  %r 0 e  So far you've used these built-in  Logo commands: FORWARD, RIGHT,  REPEAT, and CLEARSCREEN.  %p  There are lots more: LEFT to turn the  turtle left, BACK to move it back,  PENUP to raise the pen, PENDOWN  %r 0 e  Sure enough, the turtle draws the square. Before going on, please  clear the screen. Type & (or & for  short) and press RETURN.  %s 0 2 s 1 0 s 2 CLEARSCREEN %m 1 %w Please type & to clear the screen, then press RETUt for you.  %w  %r 0 e  Please type: #&  and press RETURN.  %w  %r 0 e  You have to type REPEAT to  start off. Please type: #&  and press RETURN.  %w  %r 12 !  %w r 11 +  %w  %s 0 4 s 1 0 s 2 'REPEAT 4 [FD 30 RT 90]'  %m 1  %w  %r 0 e  You typed: &9  Please type: &  and press RETURN.  %w  %r 0 e  You seem to be having a little  trouble. That's all right. We'll  type ip  Using the Logo abbreviations for  FORWARD and RIGHT, (press RETURN)  %w  %r 11 +&1&1 &1&1 !REPEAT 4 [FD 30 RT 90]  %w  %@ 19 1  give it a try. Type &  and press RETURN. [Remember  to use square brackets.]  %w  %# &1  %w  %r 3  whatever is in the square brackets.  Now that's really something!  %w  %r 7 # &1&1&1&1&1&1&1&1&1&1&1&1&1&1&1&1&1&1&1  %w  %r 6 e  %w  %r 0 e  Thanks, Leo. But don't take Leo's  word for it--try it yourself.  % way of getting the turtle to do all  sorts of tricks.  %w  %r 0 e r 6 #REPEAT 4 [FORWARD 30 RIGHT 90]  %w  %r 0 e  Let me explain. This command tells  the turtle to REPEAT  %w  %r 7 #&1&1&1&1&1&1  %w  %r 2  four times...  %w %r 7 90 #FORWARD 30 #RIGHT 90  %w  %r 0 e  &0 a sequence of commands  like this. Now let's ask Leo  Logolover to demonstrate a short cut.  Are you there, Leo?  %w  %r 0 e  Indeed I am. I'm going to show you  the REPEAT command. It's a wonderful "You typed"  %w %r 0 e  The turtle can draw a square if you  repeatedly command it to move  FORWARD, say, 30 turtle steps and  then turn RIGHT 90 degrees.  %s 0 "You can type"  %w #FORWARD 30 #RIGHT 90 #FORWARD 30 #RIGHT 90 #FORWARD 30 #RIGHT forward 1 fd 1 back 2 bk 2  right 3 rt 3 left 4 lt 4 repeat 5  clearscreen 6 cs 6  to 7  %w  %b 1 38 1 5 1 sw 0 )Teaching the Turtle .New Words  %w  %r 0 e  So far you've used the commands  RIGHT and FORWARD repeatedly to draw  a square. %s 0 r select with the UP or DOWN ARROW key. Then press RETURN.  ________________________________________  "* marks a topic you have completed %w "&1 marks what we suggest you do next  %w  %@ 35 19 s 0 7  %w   %c 0 Introduction The Logo Story Using Logo for Pictures Teaching the Turtle Some Sample Turtle Programs Using Logo With Numbers and Words Quit  %ec %r 0 e *Exploring Logo Menu  ________________________________________ %w  %r 17   Type a number, o{ا{{{צ%wn ~   Z6VBb$"l/Z @תPE" s 4 "I DON'T KNOW HOW TO " s 8 square  %m 1 %w Please type & and then press RETURN. %w Well, we'll type it for you to show you what will happen... %w  %r 0 e So the turtle doesn't have SQUARE in its vocabulary. Not yet, at least.  %p You're ready to learn a very important part of Logo--teaching the turtle a new word, or, to put it more formally, creating a Logo procedure. %p Now, let's ask Leo to step in... %p %alt I'm delighted. I think this is one of the most exciting parts of Logo." DEFINED"  %w  %r 0 e  Thanks, Leo. Now you can see what &9 does. Type &<&9&> and press RETURN. %s 0 2 s 1 0 %m 1 %w  Please type &<&9&> and then press RETURN. %w We'll type it for you...  %w %r 0 e  Isn't that slick? Your Logo procedure, &9, usen times... %s 0 8 s 1 2  %w %r 2  the procedure SQUARE... %s 0 12 s 1 6  %w  %r 3 and a right turn of twenty degrees. %s 0 19 s 1 5  %w  %r 0 e Now I press RETURN... %w %r 1  and the new word (or procedure) is ready. I know you'll enjoy it! %s 8  this part. I'm going to show you  how to make an interesting design  with a very simple program.  Watch... %w REPEAT 18 [SQUARE RT 20]  END %w  %r 0 e The definition of &9  says: (press RETURN, please) %p REPEAT... %s 0 1 s 1 6  %w  %r 1 eighteplease.  %w We'd like a word, not a number after TO. Please try again.  %w  Well, let's just call it ZORKO for now.  %w  %r 0 e  Good. Now let's call on Leo again... %w  %r 0 e Here I am. You know, I really like ve already typed the TO for you.) %s 0 5 s 1 0 s 2 ZORKO s 8 square %m 1 %w  Please type a name for this new procedure, then press RETURN.  %w Sorry, but that's a word that Logo already knows. Please try a different word. %w Just one word after the TO, mponents. %p Here's an example. We'll make a new word (or procedure) that uses SQUARE to draw a fancy design on the screen. %p First, choose the new word. Use your own name if you'd like or make up something crazy. Type the word and press RETURN. (We' Teaching the turtle a new word or  procedure such as SQUARE is really a  very powerful technique, especially  when you realize that you can use the  new word to define other new words! %p In this way, you can build complicated programs from simple coe screen, then press RETURN. %w We'll type it for you... %w By the way, if you're using a color TV, you'll have noticed that the turtle has been drawing in white only. It can draw in other colors; you'll see some examples later. %p w Please type & and then press RETURN. %w We'll type it for you... %w  %r 0 e So now the turtle has SQUARE in its vocabulary. Now clear the screen. Please type & and press RETURN.  %s 0 2 s 1 0 s 2 CS %m 1 %w Please type & to clear th %s 0 ' DEFINED' %w %r 0 e and there you are! The turtle knows how to SQUARE. Isn't Logo fantastic? %w %r 0 e  We agree. Why don't you try the new procedure that you and Leo have created? Type & and press RETURN. %s 0 2 s 1 0 s 2 SQUARE %m 1 %the turtle by using the REPEAT command, like this: %sys  %s 0 'REPEAT 4 [FD 30 RT 90]' %w %r 0 e  %alt And that's all I need to have the turtle draw a SQUARE. I'm finished, so I type  &... %sys  %s 0 END %w  %@ 11 3 "Now, please press RETURN...  %w  %r 0 e %alt  Notice the > symbol instead of the ? symbol. This means that the turtle is learning. It won't perform the commands you type now, but it will patiently listen and remember. %sys %w %r 0 e  %alt  Now I'll teach the word SQUARE to and press RETURN. This means you're going to teach the turtle how to make a square. %sys  %s 0 2 s 1 0 s 2 "TO SQUARE" %m 1 %w  %alt  Please type & and then press RETURN. %sys  %w %alt  Well, we'll type it for you and then move on... %sys To me, there is nothing more satisfying, more challenging, more rewarding, more...  %p %sys Yes, Leo. If you could come to the point... %p %alt Oh, of course. I do get enthusiastic. Please bear with me.  %p  Here's how it works: Type & es another Logo procedure, SQUARE, to create a dramatic design. %p To draw the square, you divided a problem into bite-sized parts-- an important mental skill for programming. %p You then used this word as a building block to create a larger program. %p We think you'll agree that both skills are important, whether you're programming the Apple or doing  something entirely different. %w  %r 7 e r 10 !You have finished section 4 of 6. # !Press RETURN for the next section 2 0or # $ESC to go back to t%r 0 e r 5 Please take the disk out of the disk   drive and put it back in its envelope.    You can now return to the printed part   of the interactive guide. When you're   ready to use the next disk, put it in   the disk drive and then p And many thanks to YOU! It's been a pleasure taking you on this brief guided tour of Logo. %w %r 7 e r 10 !You have finished section 6 of 6.  ,Press RETURN  'to go back to the menu.  %end  .)  %p I've had a ball being with you. I wish I could reach right out and give you a great big Leo Logolover hug! You deserve it! Logo! Logo! Logo! %p %sys Many thanks, Leo. You've been very helpful, and your enthusiasm is... remarkable.  %w  %r 0 e 0 e  To make another postcard, you just press RETURN again. Remember, you can stop the program by pressing the key with a period on it. %w  %r 0 e  That was fun! (By the way, I got the original POSTCARD program from the Apple Logo SAMPLE PROGRAMS disk Now try the program again and watch for your new phrase. Type & and press RETURN. %s 0 2 s 1 0 s 2 'POSTCARD' s 3 'postcard'  %m 1  %w Please type the word & and then press RETURN. %w Well, we'll do the typing for you.  %w  %r Just make up any postcard-type message and type it, then press RETURN. %w Well, we'll type a typical postcard expression for you.  %w %r 0 e ...and here is the new list of messages, with your new message at the very beginning! %w  %r 0 e  %s 0 "LEARN.NEW.PHRASE"  %w %r 0 e  Now, make up a phrase of your own, like, "Please send money!"   (You don't need to type square  brackets for this.)  %s 3 "PLEASE TYPE IN A NEW PHRASE" %s 0 2 s 1 0 s 2 "Yow! We are having fun now!"  %m 1  %w messages that you see below... %w %r 0 e Although it looks very imposing, it's just a lot of lists of words held together by brackets.  %p  Now, I'll type this new word (really the name of a Logo procedure): #LEARN.NEW.PHRASE and then you press RETURN.to stop, press the key with a period (.) on it--you'll find it next to the question mark key. %w %r 0 e I hope you liked that. Now for the part that's really fun. POSTCARD lets you add to the lists for names, messages, and closings. %p That's the list ofpress RETURN. %s 0 2 s 1 0 s 2 'POSTCARD' s 3 'postcard'  %m 1  %w Please type the word & and then press RETURN. %w Well, we'll do the typing for you.  %w  %r 0 e  To make another postcard, you just press RETURN again. When you want s special commands designed to work with lists of words inside brackets. %p The POSTCARD program uses these commands to pick out a name, a phrase, and a closing message at random from three different lists. %p Try it out...  Type: & and here. Weather's great. Surf's up. Everyone's fine. Don't forget to feed the cats.  Love, See you soon, Hugs & kisses, PRESS THE PERIOD (.) KEY TO STOP  %ec  You've seen how we put brackets around a list of words (like  [HI KIDS]).  %p  Well, Logo ha%b 1 38 1 5 1 mw f %s 5 7 s 6 8 s 7 3 s 8 "Dear "  %s 9 "PRESS RETURN FOR ANOTHER POSTCARD" s 10 "PRESS RETURN OR"  %c 0 Reta Mike Seymour Steve Aunt Em Occupant Carl Krezdorn -- user supplies this --  I love Logo. Dinner at Joe's tonight? Wish you werehe menu.  %end  ress   OPEN APPLE-CONTROL-RESET.  %w  %b 1 38 1 22 2 mw f  %r 0 e r 4 Note: # "We'll be asking you to do some "typing during this and other "sections. " "Logo uses the DELETE key to "erase errors. " "If you make a typing error, "be sure to use DELETE to back "up and erase, not LEFT ARROW.  %r 20 Please press RETURN now to continue.  %p  %end   direction. Type another command, or  just press RETURN for a hint.  %w  %r 0 e  Now you're ready to draw the last  side of the square. Type another  command, or just press RETURN for  a hint.  %w  %w  The turtle doesn't recognize &9.  Try making the turtle turn right  another 90 degrees.  %w  --not used--  %w  We want the turtle to turn  right 90 degrees. We'll type  the command for you.  %w  %r 0 e  The turtle is now facing the proper ed by a number.  %w  Yes, we want the turtle to face  downward on the screen, but to  do that we must turn it RIGHT  another 90 degrees.  %w  For now, let's just have one  command per line. Please try  just &, then press RETURN.  %w rees to make  a square corner. (Use the RIGHT  command.)  %w  You could draw a square by turning  left, but for now, please stick  with RIGHT followed by a number.  %w  You'll see this command used later.  For now, please stick with  RIGHT follow  Please give it another try.  %w  -- not used  %w  -- not used  %w  You need a space between the command  and the number. Please try again.  %w You don't want to move the turtle  forward or backward; you want to turn  it right another 90 deg a number after & to  tell the turtle how many degrees to  turn. Please try again.  %w  If you turn the turtle that much, you  won't get a square corner going clock-  wise. Just use 90 degrees for a  square corner in the right direction.  %m 1 %w Hint: You must now turn the turtle  to the right another 90 degrees  to make a square corner.  %w  Remember, you have to tell the turtle how many degrees to turn. Please type  RIGHT followed by a number, then  press RETURN.  %w  You need steps. We'll  type that for you.  %w %s 0 15 s 1 6 %s 2 right# s 3 rt# s 4 down s 5 dn  %s 6 down? s 7 dn? s 8 "RIGHT 90"  %r 0 e  Now that you've moved the turtle  forward, what's the next step? Type  a command, or just press RETURN for  a hint. Yes, you can use REPEAT to draw a  square, but please stick with  FORWARD for now and give it a try.  %w  Whoa. Let's just stay with one  command per line for now. Please  try just FORWARD 30.  %w  We want the turtle to move  forward 30 turtlee steps.  %w  You could draw a square using this  command, but for now please stick  with FORWARD and give it a try.  %w  The turtle doesn't recognize &9.  Try making the turtle move forward  another 30 turtle steps.  %w e. Remember, the first  side was 30 turtle steps long.  Please give it another try.  %w  You need a space between the command  and the number. Please try again.  %w You don't want to turn the turtle;  you want to move it forward another  30 turtlrtle steps to move. Please type FORWARD followed by a number,  then press RETURN.  %w  You need a number after the  & command. Please try  again.  %w  If you move that far, the sides will  be different and you won't end up  with a squar%m 0  %s 0 11 s 1 4 %s 2 forward# s 3 fd# s 4 forwards %s 5 fwd s 6 "FORWARD 30"  %m 1 %w Hint: You must now use the FORWARD  command to move 30 turtle steps to  draw the next side of the square.  %w  Remember, you have to tell the turtle how many tuCongratulations! You just solved the  problem of drawing a square with  the turtle. You successfully broke  the task down into steps that the  turtle understood...  %p  ...go FORWARD and then turn RIGHT.  That's one very important aspect of  prog-\ ZZ #    ǿǪȡ ȡ  ȡ (Ǵȡ  ڛ ]F xZZ,2ȡ --) L2ZZǴ-- - @ɡ@!leo.fontצ turtle.imgȡV&ڂġ6٧menu.txt 200ɧ000 (lj232^` $V*21x x1ĝx7Ȅx3x01xqÝxQÍ3Q1cxÝxÍPx á!111ɡ1'x á111š112ˡ2122$á á_ ء;+LNj>F ) 833צ *&__321x x1ĝx7Ȅxȡkצ* צ  צ. )rȡ,ٛ ٛٛ 4 D)P<BBB B B B B B>!x N D LOGO1 MENUUNITSPLASHUNPIC1UNITPIC2UNITSAMPLEUNNWUNIT PCARDUNI lly is a fine  fellow and a first-rate Logo  programmer. Now....  %w  %r 7 e r 10 #You have finished section 3 of 6. $ #Press RETURN for the next section  2or  &ESC to go back to the menu.  %end   There! That's better. My mother--  Lena Logolover--was a great, big, wonderful, loving woman. But boy, did she make us kids put things back!  %w  %r 0 e  Thanks very much, Leo. He does get carried away a bit, but we hope you  don't mind. He reain Logo. Anyone can! That's the beauty of it. Just let me bring up one little point...  %w  %r 0 e  The turtle isn't facing the same way  it was when you started. Press  RETURN and I'll move it for you.  %s 1 "RIGHT 90"  %w  %r 0 e uage. I love it.  And I &-love&- your square. It is  so...square.  %p I love to talk to people about Logo. Really, I'd like to grab everyone I meet, look them straight in the eye, and say "Logo! Logo! Logo!"  %p Believe me when I say YOU can program ramming--or any general problem-  solving skill.  %w  %r 0 e  Ah, that must be Leo Logolover, the  world's most enthusiastic Logo  programmer. Please press RETURN  to meet him.  %w  %r 0 e  Oh, I am thrilled to be here. Logo is a marvelous langǿ!Io    ǿ צ splash.txt   ( (   (Z<Z   t<  ȡ?ȡ<ȡZ-F#? b ǿ introtext.txt     ǿ צ%end8á &x xÍx<*   pic1.txt  תתP"Zl^BP`t6, $ ? ( צ pic1loop.txt  6צ pic1end.txt   ȡ2,ȡ  ?Z  hZá7ء /á  ɡ    á      ŶZ ؓ2á ȡ  š š$   צ ׷ (áZá  á ˡAáá ɡ  ɡ á    x nɡhhkˡBáŶɄ  "á ɡ á "   ġ   á      Ŷ $G :  * 4-ׯF;ٝˡ׷z  ת צ (áá{  á  ȡ(#á=ç A?á#á  .        á  $ '0   ?(  $ D   & ׯ< < ړ9x xÍx<2 ۓšۓtڡ rl ȡǐlZ*< ǿ logostory.txt `Ǹǿ (&x xÍx<ǿ@@ LvVjH$D*2,ȡhچڹZ2Z  l ȡǐlZ*< ǿ logostory.txt `Ǹǿ (&x$ZZǴ <(Z_ZȡڹȡhچڹZ2Z  á <<%endׯ&x xÍx<5 <ȡ P,,---- ? ( צ pic1loop.txt  6צ pic1end.txt   ȡ2,ȡ  ?Z <   á $ '0  ء?ȡ+ق   ljkB z(&,ȡ3x xÍx<<Fá<šړ   *  4  ?(  #  < '6ˡS<   á $ '0     ȡ   (P'š    ( (ȡR  צpic2.txt   (&x xÍx<)(FL8v$ ` & P r D:    ȡ   (P'š    ( (ȡR > (ȡ  ȡNj ux< ק>ͤ`  ת ׯ תP\ á-  ( &ڡ ١ ء צ    ō   >   ,ȡ      Q   (צŧ á$ (  (     ō      N>   (- á צ á     ō á+áá@  ת ׯR áF(Ý.+ (ø8تP% (R8 [Z]צJ  ת  6   (Njȡ   NJ   h ! TO  ?(  ٶ#  ^   &  6 ȡZ$'ͧu  ȡZ$ȡx$ ZZ   ZZǴ8   ת    á      ō z  ȡ#؂)*H   á  צ(R ȡȡ ,ȡ-C V צ numword.txt תתP]׷(  ת צPYá% P ת(+ !    Ŷ  %! Tˡ&[צ([  šc ]  ]P  á P   ] ) . š 0 ݓߡ  čޓ9 ) uxá<      )ݓ ݶōݓ^  ) (ޓá(() ) ))  (צ)ߡˡ)rˡ)Oɡˡ))2š$ȡ ,ȡȡY ?) )  a     ת'0 á $  ?( $ <   &  ض4C  ȡ?   B  A Z<     F(f\Dz ( B8 -^ȡx8ȡx Z6ǿ(IqhȡB  LJ   J b צsampletext.txt   &x xÍx<*ȡNȡ<ȡZ-^ȡx8ȡx Z6ǿ(Iqh | ɡX"    (0l ǴǴȡxȡ< ZZǴȡ^  ǴZ(Zع  $HZ`:t Bdx2( (  ת צPYá% P ת(+ !    Ŷ <   '0 á $  á 3x01xqÝxQÍ3Q1cxÝxÍPx á!111ɡ1'x á111š112ˡ2122$á á_ ء;+LNj>F ) 833צ *&__321x x1ĝx7Ȅxȡkצ* צ  צ. )rȡ,ٛ ٛٛ 4 D)P<>     < <)<šǿńɄ  ,<7 2 - ( < 30-*'$j"Wx~צ quitter.txt  "צ quitter.txt  @>     < <)<šǿńɄ  ,<7 2 - ( < "  צProgram: Apple Presents...LogoצExecution error  צ quitter.txt  "צ quitter.txt  @צ] ]      ?    ˧) P  &x xÍ<% Fצ postcard.txt תתPL^R4T"d>`t2( צ[)צ] ]      ?    ˧) P    uצ.x<x.˶ Ʉx<  8צ[ ؂ȡIצ[)͂)rá3צ  ׷N תخ   á خ  ō b r     ٕق Ä )) ) á    ?(  ض$  D   *  ض  <  ),menu.txt 200ɧ000 (lj232^` $V*21x x1ĝx7Ȅx @ɡ@!leo.fontצ turtle.imgȡV&ڂġ6٧kˡBáŶɄ  "á ɡ á "   ġ   á      Ŷ $G :  * 4-ׯF;ٝˡ׷z  ת צ (áá{  á  ȡ(#á=ç A?á#á  .        á  $ '0   ?(  $ D   & ׯ< < ړ9x xÍx<2 ۓšۓtڡ rl ȡǐlZ*< ǿ logostory.txt `Ǹǿ (&x xÍx<ǿ@@ LvVjH$D*2,ȡhچڹZ2Z  l ȡǐlZ*< ǿ logostory.txt `Ǹǿ (&x$ZZǴ <(Z_ZȡڹȡhچڹZ2Z  á <<%endׯ&x xÍx<5 <ȡ P,,----ȡ?ȡ<ȡZ-F#? b ǿ introtext.txt     ǿ צ%end8á ǿ!Io    ǿ צ splash.txt   ( (   (Z<Z   t<  -\ ZZ #    ǿǪȡ ȡ  ȡ (Ǵȡ  ڛ ]F xZZ,2ȡ --) L2ZZǴ-- -   צ ׷ (áZá  á ˡAáá ɡ  ɡ á    x nɡhh hZá7ء /á  ɡ    á      ŶZ ؓ2á ȡ  š š$ צpic2.txt   (&x xÍx<)(FL8v$ ` & P r D:    ȡ   (P'š    ( (ȡR > (ȡ  ȡNj ux< ק>ͤ`  ת ׯ תP\ á-  ( &ڡ ١ ء צ    ō   >   ,ȡ      Q   (צŧ á$ (  (     ō      N>   (- á צ á     ō á+áá@  ת ׯR áF(Ý.+ (ø8تP% (R8 [Z]צJ  ת  6   (Njȡ   NJ   h ! TO  ?(  ٶ#  ^   &  6 ȡZ$'͝<   á $ '0  ء? ? ( צ pic1loop.txt  6צ pic1end.txt   ȡ2,ȡ  ?Z &x xÍx<*   pic1.txt  תתP"Zl^BP`t6, $ ? ( צ pic1loop.txt  6צ pic1end.txt   ȡ2,ȡ  ?Z    ȡ   (P'š    ( (ȡR <   á $ '0  )ݓ ݶōݓ^  ) (ޓá(() ) ))  (צ)ߡˡ)rˡ)Oɡˡ))2š$ȡ ,ȡȡY ?) )  a     ת'0 á $  ?( $ <   &  ض4C  ȡ?   B  A Z<     F(f\Dz ( B8 -^ȡx8ȡx Z6ǿ(IqhȡB  LJ   J b צsampletext.txt   &x xÍx<*ȡNȡ<ȡZ-^ȡx8ȡx Z6ǿ(Iqh | ɡX"    (0l ǴǴȡxȡ< ZZǴȡ^  ǴZ(Zع     ת    á      ō z  ȡ#؂)*H u  ȡZ$ȡx$ ZZ   ZZǴ8ȡ+ق   ljkB z(&,ȡ3x xÍx<<Fá<šړ   *  4  ?(  #  < '6ˡS) . š 0 ݓߡ  čޓ9 ) uxá<       %! Tˡ&[צ([  šc ]  ]P  á P   ] 30-*'$j"Wx~צ quitter.txt  "צ quitter.txt  @>     < <)<šǿńɄ  ,<7 2 - ( < "  צProgram: Apple Presents...LogoצExecution error  צ quitter.txt  "צ quitter.txt  @צ] ]      ?    ˧) P  &x xÍ<% Fצ postcard.txt תתPL^R4T"d>`t2( צ[)צ] ]      ?    ˧) P    uצ.x<x.˶ Ʉx<  8צ[ ؂ȡIצ[)͂)rá3צ  ׷N תخ   á خ  ō b r     ٕق Ä )) ) á    ?(  ض$  D   *  ض  <  ),<   '0 á $  á $HZ`:t Bdx2( (  ת צPYá% P ת(+ !    Ŷ   á  צ(R ȡȡ ,ȡ-C V צ numword.txt תתP]׷(  ת צPYá% P ת(+ !    Ŷ >     < <)<šǿńɄ  ,<7 2 - ( < N^Wend; &sysfont; &longwindow; &dotest; (* erase final arrows *) &setwindow(false); &dotest; (* Now, do it yourself. *) &svars[1][1]:=chr(138); (* down-arrow *) &longwindow; &dotest; (* set up arrows *) &setwindow(false); &ptest; &dotest; (* back t (* Displays it *) &ptest; &svars[1]:=' '; &svars[1][1]:=chr(139); (*up-arrow*) &for i:=1 to 3 do begin )leofont; )setwindow(false); )dotest; (* Explain command *) )longwindow; )sysfont; )dotest; (* underline it *) )setwindow(false); )ptest; &&end else begin )discard(1); dofile; &end; &ptest; &longwindow; &dotest; (* Show long set of commands *) &setwindow(false); &dofile; (* Call in Leo *) &ptest; &leofont; &dotest; (* Here is the repeat command *) &sysfont; &longwindow; &dotest;indow; #begin &write(chr(nowindow)); &gotoxy(0,7); write(chr(upleft)); &gotoxy(39,16); write(chr(botrt)); &gotoxy(0,0); #end; # #procedure longway; #begin &dotest; ptest; (* Title blurb *) &if topics[3] then begin )dofile; discard(1) end; # #procedure giveup; #begin &botwindow; &gotoxy(mycol,myrow); &write(chr(erseol)); &autotype(svars[snums[1]+2]); #end; # #procedure square; #var i:integer; #begin &for i:=0 to 3 do begin )fd(30); rt(90); &end #end; # #procedure longw&end; &setglobal(40,4,' '); &getinput(answer,i,myrow,35); &testleave; &data:=answer; &strip(data); &tptr:=1; #end; # #procedure error(errno:integer); #begin &jumpmark(1); &setwindow(true); &boxinfo[4]:=5; &box; &discard(errno); &dotest; #&gotoxy(0,20); write(chr(upleft)); &gotoxy(39,3); write(chr(botrt)); #end; # #procedure getanswer(toing:boolean); #var i:integer; #begin &botwindow; &gotoxy(0,myrow); &if toing then begin )write('?TO '); i:=4 &end else begin )write('?'); i:=1 box; #begin &boxinfo[4]:=1; &setwindow(true); &box #end; # #procedure nextline; #begin &myrow:=myrow+1; &if myrow=4 then begin )writeln; )myrow:=3; &end; #end; # #procedure botwindow; #begin &write(chr(nowindow)); tleave; #end; # #procedure leofont; #begin &moveleft(altfont,cursor.cinfo^.fontadr,2); #end; # #procedure sysfont; #begin &cursor.cinfo^.fontadr:=2048; #end; # #procedure ptest; #begin &preturn(false); &testleave; #end; # #procedure redo;  var #gotit:boolean; #cmd,errno,ntries,ngive,myrow,mycol, #nsides,i,j,k:integer; #answer:s255; # #procedure testleave; #begin &if escaped then begin )write(chr(nowindow)); )exit(pic2) &end #end; # #procedure dotest; #begin &dofile; &tes(*$S+*)  (*$V-*)  unit pic2unit;   interface  (*$U #5:compile.library*)  uses applestuff,shortgraphics,transcend,introlib,inputstuff,logostuff;  procedure pic2;   implementation   procedure pic2;  const #nowindow=20; #upleft=22; #botrt=23o box and say give it a try *) &turtle.showing:=false; &home; &turtle.showing:=true; &showturtle; &longwindow; &dotest; (* erase arrows *) &setwindow(false); &dotest; #end; # #procedure is_num(n:integer); #begin &if gotit then begin )ltoken; )svars[10]:=token; )gotit:=(numtok=n) and (not hasletters); &end; #end; # #procedure is_kwd(n:integer); #var i:integer; #begin &if gotit then begin )ltoken; )svars[10]:=token; )lowercase(token); )i:=find_kw(token); )gotit:=(i=n); &; &repeat )answer:=''; )getanswer(true); )gotit:=true; )wjudge; )if gotit then begin ,ltoken; ,gotit:=(token=''); )end else ,token:=''; )if not gotit then begin ,if (ntries=ngive) then begin /error(5); /svars[9]:=svars[snums[1]+2]; /mycol:=4lean; & &procedure wjudge; &begin & ltoken; )svars[9]:=token; )lowercase(token); )noname:=(token=''); )numerr:=not hasletters; )reserve:=(find_kw(token)>0) or 2(token=svars[8]); )gotit:=not (numerr or reserve); &end; & #begin # ntries:=0 procedure try_square; #begin &sysfont; &dotest; &type_it(1); □ &redobox; &dotest; &type_it(0); (* CS *) &cs; &redobox; &dotest; (* Color TV; lead-in to new word *) #end; &  procedure new_word; #var &noname,numerr,reserve:boont; &dotest; (* and then press RETURN *) &ptest; &botwindow; &sysfont; &nextline; &write(svars[10],svars[0]); (* SQUARE defined *) &nextline; &setwindow(false); &leofont; &dotest; (* and there you are *) &ptest; #end; # ars[0]); (* types REPEAT *) &nextline; &write('>'); &setwindow(false); &ptest; &leofont; &dotest; (* Only need END *) &botwindow; &sysfont; &gotoxy(1,myrow); &autotype(svars[0]); (* types it...*) &setwindow(false); &for i:=1 to 300 do; &leofoote > rather than ? *) &ptest; &(* &leofont; &dotest; (% glad to be back... %) &ptest; &sysfont; &dotest; (% Get to point. %) &ptest; &leofont; (% Of course... use REPEAT %) &*) &dotest; &botwindow; &sysfont; &gotoxy(1,myrow); &autotype(sv&botwindow; &gotoxy(0,myrow); &write(svars[4],svars[10]); &nextline; &setwindow(true); &boxinfo[4]:=1; &box; &dotest; (* Here's how it works...*) #end; # #procedure learning; #begin &write('>'); &setwindow(false); &redobox; &dotest; (* N=0 then 2svars[10]:=svars[snums[1]+2] /else 2svars[10]:=svars[8]; /giveup ,end else /error(1) )end; )ntries:=ntries+1; &until gotit or (ntries>ngive); &nextline; &jumpmark(1); &discard(snums[0]+1); #end;  #procedure no_square; #begin d; &end; #begin # ntries:=0; &repeat )gotit:=false; )answer:=''; )getanswer(false); )gotit:=true; )judge; )if gotit then begin ,ltoken; ,gotit:=(token=''); )end; )if not gotit then begin ,if (ntries=ngive) then begin /error(2); /if stagese row 12 *) &redobox; #end; # #procedure type_it(stage:integer); # &procedure judge; &begin )if stage=0 then ,is_kwd(6) )else if stage=1 then begin ,is_token(svars[8]); )end else if stage=2 then begin ) is_kwd(7); ,is_token(svars[8]); )en,end else begin /if data='' then 2error(3) /else if stage=1 then 2error(4) /else 2error(1) ,end )end; )ntries:=ntries+1; &until gotit or (ntries>ngive); □ &nextline; &jumpmark(1); &discard(snums[0]+1); &longwindow; &dotest; (* Era,gotit:=(token=''); )end; &end; ) #begin # ntries:=0; &ngive:=3; &repeat )gotit:=false; )answer:=''; )getanswer(false); )svars[9]:=answer; )judgeit; )if not gotit then begin ,if (ntries=ngive) then begin /error(2); /giveup =true; )stage:=1; )is_kwd(5); (* Repeat *) )if not gotit then exit(judgeit); )stage:=0; )is_num(4); )is_token('['); )is_kwd(1); (* FD *) )is_num(30); )is_kwd(3); (* RT *) )is_num(90); )is_token(']'); )if gotit then begin ,ltoken; end; #end; # #procedure is_token(s:string); #begin &if gotit then begin )ltoken; )svars[10]:=token; )lowercase(token); )gotit:=(token=s); &end; #end;  #procedure type_repeat; #var stage:integer; # &procedure judgeit; &begin & gotit:; /giveup ,end else begin /if noname then 2error(1) /else if numerr then 2error(4) /else if reserve then 2error(2) /else if token<>'' then 2error(3) ,end )end; )ntries:=ntries+1; &until gotit or (ntries>ngive); &nextline; &jumpmark(1); &discard(snums[0]+1); #end; &  procedure big_design; #begin &redobox; &dotest; (* Good. Call Leo again. *) &ptest; &leofont; &dotest; &ptest; &sysfont; &botwindow; &gotoxy(0,myrow); &write('>'); lineread; autotype(data); &nextline; &linWFLt  צProgram: Apple Presents...LogoצExecution error  צ quitter.txt  ">     < <<ǿ  ,<7 2 - ( < 30-*'$8""  צProgram: Apple Presents...LogoצExecution error  צ quitter.txt  ">     צ] ]      ?    ˧) P  &x xÍ<% Fצ postcard.txt תתPL^R4T"d>`t2( צ[)צ] ]      ?    ˧) P    uצ.x<x.˶ Ʉx<  8צ[ ؂ȡIצ[)ry_square; #new_word; #mycol:=1; #big_design; #topics[4]:=true; #write(chr(nowindow)); #dotest; #unitclear(1); #repeat &read(keyboard,key) #until eoln(keyboard) or (key=chr(esc)); #escaped:=(key=chr(esc));  end;   begin  end. ; #type_repeat; #dotest; (* Transition to CS *) #type_it(0); (* Look for CS *) #cs; #redobox; #dotest; (* Transition to "type square" *) #type_it(1); (* Look for SQUARE *) #no_square; #type_it(2); (* Look for TO SQUARE *) #learning; #t]); &type_it(1); (* go for *) &for i:=0 to 17 do begin )square; rt(20); &end; &redobox; &dotest; (* blurbs up to final press return *) #end;  begin #page(output); #myrow:=0; #mycol:=1; #setfile('pic2.txt'); #make_kw_list; #longway&if length(data)>39 then begin )nextline; )gotoxy(0,myrow-1) &end else )gotoxy(0,myrow); &wrapwrite(data); &nextline; &setwindow(false); &ptest; &dotest; (* Great, leo. Now try it *) &svars[8]:=svars[9]; &svars[2]:=svars[9]; &lowercase(svars[8 &leofont; &setwindow(false); &dotest; (* Now I press RETURN *) &botwindow; &nextline; &setwindow(false); &for i:=0 to 1000 do; &dotest; (* and it's defined *) &sysfont; &botwindow; &data:=concat(svars[9],svars[8]); (* XXX DEFINED *) o ,write(chr(139)); )setwindow(false); )await(cresc,nocursor,normal,mustbeok); )escaped:=(key=chr(esc)); )testleave; )botwindow; )gotoxy(snums[0],myrow); )write('':snums[1]); &end; &gotoxy(0,myrow); &write('>',chr(erseol)); &autotype(svars[8]);eread; &svars[8]:=data; (* the END stmt *) &discard(1); (* and then eat up the %w *) &for i:=1 to 4 do begin )leofont; )setwindow(false); )dotest; (* Say what you'll hilite *) )botwindow; )sysfont; )gotoxy(snums[0],myrow); )for j:=1 to snums[1] d< <<ǿ  ,<7 2 - ( < 30-*'$8"