10 CALL CLEAR 20 GOSUB 1000 30 GOSUB 2000 40 GOSUB 3000 50 REM GOSUB 4000 90 REM CALL SOUND(-750,-5,25,4000,15) 100 CALL KEY(3,K,S) 110 K=1-(K=83)-2*(K=88)-3*(K=68)-4*(K=69) 160 ON K GOSUB 6100,6200,6300,6400,6500 165 CALL SOUND(-750,-5,25,4000,15) 170 Y=Y+DY 180 X=X+DX 185 TOTDIS=TOTDIS+1 190 CALL HCHAR(Y-DY,X-DX,G) 200 CALL GCHAR(Y,X,G) 210 CALL HCHAR(Y,X,114+DX+SC) 220 ON INT((G-104)/8) GOSUB 5050,5200,5300,5400,5500,5600 230 LOOP=1-(SM=0)-2*(SH=0)-3*(G=117)-4*(G=118) 240 ON LOOP GOSUB 6100,6800,1200,6600,6700 250 ON LOOP GOTO 100,100,40,165,165 1000 REM SPLASH SCREEN 1005 REM P "****************************" 1010 PRINT "********SPACE RESCUE********":: 1020 PRINT "YOU MUST SAVE THE STRANDED" 1030 PRINT "ASTRONAUTS BY PILOTING THE" 1040 PRINT "REMOTE CONTROLLED RESCUE POD" 1050 PRINT "AND RETURNING THE ASTRONAUTS" 1060 PRINT "TO THE MOTHER SHIP.":: 1070 PRINT "ONLY ONE ASTRONAUT MAY BE" 1080 PRINT "RESCUED AT A TIME. AVOID THE" 1090 PRINT "ASTEROIDS AND BE MINDFUL OF" 1100 PRINT "THE FUEL USAGE. FUEL TANKS" 1110 PRINT "ARE AMONG THE ASTEROIDS.":: 1120 PRINT "CONTROL THE DIRECTION OF THE" 1130 PRINT "POD WITH THE E,S,D,X KEYS."::: 1140 PRINT "***PRESS ANY KEY TO BEGIN***"::: 1150 RETURN 1200 CALL CLEAR 1210 REM P "****************************" 1210 PRINT " MISSION DEBRIEFING" 1215 PRINT " ******************"::: 1220 PRINT "ASTRONAUTS SAVED: ";TOTSAV:: 1230 PRINT "FUEL UNITS USED: ";TOTFUEL:: 1240 PRINT "ASTEROID FIELDS CLEARED: ";L-1:: 1250 PRINT "DISTANCE TRAVELED: ";TOTDIS::::::: 1260 PRINT " PRESS ANY KEY TO PLAY AGAIN" 1265 CALL SCREEN(8) 1270 CALL KEY(3,K,S) 1280 IF S=0 THEN 1270 1290 CALL SCREEN(2) 1300 CALL CLEAR 1310 RETURN 2000 REM CHARACTER DEFINITION 2010 CALL CHAR(112,"0") 2020 CALL CHAR(113,"18244342FE7C2030") 2025 CALL CHAR(114,"18245352FE7C2030") 2030 CALL CHAR(115,"1824C2427F3E040C") 2035 CALL CHAR(116,"1824CA4A7F3E040C") 2036 CALL CHAR(117,"0") 2037 CALL CHAR(118,"0") 2040 CALL CHAR(120,"147EFEFC7E7E1F06") 2041 CALL CHAR(121,"3C7E76DFFEF77E14") 2042 CALL CHAR(122,"10C0EE2E0772F8F0") 2043 CALL CHAR(123,"001E7EFF7F7E1C00") 2045 CALL CHAR(124,"00F0E04E1E3E3C00") 2050 CALL CHAR(128,"000010381028") 2060 CALL CHAR(129,"0000001") 2070 CALL CHAR(136,"000000183C18") 2075 CALL CHAR(137,"0000102814280000") 2076 CALL CHAR(138,"28025409A00A4014") 2080 CALL CHAR(144,"3C7E9999FF9999A5") 2090 CALL CHAR(152,"FFFFFFFFFFFFFFFF") 2100 CALL CHAR(153,"FF7F3F1F0F070301") 2110 CALL CHAR(154,"FFFEFCF8F0E0C080") 2120 CALL CHAR(155,"00000000000000AA") 2130 CALL CHAR(156,"FFC381818181C3FF") 2140 CALL CHAR(157,"FFC391B991A9C3FF") 2150 CALL CHAR(158,"FFE7DB9BC1E7FFFF") 2160 CALL KEY(3,K,S) 2170 IF S=0 THEN 2160 2180 CALL SCREEN(2) 2190 CALL CLEAR 2900 RETURN 3000 REM VARIABLE SETUP 3010 L=1 3015 TOTSAV=0 3016 TOTDIS=0 3017 TOTFUEL=0 3018 SEED=-2 3020 SAVED=0 3030 SH=3 3040 SM=L 4000 REM PLAYFIELD SETUP 4010 CALL COLOR(12,1,1) 4020 CALL COLOR(13,1,1) 4030 CALL COLOR(14,1,1) 4040 CALL COLOR(15,1,1) 4050 CALL COLOR(16,1,1) 4055 CALL HCHAR(2,1,112,704) 4056 CALL VCHAR(1,1,117,23) 4057 CALL VCHAR(1,31,117,23) 4058 CALL HCHAR(1,2,118,30) 4059 CALL HCHAR(23,2,118,30) 4060 SEED=SEED+3 4062 RANDOMIZE SEED 4065 FOR F=1 TO 10*L+5 4070 CALL HCHAR(INT(RND*18)+5,INT(RND*29)+2,120+INT(RND*5)) 4080 NEXT F 4085 RANDOMIZE SEED+1 4090 FOR F=1 TO 5 4100 P=INT(RND*2)+2 4110 FY=INT(RND*9)*2+P+3 4120 FX=INT(RND*15)*2+P 4130 CALL HCHAR(FY,FX,136) 4140 NEXT F 4145 RANDOMIZE SEED+2 4150 FOR F=1 TO L 4160 P=INT(RND*2)+2 4170 FY=INT(RND*(9-L))*2+P+3+L*2 4180 FX=INT(RND*15)*2+P 4190 CALL HCHAR(FY,FX,128) 4200 NEXT F 4210 Y=3 4220 X=16 4230 DY=1 4240 DX=1 4250 FUEL=30 4270 SC=0 4280 G=155 4300 CALL HCHAR(1,8,153) 4310 CALL HCHAR(1,9+SAVED,156,15-SAVED) 4320 CALL HCHAR(1,9,157,SAVED) 4330 CALL HCHAR(1,24,154) 4340 CALL HCHAR(2,9,153) 4350 CALL HCHAR(2,10,152,5) 4351 CALL HCHAR(2,15,158,SH) 4352 CALL HCHAR(2,15+SH,152,8-SH) 4360 CALL HCHAR(2,23,154) 4370 CALL HCHAR(3,13,153) 4380 CALL HCHAR(3,14,152,2) 4385 CALL HCHAR(3,16,155) 4386 CALL HCHAR(3,17,152,2) 4390 CALL HCHAR(3,19,154) 4410 CALL HCHAR(24,1,136,FUEL) 4420 CALL COLOR(11,3,1) 4430 CALL COLOR(12,11,1) 4440 CALL COLOR(13,16,1) 4450 CALL COLOR(14,9,1) 4460 CALL COLOR(15,14,1) 4470 CALL COLOR(16,15,1) 4480 FOR F=1 TO 500 4490 NEXT F 4500 CALL HCHAR(2,14+SH,152) 4510 FOR F=1 TO 100 4520 NEXT F 4530 CALL HCHAR(Y,X,115) 4540 FOR F=1 TO 500 4550 NEXT F 4900 RETURN 5000 REM ENEMY MOVEMENT 5010 FUEL=FUEL-1 5015 TOTFUEL=TOTFUEL+1 5020 CALL HCHAR(24,FUEL+1,32) 5025 IF FUEL=0 THEN 5200 5030 IF FUEL<>5 THEN 5050 5040 CALL SOUND(-1000,300,8) 5050 RETURN 5200 IF SC=0 THEN 5205 5201 CALL HCHAR(Y,X,DX+114) 5202 CALL HCHAR(Y-DY,X-DX,128) 5203 SC=0 5205 CALL HCHAR(Y,X,137) 5210 CALL SOUND(500,-7,20) 5220 CALL SOUND(1000,-7,5) 5221 CALL HCHAR(Y,X,138) 5225 CALL SOUND(100,9000,30) 5240 SH=SH-1 5250 CALL HCHAR(Y,X,112) 5260 IF SH>0 THEN 4210 5270 RETURN 5300 G=128 5310 IF SC=1 THEN 5350 5320 G=112 5330 CALL SOUND(-200,1000,10) 5340 SC=1 5350 RETURN 5400 CALL SOUND(-100,400,5) 5410 LET FUEL=FUEL+5 5415 G=112 5420 IF FUEL<30 THEN 5440 5430 FUEL=30 5440 CALL HCHAR(24,1,136,FUEL) 5450 RETURN 5500 END 5600 IF G<>155 THEN 5200 5605 IF SC=0 THEN 5660 5610 SAVED=SAVED+1 5615 TOTSAV=TOTSAV+1 5620 SM=SM-1 5630 CALL HCHAR(3,16,114+DX) 5640 CALL SOUND(100,400,5) 5650 CALL SOUND(100,500,5) 5660 DY=1 5665 CALL HCHAR(1,9,157,SAVED) 5667 IF SAVED<15 THEN 5680 5670 CALL SOUND(500,300,0) 5671 CALL SOUND(1000,700,0) 5673 SAVED=0 5674 SH=SH-1*(SH<>3) 5675 CALL HCHAR(1,9,156,15) 5680 G=155 5690 SC=0 5700 RETURN 5710 SC=0 5720 END 6000 REM PLAYER MOVEMENT 6100 RETURN 6200 DX=-1 6210 GOSUB 5010 6220 RETURN 6300 DY=1 6310 GOSUB 5010 6320 RETURN 6400 DX=1 6410 GOSUB 5010 6420 RETURN 6500 DY=-1 6510 GOSUB 5010 6520 RETURN 6600 DX=-DX 6610 REM GOSUB 5010 6620 RETURN 6700 DY=-DY 6710 REM GOSUB 5010 6720 RETURN 6800 CALL SOUND(100,400,5) 6810 CALL SOUND(100,500,5) 6820 L=L+1 6830 FOR F=1 TO 500 6840 NEXT F 6850 GOSUB 3040 6860 RETURN