10 REM ***Rabbit, Rabbit, Rabbit*** 15 SCREEN 1,0:CLS:KEY OFF: COLOR 8,0 20 DEF FNCEN$(V$,X)=SPACE$((X-LEN(V$))/2)+V$ 25 LOCATE 12,1:PRINT FNCEN$("RABBIT",40) 30 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT 35 PRINT FNCEN$("(C) COPYRIGHT 1985 George Furiya",40) 40 PRINT FNCEN$("All Rights Reserved",40) 45 d=2500:GOSUB 31000 50 CLS 55 FOR A=0 TO 20 60 OUT 66,A:OUT 66,A 65 OUT 97,(INP(97) OR 3) 70 NEXT A 75 SOUND 37,0 80 CLS 85 LINE(160,30)-(80,100) 90 LINE-(160,170) 95 LINE-(240,100) 100 LINE-(160,30) 105 FOR V=30 TO 170 STEP 2 110 PSET(160,V) 115 NEXT V 120 LINE(114,70)-(160,170) 125 LINE-(206,70) 130 GOSUB 30000 '*** *** 135 PRINT FNCEN$("RABBIT begins with KITE BASE.",40) 140 d=1500:GOSUB 31000 145 FOR Q=0 TO 41 150 LINE(114,70)-(80+Q,100-.37*Q) 155 LINE-(160,170) 160 LINE(114,70)-(80+Q,100-.37*Q),0 165 LINE-(160,170),0 170 NEXT Q 175 FOR Q=0 TO 39 180 LINE(114,70)-(122+Q,85-.38*Q) 185 LINE-(160,170) 190 LINE(114,70)-(121+Q,85-.38*Q) 195 LINE-(160,170) 200 NEXT Q 205 LINE(161,70)-(161,169),0 210 d=750:GOSUB 31000 215 FOR Q=0 TO 41 220 LINE(206,70)-(240-Q,100-.37*Q) 225 LINE-(160,170) 230 LINE(206,70)-(240-Q,100-.37*Q),0 235 LINE-(160,170),0 240 NEXT Q 245 FOR Q=0 TO 39 250 LINE(206,70)-(198-Q,85-.38*Q) 255 LINE-(160,170) 260 LINE(206,70)-(199-Q,85-.38*Q) 265 LINE-(160,170) 270 NEXT Q 275 LINE(160,70)-(160,170),0 280 d=750:GOSUB 31000 285 GOSUB 30000 '*** *** 290 PRINT FNCEN$("Your turn to fold KITE BASE. I'll wait.",40) 295 d=1500:GOSUB 31000 300 GOSUB 30000 '*** Textpad *** 305 PRINT FNCEN$("Press to continue.",40) 310 A$=INKEY$:IF A$="" GOTO 310 315 IF A$="C" OR A$="c" GOTO 325 320 GOTO 285 325 GOSUB 30000 '***Textpad*** 330 PRINT FNCEN$("We proceed by folding this corner",40) 335 d=750:GOSUB 31000 340 FOR K=1 TO 15 345 PSET(160,25):DRAW"E5 L4 U7 L2 D7 L4 F5" '///ARROW DOWN/// 350 PAINT(160,20) 355 d=25:GOSUB 31000 360 CIRCLE(160,19),7,0 365 PAINT(160,19),0 370 NEXT K 375 GOSUB 30000 '***Textpad*** 380 PRINT FNCEN$("down to this point,",40) 385 d=750:GOSUB 31000 390 FOR K=1 TO 15 395 CIRCLE(160,110),5,0 400 LINE(158,110)-(162,110),0 405 LINE(160,108)-(160,112),0 410 d=25:GOSUB 31000 415 CIRCLE(160,110),5 420 LINE(158,110)-(162,110) 425 LINE(160,108)-(160,112) 430 NEXT K 435 LINE(160,100)-(160,120),0 440 d=750:GOSUB 31000 445 GOSUB 30000 '***Textpad*** 450 PRINT FNCEN$(" SO!",40) 455 d=750:GOSUB 31000 460 FOR V=30 TO 71 465 LINE(160,V)-(114,70),0 470 LINE(160,V+1)-(114,70) 475 LINE(160,V-2)-(114,70),0 480 LINE(160,V)-(206,70),0 485 LINE(160,V+1)-(206,70) 490 LINE(160,V-2)-(206,70),0 495 NEXT V 500 FOR V=71 TO 110 505 LINE(160,V)-(114,70),0 510 LINE(160,V)-(206,70),0 515 LINE(160,V-1)-(114,70) 520 LINE(160,V-1)-(206,70) 525 NEXT V 530 LINE(114,70)-(160,110),0 535 LINE-(206,70),0 540 d=750:GOSUB 31000 545 GOSUB 30000 '*** Textpad *** 550 PRINT FNCEN$("Press to continue.",40) 555 A$=INKEY$:IF A$="" GOTO 555 560 IF A$="C" OR A$="c" GOTO 570 565 GOTO 545 570 GOSUB 30000 '***Textpad*** 575 PRINT FNCEN$("With a penknife or a pair of scissors,",40) 580 d=1000:GOSUB 31000 585 FOR K=1 TO 15 590 LINE(153,178)-(167,199),0,BF 595 d=25:GOSUB 31000 600 LINE(160,178)-(159,187) 605 LINE-(160,196) 610 LINE-(161,187) 615 LINE-(160,178) 620 CIRCLE(157,196),3,3,,,1 625 CIRCLE(163,196),3,3,,,1 630 NEXT K 635 d=750:GOSUB 31000 640 GOSUB 30000 '***Textpad*** 645 PRINT FNCEN$("cut along this line",40) 650 d=750:GOSUB 31000 655 FOR K=1 TO 25 660 LINE(160,110)-(160,169),1 665 d=25:GOSUB 31000 670 LINE(160,110)-(160,170),0 675 NEXT K 680 GOSUB 30000 '***Textpad*** 685 PRINT FNCEN$("to separate my ears.",40) 690 d=750:GOSUB 31000 695 FOR V=169 TO 110 STEP -1 700 PSET(160,V),1 705 d=20:GOSUB 31000 710 NEXT V 715 FOR V=169 TO 110 STEP -1 720 PSET(160,V),0 725 d=20:GOSUB 31000 730 NEXT V 735 d=750:GOSUB 31000 740 LINE(153,178)-(167,199),0,BF 745 d=750:GOSUB 31000 750 GOSUB 30000 '***Textpad*** 755 PRINT FNCEN$("Press to continue.",40) 760 A$=INKEY$:IF A$="" GOTO 760 765 IF A$="C" OR A$="c" GOTO 775 770 GOTO 750 775 GOSUB 30000 ' ***TEXTPAD*** 780 PRINT FNCEN$("Next, we fold this corner",40) 785 d=750:GOSUB 31000 790 LINE(154,105)-(160,110) 795 LINE-(166,105) 800 LINE(160,105)-(160,110),0 805 LINE(154,105)-(160,100),0 810 LINE-(166,105),0 815 LINE-(154,105),0 820 PSET(157,107):PSET(163,107) 825 d=750:GOSUB 31000 830 GOSUB 30000 '***Textpad*** 835 PRINT FNCEN$("back up to this point",40) 840 d=750:GOSUB 31000 845 FOR K=1 TO 15 850 CIRCLE(160,60),5 855 LINE(158,60)-(162,60) 860 LINE(160,58)-(160,62) 865 d=25:GOSUB 31000 870 CIRCLE(160,60),5,0 875 LINE(158,60)-(162,60),0 880 LINE(160,58)-(160,62),0 885 NEXT K 890 d=750:GOSUB 31000 895 GOSUB 30000 900 PRINT FNCEN$("across this line,",40) 905 d=750:GOSUB 31000 910 FOR K=1 TO 25 915 LINE(131,85)-(189,85),1 920 d=25:GOSUB 31000 925 LINE(131,85)-(189,85),0 930 NEXT K 935 CIRCLE(212,85),0 940 PAINT(212,85),0 945 CIRCLE(108,85),0 950 PAINT(108,85),0 955 FOR H=132 TO 188 STEP 2 960 PSET(H,85) 965 NEXT H 970 d=750:GOSUB 31000 975 GOSUB 30000 '***tEXTPAD*** 980 PRINT FNCEN$("SO!",40) 985 d=750:GOSUB 31000 990 LINE(154,105)-(160,100) 995 LINE-(166,105) 1000 LINE-(154,105) 1005 LINE(160,105)-(160,110) 1010 LINE(154,105)-(160,110),0 1015 LINE-(166,105),0 1020 d=250:GOSUB 31000 1025 FOR V=110 TO 85 STEP -1 1030 LINE(131,85)-(160,V),0 1035 LINE-(189,85),0 1040 LINE(131,85)-(160,V) 1045 LINE-(189,85) 1050 PSET(160,V),0 1055 PSET(157,108):PSET(163,108) 1060 NEXT V 1065 FOR V=84 TO 60 STEP -2 1070 LINE(131,85)-(160,V) 1075 LINE-(189,85) 1080 LINE(131,85)-(160,V),0 1085 LINE-(189,85),0 1090 LINE(131,85)-(160,V+1),0 1095 LINE-(189,85),0 1100 PSET(160,V) 1105 NEXT V 1110 LINE(147,70)-(160,60) 1115 LINE-(173,70) 1120 d=750:GOSUB 31000 1125 GOSUB 30000 '*** Textpad *** 1130 PRINT FNCEN$("Press to continue.",40) 1135 A$=INKEY$:IF A$="" GOTO 1135 1140 IF A$="C" OR A$="c" GOTO 1150 1145 GOTO 1125 1150 GOSUB 30000 '*** Textpad *** 1155 PRINT FNCEN$("Now, we fold the left side of our figure",40) 1160 d=750:GOSUB 31000 1165 FOR K=1 TO 15 1170 LINE(160,60)-(131,85),0 1175 LINE(147,70)-(114,70),0 1180 LINE-(160,170),0 1185 LINE-(160,60),0 1190 LINE(114,70)-(131,85),0 1195 LINE-(160,85),0 1200 d=25:GOSUB 31000 1205 LINE(160,60)-(131,85),3 1210 LINE(147,70)-(114,70),3 1215 LINE-(160,170),3 1220 LINE-(160,60),3 1225 LINE(114,70)-(131,85),3 1230 LINE-(160,85),3 1235 NEXT K 1240 PSET(118,73):PSET(126,80) 1245 LINE(114,70)-(131,85),0 1250 LINE-(160,60),0 1255 LINE-(147,70) 1260 LINE(131,85)-(160,85),0 1265 FOR V=61 TO 85 STEP 2 1270 PSET(160,V),0 1275 NEXT V 1280 LINE(160,85)-(160,170),0 1285 d=750:GOSUB 31000 1290 GOSUB 30000 '***tEXTPAD*** 1295 PRINT FNCEN$("over to the right side,",40) 1300 d=750:GOSUB 31000 1305 FOR K=1 TO 15 1310 LINE(160,60)-(189,85),0 1315 LINE(173,70)-(206,70),0 1320 LINE-(160,170),0 1325 LINE-(160,60),0 1330 LINE(206,70)-(189,85),0 1335 LINE-(160,85),0 1340 d=25:GOSUB 31000 1345 LINE(160,60)-(189,85),3 1350 LINE(173,70)-(206,70),3 1355 LINE-(160,170),3 1360 LINE-(160,60),3 1365 LINE(206,70)-(189,85),3 1370 LINE-(160,85),3 1375 NEXT K 1380 PSET(202,73):PSET(194,80) 1385 LINE(206,70)-(189,85),0 1390 LINE-(160,60),0 1395 LINE-(173,70) 1400 LINE(160,85)-(189,85),0 1405 FOR V=61 TO 85 STEP 2 1410 PSET(160,V),0 1415 NEXT V 1420 LINE(160,85)-(160,170),0 1425 d=750:GOSUB 31000 1430 GOSUB 30000 '***tEXTPAD*** 1435 PRINT FNCEN$("SO!",40) 1440 FOR K=1 TO 750: NEXT K 1445 FOR Q=0 TO 46 1450 LINE(160,60)-(131+.63*Q,85) 1455 LINE-(114+Q,70),0 1460 LINE-(160,170),0 1465 LINE(131+.63*Q,85)-(114+Q,70) 1470 LINE(160,170)-(114+Q,70) 1475 LINE(160,170)-(114+Q,70),0 1480 LINE(160,60)-(147+.28*Q,69),0 1485 NEXT Q 1490 FOR H=160 TO 173 1495 LINE(160,60)-(H,70),3 1500 LINE(160,170)-(H,70),3 1505 LINE(160,69)-(173,69),0 1510 NEXT H 1515 FOR H=173 TO 206 1520 LINE(160,170)-(H,70),3 1525 NEXT H 1530 d=1500:GOSUB 31000 1535 GOSUB 30000 '***Textpad*** 1540 PRINT FNCEN$("Now we're ready for our final folds.",40) 1545 d=1500:GOSUB 31000 1550 GOSUB 30000 '***Textpad*** 1555 PRINT FNCEN$("But first let's position ourselves",40) 1560 d=1500:GOSUB 31000 1565 PRINT FNCEN$("more comfortably.",40) 1570 d=1500:GOSUB 31000 1575 GOSUB 30000 '***Textpad*** 1580 PRINT FNCEN$("One moment, please.",40) 1585 d=1500:GOSUB 31000 1590 CLS 1591 DEF FNCEN$(V$,X)=SPACE$((X-LEN(V$))/2)+V$ 1595 FOR A=0 TO 20 1600 OUT 66,A:OUT 66,A 1605 OUT 97,(INP(97) OR 3) 1610 NEXT A 1615 SOUND 37,0 1620 LINE(255,150)-(10,150) 1625 LINE-(245,60) 1630 LINE-(225,90) 1635 LINE-(255,150) 1640 PAINT(160,120),3 1645 LINE(216,70)-(226,90),0 1650 d=750:GOSUB 31000 1655 GOSUB 30000 '***Textpad*** 1660 PRINT FNCEN$("There! That's much better!",40) 1665 d=1500:GOSUB 31000 1670 GOSUB 30000 '***Textpad*** 1675 PRINT FNCEN$("We now fold this outside corner",40) 1680 d=250:GOSUB 31000 1685 FOR K=1 TO 15 1690 PSET(10,158):DRAW"G5 R4 D7 R2 U7 R4 H5" 1695 PAINT(10,164) 1700 d=25:GOSUB 31000 1705 CIRCLE (10,164),7,0 1710 PAINT(10,164),0 1715 NEXT K 1720 d=500:GOSUB 31000 1725 GOSUB 30000 '***Textpad*** 1730 PRINT FNCEN$("up to roughly this point",40) 1735 FOR K=1 TO 15 1740 CIRCLE(165,40),5,3 1745 LINE(163,40)-(167,40),3 1750 LINE(165,38)-(165,42),3 1755 d=25:GOSUB 31000 1760 CIRCLE(165,40),5,0 1765 LINE(163,40)-(167,40),0 1770 LINE(165,38)-(165,42),0 1775 NEXT K 1780 CIRCLE(165,40),5,0 1785 PSET(165,40),0 1790 d=500:GOSUB 31000 1795 GOSUB 30000 '***Textpad*** 1800 PRINT FNCEN$("along about this line",40) 1805 d=500:GOSUB 31000 1810 FOR K=1 TO 25 1815 LINE(105,114)-(141,150),3 1820 d=25:GOSUB 31000 1825 LINE(105,114)-(141,150),0 1830 NEXT K 1835 d=500:GOSUB 31000 1840 GOSUB 30000 '***Textpad*** 1845 PRINT FNCEN$("to set our ears at a jaunty angle,",40) 1850 d=1500:GOSUB 31000 1855 GOSUB 30000 '***Textpad*** 1860 PRINT FNCEN$("SO!",40) 1865 d=1000:GOSUB 31000 1870 FOR Q=0 TO 95 1875 LINE(105,114)-(10+Q,150-.38*Q),0 1880 LINE-(141,150),0 1885 LINE(105,114)-(10+Q,150-.38*Q) 1890 LINE-(141,150) 1895 NEXT Q 1900 FOR Q=O TO 74 1905 LINE(141,150)-(105+.81*Q,114-Q),0 1910 LINE(105,114)-(105+.81*Q,114-Q) 1915 LINE-(141,150) 1920 LINE(141,150)-(105+.81*Q,114-Q) 1925 LINE(105,114)-(141,150),0 1930 LINE(105+.32*Q,114-.39*Q)-(130+.32*Q,114-.29*Q) 1935 NEXT Q 1940 LINE(166,40)-(142,150),0 1945 FOR Q=0 TO 26 1950 LINE(129+Q,85)-(108+Q,111) 1955 NEXT Q 1960 d=750:GOSUB 31000 1965 GOSUB 30000 '*** Textpad *** 1970 PRINT FNCEN$("Press to continue.",40) 1975 A$=INKEY$:IF A$="" GOTO 1975 1980 IF A$="C" OR A$="c" GOTO 1990 1985 GOTO 1965 1990 GOSUB 30000 '***Textpad*** 1995 PRINT FNCEN$("and likewise with our other ear,",40) 2000 d=1500:GOSUB 31000 2005 GOSUB 30000 '*** *** 2010 PRINT FNCEN$("SO!",40) 2015 d=750:GOSUB 31000 2020 FOR Q=0 TO 95 2025 LINE(105,114)-(10+Q,150-.38*Q),0 2030 LINE-(141,150),0 2035 LINE(105,114)-(10+Q,150-.38*Q) 2040 LINE(10+Q,150-.38*Q)-(141,150),0 2045 LINE(10+Q,151-.38*Q)-(141,151),0 2050 LINE(16,147)-(103,114),0 2055 NEXT Q 2060 FOR Q=O TO 74 2065 LINE(141,150)-(105+.81*Q,114-Q),1 2070 LINE(105,114)-(105+.81*Q,114-Q) 2075 LINE-(141,150) 2080 LINE(141,150)-(105+.81*Q,114-Q) 2085 LINE(105,114)-(141,150),0 2090 NEXT Q 2095 LINE(166,40)-(142,150),0 2100 LINE(105,114)-(150,42),3 2105 LINE-(155,60),3 2110 PAINT(145,60),3 2115 PSET(114,101):PSET(113,102):PSET(113,103):PSET(112,104) 2120 LINE(105,114)-(154,53),0 2125 d=1500:GOSUB 31000 2130 GOSUB 30000 '***Textpad*** 2135 PRINT FNCEN$("There! I'm done!",40) 2140 d=1500:GOSUB 31000 2145 GOSUB 30000 '***Textpad*** 2150 PRINT FNCEN$("If you'd like, you might give me",40) 2155 d=1500:GOSUB 31000 2160 GOSUB 30000 '***Textpad*** 2165 PRINT FNCEN$("an eye,",40) 2170 d=1000:GOSUB 31000 2175 CIRCLE(135,95),4,0 2180 CIRCLE(135,95),2,0 2185 PSET(135,95),0 2190 d=1500:GOSUB 31000 2195 PRINT FNCEN$("a nose,",40) 2200 d=1000:GOSUB 31000 2205 CIRCLE(110,113),4,0 2210 PAINT(110,113),0 2215 CIRCLE(110,113),4,3 2220 d=1500:GOSUB 31000 2225 PRINT FNCEN$("and some whiskers.",40) 2230 d=1000:GOSUB 31000 2235 LINE(117,111)-(125,107),0 2240 LINE(117,108)-(125,100),0 2245 LINE(117,114)-(125,118),0 2250 d=1500:GOSUB 31000 2255 GOSUB 30000 '***Textpad*** 2260 PRINT FNCEN$("Mission accomplished!",40) 2265 d=1500:GOSUB 31000 2270 GOSUB 30000 '*** Textpad *** 2275 PRINT FNCEN$(" Press <1> - To return to MAIN MENU.",40) 2280 PRINT FNCEN$(" <2> - To repeat RABBIT.",40) 2285 PRINT FNCEN$(" <3> - To exit from program.",40) 2290 E$=INPUT$(1) 2295 IF E$<"1" OR E$>"3" GOTO 2290 2300 SEL=VAL(E$) 2305 COMMON SEL 2310 CLS 2315 LOCATE 13,1:PRINT FNCEN$("One moment, please.",40) 2316 LINE(70,75)-(250,125),3,B 2320 ON SEL GOTO 2325,2330,2335 2325 CHAIN"main" 2330 CHAIN"rabbit 2335 CHAIN"end" 8999 END 30000 LOCATE 1,1 30010 PRINT " " 30020 LOCATE 1,1:RETURN 31000 REM *** Delay procedure added by Maarten van Gelder 31010 FOR I=1 TO D 31020 FOR J=1 TO 1:NEXT J ' Delay factor: change for actual CPU 31030 NEXT I 31040 RETURN