' +JJJJ ?\>m0M='+l> /+l   d']6@5L&]655]6LF%5 & "L}"BB5L&]6 X  `6 77777777777JJJJx 77L? L7877777777 776i 7 7867 7`77 777777`x =(`(8`5775I7`B` 76`77`>J><;VU<)?<`8'x0|<&HhHh 8 8 8 8V&` aI꽌ɪVɭ&Y:&<&Y:&;: 꽌ɪ\8`&&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xS&x'8*3Ixix&& 8 9: :' 9: :& :x)*++`FG8`0($ p,&"ųųೳŪŪųųij  !"#$%&'()*+,-./0123456789:;<=>?8  1 '" *"( (9"1 ( ,.(0# 2  /#0/#0 *?'#07#000'#07#0:"4<*55**5*%5)1)1)1)'#0/#0*5*75**5*:5/#0/#0'#07#0:::*::'#07#0"):$(%"%:$(%"%$$2%4%$$2%4%$(2()!)E(!8b $!H(+ "@H !D)"E` @ $ C ` DQ &J80^݌Hh < <݌ < < h < < < <`HJ>݌h Hh݌`葠葠ȔЖȔЖȠHIHHHHhHH݌hHhHh݌H6 (G FG HZXj 80x D9$xxH` >( Z>h Z>L=.xxH >hh@(LH>9L>HH/Hh/ H?-З( 8(& 8$8 H` *8HNx`* >x$50x*$50xL9JJJJ`HHjf5 >h $50x`HA>VD;;P >(ED Z> ?$0x8x D9- 8DD# H8`?E Vˆʎ55L $ 5 55555 &a*5`*5` "L&5_*b*JL%u**Lz%`** $  Q(lXJ̥KlV $  Q(lV eօ3L e3L &%R*L &%Q*L d' "L4% N'e*)n*5 5 &`@-e*f*f* 5 "L# "5f*`L %.* *t*Q*L$ %L&*L` "O**P**u** d' "L% N'e*)n*o*o*n* &8ɍ` ^&f\*555L& ^&NR* & "R*ΩL&)\*Z* ʽ LH*v 3h`0h8` " ['L & N'С55 &5`*A*@` +5L^6L65`  \* ?*0 '\* '  Q( ^&\*lZl^?*c*q)H c*h`f*5h*5j*555@O*AP*`u*@`@5&`Q*R*`E 'Ls' ' ' @DAE@u*`8` %@ @A@`@`**@*A`M5 ) "L&`8@AW*c*@8@-@HAȑ@hHȑ@ȑ@hHȑ@Ȋ@c*h8&ȑ@Hȑ@Ah@L'Hȑ@ȑ@* htphso`hMhL`9V*8U*897T*6S*67`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- (   Ϡ734@~3!+,W,o,*--,,9,-.-~3~3,,,,~3~3,,,,~3_*3 j.5 *H*H`Lc3 (+L3 +55555 1^3_* )3J Q*L_3Ls3443 D23455545554 70 / 7 :/354545455454555535L^/5-5I5555 55` / 4/ 2-5! / 08555454 70L3 (+50+5B5C3 2 70L35 *H*H`Lg3L{3505 *H*H` 3 ,5L3 3 1 ,H 1hBL, 0 BH [1 1h`Lo3 35 ,L3 3 1B , 1L,H 0hB@ 55 [1L133 (+34) 34 70L3 3L3 (+ 055L- (+34L{33454445 70 ^/* / 3B0 HȱBh -355 -8 /L38 25` +5 /3 /. /. 3 E7D B. /. /. 0]34S0J4 4) 3 4D4E B. 4  /. 02L3 Ν3 3`HD٤33DEEhiHLG.h ` /5B5-` /5B-` + X05I33383 33DH /4 E03744Ȍ7 X040 7 J7L35B5C`,5p` / R0-55`50` K/ R0-55`575755` 4/ K/ /( 55L/BȱBL/58` D2BH5BH :/ 75Bȭ5Bhh55 R0B5m55ȱB5m55` /LR0557755`*7*75LR0 E0(33 48`433 R0` E033LR0*7*7`777 555I7575757577** 7757`7 L35555f /55555555 ^/`855 i /B58` 41L 15ȱB5 /5555 /5`3 D23ȑB55B5 / 7 55`5555555555 5555`555`55BC55`5555`L3 /5B5C355 0Q340"B4 3` 02۰Ϭ33B438`3i#`3ЗLw35!50>5555`53 /3m3 3 3733i35 3583 /35ЉLw35`H /5h 25L/~43 533`55555555J5m55m5jn5n5n5ۭ55m5555m55m55`"L? 585H ~.(3` # d ֠z# u*`:SIZE / :SIDES ) PD REPEAT :SIDES [FD (10 * :SIZE / :SIDES) RT (360 / :SIDES)] SPLITSCREEN END MAKE "ANGLE [45] pTO SKETCH :ANGLE LEFT :ANGLE FD 60 END TO ANGLE PRINT [WHAT ANGLE WOULD YOU LIKE?] MAKE "ANGLE REQUEST RT 90 FD 50 PU BK 50 PD SKETCH :ANGLE HT HOME END TO SHAPE :SIZE :SIDES PU HT FULLSCREEN HOME CLEARSCREEN BK 70 LT 90 BK ( 5 *  60/:RESOL)] END TO SHAPE :SIZE :SIDES PU HT FULLSCREEN HOME CLEARSCREEN BK 70 LT 90 BK ( 5 * :SIZE / :SIDES ) PD REPEAT :SIDES [FD (10 * :SIZE / :SIDES) RT (360 / :SIDES)] SPLITSCREEN END CIRCLE :SIZE :RESOL CS HOME LT 90 REPEAT :RESOL [FD :SIZE RT (3  }TO PYT REPEAT 56 [FD 34 RT 56 FD 56 LT 56] END TO H REPEAT 67 FD 45 RT 56 END TO YUCK RT 56 FD 45 LT 90 FD 10 END EAT 3 [FORWARD :SIZE RIGHT 120] END TO SPI :DISTANCE FORWARD :DISTANCE RIGHT 90 SPI :DISTANCE + 5 END MAKE "LEAF (39) DISTANCE BACK :DISTANCE END TO SQUARE :SIZE REPEAT 4 [FORWARD :SIZE RIGHT 90] END TO HEAD LEFT 45 SQUARE 20 END TO VEE RIGHT 120 LINE 50 RIGHT 120 LINE 50 RIGHT 120 END TO MAN VEE FORWARD 50 VEE FORWARD 25 HEAD END TO TRIANGLE :SIZE REPD RARC :RAD 90 END TO SLIDE :DISTANCE PENUP RIGHT 90 FORWARD :DISTANCE LEFT 90 PENDOWN END TO BIRD QCIRCLE 25 LEFT 120 QCIRCLE 25 END TO FLOCK HIDETURTLE RIGHT 20 REPEAT 6 [BIRD LEFT 90 SLIDE 20] SHOWTURTLE END TO LINE :DISTANCE FORWARD :EMAINDER :DEGREES 10 ) END TO QC :RAD QCIRCLE :RAD END TO PETAL QCIRCLE 25 RIGHT 90 QCIRCLE 25 RIGHT 90 END TO NEWFLOWER REPEAT 10 [PETAL RIGHT 360 / 10] END TO PLANT HIDETURTLE NEWFLOWER BACK 50 PETAL BACK 50 SHOWTURTLE END TO QCIRCLE :RA 5 [FORWARD :SIZE * 5 LEFT 5] CORRECTARCL :SIZE ( REMAINDER :DEGREES 10 ) END TO CORRECTARCR :SIZE :AMOUNT FORWARD :SIZE * :AMOUNT RIGHT :AMOUNT END TO RARC1 :SIZE :DEGREES REPEAT QUOTIENT :DEGREES 5 [FORWARD :SIZE * 5 RIGHT 5] CORRECTARCR :SIZE ( REND TO RCIRCLE :RADIUS RARC :RADIUS 360 END TO RARC :RADIUS :DEGREES RIGHT 2.5 RARC1 :RADIUS * 1.74533N2 :DEGREES LEFT 2.5 END TO CORRECTARCL :SIZE :AMOUNT FORWARD :SIZE * :AMOUNT LEFT :AMOUNT END TO LARC1 :SIZE :DEGREES REPEAT QUOTIENT :DEGREESNEWFLOWER1 :LEAF REPEAT 10 [PETAL1 :LEAF RIGHT 360/10] END TO PETAL1 :LEAF QCIRCLE :LEAF RIGHT 90 QCIRCLE :LEAF RIGHT 90 END TO LCIRCLE :RADIUS LARC :RADIUS 360 END TO LARC :RADIUS :DEGREES LEFT 2.5 LARC1 :RADIUS * 1.74533N2 :DEGREES RIGHT 2.5 wTO GARDEN MAKE "LEAF 20 + RANDOM 30 PENUP FORWARD 20 + :LEAF + :LEAF PENDOWN PLANT1 RANDOM :LEAF SLIDE 25 + RANDOM 100 GARDEN END TO PLANT1 :LEAF HIDETURTLE NEWFLOWER1 :LEAF BACK 10 + :LEAF PETAL1 :LEAF BACK 10 + :LEAF SHOWTURTLE END TO     XTO FIBO :A :B :D PRINT1 :A PRINT1 CHAR 32 IF :D = 0 STOP FIBO :A + :B :A :D - 1 END A  ( PRINT :PROC "DEFINED ) END MAKE "H (60) MAKE "INPUTS [X Y] MAKE "PROC "ME MAKE "G (-50) MAKE "INPUTS [X Y] MAKE "PROC "ME OC ( FPUT :INPUTS :LIST ) STOP IF NOT :LINE = [] MAKE "LIST LPUT :LINE :LIST TEACH1 :PROC :INPUTS [] :LIST END TO TEACH PRINT1 [NAME OF PROCEDURE>] MAKE "PROC FIRST REQUEST PRINT1 [INPUTS (IF ANY)?] MAKE "INPUTS REQUEST TEACH1 :PROC :INPUTS [] [] WTO DRAWTO :X :Y PD SETXY :X :Y END TO PR#6 OUTDEV 6 PRINT [HELLO] END TO GOTO :X :Y PU SETXY :X :Y PD END TO ME :X :Y REPEAT 4 [FD :X RIGHT :Y] END TO TEACH1 :PROC :INPUTS :LINE :LIST PRINT1 "< MAKE "LINE REQUEST IF :LINE = [END] DEFINE :PR    AKE "PI (3.14159) MAKE "CV (37) MAKE "CH (36) MAKE "INVFLG (232)  FORWARD 5 LEFT 90 FORWARD 15 RIGHT 90 PENDOWN BOX END TO SQUARE :SIDE REPEAT 4 [FORWARD :SIDE RIGHT 90] END TO DIAG :SIZE REPEAT 4 [FORWARD :SIZE RIGHT 90] RIGHT 45 FORWARD :SIZE * 1.41 LEFT 45 BACK :SIZE LEFT 45 FORWARD :SIZE * 1.41 END MD TO INVERSE .DEPOSIT :INVFLG 0 END TO NORMAL .DEPOSIT :INVFLG 255 END TO PINWEEL REPEAT 4 [BOX] END TO FAN REPEAT 8 [RIGHT 45 BOX] END TO BOX FORWARD 40 RIGHT 90 FORWARD 20 RIGHT 90 FORWARD 40 RIGHT 90 FORWARD 20 END TO BOXES BOX PENUP BACK :LENGTH LEFT 45 END TO CURSOR.HV OUTPUT LIST CURSOR.H CURSOR.V END TO CURSOR.V OUTPUT .EXAMINE :CV END TO CURSOR.H OUTPUT .EXAMINE :CH END TO CURSORPOS :LIST CURSOR ( FIRST :LIST ) ( FIRST BF :LIST ) END TO FLASHING .DEPOSIT :INVFLG 64 EN2 BACK :LENGTH RIGHT 90 FORWARD :LENGTH TREE :LENGTH / 2 BACK :LENGTH LEFT 45 END TO TREE1 :LENGTH :DEPTH IF :DEPTH = 0 THEN STOP LEFT 45 FORWARD :LENGTH TREE1 :LENGTH :DEPTH - 1 BACK :LENGTH RIGHT 90 FORWARD :LENGTH TREE1 :LENGTH :DEPTH - 1RD 2 * :LENGTH NEW.TREE :LENGTH :ANGLE :DEPTH - 1 BACK 2 * :LENGTH RIGHT 2 * :ANGLE FORWARD :LENGTH NEW.TREE :LENGTH :ANGLE :DEPTH - 1 BACK :LENGTH LEFT :ANGLE END TO TREE :LENGTH IF :LENGTH < 2 THEN STOP LEFT 45 FORWARD :LENGTH TREE :LENGTH / E 5 RIGHT 180 PENUP MOVE 60 RIGHT 180 PENDOWN END TO MOVE :SIZE FORWARD :SIZE RIGHT 90 FORWARD :SIZE LEFT 90 END TO RSQUARE :SIZE REPEAT 4 [FORWARD :SIZE RIGHT 90] END TO NEW.TREE :LENGTH :ANGLE :DEPTH IF :DEPTH = 0 THEN STOP LEFT :ANGLE FORWA0 THEN STOP RSQUARE :SIZE RIGHT 20 SPINSQUARES :SIZE :DEPTH - 1 END TO MANYBOXES1 :DEPTH IF :DEPTH = 0 THEN STOP BOXES1 FORWARD 30 RIGHT 90 MANYBOXES1 :DEPTH - 1 END TO BOXES1 RSQUARE 30 MOVE 30 RSQUARE 20 MOVE 20 RSQUARE 10 MOVE 10 RSQUARE :SIZE REPEAT 3 [FORWARD :SIZE RIGHT 120] END TO EQUITRI REPEAT 3 [FORWARD 70 RIGHT 120] END TO GROWSQUARES :SIZE :DEPTH IF :DEPTH = 0 THEN STOP RSQUARE :SIZE RIGHT 20 GROWSQUARES :SIZE + 5 :DEPTH - 1 END TO SPINSQUARES :SIZE :DEPTH IF :DEPTH = ZE CREEP :SIZE RIGHT 60 LOOPS :SIZE :DEPTH - 1 END TO CREEP :SIZE PENUP FORWARD :SIZE PENDOWN END TO NEWTRIANGLE :SIZE LEFT 30 TRIANGLE :SIZE RIGHT 30 END TO FLUFF :SIZE IF :SIZE < 10 THEN STOP TRIANGLE :SIZE FLUFF :SIZE - 10 END TO TRIANGLS * 1.74533N2 :DEGREES RIGHT 2.5 END TO LCIRCLE :RADIUS LARC :RADIUS 360 END TO NEWLOOP :SIZE IF :SIZE < 20 THEN STOP NEWTRIANGLE :SIZE CREEP :SIZE / 2 RIGHT 60 NEWLOOP :SIZE - 4 END TO LOOPS :SIZE :DEPTH IF :DEPTH = 0 THEN STOP NEWTRIANGLE :SI END TO CORRECTARCL :SIZE :AMOUNT FORWARD :SIZE * :AMOUNT LEFT :AMOUNT END TO RARC :RADIUS :DEGREES RIGHT 2.5 RARC1 :RADIUS * 1.74533N2 :DEGREES LEFT 2.5 END TO RCIRCLE :RADIUS RARC :RADIUS 360 END TO LARC :RADIUS :DEGREES LEFT 2.5 LARC1 :RADIURIGHT 5] CORRECTARCR :SIZE ( REMAINDER :DEGREES 10 ) END TO CORRECTARCR :SIZE :AMOUNT FORWARD :SIZE * :AMOUNT RIGHT :AMOUNT END TO LARC1 :SIZE :DEGREES REPEAT QUOTIENT :DEGREES 5 [FORWARD :SIZE * 5 LEFT 5] CORRECTARCL :SIZE ( REMAINDER :DEGREES 10 )IZE :DEPTH IF :DEPTH = 0 THEN STOP RCIRCLE :SIZE RIGHT 20 SPINSLINK :SIZE :DEPTH - 1 END TO SHRINKCIRCLE :SIZE IF :SIZE < 4 THEN STOP RCIRCLE :SIZE SHRINKCIRCLE :SIZE - 10 END TO RARC1 :SIZE :DEGREES REPEAT QUOTIENT :DEGREES 5 [FORWARD :SIZE * 5 TOP FORWARD :SIDE RIGHT :ANGLE POLY :SIDE :ANGLE :DEPTH - 1 END TO RCP :R RIGHT 5 FORWARD :R * ( :PI / 18 ) RIGHT 5 END TO GROWCIRCLE :SIZE :DEPTH IF :DEPTH = 0 THEN STOP REPEAT 12 [RCP :SIZE] GROWCIRCLE :SIZE + 5 :DEPTH - 1 END TO SPINSLINK :S =TO POLYSPIRAL :SIDE :ANGLE :INC :DEPTH IF :DEPTH = 0 THEN STOP POLYSTEP :SIDE :ANGLE POLYSPIRAL ( :SIDE + :INC ) :ANGLE :INC :DEPTH - 1 END TO POLYSTEP :SIDE :ANGLE FORWARD :SIDE RIGHT :ANGLE END TO POLY :SIDE :ANGLE :DEPTH IF :DEPTH = 0 THEN S       D MAKE "FIRST.ADDR (39328) MAKE "NEXT.SHAPE (39428) MAKE "LAST.ADDR (39578) MAKE "SSIZE (230) MAKE "USHAPE (228) MAKE "CRASH (39355) MAKE "ROCKET (39328) RT 36] END TO TRAVEL REPEAT 25 [FORWARD 4] RT 90 END TO GLOW SH 1 SH 2 SH 3 SH 4 SH 6 SH 10 SH 6 SH 4 SH 3 SH 2 SH 1 END TO SIZE :N ST HT .DEPOSIT :SSIZE :N ST END TO SH :N SIZE :N END TO ROCKET READ "ROCKET.AUX INITSHAPES SHOW EN PU SETSHAPE :ROCKET REPEAT 4 [TRAVEL] SETSHAPE :CRASH CS BG 4 REPEAT 4 [GLOW] BG 0 SETSHAPE 0 HT END TO STARS :N IF :N = 0 STOP PU SETXY 140 - RANDOM 280 120 - RANDOM 240 PD PC 1 + RANDOM 5 FD 1 STARS :N - 1 END TO CIRC REPEAT 10 [FD 3 TO .SHAPE :SH .DEPOSIT :USHAPE REMAINDER :SH 256 .DEPOSIT :USHAPE + 1 QUOTIENT :SH 256 END TO INITSHAPES DOS [BLOAD ROCKET.SHAPES] END TO SETSHAPE :SH HT .SHAPE :SH ST END TO SHOW DRAW HT STARS 20 PU SIZE 1 HT SETXY ( - 50 ) 0 PD PC 1 CIRC  TO CHECK CATALOG END C  :SIZE * 5 RIGHT 5] CORRECTARCR :SIZE ( REMAINDER :DEGREES 10 ) END TO RARC :RADIUS :DEGREES RIGHT 2.5 RARC1 :RADIUS * 1.74533N2 :DEGREES LEFT 2.5 END CZE ( REMAINDER :DEGREES 10 ) END TO LARC :RADIUS :DEGREES LEFT 2.5 LARC1 :RADIUS * 1.74533N2 :DEGREES RIGHT 2.5 END TO CORRECTARCR :SIZE :AMOUNT FORWARD :SIZE * :AMOUNT RIGHT :AMOUNT END TO RARC1 :SIZE :DEGREES REPEAT QUOTIENT :DEGREES 5 [FORWARD TO LCIRCLE :RADIUS LARC :RADIUS 360 END TO RCIRCLE :RADIUS RARC :RADIUS 360 END TO CORRECTARCL :SIZE :AMOUNT FORWARD :SIZE * :AMOUNT LEFT :AMOUNT END TO LARC1 :SIZE :DEGREES REPEAT QUOTIENT :DEGREES 5 [FORWARD :SIZE * 5 LEFT 5] CORRECTARCL :SI  1 "' '] PRINT :THING END PRINT :KNOWLEDGE :LEVEL STOP IPRINT ( QUESTION :KNOWLEDGE ) :LEVEL IPRINT [IF YES:] :LEVEL INSPECT1 YES.BRANCH :KNOWLEDGE :LEVEL + 1 IPRINT [IF NO:] :LEVEL INSPECT1 NO.BRANCH :KNOWLEDGE :LEVEL + 1 END TO IPRINT :THING :LEVEL REPEAT 2 * :LEVEL [PRINT ;THIS FILE CONTAINS PROCEDURES TO ;PRINT THE ANIMAL GAME'S DATABASE ;(THE LIST IN "KNOWLEDGE) IN A HUMAN- ;READABLE FORM. ;TYPE ; INSPECT.KNOWLEDGE TO INSPECT.KNOWLEDGE INSPECT1 :KNOWLEDGE 0 END TO INSPECT1 :KNOWLEDGE :LEVEL IF WORD? :KNOWLEDGE I "PROC FIRST REQUEST PRINT1 [INPUTS (IF ANY)?] MAKE "INPUTS REQUEST TEACH1 :PROC :INPUTS [] [] ( PRINT :PROC "DEFINED ) END }TO TEACH1 :PROC :INPUTS :LINE :LIST PRINT1 "< MAKE "LINE REQUEST IF :LINE = [END] DEFINE :PROC ( FPUT :INPUTS :LIST ) STOP IF NOT :LINE = [] MAKE "LIST LPUT :LINE :LIST TEACH1 :PROC :INPUTS [] :LIST END TO TEACH PRINT1 [NAME OF PROCEDURE>] MAKEEAD :FILE .DEPOSIT :SAVMOD 0 .DEPOSIT :NOINTP 0 END MAKE "NOINTP 233 MAKE "SAVMOD 231 MAKE "PNTBEG 7185 MAKE "ENDPNT 7248 MAKE "EDOUT 7219 OUTDEV 0 END TO CLOSE .CALL :ENDPNT 0 .DEPOSIT :NOINTP 255 .DEPOSIT :SAVMOD 1 SAVE :OPEN.FILE ERNAME "OPEN.FILE .DEPOSIT :SAVMOD 0 .DEPOSIT :NOINTP 0 END TO OPEN.FOR.APPEND :FILE MAKE "OPEN.FILE :FILE .DEPOSIT :NOINTP 255 .DEPOSIT :SAVMOD 1 R ;THESE PROCEDURES ALLOW LOGO PROGRAMS ;TO WRITE DISK FILES. ;FOR FURTHER INFORMATION, READ ;LOGO FOR THE APPLE II: TECHNICAL MANUAL ;SECTION 6.3. TO OPEN :FILE MAKE "OPEN.FILE :FILE .CALL :PNTBEG 0 END TO DPRINT :THING OUTDEV :EDOUT PRINT :THING   :NOINTP 255 ; DON'T ALLOW CTRL-G .DEPOSIT :SAVMOD 1 READ :FILE .DEPOSIT :SAVMOD 0 .DEPOSIT :NOINTP 0 END MAKE "ENDBUF (156) MAKE "SAVMOD (231) MAKE "NOINTP (233) MAKE "PRINTER (1) T92 ( .EXAMINE :ENDBUF ) + 256 * ( .EXAMINE :ENDBUF + 1 ) END TO SHOWFILE :FILE READTEXT :FILE SHOWTEXT END TO SAVETEXT :FILE .DEPOSIT :NOINTP 255 .DEPOSIT :SAVMOD 1 SAVE :FILE .DEPOSIT :SAVMOD 0 .DEPOSIT :NOINTP 0 END TO READTEXT :FILE .DEPOSIT TO PRINTTEXT OUTDEV :PRINTER SHOWTEXT OUTDEV 0 END TO PRINTFILE :FILE OUTDEV :PRINTER SHOWFILE :FILE OUTDEV 0 END TO PRINT.MEM :FROM :END IF :FROM = :END STOP PRINT1 CHAR .EXAMINE :FROM PRINT.MEM :FROM + 1 :END END TO SHOWTEXT PRINT.MEM 81   POSITION. MAKE "CH 36 ;CURSOR H POSITION. ;LOCATION OF LOGO INVERSE VIDEO FLAG. MAKE "INVFLG 232 S. TO FLASHING .DEPOSIT :INVFLG 64 END ;MAKES CHARACTERS APPEAR BLACK-ON-WHITE. TO INVERSE .DEPOSIT :INVFLG 0 END ;RESTORES CHARACTERS TO NORMAL. TO NORMAL .DEPOSIT :INVFLG 255 END ;THESE ADDRESSES ARE FROM THE ADDRESSES ;FILE. MAKE "CV 37 ;CURSOR V O CURSOR.HV OUTPUT LIST CURSOR.H CURSOR.V END ;TAKES A LIST OF [H V] AND SETS THE ;CURSOR TO THAT POSITION. ;USES THE CURSOR PRIMITIVE. TO CURSORPOS :LIST CURSOR (FIRST :LIST) (FIRST BF :LIST) END ;CAUSES CHARACTERS TO BE PRINTED AS ;FLASHING CHARACTER ];OUTPUTS THE CURRENT VERTICAL POSITION ;OF THE CURSOR. TO CURSOR.V OUTPUT .EXAMINE :CV END ;OUTPUTS THE CURRENT HORIZONTAL ;POSITION. TO CURSOR.H OUTPUT .EXAMINE :CH END ;OUTPUTS A LIST OF THE CURRENT ;HORIZONTAL AND CURRENT VERTICAL ;POSITIONS. TPROCS :PROCS [] OUTDEV 0 .CALL 7248 0 ; ENDPNT SAVEBUF :FILE .DEPOSIT 233 0 ; NOINTP END ROCS :TEMP IF :PROCS = [] STOP MAKE "TEMP TEXT FIRST :PROCS IF ( ALLOF LIST? :TEMP ( NOT [] = :TEMP ) ) RUN LIST "PO FIRST :PROCS POPROCS BF :PROCS [] END TO PSAVE :FILE :PROCS .DEPOSIT 233 255 ; NOINTP .CALL 7185 0 ; PNTBEG OUTDEV 7219 ; EDOUT PONY LOGO EXPRESSION, OR THE VALUE ;OF ANY LOGO VARIABLE: ; PSAVE "STUFF :GROUP1 ;WILL WRITE ALL THE PROCEDURES IN THE ;LIST GROUP1 IN THE FILE NAMED STUFF. TO SAVEBUF :FILE .DEPOSIT 231 1 ; SAVMOD SAVE :FILE .DEPOSIT 231 0 ; SAVMOD END TO POPROCS :P Z;THIS FILE CONTAINS PROCEDURES ALLOWING ;YOU TO SAVE LISTS OF PROCEDURES. ;EXAMPLE: ; PSAVE "GRAPHIX [CIRCLE SQUARE SQUIRAL] ;WILL SAVE THE PROCEDURES CIRCLE, SQUARE ;AND SQUIRAL IN THE FILE CALLED GRAPHIX. ;OF COURSE, THE LIST MAY BE THE RESULT ;OF AMAKE "LBIT 1 MAKE "RBIT 2 MAKE "FBIT 4 MAKE "BBIT 8 MAKE "SPACE "' ' .TCMD "* 0 END GO BACK N STEPS] PR [TRT N - TURN RIGHT N DEGREES] PR [TLT N - TURN LEFT N DEGREES] PR [] PR [TPU - PEN UP] PR [TPD - PEN DOWN] PR [HORNHI, HORNLO, HORNOFF - HORN COMMANDS] PR [EYESON, EYESOFF - LIGHT COMMANDS] PR [] END TO SETUP MAKE "NOINTP 233 "P 0 END TO TLT :DIST .TCMD "L :DIST END TO TRT :DIST .TCMD "R :DIST END TO TBK :DIST .TCMD "B :DIST END TO TFD :DIST .TCMD "F :DIST END TO HELP ND PR [HERE ARE SOME SIMPLE TURTLE COMMANDS:] PR [] PR [TFD N - GO FORWARD N STEPS] PR [TBK N - 255 .BIGCMD :CMD :ARG STOP .DEPOSIT :NOINTP 255 OUTDEV 7 ( PRINT :CMD :ARG ) OUTDEV 0 .DEPOSIT :NOINTP 0 IF RC? IF RC = CHAR 7 PRINT "STOPPED! TOPLEVEL END TO EYESOFF .TCMD "E 0 END TO HORNOFF .TCMD "H 0 END TO TPD .TCMD "P 1 END TO TPU .TCMDYESON .TCMD "E 1 END TO .BIGCMD :CMD :ARG IF :ARG < 256 .TCMD :CMD :ARG STOP .TCMD :CMD 255 .BIGCMD :CMD :ARG - 255 END TO HORNHI .TCMD "T 1 .TCMD "H 1 END TO HORNLO .TCMD "T 0 .TCMD "H 1 END TO .TCMD :CMD :ARG MAKE "ARG ROUND :ARG IF :ARG > CH? MAKE "BITS TOUCH OUTPUT ( ANYOF :BITS = :BBIT :BITS = :BBIT + :LBIT :BITS = :BBIT + :RBIT ) END TO TOUCH OP 255 - .EXAMINE 49392 END TO FTOUCH? MAKE "BITS TOUCH OUTPUT ( ANYOF :BITS = :FBIT :BITS = :FBIT + :RBIT :BITS = :FBIT + :LBIT ) END TO EH OUTPUT :BITS = :FBIT END TO LTOUCH? MAKE "BITS TOUCH OUTPUT ( ANYOF :BITS = :LBIT :BITS = :LBIT + :FBIT :BITS = :LBIT + :BBIT ) END TO RTOUCH? MAKE "BITS TOUCH OUTPUT ( ANYOF :BITS = :RBIT :BITS = :RBIT + :FBIT :BITS = :RBIT + :BBIT ) END TO BTOUz#   Ϡ ŮϠ ĮϠ   ˮϠ ҮϠ̱Ϡ ҮϠ ϮϠ ӮϠ ǮӠ  ŮϠҮϠԮϠ ԮϠȮϠ̮ҮϠӮϠ   ˮϠ îîϠîΠ îϠɮԠ"ԮϠ̮Ϡ   ŮԮϠ ĮϠ ԮӠԮϠԮخϠ̮Ϡ ԮϠ"Ϡ" ԠϠ" Ϡ ҮϠ ӮϠ ӮϠӮϠ Q;COPYRIGHT 1981, TERRAPIN, INC. ;THIS FILE CONTAINS PROCEDURES FOR ;USING THE TERRAPIN TURTLE (TM). ;REFER TO YOUR TERRAPIN TURTLE MANUAL ;FOR INSTRUCTIONS. TO NOTOUCH? OP TOUCH = 0 END TO ANYTOUCH? OP TOUCH > 0 END TO FTOUCHONLY? MAKE "BITS TOUC     TO LEG :SIZE FD :SIZE / ( 2 * COS 30 ) END TO TET :SIZE :DEPTH IF :DEPTH = 0 STOP REPEAT 3 [LEG :SIZE TET :SIZE * .5 :DEPTH-1 RT 150 FD :SIZE RT 150 LEG :SIZE RT 180] END Tx P@*@* E*Q* @*U(@ TT** P@(@@@@*(  ՊժՊԨ @U բUJR"A(Ј(U Ղ(ՊPA@ЪЪ U*"JP@E@*UT P(U҄Ѫ P*@P*((U Q*ĨՀPU*Պ (R@  U U T @J PU (P*E(@ UU**@(U P(QU* @  P @T ʢՊШ @RD U (U* *@(Ԁ*Ԋ*ժ@E*%UЪЂЪ U* BEP**U P(U(U"* (P*H(UPʔ !@U UЀU* TтPJTP(P*E QT*U@@*U@(EQ* (@ @T(A  ʨʊՊ AJD U*P T*(P(ՊR)Uժ$@*EЊU @BU*"U P UЪ * Pʂ * P*H"U@(UЊP@ U*(Ъ TѪ@JT (U@*U AD(U@"U@(UU* @ @*(TT*A(U  *ЊШՂHBU*@ * (ԂժJ( ժ $A*EU T U*EU P UЪŪĪ@"*  @@ (P**U@@@ T U U* Ԫ( PѪ@JT U  @@*P *E*UP T(U U* ( @ (U*A  QP* ԊЪԪԨJE**PU* ՀժՊժJ*Պ(ժTA*UЂ$P (BU PUЪĪ@U** (@TP(*UP( (U @@ U U* Ī PѪ@JT U*@@PT** *UR* Q*A * @* UQ*A *U @B ժЪŪЪՂIT  Ո@ ՂՊՊժH*Ղ ժ(TE*QԪ%P*UJ(BU"PЪĪPU** ( P*U @ P@@(T( @@ @ ((U*Īł(PѪ JT U PЪ** * Q*I @* @* UQ*A (*U@P (ЂʂЂP*)P*P ՂՊՊժ()U )ժ TRD*U) T P* @BU*PЪĪU(*( U*UU @U@P @P @* (U"T*Īŀ @(ѪJRP( U   **@ժ*Ղ(Q@R @@*@* U*Q(*U A*UPP*ԪʄѪЀԪ Ъժժ R @ ՂՊՊը(%U !ժ UJEЀ T*A*P @@U PЪԪ U**H@@E@*U(AP"U  T @U @` @( (U"U*Īŀ *Ѫ((R@ U T           D TO FOO :N :OCT PLAY.NOTE WORD :N :OCT 50 FOO :N + 1 :OCT END .05946 MAKE "BASE.PERIOD 150 MAKE.PITCHES 20 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 EN.RATIO END TO .CALL.2 :ADDR :INPUT1 :INPUT2 .CALL :ADDR :INPUT2 + ( ROUND :INPUT1 ) * 65536 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 1URS IF :PITCHES = [] STOP PLAY.NOTE ( FIRST :PITCHES ) ( FIRST :DURS ) PLAY ( BF :PITCHES ) ( BF :DURS ) END TO MAKE.OCTAVE :PITCH :OCTIND :PERIOD IF :PITCH = 0 STOP MAKE ( WORD "# :PITCH :OCTIND ) :PERIOD MAKE.OCTAVE :PITCH - 1 :OCTIND :PERIOD * :N ?TO FR4 PLAY [13 8 13] [40 40 80] END TO FR3 PLAY [8+ 9+ 8+ 6+ 4+ 1+] [35 5 20 20 40 40] END TO FR2 PLAY [4 6 8] [40 40 80] END TO FR1 PLAY [1+ 3+ 4+ 1+] [40 40 40 40] END TO FRERE FR1 FR1 FR2 FR2 FR3 FR3 FR4 FR4 END TO PLAY :PITCHES :D   SS8 L`08LřIIII >>>>>>>>>>>%%>~III &<<< ( 50 + :W ) * ( 50 + :W ) ENDGAME END TO DYNAMOVE SETXY XCO ) * ( XCOR - :X ) + ( YCOR - :Y ) * ( YCOR - :Y ) END TO CHECK.STOPPED IF ALLOF :VX = 0 :VY = 0 MAKE "T :T - 1 END TO READKEY IF RC? OUTPUT READCHARACTER OUTPUT " END TO RCIRCLE :R REPEAT 36 [RCP :R] END TO COMMAND MAKE "COM READKEY IF :COM = " TO REPLAY? PRINT [DO YOU WANT TO PLAY AGAIN?] IF ( FIRST FIRST REQUEST ) = "Y REPLAY STOP TOPLEVEL END TO ENDGAME CLEARINPUT SPLITSCREEN PRINT [YOU CRASHED] PRINT SE [YOUR TIME WAS] :T REPLAY? END TO DISTANCE.SQUARED :X :Y OUTPUT ( XCOR - :X    COM = "? HELP END TO UNDOALL DRAW MAKE "HISTORY [] END TO INSTANT HELP SETUP END E [FD 10] [FD 10] [FD 10] [FD 10] [CIRCLE] [RT 30] [RT 30] [RT 30] [FD 10] [FD 10] [FD 10] [FD 10] [RT 30] [RT 30] [RT 30]] MAKE "BCOLOR 0 MAKE "COLOR 2 PTO COMMAND :COM IF :COM = "F RUN.AND.RECORD [FORWARD 10] STOP IF :COM = "R RUN.AND.RECORD [RIGHT 30] STOP IF :COM = "L RUN.AND.RECORD [LEFT 30] STOP IF :COM = "D UNDOALL STOP IF :COM = "U UNDO STOP IF :COM = "N LEARN STOP IF :COM = "P ASK STOP IF : MAKE "NAME ( FIRST REQUEST ) DEFINE :NAME ( FPUT [] :HISTORY ) UNDOALL END TO UNDO IF :HISTORY = [] STOP MAKE "HISTORY BUTLAST :HISTORY DRAW RUN.ALL :HISTORY END TO RUN.AND.RECORD :ACTION RUN :ACTION MAKE "HISTORY ( LPUT :ACTION :HISTORY ) END PRINT [?: GIVES HELP] PRINT [] PRINT [] PRINT [PRESS ANY KEY TO CONTINUE.] PRINT RC SPLITSCREEN CURSOR 0 20 END TO ASK PRINT [WHAT PICTURE DO YOU WANT TO SHOW?] RUN.AND.RECORD REQUEST END TO LEARN PRINT [WHAT DO YOU WANT TO CALL THIS PICTURE?] CURSOR 0 0 PRINT [F: MOVES THE TURTLE FORWARD] PRINT [R: TURNS IT RIGHT] PRINT [L: TURNS IT LEFT] PRINT [D: DRAW (CLEARS THE SCREEN)] PRINT [U: UNDO (ERASES LAST COMMAND)] PRINT [N: NAMES THE PICTURE] PRINT [P: SHOWS A PICTURE. ASKS FOR ITS NAME.] TTO SETUP MAKE "HISTORY [] DRAW INSTANT.COMMAND END TO INSTANT.COMMAND COMMAND READCHARACTER INSTANT.COMMAND END TO RUN.ALL :COMMANDS IF :COMMANDS = [] STOP RUN FIRST :COMMANDS RUN.ALL ( BUTFIRST :COMMANDS ) END TO HELP TEXTSCREEN CLEARTEXT OES IT HAVE CLAWS?] LOBSTER [[CAN IT RUN?] OSTRICH FISH]]] TNOWLEDGE [[DOES IT HAVE FOUR LEGS?] [[DOES IT GO MOO?] COW [[DOES IT WHINNY?] HORSE PIG]] [[DOES IT HAVE CLAWS?] LOBSTER [[CAN IT RUN?] OSTRICH FISH]]] ?] MAKE "KNOWLEDGE [[DOES IT HAVE FOUR LEGS?] [[DOES IT GO MOO?] COW [[DOES IT WHINNY?] HORSE PIG]] [[DU] IFTRUE OUTPUT SENTENCE "AN :WORD IFFALSE OUTPUT SENTENCE "A :WORD END TO ANIMAL ND PRINT [THINK OF AN ANIMAL. I WILL] PRINT [TRY TO GUESS IT BY ASKING QUESTIONS.] PRINT [] GUESS :KNOWLEDGE PRINT [LET'S TRY AGAIN] WAIT 2000 ANIMAL END MAKE "K MAKE "QUESTION REQUEST EXPAND.KNOWLEDGE :QUESTION :RIGHT.ANSWER :WRONG.ANSWER END TO MEMBER :ITEM :LIST IF :LIST = [] OP "FALSE IF :ITEM = FIRST :LIST OP "TRUE OP MEMBER :ITEM BF :LIST END TO ADD.A.OR.AN :WORD TEST MEMBER ( FIRST :WORD ) [A E I O R :WRONG.ANSWER PRINT [OH WELL, I WAS WRONG. WHAT WAS IT?] MAKE "RIGHT.ANSWER ( LAST REQUEST ) PRINT [PLEASE TYPE IN A QUESTION WHOSE ANSWER] PRINT ( SE [IS "YES" FOR] ADD.A.OR.AN :RIGHT.ANSWER [AND] ) PRINT ( SE ["NO" FOR] ADD.A.OR.AN :WRONG.ANSWER ) OUTPUT ASK.YES.OR.NO :QUESTION END TO EXPAND.KNOWLEDGE :NEW.QUESTION :YES.ANSWER :NO.ANSWER MAKE "KNOWLEDGE REPLACE :KNOWLEDGE :WRONG.ANSWER ( LIST :NEW.QUESTION :RIGHT.ANSWER :WRONG.ANSWER ) END TO QUESTION :TREE OUTPUT FIRST :TREE END TO GET.SMARTERT I AM!] STOP GET.SMARTER :CHOICE END TO ASK.YES.OR.NO :QUESTION PRINT1 :QUESTION IF "? = LAST LAST :QUESTION PRINT [] ELSE PRINT "? MAKE "INPUT REQUEST IF :INPUT = [YES] OUTPUT [YES] IF :INPUT = [NO] OUTPUT [NO] PRINT [PLEASE TYPE "YES" OR "NO"] IF :RESPONSE = [YES] GUESS YES.BRANCH :CHOICES STOP GUESS NO.BRANCH :CHOICES END TO FINAL.GUESS :CHOICE MAKE "FINAL.QUESTION ( SE [IS IT] ADD.A.OR.AN :CHOICE [?] ) MAKE "RESPONSE ASK.YES.OR.NO :FINAL.QUESTION IF :RESPONSE = [YES] PRINT [LOOK HOW SMANO.BRANCH :DATA :WORD :NEW.BRANCH ) END TO NO.BRANCH :TREE OUTPUT LAST :TREE END TO YES.BRANCH :TREE OUTPUT FIRST BUTFIRST :TREE END TO GUESS :CHOICES IF ( WORD? :CHOICES ) FINAL.GUESS :CHOICES STOP MAKE "RESPONSE ASK.YES.OR.NO ( QUESTION :CHOICES ) TO WAIT :N REPEAT :N [] END TO INITIALIZE.KNOWLEDGE MAKE "KNOWLEDGE "FISH END TO REPLACE :DATA :WORD :NEW.BRANCH IF :DATA = :WORD OP :NEW.BRANCH IF WORD? :DATA OP :DATA OP ( LIST QUESTION :DATA REPLACE YES.BRANCH :DATA :WORD :NEW.BRANCH REPLACE      CRASH 39355 MAKE "USHAPE 228 MAKE "LAST.ADDR 39578 MAKE "SSIZE 230 MAKE "NEXT.SHAPE 39428 MAKE "FIRST.ADDR 39328 nTO .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 ROCKET.SHAPES] END MAKE "ROCKET 39328 MAKE "T :SH 256 END MAKE "FIRST.ADDR 39328 MAKE "NEXT.SHAPE 39428 MAKE "LAST.ADDR 39578 MAKE "PEN 4 MAKE "SSIZE 230 MAKE "CRASH 39355 MAKE "FILE "ROCKET MAKE "USHAPE 228 MAKE "ROCKET 39328 CKET.AUX INITSHAPES SHOW END NH 3 SH 2 SH 1 END PES :FILE DOS ( LIST "BLOAD ( WORD :FILE ".SHAPES ) ) END TO PLAY READSHAPES "ROCKET SHOW END TO SH :N SIZE :N END TO .SHAPE :SH .DEPOSIT :USHAPE REMAINDER :SH 256 .DEPOSIT :USHAPE + 1 QUOTIENM 240 PD PC 1 + RANDOM 5 FD 1 STARS :N - 1 END TO SHOW DRAW HT STARS 20 PU SIZE 1 HT SETXY ( - 50 ) 0 PD PC 1 CIRC PU SETSHAPE :ROCKET REPEAT 4 [TRAVEL] SETSHAPE :CRASH CS BG 4 REPEAT 4 [GLOW] BG 0 SETSHAPE 0 HT END TO ROCKET READ "RO TO SH :N SIZE :N END TO GLOW SH 1 SH 2 SH 3 SH 4 SH 6 SH 10 SH 6 SH 4 SH 3 SH 2 SH 1 END TO TRAVEL REPEAT 25 [FORWARD 4] RT 90 END TO CIRC REPEAT 10 [FD 3 RT 36] END TO STARS :N IF :N = 0 STOP PU SETXY 140 - RANDOM 280 120 - RANDOSS$$,,,,...666.-6>??????$,-$,,,,>76---<''''766--<>>>>>>>>>>%%>~III &<<< FID1 RC END TO DOCOM :KEY PRINT :KEY MAKE "KEY WORD "COM. :KEY IF [] = TEXT :KEY PRINT CHAR 7 E    E WAIT.] READ "SHAPE.EDIT END TO END.EDIT ER SAVESHAPES ER SETUP ER NEXT.ADDR ER GET.VAL ER HANDLE.VEC ER REMOVE.BYTE ER END.SHAPE ER DEF.LOOP ER MAKESHAPE ER END.EDIT END PE - 39328 ) END.EDIT DEFINE "INITSHAPES ( LIST [] ( LIST "DOS ( LIST "BLOAD WORD :FILE ".SHAPES ) ) ) SAVE WORD :FILE ".AUX PRINT [PLACE THE DISK CONTAINING THE SHAPE] PRINT [EDITOR IN THE DISK DRIVE AND PRESS] PRINT [RETURN.] PRINT RC PRINT [PLEAS256 * .EXAMINE 116 ) + .EXAMINE 116 MAKE "USHAPE 14 * 16 + 4 MAKE "PEN 4 END TO SAVESHAPES :FILE PRINT [PLACE THE FILE DISK IN THE DISK DRIVE] PRINT [AND PRESS RETURN.] PRINT RC DOS ( LIST "BSAVE ( WORD :FILE ".SHAPES ) ",A :FIRST.ADDR ",L :NEXT.SHALITSCREEN TOPLEVEL END TO SETUP MAKE "SSIZE 230 IF NOT THING? "NEXT.SHAPE MAKE "NEXT.SHAPE 39328 IF :NEXT.SHAPE < ( .EXAMINE 7175 ) + 256 * .EXAMINE 7176 PRINT [SHAPES NOT MADE WITH THIS LOGO.] TOPLEVEL MAKE "FIRST.ADDR :NEXT.SHAPE MAKE "LAST.ADDR ( 8 OP 3 ; <- IF :CHRN = 85 MAKE "PEN 0 OP "PEN ELSE IF :CHRN = 68 MAKE "PEN 4 OP "PEN OP "ERR END TO NEXT.ADDR MAKE "ADDR :ADDR + 1 .DEPOSIT :ADDR 0 .DEPOSIT :ADDR + 1 0 MAKE "SECTION 1 MAKE "BYTE 0 IF :ADDR = :LAST.ADDR PRINT [TOO MANY SHAPES] SPECTION * 8 ST STOP IF :VEC > 0 ST NEXT.ADDR STOP .DEPOSIT :ADDR :BYTE + 64 NEXT.ADDR MAKE "BYTE 3 .DEPOSIT :ADDR :BYTE ST MAKE "SECTION 64 END TO GET.VAL :CHRN IF :CHRN = 16 OP 0 ; C-P IF :CHRN = 21 OP 1 ; -> IF :CHRN = 14 OP 2 ; C-N IF :CHRN = HANDLE.VEC :VEC IF :VEC = "ERR PRINT1 CHAR 7 STOP IF NOT NUMBER? :VEC STOP IF ( ALLOF :SECTION = 64 :PEN = 4 ) NEXT.ADDR HANDLE.VEC :VEC STOP MAKE "BYTE :BYTE + :SECTION * ( :PEN + :VEC ) HT .DEPOSIT :ADDR :BYTE IF NOT :SECTION = 64 MAKE "SECTION :S :ADDR + 2 0 .DEPOSIT :ADDR + 3 0 SPLITSCREEN MAKE "NEXT.SHAPE :ADDR + 2 END TO REMOVE.BYTE IF :SECTION = 1 MAKE "ADDR :ADDR - 1 IF :ADDR < :NEXT.SHAPE PRINT1 CHAR 7 MAKE "ADDR :NEXT.SHAPE .DEPOSIT :ADDR 0 DRAW MAKE "SECTION 1 MAKE "BYTE 0 END TOON :BYTE [] STOP MAKE "CHAR ASCII :CHAR IF :CHAR = 3 END.SHAPE :ADDR STOP IF :CHAR = 27 REMOVE.BYTE DEF.LOOP :ADDR :SECTION :BYTE [] STOP HANDLE.VEC GET.VAL :CHAR DEF.LOOP :ADDR :SECTION :BYTE [] END TO END.SHAPE :ADDR .DEPOSIT :ADDR + 1 0 .DEPOSITPE :NEXT.SHAPE HT .DEPOSIT :NEXT.SHAPE 0 .DEPOSIT :NEXT.SHAPE + 1 0 SETSHAPE :NEXT.SHAPE ST DEF.LOOP :NEXT.SHAPE 1 0 [] ( PR :SHAPE "DONE ) END TO DEF.LOOP :ADDR :SECTION :BYTE :CHAR MAKE "CHAR RC IF NUMBER? :CHAR SIZE :CHAR DEF.LOOP :ADDR :SECTI 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 MAKESHAPE :SHAPE DRAW ( PRINT [DEFINING SHAPE] :SHAPE ) MAKE :SHA     [IMM 105 ZP 101 ZPX 117 ABS 109 ABY 121 INDX 97 INDY 113] I] MAKE "CPX [IMM 224 ZP 228 ABS 236] MAKE "CMP [IMM 201 ZP 197 ZPX 213 ABS 205 ABX 221 ABY 217 INDX 193 INDY 209] MAKE "BRK [IMP 0] MAKE "ASL [ACC 10 ZP 6 ZPX 22 ABS 14 ABX 30] MAKE "AND [IMM 41 ZP 37 ZPX 53 ABS 45 ABX 61 ABY 57 INDX 33 INDY 49] MAKE "ADC INDY 177] MAKE "JSR [ABS 32] MAKE "JMP [ABS 76 IND 108] MAKE "INY [IMP 200] MAKE "INX [IMP 232] MAKE "INC [ZP 230 ZPX 246 ABS 238 ABX 254] MAKE "DEY [IMP 136] MAKE "DEX [IMP 202] MAKE "DEC [ZP 198 ZPX 214 ABS 206 ABX 222] MAKE "CPY [IMM 192 ZP 196 ABS 204] MAKE "ORA [IMM 9 ZP 5 ZPX 21 ABS 13 ABX 29 ABY 25 INDX 1 INDY 17] MAKE "NOP [IMP 234] MAKE "LDY [IMM 160 ZP 164 ZPX 180 ABS 172 ABX 188] MAKE "LDX [IMM 162 ZP 166 ZPY 182 ABS 174 ABY 190] MAKE "LDA [IMM 169 ZP 165 ZPX 181 ABS 173 ABX 189 ABY 185 INDX 161 MAKE "BEQ [REL 240] MAKE "BCS [REL 176] MAKE "BCC [REL 144] MAKE "STY [ZP 132 ZPX 148 ABS 140] MAKE "STX [ZP 134 ZPY 150 ABS 142] MAKE "STA [ZP 133 ZPX 149 ABS 141 ABX 157 ABY 153 INDX 129 INDY 145] MAKE "RTS [IMP 96] MAKE "PLA [IMP 104] MAKE "PHA [IMP 72 6MAKE "CLC [IMP 24] MAKE "TYA [IMP 152] MAKE "TXA [IMP 138] MAKE "TAY [IMP 168] MAKE "TAX [IMP 170] MAKE "SEC [IMP 56] MAKE "SBC [IMM 233 ZP 229 ZPX 245 ABS 237 ABX 254 ABY 249 INDX 225 INDY 241] MAKE "BPL [REL 16] MAKE "BNE [REL 208] MAKE "BMI [REL 48]P 233;E9 U48;1C50 MAKE "ENDBUF 156;9C MAKE "EDOUT 7219;1C33 MAKE "CLREOP 7416;1CF8 MAKE "CLREOL 7580;1D9C MAKE "BKTFLG 108;6C MAKE "BELL 7387;1CDB MAKE "ANSN4 196;C4 MAKE "HOME 7406;1CEE MAKE "CH 36;24 MAKE "CV 37;25 MAKE "EXPOUT 6;6 MAKE "COUT 7439;1D0F MAKE "NOINT"OTPTRU 7194;1C1A MAKE "OTPFLS 7188;1C14 MAKE "OTPFX2 7177;1C09 MAKE "OTPFIX 7179;1C0B MAKE "NARG2 158;9E MAKE "NARG1 162;A2 MAKE "KILRAM 49290;C08A MAKE "GETRM1 49291;C08B MAKE "FILLEN 43616;AA60 MAKE "FILBEG 43634;AA72 MAKE "EPOINT 154;9A MAKE "ENDPNT 72 MAKE "OTPDEV 54;36 MAKE "INPDEV 56;38 MAKE "HIMEM 115;73 MAKE "VZZZZZ 7175;1C07 MAKE "USHAPE 228;E4 MAKE "USERPZ 252;FC MAKE "SSIZE 230;E6 MAKE "INVFLG 232;E8 MAKE "SCROLL 7509;1D55 MAKE "SAVMOD 231;E7 MAKE "PPTTP 7200;1C20 MAKE "PNTBEG 7185;1C11 MAKE   [,X] ZPX [,Y] ZPY] MAKE "IMMS [[] IMM] MAKE "INDEXES [[] ABS [,X] ABX [,Y] ABY] MAKE "INDIRS [[)] IND [,X )] INDX [) ,Y] INDY] MAKE "ZPS [[] ZP [,X] ZPX [,Y] ZPY]  MAKE "IMM [2 2] MAKE "ZP :IMM MAKE "ZPX :IMM MAKE "ZPY :IMM MAKE "ABS [3 1] MAKE "ABX :ABS MAKE "ABY :ABS MAKE "IND [3 2] MAKE "INDX :IMM MAKE "INDY :IMM MAKE "IMMS [[] IMM] MAKE "ACC [1 0] MAKE "IMP :ACC MAKE "REL [2 1] MAKE "ZPS [[] ZP   SYMBOLS :CODE :ORG STORE :CODE :ORG END MAKE "$BASE (16) MAKE "CH (36) TO OPCODE :INS :MODE OP LOOKUP :MODE THING :INS END T :DOT :BYTE END E ERROR [ORG < END OF LOGO] ER SETUP END SYMBOLS BF :CODE :DOT + ( SYMS.L FIRST :CODE FIRST FIRST :CODE ) END TO ERNS :NAMES IF :NAMES = [] STOP ERNAME FIRST :NAMES ERNS BF :NAMES END TO ASSEMBLE :CODE IF THING? "LABELS ERNS :LABELS MAKE "LABELS [] ND PR :CODE MAKE "CODE BF TEXT :CODE OP SYMS.L BF :LINE FIRST BF :LINE IF LIST? :TOKEN RUN :TOKEN OP 0 IF NUMBER? :TOKEN OP 1 ERROR :TOKEN [NOT AN INSTRUCTION] END TO STORE :CODE :DOT IF :CODE = [] STOP STORE1 FIRST :CODE FIRST FIRST :CODE END TO SYMBOLS :CODE :DOT IF :CODE = [] STOP AMODE1 FIRST :ARGS BF :ARGS END TO INSLEN :MODE OP FIRST THING :MODE END TO INS? :TOKEN IF THING? :TOKEN OP LIST? THING :TOKEN OP "FALSE END TO SYMS.L :LINE :TOKEN IF INS? :TOKEN OP INSLEN AMODE :TOKEN BF :LINE IF LABEL? :TOKEN ASSIGN :TOKEN :DOT ED] MAKE :LABEL :DOT MAKE "LABELS FPUT :LABEL :LABELS END TO LABEL? :TOKEN OP ": = LAST :TOKEN END TO AMODE :TOKEN :ARGS IF RELINS? :TOKEN OP "REL IF IMPINS? :TOKEN OP "IMP IF :ARGS = [] OP "IMP IF :ARGS = [A] OP "ACC IF BF :ARGS = [] OP "ABS OPCODE :INS :MODE OP LOOKUP :MODE THING :INS END TO LO8 :N OP REMAINDER :N 256 END TO HI8 :N OP QUOTIENT :N 256 END TO ERROR :A :B ( PRINT :A :B ) TOPLEVEL END TO ASSIGN :LABEL :THING MAKE "LABEL BL :LABEL IF THING? :LABEL ERROR :LABEL [ALREADY USING :TOKEN OP "FALSE END TO RELINS? :TOKEN IF INS? :TOKEN OP "REL = FIRST THING :TOKEN OP "FALSE END TO LOOKUP :THING :PLACE IF :PLACE = [] ERROR :THING [BAD MODE] IF :THING = FIRST :PLACE OP FIRST BF :PLACE OP LOOKUP :THING BF BF :PLACE END TO OP :BYTE OP :LEN END TO AMODE1 :FPART :LPART IF :FPART = "# OP LOOKUP BF :LPART :IMMS IF :FPART = "! OP LOOKUP BF :LPART :ZPS IF :FPART = "( OP LOOKUP BF :LPART :INDIRS OP LOOKUP :LPART :INDEXES END TO IMPINS? :TOKEN IF INS? :TOKEN OP "IMP = FIRST THTORE2 :LINE :MODE :LEN :BYTE MAKE "BYTE OPCODE FIRST :LINE :MODE MAKE "LEN INSLEN :MODE EMIT :DOT :BYTE IF :LEN = 1 PRINT [] OP :LEN MAKE "BYTE OPERAND :MODE BF :LINE IF :LEN = 2 EMIT :DOT + 1 :BYTE OP :LEN EMIT :DOT + 1 LO8 :BYTE EMIT :DOT + 2 HI8IST? :ARGS OP RUN :ARGS IF NUMBER? :ARGS OP :ARGS IF FIRST :ARGS = "" OP ASCII BF :ARGS IF THING? :ARGS OP THING :ARGS ERROR :ARGS [NOT A LABEL] END TO EMIT :DOT :BYTE .DEPOSIT :CH 29 ( PRINT1 :DOT "= :BYTE ) PRINT [] .DEPOSIT :DOT :BYTE END TO S"TOKEN FIRST :LINE IF NUMBER? :TOKEN EMIT :DOT :TOKEN STORE BF :CODE :DOT + 1 STOP STORE BF :CODE :DOT + ( STORE2 :LINE ( AMODE :TOKEN BF :LINE ) [] [] ) END TO OPERAND :MODE :ARGS IF :MODE = "REL OP RELOPER MAKE "ARGS NTH ( OP.LOC :MODE ) :ARGS IF L - 1 BF :PLACE END TO RELOPER MAKE "ARGS ( OPERAND "ABS :ARGS ) - :DOT - 2 IF :ARGS < 0 OP 256 + :ARGS ELSE OP :ARGS END TO STORE1 :LINE :TOKEN PRINT1 :LINE IF LIST? :TOKEN PRINT [] STORE BF :CODE :DOT STOP IF LABEL? :TOKEN MAKE "LINE BF :LINE MAKE E "TEMP ( ASCII FIRST :WORD ) - 55 IF ANYOF ( :TEMP > :$BASE ) ( :TEMP < 0 ) ERROR FIRST :WORD [NOT A DIGIT.] OP $1 BF :WORD :VAL * :$BASE + :TEMP 0 END TO OP.LOC :MODE OP FIRST BF THING :MODE END TO NTH :N :PLACE IF :N = 1 OP FIRST :PLACE OP NTH :N E TO SETUP MAKE "$BASE 16 MAKE "CH 36 READ "AMODES READ "OPCODES MAKE "ORG $ "99A0 ER SETUP END TO $ :WORD OP $1 :WORD 0 0 END TO $1 :WORD :VAL :TEMP IF :WORD = " OP :VAL IF NUMBER? FIRST :WORD OP $1 BF :WORD :VAL * :$BASE + FIRST :WORD 0 MAK    L2t ;p qp) {p L@Lp ;p qp H+HlLpL@ *p ]pꥣŢ Lb ⥣ L@6767`@ tL@ *p qpH酞TU IN Mzi TiU IN MzLBtLp)LD *pTUL@LMLTMUL@ ;p' p p$% L@LpLp {L@ % L@ *p p_pꦢdL2t *p qp>  ,L@ 2U TL@LlL\ȱ`ȱȱȱ !TL4 ȱȱȱ RLbYZ[\𑢪 RiL SU Z RL\ RL@ tLE "H3ȱ8ƽl tL,X tXhH L 0Hh`BL@ YW$  v 5vL@|)% vL@ R! $wL@  vL@ XUΐL\ L\L YW$ , VL@  VL@|z  @LLW { [} q~L}Ls}L} ]X O R T ?T SL@ ~Q -ȱ 2U  Lq YWԢLC Q `W tL@L\ X{| t t XL@ L@ L@$L` LHF 2U !TL@Lq Q Q L O Q*ȱ 2U L Qȱҩ Q ?TLc Q X Q Q QL@ SU D Z R L锠ȱ 2U Y QLȱ Q Q Q ЋLL\ Q 2U  Z R L\Lq QL@ Qb iQ, V L<= I QLL lL@8 L2tLl Q SU񢢠 Z 2UᥞLד 2U+ȱN Q L ~Q Q iQ ~Qy RQ ~Q / iQLa@ Q y Q Q L@LpLl QHH *p0覢hhHHHH 2U΢ Q ~Q L Qh' Q Q Q Q QL@0 RQ RQݠ iQL Q'Xg|h YWL@kk0L@ XL@L\kLC Pgp h YW;`{|e L\0 Q 2U62Ll q ZLL} Z Uwxyz Vx(w VȱŪū VLL@yzL\ Q 2U ?TLJ#ȱȱȱ Q٥ Q ?T8ƭL̏ Q SU Z RL@e L\{|  L@e L\{| L@L@eL\d{|  L@ Q jq;L@ $L@ $L@ $ Q jqL@g 2U䥟 ?TLLȱȱȱ ?T4ȱȱȱ ?TȥLC ?TȥLΏF Q ?T쥄 oLLF oLL Q 2UȥL` oT Qȱȱȱ oTȥL"LQL@l iQ  JR oTLL *p {pL Q qL,tLp Q Q 2U ?TLLe L\ Q Q Q QLL Q 2U`8`F; "H)ȱ8ƽ q kL 0H i\ Q oL@ L  C\ ȥ`ȑȱ֥ ȱ oT i\L Q QLL  q  Ll¥ QIȱM ?T Q ȥȱL> Q QLL oTL^ȱ, oT LȥL󌥳 i\Lq hȑ8ȱ ᅟL oTȥ` ȱLLL܎ q Qȱڢ/ oT Q ȥȱȱȥLaL`Lp ȱ LLLl q oTLL  C\ȱ LLL܎ q C\ oTLL 2U N N E q  C\:: oTȥ`":H LÈL qLÈ Q jqFLF=Ģ Q jq#LF`Ģ Q jqFP QL@ Q 2UL Z RL` Q 2UR QL@ Q 2U𢢢 Q 2UԢ p˥NOL` *p pЅHHH phh phLɇ Q QȱȱFL@? RQ RQȱȱ R iQLG QL@LL NLॢHH qhhўн,ȱўг"ȱȱП𙪈)L܆L` 0⥣00  x` o `xL҆PQ Q Qx iQ 2U 2U% ĢnLP NLG臞tt RQ QLŞş RSLxL@L: p p  xLڇ x՞L@L z xLbt TN` ]N ` x &Lxɀ1@)@ x ]Lx N x N©à N xâ0 xԕLxrqZdzUW0|}\;q~q~ o,00!բL) xLbt y  N5z 0 NL99z N x泠 N 0 NLi5z N x  N N y x x N NLyHH o x x NH NL N x x N NH N x x N  *z x o" 80EE xLbt o MzLBt xLbt o x x xLbtL4yL\ o Dy ;y zL@t o Dy ;y zLBt o yL@t o DyL@t@ NDLN@ ND N xL x o j N x N x xLbt o j N x N xŝ ƂFGL` 󥚅FGF8FGGF 灥FGLŜŝ. L^FG Ƃ8F@GAFGLtL? ~ L|`eЅf oL@teЅf o =zL@t xLbt o" u0E0٥E xLbtL4y  {DE 륛 ` {D8DEE `DEFG 灥DE Ƃ v { ƂiieeŹŸ FGLFGG`F_ {]^L|FGLFGLŜŝ  {LȂ`` Ŝ $% L{$&$L{ śةŚ {%$L$( FG]^ {L|%&$ `$`DEFG nDE { 灥eešŠ8FGLFGG^F] {]^L|FGLFGL_`_]`^ {L| L]^ { {L|]^ $]^L{ Ś LlLśŜ@A@ |L|HHeeŝŜ {Lhh`ŝ#Ŝ_8D`EśDŚ {LL@AAś@Ś@ȑ@@8@A`A` BFG8$ƛDE {H 灪h ED'&$D8'DEBL_ED( D8(LpBBAаBABi'L {]^L| L$LŝŜ_Ŝ`ŝ _F`GL|_  LL} \~ |L{ q~X t t zW 蕢 tL&~X FG S~ |L{  P {#] ^ { L{~3 pL{H *$H%H(H)H$#%Ѕ()Π th)h(h%h$h`H ~hH 5h #$!H! 4}h%L~%#L 4}L|H hL~8} {L|H hL| FG%C$B_`B$C% FG` $ )ߑ($$!$%L LL}HhL 3W [}L} XU" RL~ q~ $wL}eL\$ q~ vL} q~ vL} q~X 5vX S~L~%L\%)` B{HH#|IBȹ#|Bȹ#|ClB l|^b| =  ]|%zYÀGB L L~ dL\hh  { W t l| iQLGC {L@FG$B%CŝMŜG 7$!H! 4}h%L|%#(FG%C$B 4L\@&&&&&&0hFfffFfff0-8H埪堨塐΅hDuD0 N@ N`Ly o0 TNLbt N0J8j) N N x N xƢբ E) NL{ ``8ƛ` `($ʆ Mz N x N x9 zLx zLx9z`5z`ZZ8Ii`E =z =z Ffffu00#&&& 0ϥ =z`8` z沥 z z zLzL=z =z` >NHh&&&&&𾆥 0hhI`hhhh8`eL\ `x DyL`x x SyL=zH qy x yh`|y`@0 3N`ɟ1 x yL=zɞFfffL4y N0 z0 z Lz zk N z x yhi淥 ,W Lw `x xL`x =z !xLx0 &&&Ʋ`u` Vx$ x8`0 Ƣ&&` x` `x x` x` `x x` x xŢ DxPp wv` Qxe y x DxF8 Qx y8 LĥHH &whh`Ć R|X t tȱ 2ULwȱȱȱ 蕢 t /!ȱȱȱ t L|w t X`ȱȱi ,W X`ȱȱ ` rL!v rL!v rH QHƳh L,vȱȱȱ vL=vYZ[\` viLev RXl" X t t tXL t t 蕢 2U "  tL(  t):  uL@ uL@ uL@ u: L@ t vL@ t vL@[  R] L@ 蕢 RQ ~Qȱvu iQLt Q QȱL4u) 2UR q%X' 'ȱȱȱ u uLu2'L' `rnSi0 ~Q >N x x *O & & &` ^TLLɀztHh `TLL `X tX`v iQ 2UĠtLP'uttuuttuttt uL]`"h ~QƲ`¢泩0 ~Q泩.L~Q x- ~Q泥#Ʉ Ƀ$P 0O¥ɃP *O¥s xɄ Ƀ P 0O t66 s. ~Q8… s QƳ0L~Q s. ~Q泩 s s I©NE ~Q泥…LrL{r) 2U)`!ȱHȱh))`ȱ ~QLzrHj泩 Q Q oTƳƳh` =z- ~Q泩 zi0H沢 fN±-¥ Z aq#ȱ aq Lq M+H =zLQq x0h8` &Mhh` 2U ZPQ`ȵRS r\eL\† 2UFBLrHhH r\e L\ rL{r ` x8` x8`ȱLl8ȱLl Q p.LDy Q Q p Dy p L;y `8` ]p0` ]p0`H {ph`8`D N pHD Nh(` 2U&"`Hʈh8` qݑоȱȱii xU LnŬŭiLo xU ȱ iQ QiL'onnnnnnnnnnnn``` Q p?` Q p2Lx Q Q p p#ǥ nLo`)槥` xUޱ 8ƩLDn iQŨũ𫥩 xU  QLsnH Qh8j)koLPL])ȱѨ iQLn)ȱۨ iQLnii xU ȱ ln8ƯLlnhm8ȱ ln 3iijȱ lniƳܠȱО dn泥ɔ )n )nbЅ`*aȥbabi槥@ tLyk t L;k W [} SUHH q~ vX 5vX  Sk# thh ykZ t+ t ~k k {L@ lZ kL@ SkP kL@ l` kL@ Q Sk  yk kL@ SU SkH tLyk n` oYZ dni毥[ꥯ\􅮩%ׅ&ׅ Nhmօnօ'ׅ(ׅ NLxH ;kh)CkL\ L##"@v3ة$Zk[ Q`Lt8 kHJJJJ kh) 0:iL W l [} kZ k`iai {W Qk iQLGC QL@ SU SkJ*'EEIL!j%JfLjȥJfJf jåJfêLj%I1Jf*JfJf jåJfêLjJfJfH 'ȩ Jh)`H 'ȩ1 JI1h)I1`Pfff L@Zi HkօlօxaI1JJJJu)hIhȄ1J`­楸8e ee eJJJJKJ`Q`å45O)!vL>j)?JfLjJfLj)EEI`I1`)LqjEEI%`٥ڥۥ`0 J ji0e_u& f hHH&8崅嵅hhLhu eLZh e hHH&8嶅巅hhLhu hLh hu eLh fLh e585Lg H*hee` H*hee`ŴH0HH1H @gh1hh0hhhhh`0"0 ɿ `8`1J eu8مڅu8崅嵅8ۅ܅ŵ Ŵuu! h8崅嵅5Lg *8嶅巅5152. g SfD٭EڭFۭG,ei8i#Hiihifi`i,hi,fiPII ifѥ09ې1L@gBC@ABC d@ALd gG SfDEFG8BHCheميeڅڥ8@HAheۅۊe܅ܥHمHڅHۅ܅hH JeHGFiFGiG` KJJ eKK@` KJJEJ eKK@`ۆلڢܦH)JJh & & f) #i1g0JŅ`#0JI0`'01 I`0 I0ݩ()%0Qeu)j00,h"c qy xc x ^d xc x N x qy x cb xLc qy xL^d4 N xd x՞ x yL=zM x xLxdLy d zDEEDiDEiE`` d zFGUdLoa Nb x c UdLaFF``HH c qy x ac x ^d xc x N x qy xc x ahh`cLxc xLxHHb x ` aL b gۤLPeLDf:` NHHHj x Dy z8i  JKLgbׅJׅK hhhhLJe N N N H j N x N x N x x N x Jah j N x N x N x x N xLa N c b b De e bPTW` `R%P! ^TL>a詼 ZTL?T o a c Ud ]pL4y0  륣` "cLoaLa` ob x c Ud ]p*0ɿ cLaL\`L4y`ʠhb x NL@b`*U ` k` k@4`Ү@` bL@ ` SU:H:HH bhh4@@ Sk# t yk` t+ t; t kh: bL@jb` WTW0P4ݭ`` {S$%  Ӆ: a a a b aL@ ` o y b bL@ `:: bL@ `:: bL@ ` RL@ ` RL@ RL@ ` `L@ ` o wb b a a aL@ ` o xLp_ p>Lp ` *p _`L@ ` *p _ _L@4`4E %e4`` N ` x `xH o`L@ `L@ ` `L@ ` b a b b aL@ `Ldt `Ldt `Ldt ` o N x y bL_ ` o N xLL^ ` a4 a: a a QL@ ` Q Ga a b b aL@ ` Q a a b b aL@ ` Q Q Ga a 0 L2]  PйQШ tO4 tL:]°X tXЧУ{|ie} t 蕠~ȱ~ ~ȱ~ q]L]X ,WX` 蕢 tr t{ v tmȱm t.  I LMHh R t, lIL@S` W0 `L@ `iL@[Iɸȱ:Hȱh؆ȱ񦲥`LoT``  ] X l o`„ r\ }\ \ I 2U d:eiȱM8ɴLQѴ#ȱѴȱȱȱLZȱО Q¥YZµ[(\"… ?T… jTL?TiifȱŨJ歭ũ5ȱ步Щȱ 2U `ȱȱ R RQiLZN QŬŭ$8Ưȱ ?TLjZ U ?TLMZLo Q ȱ q 0 ĦLS \i淢 ULXiiĵcȥi櫥/ȱȱȱȥiLoYȱȱLUYȥ U S`LCƲ`kkk`ȱɠ  YWL X|ƪk YWLXɜ WL X YW XU`LL`ÆĵHHȱ \hh0ȱȱȱ淠ȱ̢ U`w Hȱh` i``žſȱi 蕢 tL,W zWɸ ȱ` ȱ`iy z`Qȱ YWɘ=7/ȱ YW ެFfee`¦OIldi歠ȱiiů¥LV abLVȥLULUȱ `yȱzyɸ ȱaHaȱaHaabhbhah )` H xUh` xU ) `` Q 2ULl8```А*$`FfFfi`i…`L]; U labȵĠȵõȵ`LTȱ`H T Q Q liLTH T lLTHH T Q lLTH T Q li$ bV f`hhLTVb fdL\aȵa 2U  `Hȱhȱ`ȱ` ` i`i` j`Рfe8`РLlSąÆ 2U L\ȱȱ@ĵ UDȥ UP`dL\ 3, JRL.R Q ", RRNO)? O)?O`L0"7U"&.68` ,`dL\L\PR` PS`Q` `)ȱ`)ȵ`eiQ Q; Q}e Q Q o QmLQop m Q Q RƲ` Qmoȱmpmȱmnm`ȵi`i``ȵ8`8ȱ`iȱ`8`,,` 8i[aȥbaibi२`ڢfP ~Q泤 zrP N[kP ~Q泤 zrRLN[TRUEFALSE[ȥ[ȥ[[ Uȱ8e[i[\`  ȱlL]gȱh` Q Qk Q Q xLx NV`H@ N N *O Nh80 >N x x@ NLx MLx MLx800 0 0e0 e0`hh`{|nl o; {2 TU R n  { `Y[ЅZ\؅ qPɪ[ai\b7ϥ+@ N M N *OƼ@ N x x8`8`````` 3N`&&&`Ffff`0`0`0`0`HHhh`Du0`80u0`80 >N=  I `eL\<=5)<<=5`P M_H rN0#@ N rN0 rN0 N0 hH N0h8`@ N {N xhH *Oh_ NLSM NLSM M # M.'EN1浥+ M 6OLSM MЎ xLSM`:`0`M`M`@PLITW]  QƺW>L ?T LCLȥȥ`0Y'Q<=<'CLLV0 ][&: <= 8`輯L` <>=;()+-*/[] o LLo M p<= t M <K &M*<= M `TȥLIå<=H fH< V PLO<=<  PL< =Ġ oThȥL5KȥL5Kh@ Z Uȥ0)ȱ LIȥe<= oTå;ƹ ILK<= RQLIƺ0<= QLI7 t<=LI"<= LJ'<=湩LJ:<= à<'<=< A'/~ PL4s fN<=< 6 PL$ +G<'<=) i\L Q Q Q Qk Q Q Q ~ Q Qy QLa@L { v? zI IH iQ La@ndmc 7QLMIcdL'I Y&`  L<=`<=VÅ0$ I%< <=` KV` LL*K ]KH Lh[. PLQȱ 楦ɪL@^RTI`SAVEPICT_.ASPECT^SETHEADING^SETH^SETX^SETXY^SETY#_SHOWTURTLE#_STJ_SPLITSCREENS_TEXTSCREENx^TURTLESTATEx^TS&^XCOR.^YCORY_WRAP oI&IL0Ѕ_BACK_BK_BACKGROUND_BG]CLEARSCREEN]CS]DRAWj_FORWARDj_FDA_FULLSCREEN6^HEADING2_HIDETURTLE2_HT^HOMEg^LEFTg^LT`_NOWRAP_PENCOLOR_PC^PENDOWN^PD^PENUP^PU"`READPICT>^RIGHT>SAVEďSENTENCEďSESINt{SQRTSTOPTESTTEXTDTHENTHINGjTHING?DTITLESTOfHTOPLEVELTOWARDSTRACEWORDWORD?1B(D)].BPT.CALL.DEPOSIT.EXAMINE.GCOLL.NODES;yOPPADDLEPADDLEBUTTONRPAUSEuPOTS͕PRINT͕PRؕPRINT1;PRINTOUT;PODPROCEDURES]QUOTIENTRANDOMVRANDOMIZEkREADlREADCHARACTERlRCnREMAINDERGREPEATVREQUESTVRQROUNDRUNlERERNAMEFIRSTFPUTBGO@GOODBYEސIF֐IFFALSE֐IFFΐIFTRUEΐIFTINTEGER>LASTCHARLISTLIST?LPUTOMAKEDNAMESjNDjNODRAWNOTNOTRACENUMBER?ASCII5OUTDEVyOUTPUTDALLALLOF@ANYOFATANUBUTFIRSTUBF BUTLAST BLqlCATALOGۉRC?CLEARTEXTCLEARINPUTCONTINUECOքCOSCURSORDEFINEdlERASEFILElDOS~lERASEPICTk}EDITk}ED ELSEENDERASEee~~ؑؑؤؤ??,$%,$ .>.5?7--65??-%+.6??';'!) -, 67+56>?8</( -,%7/1/26'?<?( e-.$-7576><<< --,.,%->6'75767'''$''--5.$-77><$-5-.m7?7-$<,-5.$5--?7>>'<+-!*>/<$=φ>+-tuvwxyyz{{||}}~~~@@|-yc/n>?[ QA.jsg,0A+Xo8098/J|ej<FFKꑂzT_S y݉9Y׷m G8h2 u2)3.l L~O. ,,>>RRORTTO END PLEASE WAIT... IGNORING EXTRA END BSAVE ,A$2000,L$20002002BLOAD DELETECATALOG .LOGO.PICT.MUSzG{G{k|G|Y|k||}G}P}X}a}j}s}{~B~F~J~O~S~W~[~_~d~h~l~p~t~x~|@ACEGIKMNPRSUWXZ\]_`bcdfghjklmnoqrstRSION 1.0 WELCOME TO LOGO LOGO SYSTEM BUG; ENTERING APPLE MONITOR IGNORING UNMATCHED RIGHT-BRACKET PLEASE ERASE SOMETHING. AT LEVEL , IN LINE OF DEFINED IS MAKE "TRACING ON TRACING OFF EXECUTING ENDING EDIT: CTRL-C TO DEFINE, CTRL-G TO ABNO STORAGE LEFT!STOPPED!TOO MANY PROCEDURE INPUTSPROCEDUREPARENTHESISIF-THENEVALUATION NESTING TOO DEEP ̠ϠǠϠ WRITTEN BY L. KLOTZ, P. SOBALVARRO AND S. HAIN UNDER THE SUPERVISION OF H. ABELSON. COPYRIGHT (C) 1981 MIT VES -- DISK ERRORTHE DISK IS WRITE PROTECTED -- FILE NOT FOUNDTHE DISK IS FULL -- FILE LOCKED -- UNRECOGNIZED DOS COMMANDTHERE'S NOTHING TO SAVELABELS CAN BE USED ONLY INSIDE PROCEDURES IS A LOGO PRIMITIVERESULT: BAD INPUT TO RUN OR REPEAT OUT OF PLACE AT THEN IS OUT OF PLACETHERE IS NO LABEL END SHOULD BE USED ONLY IN THE EDITOR SHOULD BE AN INPUT ONLY TO PRINTOUT, ERASE OR EDITCAN'T DIVIDE BY ZERONUMBER TOO LARGE OR TOO SMALL IN THERE IS NO PROCEDURE NAMED TURTLE OUT OF BOUNDING INPUTS INSIDE ()'S NEEDS SOMETHING BEFORE ITTOO MUCH INSIDE PARENTHESES DOESN'T LIKE  AS INPUT IS A LOGO PRIMITIVE SHOULD BE USED ONLY INSIDE A PROCEDURE DOESN'T LIKE  AS INPUT. IT EXPECTS TRUE OR FALSEELSE IS OUT OF PLACEPAUSETHE : IS`ЀДв V&B\rћ.T҉Ҟ 4EVVWuӍӷ &06nFN6w 5L` . ; : " :  :  : ܭJ)` I I ` . 00:)`A0 G)i ` LL   L` *L7 Lʆ$0 $!$$%LhhL`` $H%H(H)HH  Lr  hh)h(h%h$` 𙥦HH hh HLh槥8`^[8``TQ" #(!%L8Hh`EHH / YhhLL   RR468:?E P bpS  L` L` 5L` L` [L` 5 [L` 5L L [LVLR $$%H  hi#L5HI h5` " )ߤ0)?$($$!  R$%%#.%"H (*)+!hi# H (*0 %HJ) )h)i( (e (`$(!` *, I,,`l8$(H) @( ,h(I`LM `,I}L>L@Lu~} QLBtL{ QL QL` QLiH@`I?55L{`   nL{ lIL @NO`8NO)? N)?N` L ,HI h,,`l6WXV 8967`@  0`"%" " " """""""""!!! ! ! ! ! !!!!!!!!!                                    ] X >ǬŠԮӠύh