100 REM HELIKOPTER BY MARTIN FLORIN AND FREDRIK OHRSTROM 1985,2014 200 CALL CLEAR 210 CALL SCREEN(6) 220 READ A,A$ 230 IF A=0 THEN 260 240 CALL CHAR(A,A$) 250 GOTO 220 260 DATA 93,00100038447C4444,91,00280038447C4444,94,0028007C4444447C,96,7F080FC9F91F143E,41,0103070F1F3F7FFF,42,FFFFFFFFFFFFFFFF,43,80C0E0F0F8FCFEFF,104,FFC1C1CFC7CFCFFF,105,03070E1C78F03020,106,1010101010101010,120,000081C3E7FFFFFF 280 DATA 107,000000FF00000000,108,00183C7E7E7E99C3,109,00101038387CFE82,110,183C7E3C18001800,112,3C4299A5A599423C,113,003C425A5A423C00,44,FF7F3F1F0F070301,45,FFFEFCF8F0E0C080,97,040F040F0404041F,98,000002FF93FFA5FD,99,0008483830EE0E0E,0,"" 440 GOSUB 15000 443 FB=1 444 FA=1 445 HA=1.35 470 PRINT ") + )***+ + +" 480 PRINT "* * *- * *" 490 PRINT "* * *+ * *" 500 PRINT "***** **** * * )**-" 510 PRINT "* * *- * *" 520 PRINT "* * *+ * *" 530 PRINT ", - ,***- ,***- ," 540 PRINT " ) )- )***+ )***+" 550 PRINT " * )- *- ,* *- ,*" 560 PRINT " *)- * * * )*" 570 PRINT " ** * * ****- )**-" 580 PRINT " *,+ * * *" 590 PRINT " * ,+ *+ )* *" 600 PRINT " * ,+ ,***- -" 610 PRINT ",*********-)***+ )***+ )***+" 620 PRINT " * * *- *- ,*" 630 PRINT " ***+ * *+ * *" 640 PRINT "*+ )- ,* * **** ****-" 650 PRINT ",****+ )* * *- * ,+" 660 PRINT " ,***- * *+ * ,+" 670 PRINT " + )-,+ ) * ,***- , ," 680 PRINT " ,******-" 700 GOSUB 3650 710 CALL CLEAR 730 PRINT "SHOOT: a=1P i=15P n=2P l=4P":" m=15P b=5P c=10P": :" UP=A":"PAUSE GAME=P `kkkSHOOT=L":" DOWN=Z": :" )****+" 800 PRINT " )- BY ,+" 810 PRINT " )******- ,******+" 820 PRINT " * MARTIN & FREDRIK *" 830 PRINT " * FLORIN & ^HRSTR^M *" 840 PRINT " * 1985 2014 *" 850 PRINT " ,********************-" 855 PRINT "" 870 PRINT "YOSSARIANS HELICOPTER" 876 PRINT "IS HIT AND LEAKS FUEL" 877 PRINT "BEEPS MEAN CATCH h TO ":"REFILL THE FUEL." 960 GOSUB 3650 970 CALL CLEAR 1030 GU=4 1060 A=13 1069 EA=13 1070 B=3 1080 C=1 1090 D=1 1110 BE=15 1120 SK=0 1130 SK=SK+1 1140 KA=0 1150 B=3 1160 CALL CLEAR 1165 A=EA 1170 ON SK GOSUB 5000,5100,5200,5300,5400,5500,5600,5700,5800,5900,6000,6100,6200,6300,6400,4150 1180 FOR T=1 TO 6 1190 PRINT "****************************" 1191 NEXT T 1192 PRINT TAB(14);STR$(SK);"/15" 1193 READ E,F,G,H,I,KA 1194 IF KA=0 THEN 1200 1195 CALL HCHAR(G+I,H,109) 1200 IF F=32 THEN 1203 1201 CALL HCHAR(E,F,105) 1203 CALL HCHAR(23,4,48+GU) 1204 CALL HCHAR(23,5,96) 1207 GOSUB 4250 1210 CALL HCHAR(C,D,32) 1220 CALL HCHAR(A,B,96) 1230 C=A 1240 D=B 1250 BE=BE-1 1260 IF BE<11 THEN 1270 ELSE 1280 1270 CALL SOUND(-50,500,3) 1280 IF BE<0 THEN 2296 1290 CALL KEY(3,K,S) 1300 IF S=0 THEN 1370 1310 IF K=65 THEN 1340 1320 IF K=90 THEN 1360 1321 IF K=80 THEN 20000 1330 IF K=76 THEN 1660 ELSE 1370 1340 A=A-1 1350 GOTO 1370 1360 A=A+1 1365 GOTO 1370 1370 B=B+1 1380 IF B>30 THEN 1390 ELSE 1430 1390 CALL CLEAR 1400 C=1 1410 D=1 1415 EA=A 1420 GOTO 1130 1430 IF A<2 THEN 1440 ELSE 1450 1440 A=2 1450 CALL GCHAR(A,B,X) 1460 IF X<>32 THEN 2240 1470 IF D>F THEN 1480 ELSE 1590 1480 E=E-1 1490 F=F+1 1500 IF E<1 THEN 1510 ELSE 1540 1510 CALL HCHAR(E+1,F-1,32) 1520 F=32 1530 GOTO 1590 1540 CALL HCHAR(E+1,F-1,32) 1550 CALL HCHAR(E,F,105) 1560 IF E=C THEN 1570 ELSE 1590 1570 CALL HCHAR(E,F,105) 1575 A=C 1576 B=D 1580 GOTO 2310 1590 IF KA=0 THEN 1210 1600 IF RND*10>=KA THEN 1210 1610 IF(D<>H)THEN 1630 1611 IF(CG+I)THEN 1630 1620 TR=1 1630 CALL VCHAR(G,H,106,I) 1640 CALL VCHAR(G,H,32,I) 1650 IF TR<>1 THEN 1210 1651 A=C 1652 B=D 1653 GOTO 2310 1660 CALL GCHAR(C,D+1,X) 1670 CALL SOUND(-200,-6,3) 1680 IF(X=42)+(X=41)+(X=43)+(X=44)+(X=45)THEN 1370 1690 IF X=32 THEN 1720 ELSE 1700 1700 SH=1 1710 GOTO 1910 1720 CALL GCHAR(C,D+2,X) 1730 IF(X=42)+(X=41)+(X=43)+(X=44)+(X=45)THEN 1740 ELSE 1770 1740 CALL HCHAR(C,D+1,107) 1750 CALL HCHAR(C,D+1,107) 1760 GOTO 1370 1770 IF X=32 THEN 1800 ELSE 1780 1780 SH=2 1790 GOTO 1910 1800 CALL GCHAR(C,D+3,X) 1810 IF(X=42)+(X=41)+(X=43)+(X=44)+(X=45)THEN 1820 ELSE 1850 1820 CALL HCHAR(C,D+1,107,2) 1830 CALL HCHAR(C,D+1,32,2) 1840 GOTO 1370 1850 IF X=32 THEN 1880 ELSE 1860 1860 SH=3 1870 GOTO 1910 1880 CALL HCHAR(C,D+1,107,3) 1890 CALL HCHAR(C,D+1,32,3) 1900 GOTO 1370 1910 CALL HCHAR(C,D+1,107,SH) 1920 CALL SOUND(-100,-6,0,110,5) 1930 CALL HCHAR(C,D+1,32,SH) 1940 IF X=105 THEN 1950 ELSE 1980 1950 IF C<>E THEN 1960 1955 F=32 1960 PO=PO+15 1965 GOSUB 4250 1970 GOTO 1370 1980 IF X=109 THEN 1990 ELSE 2050 1990 KA=0 2000 PO=PO+15 2005 GOSUB 4250 2010 GOTO 1370 2050 IF X=108 THEN 2060 ELSE 2080 2060 PO=PO+4 2065 GOSUB 4250 2070 GOTO 1370 2080 IF X=99 THEN 2090 ELSE 2110 2090 PO=PO+10 2095 GOSUB 4250 2100 GOTO 1370 2110 IF X=110 THEN 2120 ELSE 2140 2120 PO=PO+2 2125 GOSUB 4250 2130 GOTO 1370 2140 IF X=98 THEN 2150 ELSE 2200 2150 PO=PO+5 2155 GOSUB 4250 2160 GOTO 1370 2200 IF X=97 THEN 2210 ELSE 1370 2210 PO=PO+1 2220 GOSUB 4250 2230 GOTO 1370 2240 IF X=104 THEN 2250 2241 IF X=120 THEN 10100 ELSE 2310 2250 BE=BE+40 2260 GOTO 1470 2290 CALL GCHAR(A,B,X) 2291 IF X=120 THEN 10100 2292 IF X=104 THEN 2250 2293 IF X<>32 THEN 2310 2294 CALL HCHAR(C,D,32) 2295 CALL HCHAR(A,B,96) 2296 C=A 2297 D=B 2298 A=A+1 2299 GOTO 2290 2310 CALL HCHAR(C,D,32) 2320 FOR T=1 TO 10 2330 CALL HCHAR(A,B,112) 2340 CALL SOUND(-300,-6,0) 2350 CALL HCHAR(A,B,113) 2360 CALL SOUND(-300,-6,6) 2370 NEXT T 2380 C=1 2390 D=1 2400 TR=0 2410 A=EA 2420 B=3 2425 BE=25 2430 GU=GU-1 2440 IF GU=0 THEN 2450 ELSE 1160 2450 CALL CLEAR 2460 PRINT "REST IN PEACE YOSSARIAN":"SCORE: ";PO: : :"DO YOU WANT TO PLAY AGAIN? Y/N" 2470 HA=3.3 2480 FA=0.7 2485 FB=0.9 2490 GOSUB 3651 2500 IF KK<>89 THEN 2506 2501 FB=1 2502 FA=1 2503 HA=1.35 2504 PO=0 2505 GOTO 970 2506 CALL CLEAR 2507 END 2540 PRINT TAB(18);")*+" 2560 PRINT TAB(17);")***+" 2570 PRINT TAB(14);")*******+ l " 2580 PRINT TAB(8);"h a)*********+)****" 2590 PRINT " )*********************" 2600 PRINT " )**********************" 2610 PRINT " )***********************" 2620 PRINT "xxxx************************" 2680 RETURN 2690 PRINT TAB(20);")*******-" 2700 PRINT TAB(19);")******-" 2710 PRINT TAB(19);"*******" 2720 PRINT TAB(19);",*****-" 2730 PRINT TAB(18);"b ,***" 2740 PRINT TAB(17);")*+" 2750 PRINT TAB(16);")*** c" 2760 PRINT TAB(15);")****+ )*+" 2770 PRINT TAB(14);")******+ l)***" 2780 PRINT TAB(14);"***************" 2790 PRINT "+ )***************" 2800 PRINT "*+ a)****************" 2810 PRINT "**+ )******************" 2820 PRINT "***+ h)*******************" 2830 PRINT "****************************" 2890 RETURN 2900 PRINT ",*********- ,****" 2910 PRINT " ,******- ,**" 2920 PRINT " ,*" 2930 PRINT " *" 2940 PRINT " )+ i *" 2950 PRINT " **** *" 2960 PRINT " ,**- c *" 2970 PRINT " i)** c" 2980 PRINT " i h)**** c*" 2990 PRINT "+b ********* ***" 3000 PRINT "**+ il ,******** ***" 3010 PRINT "********+ ,*****- ***" 3020 PRINT "*********+ ,***- ***" 3030 PRINT "**********+ **- b )***" 3040 PRINT "***********+ )********" 3050 PRINT "************+ h )*********" 3110 RETURN 3120 PRINT "********- ,*- ,***- h,*" 3130 PRINT "*******- c ,*- *" 3140 PRINT "******- ia)* ll*" 3150 PRINT "*****- **** ***" 3160 PRINT "**- ,*** ***" 3170 PRINT "*- h h ***" 3180 PRINT "- )*+ b )*+ ***" 3190 PRINT " )*****+ )***" 3200 PRINT "+ )*******+ **** )***" 3210 PRINT "*+ ,******** ***- )****" 3220 PRINT "**+ ,*****- **- *****" 3230 PRINT "***+ ,***- ,- *****" 3240 PRINT "****+ *****" 3250 PRINT "*****+ hh*****" 3260 PRINT "******+ h )*+ hhh*****" 3270 PRINT "*******+ c)*****+hhhhh*****" 3330 RETURN 3340 PRINT "": :"***+" 3370 PRINT "*****-" 3380 PRINT "**-" 3390 PRINT "*- c" 3400 PRINT "- )**+ )**+" 3410 PRINT " ***** ,**- n n" 3420 PRINT "+ ,**- hh l n" 3430 PRINT "*+ )***- n" 3440 PRINT "**+ )***-" 3450 PRINT "***+ ,**- n" 3460 PRINT "****+ n " 3470 PRINT "***** n " 3480 PRINT "*****+ n " 3490 PRINT "********xxxxxxxxxxxxxxxxxxxx" 3550 RETURN 3560 DATA 300,330,262,300,349,262,300,330,247,300,294,247,300,262,220,300,294,220,300,262,196,300,220,196 3570 DATA 300,294,175,150,294,175,150,330,175,300,294,185,300,262,185,300,247,196,300,220,262 3580 DATA 600,196,247 3590 DATA 300,196,196,300,247,196,300,294,175,150,196,175,150,247,165,150,294,165 3600 DATA 150,196,165,150,247,147,600,294,147 3610 DATA 300,196,262,300,262,262,300,330,247,150,196,247 3620 DATA 150,262,220,150,330,220,150,196,220,150,262,196,600,330,196 3630 DATA 300,262,131,300,262,165 3640 DATA 150,262,196,150,262,220,1200,262,262 3650 PRINT " PRESS ANY KEY" 3651 RESTORE 3560 3659 FOR T=1 TO 16 3660 READ AA,BB,CC 3670 CALL SOUND(AA*HA,BB*FA,0,CC*FB,0) 3680 CALL KEY(3,KK,SS) 3690 IF SS<>0 THEN 3940 3700 NEXT T 3710 RESTORE 3560 3720 FOR T=1 TO 34 3730 READ AA,BB,CC 3740 CALL SOUND(AA*HA,BB*FA,0,CC*FB,0) 3750 CALL KEY(3,KK,SS) 3760 IF SS<>0 THEN 3940 3770 NEXT T 3780 RESTORE 3590 3790 FOR T=1 TO 9 3800 READ AA,BB,CC 3810 CALL SOUND(AA*HA,BB*FA,0,CC*FB,0) 3820 CALL KEY(0,KK,SS) 3830 IF SS<>0 THEN 3940 3840 NEXT T 3850 RESTORE 3630 3860 FOR T=1 TO 5 3870 READ AA,BB,CC 3880 CALL SOUND(AA*HA,BB*FA,0,CC*FB,0) 3890 CALL KEY(0,KK,SS) 3900 IF SS<>0 THEN 3940 3910 NEXT T 3930 GOTO 3651 3940 RETURN 4150 CALL CLEAR 4160 PRINT "YOUR MISSIONS ARE COMPLETED!": : :"SCORE: ";PO: : 4190 HA=0.8 4195 FA=1.5 4196 FB=3 4200 GOSUB 3650 4230 PRINT "": : :"BUT THE COMMANDER HAS TURNED":"MAD AND WANTS YOU TO DIE":"AT WAR! HOW CAN YOU ESCAPE?" 4232 HA=2 4233 FA=1 4234 FB=0.9 4236 GOSUB 3650 4237 CALL CLEAR 4240 DATA 0,32,0,0,0,0 4241 BE=10 4242 CALL HCHAR(23,3,120,28) 4243 RESTORE 4240 4244 RETURN 4250 IF PO>0 THEN 4254 4252 PO=0 4254 PP=PO-(INT(PO/10)*10) 4255 CALL HCHAR(23,30,48+PP) 4256 PPP=(PO-PP)/10 4257 PP=PPP-(INT(PPP/10)*10) 4260 CALL HCHAR(23,29,48+PP) 4265 PPP=(PPP-PP)/10 4266 PP=PPP-(INT(PPP/10)*10) 4270 CALL HCHAR(23,28,48+PP) 4300 RETURN 4400 CALL CLEAR 4410 PRINT "FIRST MISSION 12:00" 4420 GOSUB 3650 4430 CALL CLEAR 4440 RETURN 4500 CALL CLEAR 4501 CALL SCREEN(5) 4502 CALL COLOR(2,7,1) 4510 PRINT "SECOND MISSION 18:00" 4520 GOSUB 3650 4530 CALL CLEAR 4540 RETURN 4600 CALL CLEAR 4601 CALL SCREEN(2) 4602 FOR X=1 TO 8 4603 CALL COLOR(X,16,1) 4604 NEXT X 4605 DATA 2,15,1,9,15,1,0,0,0 4606 RESTORE 4605 4607 GOSUB 10000 4610 PRINT "LAST MISSION 24:00" 4620 GOSUB 3650 4630 CALL CLEAR 4640 RETURN 5000 DATA 10,18,0,0,0,0 5005 GOSUB 15000 5010 GOSUB 4400 5020 GOSUB 2540 5030 RESTORE 5000 5040 RETURN 5100 DATA 0,32,7,26,3,10 5110 GOSUB 2690 5121 RESTORE 5100 5130 RETURN 5200 DATA 11,9,0,0,0,0 5201 RESTORE 5200 5260 GOSUB 2900 5270 RETURN 5300 DATA 3,13,3,23,3,4 5360 GOSUB 3120 5361 RESTORE 5300 5370 RETURN 5400 DATA 0,32,1,15,5,6 5460 GOSUB 3340 5461 RESTORE 5400 5470 RETURN 5500 DATA 0,32,1,12,11,5 5548 GOSUB 4500 5560 GOSUB 2540 5561 RESTORE 5500 5570 RETURN 5600 DATA 15,9,0,0,0,0 5660 GOSUB 2690 5661 RESTORE 5600 5670 RETURN 5700 DATA 5,11,8,11,4,3 5760 GOSUB 2900 5761 RESTORE 5700 5770 RETURN 5800 DATA 16,11,6,16,3,8 5860 GOSUB 3120 5861 RESTORE 5800 5870 RETURN 5900 DATA 8,12,0,0,0,0 5960 GOSUB 3340 5961 RESTORE 5900 5970 RETURN 6000 DATA 10,18,1,21,7,5 6010 GOSUB 4600 6020 GOSUB 2540 6030 RESTORE 6000 6040 RETURN 6100 DATA 15,9,7,26,3,4 6110 GOSUB 2690 6120 RESTORE 6100 6130 RETURN 6200 DATA 11,9,1,23,13,5 6210 GOSUB 2900 6220 RESTORE 6200 6230 RETURN 6300 DATA 16,12,1,19,14,1 6310 GOSUB 3120 6320 RESTORE 6300 6330 RETURN 6400 DATA 12,7,10,9,5,10 6405 BE=10 6410 GOSUB 3340 6420 RESTORE 6400 6430 RETURN 10000 READ C1,C2,C3 10010 IF C1=0 THEN 10040 10020 CALL COLOR(C1,C2,C3) 10030 GOTO 10000 10040 RETURN 10100 CALL HCHAR(A,B,120) 10101 CALL HCHAR(C,D,32) 10103 FOR I=0 TO 20 10104 CALL SOUND(-300,-5,I) 10106 NEXT I 10107 L=-1 10110 IF(SK=1)+(SK=6)+(SK=11)THEN 10130 10120 L=1 10121 V=0 10130 IF(D<3)+(D>30)THEN 10210 10131 CALL SOUND(250,-5,V+10) 10140 CALL HCHAR(C,D,32) 10150 D=D+L 10155 V=V+1 10160 CALL HCHAR(C,D,95) 10162 CALL SOUND(250,-5,V+5) 10170 GOTO 10130 10210 CALL CLEAR 10220 PRINT :"YOU CRASHED IN THE SEA":"BUT SAILED TO SWEDEN":"IN THE RESCUE RAFT": :"YOU HAVE WON THE GAME!": :" SCORE: ";PO 10230 FA=1.5 10231 FB=1.5 10240 HA=0.7 10250 GOSUB 3651 10300 END 15000 DATA 2,13,1,3,2,1,4,2,1,5,2,1,6,2,1,7,2,1,8,2,1,9,2,1,10,11,1,11,9,11,12,8,1,0,0,0 15010 RESTORE 15000 15020 GOSUB 10000 15030 CALL SCREEN(6) 15040 RETURN 20000 CALL KEY(3,K,S) 20010 IF(S<>0)*(K<>80)THEN 1290 20020 GOTO 20000