10HOME:? TAB(12); "STAR WAR":?:?:?:DIM p(1):? "COMPUTER WILL PAUSE FOR YOU TO"
20? "READ MESSAGE. WHEN DONE, TAP Z":?:GET dummy$
30INPUT "DO YOU WANT INSTRUCTIONS? (y OR n) "; a$:IF LEFT$(a$, 1)="n" THEN 320
40IF LEFT$(a$, 1)="y" THEN 60
50GOTO 30
60?:? "YOU ARE ABOUT TO RECEIVE HIGH ":? "SECURITY INFORMATION. PLEASE":? "EAT THE COMPUTER READOUT AFTER"
70? "READING THIS.":?:GET dummy$
80? "THIS IS THE YEAR 2000. CIVILI-":? "ZATION AS YOU KNOW IT HAS BEEN":? "DESTROYED. NATIONS HAVE BEEN"
90? "REDUCED TO RUBBLE IN A MASSIVE":? "SPACE WAR.":?:GET dummy$
100? "YOU ARE ON BOARD A SPACE SHIP ":? "WHOSE SOLE PURPOSE IS TO SAFE-":? "GUARD THE 150 PEOPLE ON YOUR"
110? "SHIP, THE SOLE SURVIVORS.":?:GET dummy$
120? "YOUR MISSION: FIND A PLANET ":? "SUITABLE FOR YOUR COLONISTS.":?:GET dummy$
130? "PROBLEM: EARTH'S ENEMY STILL ":? "EXISTS, STRANGE CREATURES":? "NEVER SEEN BY MAN.":?:GET dummy$
140? "BY THE TIME YOU READ THIS, ":? "EARTH WILL NO LONGER EXIST.":?:GET dummy$
150? "HERE IS YOUR VITAL DATUM:":? "YOU ARE EQUIPT WITH 1000 UNITS":? "OF ENERGY. WHEN YOU RUN OUT,"
160? "THE ALIENS WILL DESTROY YOU.":?:GET dummy$
170? TAB(10); "WEAPONRY":? "TYPE"; TAB(6); "DESCRIPT"; TAB(15); "CAPACITY"; TAB(24); "FUEL"
180? "  1"; TAB(6); "BIG GUNS"; TAB(15); "0-11K"; TAB(24); "10 U"
190? "  2"; TAB(6); "WARHEADS"; TAB(15); "10K-100K"; TAB(24); "100 U"
200? "  3"; TAB(6); "LASERS"; TAB(15); "10K-20K"; TAB(24); "1000 U"
210?:? TAB(12); "OPTIONS":? "  4"; TAB(6); "APPROACH"; TAB(24); "100 U"
220? "  5"; TAB(6); "RETREAT"; TAB(24); "100 U"
230? "  6"; TAB(6); "PASS, GAIN 100 U":? TAB(6); "(LABORERS PRODUCE POWER)":?:GET dummy$
240? TAB(12); "ENEMY":? "THE ENEMY HAS THE SAME CAPA-":? "BILITIES THAT YOU HAVE.":?:GET dummy$
250? "EACH TIME A SHIP IS HIT, ITS ":? "ENERGY DRAIN EQUALS THE AMOUNT":? "OF ENERGY SPENT * 10 (EXCEPT"
260? "LASER, WHICH EQUALS AMOUNT":? "SPENT * 3)":?:GET dummy$
270? "BOTH SHIPS ARE ON THE SAME ":? "MISSION AND DESTINATION, AND":? "BOTH ARE ON EQUAL TERMS.":?:GET dummy$
280? "UNFORTUNATELY, YOU MUST KILL":? "EACH OTHER TO WIN.":?:GET dummy$
290? "THE MAXIMUM SPEED IS A JUMP OF":? "5K UNITS. HOWEVER, SPEEDS VARY":? "BETWEEN 10K-50K. WARHEADS"
300? "TRAVEL AT 35K FEET PER SEC,":? "SHELLS AT 1K PER SEC.":?:GET dummy$
310? "THIS MESSAGE WAS RECORDED.":?:? "EARTH IS DEAD.":?:? "GOOD LUCK!":GET dummy$
320GOSUB 1300:GOSUB 3240:? "THIS IS COMPUTER CONTROL.":INPUT "WHAT IS YOUR NAME? "; a$:?:? "VERY GOOD, "; a$
330 p=10000: p(1)=10000: a=RND(1)*200000: ma=INT((200000-a)/2531.64557):? "LEAVING PLANETARY ORBIT, "; a$:GET dummy$
340?:? "SHIP APPROACHING AT "; a; " MILES":GOSUB 1500:IF a<100000 THEN GOSUB 1900
350IF a<11000 THEN GOSUB 1910
360IF a<5000 THEN GOSUB 1920
370IF a<500 THEN GOSUB 1930
380IF a<500 THEN GOSUB 1930
390INPUT "WHAT ARE YOUR ORDERS? (0-6) "; c:?:?: o=INT(RND(1)*2)+1
400ON c GOTO 420, 470, 520, 560, 630, 700
410? "LET'S NOT CRACK UNDER PRESSURE, "; a$:GOTO 390
420IF a>11005 THEN 410
430 p=p-10:? "GUNS FIRED, "; a$:GOSUB 1990:FOR x=1 TO a*2 STEP 1000
440NEXT x:IF o=1 THEN 460
450? "MISSED. TOO BAD, "; a$:GET dummy$:GOTO 710
460GOSUB 1660:? "DIRECT HIT, "; a$; "! ENEMY SHIP'S POWER DOWN":GET dummy$: p(1)=p(1)-100:GOTO 710
470IF a>100000 THEN 410
480 p=p-100:?:?:? "WARHEAD LAUNCHED":GOSUB 1990:FOR x=1 TO a*2 STEP 35000:NEXT x
490IF o=1 THEN 510
500?:?:? "MISSED. TOO BAD, "; a$:GET dummy$:GOTO 710
510GOSUB 1680:?:?:? "DIRECT HIT, "; a$; "! ENEMY SHIP'S POWER DOWN":GET dummy$: p(1)=p(1)-1000:GOTO 710
520IF a<100000 THEN 410
530 p=p-1000:? "LASER FIRED":GOSUB 1990:?:IF o=1 THEN 550
540? "MISSED. TOO BAD, "; a$:GET dummy$:GOTO 710
550GOSUB 1700:? "DIRECT HIT,"; a$; "! ENEMY SHIP'S ":? "POWER DOWN":GET dummy$:?: p(1)=p(1)-3000:GOTO 710
560 b=RND(1)*40000+10000: a=a-b: p=p-100: ma=INT(b/2531.64557):GOSUB 1520:GOSUB 1990:IF a<100000 THEN GOSUB 1900
570IF a<11000 THEN GOSUB 1910
580IF a<5000 THEN GOSUB 1920
590IF a<500 THEN GOSUB 1930
600IF a<1 THEN 620
610GOTO 710
620GOSUB 1620:? "***COLLISION***":? "BOTH SHIPS DESTROYED":GET dummy$:GOTO 1050
630 b=RND(1)*40000+10000: a=a+b: p=p-100: ma=INT(b/4875):GOSUB 1570:GOSUB 1990:IF a>100000 THEN GOSUB 1950:GOTO 670
640IF a>11000 THEN GOSUB 1960:GOTO 670
650IF a>5000 THEN GOSUB 1970:GOTO 670
660IF a>500 THEN GOSUB 1980
670IF a>200050 THEN 690
680GOTO 710
690? a$; " YOUR RANGE IS "; a; " BUT WE CANNOT RUN, RANGE IS NOW 200000":GET dummy$: a=200000:GOTO 710
700 p=p+100:GOSUB 2050
710?:?:? "ENEMY SHIP REPORT":? "RANGE="; a; "  POWER="; p(1):GET dummy$:?
720IF p(1)<1 THEN 1060
730IF p(1)<500 THEN 1040
740IF a<5000 THEN 1070
750 r=INT(RND(1)*3): o=INT(RND(1)*2+1):ON r GOTO 860, 810
760IF r=2 THEN 860
770IF a<100000 THEN 750
780 p(1)=p(1)-1000:?:?:? "ENEMY LASER FIRED":GET dummy$:IF o=1 THEN 800
790?:?:? "MISSED. WHEW!!":GET dummy$:GOTO 900
800GOSUB 1790:GOSUB 1870: p=p-3000:GOSUB 1990:? "DIRECT HIT...POWER DOWN":GET dummy$:?:GOTO 900
810IF a>100000 THEN 750
820IF a<10000 THEN 750
830 p(1)=p(1)-100:?:?:? "ENEMY WARHEAD FIRED":GET dummy$:FOR d=1 TO a STEP 35000:NEXT d:IF o=1 THEN 850
840?:?:? "MISSED. WHEW!!":GET dummy$:GOTO 900
850GOSUB 1770:GOSUB 1850: p=p-1000:GOSUB 1990:?:?:? "DIRECT HIT...POWER DOWN":GET dummy$:GOTO 900
860IF a>11000 THEN 750
870 p(1)=p(1)-10:? "ENEMY SHELL FIRED":GET dummy$:FOR d=1 TO a STEP 1000:NEXT d:IF o=1 THEN 890
880? "MISSED. WHEW!!":GET dummy$:GOTO 900
890GOSUB 1750:GOSUB 1830: p=p-100:GOSUB 1990:? "DIRECT HIT...POWER DOWN":GET dummy$
900?:? TAB(7); "STATUS OF SHIP":? "RANGE="; a; " POWER SUPPLY="; p:GET dummy$:IF p<1 THEN 1070
910GOTO 390
920 p(1)=p(1)+100:? "ENEMY SHIP RESTING":GOTO 900
930 b=RND(1)*40000+10000: a=a-b: p(1)=p(1)-100: ma=INT(b/2531.64557):? "ENEMY SHIP APPROACHING, "; a$:GOSUB 1520
940IF a<100000 THEN GOSUB 1900
950IF a<11000 THEN GOSUB 1910
960IF a<5000 THEN GOSUB 1920
970IF a<500 THEN GOSUB 1930
980GET dummy$:GOTO 900
990 b=RND(1)*40000+10000: a=a+b: p(1)=p(1)-100: ma=INT(b/2531.64557):? "ENEMY SHIP RETREATING, "; a$:GOSUB 1570
1000IF a>500 THEN GOSUB 2010
1010IF a>5000 THEN GOSUB 2000
1020IF a>11000 THEN GOSUB 1990
1030IF a>100000 THEN GOSUB 1980
1040GOTO 900
1050? "THAT WAS PRETTY DUMB, "; a$:? "YOUR MISSION IS TO PROTECT THE":? "PASSENGERS, NOT DESTROY THEM.":GET dummy$:GOTO 1080
1060? "ENEMY SHIP'S POWER GONE.":? "NO LIFE PRESENT.":? "MISSION SUCCESSFUL":GET dummy$:GOTO 1080
1070? "ENEMY IS VICTOR. LIFE SUPPORT ":? "FADING. CREW DYING.":GET dummy$:?
1080INPUT "PLAY AGAIN? (y OR n) "; a$:IF LEFT$(a$, 1)="y" THEN RESTORE:GOTO 320
1090TEXT:END
1300REM                            SET UP SCREEN
1310HGR:HCOLOR =14: x=0: y=0: z=158:FOR i=1 TO 20:GOSUB 1370:NEXT i:HCOLOR =6:FOR i=1 TO 10:GOSUB 1370:NEXT i
1320HCOLOR =9:FOR i=1 TO 5:GOSUB 1370:NEXT i:HCOLOR =14: x=254: y=0: z=159:FOR i=1 TO 20:GOSUB 1380
1330NEXT i:HCOLOR =6:FOR i=1 TO 10:GOSUB 1380:NEXT i:HCOLOR =9:FOR i=1 TO 5:GOSUB 1380:NEXT i
1340HCOLOR =14: x=0: y=0: z=255:FOR i=1 TO 20:GOSUB 1390:NEXT i:HCOLOR =6:FOR i=1 TO 10:GOSUB 1390:NEXT i
1350HCOLOR =9:FOR i=1 TO 5:GOSUB 1390:NEXT i:HCOLOR =14: x=0: y=158: z=255:FOR i=1 TO 20
1360GOSUB 1400:NEXT i:HCOLOR =6:FOR i=1 TO 10:GOSUB 1400:NEXT i:HCOLOR =9:FOR i=1 TO 5:GOSUB 1400:NEXT i:GOTO 1410
1370HPLOT x, y TO x, z: x=x+1: y=y+1: z=z-1:RETURN
1380HPLOT x, y TO x, z: x=x-1: y=y+1: z=z-1:RETURN
1390HPLOT x, y TO z, y: x=x+1: y=y+1: z=z-1:RETURN
1400HPLOT x, y TO z, y: x=x+1: y=y-1: z=z-1:RETURN
1410REM                             CONTROL BUTTONS
1420HCOLOR =0: a=20: b=21: c=145:GOSUB 1460:HCOLOR =12:GOSUB 1460:HCOLOR =3:GOSUB 1460
1430HCOLOR =8:GOSUB 1460:HCOLOR =9:GOSUB 1460:HCOLOR =12:GOSUB 1460:HCOLOR =15:GOSUB 1460
1440HCOLOR =0:GOSUB 1460:HCOLOR =8:GOSUB 1460:HCOLOR =9:GOSUB 1460:HCOLOR =3:GOSUB 1460
1450HCOLOR =12:GOSUB 1460:GOTO 1470
1460FOR i=1 TO 5:HPLOT a, c TO b, c: c=c+1:NEXT i: a=a+20: b=b+20: c=c-5:RETURN
1470REM                             STARS
1480HCOLOR =13:HPLOT 125, 60:HPLOT 122, 40:HPLOT 130, 70:HPLOT 160, 36:HPLOT 145, 36:HPLOT 139, 99
1490HPLOT 155, 95:HPLOT 175, 65:HPLOT 80, 55:HPLOT 215, 118:HPLOT 50, 57:HPLOT 70, 115:HPLOT 60, 120:RETURN
1500REM           SET UP ENEMY SHIP
1510HCOLOR =12: da=121: db=123: dc=125: dd=126: de=128: df=130: dg=40: dh=41
1515 di=42: dj=43: dk=44: dl=45:GOSUB 1550
1520REM            ONE SHIP ADVANCES
1530HCOLOR =12:FOR i=1 TO ma: da=da-1: db=db-1: dc=dc-1: dd=dd+1: de=de+1: df=df+1
1540 dg=dg+1: dh=dh+1: di=di+1: dj=dj+1: dk=dk+1: dl=dl+1:IF dl=125 THEN RETURN
1545GOSUB 1550:NEXT i:RETURN
1550HPLOT db, dg TO de, dg:HPLOT da, dh TO df, dh:HPLOT da, di TO df, di
1560HPLOT db, dj TO de, dj:HPLOT dc, dk TO dd, dk:RETURN
1570REM           ONE SHIP RETREATS
1580HCOLOR =0:FOR i=1 TO ma:HPLOT da, dh TO db, dh:HPLOT df, dh TO de, dh:HPLOT da, di TO db, di:HPLOT df, di TO de, di
1590HPLOT db, dj TO dc, dj:HPLOT de, dj TO dd, dj:HPLOT db, dk TO dc, dk:HPLOT de, dk TO dd, dk:HPLOT dc, dl TO dd, dl
1600 da=da+1: db=db+1: dc=dc+1: dd=dd-1: de=de-1: df=df-1
1610 dg=dg-1: dh=dh-1: di=di-1: dj=dj-1: dk=dk-1: dl=dl-1:NEXT i:RETURN
1620REM           COLLISION
1630HCOLOR =8: na=36: nb=127: nc=218: nd=124: ne=124: nf=34: ng=34: nh=79: ni=79:FOR i=1 TO 30
1640HPLOT na, nd TO nb, ne:HPLOT nc, nd TO nb, ne:HPLOT na, nf TO nb, ng:HPLOT nc, nf TO nb, ng
1650 ne=ne+1: ng=ng-1: nh=nh+1: ni=ni-1:NEXT i:HGR:RETURN
1660REM           SHELL HITS ENEMY SHIP
1670 nc=101: nd=101: ne=8:GOTO 1720
1680REM           WARHEAD HITS ENEMY SHIP
1690 nc=77: nd=77: ne=2:GOTO 1720
1700REM           LASER HITS ENEMY SHIP
1710 nc=55: nd=55: ne=3
1720 na=120: nb=129:HCOLOR =ne:GOSUB 1740:HCOLOR =12: nc=nc+8: nd=nd-8:GOSUB 1740:FOR j=1 TO 2:HCOLOR =ne
1730 nc=nc+8: nd=nd-8:GOSUB 1740:HCOLOR =12: nc=nc+8: nd=nd-8:GOSUB 1740:NEXT j:RETURN
1740FOR i=1 TO 8:HPLOT na, nc TO nb, nc:HPLOT na, nd TO nb, nd: nc=nc-1: nd=nd+1:NEXT i:RETURN
1750REM           ENEMY SHELL HITS SHIP
1760 kd=8:GOTO 1810
1770REM           ENEMY WARHEAD HITS SHIP
1780 kd=5:GOTO 1810
1790REM           ENEMY LASER HITS SHIP
1800 kd=3
1810FOR i=1 TO 2:HCOLOR =kd: ka=40: kb=216: kc=123:FOR j=1 TO 3:GOSUB 1820: kc=kc-1:NEXT j: kc=kc+1
1815HCOLOR =0:FOR j=1 TO 3:GOSUB 1820: kc=kc+1:NEXT j: kc=kc-1:NEXT i:RETURN
1820HPLOT ka, kc TO kb, kc:RETURN
1830REM          BIG GUNS BUTTON
1840 wa=20: wb=21: wd=5: we=0:GOSUB 2230:RETURN
1850REM                            WARHEAD BUTTON
1860 wa=40: wb=41: wd=5: we=3:GOSUB 2230:RETURN
1870REM                            LASER BUTTON
1880 wa=60: wb=61: wd=5: we=9:GOSUB 2230:RETURN
1890REM                                 PROXIMITY WARNINGS
1900 wa=240: wb=241: wd=0: we=5:GOSUB 2250:RETURN
1910 wa=220: wb=221: wd=0: we=5:GOSUB 2250:RETURN
1920 wa=200: wb=201: wd=0: we=5:GOSUB 2250:RETURN
1930 wa=180: wb=181: wd=0: we=5:GOSUB 2250:RETURN
1940REM          RETREAT BUTTONS
1950 wa=240: wb=241: wd=5: we=12:GOSUB 2230:RETURN
1960 wa=220: wb=221: wd=5: we=3:GOSUB 2230:RETURN
1970 wa=200: wb=201: wd=5: we=9:GOSUB 2230:RETURN
1980 wa=180: wb=181: wd=5: we=8:GOSUB 2230:RETURN
1990REM        POWER GONE
2000IF p<8000 THEN GOSUB 2120
2010IF p<6000 THEN GOSUB 2130
2020IF p<4000 THEN GOSUB 2140
2030IF p<2000 THEN GOSUB 2150
2040IF p<1 THEN GOSUB 2160:RETURN
2045RETURN
2050REM        POWER GAIN
2060IF p>1 THEN GOSUB 2220
2070IF p>2000 THEN GOSUB 2210
2080IF p>4000 THEN GOSUB 2200
2090IF p>6000 THEN GOSUB 2190
2100IF p>8000 THEN GOSUB 2180:RETURN
2105RETURN
2110REM        POWER GONE BUTTONS
2120 wa=80: wb=81: wd=0: we=5:GOSUB 2250:RETURN
2130 wa=100: wb=101: wd=0: we=5:GOSUB 2250:RETURN
2140 wa=120: wb=121: wd=0: we=5:GOSUB 2250:RETURN
2150 wa=140: wb=141: wd=0: we=5:GOSUB 2250:RETURN
2160 wa=160: wb=161: wd=0: we=5:GOSUB 2250:RETURN
2170REM        POWER GAIN BUTTONS
2180 wa=80: wb=81: wd=5: we=8:GOSUB 2250:RETURN
2190 wa=100: wb=101: wd=5: we=9:GOSUB 2250:RETURN
2200 wa=120: wb=121: wd=5: we=12:GOSUB 2250:RETURN
2210 wa=140: wb=141: wd=5: we=15:GOSUB 2250:RETURN
2220 wa=160: wb=161: wd=5: we=0:GOSUB 2250:RETURN
2230FOR j=1 TO 3:FOR k=1 TO 10:HCOLOR =wd: wc=145:FOR i=1 TO 5:HPLOT wa, wc TO wb, wc: wc=wc+1:NEXT i:NEXT k
2240FOR k=1 TO 5:HCOLOR =we: wc=145:FOR i=1 TO 5:HPLOT wa, wc TO wb, wc: wc=wc+1:NEXT i:NEXT k:NEXT j:RETURN
2250FOR i=1 TO 3:HCOLOR =wd:GOSUB 2260:HCOLOR =we:GOSUB 2260:FOR j=1 TO 10:NEXT j:NEXT i:RETURN
2260 wc=145:FOR k=1 TO 5:HPLOT wa, wc TO wb, wc: wc=wc+1:NEXT k:RETURN
3240REM                OPENING MUSIC
3250LOMEM :29000
3260DIM hi(6), lo(6), dur(6)
3270 tr=28000:FOR i=tr TO tr+5:READ ta:POKE i, ta:NEXT i
3280FOR i=1 TO 6:READ hi(i), lo(i), dur(i):NEXT i
3290FOR i=1 TO 6:POKE 28006, hi(i):CALL 28000
3300POKE tr+6, lo(i):CALL 28000:POKE tr+6, 144:CALL 28000
3310FOR td=1 TO dur(i)*100:NEXT td
3320POKE tr+6, 159:CALL 28000:NEXT i:RETURN
3330DATA                    58,102,109,211,255,201
3340DATA                                                         141,35,6,141,26,6,129,20,6,133,21,6
3350DATA                     142,23,6,133,21,18
3370REM               ENEMY SHIP MUSIC
3380LOMEM :29000
3390DIM hi(12), lo(12), dur(12)
3400 tr=28000:FOR i=tr TO tr+5:READ ta:POKE i, ta:NEXT i
3410FOR i=1 TO 12:READ hi(i), lo(i), dur(i):NEXT i
3420FOR i=1 TO 12:POKE 28006, hi(i):CALL 28000
3430POKE tr+6, lo(i):CALL 28000:POKE tr+6, 144:CALL 28000
3440FOR td=1 TO dur(i)*100:NEXT td
3450POKE tr+6, 159:CALL 28000:NEXT i:RETURN
3460DATA                      58,102,109,211,255,201
3470DATA                   142,13,2,142,12,2,142,13,2,142,17,2
3480DATA                   142,13,2,142,12,2,142,13,2,142,17,2
3490DATA                   142,13,2,142,12,2,142,13,2,142,17,2
3500RETURN
