EPEAT 2 [SOUND 86 105 17 16] REPEAT 2 [SOUND 76 252 17 16] SOUND 68 149 17 16 .GCOLL END TO SOUND :HI :LO :W :D .DEPOSIT 54296 15 .DEPOSIT 54277 9 .DEPOSIT 54273 :HI .DEPOSIT 54272 :LO .DEPOSIT 54276 :W SOUND.1 0 :D .DEPOSIT 54276 0 .DEPOSIT ING LOCAL "HEADING MAKE "HEADING HEADING LOCAL "PEN? MAKE "PEN? ITEM 2 DRAWSTATE SETH 90 PU STAMP1 :THING SETH :HEADING IF :PEN? PD END TO POS :X :Y PU SETXY :X :Y END TO DEMO.43 DRAW POS ( - 85 ) ( - 30 ) PC 0 STAMP [ÓINGING ÓTARS] POS 0 30 ND.PAGE REPEAT 200 [PU PD] .GCOLL SOUND 34 75 17 32 SOUND 51 97 17 32 END TO DEMO.4 :S IF ANYOF ( ASCII :S < 47 ) ( ASCII :S > 52 ) STOP .GCOLL RUN ( SE ( WORD "DEMO.4 FIRST :S ) ) END.PAGE MAKE "QF 1 END TO SOUND.1 :TI :D IF :TI = :D STOP SOUND MAKE "FL 1 STOP IF RC? DEMO.4 RC IF :QF = 1 MAKE "QF 0 STOP DEMO.3 :N + 1 END TO DEMO.41 DRAW PC 0 POS - 100 65 STAMP [ÔO DRAW A SQUARE:] POS - 100 45 PC 6 STAMP [Á SQUARE HAS FOUR SIDES AND FOUR] POS - 100 35 STAMP [90 DEGREE ANGLES. ÔO DRAW A 00 SPRITE.YM 53 75 ST LOGO.P HT POS - 150 75 PD SETH 90 FD 300 .GCOLL END TO DEMO.2 :C IF :C = 5 STOP DRAW FRAME POS - 135 55 PC 0 STAMP [ÓEE WHAT ÌOGO CAN DO:] POS - 135 35 PC 6 STAMP [1 ÄRAW A ÓQUARE] POS - 135 15 STAMP [2 ÌOTS OF ÓQUARES] 54273 0 .DEPOSIT 54272 0 END TO DEMO.432 REPEAT 2 [SOUND 102 194 17 16] REPEAT 2 [SOUND 91 140 17 16] REPEAT 2 [SOUND 86 105 17 16] SOUND 76 252 17 32 END TO DEMO MAKE "FL 0 MAKE "QF 0 LOWERCASE .GCOLL DRAW FRAME POS - 15 30 PD SETH 120 STAR 0 10 PD SETH 120 STAR 0 10 1 STAR 0 305 2 HT .GCOLL DEMO.431 REPEAT 2 [DEMO.432] DEMO.431 END TO DEMO.431 REPEAT 2 [SOUND 68 149 17 16] REPEAT 2 [SOUND 102 194 17 16] REPEAT 2 [SOUND 115 88 17 16] SOUND 102 194 17 32 REPEAT 2 [SOUND 91 140 17 16] R .1 :TI + 1 :D END TO POLY :A :B :C REPEAT :A [FD :B RT :C] END TO STAR :C :A :N IF ALLOF ( :N = 2 ) ( :C > 3 ) .GCOLL STOP IF :C > 15 STOP IF :C = 1 MAKE "C 2 PC :C POLY 5 20 144 PU SETH 120 + :A FD 25 PD STAR :C + 1 :A + 20 :N END TO STAMP :TH ] POS - 100 25 STAMP [SQUARE WITH SIDES 50 STEPS LONG] POS - 100 15 STAMP [IS EASY. ÈERE IS THE PROGRAM:] .GCOLL POS - 100 ( - 5 ) PC 2 STAMP [ÒÅÐÅÁÔ 4] STAMP ['[ÆÏÒ×ÁÒÄ' 50 ÒÉÇÈÔ '90]'] POS - 25 ( - 80 ) PD PC 0 REPEAT 4 [FD 50 RT 90] END TO E  POS - 135 ( - 5 ) STAMP [3 ÓINGING ÓTARS] POS - 135 ( - 35 ) STAMP [4 ÓPRITES] POS - 135 ( - 65 ) PC 2 STAMP [ÅNTER YOUR SELECTION:] SETY - 60 ST DEMO.3 1 IF :FL = 1 MAKE "FL 0 DEMO.41 END.PAGE STOP DEMO.2 :C + 1 END TO DEMO.3 :N IF :N > 1000  1 PC 0 REPEAT 2 [FD 300 RT 90 FD 250 RT 90] TELL 1 ST TELL 2 ST TELL 3 ST TELL 0 SPRITE 74 75 53 54 .DEPOSIT 53288 6 .DEPOSIT 53289 6 .DEPOSIT 53290 2 PU SETXY - 85 120 SETH 0 ST STAMP [Ã Ï Í Í Ï Ä Ï Ò Å ' ' 6 4] HT POS - 150 105 PD SETH 90 FD 3å 1 STAR 0 305 2 HT POS - 10 ( - 50 ) PC 0 STAMP [Á SIMPLE] POS - 10 ( - 60 ) STAMP [BUT POWERFUL] POS - 10 ( - 70 ) STAMP [PROGRAMMING LANGUAGE] END.PAGE DEMO.1 DEMO.2 1 DEMO END MAKE "FL (0) MAKE "QF (0) MAKE "STARTUP [START] DEPOSIT 54276 0 .DEPOSIT YCOR PMOVE :DX :DY END TO PPC :PEN NOINTS NOPRINTER .OPTION "PRINTER 1 2 PRINTER DPRINT [] DPRINT :PEN NOPRINTER MAKE "PENCOLOR :PEN GRMODE INTS END TO PPD MAKE "PENDOWN? "TRUE END TO PPU MAKE "PENDOWN? "FALSE END TO PBK :DIST PFD - :DI - 55 ) STAMP [END] LOWERCASE REPEAT 700 [PU PD] DRAW POS 5 ( - 30 ) PD SPINSQUARE 25 END TO STAMP1 :THING IF EMPTY? :THING STOP IF LIST? :THING STAMP1 FIRST :THING FD 8 STAMP1 BF :THING STOP STAMPCHAR FIRST :THING FD 8 STAMP1 BF :THING END TO S PTION "PRINTER 0 6 PRINTER END TO POLYSPI :SIDE :ANGLE IF :SIDE > 125 NOPRINTER STOP PFD :SIDE PRT :ANGLE POLYSPI :SIDE + 2 :ANGLE END TO GRMODE NOPRINTER .OPTION "PRINTER 1 1 PRINTER PRINT [] END TO TXTMODE NOPRINTER .OPTION "PRINTER 1 0 0 RT 10 SPINSQUARE :SIZE + 3 END TO DEMO.42 DRAW PC 0 POS - 100 55 STAMP [ÌOTS OF ÓQUARES] .GCOLL POS - 100 35 PC 6 STAMP [ÌOGO ALLOWS A PROCEDURE TO] POS - 100 25 STAMP [REPEAT ITSELF. ÓIMPLE PROCEDURES] POS - 100 ( 15 ) STAMP [CAN LEAD TO S E.YM 75 150 SETH 90 FD 50 SPRITE.XM 75 138 SETH 270 PU REPEAT 5 [SETY 0 SETY -15] SETY - 10 SETH 90 FD 8 SETH 0 FD 20 PD REPEAT 30 [FD 5 RT 360/30] SETH 90 PU FD 60 SPRITE.U 140 186 150 133 SETH 0 PD REPEAT 30 [FD 5 RT 360/30] PU SETH 90 FD 47 RAPHICS] POS - 140 45 BULLET STAMP [ÓPRITES] POS ( - 140 ) 35 BULLET STAMP [ÓOUND] POS 5 55 BULLET STAMP [ÌARGE ×ORKSPACE] POS 5 45 BULLET STAMP [ÅASY TO LEARN] POS 5 35 BULLET STAMP [ÐOWERFUL] PC 2 POS - 135 10 STAMP [Á FEW SIMPLE COMMANDS A  80 PD PC 0 SETH 120 REPEAT 5 [FD 20 RT 72] HT END.PAGE END TO SPRITE.YM :Y1 :Y2 IF :Y1 = :Y2 STOP SPRITE.Y :Y1 SPRITE.YM :Y1 + 1 :Y2 END TO SPRITE.Y :Y1 .DEPOSIT 53251 :Y1 .DEPOSIT 53255 :Y1 .DEPOSIT 53253 :Y1 END TO SPRITE.X :X1 .DEPOSIT 53 IF ALLOF ( NOT :X1 > :X2 ) ( :Y1 > :Y2 ) SPRITE :X1 + 2 :X2 :Y1 :Y2 IF ALLOF ( NOT :X1 > :X2 ) ( NOT :Y1 > :Y2 ) SPRITE :X1 + 2 :X2 :Y1 + 2 :Y2 END TO LOGO.P POS - 50 80 ; L SETH 0 PD FD 20 BK 20 SETH 90 FD 10 ; O PU FD 4 SETH 0 FD 5 PD REPEAT 2 ING] PRINT [TXTMODE GRMODE] PRINT [] PRINT [] PRINT [TYPE SETUP TO INITIALIZE PRINTER.] PRINT [POLYSPI IS A SAMPLE PLOTTER PROCEDURE.] END TO PRT :ANGLE PSETHEADING PHEADING + :ANGLE END TO PFD :DIST MAKE "DIST :DIST * 2 PMOVE :DIST * SIN PHEAD 0 [FD 2 RT 18] ; G PU SETH 90 FD 19 SETH 0 PD REPEAT 20 [FD 2 RT 18] PU SETH 90 FD 13 PD SETH 180 FD 15 REPEAT 10 [FD 2 RT 18] ; O PU FD 17 SETH 90 FD 19 SETH 0 PD REPEAT 20 [FD 2 RT 18] END TO FRAME FULLSCREEN HT POS - 150 125 SETH 90 PD BG ST END TO PCS PPU PSETXY 0 0 PPD PSETHEADING 0 END TO PDRAW MAKE "PXCOR 0 MAKE "PYCOR 0 SETORIGIN PSETHEADING 0 PPC 2 END TO NEWPAGE TXTMODE REPEAT 19 [DPRINT []] PDRAW END TO SETUP MAKE "BLACK 0 MAKE "BLUE 1 MAKE "GREEN 2 MAKE "RED 3 TART ; VERSION 2 6/4/83 BLOAD "C.SHAPES DEMO END TO LOWERCASE .OPTION "STAMPCHAR 1 1 END TO UC.GRAPHICS .OPTION "STAMPCHAR 1 0 END TO BULLET UC.GRAPHICS STAMP [Ñ] LOWERCASE END TO DEMO.1 DRAW FRAME POS - 140 55 PC 6 BULLET STAMP [ÔURTLE Ç PRINTER PRINT [] END TO PHEADING OUTPUT :PHEADING END TO PYCOR OP :PYCOR END TO PXCOR OP :PXCOR END TO PSETHEADING :H IF :H < 0 PSETHEADING :H + 360 STOP MAKE "PHEADING REMAINDER :H 360 END TO PSETXY :X :Y MAKE "DX :X - PXCOR MAKE "DY :Y - P PECTACULAR RESULTS.] POS - 100 ( - 5 ) PC 2 UC.GRAPHICS STAMP [TO SPINSQUARE :SIZE] POS - 100 ( - 15 ) STAMP [REPEAT 4 '[FORWARD' :SIZE RIGHT '90]'] POS - 100 ( - 35 ) STAMP [RIGHT 10] POS - 100 ( - 45 ) STAMP [SPINSQUARE :SIZE + 3] POS - 100 (  SPRITE.XM 186 250 PU SETH 270 REPEAT 5 [SETY 20 SETY 10] SETH 180 PD FD 70 REPEAT 15 [FD 5 RT 360/30] PU SETH 35 FD 95 SETH 0 PD REPEAT 30 [FD 5 RT 360/30] SPRITE.U 250 251 133 30 END TO SPINSQUARE :SIZE PC 0 IF :SIZE > 115 STOP POLY 4 :SIZE 9 RE ALL] POS - 135 0 STAMP [ÙOU NEED TO CREATE,] POS - 40 ( - 10 ) STAMP [LEARN,] POS - 40 ( - 20 ) STAMP [AND EXPLORE] POS - 100 ( - 60 ) PD PC 0 SETH 180 ST REPEAT 4 [FD 30 LT 90] PU SETH 90 FD 90 PD PC 4 SETH 150 POLY 3 30 120 PU SETH 90 FD 252 :X1 .DEPOSIT 53250 :X1 .DEPOSIT 53254 :X1 END TO SPRITE :X1 :X2 :Y1 :Y2 IF ALLOF ( :X1 > :X2 ) ( :Y1 > :Y2 ) STOP IF NOT :X1 > :X2 SPRITE.X :X1 IF NOT :Y1 > :Y2 SPRITE.Y :Y1 IF ALLOF ( :X1 > :X2 ) ( NOT :Y1 > :Y2 ) SPRITE :X1 :X2 :Y1 + 2 :Y2 2RACE :RTRACE? END MAKE "STARTUP [SETUP.GRAMMAR] WORLD LOCAL "ANSWER MAKE "ANSWER REPLACE :MATCH ( SELECT :PATTERN ) :WORLD IF :WORLD = :ANSWER STOP MAKE "WORLD :ANSWER R :MATCH :PATTERN END TO WORLD :PATTERN MAKE "WORLD :PATTERN END TO RSHAPE WD MAKE "STARTUP [HELP] ‚INSTANT.LOGO    ‚INSPI.PIC2      ‚ ANIMAL.INSPECTOR‚STAMPER.LOGO     TET.LOGO        ‚ MUSIC.LOGO      ‚LM.LOGO         ·ING :DIST * COS PHEADING END MAKE "PENDOWN? "TRUE MAKE "RED (3) MAKE "GREEN (2) MAKE "BLUE (1) MAKE "BLACK (0) MAKE "PHEADING (0) MAKE "PYCOR (0) MAKE "PXCOR (0) MAKE "PENCOLOR (2) K PRT PPU PPD PPC] PRINT [PSETXY PSETHEADING] PRINT [PXCOR PYCOR PHEAD  MAKE "PENDOWN? "TRUE .OPTION "PRINTER 2 1 P.RESET GRMODE PDRAW END TO HELP NODRAW PRINT [COMMODORE COLOR PLOTTER PROCEDURES:] PRINT [SETUP NEWPAGE PDRAW PCS] PRINT [PFD PBK PRT PPU PPD PPC] PRINT [PSETXY PSETHEADING] PRINT [PXCOR PYCOR PHEADš MAKE "BOX (7) MAKE "HEART (6) MAKE "TRIANGLE (5) MAKE "SQUARE (4) MAKE "SBALL (3) MAKE "BBALL (2) MAKE "FRAME (1) MAKE "STARTUP [BLOAD "SHAPES.SHAPES] @ ÿÿÿÿÿÿàààààààààààààààààÿÿÿÿÿÿ~ÿ€ÿÀÿàÿàÿàÿàÿàÿÀÿ€~<~ÿ~<¿ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ NDOM 16] PU END TO RANDSIZE LOCAL "PICK MAKE "PICK ITEM 1 + RANDOM 4 [SMALLX BIGX SMALLY BIGY] RUN ( LIST :PICK ) END TO EXPAND :SIZE :SIZEMAX IF :SIZE > :SIZEMAX STOP REPEAT 4 [LTURN :SIZE] EXPAND :SIZE + 10 :SIZEMAX END TO SPIRAL BACKGROUND 6 M 16 PENCOLOR RANDOM 16] PENCOLOR 7 CS REPEAT 20 [BACKGROUND RANDOM 16] BACKGROUND 6 END TO SUBMARINEDEMO SPIRAL IF RC? THEN SPLITSCREEN STOP ELSE SUBMARINEDEMO END TO DEMO READ "SPRITES READ "VEHICLES EACH [0 1 2 3 5 6 7] [HT] TELL :SUBMARINE Ù TO STAR3 PLAY [7 7 5 5 4 4 2] [8 8 8 8 8 8 24] END TO STAR2 PLAY [5 5 4 4 2 2 0] [8 8 8 8 8 8 24] END TO STAR1 PLAY [0 0 7 7 9 9 7] [8 8 8 8 8 8 24] END TO STAR STAR1 STAR2 STAR3 STAR3 STAR1 STAR2 END TO STARX STAR1 STARB STARC STARD  TO ASK :N :COMMAND.LIST LOCAL "CURRENT MAKE "CURRENT WHO TELL :N RUN :COMMAND.LIST TELL :CURRENT END TO CRAWL :N RT 90 REPEAT :N [FD 1 FD RANDOM 26] LT 90 END TO HOP :N RT 90 REPEAT :N [FD 10 LT 90 FD 10 RT 90 FD 3 RT 90 FD 10 LT 90] LT 90 NT SETSHAPE :CURRENT SETXY :X ( :Y ) SMALLX SMALLY ST SHOWLOOP :CURRENT + 1 :X :Y - 30 END TO TRAP :SIDE CS BACKGROUND 3 PENCOLOR 0 ST BOX :SIDE FD :SIDE / 2 RT 90 FD :SIDE / 2 LT 90 PENCOLOR 2 TRAPLOOP END TO BOX :SIDE PD REPEAT 4 [FD :S  TO DEMO READ "SPRITES READSHAPES "RUNNER ASK 0 [HT] EACH [1 2 3 4 5 6 7] [PC 1 PU] RUNDEMO END TO RUNDEMO LOCAL "STANCE BACKGROUND 4 SHOW TELL 1 HOME BIGX BIGY SETHEADING 90 PENCOLOR 1 WAIT 3 MAKE "STANCE 8 REPEAT 6 [MAKE "STANCE :STANCE -  TO PLOFF NOPRINTER .OPTION "PRINTER 0 4 .OPTION "PRINTER 1 0 .OPTION "PRINTER 2 0 END TO PTEST .OPTION "PRINTER 0 6 PPC1 0 TXTMODE PRINT "HI PPC1 3 TXTMODE PRINT "HI END TO PHOME PSETXY 0 0 PSETHEADING 0 END TO PLT :ANGLE PRT - :ANGLE S * 300 [] END TO RUNN IF RC? STOP REPEAT 11 [RUNLOOP 4] RUNN END TO SHOWLOOP :CURRENT :X :Y IF :CURRENT = 8 STOP TELL :CURRENT SETSHAPE :CURRENT SETXY :X :Y SMALLX SMALLY ST SHOWLOOP :CURRENT + 1 :X :Y - 30 END TO RUNLOOP :SHAPE IF :SHAPE = @ 88~ý|À;À?Àü@ ð@`€€À/@/@N@œ€ààøp€`ÀÀÀ`À!€`Àn8|Ü~öãÿ€ þ€†ŒŒˆ  ¿x¸ pø¸8ôtòñ°00ü0`ÀÀ€€ÄÿðÿàÿÀÿÀÿ€ÿ~~<ÃÀçàÿðÿðÿðÿðÿàÿÀÿ€~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  PENCOLOR 7 PU HT SETH 0 HOME SMALLX SMALLY ST EXPAND 2 100 REPEAT 30 [PENCOLOR RANDOM 16 FD RANDOM 100 RT RANDOM 360 RANDSIZE BACKGROUND RANDOM 16] SETXY 120 0 SMALLX SMALLY SETH 0 STAMPCIRCLE 120 CONTRACT 100 2 HOME REPEAT 20 [BACKGROUND RANDO6 FULLSCREEN SUBMARINEDEMO END MAKE "STARTUP [DEMO] ND 2 100 REPEAT 30 [PENCOLOR RANDOM 16 FD RANDOM 100 RT RANDOM 360 RANDSIZE BACKGROUND RANDOM 16] SETXY 120 0 SMALLX SMALLY SETH 0 STAMPCIRCLE 120 CONTRACT 100 2 HOME REPEAT 20 [BACKGROUND RANDO  "PO :PROC INTS END TO DPRINT1 :IT NOINTS PRINT1 :IT INTS END TO INTS .OPTION "RC 0 3 END TO NOINTS .OPTION "RC 0 0 END TO SETORIGIN DPRINT "H DPRINT "M2400 DPRINT "I END TO DPRINT :IT NOINTS PRINT :IT INTS END TO P.RESET NOPRINTER .O END TO RACE TELL 2 SETXY - 125 30 TELL 3 SETXY - 125 ( - 30 ) REPEAT 15 [TELL 2 HOP 1 TELL 3 CRAWL 1] END TO SHOW LOCAL "OLD MAKE "OLD WHO TELL 0 HT SHOWLOOP 1 120 100 TELL :OLD END TO SHOWLOOP :CURRENT :X :Y IF :CURRENT = 8 STOP TELL :CURRE^IDE RT 90] PU END TO TRAPLOOP IF RC? STOP IF TB? BK 1 RT RANDOM 180 FD 1 TRAPLOOP END L 3 CRAWL 1] END TO SHOW LOCAL "OLD MAKE "OLD WHO TELL 0 HT SHOWLOOP 1 120 100 TELL :OLD END TO SHOWLOOP :CURRENT :X :Y IF :CURRENT = 8 STOP TELL :CURRE 1 TELL :STANCE HT] TELL 1 SETSHAPE 2 WAIT 1 / 2 SETSHAPE 3 RUNN SETSHAPE 2 WAIT 1 / 2 SETSHAPE 1 WAIT 1 SETSHAPE 7 WAIT 4 SHOW END TO SHOW LOCAL "OLD MAKE "OLD WHO TELL 0 HT SHOWLOOP 1 120 100 TELL :OLD END TO WAIT :SECONDS REPEAT :SECOND END TO PMOVE :DX :DY NOINTS MAKE "PXCOR :PXCOR + :DX MAKE "PYCOR :PYCOR + :DY TEST :PENDOWN? IFTRUE DPRINT ( WORD "J, ROUND :PXCOR ", ROUND :PYCOR ) IFFALSE DPRINT ( WORD "R, ROUND :PXCOR ", ROUND :PYCOR ) INTS END TO DPO :PROC NOINTS RUN LISTN7 STOP FD 30 SETSHAPE :SHAPE RUNLOOP :SHAPE + 1 END MAKE "STARTUP [DEMO] 2 WAIT 1 / 2 SETSHAPE 1 WAIT 1 SETSHAPE 7 WAIT 4 SHOW END TO SHOW LOCAL "OLD MAKE "OLD WHO TELL 0 HT SHOWLOOP 1 120 100 TELL :OLD END TO WAIT :SECONDS REPEAT :SECONDÄÀðp`ààààÐ È Ä€€€€ÿ€pÀ€r?/'7€`ðð 008 p À`€0ÿ<Ü|þû€¿À¾ðü`à0 TO RUNN IF RC? STOP REPEAT 11 [RUNLOOP 3] RUNN END TO W PE ) END TO SP.ADDR OP :Y * 3 + WHOSHP + QUOTIENT :X 8 END TO SP.BIT :X OP EXP2 7 - BITAND :X 7 END TO BITON? :ADDR :BIT OP 0 < BITAND .EXAMINE :ADDR :BIT END TO SETUP MAKE "RETURN CHAR 13 MAKE "VIC 13 * 4096 IF [] = TEXT "SMALLX READ "SPRITES 271 END TO RVS.SHAPE LOCAL "ADDR MAKE "ADDR WHOSHP REPEAT 63 [.DEPOSIT :ADDR BITXOR .EXAMINE :ADDR 255 MAKE "ADDR :ADDR+1] END TO ED.QUIT .OPTION "TEXTSCREEN 0 0 SPLITSCREEN CLEARTEXT TOPLEVEL END TO TOGGLEPOINT :X :Y LOCAL "ADDR MAKE "ADDR SP.A  ;;;; [[[[ {{ ; 222 ;;; [[[[ {{7;;;;222 ;;;;;;; [[[[ {{7;;; ;;;;;;;;;;; [[[[ {{ ;;;; ;;;;; {{ ;;; {{{ {{{{{ ;;;; AKE "X 0 END TO SETPOINT :X :Y LOCAL "ADDR MAKE "ADDR SP.ADDR .DEPOSIT :ADDR BITOR .EXAMINE :ADDR SP.BIT :X CURSOR :X + 1 :Y + 1 PRINT1 "Ñ END TO ERASEPOINT :X :Y LOCAL "ADDR MAKE "ADDR SP.ADDR .DEPOSIT :ADDR BITAND .EXAMINE :ADDR 255 - SP.BIT :X  ;;;; [[[[ {{ ; 222 ;;; [[[[ {{7;;;;222 ;;;;;;; [[[[ {{7;;; ;;;;;;;;;;; [[[[ {{ ;;;; ;;;;; {{ ;;; {{{ {{{{{ ;;;; SH LOCAL "CHAR IF RC? OP RC .OPTION "RC 0 1 FLASH&WAIT MAKE "CHAR RC .OPTION "RC 0 0 IF ASCII :CHAR = 7 ED.QUIT ELSE OP :CHAR END TO ED.FRAME CURSOR 0 0 REPEAT 26 [PRINT1 "¦] REPEAT 21 [CURSOR 0 1+LAST CURSORPOS PRINT1 "¦ CURSOR 25 LAST CURSOR  TO SPRITE.U :X1 :X2 :Y1 :Y2 IF ALLOF ( :X1 > :X2 ) ( :Y1 < :Y2 ) STOP IF NOT :X1 > :X2 SPRITE.X :X1 IF NOT :Y1 < :Y2 SPRITE.Y :Y1 IF ALLOF ( :X1 > :X2 ) ( NOT :Y1 < :Y2 ) SPRITE.U :X1 :X2 :Y1 - 2 :Y2 IF ALLOF ( NOT :X1 > :X2 ) ( :Y1 < :Y2 ) SPRITE.U :X  IF :CHAR = " INCX STOP IF :CHAR = "* SETPOINT :X :Y INCX STOP IF :CHAR = " DECX ERASEPOINT :X :Y STOP IF :CHAR = "' ' ERASEPOINT :X :Y INCX STOP IF :CHAR = "+ SETPOINT :X :Y STOP IF :CHAR = "- ERASEPOINT :X :Y STOP IF :CHAR = :RETURN MAKE "X 0  TO HELP PR [] PR [TET 100 2 OR TET 100 3 ARE] PR [GOOD INPUTS TO TRY] END TO LEG :SIZE FD :SIZE / ( 2 * COS 30 ) END TO TET :SIZE :DEPTH IF :DEPTH = 0 STOP REPEAT 3 [LEG :SIZE TET :SIZE * 0.5 :DEPTH-1 RT 150 FD :SIZE RT 150 LEG :SIZE RT 180] EN  15742 16572 17557 18601] END TO TEMPO :N MAKE "TEMPO :N END TO DECAY :A MAKE "AD BITOR ( BITAND :A 15 ) ( BITAND :AD 240 ) END TO ATTACK :A MAKE "AD BITOR ( BITAND :A 15 ) * 16 ( BITAND :AD 15 ) END TO OCT :N OP ITEM 1 + :N [0.125 0.25 0.5 1 2 4ëEND TO SAVESHAPES :NAME BSAVE WORD :NAME ".SHAPES 3136 3583 END TO READSHAPES :NAME BLOAD WORD :NAME ".SHAPES END TO EDSH .OPTION "TEXTSCREEN 0 EXP2 WHO TEXTSCREEN SETXY 60 0 REDISPLAY ED.LOOP 0 0 END MAKE "STARTUP [SETUP] OP 64 * ( 48 + SHA DDR LOCAL "F MAKE "F SP.BIT :X .DEPOSIT :ADDR BITXOR .EXAMINE :ADDR :F CURSOR :X + 1 :Y + 1 IF BITON? :ADDR :F PRINT1 "Ñ ELSE PRINT1 ". END TO FLASH&WAIT TOGGLEPOINT :X :Y TOGGLEPOINT :X :Y IF RC? STOP FLASH&WAIT END TO WHOSHP OP 64 * ( 48 + SHA [[ 2222 222 [[ 22 [[[[[ [[[ 22 ;;; [[[[[[ [[[[ [[[R222 ;;;; [[[[[[[ [WW[[[[R22 ; ; [[[[[ {{{ [ 22 ;;;;; [[[[ {{{{{W2222  CURSOR :X + 1 :Y + 1 PRINT1 ". END TO CLEARSHAPE LOCAL "ADDR MAKE "ADDR WHOSHP REPEAT 63 [.DEPOSIT :ADDR 0 MAKE "ADDR :ADDR+1] END TO TOGGLEX .DEPOSIT 53277 BITXOR EXP2 WHO .EXAMINE 53277 END TO TOGGLEY .DEPOSIT 53271 BITXOR EXP2 WHO .EXAMINE 53  {{{{{{{{ {{{{ ;;; {{{{{{{{{{{{ {{{{ {{{{ {{{ {{{ {{ POS PRINT1 "¦] CURSOR 0 22 REPEAT 26 [PRINT1 "¦] CURSOR 0 0 END TO DECY MAKE "Y :Y - 1 IF :Y < 0 MAKE "Y 20 END TO DECX MAKE "X :X - 1 IF :X < 0 MAKE "X 23 END TO INCY MAKE "Y :Y + 1 IF :Y > 20 MAKE "Y 0 END TO INCX MAKE "X :X + 1 IF :X > 23 M 1 + 2 :X2 :Y1 :Y2 IF ALLOF ( NOT :X1 > :X2 ) ( NOT :Y1 < :Y2 ) SPRITE.U :X1 + 2 :X2 :Y1 - 2 :Y2 END TO SPRITE.XM :X1 :X2 IF :X1 = :X2 STOP SPRITE.X :X1 SPRITE.XM :X1 + 1 :X2 END TO DEMO.44 DRAW PC 5 .GCOLL ST POS - 70 90 PD SETH 180 FD 100 SPRIT INCY STOP IF :CHAR = " MAKE "X 0 MAKE "Y 0 STOP IF :CHAR = "“ CLEARSHAPE CLEARTEXT REDISPLAY MAKE "X 0 MAKE "Y 0 STOP IF :CHAR = "X TOGGLEX STOP IF :CHAR = "Y TOGGLEY STOP IF :CHAR = " RVS.SHAPE REDISPLAY STOP IF :CHAR = " ED.QUIT END TO RC&FLAE "OTPFIX 4*4096+1+16+12 ‚CCHANGE.BIN     ‚ B&W.LOGO        ‚CCHANGE.LOGO    ‚STAMPFD.LOGO    ‚ VELOCITY.LOGO   ‚TEXTEDIT.LOGO   ‚DYNATRACK.LOGO    8] END TO NOTE :P :D IF :P = "R REPEAT :TEMPO * :D [] STOP MAKE "P :P + 24 SOUND ( ITEM 1 + ( REMAINDER :P 12 ) :PITCHES ) * ( OCT QUOTIENT :P 12 ) :D :AD :SR :WAVEFORM END TO PLAY :P :D IF EMPTY? :P STOP NOTE FIRST :P FIRST :D PLAY BF :P BF :D šEND TO WAVE :N MAKE "WAVEFORM :N END TO PULSE :WIDTH .DEPOSIT 54275 QUOTIENT :WIDTH 256 .DEPOSIT 54274 BITAND :WIDTH 255 END MAKE "STARTUP [SETUP] AD BITOR ( BITAND :A 15 ) * 16 ( BITAND :AD 15 ) END TO OCT :N OP ITEM 1 + :N [0.125 0.25 0.5 1 2 4 TO FIX :ITEM IF IHAVE? :ITEM PR [YOU HAVE TO DROP IT TO FIX IT!] CMD IF NOT HERE? :ITEM SEENO :ITEM IF NOT :ITEM = "MACHINE PR [YOU CAN'T FIX THAT!] CMD IF NOT ITEMLOC "WAND = 0 PR [THE MACHINE IS NOT BROKEN!] CMD IF NOT IHAVE? "SCREWDRIVER PR [YOU ÿ€ 22 222 22 2222 2222 2222222 222 [[[ 2222 22222222 [ D END TO GETALLITEMS :I IF :I = [] CMD TEST :RNUM = ITEMLOC LAST FIRST :I IFT PUTITEM LAST FIRST :I ( - 1 ) IFT PR SE LAST FIRST :I "TAKEN. GETALLITEMS BF :I END TO EVERYTHING OP "EVERYTHING END TO IHAVE? :ITEM OP - 1 = ITEMLOC :ITEM END TO WA 0 GOLD] [2 100 DIAMOND] [2 50 AMULET] [3 0 SCREWDRIVER] [4 0 MACHINE] [0 100 WAND] [5 200 CROWN]] MAKE "RMOVES [[0 2 3 0] [0 0 4 1] [1 4 0 0] [2 0 0 3] [0 0 0 0]] MAKE "RNAMES [[YOU ARE IN THE WEAPON SHOP.] [THIS IS THE VAULT.] [THIS ROOM IS THE TOOLSHHELP PR [TO MOVE, TYPE] PR [N, E, S, W] PR [FOR NORTH, SOUTH, EAST, WEST] PR [] PR [TYPE LOOK TO SEE WHAT ROOM YOU] PR [ARE IN. YOU CAN GET AND DROP ITEMS.] PR [INVENT SHOWS YOUR INVENTORY.] PR [THE WORD "IT" MEANS THE LAST THING YOU] PR [REFERRPUTITEM LAST FIRST :I :RNUM IFT PR SE LAST FIRST :I "DROPPED. DROPALLITEMS BF :I END TO SETIT :THING MAKE "IT :THING OP :THING END TO PITEMS2 :LOC :I IF :I = [] STOP IF FIRST FIRST :I = :LOC PRINT LAST FIRST :I PITEMS2 :LOC BF :I END TO E MOVETO INVENT PITEMS - 1 CMD END TO DROP :ITEM TEST :ITEM = "EVERYTHING IFT DROPALLITEMS :ITEMS IF NOT IHAVE? :ITEM PR SE [YOU'RE NOT CARYING THE] WORD :ITEM "! CMD PUTITEM :ITEM :RNUM PR SE :ITEM "DROPPED. CMD END TO GET :ITEM TEST :ITEM = "EVERYT SE [YOUR SCORE IS] SCORE2 :ITEMS [POINTS.] ) CMD END TO NOTHING PR [NOTHING HAPPENS.] CMD END TO DONE IF NOT :RNUM = 5 NOTHING LOCAL "SCORE MAKE "SCORE SCORE2 :ITEMS IF :SCORE = 0 NOTHING PR SE [YOUR SCORE IS] :SCORE IF :SCORE = 550 PR [PERFEC :TRYMOVE = 0 IFT PR [YOU CAN'T GO THAT WAY.] IFT CMD PR "OK. MAKE "RNUM :TRYMOVE LOOK END TO EXAMINE :ITEM IF NOT HERE? :ITEM ( PR [I SEE NO] :ITEM [HERE!] ) CMD IF :ITEM = "WAND PR [IT BEARS A FADED INSCRIPTION:] PR ["??VE ME AND YOU'LL BE GLADjRITTEN BY DON HOPKINS] PR [] PR [TYPE HELP FOR HELP] PR [] INIT LOOK END MAKE "STARTUP [ADVENTURE] NE IF NOT :RNUM = 5 NOTHING LOCAL "SCORE MAKE "SCORE SCORE2 :ITEMS IF :SCORE = 0 NOTHING PR SE [YOUR SCORE IS] :SCORE IF :SCORE = 550 PR [PERFEC DON'T HAVE THE PRPPER TOOLS TO] PR [FIX IT] CMD PR [YOU FIX THE MACHINE WITH YOUR TRUSTY] PR [SCREWDRIVER. UPON BEING FIXED, THE] PR [MACHINE STARTS UP AND PRODUCES A WAND!] PUTITEM "WAND 4 CMD END TO ITEMLOC :ITEM OP ITEMLOC2 :ITEM :ITEMS END T  TO LTURN :SIZE LT 24 FD :SIZE LT 24 END TO CONTRACT :SIZE :SIZEMIN IF :SIZE < :SIZEMIN STOP REPEAT 4 [LTURN :SIZE] CONTRACT :SIZE - 10 :SIZEMIN END TO STAMPCIRCLE :SIZE PD REPEAT 36 [LT 5 STAMPCHAR "* FD :SIZE * (3.14159 / 18) LT 5 PENCOLOR RAVE :ITEM IF NOT IHAVE? :ITEM PR SE [YOU ARE HOLDING NO] PERIOD :ITEM CMD IF NOT :ITEM = "WAND NOTHING IF ALLOF NOT :RNUM = 4 NOT :RNUM = 5 PR [NOTHING HAPPENS.] CMD PR [POOF! THE SCENE CHANGES!] IF :RNUM = 4 MAKE "RNUM 5 ELSE MAKE "RNUM 4 LOOK END ED.] [THIS IS THE ALTAR ROOM.] [YOU ARE IN A SECRET INCANTING ROOM.]] MAKE "RNUM 1 INITITEMS :ITEMS 1 END TO TAKE :THING GET :THING END TO PUTITEM :ITEM :LOC MAKE "ITEMS PUTITEM2 :ITEM :LOC :ITEMS END TO SEENO :I PR SE [I SEE NO] SE :I "HERE! CMED TO.] PR [] PR [THERE ARE SOME SPECIAL THINGS YOU CAN] PR [DO, LIKE SAYING EXAMINE SOMETHING.] PR [] PR [TYPE SCORE TO SEE YOUR SCORE, AND] PR [DONE TO QUIT.] PR [GOOD LUCK!] CMD END TO CMD PR [] PRINT1 "COMMAND TOPLEVEL END TO SCORE PR (DIR 2 END TO INITITEMS :I :F IF :I = [] STOP TEST :F = 1 IFT DEFINE LAST FIRST :I LPUT LPUT WORD "" LAST FIRST :I [OP SETIT] [[]] IFF DEFINE LAST FIRST :I [] INITITEMS BF :I :F END TO INIT MAKE "ITEMS [[1 0 SWORD] [1 0 HATCHET] [1 0 SHIELD] [2 10HING IFT GETALLITEMS :ITEMS IF IHAVE? :ITEM ( PR [YOU ALREADY HAVE] PERIOD :ITEM ) CMD IF NOT HERE? :ITEM SEENO :ITEM PUTITEM :ITEM ( - 1 ) PR SE :ITEM "TAKEN. CMD END TO LOOK PR ITEM :RNUM :RNAMES PITEMS :RNUM CMD END TO W MOVEDIR 4 END TO  T!] ELSE PRINT [THERE'S MORE TREASURE, THOUGH.] DONE END TO SCORE2 :LIST IF :LIST = [] OP 0 IF NOT FIRST FIRST :LIST = - 1 OP SCORE2 BF :LIST OP ( ITEM 2 FIRST :LIST ) + SCORE2 BF :LIST END TO ADVENTURE NODRAW PR [WELCOME TO LOGO ADVENTURE] PR [W."] CMD IF NOT :ITEM = "MACHINE PR SE [I SEE NOTHING SPECIAL ABOUT THE] PERIOD :ITEM CMD IF NOT 0 = ITEMLOC "WAND PR [IT SEEMS TO BEAR THE MARKS OF A HASTY] PR [REPAIR JOB.] CMD PR [IT IS BROKEN! YOU COULD FIX IT WITH] PR [THE RIGHT TOOL.] CMD END  TO ED.LOOP :X :Y ED.COMMAND RC&FLASH ED.LOOP :X :Y END TO REDISPLAY TEXTSCREEN CLEARTEXT ED.FRAME .SPRINT WHOSHP END TO ED.COMMAND :CHAR IF ANYOF :CHAR = "^ :CHAR = "‘ DECY STOP IF ANYOF :CHAR = "_ :CHAR = " DECX STOP IF :CHAR = " INCY STOPO PERIOD :WORD OP WORD :WORD ". END TO IT OP :IT END TO HERE? :ITEM LOCAL "LOC MAKE "LOC ITEMLOC :ITEM OP ANYOF - 1 = :LOC :RNUM = :LOC END TO PITEMS :LOC PITEMS2 :LOC :ITEMS END TO MOVEDIR :DIR MAKE "TRYMOVE ITEM :DIR ITEM :RNUM :RMOVES TEST N PRINT1 :LINE IF LIST? :TOKEN PRINT [] STORE BF :CODE :DOT STOP IF LABEL? :TOKEN MAKE "LINE BF :LINE MAKE "TOKEN FIRST :LINE IF NUMBER? :TOKEN EMIT :DOT :TOKEN STORE BF :CODE :DOT + 1 STOP STORE BF :CODE :DOT + ( STORE2 :LINE ( AMODE :TOKEN BF :LIN^ TO CCHANGE :OLD :NEW .CALL 3136 :NEW * 256 + :OLD END MAKE "STARTUP [BLOAD "CCHANGE.BIN] PTR+1] CMP # PTREND BNE LOOP RTS DOHI: LDA ( PTR ,Y ) AND # [$ "0F] ORA ! NCOLOR.H STA ( PTR ,Y ) RTS DOLOW: LDA ( PTR ,Y ) AND # [$ "F0] ORA ! NCOLOR LOCAL "LEN MAKE "BYTE OPCODE FIRST :LINE :MODE MAKE "LEN INSLEN :MODE EMIT :DOT :BYTE IF :LEN = 1 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 HI8 :BYTE OP :LEN END TO  TO SAVETEXT :FILE .OPTION "SAVE 0 1 SAVE :FILE .OPTION "SAVE 0 0 END TO READTEXT :FILE .OPTION "READ 0 1 READ :FILE .OPTION "READ 0 0 END TO SHOWFILE :FILE READTEXT :FILE SHOWTEXT END TO PRINTFILE :FILE .OPTION "PRINTER 1 7 PRINTER SHOWFI OP LOOKUP :THING BF BF :PLACE END TO HI8 :N OP QUOTIENT :N 256 END TO LO8 :N OP BITAND :N 255 END TO INSLEN :MODE OP FIRST THING :MODE END TO OPCODE :INS :MODE OP LOOKUP :MODE THING :INS END TO INDENT :SPACES IF :SPACES < 0 PRINT1 "' ' STOP COLOR.H BNE NXLOOP JSR DOHI NXLOOP: INC ! PTR BNE NXL1 INC [:PTR+1] NXL1: LDA [:PTR+1] CMP # [HI8 :PTREND] BNE LOOP LDA PTR CMP # [LO8 :PTREND] BNE LOOP RTS DOHI: LDA ( PTR ) ,Y AND # [$ "0F] ORA ! NCOLOR.H STA ( PTR ) ,Y RTS DOLOW: LDATOKEN IF INS? :TOKEN OP "REL = FIRST THING :TOKEN OP "FALSE END TO INS? :TOKEN IF THING? :TOKEN OP LIST? THING :TOKEN OP "FALSE END TO IMPINS? :TOKEN IF INS? :TOKEN OP "IMP = FIRST THING :TOKEN OP "FALSE END TO AMODE1 :FPART :LPART IF :FPART = `:FROM = :END STOP PRINT1 CHAR .EXAMINE :FROM PRINT.MEM :FROM + 1 :END END MAKE "ENDBUF (86) OPTION "READ 0 1 READ :FILE .OPTION "READ 0 0 END TO SHOWFILE :FILE READTEXT :FILE SHOWTEXT END TO PRINTFILE :FILE .OPTION "PRINTER 1 7 PRINTER SHOWFI :CODE = [] MAKE "END :DOT - 1 STOP SYMBOLS BF :CODE :DOT + ( SYMS.L FIRST :CODE FIRST FIRST :CODE ) END TO SYMS.L :LINE :TOKEN IF INS? :TOKEN OP INSLEN AMODE :TOKEN BF :LINE IF LABEL? :TOKEN ASSIGN :TOKEN :DOT OP SYMS.L BF :LINE FIRST BF :LINE IF LWORD = " OP :VAL IF NUMBER? FIRST :WORD OP $1 BF :WORD :VAL * :$BASE + FIRST :WORD LOCAL "DIGIT MAKE "DIGIT ( ASCII FIRST :WORD ) - 55 IF ANYOF :DIGIT < 0 :DIGIT - 1 > :$BASE ERROR FIRST :WORD [NOT A DIGIT] OP $1 BF :WORD :VAL * :$BASE + :DIGIT END E ) ) END TO OPERAND :MODE :ARGS IF :MODE = "REL OP RELOPER MAKE "ARGS ITEM ( OP.LOC :MODE ) :ARGS IF LIST? :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 TO GAME OP "ADVSAVE END TO DROPALL DROPALLITEMS :ITEMS END TO GETALL GETALLITEMS :ITEMS END TO S MOVEDIR 3 END TO N MOVEDIR 1 END TO ITEMLOC2 :ITEM :I IF :I = [] OP 0 IF LAST FIRST :I = :ITEM OP FIRST FIRST :I OP ITEMLOC2 :ITEM BF :I END EMIT :DOT :BYTE INDENT 29 - FIRST CURSORPOS ( PRINT1 :DOT "= :BYTE ) PRINT [] .DEPOSIT :DOT :BYTE END TO LABEL? :TOKEN OP ": = LAST :TOKEN END TO STORE :CODE :DOT IF :CODE = [] STOP STORE1 FIRST :CODE FIRST FIRST :CODE END TO STORE1 :LINE :TOKELE :FILE NOPRINTER .OPTION "PRINTER 1 0 END TO SHOWTEXT PRINT.MEM 8192 ( .EXAMINE :ENDBUF ) + 256 * ( .EXAMINE :ENDBUF + 1 ) END TO PRINTTEXT .OPTION "PRINTER 1 7 PRINTER SHOWTEXT NOPRINTER .OPTION "PRINTER 1 0 END TO PRINT.MEM :FROM :END IF REPEAT :SPACES [PRINT1 "' '] 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 OP AMODE1 FIRST :ARGS BF :ARGS END TO STORE2 :LINE :MODE LOCAL "BYTE` COLMOD BEQ DRTS LDA ( PTR ) ,Y AND # [$ "F0] ORA ! NCOLOR STA ( PTR ) ,Y DRTS: RTS END ASL A ASL A STA ! NCOLOR.H LOOP: LDY # 0 LDA ( PTR ) ,Y AND # [$ "0F] CMP ! OCOLOR BNE CHKHI JSR DOLOW CHKHI: LDA ( PTR ) ,Y AND # [$ "F0] CMP ! O"# 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 LOOKUP :THING :PLACE IF :PLACE = [] ERROR :THING [BAD MODE] IF :THING = FIRST :PLACE OP FIRST BF :PLACETO PUTITEM2 :ITEM :LOC :LIST IF :LIST = [] OP [] IF LAST FIRST :LIST = :ITEM OP FPUT FPUT :LOC BF FIRST :LIST BF :LIST OP FPUT FIRST :LIST PUTITEM2 :ITEM :LOC BF :LIST END TO DROPALLITEMS :I IF :I = [] CMD TEST ITEMLOC LAST FIRST :I = ( - 1 ) IFT IST? :TOKEN RUN :TOKEN OP 0 IF NUMBER? :TOKEN OP 1 ERROR :TOKEN [NOT AN INSTRUCTION] END TO ASSIGN :LABEL :THING MAKE "LABEL BL :LABEL IF THING? :LABEL ERROR :LABEL [ALREADY USED] MAKE :LABEL :DOT MAKE "LABELS FPUT :LABEL :LABELS END TO RELINS? :Ÿ TO $ :WORD OP $1 :WORD 0 END TO SETUP MAKE "$BASE 16 READ "AMODES READ "OPCODES MAKE "ORG $ "C40 ERNAME "STARTUP ER SETUP END MAKE "STARTUP [SETUP] TO ERROR :A :B ( PRINT [IN LINE] :LINE ) ( PRINT :A :B ) TOPLEVEL END TO $1 :WORD :VAL IF : ] END TO RELOPER MAKE "ARGS ( OPERAND "ABS :ARGS ) - :DOT - 2 IF :ARGS < 0 OP 256 + :ARGS ELSE OP :ARGS END TO OP.LOC :MODE OP FIRST BF THING :MODE END TO ERROR :A :B ( PRINT [IN LINE] :LINE ) ( PRINT :A :B ) TOPLEVEL END TO $1 :WORD :VAL IF : TO PIGSENT :LIST IF :LIST = [] OUTPUT [] OUTPUT SENTENCE ( PIGWORD FIRST :LIST ) ( PIGSENT BUTFIRST :LIST ) END TO PIGWORD :WORD IF VOWEL? FIRST :WORD THEN OUTPUT WORD :WORD "AY OUTPUT PIGWORD WORD ( BUTFIRST :WORD ) ( FIRST :WORD ) END TO VOWEL? TO DSETUP DRAW BG 6 FULLSCREEN HT PC 1 PU BK 100 PD END TO SNOWFLAKE :SIZE :LEVEL REPEAT 3 [SIDE :SIZE :LEVEL RT 120] END TO WAIT IF RC? PR "STOPPED! TOPLEVEL REPEAT 2000 [] END TO DEMO1 :SIZE DSETUP SNOWFLAKE :SIZE 0 WAIT DSETUP SNOWFLAj - 1 RIGHT 120 SIDE :SIZE / 3 :LEVEL - 1 LEFT 60 SIDE :SIZE / 3 :LEVEL - 1 END MAKE "STARTUP [DEMO] :SIZE :LEVEL RT 120] END TO WAIT IF RC? PR "STOPPED! TOPLEVEL REPEAT 2000 [] END TO DEMO1 :SIZE DSETUP SNOWFLAKE :SIZE 0 WAIT DSETUP SNOWFLA TO CIRCLEL :RADIUS ARCL :RADIUS 360 END TO ARCL :RADIUS :DEGREES LEFT 2.5 ARCL1 :RADIUS * 0.017453 :DEGREES RIGHT 2.5 END TO ARCL1 :SIZE :DEGREES REPEAT QUOTIENT :DEGREES 5 [FORWARD :SIZE * 5 LEFT 5] CORRECTARCL :SIZE ( REMAINDER :DEGREES 10 ) wFOR.VAR :FOR.START :FOR.END :FOR.THINGS LOCAL :FOR.VAR MAKE :FOR.VAR :FOR.START FOR.LOOP END MAKE "STARTUP [HELP] ‚WHILE.LOGO      ‚ANIMAL.LOGO      ‚LOG.LOGO        ‚ASSORTED.LOGO   S 5 [FORWARD :SIZE * 5 RIGHT 5] CORRECTARCR :SIZE ( REMAINDER :DEGREES 10 ) END TO CORRECTARCR :SIZE :AMOUNT FORWARD :SIZE * :AMOUNT RIGHT :AMOUNT END EPEAT QUOTIENT :DEGREES 5 [FORWARD :SIZE * 5 LEFT 5] CORRECTARCL :SIZE ( REMAINDER :DEGREES 10 )  ;ADDRESSES FOR LOGO VERSION 1 MAKE "NARG2 5*16+8 MAKE "FREEPZ 5*16+12 MAKE "VERSION 14*256+4 MAKE "COLMOD 14*256+3 MAKE "KERVER 14*256+2 MAKE "TOPIRQ 14*256 MAKE "ENDBUF 8*16+6 MAKE "PPTTP 4*4096+3 MAKE "TPCHR 4*4096+9 MAKE "OTPFX2 4*4096+1*16+10 MAK TO CODE [MAKE "COLORS $ "0800] [MAKE "PTREND :COLORS+1000] [MAKE "OCOLOR :NARG2] [MAKE "NCOLOR :NARG2+1] [MAKE "OCOLOR.H :NARG2+2] [MAKE "NCOLOR.H :NARG2+3] [MAKE "PTR :FREEPZ] CCHANGE: LDA # [LO8 :COLORS] STA ! PTR LDA # [HI8 :COLORS] STA ! MAKE "INDIRS [[)] IND [,X )] INDX [) ,Y] INDY] MAKE "IND [3 2] MAKE "INDX [2 2] MAKE "INDY [2 2] MAKE "INDEXES [[] ABS [,X] ABX [,Y] ABY] MAKE "ABS [3 1] MAKE "ABX [3 1] MAKE "ABY [3 1] MAKE "ZPS [[] ZP [,X] ZPX [,Y] ZPY] MAKE "ZP [2 2] MAKE "ZPX [2 2] ;PARTIAL LIST OF 6502 INSTRUCTIONS MAKE "BVS [REL 112] MAKE "BIT [ABS 44 ZP 36] MAKE "ADC [ABX 125 IMM 105 ZP 101 ZPX 117 ABS 109 ABY 121 INDX 97 INDY 113] MAKE "AND [IMM 41 ZP 37 ZPX 53 ABS 45 ABX 61 ABY 57 INDX 33 INDY 49] MAKE "ASL [ACC 10 ZP 6 ZPX ° :LETTER OUTPUT MEMBER? :LETTER [A E I O U Y] END TO HELP PRINT [TYPE PIG] END TO PIG PR [] PR [PLEASE TYPE IN A SENTENCE] PR PIGSENT REQUEST END MAKE "STARTUP [HELP]     ‚ASSEMBLER.LOGO  ‚CCHANGE.SRC.LOGOKE :SIZE 1 WAIT DSETUP SNOWFLAKE :SIZE 2 WAIT DSETUP SNOWFLAKE :SIZE 3 WAIT DSETUP SNOWFLAKE :SIZE 4 END TO DEMO DEMO1 180 END TO SIDE :SIZE :LEVEL IF :LEVEL = 0 THEN FORWARD :SIZE STOP SIDE :SIZE / 3 :LEVEL - 1 LEFT 60 SIDE :SIZE / 3 :LEVELY [IMP 136] MAKE "INC [ZP 230 ZPX 246 ABS 238 ABX 254] MAKE "INX [IMP 232] MAKE "INY [IMP 200] MAKE "JMP [ABS 76 IND 108] MAKE "JSR [ABS 32] MAKE "LDA [IMM 169 ZP 165 ZPX 181 ABS 173 ABX 189 ABY 185 INDX 161 INDY 177] MAKE "LDX [IMM 162 ZP 166 ZPY 182 ABEND TO CORRECTARCL :SIZE :AMOUNT FORWARD :SIZE * :AMOUNT LEFT :AMOUNT END TO CIRCLER :RADIUS ARCR :RADIUS 360 END TO ARCR :RADIUS :DEGREES RIGHT 2.5 ARCR1 :RADIUS * 0.017453 :DEGREES LEFT 2.5 END TO ARCR1 :SIZE :DEGREES REPEAT QUOTIENT :DEGREES 174 ABY 190] MAKE "LDY [IMM 160 ZP 164 ZPX 180 ABS 172 ABX 188] MAKE "NOP [IMP 234] MAKE "ORA [IMM 9 ZP 5 ZPX 21 ABS 13 ABX 29 ABY 25 INDX 1 INDY 17] MAKE "PHA [IMP 72] MAKE "PLA [IMP 104] MAKE "RTS [IMP 96] MAKE "STA [ZP 133 ZPX 149 ABS 141 ABX 157 ABY 153 INDX 129 INDY 145] MAKE "STX [ZP 134 ZPY 150 ABS 142] MAKE "STY [ZP 132 ZPX 148 ABS 140] MAKE "BCC [REL 144] MAKE "BCS [REL 176] MAKE "BEQ [REL 240] MAKE "BMI [REL 48] MAKE "BNE [REL 208] MAKE "BPL [REL 16] MAKE "SBC [IMM 233 ZP 229 ZPX 245 ABS 237 [:PTR+1] LDA ! OCOLOR ASL A ASL A ASL A ASL A STA ! OCOLOR.H LDA ! NCOLOR ASL A ASL A ASL A ASL A STA ! NCOLOR.H LOOP: LDY # 0 LDA ( PTR ) ,Y AND # [$ "0F] CMP ! OCOLOR BNE CHKHI JSR DOLOW CHKHI: LDA ( PTR ) ,Y AND # [$ "F0] CMP ! OÄ ABX 253 ABY 249 INDX 225 INDY 241] MAKE "SEC [IMP 56] MAKE "TAX [IMP 170] MAKE "TAY [IMP 168] MAKE "TXA [IMP 138] MAKE "TYA [IMP 152] MAKE "CLC [IMP 24] MAKE "SEI [IMP 120] MAKE "CLI [IMP 88] "RTS [IMP 96] MAKE "STA [ZP 133 ZPX 149 ABS 141 ABX 157 ABf MAKE "ZPY [2 2] MAKE "REL [2 1] MAKE "IMP [1 0] MAKE "ACC [1 0] MAKE "IMMS [[] IMM] MAKE "IMM [2 2] R.LOGO        ‚WHILE.LOGO      ‚ANIMAL.LOGO      ‚LOG.LOGO        ‚ DESIGN.LOGO      22 ABS 14 ABX 30] MAKE "BRK [IMP 0] MAKE "CMP [IMM 201 ZP 197 ZPX 213 ABS 205 ABX 221 ABY 217 INDX 193 INDY 209] MAKE "CPX [IMM 224 ZP 228 ABS 236] MAKE "CPY [IMM 192 ZP 196 ABS 204] MAKE "DEC [ZP 198 ZPX 214 ABS 206 ABX 222] MAKE "DEX [IMP 202] MAKE "DE TO ASSEMBLE :CODE IF THING? "LABELS ERNS :LABELS MAKE "LABELS [] ND PR :CODE MAKE "CODE BF TEXT :CODE SYMBOLS :CODE :ORG STORE :CODE :ORG END TO ERNS :NAMES IF :NAMES = [] STOP ERNAME FIRST :NAMES ERNS BF :NAMES END TO SYMBOLS :CODE :DOT IF TO $2 :NUM OP $INT :NUM 0 2 END TO DIGVAL :CHAR IF NUMBER? :CHAR OP :CHAR LOCAL "RESULT MAKE "RESULT ( ASCII :CHAR ) - 55 IF :RESULT + 1 > :BASE ( PRINT :CHAR [BAD DIGIT IN BASE] :BASE ) TOPLEVEL OP :RESULT END TO UNBN1 :NUM IF :NUM = 0 OP "  TO PLAY ND DRAW JOYPLAY END TO JOYPLAY MOVE JOYSTICK 1 IF JOYBUTTON 1 PENDOWN ELSE PENUP IF RC? PRINT1 "? RUN RQ JOYPLAY END TO MOVE :DIR IF :DIR < 0 STOP SETH :DIR * 45 FD 8 END TO HELP ND PRINT [PLUG A JOYSTICK IN PORT 2 AND TYPE PLAY.]  TO SETUP.GRAMMAR MAKE "RTRACE? "FALSE RANDOMIZE HELP END TO HELP ND PR [THIS IS A GENERATIVE GRAMMAR PROGRAM.] PR [] PR [TYPE] PR [PO POSTCARD] PR [PO SENT] PR [AND TRY RUNNING THOSE PROCEDURES] PR [] PR [TYPE RTRACE TO SEE A TRACE OF THE] + [SEE YOU SOON, FRED] [WISHING YOU WERE HERE, JOEY] [SINCERELY, LILAH] [--AURELIA]] R "SENTENCE [+ [SURF'S UP!] [THE WATER'S FUN.] [IT RAINS A LOT.] [IT'S LOTS OF FUN.] [DON'T FORGET TO WATER THE PLANTS.]] SHOW :WORLD END TO SENT WORLD [PARAGRAPH] "C.NOUN [+ HOUSE DOOR DOG CAT TABLE IDEA] R "VERB [+ T.VERB I.VERB] R "T.VERB [+ CHASES SEES [PLAYS WITH]] R "I.VERB [+ SLEEPS READS RUNS SLEEPS] R "ADVERB [+ QUICKLY SLEEPILY SLOWLY FURIOUSLY] R "ADJECTIVE [+ COLORLESS BIG RED YELLOW SMALL GREEN] = FIRST :LIST OP SE :NEW BF :LIST OP FPUT FIRST :LIST REPLACE :OLD :NEW BF :LIST END TO SELECT :PATTERN IF FIRST :PATTERN = "+ OP PICKRANDOM BF :PATTERN OP :PATTERN END TO PICKRANDOM :LIST IF EMPTY? :LIST STOP OP ITEM ( 1 + RANDOM COUNT :LIST ) :L| BASE :BASE :NUM ; OUTPUTS THE REPRESENTATION OF :NUM IN :BASE IF :NUM = 0 OP 0 OP BASE1 :NUM END MAKE "STARTUP [HELP] (A QUOTED WORD) IN :BASE IF :BNUM = 0 OP 0 OP $INT :BNUM 0 :BASE END TO HEX :N ; OUTPUTS THE HEX REPRESENTATION OF A NUMBER O ORLD [RSHAPE] R "RSHAPE [+ [MOVE RSHAPE] [TURN RSHAPE] []] R "MOVE [+ [FD 10] [FD 30] [FD 5]] R "TURN [+ [RT 10] [RT 30] [RT 45]] END TO RTRACE? MAKE "RTRACE? NOT :RTRACE PR SE "RTRACE? :RTRACE? END TO RTRACE MAKE "RTRACE? NOT :RTRACE? PR SE "RTR (QUOTED WORD) TO A NUMBER OP $INT :NUM 0 16 END TO UNBASE :BASE :BNUM ; OUPUTS THE NUMBER THAT IS REPRESENTED BY :BNUM (A QUOTED WORD) IN :BASE IF :BNUM = 0 OP 0 OP $INT :BNUM 0 :BASE END TO HEX :N ; OUTPUTS THE HEX REPRESENTATION OF A NUMBER O TO SING :P IF :P = [] STOP NOTE FIRST :P 10 SING BF :P END TO SSHER :DURS IF EMPTY? :DURS STOP SSH FIRST :DURS SSHER BF :DURS END TO SSH :D SOUND 20000 :D 7 0 129 END TO RELEASE :A MAKE "SR BITOR ( BITAND :A 15 ) ( BITAND :SR 240 ) END TO SOP WORD UNB1 QUOTIENT :NUM 2 ( REMAINDER :NUM 2 ) END TO BASE1 :NUM IF :NUM = 0 OP " OP WORD BASE1 ( QUOTIENT :NUM :BASE ) ( VALDIG REMAINDER :NUM :BASE ) END TO VALDIG :N IF :N < 10 OP :N OP CHAR 55 + :N END TO $INT :NUM :VAL :BASE IF :NUM = " OÀ PRINT [USE THE STICK TO CONTROL DIRECTION] PRINT [AND THE BUTTON FOR THE PEN.] PR [] PRINT [ANY COMMANDS YOU TYPE WILL BE RUN] PR [] PR [TYPE CTRL-G TO QUIT.] END MAKE "STARTUP [HELP] ‚LOG.LOGO        ‚ASSORTED.LOGO    PR [PROCESS. TYPE RTRACE AGAIN TO STOP] PR [THE TRACING.] END TO POSTCARD WORLD [POSTCARD] R "POSTCARD [GREETING BODY CLOSING] R "GREETING [+ [DEAR JUNE,] [DEAR FRED,] [GENTLEMEN:] [DEAR FOLKS,]] R "BODY [SENTENCE SENTENCE SENTENCE] R "CLOSING [R "PARAGRAPH [+ [SENTENCE .] [SENTENCE . PARAGRAPH]] R "SENTENCE [+ [MNP I.VERB] [MNP I.VERB ADVERB] [MNP T.VERB MNP] [MNP T.VERB MNP ADVERB]] R "MNP [+ NP [THE ADJECTIVE C.NOUN]] R "NP [+ P.NOUN [THE C.NOUN]] R "P.NOUN [+ LAURA BILLY CLARA JOEY] R SHOW :WORLD END TO SHOW :SE IF EMPTY? :SE PRINT [] STOP ( PRINT1 FIRST :SE ) IF BF :SE = [] PRINT [] STOP IF FIRST BF :SE = ". PRINT1 "'. ' SHOW BF BF :SE STOP PRINT1 "' ' SHOW BF :SE END TO REPLACE :OLD :NEW :LIST IF EMPTY? :LIST OP [] IF :OLD IST END TO R :MATCH :PATTERN IF :RTRACE? SHOW :WORLD LOCAL "ANSWER MAKE "ANSWER REPLACE :MATCH ( SELECT :PATTERN ) :WORLD IF :WORLD = :ANSWER STOP MAKE "WORLD :ANSWER R :MATCH :PATTERN END TO WORLD :PATTERN MAKE "WORLD :PATTERN END TO RSHAPE W TO FOR.LOOP IF ( THING :FOR.VAR ) > :FOR.END STOP RUN :FOR.THINGS MAKE :FOR.VAR ( THING :FOR.VAR ) + 1 FOR.LOOP END TO HELP PRINT [] PRINT [EXAMPLE:] PRINT [FOR "I 1 10 [(PRINT :I :I*:I)]] PRINT [THE ITERATION VARIABLE IS LOCAL.] END TO FOR : USTAIN :A MAKE "SR BITOR ( BITAND :A 15 ) * 16 ( BITAND :SR 15 ) END TO SETUP IF [] = TEXT "SOUND READ "SOUND TEMPO 20 MAKE "AD 9 MAKE "SR 0 MAKE "WAVEFORM 17 MAKE "OCTAVE 1 MAKE "PITCHES [8779 9301 9854 10440 11060 11718 12415 13153 13935 14764P BASE 16 :N END TO BINARY :NUM ; OUTPUTS THE BINARY REPRESENTATION OF A NUMBER OP BASE 2 :NUM END TO DOC.LIST :PROCS IF EMPTY? :PROCS STOP DOC FIRST :PROCS PRINT [] DOC.LIST BF :PROCS END TO HELP ND DOC.LIST [BASE BINARY HEX UNBASE $] END TOš MAKE "TRUCK (2) MAKE "ROCKET (3) MAKE "BOW (5) MAKE "ARROW (6) MAKE "MAN (7) MAKE "BALLOON (4) MAKE "TARGET (1) MAKE "STARTUP [BLOAD "ASSORTED.SHAPES] @@@@@ÿà     ÿð?ÿøÿüÿþÿ€ÿÀÇÀ¹à³à¹àÇÀÿÀÿÀÿ@þ€|€99’’|||P :VAL OP $INT BF :NUM :VAL * :BASE + DIGVAL FIRST :NUM :BASE END TO DOC :PROC LOCAL "TEXT MAKE "TEXT TEXT :PROC LOCAL "DOC MAKE "DOC FIRST BF :TEXT ( PRINT :PROC FIRST :TEXT ) IF "; = FIRST :DOC PRINT BF :DOC END TO $ :NUM ; CONVERTS A HEX NUMBEA€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ TS hÛ§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿDISK3             D3 2A    ‚BASE.LOGO       ‚JOY.LOGO        ‚GRAMMAR.LOGO     ‚FOR.LOGO        ‚WHILE.LOGO      ‚ANIMAL.LOGO      ‚LOG.LOGO        ‚ASSORTED.LOGO   ÿ‚ TWINKLE.LOGO    ‚ PLOTTER.LOGO     ‚ASSORTED.SHAPES ‚ANIMAL.INSP.LOGO‚C.SHAPES        ‚PIG.LOGO        ‚SNOW.LOGO       ‚ARCS.LOGO       ‚COLORS.LOGO     ‚AMODES.LOGO     ‚ OPCODES.LOGO    ‚ASSEMBLER.LOGO  ‚CCHANGE.SRC.LOGO ‚ADDRESSES.LOGO  ‚CCHANGE.BIN     ‚ B&W.LOGO        ‚CCHANGE.LOGO    ‚STAMPFD.LOGO    ‚ VELOCITY.LOGO   ‚TEXTEDIT.LOGO   ‚DYNATRACK.LOGO    ‚ ADVENTURE.LOGO  ‚TEACH.LOGO      ‚SPRED.LOGO       ‚PRINTPICT       ‚INSPI.PIC1      !‚SPRITES.LOGO    ‚ANIMALS.LOGO    ‚ANIMALS.SHAPES  ‚ SUBMARINE.LOGO  ‚INSTANT.LOGO    ‚INSPI.PIC2      ‚ DEMO.LOGO       ‚STAMPER.LOGO    ‚ TET.LOGO        ‚ MUSIC.LOGO      ‚DINOSAURS.LOGO  ‚VEHICLES.LOGO   ‚ VEHICLES.SHAPES ‚ SHAPES.LOGO     ‚ SHAPES.SHAPES   ‚ SOUND.LOGO      ‚ SPRITEDEMOS.LOGO‚ RUNNER.LOGO     ‚ RUNNER.SHAPES    TO HELP ND PR [WHILE AND UNTIL ARE PROCEDURES FOR] PR [REPEATING A LIST OF COMMANDS WHILE OR] PR [UNTIL A CERTAIN CONDITION IS MET.] PR [] PR [WHILE:] PR [WHILE REPEATS AS LONG AS THE PREDICATE] PR [(FIRST INPUT) OUTPUTS TRUE.] PR [] PR [WHEN TO GUESS :CHOICES IF ( WORD? :CHOICES ) FINAL.GUESS :CHOICES STOP LOCAL "RESPONSE MAKE "RESPONSE ASK.YES.OR.NO ( QUESTION :CHOICES ) IF :RESPONSE = [YES] GUESS YES.BRANCH :CHOICES STOP GUESS NO.BRANCH :CHOICES END TO FINAL.GUESS :CHOICE LOCAL "F "ANSWER PRINT1 :QUESTION IF "? = LAST LAST :QUESTION PRINT [] ELSE PRINT "? MAKE "ANSWER REQUEST IF :ANSWER = [YES] OUTPUT [YES] IF :ANSWER = [NO] OUTPUT [NO] PRINT [PLEASE TYPE "YES" OR "NO"] OUTPUT ASK.YES.OR.NO :QUESTION END TO WAIT :N REPEAT WORD :NEW.BRANCH REPLACE NO.BRANCH :DATA :WORD :NEW.BRANCH ) 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 FOR] ADD.A.OR.AN :WRONG.ANSWER ) MAKE "QUESTION REQUEST EXPAND.KNOWLEDGE :QUESTION :RIGHT.ANSWER :WRONG.ANSWER END TO ADD.A.OR.AN :WORD TEST MEMBER? ( FIRST :WORD ) [A E I O U] IFTRUE OUTPUT SENTENCE "AN :WORD IFFALSE OUTPUT SENTENCE "A :WORD END ›VE FOUR LEGS?] [[DOES IT GO MOO?] COW [[DOES IT WHINNY?] HORSE PIG]] [[DOES IT HAVE CLAWS?] LOBSTER [[CAN IT RUN?] OSTRICH FISH]]] MAKE "STARTUP [ANIMAL] ( FIRST :WORD ) [A E I O U] IFTRUE OUTPUT SENTENCE "AN :WORD IFFALSE OUTPUT SENTENCE "A :WORD END  TO EXPAUX2 IF :N = 0 STOP MAKE "N :N + 1 MAKE "F :F * 0.5 EXPAUX2 END TO EXPAUX1 IF :N = 0 STOP MAKE "N :N - 1 MAKE "F :F * 2 EXPAUX1 END TO LOGAUX :J :T IF NOT :N > 0 PR [NEG LOG] TOPLEVEL IF :N > 1 LOGAUX1 ELSE LOGAUX2 MAKE "N ( :N - 1.4F NOT :N < 1 STOP MAKE "N :N * 2 MAKE "J :J - 1 LOGAUX2 END TO EXPAUX :F IF :F < 0 MAKE "N ( INTEGER :F ) - 1 ELSE MAKE "N INTEGER :F MAKE "F :F - :N MAKE "F 0.5 + :F / ( 9.95459 + 0.0346568 * :F * :F - :F - 617.972 / ( :F * :F + 87.4174 ) ) MAKEA:N IF :N = 1 OP 0 LOGAUX 0 0 OP :N END MAKE "N (1.26758E30) TO EXPAUX :F IF :F < 0 MAKE "N ( INTEGER :F ) - 1 ELSE MAKE "N INTEGER :F MAKE "F :F - :N MAKE "F 0.5 + :F / ( 9.95459 + 0.0346568 * :F * :F - :F - 617.972 / ( :F * :F + 87.4174 ) ) MAKE TO THAW.LOOP IF RC? UDO TELL BITAND WHO + 1 7 MAGIC THAW.LOOP END TO UDO TELL :.UWHO RUN REQUEST MAKE ".UWHO WHO PRINT1 "? END TO MAGIC IF NOT 0 = :.SPEED0 TELL 0 FD :.SPEED0 IF NOT 0 = :.SPEED1 TELL 1 FD :.SPEED1 IF NOT 0 = :.SPEED2 TELL 2 F IT OUTPUTS FALSE, THE WHILE] PR [PROCEDURE RETURNS.] PR [] PR [UNTIL:] PR [UNTIL REPEATS UNTIL THE PREDICATE] PR [OUTPUTS TRUE.] PR [] PR [EXAMPLES:] PR [UNTIL [RC?] [PRINT [PRESS ANY KEY!]]] PR [] PR [UNTIL [XCOR*XCOR + YCOR*YCOR > 900] [FD 1INAL.QUESTION LOCAL "RESPONSE 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 SMART I AM!] STOP GET.SMARTER :CHOICE END TO ASK.YES.OR.NO :QUESTION LOCAL  :N [] END TO NO.BRANCH :TREE OUTPUT LAST :TREE END TO YES.BRANCH :TREE OUTPUT FIRST BUTFIRST :TREE 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 : FIRST :TREE END TO GET.SMARTER :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" TO INITIALIZE.KNOWLEDGE MAKE "KNOWLEDGE "FISH 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 1000 ANIMAL END MAKE "KNOWLEDGE [[DOES IT HAD :.SPEED2 IF NOT 0 = :.SPEED3 TELL 3 FD :.SPEED3 IF NOT 0 = :.SPEED4 TELL 4 FD :.SPEED4 IF NOT 0 = :.SPEED5 TELL 5 FD :.SPEED5 IF NOT 0 = :.SPEED6 TELL 6 FD :.SPEED6 IF NOT 0 = :.SPEED7 TELL 7 FD :.SPEED7 TELL :.UWHO END TO THAW LOCAL ".UWHO MAK142 ) / ( 1.4142 + :N ) MAKE "T :N * :N MAKE "N 0.5 + :N * ( 2.88533 + :T * ( 0.961794 + :T * ( 0.576583 + :T * 0.434254 ) ) ) MAKE "N 0.693128 * ( :J + :N ) END TO LOGAUX1 IF :N < 2 STOP MAKE "N :N * 0.5 MAKE "J :J + 1 LOGAUX1 END TO LOGAUX2 I "N :N + 1 IF :N > 0 EXPAUX1 ELSE EXPAUX2 MAKE "N :F END TO EXP :N EXPAUX :N * 1.44264 OP :N END TO LOG10 :N OP ( LOG :N ) / 2.30251 END TO HELP PR [THE PROCEDURES LOG, EXP, AND LOG10 ARE] PR [ACCURATE TO 3 OR 4 SIGNIFICANT DIGITS] END TO LOG E ".UWHO WHO TELL 0 PRINT1 "? THAW.LOOP END TO SETUP MAKE "ALL [0 1 2 3 4 5 6 7] EACH :ALL [SETSPEED 0] DRAW CURSOR 0 20 THAW END TO EACH :.WHO :.WHAT LOCAL ".OWHO MAKE ".OWHO WHO EACH1 :.WHO TELL :.OWHO END TO SPEED OP THING WORD ".SPEED  0 RIGHT RANDOM 180]] PR [] PR [WHILE [JOYBUTTON 1] [FD 1]] PR [] PRINT1 [WHILE [(PADDLE 0)>10] [FD 3 RT PADDLE 1]] END TO UNTIL :COND :ACTION IF RUN :COND STOP RUN :ACTION UNTIL :COND :ACTION END TO WHILE :COND :ACT IF NOT RUN :COND STOP RUN : MAKE "LGRAY (15) MAKE "LBLUE (14) MAKE "LGREEN (13) MAKE "MGRAY (12) MAKE "DGRAY (11) MAKE "LRED (10) MAKE "BROWN (9) MAKE "ORANGE (8) MAKE "YELLOW (7) MAKE "BLUE (6) MAKE "GREEN (5) MAKE "PURPLE (4) MAKE "CYAN (3) MAKE "RED (2) MAKE "WHITE (1) MAKE "B TO DYNATRACK SETUP DTRACK :W END TO DRAWTRACK :R1 :R2 DRAW FULLSCREEN HIDETURTLE CIRCLE :R1 CIRCLE :R2 LEFT 90 PENUP FORWARD ( :R2 + :R1 ) / 2 RIGHT 90 SHOWTURTLE END TO START PENUP MAKE "VX 0 MAKE "VY 0 END TO DT.DTRACK :T DYNAMOVE C`@ ©…\©…]¥X …Z¥Y …[ ±\)ÅXÐ ±\)ðÅZÐ † æ\Ðî]­]É ÐÚ­\ÉèÐÓ`±\)[‘\`­ð±\)ðY‘\`MAKE "COLMOD 14*256+3 MAKE "KERVER 14*256+2 MAKE "TOPIRQ 14*256 MAKE "ENDBUF 8*16+6 MAKE "PPTTP 4*4096+3 MAKE "TPCHR 4*4096+9 MAKE "OTPFX2 4*4096+1*16+10 MAK TO STAMPFD :D :CHAR IF :D < 0 STAMPBK - :D :CHAR STOP REPEAT QUOTIENT :D 8 [STAMPCHAR :CHAR FD 8] STAMPCHAR :CHAR FD REMAINDER :D 8 STAMPCHAR :CHAR END TO STAMPBK :D :CHAR IF :D < 0 STAMPFD - :D :CHAR STOP REPEAT QUOTIENT :D 8 [STAMPCHAR :CHAR ‹ FLAG²1 § 53—51,0:—52,32:—56,32:œ:FLAG²1X™"“":… "FILENAME";F$:‹ F$²"" § €k2000:“ F$,8,1™:Ÿ 4,4:† Z%(199)Œ S²8192« I²39 ¤ 0 © «1: J²0 ¤ 24¹ K²0 ¤ 7Å(Q²J¬8ªKì2Z%(Q)²Z%(Q)ª(Â(Sª320¬JªI¬8ªK))¬2®Y 7A$²A$ªÇ((Z%(Q  ±WHO END TO SETSPEED :SPEED MAKE WORD ".SPEED WHO :SPEED END TO EACH1 :.LIST IF EMPTY? :.LIST STOP TELL FIRST :.LIST RUN :.WHAT EACH1 BF :.LIST END MAKE "STARTUP [SETUP] OT 0 = :.SPEED7 TELL 7 FD :.SPEED7 TELL :.UWHO END TO THAW LOCAL ".UWHO MAK*€ª (€  €€ª "ªª€ (¨ªªªACT WHILE :COND :ACT END E] PR [PROCEDURE RETURNS.] PR [] PR [UNTIL:] PR [UNTIL REPEATS UNTIL THE PREDICATE] PR [OUTPUTS TRUE.] PR [] PR [EXAMPLES:] PR [UNTIL [RC?] [PRINT [PRESS ANY KEY!]]] PR [] PR [UNTIL [XCOR*XCOR + YCOR*YCOR > 900] [FD 1 LACK (0) SES.LOGO  ‚CCHANGE.BIN     ‚ B&W.LOGO        ‚CCHANGE.LOGO    ‚STAMPFD.LOGO    ‚DISK.COPY.LOGO  ‚TEXTEDIT.LOGO   ‚DYNATRACK.LOGO   HECK.DTRACK COMMAND DT.DTRACK :T + 1 END TO DTRACK :W DRAWTRACK 50 :W + 50 START DT.DTRACK 0 END TO REPLAY NODRAW INSTRUCTIONS2 DTRACK :W END TO INSTRUCTIONS2 PRINT [HOW WIDE DO YOU WANT THE TRACK TO BE?] PRINT [(50 IS A GOOD SIZE.)] MAKE "S TO B&W READ "ADDRESSES .DEPOSIT :KERVER 100 GOODBYE END MAKE "STARTUP [B&W] OD 14*256+3 MAKE "KERVER 14*256+2 MAKE "TOPIRQ 14*256 A ( PTR ,Y ) AND # [$ "0F] ORA ! NCOLOR.H STA ( PTR ,Y ) RTS DOLOW: LDA ( PTR ,Y ) AND # [$ "F0] ORA ! NCOLORABK 8] STAMPCHAR :CHAR BK REMAINDER :D 8 STAMPCHAR :CHAR END ‚SPRED.LOGO       ‚CCHANGE.LOGO    STAMPFD.LOGO    D.PIC1          !D.PIC2          ‚ADVENTURE.LOGO  ) ¯ 127) ª 128)! <Z%(Q)²Z%(Q)­128- >‚ K:‚ JB F˜4,Ç(8);A$:A$²""_ PY²Yª1:‹ Y²7 § Y²0:‰ 1000p d™I" ‘":‚ Ix çR²1ˆ è L²0 ¤ 199¨ òA$²A$ªÇ((Z%(L) ¯ 127)ª 128)À üZ%(L)²Z%(L)­128:‚ LÕ ˜4,Ç(A);A$:A$²""å ‹ R²0 § 100í   4ó $€ Ћ É("‚Š ‚(ˆˆ¨¨ˆ¨ €€€  € **ªªª¢"¢¢¢ €€* ªˆŠ€ (ª¨¨¨€  €( TO TEACH.BODY LOCAL "LINE MAKE "LINE ASK "> IF :LINE = [END] OP [] OP FPUT :LINE TEACH.BODY END TO ASK :QUESTION LOCAL "ANSWER PRINT1 :QUESTION MAKE "ANSWER REQUEST IF EMPTY? :ANSWER OP ASK :QUESTION OP :ANSWER END TO TEACH LOCAL "NAME.ARGSDDAAA@@P €   W FIRST REQUEST IF NOT NUMBER? :W INSTRUCTIONS2 STOP PRINT [HOW STRONG DO YOU WANT THE KICK TO BE?] PRINT [(3 IS A GOOD STRENGTH.)] MAKE "FORCE FIRST REQUEST IF NOT NUMBER? :FORCE INSTRUCTIONS2 STOP END TO INSTRUCTIONS1 PRINT [THE OBJECT OF THIS G ] PRINT [R TURN THE TURTLE RIGHT] PRINT [K GIVE THE TURTLE A "KICK" IN THE] PRINT [DIRECTION IT IS POINTING.] PRINT [] END TO INSTRUCTIONS INSTRUCTIONS1 INSTRUCTIONS2 END TO SETUP NODRAW INSTRUCTIONS END TO CIRCLE :R LEFT 90 PENUP FORWARD :R:W ) ENDGAME END TO KICK MAKE "VX :VX + :FORCE * SIN HEADING MAKE "VY :VY + :FORCE * COS HEADING END TO COMMAND LOCAL "COM MAKE "COM READKEY IF :COM = " STOP IF :COM = "R RIGHT 30 STOP IF :COM = "L LEFT 30 STOP IF :COM = "K KICK STOP END TO RED TO DISTANCE.SQUARED :X :Y OUTPUT ( XCOR - :X ) * ( XCOR - :X ) + ( YCOR - :Y ) * ( YCOR - :Y ) END TO CHECK.STOPPED IF ALLOF :VX = 0 :VY = 0 MAKE "T :T - 1 END TO RCP :R RIGHT 5 FORWARD 3.14159 * :R / 18 RIGHT 5 END TO RCIRCLE :R REPEAT 36 [R@T@EUETTTTTTTPEETUUU@@@TEUUUUU@PDDPPP@@@T@U@Z*¢¢PP !©¨ªPP@@@@@UHdeeXXHªªª  ¢¢ª €@@@@QUEUU@@@@Pªª¨Š" ¢ª( €¨ €Š¢  ˆ‚" ªªª€€ª (   €*Šªªª(    P@@T@@@DA@@TUU@@@@ª€€€ª¨ ‚  €€œ MAKE "NAME.ARGS ASK [NAME:] ( PR "TO :NAME.ARGS ) DEFINE FIRST :NAME.ARGS FPUT BF :NAME.ARGS TEACH.BODY ( PRINT ( FIRST :NAME.ARGS ) "DEFINED ) END ‚DISK.COPY.LOGO  ‚TEXTEDIT.LOGO   ‚DYNATRACK.LOGO   AME IS TO SEE] PRINT [HOW LONG YOU CAN KEEP THE DYNATURTLE] PRINT [MOVING ON A CIRCULAR TRACK,] PRINT [WITHOUT CRASHING!] PRINT [] PRINT [YOU MOVE THE TURTLE ALONG THE TRACK] PRINT [WITH THE FOLLOWING KEYS:] PRINT [] PRINT [L TURN THE TURTLE LEFT PENDOWN RIGHT 90 RCIRCLE :R RIGHT 90 PENUP FORWARD :R PENDOWN LEFT 90 END TO DYNAMOVE SETXY XCOR + :VX YCOR + :VY END TO CHECK.DTRACK CHECK.STOPPED IF DISTANCE.SQUARED 0 0 < 50 * 50 ENDGAME STOP IF DISTANCE.SQUARED 0 0 > ( 50 + :W ) * ( 50 + ADKEY IF RC? OUTPUT READCHARACTER OUTPUT " END 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? EN@@@U@€€ UP@RX"€*ªªª€  ¢¢€€€€@@TEUP@@@@@@@T@UUUEU@D @P@P@AEEEA@UUTTT@@@@@@@@€€€ EEPTTTTTTT@@ "*ŠŠ ¢(Šª¨ªª¨ €€(€ ( €*€ª (ªª€€  (( QPPPPPPDUUUP@ @@@@AT@@@@TUUUUTUQ@@@@@@@ A@UU @PUUUT@@@ª"%VH¢¢J–¡U€€@@@P@PUU@PPPDT@@@ @@T@@@UP@ AA@@UT@P@P@T@@@TUUUUEAUEUUUTP@P@TAU@@UUUTPQAEP@TTUDDU TO TS? LOCAL "T MAKE "T .EXAMINE 53278 OP 0 < BITAND .EXAMINE 53278 EXP2 WHO END TO EACH1 :E.WHO IF EMPTY? :E.WHO STOP TELL FIRST :E.WHO RUN :E.WHAT EACH1 BF :E.WHO END TO EACH :E.WHO :E.WHAT LOCAL "O.WHO MAKE "O.WHO WHO EACH1 :E.WHO TELL :O¡ MAKE "BUTTERFLY (7) MAKE "CAT (6) MAKE "HORSE (5) MAKE "DOLPHIN (4) MAKE "BUG (3) MAKE "KANGAROO (2) MAKE "DINOSAUR (1) MAKE "STARTUP [BLOAD "ANIMALS.SHAPES]  "MUSIC.LOGO" PRG  "LM.LOGO" PRG ÕBLOCKS FREE. @ `ðð<ÿÿÀÿàÿðÿø»ø 0`ÿÀ 8>0ðàÐØð?ð`?àÀ€À€Àÿ€á÷Î?€À€0 €@ @@ ƒ!?Æï¨ÿÿðÿÿðï¨?Æ! ƒ @@ €@À€0¿àøÿüÿþø~à€Çþ8àÀ TO SOUND :PITCH :DUR :AD :SR :WAVEFORM .DEPOSIT 54296 15 .DEPOSIT 54277 :AD .DEPOSIT 54278 :SR .DEPOSIT 54273 QUOTIENT :PITCH 256 .DEPOSIT 54272 BITAND :PITCH 255 .DEPOSIT 54276 :WAVEFORM REPEAT :DUR * :TEMPO [] .DEPOSIT 54276 0 END MAKE "TEMP@@@@@@@@ ****‚¢¨ €€€€  €@@@@TTAEUUU@@@@@@AAEDEA@@UUUUTAU%%¡€TTET@@TP@UUUUUTP@@@@@@UUUUTPQDPAUQQUUTU@@@UT@@UQUU@@P@UAEDT@@TUUA@@@@@@@U@PP@PPTT@@@@@@AAAUUUUUU@@@@@P@@@@PP@.WHO END TO ASK :N :COMMAND.LIST LOCAL "CURRENT MAKE "CURRENT WHO TELL :N RUN :COMMAND.LIST TELL :CURRENT END TO SMALLX .DEPOSIT 53277 BITAND 255 - EXP2 WHO .EXAMINE 53277 END TO BIGX .DEPOSIT 53277 BITOR EXP2 WHO .EXAMINE 53277 END TO SMALLY  TO SETUP MAKE "HISTORY [] DRAW INSTANT.COMMAND END TO INSTANT.COMMAND COMMAND READCHARACTER INSTANT.COMMAND END TO 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 :COM = "C SCREEN STOP IF :COM = "? HELP END TO UNDO IF :HISTORY = [] STOP MAKE "HISTORY BUTLAST :HISTORY DRAW RUN.ALL :HISTORY CLEARTEXT 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 THE LAST COMMAND)] PRINT [N: NAMES THE PICTURE] PRINT [P: SHOWS A PICTURE. ASsEND TO WHILE :COND :ACTION IF NOT RUN :COND STOP RUN :ACTION WHILE :COND :ACTION END MAKE "STARTUP [INSTANT] PRINT [D: DRAW (CLEARS THE SCREEN)] PRINT [U: UNDO (ERASES THE LAST COMMAND)] PRINT [N: NAMES THE PICTURE] PRINT [P: SHOWS A PICTURE. AS TO DEMO READ "SPRITES READ "ANIMALS EACH [0 4 5 6 7] [HT] EACH [1 2 3] [SETSHAPE 1 PU] TELL 3 BIGX BIGY TELL 2 SMALLX BIGY TELL 1 SMALLX SMALLY STROLLDEMO END TO STROLLDEMO IF RC? THEN SPLITSCREEN STOP ELSE STROLL STROLLDEMO END TO STROLL Ä?ðððãà?ÿðÿðßÿüßÿþÞ|ãÌ̘ŽŒ€à`@pp~ÀÿÀÀùÀÚ@‘ Øÿa€!|aÕÃ\*REKe&k:kp •”"Áð8H pANIMALS.LOGO    VEHICLES.SHAPES ¢ MAKE "BALLOON (7) MAKE "BOAT (6) MAKE "AIRPLANE (5) MAKE "SUBMARINE (4) MAKE "BICYCLE (3) MAKE "CAR (2) MAKE "TRUCK (1) MAKE "STARTUP [BLOAD "VEHICLES.SHAPES] SPRITES.LOGO    ‚ANIMALS.LOGO    ‚ANIMALS.SHAPES   TO STAMP :THING LOCAL "HEADING MAKE "HEADING HEADING LOCAL "PEN MAKE "PEN ITEM 1 DRAWSTATE PU SETH 90 STAMP1 :THING SETH :HEADING IF :PEN PD END TO STAMP1 :THING IF EMPTY? :THING STOP IF LIST? :THING STAMP1 FIRST :THING FD 8 STAMP1 BF :THING ST@@ END TO SCREEN PRINT [WHAT COLOR DO YOU WANT TO MAKE THE] PRINT [SCREEN? PICK A NUMBER FROM 0 TO 15] PRINT [HIT RETURN AFTER TYPING NUMBER] RUN.AND.RECORD SE [BG] REQUEST END TO UNDOALL DRAW MAKE "HISTORY [] END TO LEARN PRINT [WHAT DO YOU WANTWHAT PICTURE DO YOU WANT TO SHOW?] PRINT [HIT RETURN AFTER TYPING NAME!] RUN.AND.RECORD REQUEST END TO RUN.ALL :COMMANDS IF :COMMANDS = [] STOP RUN FIRST :COMMANDS RUN.ALL ( BUTFIRST :COMMANDS ) END TO INSTANT HELP SETUP END TO HELP TEXTSCREENKS FOR ITS NAME.] PRINT [C: FOR CHANGING THE SCREEN COLOR] PRINT [?: GIVES HELP] PRINT [] PRINT [] PRINT [PRESS ANY KEY TO CONTINUE] PRINT RC SPLITSCREEN CURSOR 0 20 END TO UNTIL :COND :ACTION IF RUN :COND STOP RUN :ACTION UNTIL :COND :ACTION CTELL 3 PENCOLOR 5 SETXY 60 21 TELL 2 PENCOLOR 9 SETXY 100 21 TELL 1 PENCOLOR 8 SETXY 130 0 EACH [1 2 3] [SETH 0 ST] SCENERY REPEAT 4 [TELL 3 CLUNK 1 TELL 2 CLUNK 1 TELL 1 SKIP 3] SETX - 35 TELL 3 EAT TELL 2 SETX - 65 EAT TELL 1 EAT END TO SCENER@ ø@@À@ @ ÿø@F2Ozÿÿÿ0ü"! €ÿð` Œ bž ñÿÿþ `€€ð€`€ @P@H| Œ¢CG!DEGý@I œ‚|¿0à0 øøý_ÿÿÿö?õq?ÿøÿÀÄ<xðàÀÿÿà?€xð €À€€€€€€€€€€€€ÀÏ¿ÿÿ÷u^ÿüÿÿÿ€ÿÀ"`U`ˆ ÿàÀ¥À€ý~<<$$$$<9TOP STAMPCHAR FIRST :THING FD 8 STAMP1 BF :THING END ‚INSPI.PIC2      ‚ ANIMAL.INSPECTORSTAMPER.LOGO    ‚ TET.LOGO        ‚ MUSIC.LOGO      ‚LM.LOGO         @TTPPPQ@@@@@@@ D TO CALL THIS PICTURE?] PRINT [HIT RETURN AFTER TYPING NAME] LOCAL "NAME MAKE "NAME ( FIRST REQUEST ) DEFINE :NAME ( FPUT [] :HISTORY ) UNDOALL END TO RUN.AND.RECORD :ACTION RUN :ACTION MAKE "HISTORY ( LPUT :ACTION :HISTORY ) END TO ASK PRINT [O (20) CLES.LOGO   ‚ VEHICLES.SHAPES ‚ SHAPES.LOGO     ‚ SHAPES.SHAPES    SOUND.LOGO      ‚ SPRITEDEMOS.LOGO‚ RUNNER.LOGO     ‚ RUNNER.SHAPES    @ ÿÀ |`Æ01ƒ3˜f8Ìf|Ìf|Ìf8Ì3˜1ƒü0 `ÿ€ü̆€ Àÿÿà€ ¶¢ ª£ ª¢¿¢º€œá”¡÷ÿ¿@(D‚€ÿÀ@@@@@ÿà     ÿð?ÿøÿüÿþÿ€ÿÀÇÀ¹à³à¹àÇÀÿÀÿÀÿ@þ€|€99’’||| Y BACKGROUND 1 TELL 0 PU HT PENCOLOR 5 SETXY - 130 ( - 20 ) SETH 0 PD TREE 25 PU RT 90 FD 45 LT 90 PD TREE 25 PU RT 90 FD 40 LT 90 PD TREE 15 PU END TO CLUNK :N LT 80 REPEAT :N [FD 22 SHAKE 2 LT 20 FD 22 SHAKE 2 RT 20] RT 80 END TO SKIP :N LÉSIZE IF :SIZE < 7 STOP LT 25 FD :SIZE TOP :SIZE * 0.65 BK :SIZE RT 50 FD :SIZE TOP :SIZE * 0.65 BK :SIZE LT 25 END TO TREE :SIZE PD FD :SIZE TOP :SIZE BK :SIZE PU END MAKE "STARTUP [DEMO] 2 LT 20 FD 22 SHAKE 2 RT 20] RT 80 END TO SKIP :N L TO IPRINT :THING :LEVEL REPEAT 2 * :LEVEL [PRINT1 "' '] PRINT :THING END TO INSPECT1 :KNOWLEDGE :LEVEL IF WORD? :KNOWLEDGE IPRINT :KNOWLEDGE :LEVEL STOP IPRINT ( QUESTION :KNOWLEDGE ) :LEVEL IPRINT [IF YES:] :LEVEL INSPECT1 YES.BRANCH :KNOWLEDGE)F$,5)²".PIC1" § Ž! ÚF$²F$ª".PIC1":Ž32:œ:FLAG²1X™"“":… "FILENAME";F$:‹ F$²"" § €k2000:“ F$,8,1™:Ÿ 4,4:† Z%(199)Œ S²8192« I²39 ¤ 0 © «1: J²0 ¤ 24¹ K²0 ¤ 7Å(Q²J¬8ªKì2Z%(Q)²Z%(Q)ª(Â(Sª320¬JªI¬8ªK))¬2®Y 7A$²A$ªÇ((Z%(Q.DEPOSIT 53271 BITAND 255 - EXP2 WHO .EXAMINE 53271 END TO BIGY .DEPOSIT 53271 BITOR EXP2 WHO .EXAMINE 53271 END TO EXP2 :N OP ITEM 1 + :N [1 2 4 8 16 32 64 128] END TO TB? LOCAL "T MAKE "T .EXAMINE 53279 OP 0 < BITAND .EXAMINE 53279 EXP2 WHO END@ øøø€€øøøàÀ€€ÀàTORAGE LEFT!STOPPED!TOO MANY PROCEDURE INPUTSPROCEDUREPAÄ8ÿ€@€À ˜Œ†ƒƒƒ†Œ˜ À€@€ÿx<ÿÿ<xÿ (L ŽÀ‰ˆ˜ €€€"Ä‚€T 70 REPEAT :N [FD 15 LT 40 FD 30 RT 40 FD 15 REPEAT 3 [RT RANDOM 360 FD RANDOM 20] SETH 290 SETY 10 BK 15 RT 40 BK 15 LT 40] RT 70 END TO EAT SETH 0 REPEAT 6 [FD 10 RT 90 FD 10 BK 10 LT 90 BK 10] END TO SHAKE :N REPEAT :N [FD 1 BK 1] END TO TOP :… :LEVEL + 1 IPRINT [IF NO:] :LEVEL INSPECT1 NO.BRANCH :KNOWLEDGE :LEVEL + 1 END TO INSPECT.KNOWLEDGE INSPECT1 :KNOWLEDGE 0 END INT :KNOWLEDGE :LEVEL STOP IPRINT ( QUESTION :KNOWLEDGE ) :LEVEL IPRINT [IF YES:] :LEVEL INSPECT1 YES.BRANCH :KNOWLEDGE'CP :R] END MAKE "STARTUP [DYNATRACK] TPUT " END 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? EN7 TO READSHAPES :FILE BLOAD WORD :FILE ".SHAPES END E "CURRENT WHO TELL :N RUN :COMMAND.LIST TELL :CURRENT END TO SMALLX .DEPOSIT 53277 BITAND 255 - EXP2 WHO .EXAMINE 53277 END TO BIGX .DEPOSIT 53277 BITOR EXP2 WHO .EXAMINE 53277 END TO SMALLY ÄRENTHESISIF-THENEVALUATION NESTING TOO DEEP COMMODORE 64 LOGO COPYRIGHT (C) 1982, 1983 TERRAPIN, INC. COPYRIGHT (C) 1981 MIT WELCOME TO LOGO! CONGRATULATIONS! YOU FOUND A BUG! Tÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ