' +JJJJ ?\>m0M='+l> /+l   d]@ŵLҦ]]L L}BBL]렮 鷎귭෍ᷩ췩緈JJJJx Lȿ L8ᷭ緍췩 緍i 8 `巬 췌`x (`(8`I`B` ``>J>J>VU)?`8'x0|&HhHh VY)'&Y)xꪽ)' `Hh`V0^*^*>&` aI꽌ɪVɭ&Y&&Y& 꽌ɪ\8`&&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xS&x'8*3Ixix&& 8  '  & x)*++`FG8`0($ p,&"_]` L/浍굺L  !"#$%&'()*+,-./0123456789:;<=>?  1#"""  (9"1 ( ,.(0# 2  /#0/#0 *?'#07#00/0/'#07#0:"4<*55/**5/*%5/)1/)1/)1/)'#0/#0*5/*75/**5/*:5//#0/#0'#07#0:::*::'#07#0EB H  @H !D)"E` @ $ C ` DQ &J80^݌Hh ü ü݌ ռ ռ ռA ļD ļ? ļAEDE?HJ>h Լ ռ ռ ռ`HJ>݌h Hh݌`HIHHHHhHH݌hHhHh݌H6 VDP (ED Z $0x8x D- ܸDD# H8`?E Vk *f???0xE Hh D#-EEE8` D ܸx D - ܸx8`-0ݩ?ʥD EEE`   vLDcpq` [` ~  LӜu`".Q`pNФbptťܥm2<(-Py0\|e<6e<g< JJJJj귍hI  aUL@ kU8  L  Q^R(jQ0l^l\  wUuW ԧ H h@ [_ /QSIRb_L`LLLL`ª`LQLYLeLXLeLee ўQH\(h0L& Ꝥ$`( R \ZLl8 ўR HH\`\Z[YS6`LxQɿu3'RͲʎRʎ]]]ɍuL͟ɍ}RLRɍg^H8 ^hZLɍR LͲɊRR% QLܤͲ Z@ -^ ş\[Z QY\[Z8`l6Lş_Ȍb_Ͳ] )Y h( ֭ͲLɍ [LLĦ__ ^ 9 LҦ3 9 a   0LjLY u< (_9 ˭ɠuɠK_9 ?LˆʎõĵL õ ĵµ aµ`` L̦µ_bJLuLz`  ȟ QlXJ̥KlV  ȟ QlV eօ3L e3L &RL &QL d L4 Ne)n `@-eff L f`L . tQLѤ LҦL` OPu d L Ne)noon 8ɍ` ^f\õL ^NR  RΩLҦ)\Z ʽ LHv 3h`0h8` [L NС õ`A@` ŵL^L iõ`  \ 濭0 \  ȟ Q ^\lZl^?cqH şch`fhjõĵ@OAP`u@`@&`QR`E Ls  @DAE@u`8` %@ @A@`@`@A`Mµ ) LЦ`8@AWc@8@-@HAȑ@hHȑ@ȑ@hHȑ@Ȋ@ch8&ȑ@Hȑ@Ah@LHȑ@ȑ@ htphso`hMhL`9V8U897T6S67`INILOASAVRUCHAIDELETLOCUNLOCCLOSREAEXEWRITPOSITIOOPEAPPENRENAMCATALOMONOMOPRINMAXFILEFINBSAVBLOABRUVERIF!pppp p p p p`" t""#x"p0p@p@@@p@!y q q p@  LANGUAGE NOT AVAILABLRANGE ERROWRITE PROTECTEEND OF DATFILE NOT FOUNVOLUME MISMATCI/O ERRODISK FULFILE LOCKESYNTAX ERRONO BUFFERS AVAILABLFILE TYPE MISMATCPROGRAM TOO LARGNOT DIRECT COMMANč$3>L[dmx-(D 0Ϡ@跻~!Wo*9~~~~ɬƬ~_ j ʪHɪH`Lc (L ܫ㵮赎 ɱ^_ J QL_Ls贩紎 DǴҵԵƴѵӵµȴ 7 ַ :ŵƴѵǴҵȴµ納贍﵎ٵ്ᵭⳍڵL^ѵ-I `  4 ò-յ!  8صٵ紭ﵝ 7L (0+BC  7L HH`LgL{0 HH` õL H hBL BH [ h`Lo õ ڬL B ڬ LʬH hB@ յյ [L (ȴ) ȴ 7L L ( L (ȴL{ƴѵ洩ƴǴҵ 7 ^* B0 HȱBh ӵԵ 8 L8 ݲ` ܫ  / / ED B / / ]ƴS0Jȴ ȴ)  紅D贅E B ƴ  / 0L Ν `HD٤DEEhiHLGh ` ŵBѵ-` ѵB-` ܫ XI볩쳢8 DH E𳈈췍Ȍ X0 · JLǵBȵC`,յp` 䯩 R-յյ`յ0` K R-յյ`ɵʵӵԵ` 4 K ( ѵҵLBȱBL8` DBHBH : ַ޵BȭߵBhhӵԵ RBܵmڵ޵ȱBݵm۵ߵ` 䯩LR˵̵ֵ׵`êĪLR E( 8` R` ELRŪƪ`췌 յյI뷭鷭귭ⵍ㵍跬ª 뷰` Lf ݵܵߵ޵ ^`8ܵ i B8` 4L ֵȱB׵ ܯ䵍൭嵍 ` DȑB׵Bֵ  ַ յյ`굎뵎쵬 뵎쵌``õĵBCõĵ`µµ`L õBĵCصص Qƴ0"Bƴ 󮜳` 0۰ϬBƴ8`i#`ЗLw!0>ﵭ` m ﳐ 7i볍 8 ЉLw`H h ݲL~ `浍국䵍뵩嵠Jm赍嵊mjnnn浈m浍浭m䵍䵐`"L ŵ8ŵH ~(`F d ֠z# u`FD MRT MLT MSETH MBK MSETX MSETY] MAKE "N6 (5) MAKE "KJ [SETY 50] MAKE "ALICE (39328) MAKE "Z (0) MAKE "X "Z MAKE "BCOLOR (0) MAKE "COLOR (0) MAKE "NAME "LOP MAKE "HISTORY [] MAKE ":TIME (500) MAKE "USHAPE (228) MAKE "N3 " MAKE "SSIZE (230) "W1 [WERTY] MAKE "L2 [SA FD HG] MAKE "L1 [FD RT LT SETH BK SETX SETY] MAKE "Y3 (0.) MAKE "X3 (-31.) MAKE "Y2 (40.) MAKE "X2 (-51.) MAKE "Y1 (80.) MAKE "X1 (-64.) MAKE ":M2 (80.) MAKE ":M1 (-111.) MAKE "C1 [SETY 100] MAKE "CDML [7 5 6 4 6 3 4] MAKE "ML1 [M RIGHT 90 RIGHT 135 LEFT 90 LEFT 45 SETX -50 SETY 50 SETHEADING 0 SETHEADING 90 SETHEADING 180] MAKE "CL1 [HOME CS PU PD] MAKE "N5 (1) MAKE "X6 (23) MAKE "N4 "Y MAKE "N1 (2) MAKE "N2 (3) MAKE "TH [NOW IS THE TIME] MAKE ":L1 (2.5) MAKE "NEWLIST [DF GH] MAKE GO 3 END TO DSIZE ST HT IF ( .EXAMINE :SSIZE ) < 2 ST STOP .DEPOSIT :SSIZE ( .EXAMINE :SSIZE ) - 1 ST END TO ISIZE ST HT IF ( .EXAMINE :SSIZE ) > 6 ST STOP .DEPOSIT :SSIZE ( .EXAMINE :SSIZE ) + 1 ST END MAKE "CL [FORWARD 20 FORWARD 25 BACK 50 TO .SHAPE :SH .DEPOSIT :USHAPE REMAINDER :SH 256 .DEPOSIT :USHAPE + 1 QUOTIENT :SH 256 END TO SIZE :N ST HT .DEPOSIT :SSIZE :N ST END TO TRA PR [=> TO CONTINUE PRESS RETURN] CLEARINPUT MAKE "N3 RC STOP END TO TR1 TRA 3: IF :N3 = 1 THEN STOP 0 IF :TIME < 1 THEN .GCOLL STOP PWZ :TIME - 1 END TO CPYRT REPEAT 14 [PR "] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MAY NOT BE REPRODUCED] PR [WITHOUT PRIOR WRITTEN AUTHORIZATION] PR [BY THE KRELL SOFTWARE CORP.] PWZ 500 END PUT 1 + LENGTH BUTFIRST :LIST ND END TO TRAC CLEARINPUT PRINT1 [TO CONTINUE, HIT RETURN] PR RQ END TO FIN PR [+++THE END+++] PWZ 100 HT .DEPOSIT 228 0 .DEPOSIT 229 0 .DEPOSIT 230 1 HT GOODBYE END TO PWZ :TIME IF :TIME > 500 THEN MAKE ":TIME 50SHAPE 0 STOP IF :X = "W DSIZE STOP IF :X = "V ISIZE STOP END TO PLAY LOOP PLAY END TO CIRCLE REPEAT 20 [FD 3 RT 18] END TO SPIRAL CIRCLE RT 30 CIRCLE RT 30 CIRCLE RT 30 CIRCLE RT 30 CIRCLE END TO LENGTH :LIST IF :LIST = [] OUTPUT "0 OUTSQUARES 30 3 2 STOP IF :X = "J SHRINKSQUARES 95 3 2 STOP IF :X = "K PSP 20 144 5 STOP IF :X = "M CS STOP IF :X = "N PSP 20 185 2 STOP IF :X = "O PSP 20 220 5 STOP IF :X = "Z HOME STOP IF :X = "Y INITSHAPES SETSHAPE :ALICE SIZE 2 STOP IF :X = "X SET R [CIRCLE] STOP IF :X = "P CHANGECOLOR STOP IF :X = "Q UNDO STOP IF :X = "L LEARN STOP IF :X = "A ASK STOP IF :X = "'G' GROSQUARES 30 3 1 STOP IF :X = "E SHRINKSQUARES 110 3 1 STOP IF :X = "H GROSQUARES 30 3 2 STOP IF :X = "I GROSQUARES 30 3 1 GRONALL :HISTORY IF :HISTORY = [] STOP RUN FIRST :HISTORY RUNALL BF :HISTORY END TO LOOP MAKE "X RC IF :X = "F R [FD 10] STOP IF :X = "B CHANGEBACKGROUND STOP IF :X = "T R [RT 30] STOP IF :X = "D REINIT STOP IF :X = "S R [SQUARE 30] STOP IF :X = "CD TO GROSQUARES :S :I :D FULLSCREEN IF :S > 110 THEN SPLITSCREEN STOP REPEAT 4 [FD :S RT 90] IF :D = 1 THEN RT 10 ELSE LEFT 10 GROSQUARES ( :S + :I ) :I :D END TO INITSHAPES DOS [BLOAD ALICE.SHAPES] END TO SETSHAPE :SH HT .SHAPE :SH ST END TO RU MAKE "HISTORY [] PLAY END TO LEARN PRINT [WHAT DO YOU WANT TO CALL THIS?] MAKE "NAME FIRST RQ DEFINE :NAME FPUT [] :HISTORY INSTANT END TO R :X MAKE "HISTORY LPUT :X :HISTORY RUN :X END TO ASK PRINT [WHAT PICTURE DO YOU WANT TO SHOW?] R RQ ENARE :N REPEAT 4 [FD :N RT 90] END TO CHANGECOLOR MAKE "COLOR REMAINDER :COLOR + 1 5 PC :COLOR END TO UNDO IF :HISTORY = [] STOP MAKE "HISTORY BL :HISTORY DRAW RUNALL :HISTORY END TO INSTANT MAKE "COLOR 0 MAKE "BCOLOR 0 DRAW BACKGROUND 0 PC 1F :S < 4 THEN SPLITSCREEN STOP REPEAT 4 [FD :S RT 90] IF :D = 1 THEN RT 10 ELSE LEFT 10 SHRINKSQUARES ( :S - :I ) :I :D END TO CHANGEBACKGROUND MAKE "BCOLOR REMAINDER :BCOLOR + 1 5 BACKGROUND :BCOLOR END TO REINIT MAKE "HISTORY [] DRAW END TO SQU PRINT1 [ALICE IN LOGOLAND ' ' PART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END TO CTXT REPEAT 4 [PR []] END TO PSP :S :A :I FULLSCREEN IF :S > 120 SPLITSCREEN STOP FD :S RT :A PSP ( :S + :I ) :A :I END TO SHRINKSQUARES :S :I :D FULLSCREEN I TO AIL21 TITLE [INSTANT ALICE] [21] ND PR [TO MAKE SURE THAT YOU GRASP LOGO] PR [READ ABOUT THE PROGRAM - INSTANT] PR [IN YOUR MANUAL. THEN TRY THIS VERSION.] CTXT PR [TO CONTINUE, TYPE INSTANT + HIT RETURN] TOPLEVEL END TO TITLE :NAME :PT CS ND      AND ' ' PART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END MAY NOT BE REPRODUCED] PR [WITHOUT PRIOR WRITTEN AUTHORIZATION] PR [BY THE KRELL SOFTWARE CORP.] PWZ 500 END TO PWZ :TIME IF :TIME < 1 THEN .GCOLL STOP PWZ :TIME - 1 END TO CTXT REPEAT 4 [PR []] END TO TITLE :NAME :PT CS ND PRINT1 [ALICE IN LOGOL?''''$$%'''''''-55-.5.5.-$-$-,%%-57777777566777$$'-~CC$5~ %<6CC/7777666555---,,,$$$<<<>666...--%%%$$$''?DCCCCCC@C''<'OIIIIo 7?67 "FILE "RABBIT MAKE "FIRST.ADDR (39328) MAKE "LAST.ADDR (39578) MAKE "PEN (4) MAKE "NEXT.SHAPE (39341) MAKE "SSIZE (230) MAKE "USHAPE (228) MAKE "TEST (39328) TO INITSHAPES DOS [BLOAD RABBIT.SHAPES] END TO SIZE :N ST HT .DEPOSIT :SSIZE :N ST END TO SETSHAPE :SH HT .SHAPE :SH ST END TO .SHAPE :SH .DEPOSIT :USHAPE REMAINDER :SH 256 .DEPOSIT :USHAPE + 1 QUOTIENT :SH 256 END MAKE "RABBIT (39328) MAKE 6666..----,$$$$$$'?'%%%$''??7776555?77III,55.$%-5>>>6?'<<<$5IIIICCC@CCCC@CCC6?$%55$Iu!EC 76'l46YCCCC52$%%55ECCC6#d6%6O @=8CCCCCM6?'45% 666.55->?'?>'$%$$166656?<7??,%%-$$$  BC # 0 STA ! COUNT.H JMP PDLOOP END N DUR.L LDA ! DUR.H SBC # 0 STA ! DUR.H JSR CLICK JMP TONE EXIT: RTS CLICK: LDA SPKR LDA ! PER.L STA ! COUNT.L LDA ! PER.H STA ! COUNT.H PDLOOP: LDA ! COUNT.L ORA ! COUNT.H BEQ EXIT LDA ! COUNT.L SEC SBC # 1 STA ! COUNT.L LDA ! COUNT.H S #TO MCODE [MAKE "SPKR $ "C030] [MAKE "DUR.L :NARG2] [MAKE "DUR.H :NARG2+1] [MAKE "PER.L :NARG2+2] [MAKE "PER.H :NARG2+3] [MAKE "COUNT.L :USERPZ] [MAKE "COUNT.H :USERPZ+1] TONE: LDA ! DUR.L ORA ! DUR.H BEQ EXIT LDA ! DUR.L SEC SBC # 1 STA !    <8 L`08LřII  H HT .SHAPE :SH ST END TO SIZE :N ST HT .DEPOSIT :SSIZE :N ST END MAKE "USHAPE (228) MAKE "SSIZE (230) lTO STAMP.IMAGE MAKE "A .EXAMINE :USHAPE MAKE "B .EXAMINE :USHAPE + 1 .SHAPE 1 HT .DEPOSIT :USHAPE :A .DEPOSIT ( :USHAPE + 1 ) :B ST END TO .SHAPE :SH .DEPOSIT :USHAPE REMAINDER :SH 256 .DEPOSIT :USHAPE + 1 QUOTIENT :SH 256 END TO SETSHAPE :S   O (4);"MAXFILES 1"9"MIT LOGO FILES DISK"M((4);"CATALOG" 0?????'%%%%%%555555537777777-,,,,,,$$mIAC WORD :U :F ) :L DOS :M DOS :N END EIF FIRST :? = 1 THEN GO 1 ELSE TOPLEVEL 1: MAKE "A ( ( .EXAMINE 58 ) + ( ( .EXAMINE 59 ) * 256 ) ) DIS :A END TO KILL PRINT1 [FILE? ' '] MAKE "F FIRST RQ MAKE "U "UNLOCK MAKE "N "DELETE MAKE "L ".LOGO MAKE "N WORD ( WORD :N :F ) :L MAKE "M WORD ( !TO DIS :START MAKE "PC 58 MAKE "STRT :START - ( ( INTEGER ( :START / 256 ) ) * 256 ) .DEPOSIT 58 ( INTEGER :STRT ) .DEPOSIT 59 ( INTEGER ( :START / 256 ) ) .CALL 65121 100 PR " PRINT1 [NEXT? (0=END 1=NEXT)] MAKE "? RQ IF :? = [] THEN TOPLEVEL   @????????$%,$%,$%,$%,$5.65.65.6$---$%$%$,$5.65.65.65.6.6???????  FILE "CROC1 MAKE "FIRST.ADDR (39328) MAKE "LAST.ADDR (39578) MAKE "PEN (4) MAKE "NEXT.SHAPE (39392) MAKE "SSIZE (230) MAKE "USHAPE (228) MAKE "TEST (39328) TO INITSHAPES DOS [BLOAD CROC1.SHAPES] END TO SIZE :N ST HT .DEPOSIT :SSIZE :N ST END TO SETSHAPE :SH HT .SHAPE :SH ST END TO .SHAPE :SH .DEPOSIT :USHAPE REMAINDER :SH 256 .DEPOSIT :USHAPE + 1 QUOTIENT :SH 256 END MAKE "CROC1 (39328) MAKE "   V/-,,,--,,,,,>7??>??????''??7-%%--->7--lCC;D@??>??LII 37''I >677??'''<<<$??>>??.---,,,66??6777?,,,,,--$dCC! EC'477777-lCH-MC+5555?<?$$76[CCCCCCCC$$,,$'?>65:<<..nI )---ECI)5ڮ2' X (39328) MAKE "PEN (4) MAKE "USHAPE (228) MAKE "LAST.ADDR (39578) MAKE "SSIZE (230) MAKE "NEXT.SHAPE (39533) MAKE "FIRST.ADDR (39328) MAKE "FILE "ALICE MAKE "TEST (39328) TO .SHAPE :SH .DEPOSIT :USHAPE REMAINDER :SH 256 .DEPOSIT :USHAPE + 1 QUOTIENT :SH 256 END TO SETSHAPE :SH HT .SHAPE :SH ST END TO SIZE :N ST HT .DEPOSIT :SSIZE :N ST END TO INITSHAPES DOS [BLOAD ALICE.SHAPES] END MAKE "ALICE (39328) MAKE "  (39328) MAKE "SSIZE (230) MAKE "M (1) MAKE "TEST (39328) [DF GH] MAKE ":L1 (2.5) MAKE "TH [NOW IS THE TIME] MAKE "N2 (3) MAKE "N1 (2) MAKE "FILE "ALICE MAKE "FIRST.ADDR (39328) MAKE "NEXT.SHAPE (39533) MAKE "LAST.ADDR (39578) MAKE "PEN (4) MAKE "X (39328) MAKE "N4 "Y MAKE "N3 (0) MAKE "USHAPE (228) MAKE "ALICE K SETH 0 SIZE 2 REPEAT 12 [RT 90] SPLITSCREEN AIL9A END MAKE ":M1 (-111.) MAKE ":M2 (80.) MAKE "X1 (-64.) MAKE "Y1 (80.) MAKE "X2 (-51.) MAKE "Y2 (40.) MAKE "X3 (-31.) MAKE "Y3 (0.) MAKE "L1 [AS DF GH] MAKE "L2 [SA FD HG] MAKE "W1 [WERTY] MAKE "NEWLIST TO PST :N :A REPEAT INTEGER 360 / :A [RT :A FD :N] END TO AIL9 TITLE [DRINK ME] [9] SIZE 1 HT GSP PR [IT'S ME AGAIN. I'VE GOT A PROBLEM] PWZ 300 PR [I KEEP GROWING AND SHRINKING] PWZ 300 FULLSCREEN REPEAT 4 [PR "] PC 1 GSK SETH 90 GSK SETH 180 GS0 PWZ 300 PC 1 BG 2 BG 3 BG 4 SETH 60 FD 9000 PC 3 HOME SETH 300 FD 9000 PU SETX - 70 SETY - 44 PD PC 0 PSP 15 40 5 70 PWZ 300 CS PU SETX - 20 SETY 0 PD PSP 40 144 5 155 FIN END TO PSP :N :A :I :L IF :N > :L STOP PST :N :A PSP ( :N + :I ) :A :I :L ENDEPEAT 4 [PR []] END TO FIN PR [+++THE END+++] PWZ 100 HT .DEPOSIT 228 0 .DEPOSIT 229 0 .DEPOSIT 230 1 HT GOODBYE END TO PWZ :TIME IF :TIME < 1 THEN .GCOLL STOP PWZ :TIME - 1 END TO AIL9A SPLITSCREEN PR [I MUST STOP EATING STRANGE THINGS] PWZ 40 :SSIZE ( .EXAMINE :SSIZE ) - 1 ST PWZ 60 LSIZE END TO BSIZE :N ST MAKE "M ( .EXAMINE :SSIZE ) IF ANYOF :M > :N :M = :N THEN STOP HT .DEPOSIT :SSIZE ( .EXAMINE :SSIZE ) + 1 ST PWZ 60 BSIZE :N END TO GSK BSIZE 6 LSIZE SETH RANDOM 60 END TO CTXT REND TO SIZE :N ST HT .DEPOSIT :SSIZE :N ST END TO SETSHAPE :SH HT .SHAPE :SH ST END TO INITSHAPES DOS [BLOAD ALICE.SHAPES] END TO GSP CS INITSHAPES SETSHAPE :ALICE SIZE 1 END TO LSIZE ST MAKE "M ( .EXAMINE :SSIZE ) IF :M < 2 STOP HT .DEPOSITIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MAY NOT BE REPRODUCED] PR [WITHOUT PRIOR WRITTEN AUTHORIZATION] PR [BY THE KRELL SOFTWARE CORP.] PWZ 500 END TO .SHAPE :SH .DEPOSIT :USHAPE REMAINDER :SH 256 .DEPOSIT :USHAPE + 1 QUOTIENT :SH 256 PR [AGAIN? YES OR NO?] CLEARINPUT MAKE "N4 RC IF :N4 = "Y THEN MAKE "N3 1 STOP STOP END TO TITLE :NAME :PT RANDOMIZE CS ND PRINT1 [ALICE IN LOGOLAND ' ' PART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END TO CPYRT REPEAT 14 [PR "] PR [COPYR 5 TO TRAC CLEARINPUT PRINT1 [TO CONTINUE, HIT RETURN] PR RQ END TO XNE :N :L IF :N = 1 OUTPUT FIRST :L OUTPUT XNE ( :N - 1 ) ( BUTFIRST :L ) END TO LENGTH :LIST IF :LIST = [] OUTPUT "0 OUTPUT 1 + LENGTH BUTFIRST :LIST ND END TO TRA MAKE "N3 0   0.) MAKE "X1 (-53.) MAKE "ALICE (39328) MAKE "TEST (39328) *39341) MAKE "FIRST.ADDR (39328) MAKE "FILE "RABBIT MAKE "RABBIT (39328) MAKE "CROC (39328) MAKE "N4 "Y MAKE "N3 (0) MAKE "OM "C MAKE "COM "Q MAKE "USHAPE (228) MAKE "SSIZE (230) MAKE "TIME (2) MAKE "Y2 (0.) MAKE "X2 (0.) MAKE "C (0) MAKE "D (0) MAKE "Y1 (82 (3) MAKE "N1 (2) MAKE "RAT [SETH 150 FD 6 SETH 180 FD 11 RT 90 FD 6 RT 90 FD 11 SETH 30 FD 6 PU] MAKE "FSH [PC 4 PD SETH 90 FD 5 SETH 193 FD 15 SETH 350 FD 15 PU] MAKE "ENDBUF (156) MAKE "X (39328) MAKE "PEN (4) MAKE "LAST.ADDR (39578) MAKE "NEXT.SHAPE (U] PWZ 200 PR [BUT YOU CAN TRY TO ESCAPE] PWZ 400 CS NT END MAKE ":M1 (-111.) MAKE ":M2 (80.) MAKE "X3 (-31.) MAKE "Y3 (0.) MAKE "L1 [AS DF GH] MAKE "L2 [SA FD HG] MAKE "W1 [WERTY] MAKE "NEWLIST [DF GH] MAKE ":L1 (2.5) MAKE "TH [NOW IS THE TIME] MAKE "NL ONE MORE GAME] PWZ 300 PR [YOU ARE THE TURTLE. YOU MUST HUNT THE] PR [SNARK] PWZ 400 CTXT HT PR [THIS IS THE SNARK] PC 1 SNARK PWZ 300 CTXT PR [SOMETIMES THE SNARK IS REALLY A BOOJUM] PWZ 300 CS PR [THIS A BOOJUM] PC 1 BOOJ PWZ 300 PR [HE WILL HUNT YOCOLL STOP PWZ :TIME - 1 END TO TITLE :NAME :PT RANDOMIZE CS ND PRINT1 [ALICE IN LOGOLAND ' ' PART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END TO AIL8 MAKE "TIME 0 TITLE [THE HUNTING OF THE SNARK] [8] MAKE "C 0 DRAW BG 3 PR [LET'S PLAY STILBG 5 PU HOME END TO CPYRT REPEAT 14 [PR "] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MAY NOT BE REPRODUCED] PR [WITHOUT PRIOR WRITTEN AUTHORIZATION] PR [BY THE KRELL SOFTWARE CORP.] PWZ 500 END TO PWZ :TIME IF :TIME < 1 THEN .GELSE BOOJ PU IF :C < .1 THEN GO 5 4: SETXY :X2 - 15 :Y2 + 6 PD PC 1 BOOJ PU PWZ 50 SETXY :X2 :Y2 ST MAKE "X1 XCOR MAKE "Y1 YCOR EVAL :X2 :Y2 5: MAKE "X1 ( - 140 + RANDOM 260 ) MAKE "Y1 ( - 120 + RANDOM 300 ) NT2 6: SETXY :X2 :Y2 ST END TO EFSH CS NTN PMENU WHICH END TO BOOJ SETH 0 PD REPEAT 6 [RT 60 FD 15] PU MAKE "X1 XCOR MAKE "Y1 YCOR END TO SNARK SETH 0 PD REPEAT 4 [RT 90 FD 7] PU END TO NTN PU HT SETXY :X1 :Y1 PC 3 PD IF :D > 1 THEN PC 3 SNARK PU MAKE "D 0 GO 4 IF :C < 1 THEN SNARK PU NT ELSE PR [HE GOT YOU] MAKE "C 0 BG 0 BG 4 PWZ 300 BG 3 CS ST NT 3: IF ( RANDOM 20 ) < 1 MAKE "C 1 BG 4 BG 0 BG 3 MAKE "D 2 NTN PMENU WHICH IF ALLOF ( :TIME < 5 + RANDOM 12 ) ( :C < 1 ) PMENU WHICH IF :C > .1 NTN PMENU WHICH MAKE "TIME 0 PWZ 400 CS 0 ) PU HT SETXY :X1 :Y1 PC 1 PD IF :C < 1 THEN SNARK PU ELSE BOOJ PU HOME ST END TO EVAL :X2 :Y2 IF XCOR < :X1 - 8 GO 3 IF XCOR > :X1 + 8 GO 3 IF YCOR < :Y1 - 12 GO 3 IF YCOR > :Y1 + 4 GO 3 IF :C < .1 MAKE "TIME 0 PR [GOT HIM] BG 4 PWZ 300 BG 3 CS ' '] PRINT1 :TIME END TO NT MAKE "D 0 BG 3 PU HT SETXY - 120 + RANDOM 240 80 PD MAKE "X1 XCOR MAKE "Y1 YCOR SNARK PU HOME ST PMENU WHICH END TO CTXT REPEAT 4 [PR []] END TO NT2 BG 3 MAKE "X1 ( - 120 + RANDOM 240 ) MAKE "Y1 ( - 70 + RANDOM 13 IF :COM = "J THEN FD 50 GO 3 CT .GCOLL 3: MAKE "X2 XCOR MAKE "Y2 YCOR EVAL :X2 :Y2 6: PR " TRA IF :N3 = 1 THEN NT ELSE FIN END TO PMENU CT CTXT PRINT [F=FD 12 R=RT 90 L=LT 90 Q=QUIT N=AGAIN] PRINT1 [J=FD 50 S=INCREASE HEADING BY 45] PRINT1 [' ' TRYIME :TIME + 1 END TO WHICH CLEARINPUT MAKE "COM READCHARACTER IF :COM = "R THEN RT 90 GO 3 IF :COM = "L THEN LT 90 GO 3 IF :COM = "F THEN FD 12 GO 3 IF :COM = "Q THEN GO 6 IF :COM = "N THEN HOME NT GO 3 IF :COM = "S THEN SETH ( HEADING + 45 ) GO 3FIN PR [+++THE END+++] PWZ 100 HT .DEPOSIT 228 0 .DEPOSIT 229 0 .DEPOSIT 230 1 HT GOODBYE END TO .SHAPE :SH .DEPOSIT :USHAPE REMAINDER :SH 256 .DEPOSIT :USHAPE + 1 QUOTIENT :SH 256 END TO SIZE :N ST HT .DEPOSIT :SSIZE :N ST END TO CT MAKE "T PR [PLAY AGAIN? YES OR NO?] CLEARINPUT MAKE "N4 RC IF :N4 = "Y THEN MAKE "N3 1 STOP STOP END TO WT CLEARINPUT MAKE "OM RC 3: IF :OM = "C THEN MENU GO 3 END TO MENU PMENU WHICH END TO RP MAKE "COM RC IF ASCII :COM > 31 THEN MENU RP END TO 7TO TRAC CLEARINPUT PRINT1 [TO CONTINUE, HIT RETURN] PR RQ END TO XNE :N :L IF :N = 1 OUTPUT FIRST :L OUTPUT XNE ( :N - 1 ) ( BUTFIRST :L ) END TO LENGTH :LIST IF :LIST = [] OUTPUT "0 OUTPUT 1 + LENGTH BUTFIRST :LIST ND END TO TRA MAKE "N3 0       2) MAKE "N4 "N MAKE "N3 (0) MAKE "TEST (39328) MAKE "ALICE (39328) MAKE "RAT [SETH 150 FD 6 SETH 180 FD 11 RT 90 FD 6 RT 90 FD 11 SETH 30 FD 6 PU] MAKE "OM "C MAKE "R (0) MAKE "COM "Q MAKE "USHAPE (228) MAKE "SSIZE (230) MAKE "T (.1) MAKE "Y1 (-30) MAKE "X1 (68) MAKE "Y2 (0.) MAKE "X2 (0.) MAKE "TIME (BIT MAKE "RABBIT (39328) MAKE "CROC (39328) MAKE "N1 (2) MAKE "N2 (3) MAKE "TH [NOW IS THE TIME] MAKE ":L1 (2.5) MAKE "NEWLIST [DF GH] MAKE "W1 [WERTY] MAKE "L2 [SA FD HG] MAKE "L1 [AS DF GH] MAKE "Y3 (0.) MAKE "X3 (-31.) MAKE ":M2 (80.) MAKE ":M1 (-111.) RATS] PWZ 30 PR [PLEASE HELP HIM] PWZ 400 NT END MAKE "FSH [PC 4 PD SETH 90 FD 5 SETH 193 FD 15 SETH 350 FD 15 PU] MAKE "ENDBUF (156) MAKE "X (39328) MAKE "PEN (4) MAKE "LAST.ADDR (39578) MAKE "NEXT.SHAPE (39341) MAKE "FIRST.ADDR (39328) MAKE "FILE "RABRUN :RAT HOME ST PMENU WHICH END TO AIL7Z NT END TO AIL7 SETSHAPE 0 MAKE "TIME 0 TITLE [AS SURE AS FERRETS ARE FERRETS] [7] DRAW BG 3 PR [LET'S PLAY YET ANOTHER GAME] PWZ 300 PR [PRETEND THAT THE TURTLE IS A FERRET] PWZ 300 PR [HE WANTS TO CATCH TO TRAC CLEARINPUT PRINT1 [TO CONTINUE, HIT RETURN] PR RQ END TO NT RANDOMIZE MAKE "TIME 0 CS BG 3 PU HT SETXY ( - 120 + RANDOM 240 ) ( - 80 + RANDOM 160 ) PC 1 PD MAKE "RAT [SETH 150 FD 6 SETH 180 FD 11 RT 90 FD 6 RT 90 FD 11 SETH 30 FD 6 PU] AGAIN? YES OR NO?] CLEARINPUT MAKE "N4 RC IF :N4 = "Y THEN MAKE "N3 1 STOP STOP END TO LENGTH :LIST IF :LIST = [] OUTPUT "0 OUTPUT 1 + LENGTH BUTFIRST :LIST ND END TO XNE :N :L IF :N = 1 OUTPUT FIRST :L OUTPUT XNE ( :N - 1 ) ( BUTFIRST :L ) END " PR [GOT HIM] PWZ 300 CS NT 3: MAKE "T :TIME / ( 6 + RANDOM 5 ) IF :T = INTEGER :T PWZ 400 CS NTN PMENU WHICH END TO EFSH CS BG 5 PU HOME END TO CT MAKE "TIME :TIME + 1 END TO INITSHAPES DOS [BLOAD RABBIT.SHAPES] END TO TRA MAKE "N3 0 PR [PLAYY1 ( - 120 + RANDOM 300 ) NT2 SETXY :X2 :Y2 ST END TO PWZ :TIME IF :TIME < 1 THEN .GCOLL STOP PWZ :TIME - 1 END TO EVAL :X2 :Y2 IF XCOR < :X1 - 8 GO 3 IF XCOR > :X1 + 8 GO 3 IF YCOR < :Y1 - 8 GO 3 IF YCOR > :Y1 + 8 GO 3 BG 4 BG 3 MAKE "TIME 0 PR AIL7Z ELSE FIN END TO PMENU CT CTXT PRINT [F=FD 12 R=RT 90 L=LT 90 Q=QUIT N=AGAIN] PRINT1 [J=FD 50 S=INCREASE HEADING BY 45] PRINT1 [' TRY '] PRINT1 :TIME END TO NTN BG 3 PU HT SETXY :X1 :Y1 PC 3 PD RUN :RAT MAKE "X1 ( - 140 + RANDOM 260 ) MAKE "HEN LT 90 GO 3 IF :COM = "F THEN FD 12 GO 3 IF :COM = "Q THEN GO 6 IF :COM = "N THEN HOME NT GO 3 IF :COM = "S THEN SETH ( HEADING + 45 ) GO 3 IF :COM = "J THEN FD 50 GO 3 CT .GCOLL 3: MAKE "X2 XCOR MAKE "Y2 YCOR EVAL :X2 :Y2 6: PR " TRA IF :N3 = 1230 1 HT GOODBYE END TO .SHAPE :SH .DEPOSIT :USHAPE REMAINDER :SH 256 .DEPOSIT :USHAPE + 1 QUOTIENT :SH 256 END TO SIZE :N ST HT .DEPOSIT :SSIZE :N ST END TO WHICH CLEARINPUT MAKE "COM READCHARACTER IF :COM = "R THEN RT 90 GO 3 IF :COM = "L TPR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MAY NOT BE REPRODUCED] PR [WITHOUT PRIOR WRITTEN AUTHORIZATION] PR [BY THE KRELL SOFTWARE CORP.] PWZ 500 END TO FIN PR [+++THE END+++] PWZ 100 HT .DEPOSIT 228 0 .DEPOSIT 229 0 .DEPOSIT XY :X1 :Y1 PC 1 PD RUN :RAT HOME ST END TO WT CLEARINPUT MAKE "OM RC 3: IF :OM = "C THEN MENU GO 3 END TO MENU PMENU WHICH END TO RP MAKE "COM RC IF ASCII :COM > 31 THEN MENU RP END TO CTXT REPEAT 4 [PR []] END TO CPYRT REPEAT 14 [PR "] +TO SETSHAPE :SH HT .SHAPE :SH ST END TO TITLE :NAME :PT RANDOMIZE CS ND PRINT1 [ALICE IN LOGOLAND ' ' PART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END TO NT2 BG 3 MAKE "X1 ( - 120 + RANDOM 240 ) MAKE "Y1 ( - 70 + RANDOM 130 ) PU HT SET     "X1 (-55) MAKE "TIME (1) MAKE "TEST (39328) KE "LAST.ADDR (39578) MAKE "NEXT.SHAPE (39341) MAKE "FIRST.ADDR (39328) MAKE "FILE "RABBIT MAKE "CROC (39328) MAKE "N4 "Y MAKE "ALICE (39328) MAKE "RABBIT (39328) MAKE "OM "C MAKE "N3 (0) MAKE "COM "Q MAKE "USHAPE (228) MAKE "SSIZE (230) MAKE "Y1 (20) MAKETY] MAKE "L2 [SA FD HG] MAKE "L1 [AS DF GH] MAKE "Y3 (0.) MAKE "X3 (-31.) MAKE "Y2 (40.) MAKE "X2 (-51.) MAKE ":M2 (80.) MAKE ":M1 (-111.) MAKE "FSH [PC 4 PD SETH 90 FD 5 SETH 193 FD 15 SETH 350 FD 15 PU] MAKE "ENDBUF (156) MAKE "X (39328) MAKE "PEN (4) MAz#?   îîϠ ήӠ ԮخϠ ԮӠ  ñخϠ ñӠ ӮϠ ԲӠ Ϡ ӮخϠ îΠ   ̷Ϡ ̸Ϡ ̹Ϡ ŮخϠ ŮӠ ŮӠ îӠ  ̲Ϡ̲®Ϡ ̳Ϡ̳Ϡ ̴Ϡ̵Ϡ  ̶Ϡ ̱Ϡ  ̱Ϡ̱Ϡ̱Ϡ̱Ϡ̲Ϡ̲Ϡ "̱Ϡ!̱Ϡ ̱Ϡ ̱Ϡ̱Ϡ ̱Ϡ̱Ϡ INITSHAPES SETSHAPE :RABBIT DRAW BG 5 PR [THE RABBIT WANTS TO GET CARROTS] PWZ 300 PR [BUT HE IS LATE AND YOU MUST HELP] PWZ 400 NT PMENU WHICH END MAKE "N1 (2) MAKE "N2 (3) MAKE "TH [NOW IS THE TIME] MAKE ":L1 (2.5) MAKE "NEWLIST [DF GH] MAKE "W1 [WER 130 ) PU HT SETXY :X1 :Y1 PC 1 PD PC 4 SETH 90 FD 4 BK 2 RT 90 FD 9 PU HOME ST END TO AIL6Z NT PMENU WHICH END TO AIL6 MAKE "TIME 0 TITLE [THE WHITE RABBIT] [6] DRAW BG 4 PR [LET'S PLAY ANOTHER GAME TO MASTER SOME] PR [GRAPHICS COMMANDS] PWZ 400 TRA IF :N3 = 1 THEN AIL6Z ELSE FIN END TO PMENU CT CTXT PRINT [F=FD 12 R=RT 90 L=LT 90 Q=QUIT N=AGAIN] PRINT1 [J=FD 50 S=INCREASE HEADING BY 45] PRINT1 [' TIME '] PRINT1 :TIME END TO NT BG 3 MAKE "X1 ( - 120 + RANDOM 240 ) MAKE "Y1 ( - 70 + RANDOMF :COM = "R THEN RT 90 GO 3 IF :COM = "L THEN LT 90 GO 3 IF :COM = "F THEN FD 12 GO 3 IF :COM = "Q THEN GO 6 IF :COM = "N THEN HOME NT GO 3 IF :COM = "S THEN SETH ( HEADING + 45 ) GO 3 IF :COM = "J THEN FD 50 GO 3 CT .GCOLL 3: EVAL PMENU WHICH 6:T MAKE "TIME :TIME + 1 END TO .SHAPE :SH .DEPOSIT :USHAPE REMAINDER :SH 256 .DEPOSIT :USHAPE + 1 QUOTIENT :SH 256 END TO SETSHAPE :SH HT .SHAPE :SH ST END TO INITSHAPES DOS [BLOAD RABBIT.SHAPES] END TO WHICH CLEARINPUT MAKE "COM READCHARACTER IWZ :TIME IF :TIME < 1 THEN .GCOLL STOP PWZ :TIME - 1 END TO EVAL IF XCOR < :X1 - 8 GO 3 IF XCOR > :X1 + 8 GO 3 IF YCOR < :Y1 - 8 GO 3 IF YCOR > :Y1 + 8 GO 3 PR "MUNCH PWZ 300 MAKE "TIME 0 EFSH 3: PMENU WHICH END TO EFSH CS BG 5 PU HOME END TO C TO TRA MAKE "N3 0 PR [PLAY AGAIN? YES OR NO?] CLEARINPUT MAKE "N4 RC IF :N4 = "Y THEN MAKE "N3 1 STOP STOP END TO MENU PMENU WHICH END TO RP MAKE "COM RC IF ASCII :COM > 31 THEN MENU RP END TO SIZE :N ST HT .DEPOSIT :SSIZE :N ST END TO PPART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END TO WT CLEARINPUT MAKE "OM RC 3: IF :OM = "C THEN MENU GO 3 END TO CTXT REPEAT 4 [PR []] END TO FIN PR [+++THE END+++] PWZ 100 HT .DEPOSIT 228 0 .DEPOSIT 229 0 .DEPOSIT 230 1 HT GOODBYE END ROGRAM MAY NOT BE REPRODUCED] PR [WITHOUT PRIOR WRITTEN AUTHORIZATION] PR [BY THE KRELL SOFTWARE CORP.] PWZ 500 END TO TRAC CLEARINPUT PRINT1 [TO CONTINUE, HIT RETURN] PR RQ END TO TITLE :NAME :PT RANDOMIZE CS ND PRINT1 [ALICE IN LOGOLAND ' ' ) TO LENGTH :LIST IF :LIST = [] OUTPUT "0 OUTPUT 1 + LENGTH BUTFIRST :LIST ND END TO XNE :N :L IF :N = 1 OUTPUT FIRST :L OUTPUT XNE ( :N - 1 ) ( BUTFIRST :L ) END TO CPYRT REPEAT 14 [PR "] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS P   D 24 LT 90 FD 7 PU] MAKE "N4 "N MAKE "N3 (0) MAKE "OM "C MAKE "COM "Q MAKE "ALICE (39328) MAKE "USHAPE (228) MAKE "SSIZE (230) MAKE "Y1 (-17) MAKE "X1 (48) MAKE "TEST (39328) IME] MAKE "N2 (3) MAKE "N1 (2) MAKE "ENDBUF (156) MAKE "X (39328) MAKE "PEN (4) MAKE "LAST.ADDR (39578) MAKE "NEXT.SHAPE (39414) MAKE "FIRST.ADDR (39328) MAKE "FILE "CROC MAKE "CROC (39328) MAKE "FSH [PC 1 PD SETH 330 FD 9 LT 75 FD 20 RT 110 FD 10 RT 130 FYOU MUST HELP] PWZ 400 NT PMENU WHICH END MAKE ":M1 (-111.) MAKE ":M2 (80.) MAKE "X2 (-51.) MAKE "Y2 (40.) MAKE "X3 (-31.) MAKE "Y3 (0.) MAKE "L1 [AS DF GH] MAKE "L2 [SA FD HG] MAKE "W1 [WERTY] MAKE "NEWLIST [DF GH] MAKE ":L1 (2.5) MAKE "TH [NOW IS THE T EFSH CS BG 5 PU HOME END TO AIL5 TITLE [HOW DOTH THE LITTLE CROCODILE] [5] DRAW BG 3 PR [LET'S PLAY A GAME TO MASTER SOME] PR [GRAPHICS COMMANDS] PWZ 400 INITSHAPES SETSHAPE :CROC SIZE 1 DRAW BG 5 PR [THE CROCODILE WANTS TO CATCH FISH] PWZ 300 PR [ ELSE FIN END TO PMENU CTXT PR [F= FD 12 R=RT 90 L=LT 90 Q=QUIT N=AGAIN] PR [J = FD 50 S = INCREASE HEADING BY 45] END TO EVAL IF XCOR < :X1 - 8 GO 3 IF XCOR > :X1 + 8 GO 3 IF YCOR < :Y1 - 8 GO 3 IF YCOR > :Y1 + 8 GO 3 EFSH 3: PMENU WHICH END TOEADCHARACTER IF :COM = "R THEN RT 90 IF :COM = "L THEN LT 90 IF :COM = "F THEN FD 12 IF :COM = "Q THEN GO 6 IF :COM = "N THEN HOME NT IF :COM = "S THEN SETH ( HEADING + 45 ) IF :COM = "J THEN FD 50 .GCOLL EVAL PMENU WHICH 6: TRA IF :N3 = 1 AIL5ZINITSHAPES DOS [BLOAD CROC1.SHAPES] END TO SETSHAPE :SH HT .SHAPE :SH ST END TO .SHAPE :SH .DEPOSIT :USHAPE REMAINDER :SH 256 .DEPOSIT :USHAPE + 1 QUOTIENT :SH 256 END TO SIZE :N ST HT .DEPOSIT :SSIZE :N ST END TO WHICH CLEARINPUT MAKE "COM R[WITHOUT PRIOR WRITTEN AUTHORIZATION] PR [BY THE KRELL SOFTWARE CORP.] PWZ 500 END TO PWZ :TIME IF :TIME < 1 THEN .GCOLL STOP PWZ :TIME - 1 END TO FIN PR [+++THE END+++] PWZ 100 HT .DEPOSIT 228 0 .DEPOSIT 229 0 .DEPOSIT 230 1 HT GOODBYE END TO [PR []] END TO TITLE :NAME :PT RANDOMIZE CS ND PRINT1 [ALICE IN LOGOLAND ' ' PART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END TO CPYRT REPEAT 14 [PR "] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MAY NOT BE REPRODUCED] PR N? YES OR NO?] CLEARINPUT MAKE "N4 RC IF :N4 = "Y THEN MAKE "N3 1 STOP STOP END TO WT CLEARINPUT MAKE "OM RC 3: IF :OM = "C THEN MENU GO 3 END TO MENU PMENU WHICH END TO RP MAKE "COM RC IF ASCII :COM > 31 THEN MENU RP END TO CTXT REPEAT 4 EARINPUT PRINT1 [TO CONTINUE, HIT RETURN] PR RQ END TO XNE :N :L IF :N = 1 OUTPUT FIRST :L OUTPUT XNE ( :N - 1 ) ( BUTFIRST :L ) END TO LENGTH :LIST IF :LIST = [] OUTPUT "0 OUTPUT 1 + LENGTH BUTFIRST :LIST ND END TO TRA MAKE "N3 0 PR [PLAY AGAI TO AIL5Z NT PMENU WHICH END TO NT MAKE "X1 ( - 120 + RANDOM 240 ) MAKE "Y1 ( - 70 + RANDOM 130 ) PU HT SETXY :X1 :Y1 PC 1 PD MAKE "FSH [PC 1 PD SETH 330 FD 9 LT 75 FD 20 RT 110 FD 10 RT 130 FD 24 LT 90 FD 7 PU] RUN :FSH HOME ST END TO TRAC CL   "USHAPE (228) MAKE "QUEEN (39328) MAKE "PWT [2100 200 100 2300 200 1000 3000 1900] MAKE "PHT [6 5 4 6000 5 6000 7000 5300] MAKE "N4 "Y MAKE "N3 (0) MAKE "TEST (39328) 328) ST (39328) T USE LOGO CONDITIONALS] PWZ 400 AIL4A END MAKE "QUEEN (39328) MAKE "USHAPE (228) MAKE "SSIZE (230) GH] MAKE "Y3 (0.) MAKE "X3 (-31.) MAKE "Y2 (40.) MAKE "X2 (-51.) MAKE "Y1 (80.) MAKE "X1 (-64.) MAKE ":M2 (80.) MAKE ":M1 (-111.) MAKE "SSIZE (230) MAKE PC 0 BG 4 DRAW PR [THIS IS THE QUEEN OF HEARTS] PWZ 300 CTXT PR [SHE IS HAVING A TRIAL AND WANTS ALICE] PR [KEPT OUT] PWZ 400 PWZ 200 CTXT PR [THE QUEEN MAKES A RULE (42) TO EXCLUDE] PR [EVERYONE MORE THAN A MILE HIGH] PWZ 400 PWZ 300 CTXT PR [SHE MUST :SSIZE :N END TO .SHAPE :SH .DEPOSIT :USHAPE REMAINDER :SH 256 .DEPOSIT :USHAPE + 1 QUOTIENT :SH 256 END TO SETSHAPE :SH HT .SHAPE :SH END TO INITSHAPES DOS [BLOAD QUEEN.SHAPES] END TO AIL4 INITSHAPES SETSHAPE :QUEEN SIZE 3 TITLE [RULE 42] [4] [BY THE KRELL SOFTWARE CORP.] PWZ 500 END TO PWZ :TIME IF :TIME < 1 THEN .GCOLL STOP PWZ :TIME - 1 END TO TITLE :NAME :PT RANDOMIZE CS ND PRINT1 [ALICE IN LOGOLAND ' ' PART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END TO SIZE :N HT .DEPOSIB .EXAMINE :USHAPE + 1 .SHAPE 1 HT .DEPOSIT :USHAPE :A .DEPOSIT ( :USHAPE + 1 ) :B ST END TO CPYRT REPEAT 14 [PR "] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MAY NOT BE REPRODUCED] PR [WITHOUT PRIOR WRITTEN AUTHORIZATION] PR R MORE THAN A TON] PWZ 300 .DEPOSIT 34 0 ND PO AIL4E .DEPOSIT 34 12 TRAC AIL4E 8 FIN .DEPOSIT 34 0 END TO FIN PR [+++THE END+++] PWZ 100 HT .DEPOSIT 228 0 .DEPOSIT 229 0 .DEPOSIT 230 1 HT GOODBYE END TO STAMP.IMAGE MAKE "A .EXAMINE :USHAPE MAKE "POSIT 34 0 ND PO AIL4C .DEPOSIT 34 10 TRAC AIL4C 8 CTXT PR [TO REJECT THOSE BOTH MORE THAN A MILE] PR [HIGH AND HEAVIER THAN A TON] PWZ 300 .DEPOSIT 34 0 ND PO AIL4D .DEPOSIT 34 11 TRAC AIL4D 8 CTXT PR [TO REJECT THOSE EITHER MORE THAN A MILE] PR [HIGH OE THERE ARE 8 PEOPLE] PWZ 300 PR [HERE ARE THEIR HEIGHTS AND WEIGHTS] PWZ 400 AIL4B1 8 PR [THE QUEEN TESTS THEIR HEIGHT] PWZ 300 ND PO AIL4B .DEPOSIT 34 10 TRAC AIL4B 8 CTXT PR [IF SHE WANTS TO REJECT THOSE WHO WEIGH] PR [MORE THAN 2000] PWZ 300 .DE1 [' ' WEIGHT ' '] IF ANYOF ( :N = 2 ) ( :N = 3 ) THEN PRINT1 [' '] IF :N = 5 THEN PRINT1 [' '] PR XNE :N :PWT PWZ 50 AIL4B1 :N - 1 END TO AIL4A MAKE "PHT [6 5 4 6000 5 6000 7000 5300] MAKE "PWT [2100 200 100 2300 200 1000 3000 1900] ND PR [SUPPOS PR [] PWZ 400 AIL4B :N - 1 END TO AIL4B1 :N IF :N < 1 THEN STOP PRINT1 [PERSON ' '] PRINT1 :N PRINT1 [' ' HEIGHT ' '] IF ANYOF ( :N = 1 ) ( :N = 2 ) THEN PRINT1 [' '] IF ANYOF ( :N = 3 ) ( :N = 5 ) THEN PRINT1 [' '] PRINT1 XNE :N :PHT PRINT CTXT REPEAT 4 [PR []] END TO TRAC CLEARINPUT PRINT1 [TO CONTINUE, HIT RETURN] PR RQ END TO AIL4B :N IF :N < 1 THEN STOP PRINT1 [PERSON ' '] PRINT1 :N PRINT1 [' ' HEIGHT ' '] PR XNE :N :PHT IF XNE :N :PHT > 5280 THEN PRINT [REJECT] ELSE PR [OK] [REJECT] ELSE PR [OK] PR [] PWZ 300 AIL4D :N - 1 END TO AIL4C :N IF :N < 1 THEN STOP PRINT1 [PERSON ' '] PRINT1 :N PRINT1 [' ' WEIGHT ' '] PR XNE :N :PWT IF XNE :N :PWT > 2000 THEN PRINT [REJECT] ELSE PR [OK] PR [] PWZ 400 AIL4C :N - 1 END TOPR [OK] PR [] PWZ 300 AIL4E :N - 1 END TO AIL4D :N IF :N < 1 THEN STOP PRINT1 [PERSON ' '] PRINT1 :N PRINT1 [' ' HEIGHT ' '] PRINT1 XNE :N :PHT PRINT1 [' ' WEIGHT ' '] PR XNE :N :PWT IF ALLOF ( XNE :N :PHT > 5280 ) ( XNE :N :PWT > 2000 ) THEN PRINT - 1 ) ( BUTFIRST :L ) END TO AIL4E :N IF :N < 1 THEN STOP PRINT1 [PERSON ' '] PRINT1 :N PRINT1 [' ' HEIGHT ' '] PRINT1 XNE :N :PHT PRINT1 [' ' WEIGHT ' '] PR XNE :N :PWT IF ANYOF ( XNE :N :PHT > 5280 ) ( XNE :N :PWT > 2000 ) THEN PRINT [REJECT] ELSE aTO LENGTH :LIST IF :LIST = [] OUTPUT "0 OUTPUT 1 + LENGTH BUTFIRST :LIST ND END TO TRA MAKE "N3 0 PR [AGAIN? YES OR NO?] CLEARINPUT MAKE "N4 RC IF :N4 = "Y THEN MAKE "N3 1 STOP STOP END TO XNE :N :L IF :N = 1 OUTPUT FIRST :L OUTPUT XNE ( :N      END MAKE ":ZX (24) MAKE ":XC (114) MAKE ":YC (33) MAKE "ZX (96) MAKE "TH [NOW IS THE TIME] MAKE ":L1 (2.5) MAKE ":R2 (1.6182) MAKE "YC (24) MAKE "XC (96) S] PU SETX - 100 PD PSP 70 45 .5 0 PR [SHE CAN CHANGE PEN COLOR WITH PC] PWZ 300 PR [SHE CAN CHANGE BACKGROUND COLOR WITH BG] PWZ 260 PR [EXAMPLES] PWZ 60 BG 1 PR [BG 1] PWZ 100 BG 3 PR [BG 3] PWZ 100 PC 0 BG 5 CS CIRCLE 93 0 18 FD 8 SETH 180 AIL3A 90 REPEAT 120 / :SIZE [FD 270 RT 90 FD :SIZE RT 90 FD 270 LT 90 FD :SIZE LT 90] LT 90 FD 10 REPEAT 140 / :SIZE [FD 230 RT 90 FD :SIZE RT 90 FD 230 LT 90 FD :SIZE LT 90] END TO AIL3 TITLE [LATITUDE & LONGITUDE] DRAW PR [AS ALICE FALLS SHE SEES COLOR:TIME - 1 END TO PSP :S :A :I :B PC 2 + RANDOM 4 BG :B PST :S :A IF :S < 4 STOP PSP ( :S - :I ) :A :I :B END TO TITLE :NAME CS ND PR :NAME PWZ 100 CPYRT END TO PST :S :A FD :S RT :A END TO DES :SIZE FULLSCREEN CS PU SETXY - 139 119 PD SETH3A PR [AS SHE FALLS, ALICE WONDERS IF SHE WILL EVER STOP.] PWZ 400 PR [] PR [IF THE HOLE GOES ALL THE WAY THROUGH] PR [THE CENTER OF THE EARTH, HER PATH] PWZ 240 PR [WILL LOOK LIKE THIS] PWZ 300 OSC 30 100 END TO PWZ :TIME IF :TIME < 1 THEN STOP PWZ H 0 FD :R MAKE ":R2 :R * 1.74N2 PD SETH 90 CIRCLE2 :R * 1.74N2 END TO CIRCLE2 :R2 REPEAT 40 [FD (:R2*9) RT 9] END TO CTB PR [RADIUS TOO BIG] TOPLEVEL END TO SFD :DIST :SPEED IF :DIST < 1 THEN STOP REPEAT :DIST [FD 5 PWZ 100 - :SPEED] END TO AILATION] PR [BY THE KRELL SOFTWARE CORP.] PWZ 500 END TO FIN PR [+++THE END+++] PWZ 100 END TO CIRCLE :R :XC :YC IF :XC + :R > 139 THEN CTB IF :XC - :R < - 140 THEN CTB IF :YC + :R > 120 THEN CTB IF :YC - :R < - 119 THEN CTB PU SETXY :XC :YC SET TO OSC :D :S PU PWZ 2 SFD :D :S RT 180 SFD :D - 3 :S RT 180 IF :D < 6 THEN STOP OSC :D - 5 :S END TO CPYRT REPEAT 14 [PR "] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MAY NOT BE REPRODUCED] PR [WITHOUT PRIOR WRITTEN AUTHORIZ     MAKE "Y1 (80.) MAKE "X1 (-64.) MAKE ":M2 (80.) MAKE ":M1 (-111.) MAKE "N4 "Y MAKE "N3 (0) UBG 3] PWZ 100 PC 0 BG 5 CS CIRCLE 93 0 18 FD 8 SETH 180 AIL3A END MAKE "XCL (3) MAKE ":R2 (1.6182) MAKE "XC (1) MAKE "NEWLIST [DF GH] MAKE "W1 [WERTY] MAKE "L2 [SA FD HG] MAKE "L1 [AS DF GH] MAKE "Y3 (0.) MAKE "X3 (-31.) MAKE "Y2 (40.) MAKE "X2 (-51.) E & LONGITUDE] [3] DRAW PR [AS ALICE FALLS SHE SEES COLORS] PU SETX - 100 PD PSP 70 45 .5 0 ST PR [SHE CAN CHANGE PEN COLOR WITH PC] PWZ 300 PR [SHE CAN CHANGE BACKGROUND COLOR WITH BG] PWZ 260 PR [EXAMPLES] PWZ 60 BG 1 PR [BG 1] PWZ 100 BG 3 PR [HEN .GCOLL STOP PWZ :TIME - 1 END TO OSC :D :S PU PWZ 2 SFD1 :D :S RT 180 SFD1 :D - 3 :S RT 180 IF :D < 6 THEN STOP OSC :D - 5 :S END TO CIRCLE2 :R2 REPEAT 40 [FD (:R2*9) RT 9] END TO CTB PR [RADIUS TOO BIG] TOPLEVEL END TO AIL3 TITLE [LATITUD400 PR [] PR [IF THE HOLE GOES ALL THE WAY THROUGH] PR [THE CENTER OF THE EARTH, HER PATH] PWZ 240 PR [WILL LOOK LIKE THIS] PWZ 300 OSC 30 100 AIL3B END TO SFD1 :DIST :SPEED IF :DIST < 1 THEN STOP REPEAT :DIST [FD 5] END TO PWZ :TIME IF :TIME < 1 T 250 PR [IF ALICE STARTS AT THE NORTH POLE,] PR [ONLY HER LATITUDE WILL CHANGE] PWZ 400 PR [LET'S DRAW MAPS. FIRST LINES OF LAT-] PR [ITUDE, THEN LONGITUDE] PWZ 400 AIL3C 5 FIN END TO AIL3A PR [AS SHE FALLS, ALICE WONDERS IF SHE WILL EVER STOP.] PWZ R * 1.74N2 END TO PST :S :A HT FD :S RT :A END TO PSP :S :A :I :B PC 2 + RANDOM 4 BG :B PST :S :A IF :S < 4 STOP PSP ( :S - :I ) :A :I :B END TO AIL3B CS BG 0 PC 2 PU HT CIRCLE 93 0 15 PR [ALICE IS CONFUSED ABOUT LATITUDE AND] PR [LONGITUDE] PWZXC = :XCL GO 4 DES 17 AIL3C :N - 1 END TO CIRCLE :R :XC :YC IF :XC + :R > 139 THEN CTB IF :XC - :R < - 140 THEN CTB IF :YC + :R > 120 THEN CTB IF :YC - :R < - 119 THEN CTB PU SETXY :XC :YC SETH 0 FD :R MAKE ":R2 :R * 1.74N2 PD SETH 90 CIRCLE2 :.DEPOSIT 228 0 .DEPOSIT 229 0 .DEPOSIT 230 1 GOODBYE END TO AIL3C :N IF :N < 1 THEN STOP CTXT CS CIRCLE 93 0 15 3: MAKE "XCL XNE 3 TURTLESTATE 4: PC RANDOM 6 MAKE "XC XNE 3 TURTLESTATE BG RANDOM 6 IF XNE 3 TURTLESTATE = XNE 4 TURTLESTATE GO 3 IF :PR [LATITUDE] REPEAT 120 / :SIZE [FD 270 RT 90 FD :SIZE RT 90 FD 270 LT 90 FD :SIZE LT 90] LT 90 FD 10 PR [] PR [] PR [LONGITUDE] REPEAT 140 / :SIZE [FD 230 RT 90 FD :SIZE RT 90 FD 230 LT 90 FD :SIZE LT 90] END TO FIN PR [+++THE END+++] PWZ 100 HT T1 [ALICE IN LOGOLAND ' ' PART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END TO XNE :N :L IF :N = 1 OUTPUT FIRST :L OUTPUT XNE ( :N - 1 ) ( BUTFIRST :L ) END TO CTXT REPEAT 4 [PR []] END TO DES :SIZE PU SETXY - 139 119 PD SETH 90 PR [] PR [] P.] PWZ 500 END TO LENGTH :LIST IF :LIST = [] OUTPUT "0 OUTPUT 1 + LENGTH BUTFIRST :LIST ND END TO TRA MAKE "N3 0 PR [AGAIN? YES OR NO?] CLEARINPUT MAKE "N4 RC IF :N4 = "Y THEN MAKE "N3 1 STOP STOP END TO TITLE :NAME :PT RANDOMIZE CS ND PRIN o TO TRAC CLEARINPUT PRINT1 [TO CONTINUE, HIT RETURN] PR RQ END TO CPYRT REPEAT 14 [PR "] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MAY NOT BE REPRODUCED] PR [WITHOUT PRIOR WRITTEN AUTHORIZATION] PR [BY THE KRELL SOFTWARE COR      FD 120 PWZ 300] MAKE "PG1 [LT 60 FD 50 PWZ 200 RT 135 FD 130] MAKE "PG [HOME CS FD 20 RT 90 FD 50 PWZ 50 RT 135 FD 50 RT 90 FD 130 RT 120 FD 25] MAKE ":X (293) MAKE "X (237) 100] PWZ 400 BK 100 PWZ 290 PR [THE COMMAND HOME DOES THIS] PWZ 300 HOME PR [YOU CAN CLEAR THE SCREEN WITH CS] PWZ 300 CS PWZ 200 PR [TO CHANGE THE TURTLE'S DIRECTION, SET ' ' HIS HEADING WITH SETH] PWZ 260 AIL2A END MAKE "PG2 [PU LT 90 FD 40 RT 180 TITLE [DOWN THE RABBIT HOLE] DRAW PR [THIS IS THE LOGO TURTLE] PWZ 180 PR [YOU CAN MOVE HIM FORWARD IN THE DIRECT- ION HE POINTS WITH THE COMMAND FD] PWZ 200 PR [EXAMPLE FD 30] PWZ 230 FD 30 PWZ 250 PR [TO MOVE BACKWARDS USE BK] PWZ 300 PR [EXAMPLE BK] PWZ 320 PR [LET'S TRY A SIMPLE PROGRAM] MAKE "PG [HOME CS FD 20 RT 90 FD 50 PWZ 50 RT 135 FD 50 RT 90 FD 130 RT 120 FD 25] PRINT :PG PWZ 400 RUN :PG MAKE "PG1 [LT 60 FD 30 PWZ 200 RT 135 FD 130] PWZ 200 PR [OR] PR :PG1 RUN :PG1 AIL2C END TO AIL2 AIL2B END TO EXSH MAKE "X RANDOM 360 PWZ 320 PRINT1 [SETH] PRINT1 [' '] PR :X SETH :X END TO PWZ :TIME IF :TIME < 1 THEN .GCOLL STOP PWZ :TIME - 1 END TO AIL2B PWZ 320 PR [THE TURTLE MAY BE TURNED RIGHT OR LEFT] PWZ 360 PR [BY ANY # OF DEGREES.RP.] PWZ 500 END TO FIN PR [+++THE END+++] PWZ 100 END TO TITLE :NAME CS ND PR :NAME PWZ 100 CPYRT END TO AIL2A PWZ 233 PR [SETH 0 '' POINTS HIM NORTH. SETH 90 POINTS HIM THIS WAY] PWZ 350 SETH 90 PWZ 190 PR [EXAMPLES] PWZ 480 REPEAT 8 [EXSH] 0] PWZ 400 PD HOME HT FD 20 LT 90 FD 100 PWZ 400 PWZ 400 AIL2D END TO CPYRT REPEAT 14 [PR "''] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MAY NOT BE REPRODUCED] PR [WITHOUT PRIOR WRITTEN AUTHORIZATION] PR [BY THE KRELL SOFTWARE CO TO AIL2C PWZ 400 CS PR [YOU CAN MOVE THE TURTLE WITHOUT DRAWING] PWZ 300 PU HOME MAKE "PG2 [PU LT 90 FD 40 RT 180 FD 120 PWZ 300] PR :PG2 RUN :PG2 PWZ 400 CS PR [YOU CAN MAKE THE TURTLE DISAPPEAR WITH '' HT] PR [EXAMPLE PD HOME HT FD 20 LT 90 FD 10"Z (0) MAKE "L1 [FD RT LT SETH BK SETX SETY] MAKE "CDML [7 5 6 4 6 3 4] MAKE "C1 [SETY 100] MAKE "N4 "N MAKE "N3 (0) MAKE "Y1 (80.) MAKE "X2 (-51.) MAKE "Y2 (40.) MAKE "X3 (-31.) MAKE "Y3 (0.) MAKE "L2 [SA FD HG] MAKE "W1 [WERTY] MAKE "NEWLIST [DF GH] MAKE ":L1 (2.5) MAKE "TH [NOW IS THE TIME] MAKE "N2 (3) MAKE "N1 (2) MAKE "ML1 [MFD MRT MLT MSETH MBK MSETX MSETY] MAKE 0 PWZ 300 CTXT PR [YOU MUST EXPERIMENT TO DISCOVER WHICH] PR [IS WHICH] PWZ 300 PR [] PR [TO LEARN THE ANSWER, ENTER THE] PR [COMMAND ANSWER] PWZ 400 PWZ 400 PLAY END MAKE "USHAPE (228) MAKE "SSIZE (230) MAKE ":M1 (-111.) MAKE ":M2 (80.) MAKE "X1 (-64.)MANDS YOU MAY USE ARE] PR [] PR :ML1 PWZ 400 PR [EACH CORRESPONDS TO ONE OF THE LOGO] PR [COMMANDS:] PR :L1 PWZ 400 PR [] PR [MORE THAN ONE MOCK COMMAND MAY] PR [CORRESPOND TO THE SAME LOGO COMMAND] PWZ 400 PR [ALL LOGO COMMANDS OPERATE NORMALLY] PWZ 30TR1 TRA IF :N3 = 1 THEN SPLITSCREEN PLAY FIN END TO AIL20 RANDOMIZE TITLE [THE MOCK TURTLE] [20] MAKE "L1 [FD RT LT SETH BK SETX SETY] MAKE "ML1 [MFD MRT MLT MSETH MBK MSETX MSETY] ND PR [LET'S PLAY THE MOCKTURTLE GAME] PWZ 400 CTXT PR [THE NEW COM .DEPOSIT 228 0 .DEPOSIT 229 0 .DEPOSIT 230 1 HT GOODBYE END TO PLAY CDM SPLITSCREEN CS HOME PR [YOU MAY ENTER COMANNDS] TOPLEVEL END TO TRA MAKE "N3 0 PR [AGAIN? YES OR NO?] CLEARINPUT MAKE "N4 RC IF :N4 = "Y THEN MAKE "N3 1 STOP STOP END TO L SOFTWARE CORP.] PWZ 500 END TO PWZ :TIME IF :TIME > 500 THEN MAKE ":TIME 500 IF :TIME < 1 THEN .GCOLL STOP PWZ :TIME - 1 END TO LENGTH :LIST IF :LIST = [] OUTPUT "0 OUTPUT 1 + LENGTH BUTFIRST :LIST ND END TO FIN PR [+++THE END+++] PWZ 100 HTENTENCE ( XNE XNE 7 :CDML :L1 ) ( :T ) RUN :C1 END TO CTXT REPEAT 4 [PR []] END TO CPYRT REPEAT 14 [PR "] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MAY NOT BE REPRODUCED] PR [WITHOUT PRIOR WRITTEN AUTHORIZATION] PR [BY THE KRELO MBK :T MAKE "C1 SENTENCE ( XNE XNE 5 :CDML :L1 ) ( :T ) RUN :C1 END TO MSETX :T MAKE "C1 SENTENCE ( XNE XNE 6 :CDML :L1 ) ( :T ) RUN :C1 END TO XNE :N :L IF :N = 1 OUTPUT FIRST :L OUTPUT XNE ( :N - 1 ) ( BUTFIRST :L ) END TO MSETY :T MAKE "C1 SDML :L1 ) ( :T ) RUN :C1 END TO MRT :T MAKE "C1 SENTENCE ( XNE XNE 2 :CDML :L1 ) ( :T ) RUN :C1 END TO MLT :T MAKE "C1 SENTENCE ( XNE XNE 3 :CDML :L1 ) ( :T ) RUN :C1 END TO MSETH :T MAKE "C1 SENTENCE ( XNE XNE 4 :CDML :L1 ) ( :T ) RUN :C1 END TD TO RCD :N IF :N < 1 THEN STOP MAKE "CDML SENTENCE ( :CDML ) ( 1 + RANDOM 7 ) RCD :N - 1 END TO TITLE :NAME :PT CS ND PRINT1 [ALICE IN LOGOLAND ' ' PART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END TO MFD :T MAKE "C1 SENTENCE ( XNE XNE 1 :C q TO TRAC REPEAT 2 [PR "] CLEARINPUT PRINT1 [TO CONTINUE, HIT RETURN] PR RQ END TO ANSWER ND MAKE "Z 7 2: IF :Z < 1 PR [] TR1 PRINT1 XNE :Z :ML1 PRINT1 [' ' = ' '] PR XNE XNE :Z :CDML :L1 MAKE "Z :Z - 1 GO 2 END TO CDM MAKE "CDML [] RCD 7 EN     SQUARE :N REPEAT 4 [FD :N RT 90] END TO REINIT MAKE "HISTORY [] DRAW END TO CHANGEBACKGROUND MAKE "BCOLOR REMAINDER :BCOLOR + 1 5 BACKGROUND :BCOLOR END TO CPYRT REPEAT 14 [PR "''] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MEN WITH CS] PWZ 300 CS PWZ 200 PR [TO CHANGE THE TURTLE'S DIRECTION, SET ' ' HIS HEADING WITH SETH] PWZ 260 AIL2A END :HISTORY = [] STOP RUN FIRST :HISTORY RUNALL BF :HISTORY END TO CHANGECOLOR MAKE "COLOR REMAINDER :COLOR + 1 5 PC :COLOR END TOIN THE DIRECT- ION HE POINTS WITH THE COMMAND FD] PWZ 200 PR [EXAMPLE FD 30] PWZ 230 FD 30 PWZ 250 PR [TO MOVE BACKWARDS USE BK] PWZ 300 PR [EXAMPLE BK 100] PWZ 400 BK 100 PWZ 290 PR [THE COMMAND HOME DOES THIS] PWZ 300 HOME PR [YOU CAN CLEAR THE SCRE PR [EXAMPLE PD HOME HT FD 20 LT 90 FD 100] PWZ 400 PD HOME HT FD 20 LT 90 FD 100 PWZ 400 PWZ 400 AIL2D END TO CTXT REPEAT 4 [PR []] END TO AIL2 TITLE [DOWN THE RABBIT HOLE] [2] DRAW PR [THIS IS THE LOGO TURTLE] PWZ 180 PR [YOU CAN MOVE HIM FORWARD IME < 1 THEN .GCOLL STOP PWZ :TIME - 1 END TO AIL2C PWZ 400 CS PR [YOU CAN MOVE THE TURTLE WITHOUT DRAWING] PWZ 300 PU HOME MAKE "PG2 [PU LT 90 FD 40 RT 180 FD 120 PWZ 300] PR :PG2 RUN :PG2 PWZ 400 CS PR [YOU CAN MAKE THE TURTLE DISAPPEAR WITH '' HT] RUN :PG1 AIL2C END TO AIL2D PWZ 400 REPEAT 4 [PR [' ']] PR [LET'S MAKE A RABBIT HOLE SO ALICE CAN] PR [PROCEED.] PWZ 400 HOME PU LT 90 FD 40 RT 90 FD 40 PD RT 90 PR [WE'LL USE A PROCEDURE CALLED BOX] PWZ 400 BOX 80 AIL2E END TO PWZ :TIME IF :T 360 PR [BY ANY # OF DEGREES.] PWZ 320 PR [LET'S TRY A SIMPLE PROGRAM] MAKE "PG [HOME CS FD 20 RT 90 FD 50 PWZ 500 RT 135 FD 50 RT 90 FD 130 RT 120 FD 25] PRINT :PG PWZ 400 RUN :PG MAKE "PG1 [LT 60 FD 30 PWZ 200 RT 135 FD 130] PWZ 200 PR [OR] PR :PG1SETH 90 POINTS HIM THIS WAY] PWZ 350 SETH 90 PWZ 190 PR [EXAMPLES] PWZ 480 REPEAT 8 [EXSH] AIL2B END TO EXSH MAKE "X RANDOM 360 PWZ 320 PRINT1 [SETH] PRINT1 [' '] PR :X SETH :X END TO AIL2B PWZ 320 PR [THE TURTLE MAY BE TURNED RIGHT OR LEFT] PWZ] PR [WITHOUT PRIOR WRITTEN AUTHORIZATION] PR [BY THE KRELL SOFTWARE CORP.] PWZ 500 END TO TITLE :NAME :PT CS ND PRINT1 [ALICE IN LOGOLAND ' ' PART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END TO AIL2A PWZ 233 PR [SETH 0 '' POINTS HIM NORTH. ER] CS HT PWZ 400 CS PU HOME PD PU SETX - 100 SETY - 50 PD BOX1 150 PR [THERE GOES ALICE] FIN END TO BOX :S REPEAT 4 [FD :S RT 90] END TO CPYRT REPEAT 14 [PR "''] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MAY NOT BE REPRODUCED u TO FIN PR [+++THE END+++] PWZ 100 HT .DEPOSIT 228 0 .DEPOSIT 229 0 .DEPOSIT 230 1 GOODBYE END TO BOX1 :S HT BOX :S FD :S / 9 RT 11 IF :S < 5 STOP BOX1 :S * .89 END TO AIL2E PWZ 400 PR [NOT BAD, BUT NOT SO HOT] PR [LET'S TRY SOMETHING FANCI      ND.] PWZ 200 END TO AIL1 AILN WPG2 END MAKE "USHAPE (228) MAKE "SSIZE (230) MAKE "ALICE (39328) 328) A HT .SHAPE :SH ST END TO INITSHAPES DOS [BLOAD ALICE.SHAPES] END TO TITLE :NAME CS ND PR :NAME PWZ 100 CPYRT END TO AILN TITLE [ON A GOLDEN AFTERNOON] DRAW CS INITSHAPES SETSHAPE :ALICE SIZE 2 PR [HI, I'M ALICE!] PWZ 200 PR [LET'S VISIT LOGOLA [THIS PROGRAM MAY NOT BE REPRODUCED] PR [WITHOUT PRIOR WRITTEN AUTHORIZATION] PR [BY THE KRELL SOFTWARE CORP.] PWZ 500 END TO PWZ :TIME IF :TIME < 1 THEN .GCOLL STOP PWZ :TIME - 1 END TO SIZE :N ST HT .DEPOSIT :SSIZE :N ST END TO SETSHAPE :SH BY TYPING: READ "AIL AND] PR [THE PROGRAM NUMBER. E.G. READ "AIL1] PWZ 500 WPG3 END TO .SHAPE :SH .DEPOSIT :USHAPE REMAINDER :SH 256 .DEPOSIT :USHAPE + 1 QUOTIENT :SH 256 END TO CPYRT REPEAT 14 [PR "] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR[AND THE NAME OF THE PROCEDURE.] PWZ 200 PR [+++THE END+++] END TO WPG2 PR [PLEASE REMEMBER THAT YOU CAN STOP] PR [ANY PROGRAM WHENEVER YOU WANT TO] PR [BY PRESSING 'CTRL' AND 'G' TOGETHER] PWZ 500 PR [YOU CAN RESTART THE PROGRAM FROM THE] PR [BEGINNING `TO WPG3 PR [EVERY LOGO PROGRAM IS MADE OF ONE OR] PR [MORE PROCEDURES.] PR [] PWZ 600 PR [TO GET THE NAMES OF ALL THE] PR [PROCEDURES, STOP THE PROGRAM WITH] PR ['CTRL' 'G' AND TYPE: POTS] PWZ 500 PR [] PR [TO SEE EACH PROCEDURE TYPE: EDIT] PR AKE "SSIZE (230) MAKE "USHAPE (228) MAKE "TONE (39328) MAKE "BASE.PERIOD (150) MAKE "N.RATIO (1.05946) MAKE "FUDGE (3) 9.9983) MAKE "#13+ (37.7535) MAKE "#14+ (35.6347) MAKE "#15+ (33.6348) MAKE "#16+ (31.7471) MAKE "#17+ (29.9654) MAKE "#18+ (28.2837) MAKE "#19+ (26.6963) MAKE "#20+ (25.1981) MAKE "#21+ (23.7839) MAKE "#22+ (22.4491) MAKE "#23+ (21.1892) MAKE "#24+ (20) M3784) MAKE "#24 (40) MAKE "#1+ (75.5037) MAKE "#2+ (71.2662) MAKE "#3+ (67.2666) MAKE "#4+ (63.4915) MAKE "#5+ (59.9282) MAKE "#6+ (56.5649) MAKE "#7+ (53.3903) MAKE "#8+ (50.3939) MAKE "#9+ (47.5657) MAKE "#10+ (44.8962) MAKE "#11+ (42.3765) MAKE "#12+ (34) MAKE "#11 (84.7531) MAKE "#12 (79.9965) MAKE "#13 (75.507) MAKE "#14 (71.2693) MAKE "#15 (67.2696) MAKE "#16 (63.4942) MAKE "#17 (59.9308) MAKE "#18 (56.5673) MAKE "#19 (53.3926) MAKE "#20 (50.3961) MAKE "#21 (47.5678) MAKE "#22 (44.8982) MAKE "#23 (42. (95.1355) MAKE "#22- (89.7963) MAKE "#23- (84.7567) MAKE "#24- (80) MAKE "#1 (151.007) MAKE "#2 (142.532) MAKE "#3 (134.533) MAKE "#4 (126.983) MAKE "#5 (119.856) MAKE "#6 (113.13) MAKE "#7 (106.781) MAKE "#8 (100.788) MAKE "#9 (95.1314) MAKE "#10 (89.792"#9- (190.263) MAKE "#10- (179.585) MAKE "#11- (169.506) MAKE "#12- (159.993) MAKE "#13- (151.014) MAKE "#14- (142.539) MAKE "#15- (134.539) MAKE "#16- (126.988) MAKE "#17- (119.862) MAKE "#18- (113.135) MAKE "#19- (106.785) MAKE "#20- (100.792) MAKE "#21-E TECHNICAL MANUAL] PR [CHAPTER 5.4.] SETUP REPEAT 5 [TWINKLE] FIN END MAKE "REST (0) MAKE "#1- (302.015) MAKE "#2- (285.065) MAKE "#3- (269.066) MAKE "#4- (253.966) MAKE "#5- (239.713) MAKE "#6- (226.259) MAKE "#7- (213.561) MAKE "#8- (201.576) MAKE 229 0 .DEPOSIT 230 1 HT GOODBYE END TO TRAC REPEAT 2 [PR "] CLEARINPUT PRINT1 [TO CONTINUE, HIT RETURN] PR RQ END TO AIL19 .GCOLL TITLE [TWINKLE TWINKLE LITTLE BAT] 19 CS DRAW HT BG 5 PR [YOU CAN WRITE MUSIC IN LOGO. FOR] PR [THE DETAILS, SE] PR [WITHOUT PRIOR WRITTEN AUTHORIZATION] PR [BY THE KRELL SOFTWARE CORP.] PWZ 500 END TO PWZ :TIME IF :TIME > 500 THEN MAKE ":TIME 500 IF :TIME < 1 THEN .GCOLL STOP PWZ :TIME - 1 END TO FIN PR [+++THE END+++] PWZ 100 HT .DEPOSIT 228 0 .DEPOSIT70 70 70 70 150] PWZ 10 END TO TITLE :NAME :PT CS ND PRINT1 [ALICE IN LOGOLAND ' ' PART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END TO CPYRT REPEAT 14 [PR "] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MAY NOT BE REPRODUCEDTOP PLAY.NOTE ( FIRST :PITCHES ) ( FIRST :DURS ) PLAY ( BF :PITCHES ) ( BF :DURS ) END TO TWINKLE PLAY [3+ 3+ 10+ 10+ 24 24 10+] [70 70 70 70 70 70 100] MAKE "REST 10 1: MAKE "REST :REST - 1 IF :REST > 0 THEN GO 1 PLAY [8+ 8+ 7+ 7+ 5+ 5+ 3+] [70 70 0 DOS [BLOAD MUSIC.BIN] MAKE "TONE ( .EXAMINE 43634 ) + 256 * .EXAMINE 43635 END TO PLAY.NOTE :PERIOD :DURATION MAKE "PERIOD THING WORD "# :PERIOD .CALL.2 :TONE :PERIOD :DURATION * :BASE.PERIOD / :PERIOD END TO PLAY :PITCHES :DURS IF :PITCHES = [] SAKE.OCTAVE :PITCH - 1 :OCTIND :PERIOD * :N.RATIO END TO MAKE.PITCHES :PERIOD MAKE.OCTAVE 24 "+ :PERIOD MAKE.OCTAVE 24 " :PERIOD * 2 MAKE.OCTAVE 24 "- :PERIOD * 4 END TO SETUP MAKE "FUDGE 3 MAKE "N.RATIO 1.05946 MAKE "BASE.PERIOD 150 MAKE.PITCHES 2 s TO FOO :N :OCT PLAY.NOTE WORD :N :OCT 50 FOO :N + 1 :OCT END TO .CALL.2 :ADDR :INPUT1 :INPUT2 .CALL :ADDR :INPUT2 + ( ROUND :INPUT1 ) * 65536 END TO MAKE.OCTAVE :PITCH :OCTIND :PERIOD IF :PITCH = 0 STOP MAKE ( WORD "# :PITCH :OCTIND ) :PERIOD M     S] 0 12 PRINT2 TRAC ND PRINTOUT SQUARE1 PR " PR [WHEN :NUMBER HAS BEEN DECREASED] PR [TO ZERO, SQUARE1 WILL STOP] TRAC AIL18B END MAKE "USHAPE (228) MAKE "SSIZE (230) MAKE "N4 " MAKE "NUMBER (3) MAKE "N3 (0) MAKE "LST [TWAS BRILLIG AND THE SLITHY TOVEND OVER.] PWZ 300 PR [' SUPPOSE THAT WE WANT TO STOP'] PR [DRAWING AFTER 4 SIDES.] PR " PRINTOUT SQUARE1 PR " PR [THE IF STATEMENT IN LOGO IS USED TO] PR [PERFORM TESTS, IN THIS CASE TO TEST] PR [WHETHER THE VALUE OF :NUMBER IS ZERO] TRAC CURSOR IT RIGHT 90 DEGREES] PWZ 100 PR [THIS IS REPEATED 4 TIMES] PR " PR [LINE 3 WILL CALL SQUARE AGAIN WITH] PR [:SIZE = :SIZE] TRAC ND PR " PR [' THIS FORM OF A RECURSIVE PROCEDURE IS'] PR [VERY SIMPLE. IT WILL REPEAT AN UN-] PR [CHANGEABLE CYCLE OVER ASTEP IN A LOGO PROCEDURE CAN] PR [INCLUDE A CALL TO ANY PROCEDURE, WHY] PR [NOT INCLUDE A CALL TO THE PROCEDURE] PR [ITSELF?] PR " PR " PRINTOUT SQUARE PR " PR [LINE 2 WILL MOVE THE TURTLE FORWARD] PR [:SIZE NUMBER OF STEPS] PR " PR [AND IT WILL TURNT = [] OUTPUT "0 PRINT1 1 + LENGTH1 BUTFIRST :LIST PRINT1 [' '] OUTPUT 1 + LENGTH1 BUTFIRST :LIST END TO AIL18D ND TRACE PR LENGTH1 :LST NOTRACE TRA IF :N3 = 1 THEN AIL18C FIN END TO AIL18 TITLE [CURIOUSER & CURIOUSER] [18] CS ND PR [SINCE A FINDS] PR [THE LIST'S LENGTH] PR [] PR [IF NOT, WOULD YOU LIKE TO SEE A TRACE?] TRA IF :N3 = 1 THEN AIL18D FIN END TO TRA MAKE "N3 0 PR [AGAIN? YES OR NO?] CLEARINPUT MAKE "N4 RC IF :N4 = "Y THEN MAKE "N3 1 STOP STOP END TO LENGTH1 :LIST IF :LIS28 0 .DEPOSIT 229 0 .DEPOSIT 230 1 HT GOODBYE END TO AIL18C ND PR [LET'S LOOK AT A MORE SOPHISTICATED] PR [TYPE OF RECURSION] PWZ 400 PO SLENGTH PO LENGTH1 TRAC SLENGTH TRAC PR [CAN YOU SEE HOW THE RECURSIVE LENGTH1] PR [GENERATES THESE NUMBERS AS ITSES :NUMBER] PR " PR [LINE 4 TESTS :NUMBER] PR [IF :NUMBER IS LESS THAN 1, SQUARE1] PR [WILL STOP, OTHERWISE --] PR " PR [LINE 4 WILL CALL SQUARE1 WITH] PR [:SIZE = :SIZE BUT :NUMBER = :NUMBER-1] END TO FIN PR [+++THE END+++] PWZ 100 HT .DEPOSIT 2 ' PART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END TO SQUARE1 :SIZE :NUMBER REPEAT 4 [FD :SIZE RT 90] MAKE "NUMBER :NUMBER - 1 IF :NUMBER < 1 STOP SQUARE1 :SIZE :NUMBER END TO PRINT2 PR " PR [LINE 2 WORKS THE SAME WAY] PR " PR [LINE 3 DECREAPRODUCED] PR [WITHOUT PRIOR WRITTEN AUTHORIZATION] PR [BY THE KRELL SOFTWARE CORP.] PWZ 500 END TO PWZ :TIME IF :TIME > 500 THEN MAKE ":TIME 500 IF :TIME < 1 THEN .GCOLL STOP PWZ :TIME - 1 END TO TITLE :NAME :PT CS ND PRINT1 [ALICE IN LOGOLAND ' END TO XNE :N :L IF :N = 1 OUTPUT FIRST :L OUTPUT XNE ( :N - 1 ) ( BUTFIRST :L ) END TO SQUARE :SIZE REPEAT 4 [FD :SIZE RT 90] SQUARE :SIZE END TO CPYRT REPEAT 14 [PR "] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MAY NOT BE RE TOVES] PR [LIST] PR :LST PR LENGTH1 :LST END TO LENGTH :LIST IF :LIST = [] OUTPUT "0 OUTPUT 1 + LENGTH BUTFIRST :LIST ND END TO SPIRAL :D :A IF :D > 50 STOP SETXY 0 0 RT :A FD :D PD FD 1.6 * :D PU SPIRAL :D + .5 :A END TO CTXT REPEAT 4 [PR []] WISH TO CONTINUE USE THE] PR [COMMAND - AIL18C] END TO PSP :D :A IF :D > 190 THEN STOP RT :A FD :D PSP :D + 3 :A END TO TRAC REPEAT 2 [PR "] CLEARINPUT PRINT1 [TO CONTINUE, HIT RETURN] PR RQ END TO SLENGTH MAKE "LST [TWAS BRILLIG AND THE SLITHYD SQUARE2 20 5 TRAC CS DRAW PR [LET'S SEE HOW A SIMPLE RECURSIVE] PR [PROGRAM WORKS] PWZ 400 ND PO PSP PWZ 400 PR [] PR [WE'LL TRY PSP 20 140] PWZ 100 TRAC DRAW PU SETY 15 PD PSP 20 140 TRAC ND PR [WHY DON'T YOU EXPERIMENT WITH PSP] PR [] PR [WHEN YOU TO SQUARE2 :SIZE :INCR REPEAT 4 [FD :SIZE RT 90] IF :SIZE > 100 THEN STOP SQUARE2 ( :SIZE + :INCR ) :INCR END TO AIL18B PR [LET'S TRY PROCEDURE SQUARE1] PWZ 200 SQUARE1 100 1 PR [NOW LET'S TRY SQUARE2] PWZ 200 ND PO SQUARE2 TRAC DRAW CS PU HOME P     AKE "NTS (10) MAKE "FG (5) MAKE "CI (0) MAKE "SP1 "INNOCENT MAKE "SP (0) MAKE "MEM (0) MAKE "VGUILT (0) MAKE "MP (25) MAKE "GUILT (1) MAKE "PGUILT (0) (40.) MAKE "X2 (-51.) MAKE "Y1 (80.) MAKE "X1 (-64.) MAKE ":M2 (80.) MAKE ":M1 (-111.) MAKE "M (13) MAKE "N4 "N MAKE "N3 (0) MAKE "SL (13) MAKE "SLM (12) MAKE "FGL [0 3 2 4 5 5 4 3 3 6 3 5] MAKE "CIL [2 0 0 0 0 0 0 0 0 0 0 0] MAKE "JMAX (12) MAKE "NT (0) MZ 400 PWZ 400 PR [] AIL17A END MAKE "USHAPE (228) MAKE "SSIZE (230) MAKE "N1 (2) MAKE "N2 (3) MAKE "TH [NOW IS THE TIME] MAKE ":L1 (2.5) MAKE "NEWLIST [DF GH] MAKE "W1 [WERTY] MAKE "L2 [SA FD HG] MAKE "L1 [AS DF GH] MAKE "Y3 (0.) MAKE "X3 (-31.) MAKE "Y2 E] PWZ 400 PWZ 300 CTXT PR [SUPPOSE WE WANT TO FIND THE BEST SIZE] PR [FOR A JURY] PWZ 400 PR [] PR [SUPPOSE ALSO THAT TO CONVICT, THE JURY] PR [MUST BE UNANIMOUS] PWZ 400 PR [IN TRYING TO PICK A BEST JURY SIZE, WE] PR [WILL CONSIDER 2 RELATED GOALS] PW REPEAT 2 [PR "] CLEARINPUT PRINT1 [TO CONTINUE, HIT RETURN] PR RQ END TO AIL17 RANDOMIZE TITLE [SENTENCE FIRST, VERDICT AFTERWARDS] [17] ND PR [LET'S SEE HOW RANDOM NUMBERS MAY BE] PR [USED TO STUDY A PROBLEM IN THE ADMIN-] PR [ISTRATION OF JUSTICRULY GUILTY] ELSE PR [TRULY INNOCENT] END TO VTE MAKE "PGUILT 0 MAKE "PGUILT :GUILT IF ( RANDOM 100 ) > ( 99 - :MP ) THEN MAKE "PGUILT 1 - :GUILT IF :PGUILT = 0 THEN MAKE "VGUILT 0 IF :PGUILT = 0 THEN OUTPUT "INNOCENT ELSE OUTPUT "GUILTY END TO TRACTHEN MAKE ":TIME 500 IF :TIME < 1 THEN .GCOLL STOP PWZ :TIME - 1 END TO RESULT IF :VGUILT = 1 THEN PR [VERDICT: GUILTY] ELSE PR [VERDICT :NOT GUILTY] PWZ 50 END TO PGUILT MAKE "GUILT 0 IF ( RANDOM 2 ) = 1 THEN MAKE "GUILT 1 IF :GUILT = 1 THEN PR [T JVOTE :JSIZE MAKE "VGUILT 1 MAKE "MEM :JSIZE 2: IF :MEM < 1 THEN RESULT STOP IF :SP = 1 THEN MAKE "SP1 VTE GO 5 PRINT1 [MEMBER ' '] PRINT1 1 + :JSIZE - :MEM PRINT1 [' ' VOTES ' '] PR VTE 5: MAKE "MEM :MEM - 1 GO 2 END TO PWZ :TIME IF :TIME > 500 F THE CASES] PWZ 400 PR [] PR [WE'LL SIMULATE TRIALS AND SEE THE] PR [IMPACT OF JURY SIZE] PWZ 400 PWZ 400 AIL17B END TO TRESULT IF :VGUILT + :GUILT = 1 THEN GO 4 ELSE STOP 4: IF :VGUILT = 1 THEN MAKE "CI :CI + 1 ELSE MAKE "FG :FG + 1 PWZ 120 END TO PR [1 - MINIMIZING THE CHANCE OF CONVICT-] PR [ING THE INNOCENT] PWZ 400 PR [] PR [2 - MINIMIZING THE CHANCE OF ACQUITT-] PR [ING THE GUILTY] PWZ 400 PR [] PR [NOW, A FINAL ASSUMPTION] PWZ 400 PR [] PR [EACH JUROR MAKES A MISTAKE IN A] PR [CERTAIN % OHOUT PRIOR WRITTEN AUTHORIZATION] PR [BY THE KRELL SOFTWARE CORP.] PWZ 500 END TO TITLE :NAME :PT RANDOMIZE CS ND PRINT1 [ALICE IN LOGOLAND ' ' PART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END TO AIL17B BRNTLS RNTLS :NTS :JMAX END TO AIL17ASIZE = ' '] PR :JSIZE JVOTE :JSIZE TRESULT END TO LENGTH :LIST IF :LIST = [] OUTPUT "0 OUTPUT 1 + LENGTH BUTFIRST :LIST ND END TO CPYRT REPEAT 14 [PR "] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MAY NOT BE REPRODUCED] PR [WIT "SLM :JMAX MAKE "SL 1 2: IF :SL > :SLM THEN GRESULTS MAKE "FG 0 MAKE "CI 0 MAKE "NT :NTS 3: IF :NT < 1 THEN SRESULTS MAKE "SL :SL + 1 GO 2 TRIAL :SL MAKE "NT :NT - 1 GO 3 END TO TRIAL :JSIZE ND PRINT1 [TRIAL # ' '] PR :NTS + 1 - :NT PGUILT PRINT1 [JURY THEN TRA IF :N3 = 1 THEN AIL17B ELSE FIN PRINT1 [' '] PRINT1 :M IF :M < 10 THEN PRINT1 [' '] PRINT1 [' '] PRINT1 XNE :M :CIL PRINT1 [' '] PR XNE :M :FGL MAKE "M :M + 1 GO 3 END TO RNTLS :NTS :JMAX MAKE "CIL [] MAKE "FGL [] MAKEIRST :L ) END TO SRESULTS MAKE "CIL SENTENCE ( :CIL ) ( :CI ) MAKE "FGL SENTENCE ( :FGL ) ( :FG ) END TO GRESULTS ND MAKE "M 1 PR [RESULTS] PR [JURY ' ' INNOCENT ' ' GUILTY] PR [SIZE ' ' CONVICTED ' ' FREED] 3: IF :M > :SLM SHALL WE] PR [ASSUME FOR EACH JUROR? ENTER A NUMBER] PR [] MAKE "MP FIRST RQ END TO FIN PR [+++THE END+++] PWZ 100 HT .DEPOSIT 228 0 .DEPOSIT 229 0 .DEPOSIT 230 1 HT GOODBYE END TO XNE :N :L IF :N = 1 OUTPUT FIRST :L OUTPUT XNE ( :N - 1 ) ( BUTFR 0] MAKE "SP FIRST RQ CTXT CLEARINPUT PR [ENTER MAXIMUM JURY SIZE TO EXAMINE] PR [] MAKE "JMAX FIRST RQ CTXT CLEARINPUT PR [ENTER NUMBER OF SAMPLE TRIALS FOR EACH] PR [SIZE JURY] PR [] MAKE "NTS FIRST RQ PR [] CLEARINPUT PR [WHAT PERCENT OF MISTAKES TO CTXT REPEAT 4 [PR []] END TO TRA MAKE "N3 0 PR [AGAIN? YES OR NO?] CLEARINPUT MAKE "N4 RC IF :N4 = "Y THEN MAKE "N3 1 STOP STOP END TO BRNTLS ND CLEARINPUT MAKE "SP 0 PR [TO SUPPRESS PRINT OF EACH JUROR'S VOTE] PR [ENTER A 1, OTHERWISE ENTE        4 "Y MAKE "N3 (0) MAKE "NEWLIST [DF GH] MAKE "Y3 (0.) MAKE "X3 (-31.) MAKE "Y2 (40.) MAKE "X2 (-51.) MAKE "Y1 (80.) MAKE "X1 (-64.) "L1 [AS DF GH] MAKE "L2 [SA FD HG] MAKE "W1 [WERTY] MAKE "NEWLIST [DF GH] MAKE ":L1 (2.5) MAKE "TH [NOW IS THE TIME] MAKE "N2 (3) MAKE "N1 (2) MAKE "N4 "N MAKE "N3 (0) MAKE "B (155) MAKE "USHAPE (228) MAKE "A (20) MAKE "SSIZE (230) AKE "W1 [WERTY] MAKE "NT MATTER, SAYS ALICE] PR [] PWZ 400 PR [THEN SAYS THE PUSS,] PR [] PR [IT DOESN'T MATTER WHICH WAY YOU GO !] PD AIL16A END MAKE ":M1 (-111.) MAKE ":M2 (80.) MAKE "X1 (-64.) MAKE "Y1 (80.) MAKE "X2 (-51.) MAKE "Y2 (40.) MAKE "X3 (-31.) MAKE "Y3 (0.) MAKE U HT SETH 315 FD 90 SETH 0 ST SIZE 2 STAMP.IMAGE HT SETXY 0 0 SETH 0 SETSHAPE 39328 ST SIZE 2 CTXT PR [ALICE MEETS HIM AND ASKS WHICH WAY TO] PR [GO] PWZ 300 PR [] PR [THAT, SAYS THE PUSS, DEPENDS UPON] PR [WHERE YOU ARE GOING] PWZ 400 CTXT PR [IT DOESN'T PRINT1 [TO CONTINUE, HIT RETURN] PR RQ END TO AIL16 RANDOMIZE TITLE [THE CHESHIRE PUSS] [16] HT READ "INITSHAPES.AUX DOS [BLOAD ALICE.SHAPES] DOS [BLOAD CHESHIRE.SHAPES, A39700] SETSHAPE 39700 SIZE 3 ST PR [HERE IS THE CHESHIRE PUSS] PWZ 300 PION] PR [BY THE KRELL SOFTWARE CORP.] PWZ 500 END TO XNE :N :L IF :N = 1 OUTPUT FIRST :L OUTPUT XNE ( :N - 1 ) ( BUTFIRST :L ) END TO LENGTH :LIST IF :LIST = [] OUTPUT "0 OUTPUT 1 + LENGTH BUTFIRST :LIST ND END TO TRAC REPEAT 2 [PR "] CLEARINPUND TO PWZ :TIME IF :TIME > 500 THEN MAKE ":TIME 500 IF :TIME < 1 THEN .GCOLL STOP PWZ :TIME - 1 END TO CPYRT REPEAT 14 [PR "] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MAY NOT BE REPRODUCED] PR [WITHOUT PRIOR WRITTEN AUTHORIZAT REMAINDER :SH 256 .DEPOSIT :USHAPE + 1 QUOTIENT :SH 256 END TO SETSHAPE :SH HT .SHAPE :SH ST END TO TITLE :NAME :PT RANDOMIZE CS ND PRINT1 [ALICE IN LOGOLAND ' ' PART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END TO CTXT REPEAT 4 [PR []] E .DEPOSIT 230 1 HT GOODBYE END TO STAMP.IMAGE MAKE "A .EXAMINE :USHAPE MAKE "B .EXAMINE :USHAPE + 1 .SHAPE 1 HT .DEPOSIT :USHAPE :A .DEPOSIT ( :USHAPE + 1 ) :B ST END TO SIZE :N ST HT .DEPOSIT :SSIZE :N ST END TO .SHAPE :SH .DEPOSIT :USHAPEAC 3: CS HOME HT PD RW 20 + RANDOM 40 TRA IF :N3 = 1 THEN GO 3 FIN END TO TRA MAKE "N3 0 PR [AGAIN? YES OR NO?] CLEARINPUT MAKE "N4 RC IF :N4 = "Y THEN MAKE "N3 1 STOP STOP END TO FIN PR [+++THE END+++] PWZ 100 HT .DEPOSIT 228 0 .DEPOSIT 229 0 TO RW :N IF :N < 1 THEN SPLITSCREEN PU STOP SETH RANDOM 360 FD RANDOM 20 RW :N - 1 END TO AIL16A PWZ 400 CTXT PR [SUPPOSE ALICE GOES FOR A RANDOM WALK] PWZ 400 PR [SHE USES PROCEDURE RW] PWZ 300 PR [LET'S CHECK HER PATH] PWZ 400 HT ND PO RW TR  AKE "Y1 (17.9147) MAKE "X1 (-20.7952) :L1 (2.5) MAKE "TH [NOW IS THE TIME] MAKE "N2 (3) MAKE "N1 (2) MAKE "W1 [WERTY] MAKE "N4 "N MAKE "N3 (0) MAKE "NEWLIST [DF GH] MAKE "P (0) MAKE "Y4 (28.445) MAKE "X4 (-17.6244) MAKE "Y3 (24.3078) MAKE "X3 (-14.6697) MAKE "Y2 (38.2923) MAKE "X2 (-1.90318) MPLE MOTION] PWZ 400 CTXT PR [4 FLIES - EACH TRYING TO CATCH THE NEXT] PWZ 300 4: MAKE "P 32 CS FLIES TRA IF :N3 = 1 THEN GO 4 FIN END MAKE "USHAPE (228) MAKE "SSIZE (230) MAKE ":M1 (-111.) MAKE ":M2 (80.) MAKE "L1 [AS DF GH] MAKE "L2 [SA FD HG] MAKE "E [THE CAUCUS RACE] [15] RANDOMIZE ND PR [ALICE WITNESSES A CAUCUS RACE] PWZ 300 CTXT PR [THE CREATURES RACE AND STOP AT RANDOM] PWZ 200 PR [LET'S BEGIN] PWZ 200 3: CS RACE TRA IF :N3 = 1 THEN GO 3 CTXT PR [LET'S LOOK AT A DIFFERENT KIND OF] PR [MULTI :Y1 :X2 :Y2 MAKE "X1 XCOR MAKE "Y1 YCOR MOV1 :X2 :Y2 :X3 :Y3 MAKE "X2 XCOR MAKE "Y2 YCOR MOV1 :X3 :Y3 :X4 :Y4 MAKE "X3 XCOR MAKE "Y3 YCOR MOV1 :X4 :Y4 :X1 :Y1 MAKE "X4 XCOR MAKE "Y4 YCOR MAKE "P :P - 1 TEST FINISH1 :P IFF THEN GO 2 END TO AIL15 TITLPUT "FALSE END TO MOV1 :M1 :M2 :M3 :M4 SETXY :M1 :M2 PD SETH TOWARDS :M3 :M4 FD RANDOM 15 PU END TO FLIES CS MAKE "X1 ( - 130 ) MAKE "Y1 110 MAKE "X2 ( - 130 ) MAKE "Y2 ( - 70 ) MAKE "X3 130 MAKE "Y3 ( - 70 ) MAKE "X4 130 MAKE "Y4 110 2: MOV1 :X1IFF MAKE "NEWLIST SENTENCE ( :NEWLIST ) ( XNE :FST :LIST ) MAKE "FST :FST + 1 GO 3 END TO IXL :N :L :I OUTPUT SENTENCE ( SENTENCE ( XFL 1 ( :N - 1 ) :L ) ( :I ) ) ( XFL ( :N + 1 ) LENGTH :L :L ) END TO FINISH1 :P IF :P < 1 THEN OUTPUT "TRUE STOP OUTND TO XFL :FST :LST :LIST IFT ANYOF ( :FST > LENGTH :LIST ) ( :LST > LENGTH :LIST ) ( :FST > :LST ) PR [BAD INPUT TO XFL] STOP MAKE "NEWLIST " 3: IF :FST > :LST OUTPUT :NEWLIST TEST WORD? :LIST IFT MAKE "NEWLIST WORD ( :NEWLIST ) ( XNE :FST :LIST ) PR [AGAIN? YES OR NO?] CLEARINPUT MAKE "N4 RC IF :N4 = "Y THEN MAKE "N3 1 STOP STOP END TO XNE :N :L IF :N = 1 OUTPUT FIRST :L OUTPUT XNE ( :N - 1 ) ( BUTFIRST :L ) END TO LENGTH :LIST IF :LIST = [] OUTPUT "0 OUTPUT 1 + LENGTH BUTFIRST :LIST ND E30 ) < 1 THEN OUTPUT "TRUE STOP IF ( :X1 > 130 ) OUTPUT "TRUE STOP IF ( :X2 > 130 ) OUTPUT "TRUE STOP IF ( :X3 > 130 ) OUTPUT "TRUE STOP OUTPUT "FALSE END TO SWWD CLEARINPUT PR [PLEASE TYPE A WORD & HIT RETURN] MAKE "W1 RQ END TO TRA MAKE "N3 0 MAKE "Y3 YCOR TEST FINISH IFF GO 2 PR [RACE ENDS] END TO START MAKE "X1 ( - 130 ) MAKE "Y1 80 MAKE "X2 ( - 130 ) MAKE "Y2 40 MAKE "X3 ( - 130 ) MAKE "Y3 0 HT END TO MOV :M1 :M2 SETXY :M1 :M2 PD SETH 90 FD RANDOM 13 PU END TO FINISH IF ( RANDOM TIME - 1 END TO TITLE :NAME :PT CS ND PRINT1 [ALICE IN LOGOLAND ' ' PART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END TO RACE PU START 2: MOV :X1 :Y1 MAKE "X1 XCOR MAKE "Y1 YCOR MOV :X2 :Y2 MAKE "X2 XCOR MAKE "Y2 YCOR MOV :X3 :Y3 MAKE "X3 XCOR YRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MAY NOT BE REPRODUCED] PR [WITHOUT PRIOR WRITTEN AUTHORIZATION] PR [BY THE KRELL SOFTWARE CORP.] PWZ 500 END TO PWZ :TIME IF :TIME > 500 THEN MAKE ":TIME 500 IF :TIME < 1 THEN .GCOLL STOP PWZ : " TO TRAC REPEAT 2 [PR "] CLEARINPUT PRINT1 [TO CONTINUE, HIT RETURN] PR RQ END TO FIN PR [+++THE END+++] PWZ 100 HT .DEPOSIT 228 0 .DEPOSIT 229 0 .DEPOSIT 230 1 HT GOODBYE END TO CTXT REPEAT 4 [PR []] END TO CPYRT REPEAT 14 [PR "] PR [COP     AKE "SSIZE (230) MAKE "N4 "N MAKE "N3 (0) MAKE "SU [SPADES HEARTS DIAMONDS CLUBS] MAKE "VA [2 3 4 5 6 7 8 9 10 JACK QUEEN KING ACE] MAKE "X6 (3) MAKE "X5 (2) MAKE "N1 (10) MAKE "CH (46) MAKE "CT (54) MAKE "CQT (0) MAKE "CHT1 (1) BETWEEN 0 AND SOME INPUT] PR [VALUE] PWZ 400 PWZ 400 CTXT NODRAW PR [THE COMMAND RANDOM 5 WILL PRODUCE A] PR [0 1 2 3 OR 4 IN A RANDOM WAY, SO THAT] PR [EACH POSSIBLE VALUE IS EQUALLY LIKELY] PR [TO OCCUR] PWZ 400 PWZ 400 AIL14A END MAKE "USHAPE (228) M[RANDOM NUMBERS] PWZ 400 CTXT PR [BUT WHAT IS A RANDOM NUMBER ?] PWZ 250 PR [THE PHRASE RANDOM NUMBER REFERS TO A] PR [NUMBER THAT HAS BEEN SELECTED BY A] PR [RANDOM PROCESS] PWZ 400 PWZ 400 CTXT PR [IN LOGO THE COMMAND RANDOM WILL PICK] PR [AN INTEGER ) END TO CNTQ MAKE "CQT :CQT + 1 END TO CNTH1 MAKE "CHT1 :CHT1 + 1 END TO AIL14 RANDOMIZE TITLE [THE QUEEN OF HEARTS] [14] SPLITSCREEN PR [LET'S WATCH SOME STARS COME OUT] DRAW HT PU BG 5 STRS 80 CTXT PR [THIS IS A SAMPLE OF HOW YOU MAY USE] PR ( :NEWLIST ) ( XNE :FST :LIST ) MAKE "FST :FST + 1 GO 3 END TO IXL :N :L :I OUTPUT SENTENCE ( SENTENCE ( XFL 1 ( :N - 1 ) :L ) ( :I ) ) ( XFL ( :N + 1 ) LENGTH :L :L ) END TO REVL :L IF :L = [] OUTPUT [] OUTPUT SENTENCE ( LAST :L ) ( REVL BUTLAST :L IFT ANYOF ( :FST > LENGTH :LIST ) ( :LST > LENGTH :LIST ) ( :FST > :LST ) PR [BAD INPUT TO XFL] STOP MAKE "NEWLIST " 3: IF :FST > :LST OUTPUT :NEWLIST TEST WORD? :LIST IFT MAKE "NEWLIST WORD ( :NEWLIST ) ( XNE :FST :LIST ) IFF MAKE "NEWLIST SENTENCE W = " OUTPUT " OUTPUT WORD ( LAST :W ) ( REVW BUTLAST :W ) END TO XNE :N :L IF :N = 1 OUTPUT FIRST :L OUTPUT XNE ( :N - 1 ) ( BUTFIRST :L ) END TO LENGTH :LIST IF :LIST = [] OUTPUT "0 OUTPUT 1 + LENGTH BUTFIRST :LIST ND END TO XFL :FST :LST :LIST ' TAILS ' '] PRINT :CT END TO CTXT REPEAT 4 [PR []] END TO RESULTS1 CTXT PR [RESULTS] PR [] PRINT1 [HEARTS ' '] PRINT1 :CHT1 PRINT1 [' ' QUEENS ' '] PRINT :CQT END TO CNTH MAKE "CH :CH + 1 END TO CNTT MAKE "CT :CT + 1 END TO REVW :W IF :S :N1 IF 1 > :N1 THEN STOP MAKE "X5 1 + RANDOM 13 MAKE "X6 1 + RANDOM 4 PRINT1 XNE :X5 :VA PRINT1 [' '] PR XNE :X6 :SU IF :X5 = 11 CNTQ IF :X6 = 2 CNTH1 DWS :N1 - 1 END TO RESULTS CTXT PR [RESULTS] PR [] PRINT1 [HEADS ' '] PRINT1 :CH PRINT1 [' SE CNTT PRINT [TAILS] FLIPS :N1 - 1 END TO TRIES MAKE "N1 0 CLEARINPUT PR [HOW MANY TIMES SHALL WE TRY?] PR [] MAKE "N1 FIRST RQ END TO TRA MAKE "N3 0 PR [AGAIN? YES OR NO?] CLEARINPUT MAKE "N4 RC IF :N4 = "Y THEN MAKE "N3 1 STOP STOP END TO DW] MAKE "SU [SPADES HEARTS DIAMONDS CLUBS] MAKE "VA [2 3 4 5 6 7 8 9 10 JACK QUEEN KING ACE] 4: MAKE "CHT1 0 MAKE "CQT 0 TRIES DWS :N1 RESULTS1 TRA IF :N3 = 1 THEN GO 4 FIN END TO FLIPS :N1 IF 1 > :N1 THEN STOP IF ( RANDOM 2 ) = 0 THEN CNTH PR [HEADS] ELK OF THE RESULTS] PWZ 400 3: CTXT MAKE "CH 0 MAKE "CT 0 TRIES FLIPS :N1 RESULTS TRA IF :N3 = 1 THEN GO 3 NODRAW PR [LET'S TRY THAT WITH A DECK OF CARDS] PWZ 300 PR [] PR [WE'LL SHUFFLE BEFORE EACH PICK] PWZ 300 PR [] PR [WE'LL COUNT QUEENS AND HEARTS] PR [TXT GR5 320 PWZ 400 PWZ 400 NODRAW PR [NOW LET'S USE RANDOM NUMBERS TO] PR [EXPERIMENT] PWZ 400 PR [] PR [SUPPOSE WE WANT TO SIMULATE COIN FLIPS] PWZ 400 PR [] PR [LET'S USE RANDOM 2. WE'LL LET] PR [0 = HEADS AND 1 = TAILS] PWZ 300 PR [WE'LL ALSO KEEP TRACZ :TIME IF :TIME > 500 THEN MAKE ":TIME 500 IF :TIME < 1 THEN .GCOLL STOP PWZ :TIME - 1 END TO GR5 :N IF :N < 1 THEN STOP PRINT1 RANDOM 5 PRINT1 [' '] GR5 :N - 1 END TO AIL14A NODRAW PR [LET'S SEE HOW THIS WORKS USING] PR [PROCEDURE GR5] PWZ 300 C RANDOM RANDOM 5 SETXY - 40 + RANDOM 130 + RANDOM 130 + RANDOM 130 + RANDOM 130 ( - 80 + RANDOM 95 + RANDOM 95 + RANDOM 95 ) STR STRS :N - 1 END TO FIN PR [+++THE END+++] PWZ 100 HT .DEPOSIT 228 0 .DEPOSIT 229 0 .DEPOSIT 230 1 HT GOODBYE END TO PWRELL SOFTWARE CORP.] PWZ 500 END TO TITLE :NAME :PT CS ND PRINT1 [ALICE IN LOGOLAND ' ' PART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END TO STR PD FD 1 PU END TO STRS :N IF :N < 1 THEN STOP IF :N = 20 THEN BG 0 IF :N = 40 THEN BG 3 PC 1 + TO TRAC REPEAT 2 [PR "] CLEARINPUT PRINT1 [TO CONTINUE, HIT RETURN] PR RQ END TO CPYRT REPEAT 14 [PR "] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MAY NOT BE REPRODUCED] PR [WITHOUT PRIOR WRITTEN AUTHORIZATION] PR [BY THE K     MAKE "N1 (2) MAKE "Y3 (0.) MAKE "X3 (-31.) MAKE "Y2 (40.) MAKE "X2 (-51.) MAKE "Y1 (80.) MAKE "X1 (-64.) MAKE ":M2 (80.) MAKE ":M1 (-111.) MAKE "L2 [] MAKE "W1 [DROWA] MAKE "N4 "N MAKE "N3 (0) MAKE "NEWLIST [DF GH] MAKE "L1 [] R REVL :L1 TRA IF :N3 = 1 THEN GO 3 NODRAW PR [NOW LET'S DO BOTH] PWZ 300 4: CTXT MAKE "L2 [] SWW PO AIL13B TRAC AIL13B :L1 1 TRA IF :N3 = 1 THEN GO 4 FIN END MAKE "USHAPE (228) MAKE "SSIZE (230) MAKE ":L1 (2.5) MAKE "TH [NOW IS THE TIME] MAKE "N2 (3) ME] PR [LISTS AND WORDS] PWZ 400 PWZ 400 NODRAW PR [WE'LL USE PROCEDURE REVW] PR [TO REVERSE YOUR WORDS] PWZ 300 2: CTXT SWWD PO REVW TRAC PR REVW FIRST :W1 TRA IF :N3 = 1 THEN GO 2 NODRAW PR [NOW LET'S REVERSE LISTS] PWZ 300 3: CTXT SWW PO REVL TRAC PWITHOUT PRIOR WRITTEN AUTHORIZATION] PR [BY THE KRELL SOFTWARE CORP.] PWZ 500 END TO TRAC REPEAT 2 [PR "] CLEARINPUT PRINT1 [TO CONTINUE, HIT RETURN] PR RQ END TO AIL13 TITLE [THROUGH THE LOOKING GLASS] [13] ND PR [NOW LET'S SEE HOW TO REVERSE SO 0 .DEPOSIT 230 1 HT GOODBYE END TO PWZ :TIME IF :TIME > 500 THEN MAKE ":TIME 500 IF :TIME < 1 THEN .GCOLL STOP PWZ :TIME - 1 END TO CPYRT REPEAT 14 [PR "] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MAY NOT BE REPRODUCED] PR [ST :L ) ( REVL BUTLAST :L ) END TO TITLE :NAME :PT RANDOMIZE CS ND PRINT1 [ALICE IN LOGOLAND ' ' PART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END TO CTXT REPEAT 4 [PR []] END TO FIN PR [+++THE END+++] PWZ 100 HT .DEPOSIT 228 0 .DEPOSIT 229D TO SWW CLEARINPUT PR [PLEASE ENTER A LIST OF NUMBERS, WORDS] PR [OR BOTH. REMEMBER TO SEPARATE THEM BY] PR [BLANK SPACES] PR [] PR [AFTER YOU TYPE YOUR LIST, PRESS RETURN] PR [] MAKE "L1 RQ END TO REVL :L IF :L = [] OUTPUT [] OUTPUT SENTENCE ( LAFT MAKE "NEWLIST WORD ( :NEWLIST ) ( XNE :FST :LIST ) IFF MAKE "NEWLIST SENTENCE ( :NEWLIST ) ( XNE :FST :LIST ) MAKE "FST :FST + 1 GO 3 END TO IXL :N :L :I OUTPUT SENTENCE ( SENTENCE ( XFL 1 ( :N - 1 ) :L ) ( :I ) ) ( XFL ( :N + 1 ) LENGTH :L :L ) EN = [] OUTPUT "0 OUTPUT 1 + LENGTH BUTFIRST :LIST ND END TO XFL :FST :LST :LIST IFT ANYOF ( :FST > LENGTH :LIST ) ( :LST > LENGTH :LIST ) ( :FST > :LST ) PR [BAD INPUT TO XFL] STOP MAKE "NEWLIST " 3: IF :FST > :LST OUTPUT :NEWLIST TEST WORD? :LIST IRD & HIT RETURN] MAKE "W1 RQ END TO TRA MAKE "N3 0 PR [AGAIN? YES OR NO?] CLEARINPUT MAKE "N4 RC IF :N4 = "Y THEN MAKE "N3 1 STOP STOP END TO XNE :N :L IF :N = 1 OUTPUT FIRST :L OUTPUT XNE ( :N - 1 ) ( BUTFIRST :L ) END TO LENGTH :LIST IF :LIST TO AIL13B :L1 :N MAKE "L2 SENTENCE ( :L2 ) ( REVW XNE :N :L1 ) IF :N = LENGTH :L1 THEN PR REVL :L2 STOP AIL13B :L1 :N + 1 END TO REVW :W IF :W = " OUTPUT " OUTPUT WORD ( LAST :W ) ( REVW BUTLAST :W ) END TO SWWD CLEARINPUT PR [PLEASE TYPE A WO     MAKE "Y3 (0.) MAKE "W1 [WERTY] MAKE "L2 [SA FD HG] MAKE ":L1 (2.5) MAKE "TH [NOW IS THE TIME] MAKE "USHAPE (228) MAKE "SSIZE (230) MAKE "N2 (1) MAKE "N1 "0 MAKE "N4 " MAKE "N3 (0) MAKE "NEWLIST [DF GH] MAKE "L1 [] ALL] PR [ELEMENTS THAT MATCH EITHER OF 2] PR [SPECIFIED INPUTS] 3: ND PO SW3 PO SWW PO SW2 TRAC NODRAW SW3 TRA IF :N3 = 1 THEN GO 3 FIN END MAKE ":M1 (-111.) MAKE ":M2 (80.) MAKE "X1 (-64.) MAKE "Y1 (80.) MAKE "X2 (-51.) MAKE "Y2 (40.) MAKE "X3 (-31.)E'LL SEARCH THE LISTS THAT YOU ENTER] PR [FOR THE NUMBER 1 AND THE WORD 'ONE'] PWZ 400 2: ND PO SW1 PO SWW TRAC NODRAW SW1 TRA IF :N3 = 1 THEN GO 2 NODRAW PR [WE CAN DO THIS ANOTHER WAY USING] PR [PROCEDURE SW2] PWZ 400 PR [IT SEARCHES A LIST AND PRINTSTTING HOME AGAIN?] PR [] PR [BUT ANSWER CAME THERE NONE] PR [] PR [AND THIS WAS SCARCELY ODD, BECAUSE] PR [] PR [THEY'D EATEN EVERY ONE.] REPEAT 5 [PR "] TRAC NODRAW PR [LET'S TAKE OUR APPROACH FROM THE] PR [WALRUS & THE CARPENTER] PWZ 300 CTXT PR [W1 RQ END TO SW3 SWW PR SW2 "1 "'ONE' :L1 END TO AIL12 TITLE [THE WALRUS AND THE CARPENTER] [12] ND PR [NOW LET'S SEE HOW TO SEARCH LISTS] PWZ 300 CTXT PR [O OYSTERS, SAID THE CARPENTER] PR [] PR [YOU'VE HAD A PLEASANT RUN] PR [] PR [SHALL WE BE TRO ) THEN PR FIRST :L OUTPUT SW2 :WORD1 :WORD2 ( BUTFIRST :L ) END TO SWW CLEARINPUT PR [PLEASE ENTER A LIST OF NUMBERS, WORDS] PR [OR BOTH. REMEMBER TO SEPARATE THEM BY] PR [BLANK SPACES] PR [] PR [AFTER YOU TYPE YOUR LIST, PRESS RETURN] PR [] MAKE "LL 1 ( :N - 1 ) :L ) ( :I ) ) ( XFL ( :N + 1 ) LENGTH :L :L ) END TO LENGTH1 :LIST IF :LIST = " OUTPUT "0 OUTPUT 1 + LENGTH1 BUTFIRST :LIST ND END TO SW2 :WORD1 :WORD2 :L IF :L = [] THEN OUTPUT "DONE IF ANYOF ( :WORD1 = FIRST :L ) ( :WORD2 = FIRST :LWLIST " 3: IF :FST > :LST OUTPUT :NEWLIST TEST WORD? :LIST IFT MAKE "NEWLIST WORD ( :NEWLIST ) ( XNE :FST :LIST ) IFF MAKE "NEWLIST SENTENCE ( :NEWLIST ) ( XNE :FST :LIST ) MAKE "FST :FST + 1 GO 3 END TO IXL :N :L :I OUTPUT SENTENCE ( SENTENCE ( XFT XNE ( :N - 1 ) ( BUTFIRST :L ) END TO LENGTH :LIST IF :LIST = [] OUTPUT "0 OUTPUT 1 + LENGTH BUTFIRST :LIST ND END TO XFL :FST :LST :LIST IFT ANYOF ( :FST > LENGTH :LIST ) ( :LST > LENGTH :LIST ) ( :FST > :LST ) PR [BAD INPUT TO XFL] STOP MAKE "NE END TO PWZ :TIME IF :TIME > 500 THEN MAKE ":TIME 500 IF :TIME < 1 THEN .GCOLL STOP PWZ :TIME - 1 END TO FIN PR [+++THE END+++] PWZ 100 HT .DEPOSIT 228 0 .DEPOSIT 229 0 .DEPOSIT 230 1 HT GOODBYE END TO XNE :N :L IF :N = 1 OUTPUT FIRST :L OUTPUOGRAM MAY NOT BE REPRODUCED] PR [WITHOUT PRIOR WRITTEN AUTHORIZATION] PR [BY THE KRELL SOFTWARE CORP.] PWZ 500 END TO CTXT REPEAT 4 [PR []] END TO TRA MAKE "N3 0 PR [AGAIN? YES OR NO?] CLEARINPUT MAKE "N4 RC IF :N4 = "Y THEN MAKE "N3 1 STOP STOP] PR XNE :N2 :L1 MAKE "N2 :N2 + 1 GO 3 END TO TITLE :NAME :PT RANDOMIZE CS ND PRINT1 [ALICE IN LOGOLAND ' ' PART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END TO CPYRT REPEAT 14 [PR "] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PR TO TRAC CLEARINPUT PRINT1 [TO CONTINUE, HIT RETURN] PR RQ END TO SW1 SWW MAKE "N1 LENGTH :L1 MAKE "N2 1 3: IF :N2 > :N1 STOP IF ANYOF ( XNE :N2 :L1 = "1 ) ( XNE :N2 :L1 = "'ONE' ) THEN PRINT1 [ELEMENT# ' '] PRINT1 :N2 PRINT1 [' ' ELEMENT ' '        ) MAKE "L2 [] MAKE "L1 [JO ANN COMITO] MAKE "NEWLIST [DF GH] ) MAKE "USHAPE (228) MAKE ":L1 (2.5) MAKE "TH [NOW IS THE TIME] MAKE "W1 [WERTY] MAKE "Y3 (0.) MAKE "X3 (-31.) MAKE "Y2 (40.) MAKE "X2 (-51.) MAKE "Y1 (80.) MAKE "X1 (-64.) MAKE ":M2 (80.) MAKE ":M1 (-111.) MAKE "N4 "N MAKE "N3 (0) MAKE "N2 (4) MAKE "N1 (3HAT WITH A LIST, CUTTING] PR [OFF THE FIRST WORD] PWZ 400 CTXT 4: CTXT GUILL TRA IF :N3 = 1 THEN GO 4 CTXT PR [NOW LET'S TAKE A LIST AND CUT OFF THE] PR [FIRST LETTER OF EACH WORD] PWZ 400 5: CTXT OWTH TRA IF :N3 = 1 THEN GO 5 FIN END MAKE "SSIZE (230TLE [OFF WITH THEIR HEADS] [11] ND PR [LET'S SEE HOW THE LIST MANIPULATION] PR [COMMANDS MAY BE USED] PWZ 400 CTXT PR [SUPPOSE WE WANT TO CUT OFF THE FIRST] PR [LETTER OF WORDS] PWZ 400 CTXT 3: CTXT GUILW TRA IF :N3 = 1 THEN GO 3 CTXT PR [LET'S TRY T ( :NEWLIST ) ( XNE :FST :LIST ) MAKE "FST :FST + 1 GO 3 END TO IXL :N :L :I OUTPUT SENTENCE ( SENTENCE ( XFL 1 ( :N - 1 ) :L ) ( :I ) ) ( XFL ( :N + 1 ) LENGTH :L :L ) END TO TRAC CLEARINPUT PRINT1 [TO CONTINUE, HIT RETURN] PR RQ END TO AIL11 TI IFT ANYOF ( :FST > LENGTH :LIST ) ( :LST > LENGTH :LIST ) ( :FST > :LST ) PR [BAD INPUT TO XFL] STOP MAKE "NEWLIST " 3: IF :FST > :LST OUTPUT :NEWLIST TEST WORD? :LIST IFT MAKE "NEWLIST WORD ( :NEWLIST ) ( XNE :FST :LIST ) IFF MAKE "NEWLIST SENTENCEEN AUTHORIZATION] PR [BY THE KRELL SOFTWARE CORP.] PWZ 500 END TO XNE :N :L IF :N = 1 OUTPUT FIRST :L OUTPUT XNE ( :N - 1 ) ( BUTFIRST :L ) END TO LENGTH :LIST IF :LIST = [] OUTPUT "0 OUTPUT 1 + LENGTH BUTFIRST :LIST ND END TO XFL :FST :LST :LIST228 0 .DEPOSIT 229 0 .DEPOSIT 230 1 HT GOODBYE END TO PWZ :TIME IF :TIME < 1 THEN .GCOLL STOP PWZ :TIME - 1 END TO CPYRT REPEAT 14 [PR "] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MAY NOT BE REPRODUCED] PR [WITHOUT PRIOR WRITTT AND THEN] PR [PRESS RETURN] PR BUTFIRST RQ END TO TITLE :NAME :PT RANDOMIZE CS ND PRINT1 [ALICE IN LOGOLAND ' ' PART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END TO CTXT REPEAT 4 [PR []] END TO FIN PR [+++THE END+++] PWZ 100 HT .DEPOSIT "N2 1 3: IF :N2 > :N1 THEN PR [] STOP PRINT1 BUTFIRST XNE :N2 :L1 PRINT1 [' '] MAKE "N2 :N2 + 1 GO 3 END TO GUILW CLEARINPUT PR [PLEASE ENTER A WORD AND THEN] PR [PRESS RETURN] PR BUTFIRST FIRST RQ END TO GUILL CLEARINPUT PR [PLEASE ENTER A LIS 9 TO TRA MAKE "N3 0 PR [AGAIN? Y OR N?] CLEARINPUT MAKE "N4 RC IF :N4 = "Y THEN MAKE "N3 1 STOP STOP END TO OWTH CLEARINPUT PR [WRITE A LIST AND PRESS RETURN] PR [] MAKE "L1 RQ RGUIL :L1 END TO RGUIL :L1 MAKE "L2 [] MAKE "N1 LENGTH :L1 MAKE       A ROLLS PICKLES] EWLIST [DF GH] MAKE "W1 [WERTY] MAKE "L2 [SA FD HG] MAKE "Y3 (0.) MAKE "X3 (-31.) MAKE "Y2 (40.) MAKE "X2 (-51.) MAKE "Y1 (80.) MAKE "X1 (-64.) MAKE ":M2 (80.) MAKE ":M1 (-111.) MAKE "Y (-.350837) MAKE "N4 "Y MAKE "N3 (0) MAKE "L1 [TURKEY PASTRAMI BEER SODERFUL] PWZ 400 ND PR [LISTS ARE JUST WHAT YOU MIGHT THINK] PWZ 400 PR [SEQUENCES OF THINGS SUCH AS WORDS] PR [OR NUMBERS] PWZ 400 AIL10A END MAKE "SSIZE (230) MAKE "USHAPE (228) MAKE "N1 (2) MAKE "N2 (3) MAKE "TH [NOW IS THE TIME] MAKE ":L1 (2.5) MAKE "NL10 TITLE [I'VE GOT A LITTLE LIST] [10] DRAW PR [MOST NEWCOMERS TO LOGO ARE] PR [CAPTIVATED BY THE POWER OF ITS GRAPHICS] PWZ 300 PWZ 300 SBG 8 BG 0 CRV 0 0 PLAID 4 PLAID1 8 PR [YET LOGO'S ABILITY TO HANDLE LISTS IS] PR [EVEN MORE FASCINATING AND POWMMANDS CAN BE COMBINED] PWZ 300 PR [FOR EXAMPLE, TO FIND THE NEXT TO LAST] PR [WORD IN THE LIST] PR [LAST BUTLAST :L1] PR LAST BUTLAST :L1 PR " PR [TO FIND THE FIRST LETTER OF THE LAST] PR [WORD] PR [FIRST LAST :L1] PR FIRST LAST :L1 AIL10D END TO AIC] PWZ 300 PR " PO AIL10C AIL10C :L1 PR " TRAC ND PR [AIL10CB PRINTS THE LIST IN INVERSE] PR [ORDER] PR " PWZ 400 PO AIL10CB AIL10CB :L1 PR " TRAC FIN END TO PWZ :TIME IF :TIME < 1 THEN .GCOLL STOP PWZ :TIME - 1 END TO AIL10B NODRAW PR [THESE COD PR [HERE ARE 2 EXAMPLES OF HOW THESE] PR [COMMANDS CAN BE USED TOGETHER] PWZ 400 PR [] PR [STUDY THE 2 PROCEDURES AIL10C AND] PR [AIL10CB TO SEE HOW THEY WORK] PWZ 300 PR [] PR [AIL10C PRINTS EACH WORD IN OUR LIST] PWZ 400 PR [BE SURE TO EXAMINE AIL10ES OR NO?] CLEARINPUT MAKE "N4 RC IF :N4 = "Y THEN MAKE "N3 1 STOP STOP END TO LENGTH :LIST IF :LIST = [] OUTPUT "0 OUTPUT 1 + LENGTH BUTFIRST :LIST ND END TO XNE :N :L IF :N = 1 OUTPUT FIRST :L OUTPUT XNE ( :N - 1 ) ( BUTFIRST :L ) END TO AIL10 PU SETXY - 135 + :X ( - 30 + :X * .5 ) PD PC 3 SETH 0 FD ( 90 - :X / 3 ) * :Y BK ( 180 - :X * .67 ) * :Y FD ( 90 - :X / 3 ) * :Y RT 90 PC 5 FD ( 80 - :X / 5 ) * SIN ( :X * 2 ) PU CRV :X + 4 * COS ( :N / 3 ) :N + 1 END TO TRA MAKE "N3 0 PR [AGAIN? YWZ 100 END TO TITLE :NAME :PT RANDOMIZE CS ND PRINT1 [ALICE IN LOGOLAND ' ' PART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END TO SBG :N IF :N < 1 THEN STOP BG RANDOM 6 SBG :N - 1 END TO CRV :X :N IF :N > 60 THEN STOP MAKE "Y COS ( :X * 2 )PR []] TRAC AIL10B END TO CTXT REPEAT 4 [PR []] END TO CPYRT REPEAT 14 [PR "] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MAY NOT BE REPRODUCED] PR [WITHOUT PRIOR WRITTEN AUTHORIZATION] PR [BY THE KRELL SOFTWARE CORP.] PWZ 400 PLEARINPUT PRINT1 [TO CONTINUE, HIT RETURN] PR RQ END TO AIL10AZ PR :L1 ; PRINTS LIST PR FIRST :L1 ; PRINTS FIRST ITEM PR LAST :L1 ; PRINTS LAST ITEM PR BUTFIRST :L1 ; PRINTS ALL BUT FIRST ITEM PR BUTLAST :L1 ; PRINTS ALL BUT LAST ITEM REPEAT 4 [H LISTS] PWZ 400 PR " PR [THEY MAY ALSO BE USED TO WORK WITH THE] PR [LETTERS OF INDIVIDUAL WORDS] PWZ 400 PR " PR [LET'S LOOK AT SOME EXAMPLES] PR " PR [SUPPOSE WE WISH TO PRINT THE LIST.] REPEAT 5 [PR "] TRAC ND PO AIL10AZ AIL10AZ END TO TRAC C PR FIRST :L1 AIL10C BUTFIRST :L1 END TO AIL10A ND MAKE "L1 [TURKEY PASTRAMI BEER SODA ROLLS PICKLES] PR [FOR EXAMPLE, HERE IS A LIST] PWZ 50 PR " PR :L1 PWZ 300 PR [THE LOGO COMMANDS FIRST, LAST,] PR [BUTFIRST, AND, BUTLAST ARE USED TO] PR [WORK WITC RANDOM 6 FD 9000 PU HOME PD PLAID :N - 1 END TO FIN PR [+++THE END+++] PWZ 100 HT .DEPOSIT 228 0 .DEPOSIT 229 0 .DEPOSIT 230 1 HT GOODBYE END TO AIL10CB :L1 IF :L1 = [] STOP PR LAST :L1 AIL10CB BUTLAST :L1 END TO AIL10C :L1 IF :L1 = [] STOP TO PLAID1 :N IF :N < 1 THEN STOP IF ( RANDOM 3 ) < 1 THEN CS BG RANDOM 6 PC RANDOM 6 SETH 60 FD 9000 PC RANDOM 6 SETH 300 FD 9000 PU HOME PD PLAID1 :N - 1 END TO PLAID :N IF :N < 1 THEN STOP CS BG RANDOM 6 PC RANDOM 6 SETH 30 FD 9000 SETH 330 P!!! ! ! ! ! !!!!!!!!!  50 SETHEADING 0 SETHEADING 90 SETHEADING 180] MAKE "CL1 [HOME CS PU PD] MAKE "X6 (23) MAKE "N5 (1) MAKE "N3 " 4] MAKE "ML1 [MFD MRT MLT MSETH MBK MSETX MSETY] MAKE "Z (0) MAKE "N6 (5) MAKE "KJ [SETY 50] MAKE ":TIME (500) MAKE "USHAPE (228) MAKE "ALICE (39328) MAKE "SSIZE (230) MAKE "CL [FORWARD 20 FORWARD 25 BACK 50 RIGHT 90 RIGHT 135 LEFT 90 LEFT 45 SETX -50 SETYST [DF GH] MAKE "W1 [WERTY] MAKE "L2 [SA FD HG] MAKE "L1 [FD RT LT SETH BK SETX SETY] MAKE "Y3 (0.) MAKE "X3 (-31.) MAKE "Y2 (40.) MAKE "X2 (-51.) MAKE "Y1 (80.) MAKE "X1 (-64.) MAKE ":M2 (80.) MAKE ":M1 (-111.) MAKE "C1 [SETY 100] MAKE "CDML [7 5 6 4 6 3 + 1 :CL TRA2 WPG2 END TO TRA3 MAKE "N3 0 PR [TO TRY AGAIN HIT A] CLEARINPUT MAKE "N3 RC IF :N3 = "A THEN WPG5 WPG2 END TO AIL1 AILN WPG4 WPG1 WPG2 END MAKE "N4 "Y MAKE "N1 (2) MAKE "N2 (3) MAKE "TH [NOW IS THE TIME] MAKE ":L1 (2.5) MAKE "NEWLITHE PROGRAM NUMBER. E.G. READ "AIL1] PR " WPG3 END TO WPG5 5: MAKE "N5 RANDOM 5 IF :N5 > 1 THEN MAKE "N5 1 IF :N5 = 0 THEN MAKE "X6 1 + RANDOM 4 ELSE MAKE "X6 1 + 2 * RANDOM 12 IF :N5 = 0 THEN PR XNE :X6 :CL1 ELSE PR1 XNE :X6 :CL PR1 [' '] PR XNE :X63 AND RETURN] TOPLEVEL END TO WPG2 ND PR [PLEASE REMEMBER THAT YOU CAN STOP] PR [ANY PROGRAM WHENEVER YOU WANT TO] PR [BY PRESSING 'CTRL' AND 'G' TOGETHER] PR " PR [YOU CAN RESTART THE PROGRAM FROM THE] PR [BEGINNING BY TYPING: READ "AIL AND] PR [ 3: IF :N3 = 1 THEN STOP GO 3 END TO CTXT REPEAT 4 [PR []] END TO PR1 :ZZ PRINT1 :ZZ END TO XNE :N :L IF :N = 1 OUTPUT FIRST :L OUTPUT XNE ( :N - 1 ) ( BUTFIRST :L ) END TO TRA2 PR [=> PLEASE COPY COMMAND AND HIT RETURN] PR [TO RESUME, ENTER TRAH .DEPOSIT :USHAPE REMAINDER :SH 256 .DEPOSIT :USHAPE + 1 QUOTIENT :SH 256 END TO SETSHAPE :SH HT .SHAPE :SH ST END TO SIZE :N ST HT .DEPOSIT :SSIZE :N ST END TO TRA PR [=> TO CONTINUE PRESS RETURN] CLEARINPUT MAKE "N3 RC STOP END TO TR1 TRAOFTWARE CORP.] PWZ 500 END TO PWZ :TIME IF :TIME > 500 THEN MAKE ":TIME 500 IF :TIME < 1 THEN .GCOLL STOP PWZ :TIME - 1 END TO TITLE :NAME :PT CS ND PRINT1 [ALICE IN LOGOLAND ' ' PART ' '] PR :PT PR [] PR :NAME PWZ 100 CPYRT END TO .SHAPE :SDURE.] PWZ 200 TRA PR " FIN END TO INITSHAPES DOS [BLOAD ALICE.SHAPES] END TO CPYRT REPEAT 14 [PR "] PR [COPYRIGHT 1982 BY KRELL SOFTWARE] PR [] PR [THIS PROGRAM MAY NOT BE REPRODUCED] PR [WITHOUT PRIOR WRITTEN AUTHORIZATION] PR [BY THE KRELL SWPG3 PR [EVERY LOGO PROGRAM IS MADE OF ONE OR] PR [MORE PROCEDURES.] PR " PR [TO GET THE NAMES OF ALL THE] PR [PROCEDURES, STOP THE PROGRAM WITH] PR ['CTRL' 'G' AND TYPE: POTS] PR " PR [TO SEE EACH PROCEDURE TYPE: EDIT] PR [AND THE NAME OF THE PROCEICKS,] PR [LET'S PUT HIM IN THE WATER.] TRA BG 3 CTXT TRA ND PR [HE'S HIDING, BUT HE'LL BE BACK] CTXT PR [NOW LET'S MOVE HIM. FIRST I'LL SHOW] PR1 [A LOGO COMMAND.] PR [THEN YOU COPY IT] PR [AND HIT RETURN] PWZ 300 PWZ 300 HOME SPLITSCREEN WPG5 END TO 50 SETHEADING 0 SETHEADING 90 SETHEADING 180] MAKE "CL1 [HOME CS PU PD] RANDOMIZE END TO WPG1 PR [FIRST, LET'S MEET THE TURTLE] TRA HOME SETSHAPE 0 SIZE 1 PR [HE'S VERY FRIENDLY. HE'S ALSO] PR [VERY OBLIGING.] TRA CTXT PR [BEFORE WE ASK HIM TO DO TR TO AILN TITLE [ON A GOLDEN AFTERNOON] [1] DRAW CS INITSHAPES SETSHAPE :ALICE SIZE 2 PR [HI, I'M ALICE!] PWZ 200 PR [LET'S VISIT LOGOLAND.] PWZ 200 END TO WPG4 MAKE "CL [FORWARD 20 FORWARD 25 BACK 50 RIGHT 90 RIGHT 135 LEFT 90 LEFT 45 SETX -50 SETY kTO LENGTH :LIST IF :LIST = [] OUTPUT "0 OUTPUT 1 + LENGTH BUTFIRST :LIST ND END TO TRAC CLEARINPUT PRINT1 [TO CONTINUE, HIT RETURN] PR RQ END TO FIN PR [+++THE END+++] PWZ 100 HT .DEPOSIT 228 0 .DEPOSIT 229 0 .DEPOSIT 230 1 HT GOODBYE END """ " " " " """""""""