PCjs Machines

Home of the original IBM PC emulator for browsers.

Logo

PC-SIG Diskette Library (Disk #274)

[PCjs Machine "ibm5160"]

Waiting for machine "ibm5160" to load....

Information about “BRIAN’S GAMES”

This disk has some of the better games in the PC-SIG library.  Shoot
the martians before they kill you in the arcade game, SPACEVAD.  Hear
Wocka, Wocka, Wocka as you play that old favorite, PACKMAN, and keep
your eye on the ball when playing BREAKOUT.  All these games run on the
PCjr, so nobody is left out.
File Descriptions:

CASTLE   EXE  Find your way out of castle, get treasures, kill monsters.
CASTLE   RAN  Part of CASTLE game.
GAMES    TXT  Comments from the person who selected these programs.
XWING    BAS  Try to destroy the deathstar.
WIZARD   BAS  A role game to find the ORB of ZOT.
LIFE2    BAS  Source code for LIFE2.
LIFE2    EXE  Try to make your bacteria live.
BUGS!    SCR  Part of BUGS.
BUGS     EXE  Shoot crawling creatures before they get you.
LANDER   SCR  Part of LANDER.
LANDER   BIN  Part of LANDER.
LANDER   BAS  Land a space ship on a pad without crashing.
SPACEVAD EXE  Shoot invaders before they invade earth.
BREAKOUT BAS  Try to break out of a brick wall, like tennis.
PACKMAN  DOC  Documentation for PACKMAN.EXE.
PACKMAN  EXE  Gobble power pellets and eat monsters.

BREAKOUT.BAS

10 REM ibm pc spinout
20 REM K.R. Sloan, Jr.
30 REM 1 January 1982
40 DIM BALL[14]
50 DIM PADDLE[9]
60 DIM BRICK[20,4]
65 RANDOMIZE(VAL(RIGHT$(TIME$,2)))
70 KEY OFF:PLAY "mb"
80 LOUD=0
90 BRUNO$="l16o2b-o3cl8ddc+16do2fp1"
110 T=8:B=188:L=8:R=308
120 BH=8:BW=(R-L)/20
130 BT=T+(BH*4):BB=BT+(BH*4)
135 CLS
140 LOCATE 7,12: PRINT "Welcome to Spinout";
150 LOCATE 8,12: PRINT "ArchMach Version 1";
160 LOCATE 12,1:PRINT "Choose a key to move the paddle right";
170 R$=INKEY$:IF R$="" GOTO 170
180 LOCATE 12,1:PRINT "Choose a key to move the paddle left ";
190 L$=INKEY$:IF L$="" GOTO 190
200 IF R$=L$ GOTO 160
210 LOCATE 12,1:PRINT "Choose a key to serve                ";
220 S$=INKEY$:IF S$="" GOTO 220
230 IF (R$=S$)OR(L$=S$) GOTO 160
240 LOCATE 12,1:PRINT "Choose a key to turn noise on/off   ";
250 N$=INKEY$:IF N$="" GOTO 250;
260 IF (R$=N$)OR(L$=N$)OR(S$=N$) GOTO 160
270 LOCATE 12,1:INPUT;"How good are you at this game (1-10)";SKILL
275 IF SKILL<1 GOTO 270
276 IF SKILL>10 GOTO 270
280 SKILL=SKILL/10
290 MAXVX=6+(4*SKILL):MAXVY=MAXVX
295 G=SKILL/5
296 DEF SEG=0:EQUIPMENT%=PEEK(&H410) ':POKE &H410,EQUIPMENT%-&H10
297 WIDTH 40:WIDTH 80:SCREEN 0,0,0:SCREEN 1:COLOR 1,0:CLS
300 LINE (0,0)-(319,199),0,BF
310 FOR BY=0 TO 3
320 FOR BX=0 TO 19
330 BRICK[1+BX,1+BY]=10+50*BY
340 LINE (L+2+(BW*BX),BT+2+(BH*BY))-STEP (BW-4,BH-4),2+INT(BY/2),BF
350 NEXT BX,BY
360 SCORE = 0
370 LINE (L,T)-(R,T)
380 LINE -(R,B)
390 LINE -(L,B)
400 LINE -(L,T)
410 X=160:Y=100
420 LASTD$=""
430 FOR I=1 TO 5
440 FOR J=1 TO 5
450 IF ((I-3)*(I-3))+((J-3)*(J-3))<6.25 THEN PSET (X-3+I,Y-3+J)
460 NEXT J,I
470 GET (X-2,Y-2)-(X+2,Y+2),BALL
480 PL=150:PR=170:PY=B-20
490 LINE (PL,PY)-(PR,PY),1,BF
500 GET(PL,PY)-(PR,PY),PADDLE
510 REM main loop
520 IF LOUD=1 THEN PLAY BRUNO$
530 FOR SHOT=1 TO 4
540 LOCATE 25,1
550 PRINT USING "#####";SCORE;
560 LOCATE 25,8
570 PRINT USING "Ball #  ";SHOT;
580 LOCATE 25,18
590 PRINT "K.R.Sloan,Jr.  1Jan82";
600 IF X>R THEN X=R
610 IF X<L THEN X=L
620 IF Y<T THEN Y=T
630 IF Y>B THEN Y=B
640 PUT(X-2,Y-2),BALL
650 X=L+RND(X)*(R-L)
660 Y=B-10
670 PUT(X-2,Y-2),BALL
680 VX=6*RND(1)-3
690 VY=-5-2*RND(1)
700 SPIN=0
710 FAST=1+SKILL
720 GOSUB 1410 `MOVE PADDLE
730 IF D$<>S$ GOTO 720
740 OX=X:OY=Y:OBX=BX:OBY=BY
750 OVX=VX:OVY=VY
760 VX=OVX-(SPIN*OVY*.05):VY=OVY+(SPIN*OVX*.05)+G
761 SPIN=SPIN*.9999
770 IF VX>MAXVX THEN VX=MAXVX
771 IF VY>MAXVY THEN VY=MAXVY
780 IF VX<-MAXVX THEN VX=-MAXVX
781 IF VY<-MAXVY THEN VY=-MAXVY
790 X=X+VX:Y=Y+VY
800 BX=INT((X-L)/BW)
810 IF BX>19 THEN BX=19
820 IF BX<0 THEN BX=0
830 BY=INT((Y-BT)/BH)
840 IF BY>3 GOTO 1050
850 IF BY<0 GOTO 1050
860 IF BRICK[1+BX,1+BY]<=0 GOTO 1050
870 IF BY>1 GOTO 890
880 VY=VY*FAST
890 IF (OBX<>BX)THEN VX=-VX
900 IF (OBY<>BY)THEN VY=-VY
910 SCORE=SCORE+BRICK[1+BX,1+BY]
920 SOUND 440,2*LOUD
930 PUT(OX-2,OY-2),BALL,XOR
940 LINE (L+2+(BW*BX),BT+2+(BH*BY))    -STEP (BW-4,BH-4),0,BF
950 PUT(OX-2,OY-2),BALL,XOR
960 BRICK[1+BX,1+BY]=-BRICK[1+BX,1+BY]
970 IF SCORE<6800 GOTO 1050
972 LOCATE 25,1
974 PRINT USING "#####";SCORE;
980 FOR FLASH=1 TO 8
990 COLOR FLASH,.5+RND(FLASH)
1000 PLAY "mfaemb"
1010 NEXT FLASH
1040 GOTO 1340
1050 IF X<=L THEN X=L+L-X:VX=-VX:VY=VY+SPIN:SOUND 600,2*LOUD
1060 IF X>=R THEN X=R+R-X:VX=-VX:VY=VY-SPIN:SOUND 1200,2*LOUD
1070 IF Y<=T THEN Y=T+T-Y:VY=-VY:VX=VX-SPIN:SOUND 880,2*LOUD
1080 IF Y>=B GOTO 1310
1090 IF (Y<PY)OR(OY>PY) THEN GOTO 1270
1100 IF ((PL-2)<X)AND(X<(PR+2)) GOTO 1130
1110 IF ((PL-2)<OX)AND(OX<(PR+2)) GOTO 1130
1120 GOTO 1270
1130 Y=PY+PY-Y
1140 SOUND 300,5*LOUD
1150 IF (RND(1)*2)>SKILL GOTO 1210
1160 BX=INT(RND(1)*19.99):BY=INT(RND(1)*3.99):
1170 IF BRICK[1+BX,1+BY]>0 GOTO 1210
1180 BRICK[1+BX,1+BY]=-BRICK[1+BX,1+BY]
1190 LINE (L+2+(BW*BX),BT+2+(BH*BY)) -STEP (BW-4,BH-4),2+INT(BY/2),BF
1200 SCORE=SCORE-BRICK[1+BX,1+BY]
1210 LOCATE 25,1
1220 PRINT SCORE;
1230 VY=-VY
1240 MISS=(X-(PL+PR)/2)/(PL-PR)
1250 VX=VX+VY*MISS*SKILL*5
1260 SPIN=(SPIN*SKILL)+MISS*SKILL
1270 PUT(X-2,Y-2),BALL,XOR
1280 PUT(OX-2,OY-2),BALL,XOR
1290 GOSUB 1410 'move paddle
1300 GOTO 740
1310 REM lost ball
1320 IF LOUD=1 THEN SOUND 200,20
1330 NEXT SHOT
1340 REM End of Game
1341 'DEF SEG=0:POKE &H410,125:WIDTH 40:WIDTH 80:SCREEN 0,0,0
1342 WIDTH 80:SCREEN 0,0,0
1350 LOCATE 12,20
1360 PRINT "Do you want to play another game?"
1370 D$=INKEY$: IF D$="" THEN 1370
1380 IF D$="y" OR D$="Y" THEN RUN
1390 IF D$="n" OR D$="N" THEN CLS:RUN "MENU.PGM"
1400 GOTO 1360
1410 REM move paddle routine
1420 OPL=PL
1430 D$=INKEY$
1440 IF D$=N$ THEN LOUD=-1*LOUD+1
1450 IF D$=L$ THEN PL=PL-5:GOTO 1430
1460 IF D$=R$ THEN PL=PL+5:GOTO 1430
1470 IF PL<L THEN PL=L
1480 IF PL>(R-20) THEN PL=R-20
1490 IF OPL=PL THEN RETURN
1500 PR=PL+20
1510 PUT (OPL,PY),PADDLE,XOR
1520 PUT(PL,PY),PADDLE,XOR
1530 RETURN

CRC.TXT

PC-SIG Disk No. #274, version v1

The following is a list of the file checksums which should be produced by
the CRCK4 program on this disk.  If the CRC numbers do not match the following
list you may have a bad file.  To use type:  CRCK4 <filespec>

CRCK4 output for this disk:


CRCK ver 4.2B (MS DOS VERSION )
CTL-S pauses, CTL-C aborts

--> FILE:  GAMES   .TXT         CRC = A0 96

--> FILE:  CASTLE  .EXE         CRC = 3E FC

--> FILE:  CASTLE  .RAN         CRC = A5 D8

--> FILE:  SPACEVAD.EXE         CRC = 96 CE

--> FILE:  PACKMAN .EXE         CRC = F7 32

--> FILE:  PACKMAN .DOC         CRC = AC A0

--> FILE:  BREAKOUT.BAS         CRC = 35 25

--> FILE:  LANDER  .BAS         CRC = 68 3B

--> FILE:  LANDER  .BIN         CRC = 2D 3E

--> FILE:  LANDER  .SCR         CRC = A9 78

--> FILE:  BUGS    .EXE         CRC = 03 68

--> FILE:  BUGS!   .SCR         CRC = 8C 44

--> FILE:  LIFE2   .EXE         CRC = AD 95

--> FILE:  LIFE2   .BAS         CRC = 64 EA

--> FILE:  WIZARD  .BAS         CRC = 87 92

--> FILE:  XWING   .BAS         CRC = 55 33

--> FILE:  FILES   .TXT         CRC = 8B DF

 ---------------------> SUM OF CRCS = 3E EF

DONE

These and other Public Domain and user-supported programs from:

PC Software Interest Group (PC-SIG)
1125 Stewart Ct  Suite G
Sunnyvale, CA 94086
(408) 730-9291

FILES.TXT

This disk is a collection of some of the better games in the PC-SIG
library.  All games run on the PCjr (though you may have to type
"mode co80" first).

GAMES    TXT  Comments from the person who selected these programs
CASTLE   EXE  Find your way out of the castle and get treasures, kill monsters
CASTLE   RAN  Part of CASTLE game
SPACEVAD EXE+ Shoot invaders before they invade earth
PACKMAN  EXE+ Gobble power pellets and eat monsters
PACKMAN  DOC  Documentation for PACKMAN.EXE
BREAKOUT BAS+ Try to break out of a brick wall, like tennis
LANDER   BAS+ Land a space ship on a pad without crashing
LANDER   BIN  Part of LANDER
LANDER   SCR  Part of LANDER
BUGS     EXE  Shoot crawling creatures before they get you
BUGS!    SCR  Part of BUGS
LIFE2    EXE  Try to make your bacteria live
LIFE2    BAS  Source code for LIFE2
WIZARD   BAS  A role game to find the ORB of ZOT
XWING    BAS+ Try to destroy the deathstar
FILES    TXT  Files on this disk

GAMES.TXT


Hello, my name is Jason and I would like to tell you more about the games
that PC-SIG has and give you my opinion of them.  PC-SIG games range from
boring to plain fun.  I will tell you all about the fun games.  You may
have already read my article in the previous Newsletter and now I will give
you more information and some hints.

CASTLE (#198)

One of the better games that PC Software has.  It has good graphics, is fun
to play and is very dangerous because you have to kill ogres and demons.
I'll give you some hints.  To go to the dungeon you must have the key from
the desk in the king's study.  When you get in the dungeon, there are traps
and if you don't have the necklace, located on the king's statue you will
die.  You'll need the necklace for the dungeon and the maze.  To go down
the staircase in the kitchen you must have the lamp, it's in the garden.
To get the treasures type "get" and the treasure you want.  When you want
to drop something type "drop" and what you want to drop.

SPACEVAD (#176)

This is a great game, a modified version of SPACE INVADERS.  It has
excellent graphics and is fun to play.  I think that you should destroy all
your bases first because they just get in the way when you fire and can
cause your death.  When you are destroyed, I recommend getting under a line
of invaders and shoot them down while they are slowed down.  Since you are
getting a new ship, get under the invaders and fire or you may get
SPACEDOUT.

XWING (#174)

Have you watched "Star Wars", well if you have your going to like this
game.  Your a XWING fighter pilot and you have to get to the DEATHSTAR and
destroy it.  You have to get by TY FIGHTERS and DARTH VADAR.  If you really
hate Darth Vadar, you have your chance to blow him out of the sky.  I don't
like to brag, but I've done it before with the greatest of ease.  Here's a
hint.  When you meet him or a TY Fighter, slow to mach 1 and destroy them.
If you don't, they may decide to destroy you and after that he will laugh
at you.

PACKMAN (#24)

PACKMAN is almost the same as the arcade game with good graphics and one of
the most fun games of PC-SIG.  When you eat a power pellet, you should eat
as many dots as you can unless you can get close enough to eat some of the
ghost monsters.


BREAKOUT (#177)

This is a very fun and fast game in which you have to BREAKOUT of a brick
wall.  You must not let the ball go by you or you'll lose that ball.  You
only have three balls.  You've got to be very fast and skillful to line the
pad up with the ball.  If you don't BREAKOUT, I advise you not to BREAKOUT
and go CRAZY with your vunerable computer.

WIZARD (#71)

IPCO WIZARDS CASTLE is a fun game where you play roles.  Like DUNGEONS &
DRAGONS, you are in a castle trying to get treasures.  Oh yes, there are
monsters and all sorts wierd creatures.  It's your choice to get killed in
this game.  You may not like this game because there are no graphics, but I
think it's fun.

LANDER (#55)

This is neat game because you get to land a space ship.  Sounds simple,
doesn't it?  The drawbacks to landing the space ship are; having to go over
mountains, lining up your ship to a little pad and a limited amount of
fuel.  It's a lot of fun and I recommend it.  If you do crash, please crash
without making too big of a mess.

BUGS (#177)

This is like the popular video game CENTIPEDE.  Don't be confused by the
weird shapes.  The weird shapes are there to block you from shooting the
centipede.  BUGS is a simple and very easy game to play.  You must be able
to look in several places at once.  To keep the board clear, you must kill
the little guy who makes the blocks.  I think this is a fun game and it
will keep you occupied.

The games I've just mentioned are excellent and very fun games to play.
I recommend them highly.  I have played these games several times and
they never get boring to me.  Of course, you may have another opinion.
Nevertheless, get involved and enjoy the games that PC-SIG has by
yourself or with your family.

LANDER.BAS

10 CLEAR,,2000:A$="VERSION   1.0"  ' Program : LANDER.BAS
20 DEF SEG=&H40: EQUIP=PEEK(&H10)
30 IF (EQUIP AND &H30) = &H30 THEN I1 = 0 ELSE I1 = 1
40 DEF SEG: WIDE = 40: JOY = 0: PRT = 0
50 COLR = 1: ADJUST = 1
60 PROGNAME$ = "     LUNAR LANDER"
70 SCREEN 0,1: KEY OFF: GOSUB 3190
80 GOSUB 1390    'Get lander pictures from disk.
90 GOSUB 160     'Setup initial conditions
100 GOSUB 480     'Display Moving ship
110 GOSUB 900     'Test for Crash or Landing
120 GOSUB 770     'Revise control parameters
130 GOSUB 620     'See if any keys pressed.
140 GOTO 100       'CYCLE.
150 REM $S2
160 REM##########  SETUP  INITIAL  CONDITIONS  ##########
170 REM X,Y=POSITION, F=FUEL, T=THRUST, SX,SY=SPEED, TILT=MODULE TILT,
180 REM GRAV=GRAVITY, S=SCORE
190 REM $S1
200 Z=FRE(A$):F=4000*(1-S/1000):F0=F:T=10:SX=30:SY=0:GRAV=10+S/100:X=0:Y=0:ANG=1:TILT=1:C=1:IF F<1500 THEN F=1500
210 XOLD=X:YOLD=Y:TILTOLD=TILT:TOLD=T
220 CLS:SCREEN 1:COLOR 0,0:LAND=1:KEY OFF:A=RND(100*-VAL(RIGHT$(TIME$,2))):FOR I=1 TO 5:A$=INKEY$:NEXT:IF GRAV>15 THEN GRAV=15
230 IF ADJUST = 1 THEN OUT 980,2: OUT 981,43
240 IF GAUGE=0 GOTO 270
250 LOCATE 1,28:PRINT " SCORE=" S:LOCATE 2,29:PRINT " FALL=" SY
260 LOCATE 3,28:PRINT "THRUST=" T:LOCATE 4,30:PRINT "FUEL=" F:GOTO 340
270 LOCATE 4,30:PRINT"L   L   E":LOCATE 5,30:PRINT"        R"
280 LOCATE 1,30:PRINT"F   F   P":LOCATE 2,30:PRINT"U   A   O":LOCATE 3,30:PRINT"E   L   W"
290 LINE(241,0)-(257,35),1,BF:LINE(241,36)-(257,40),2,BF 'Fuel Gauge
300 LINE(273,5)-(289,10),1,BF:LINE(273,11)-(289,40),2,BF:LINE(273,0)-(289,4),2,BF 'Fall Gauge
310 LINE(304,15)-(319,25),1,BF:LINE(304,26)-(319,40),2,BF:LINE(304,0)-(319,14),2,BF 'Power Gauge
320 G1=0:LINE (241,G1)-(257,G1),0:G2=10:LINE(273,G2)-(289,G2),3:G3=20:LINE(304,G3)-(319,G3),3
330 REM $S2
340 REM########### lander picture  ###########################
350 REM $S1
360 LX(1)=0:LY(1)=40:LINE(LX(1),LY(1))-(LX(1)+1,LY(1)),1
370 BOT=30+260*RND  ' X-VALUE OF FIELD.
380 FOR I=2 TO LP
390 LY(I)=LY(1)+(194-LY(1))*ABS(COS(3.14*(1+S/600)*(LX(I)-BOT-15)/400))
400 LY(I)=LY(I)+SQR(LY(I))*(0.5-RND)  'add noise to land contour.
410 IF((LX(I)>BOT)AND(LX(I)<(BOT+30)))THEN LY(I)=198  ' landing field
420 IF(LY(I)>198)THEN LY(I)=198 'prevent overflow of screen
430 LINE -(LX(I),LY(I)),3:NEXT
440 PAINT(0,199),1,3:LINE (BOT+5,193)-(BOT+25,199),2,BF
450 IF S>ADLAND THEN FOR I=0 TO 6:PSET(BOT+I*5,180),2:NEXT 'Window for Advan.Lndr.
460 PUT(X,Y),R1:ADVAN=0:BEEP:RETURN 'ADVAN=1 FOR ADVANCED LANDER GAME.
470 REM $pa
480 '############  Display moving Ship   and Gauges ####################
490 REM $S1
500 GOSUB 2330:IF MUSIC=1 GOTO 520 ELSE IF F=0 GOTO 520 '  Display picture.
510 PLAY "mb":SOUND TUNE(C,0),TUNE(C,1):SOUND TUNE(C+1,0),TUNE(C+1,1):C=C+2:IF C>149 THEN C=1  'Play "Blue DAnube Waltz"
520 IF GAUGE=0 GOTO 550 ELSE LOCATE 2,35:PRINT INT(-SY):LOCATE 3,35:PRINT INT(T)
530 LOCATE 4,35:PRINT INT(F): IF F=0 THEN SOUND 99,0:BEEP
540 RETURN
550 GG1=INT(40-40*F/F0):IF GG1=G1 THEN GOTO 560 ELSE LINE(241,GG1)-(257,GG1),0
560 G1=GG1:GG2=INT(5+SY/(2.8+(S>ADLAND))):IF GG2<0 THEN GG2=0 ELSE IF GG2>40 THEN GG2=40
570 IF GG2=G2 THEN GOTO 580 ELSE LINE(273,GG2)-(289,GG2),3:IF G2<11 AND G2>4 THEN LINE(273,G2)-(289,G2),1 ELSE LINE(273,G2)-(289,G2),2
580 G2=GG2:GG3=INT(40-40*T/19):IF GG3=G3 THEN GOTO 590 ELSE LINE(304,GG3)-(319,GG3),3:IF G3<26 AND G3>14 THEN LINE(304,G3)-(319,G3),1 ELSE LINE(304,G3)-(319,G3),2
590 G3=GG3:IF F=0 THEN SOUND 99,0:BEEP
600 RETURN
610 REM $S1
620 '########  Check KEYBOARD for commands  ############################
630 REM $S1
640 K$=RIGHT$(INKEY$,1):IF (K$="")THEN RETURN:IF (F=0)THEN RETURN
650 A$=INKEY$:  ' IF A$><"" GOTO 500
660 J=INSTR("HPMK"+CHR$(27),K$):ON J GOTO 680,700,720,740,1060
670 RETURN
680 T=T+1:IF T>19 THEN T=19
690 RETURN
700 T=T-1:IF(T<0)THEN T=0
710 RETURN
720 TILT=TILT+1:IF (TILT>NANG)THEN TILT=1
730 RETURN
740 TILT=TILT-1:IF (TILT<1)THEN TILT=NANG
750 RETURN
760 REM $S1
770 '################ Revise CONTROL parameters  ####################
780 REM $S1
790 SY=SY+GRAV-T*COS(3.14*ANG(TILT)/180):SX=0.9*SX+T*SIN(3.14*ANG(TILT)/180) ' SX has air drag.
800 IF (SY<-10)THEN SY=-10
810 X=X+SX*0.05:Y=Y+SY*0.05:IF (Y<0) THEN Y=0
820 IF (Y+MY>199)THEN Y=199-MY
830 IF (X<0)THEN X=0
840 IF(X+MX>319)THEN X=319-MX
850 IF(F=0) THEN T=0:RETURN
860 F=F-T:IF(F<0)THEN F=0:T=0:LOCATE 6,9:PRINT"OUT OF FUEL":GOSUB 880
870 RETURN
880 FOR J=1 TO 5:FOR K=1000 TO 2000 STEP 20:SOUND K,0.182:NEXT:NEXT:RETURN'alarm
890 REM $s1
900 '######## TEST FOR CRASH OR LANDING.  ##############################
910 REM $s1
920 IF Y>198-MY AND BOT<(5+X) AND (BOT+30)>(X+MX-5) GOTO 1120
930 IF Y>198-MY GOTO 1020
940 FOR I=(1+X/4) TO ((X+MX)/4-1):IF (Y+MY-6)>LY(I) GOTO 1020:NEXT'Each LX=4 unit
950 IF S<ADLAND OR ADVAN=1 THEN RETURN
960 IF Y>185-MY AND BOT<(5+X) AND (BOT+30)>(X+MX-5) AND SY<10 GOTO 2820 ELSE RETURN
970 REM $pa
980 '################# END OF PROGRAM  ########################
990 REM $S1
1000 FOR I=0 TO 8 STEP 2:COLOR I,0:FOR J=1 TO 200:NEXT J:NEXT I:COLOR 0,2
1010 LOCATE 5,1:PRINT STRING$(40,22);:PRINT STRING$(240,0);:PRINT STRING$(240,0);:PRINT STRING$(40,22);:RETURN
1020 GOSUB 1210:GOSUB 1220:GOSUB 1230:GOSUB 1000:CLS:LOCATE 6,1 :FOR I=1 TO 5:PRINT "     CRASH !!!  CRASH !!!  CRASH !!!":NEXT
1030 LOCATE 12,8:PRINT"YOU NEED MORE PRACTISE !!"
1040 A$=INKEY$:IF A$<>"" GOTO 1040 ELSE LOCATE 15,1:PRINT"PRESS ANY OTHER KEY TO CONTINUE":PRINT"PRESS `Q'= QUIT;`S'=SILENCE;`M'=MUSIC":PRINT"         GAUGES `A'=ANALOG, `D'=DIGITAL"
1050 A$=INKEY$:IF A$="" GOTO 1050
1060 IF 0<>INSTR("Qq",A$) THEN SCREEN 0,1: GOSUB 3510
1070 IF 0<>INSTR("Ss",A$) THEN MUSIC=1: GOTO 1050
1080 IF 0<>INSTR("Mm",A$) THEN MUSIC=0: GOTO 1050
1090 IF 0<>INSTR("Aa",A$) THEN GAUGE=0: GOTO 1050
1100 IF 0<>INSTR("Dd",A$) THEN GAUGE=1: GOTO 1050
1110 IF S<ADLAND OR ADVAN=1 THEN GOTO 90 ELSE GOTO 1320
1120  IF SY>15-6*ADVAN  GOTO 1190
1130 SOUND 99,0:IF (TILT<>1) GOTO 1200 'Turn off "Blue Danube"
1140 GOSUB 1210:C=1:D=30:GOSUB 1290:GOSUB 1000:C=31:D=50:GOSUB 1290:CLS:LOCATE 9,10:PRINT "PERFECT  LANDING !!":S=S+INT(F/30):FOR I=0 TO 3500:NEXT:C=51:D=82:GOSUB 1290
1150 IF S>SCOREMAX THEN SCOREMAX=S:GOSUB 1170
1160 LOCATE 11,1:PRINT"YOUR EXTRA FUEL MAKES YOUR SCORE = " S CHR$(13) CHR$(13) " (MAX. SCORE TO DATE IS " SCOREMAX " BY " INIT$ ")":GOTO 1040
1170 LOCATE 11,1:PRINT"YOUR SCORE IS NOW " S " !!!!!!" CHR$(13) "THIS IS THE HIGHEST SCORE UP TO NOW !!" CHR$(13) "TYPE IN 3 INITIALS FOR POSTERITY :"
1180 DEF SEG:POKE 106,0:INPUT "INITIALS: ",A$:INIT$=LEFT$(A$,3):OPEN "lander.scr" FOR OUTPUT AS #3:PRINT#3,SCOREMAX,INIT$:CLOSE:GOSUB 1000:RETURN
1190 GOSUB 1210:GOSUB 1220:GOSUB 1000:CLS:LOCATE 8,1:PRINT"ALMOST A GOOD LANDING BUT MUCH TOO FAST":LOCATE 10,2:PRINT"YOUR FALL RATE MUST BE LESS THAN "15-5*ADVAN:GOTO 1030
1200 GOSUB 1210:GOSUB 1220:GOSUB 1000:LOCATE 8,1:PRINT"GOOD LANDING, BUT PLEASE LAND ON 2 FEET!":GOTO 1030
1210 T=0:GOSUB 480:RETURN ' Show ship with no rocket blast.
1220 SOUND 99,0:FOR J=1 TO 3:FOR K=1000 TO 2000 STEP 20:SOUND K,0.182:NEXT:NEXT:S=INT(S*0.7):RETURN ' Crash sound
1230  EX=10+X-(X<11)*10:EX=EX+(EX>309)*10:EY=Y+10-(Y<11)*10:EY=EY+(EY>189)*5 '***explosion***
1240  FOR I=0 TO NE:LINE(EX-EXPL(I,0),EY-EXPL(I,1))-(EX+EXPL(I,0),EY+EXPL(I,1)/2),2
1250  LINE(EX+EXPL(I,0),EY-EXPL(I,1))-(EX-EXPL(I,0),EY+EXPL(I,1)/2),2:NEXT:RETURN
1260 REM $S2
1270 '############### Play MUSIC ##########################################
1280 REM $S1
1290 SOUND 99,0:PLAY"MB":FOR J=C TO D:SOUND TUNE1(J,0),TUNE1(J,1)/2:IF TUNE1(J,0)><0 AND TUNE1(J,1)><1 THEN SOUND 32767,1
1300 NEXT
1310 RETURN'Above is "Stars and Stripes"
1320 SCREEN 0,1: IF ADJUST = 1 THEN OUT 980,2: OUT 981,43
1330 COLOR 0,2,2:CLS:LOCATE 5,9:PRINT"YOUR SCORE IS NOW : " S:COLOR 7,2
1340 LOCATE 7,5:PRINT"YOU WILL NOW BE IN ADVANCED LANDER ! !":LOCATE 12,1:COLOR 0:   PRINT"IF YOU MANOUVER THE LANDER THROUGH THE  RED DOTS ABOVE THE LANDING FIELD WITH A"
1350 PRINT"FALL RATE LESS THAN 10, YOU WILL END    THE LANDING IN ADVANCED-LANDER. THE LANDWILL BE ENLARGED TO ALLOW YOU TO MAKE A PRECISION LANDING. YOUR FINAL FALL RATE MUST BE LESS THAN ";
1360 COLOR 0:PRINT"-- 10 --",:COLOR 0:PRINT"FOR THE LANDING TO BE OK.":LOCATE 24,7,0:COLOR 7:PRINT"PRESS ANY KEY TO CONTINUE.";
1370 A$=INKEY$:IF A$="" GOTO 1370 ELSE GOTO 90
1380 REM $pa
1390 '######################  START  PROGRAM  #########################
1400 REM $S1
1410 DEF SEG=0:IF (109=PEEK (&H410))GOTO 1430' go to color screen if on Bw
1420 POKE &H410,(PEEK(&H410) AND &HCF) OR &H20:SCREEN 0
1430 KEY OFF:SCREEN 0,1:COLOR 0,2,2:WIDTH 40:CLS:LOCATE 4,12,0:PRINT "IBM    IBM    IBM"
1440 IF ADJUST = 1 THEN OUT 980,2: OUT 981,43
1450 COLOR 7,2:LOCATE 6,12,0:PRINT "Personal Computer"
1460 COLOR 4,0:LOCATE 9,9,0:PRINT CHR$(201)+STRING$(21,205)+CHR$(187)
1470 LOCATE 10,9,0:PRINT CHR$(186)+STRING$(21,32)+CHR$(186)
1480 LOCATE 11,9,0:PRINT CHR$(186)+"    ROCKET LANDER    "+CHR$(186)
1490 LOCATE 12,9,0:PRINT CHR$(186)+STRING$(21,32)+CHR$(186)
1500 LOCATE 13,9,0:PRINT CHR$(186)+"    " A$ "    "+CHR$(186)
1510 LOCATE 14,9,0:PRINT CHR$(186)+STRING$(21,32)+CHR$(186)
1520 LOCATE 15,9,0:PRINT CHR$(200)+STRING$(21,205)+CHR$(188)
1530 COLOR 7,1:LOCATE 19,6,0:PRINT"PRESS ANY KEY FOR INSTRUCTIONS"
1540 A$=INKEY$:IF A$="" GOTO 1540
1550 REM $S2
1560 '################  INSTRUCTIONS   ################################
1570 REM $S1
1580 COLOR 0,2:CLS:PRINT CHR$(13) "The object is to successfully land the  space-craft on the landing pad. This is done by changing the rocket thrust and  direction using the four position keys."
1590 LOCATE 7,1:COLOR 20:PRINT "    " CHR$(24);:COLOR 7:PRINT"  Increases the rocket thrust." CHR$(13)
1600 COLOR 20:PRINT "    " CHR$(25);:COLOR 7:PRINT "  Decreases rocket thrust." CHR$(13)
1610 COLOR 20:PRINT "    " CHR$(26);:COLOR 7:PRINT "  Tilts the rocket to the right." CHR$(13)
1620 COLOR 20:PRINT "    " CHR$(27);:COLOR 7:PRINT "  Tilts the rocket to the left." CHR$(13)
1630 COLOR 16:LOCATE 18,2:PRINT"LOADING DISKETTE IMAGES               ":
1640 REM $S2
1650 '###########  Get Ship pictures from disk #######################
1660 '####### M = Module; R = Small rocket; RR = Large rocket ########
1670 REM $S1
1680 DEFINT M,R,P,X,T,L,B: S=66: DIM PDATA(20)
1690 DIM M1(S),M2(S),M3(S),M4(S),M5(S),M6(S),M7(S),M8(S),M9(S),M10(S),M11(S),M12(S),M13(S)
1700 DIM R1(S),R2(S),R3(S),R4(S),R5(S),R6(S),R7(S),R8(S),R9(S),R10(S),R11(S),R12(S),R13(S)
1710 DIM RR1(S),RR2(S),RR3(S),RR4(S),RR5(S),RR6(S),RR7(S),RR8(S),RR9(S),RR10(S),RR11(S),RR12(S),RR13(S)
1720 DEF SEG=0:A=VARPTR(PDATA(0))
1730 DEF SEG:BLOAD"LANDER.BIN",A
1740 NANG=PDATA(0):SIZE=PDATA(1):MX=PDATA(2):MY=PDATA(3)
1750 DIM ANG(NANG):FOR I=1 TO NANG:ANG(I)=PDATA(3+I):NEXT
1760 OPEN "lander.scr" FOR INPUT AS #2 'Get maximum score to date.
1770 INPUT#2,SCOREMAX,INIT$:CLOSE
1780 DEFINT L: LP=80:DIM LX(LP),LY(LP),LAX(LP),LAY(LP) '  LAND pictures.
1790 LX(1)=0:LY(1)=40:LAY(1)=0:BOT=224:FOR I=2 TO LP :LAX(I)=I*319/LP:LX(I)=LAX(I)'Adv-Lander Field
1800 LAY(I)=LAY(1)+(194-LAY(1))*ABS(COS(3.14*(LAX(I)-BOT-15)/400))
1810 LAY(I)=LAY(I)+SQR(LAY(I))*(0.5-RND)  'add noise to land contour.
1820 IF((LAX(I)>BOT)AND(LAX(I)<(BOT+30)))THEN LAY(I)=198  ' landing field
1830 IF(LAY(I)>198)THEN LAY(I)=198
1840 NEXT
1850 NE=10:DIM EXPL(NE,1):FOR I=0 TO NE:READ EXPL(I,0),EXPL(I,1):NEXT'Explosion
1860 DATA 0,10,1,7,2,8,3,3,4,2,5,8,6,7,7,1,8,6,9,2,10,0
1870 DIM IBMX(75),IBMY(75) ' Get IBM Logo.
1880 FOR I=0 TO 75:READ IBMX(I):NEXT
1890 FOR I=0 TO 75 STEP 2:READ IBMY(I):IBMY(I+1)=IBMY(I):NEXT
1900 DATA 0,4,7,13.5,18,21.5,27,30,0,4,7,14.5,18,22.5,26,30,1,3,8,10,12.5,15,19,23,25.5,29,1,3,8,14.5,19,24,25,29,1,3,8,14.5,19,21,21.6,26.4,27,29,1,3,8,10,12.5,15,19,21,22.3,25.7,27,29,0,4,7,14.5,18,21,23,25,27,30,0,4,7,13.5,18,21,23.5,24.5,27,30
1910 DATA 0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7
1920 DIM MM(88),TUNE(150,1):FOR I=0 TO 6:MM(I)=32767:NEXT ' Get success tune.
1930 FOR I=7 TO 88: MM(I)=INT(36.8*(2^(1/12))^(I-6)):NEXT
1940 FOR I=1 TO 150:READ A,TUNE(I,1):TUNE(I,0)=MM(A):NEXT
1950 REM $s2
1960 'Blue Danube Waltz by J.S.Strauss
1970 REM $s1
1980 DATA 42,4,46,4,49,4,49,4,0,4,61,2,0,2,61,2,0,6,58,2,0,2,58,2,0,6,42,4,42,4
1990 DATA 46,4,49,4
2000 DATA 49,4,0,4,61,2,0,2,61,2,0,6,59,2,0,2,59,2,0,6,41,4,41,4,44,4,51,4,51,4
2010 DATA 0,4,63,2,0,2,63,2,0,6,59,2,0,2
2020 DATA 59,2,0,6,41,4,41,4,44,4,51,4,51,4,0,4,63,2,0,2,63,2,0,6,58,2,0,2,58,2
2030 DATA 0,6,42,4
2040 DATA 42,4,46,4,49,4,54,4,0,4,66,2,0,2,66,2,0,6,61,2,0,2,61,2,0,6,42,4
2050 DATA 42,4,46,4,49,4,54,4,0,4,66,2,0,2
2060 DATA 66,2,0,6,63,2,0,2,63,2,0,6,44,4,44,4,47,4,51,2,0,2,51,14,0,2,48,4
2070 DATA 49,4,58,16
2080 DATA 54,4,46,4,46,8,44,4,51,8,49,4,42,4,0,2,42,2,42,4,0,8,49,2,0,2,47,2
2090 DATA 0,6,49,2,0,2
2100 DATA 47,2,0,6,49,4,58,16,56,4,49,2,0,2,46,2,0,6,49,2,0,2,46,2,0,6,49,4
2110 DATA 56,16,54,4,49,2,0,2,47,2,0,6,49,2,0,2,47,2,0,6,49,4,58,16
2120 DATA 56,4,49,4,54,4,56,4,58,4,61,8,59,4,58,2,58,2,58,4,56,2,0,2,54,4,0,8
2130 DIM TUNE1(82,1):FOR I=1 TO 82:READ A,TUNE1(I,1):TUNE1(I,0)=MM(A):NEXT
2140 REM $s2
2150 '"STARS AND STRIPES FOREVER - SOUSA "
2160 REM $s1
2170 DATA 54,6,54,6,52,3,51,3,51,6,50,3,51,3,51,16,0,2,50,3
2180 DATA 51,3,51,6,50,3,51,3
2190 DATA 54,6,51,3,54,3,52,12,49,6,0,3,49,3,49,6,48,3,49,3
2200 DATA 49,6,48,3,49,3
2210 DATA 52,16,0,2,51,3,49,3,51,3,54,9,56,9,56,3,49,16,0,2,54,6
2220 DATA 54,6,52,3,51,3,51,6,50,3,51,3,51,16,0,2,50,3,51,3,51,6,50,3 ,51,3
2230 DATA 52,3,51,3,49,5,46,1,49,12,47,6,0,3,47,3,47,6,46,3,47,3,50,6,49,3,47,3
2240 DATA 59,15,0,3,47,3,49,3,51,3,54,1,0,2,47,3,49,3,51,3,54,1,0,2,42,3,44,5
2250 DATA 51,1,49,12,47,1
2260 ADVAN=0:GAUGE=1
2270 COLOR 0: LOCATE 18,2
2280 PRINT"Gravity = Vertical thrust of about 10.":COLOR 7,1:LOCATE 24,3:PRINT "  Press any key to start the game.";
2290 COLOR 0,2:LOCATE 20,2:ADLAND=100:PRINT"Advanced-Lander starts above 100 points.";
2300 A$=INKEY$:IF A$="" GOTO 2300
2310 S=0:RETURN
2320 REM $S2
2330 '##############  Get New SHIP picture  #########################
2340 REM $S1
2350 ON INT(1.8+TOLD/10) GOSUB 2390,2530,2670 'Erase old picture.
2360 XOLD=X:YOLD=Y:TILTOLD=TILT:TOLD=T
2370 ON INT(1.8+T/10) GOSUB 2390,2530,2670 'Draw new picture.
2380 TOLD=T:NEWPIC=0:RETURN
2390 ON TILTOLD GOTO 2400,2410,2420,2430,2440,2450,2460,2470,2480,2490,2500,2510,2520
2400 PUT(XOLD,YOLD),M1:RETURN
2410 PUT(XOLD,YOLD),M2:RETURN
2420 PUT(XOLD,YOLD),M3:RETURN
2430 PUT(XOLD,YOLD),M4:RETURN
2440 PUT(XOLD,YOLD),M5:RETURN
2450 PUT(XOLD,YOLD),M6:RETURN
2460 PUT(XOLD,YOLD),M7:RETURN
2470 PUT(XOLD,YOLD),M8:RETURN
2480 PUT(XOLD,YOLD),M9:RETURN
2490 PUT(XOLD,YOLD),M10:RETURN
2500 PUT(XOLD,YOLD),M11:RETURN
2510 PUT(XOLD,YOLD),M12:RETURN
2520 PUT(XOLD,YOLD),M13:RETURN
2530 ON TILTOLD GOTO 2540,2550,2560,2570,2580,2590,2600,2610,2620,2630,2640,2650,2660
2540 PUT(XOLD,YOLD),R1:RETURN
2550 PUT(XOLD,YOLD),R2:RETURN
2560 PUT(XOLD,YOLD),R3:RETURN
2570 PUT(XOLD,YOLD),R4:RETURN
2580 PUT(XOLD,YOLD),R5:RETURN
2590 PUT(XOLD,YOLD),R6:RETURN
2600 PUT(XOLD,YOLD),R7:RETURN
2610 PUT(XOLD,YOLD),R8:RETURN
2620 PUT(XOLD,YOLD),R9:RETURN
2630 PUT(XOLD,YOLD),R10:RETURN
2640 PUT(XOLD,YOLD),R11:RETURN
2650 PUT(XOLD,YOLD),R12:RETURN
2660 PUT(XOLD,YOLD),R13:RETURN
2670 ON TILTOLD GOTO 2680,2690,2700,2710,2720,2730,2740,2750,2760,2770,2780,2790,2800
2680 PUT(XOLD,YOLD),RR1:RETURN
2690 PUT(XOLD,YOLD),RR2:RETURN
2700 PUT(XOLD,YOLD),RR3:RETURN
2710 PUT(XOLD,YOLD),RR4:RETURN
2720 PUT(XOLD,YOLD),RR5:RETURN
2730 PUT(XOLD,YOLD),RR6:RETURN
2740 PUT(XOLD,YOLD),RR7:RETURN
2750 PUT(XOLD,YOLD),RR8:RETURN
2760 PUT(XOLD,YOLD),RR9:RETURN
2770 PUT(XOLD,YOLD),RR10:RETURN
2780 PUT(XOLD,YOLD),RR11:RETURN
2790 PUT(XOLD,YOLD),RR12:RETURN
2800 PUT(XOLD,YOLD),RR13:RETURN
2810 REM $s2
2820 '################ Advanced-Lander Landing Field ##########################
2830 REM $S1
2840 SCREEN 1:COLOR 0,0:CLS:LY(1)=0
2850 IF ADJUST = 1 THEN OUT 980,2: OUT 981,43
2860 BEEP:LOCATE 1,1:PRINT"ADVANCED LANDER":PRINT"LANDING FALL":PRINT"LESS THAN -10-"
2870 LINE(LAX(1),LAY(1))-(LAX(1)+1,LAY(1)),1
2880 BOT=224:FOR I=2 TO LP :LY(I)=LAY(I)
2890 LINE -(LAX(I),LAY(I)),3:NEXT
2900 PAINT(0,199),1,3:LINE (BOT+5,193)-(BOT+25,199),2,BF
2910 LINE(120,160)-(145,199),2,BF
2920 FOR I=0 TO 2:LINE(125,165+10*I)-(140,169+10*I),3,BF:NEXT
2930 LINE (20,130)-(120,199),3,BF 'bldg
2940 LINE (35,110)-(105,130),0,BF
2950 FOR I=0 TO 5:FOR J=0 TO 2:LINE(30+14*I,140+J*14)-(40+14*I,150+J*14),0,BF:NEXT:NEXT
2960 LINE(65,185)-(75,199),0,BF
2970 LINE(146,175)-(205,199),3,BF
2980 FOR I=0 TO 4:LINE(150+10*I,178)-(158+10*I,191),0,BF:NEXT
2990 X=40:Y=113 ' Draw IBM LOGo on Bldg
3000 FOR I=0 TO 75 STEP 2:LINE (X+2*IBMX(I),Y+2*IBMY(I))-(X+2*IBMX(I+1),Y+2*IBMY(I+1)):NEXT I
3010 X=90:Y=30:XOLD=X:YOLD=Y:F=F+1000:F0=F:T=11:TOLD=T:TILT=0:TILTOLD=TILT:SY=13:ADVAN=1
3020 IF GAUGE=0 GOTO 3050
3030 LOCATE 1,28:PRINT " SCORE=" S:LOCATE 2,29:PRINT " FALL=" SY
3040 LOCATE 3,28:PRINT "THRUST=" T:LOCATE 4,30:PRINT "FUEL=" F:GOTO 3110
3050 LOCATE 1,30:PRINT"F   F   P":LOCATE 2,30:PRINT"U   A   O":LOCATE 3,30:PRINT"E   L   W"
3060 LOCATE 4,30:PRINT"L   L   E":LOCATE 5,30:PRINT"        R"
3070 LINE(241,0)-(257,35),1,BF:LINE(241,36)-(257,40),2,BF 'Fuel Gauge
3080 LINE(273,5)-(289,10),1,BF:LINE(273,11)-(289,40),2,BF:LINE(273,0)-(289,4),2,BF 'Fall Gauge
3090 LINE(304,15)-(319,25),1,BF:LINE(304,26)-(319,40),2,BF:LINE(304,0)-(319,14),2,BF 'Power Gauge
3100 G1=0:LINE (241,G1)-(257,G1),0:G2=10:LINE(273,G2)-(289,G2),3:G3=20:LINE(304,G3)-(319,G3),3
3110 PUT(X,Y),R1:BEEP:GOTO 100
3120 REM $pa
3130 REM Subroutine to Provide a requirements list to
3140 REM execute this program
3150 REM
3160 REM Switch I1 = 1 if on the COLOR monitor
3170 REM Switch I1 = 0 if on the MONO  monitor
3180 REM $s2
3190 WIDTH 40: IF I1 = 0 THEN COLOR 7,0 ELSE COLOR 0,2,2
3200 IF I1 = 1 THEN SCREEN 0,1  'text mode and color enabled
3210 CLS
3220 IF ADJUST = 1 THEN OUT 980,2: OUT 981,43
3230 LOCATE 2,5: PRINT "WELCOME TO THE PROGRAM"
3240 IF I1 = 0 THEN COLOR 30,0 ELSE COLOR 16,2,2
3250 LOCATE 3,5: PRINT PROGNAME$
3260 IF I1 = 0 THEN COLOR 7,0 ELSE COLOR 0,2,2
3270 LOCATE 5,5: PRINT "THIS PROGRAM REQUIRES:"
3280 PRINT: PRINT
3290 IF WIDE = 80 THEN PRINT "    80 CHARACTER RESOLUTION"
3300 IF WIDE = 40 THEN PRINT "    40 CHARACTER RESOLUTION"
3310 IF COLR = 1 OR BOTH = 1 THEN PRINT  "    COLOR/GRAPHICS SCREEN  "
3320 IF BOTH = 1 THEN PRINT  "         OR THE            "
3330 IF COLR = 0 OR BOTH = 1 THEN PRINT  "    MONOCHROME DISPLAY -IBM"
3340 IF PRT = 1 THEN PRINT    "    A PRINTER              "
3350 IF JOY = 1    THEN PRINT "    JOYSTICKS              "
3360 IF BOTH = 1 THEN GOTO 3440
3370 IF (COLR = 1 AND I1 = 1) OR (COLR = 0 AND I1 = 0) THEN GOTO 3440
3380 IF I1 = 0 THEN COLOR 30,0 ELSE COLOR 16,2,2
3390 SWIT = 1  'signal need to switch monitors
3400 PRINT: PRINT: PRINT "    YOU MUST SWITCH SCREENS"
3410 PRINT "    ENTER s TO SWITCH      "
3420 PRINT "    ANY OTHER WILL END RUN "
3430 IF I1 = 0 THEN COLOR 7,0 ELSE COLOR 0,2,2
3440 LOCATE 20,5: PRINT "PRESS ANY KEY TO GO   ": BEEP
3450 REP$ = INKEY$: IF REP$ = "" THEN GOTO 3450
3460 IF SWIT=1 AND (REP$="s" OR REP$="S") THEN GOSUB 3710
3470 RETURN
3480 REM $s2
3490 REM Subroutine to provide exit options from this program
3500 REM $s1
3510 WIDTH 40: IF I1 = 0 THEN COLOR 7,0 ELSE COLOR 0,2,2
3520 IF I1 = 1 THEN SCREEN 0,1  'text mode and color enabled
3530 CLS     'allow use on either monitor
3540 IF ADJUST = 1 THEN OUT 980,2: OUT 981,43
3550 LOCATE 3,5: PRINT "PLEASE CHOOSE FROM FOLLOWING"
3560 LOCATE 5,5: PRINT "1 = RUN PROGRAM AGAIN       "
3570 LOCATE 7,5: PRINT "2 = EXIT BACK TO THE MENU   "
3580 LOCATE 9,5: PRINT "3 = RETURN TO BASIC PROGRAM "
3590 LOCATE 11,5: PRINT "4 = RETURN TO DOS           "
3600 LOCATE 20,5: PRINT "ENTER YOUR SELECTION NOW    ": BEEP
3610 REP$ = INKEY$: IF REP$ = "" THEN GOTO 3610
3620 IF REP$ = "1" THEN GOTO 10  'RUN (PROGNAME$)
3630 IF REP$ = "2" THEN CHAIN "MENU"
3640 IF REP$ = "3" THEN WIDTH 80: CLS: END
3650 IF REP$ = "4" THEN CLS: SYSTEM
3660 LOCATE 20,5: PRINT "INVALID SELECTION - TRY AGAIN"
3670 FOR I = 1 TO 800: NEXT I: CLS: GOTO 3550
3680 REM $s2
3690 REM Now switch between the monitors as required
3700 REM $s1
3710 IF I1=0 THEN GOTO 3750: ELSE GOTO 3890
3720 REM $s1
3730 REM Switch to the COLOR monitor
3740 REM $s1
3750 CLS: LOCATE ,,0  'clear screen/turn off mono cursor
3760 CLS
3770 DEF SEG=0        'switch to BIOS communications area
3780 REM set equipment determination flags for color 40 characters
3790 POKE &H410,(PEEK(&H410) AND &HCF) OR &H10
3800 DEF SEG          'switch back to BASIC program segment
3810 SCREEN 0,1: COLOR 0,2,2
3820 WIDTH 40         'init color adapter to 40 characters, clear screen
3830 LOCATE ,,1,6,7   'set cursor size for color mode
3840 IF ADJUST = 1 THEN OUT 980,2: OUT 981,43
3850 I1 = 1: GOTO 3990
3860 REM $s2
3870 REM Switch to the Black and White monitor
3880 REM $s1
3890 CLS: LOCATE ,,0  'remove cursor from color screen
3900 DEF SEG=0        'switch to BIOS communications area
3910 REM set equipment determination flags for monochrome display 80 chars
3920 POKE &H410,PEEK(&H410) OR &H30
3930 DEF SEG          'revert to basic program segment
3940 SCREEN 1         'be sure next line is a change 02/23/82
3950 SCREEN 0         'put into text mode for sure
3960 COLOR 7,0: I1 = 0
3970 WIDTH 40         'init 40 character mode and clear display
3980 LOCATE ,,1,12,13 'turn on monochrome cursor position
3990 RETURN

LIFE2.BAS

1 '   LIFE = The game of LIFE by John Conway - a simulation
2 '    This version by John Sigle        2/21/83
50  ' Initialization
51     DEFINT A-Z
52     C=0:R=0:CUR=0:NXT=1:NN=0:CR=0:RN=0       'Mention early for efficiency
53     NROWS=21:NCOLS=78
55     DIM G(NROWS+1,NCOLS+1,1)
58     DIM CLIST(1,1500,1), LLEN(1)
60     DIM CH$(1):CH$(0)="X" : CH$(1)="O"
70     KEY OFF
100 ' Present instructions
101    GOSUB 1000
151 ' Clear screen and draw box
152    GOSUB 2500
200 ' Get and display new pattern from player
202    GOSUB 2000
250 ' Begin or continue evolution
255     LOCATE 24,1 : PRINT SPACE$(79);
256     LOCATE 24,1 : COLOR 0,7:PRINT " RUN mode ";:COLOR 7,0
260     LOCATE 25,1 : PRINT SPACE$(79);
261     LOCATE 25,1 : COLOR 15:PRINT " E";:COLOR 7:PRINT"=Edit, ";:COLOR 15:PRINT"space";:COLOR 7:PRINT"=Pause, ";:COLOR 15:PRINT"C";:COLOR 7:PRINT"=Continue, ";:COLOR 15:PRINT"Q";:COLOR 7:PRINT"=Quit";
300 ' Repeat until key is pressed
350 '   Calculate and display next generation
352      GOSUB 4000
375 '   Advance to new generation
376      SWAP CUR,NXT
378      SOUND 700,.1 : FOR K=1 TO 2000 : NEXT K
380 '   Check for key pressed
385      C$=INKEY$:IF C$="" THEN GOTO 300
500 ' What did player press?
501    IF C$="E" OR C$="e" THEN GOTO 200
502    IF C$="Q" OR C$="q" THEN CLS:    GOTO 65000
503    IF C$="C" OR C$="c" THEN GOTO 250
504    IF C$=" " THEN C$=INPUT$(1):GOTO 501
505    GOTO 385
1000 ' Routine to present instructions
1006 CLS :PRINT
1008 PRINT "                               L  I  F  E"
1009 PRINT
1010 PRINT "   The original game of life was invented by mathematician John Conway."
1011 PRINT " The idea is to initialize the screen with a pattern of bacteria "
1112 PRINT " in 'EDIT' mode.  The 'RUN' mode then brings life to the colony."
1114 PRINT " The population increases and decreases according to fixed rules "
1116 PRINT " which affect the birth and death of individual bacterium. "
1118 PRINT " A rectangular grid (2-dimensional matrix) will be shown on the screen."
1120 PRINT " Each cell in the grid can contain a bacterium or be empty.  Each cell"
1122 PRINT " has 8 neighbors except that cells on the boundry have less than 8 "
1124 PRINT " neighbors.  The existance of cells from one generation to the next"
1126 PRINT " is determined by the following rules:"
1128 PRINT:PRINT "  1.  A bacteria with 2 or 3 neighbors survives from one generation to "
1130 PRINT "      the next.  A bacterium with fewer neighbors dies of isolation."
1132 PRINT "      One with more neighbors dies of overcrowding."
1134 PRINT:PRINT "  2.  An empty cell spawns a bacteria if it has exactly three "
1136 PRINT "      neighboring cells which contain bacteria."
1150 PRINT:PRINT
1152 PRINT "   Press the spacebar to continue";:ANS$=INPUT$(1)
1154 CLS : PRINT:PRINT
1170 PRINT " In EDIT mode the following commands are available:"
1172 PRINT : PRINT
1174 PRINT "  ";CHR$(24);CHR$(25);CHR$(26);CHR$(27);"         to move the cursor"
1176 PRINT "  M            to Mark a cell as having a bacterium"
1178 PRINT "  space        to erase a mark from a cell"
1180 PRINT "  R            to enter the RUN mode (i.e. start the evolutionary process)"
1182 PRINT "  C            to Clear the grid in order to create a new pattern"
1184 PRINT "  Q            to Quit the game of LIFE"
1186 PRINT : PRINT
1188 PRINT" In RUN mode the following commands are available:"
1190 PRINT
1192 PRINT "  E            to enter the EDIT mode to create or change the pattern"
1194 PRINT "  space        to pause"
1196 PRINT "  C            to Continue the execution after a pause"
1198 PRINT "  Q            to Quit the game of LIFE"
1199 PRINT : PRINT "The EDIT, pause and Quit commands take effect only at the end of a cycle."
1204 PRINT : PRINT "Press spacebar to continue";:ANS$=INPUT$(1)  : RETURN
2000 ' Routine to get and display a pattern
2010 '  Print instructions on line 25
2011     LOCATE 24,1 : PRINT SPACE$(79);
2012     LOCATE 24,1 : COLOR 0,7 :PRINT " EDIT mode ";:COLOR 7,0
2013     LOCATE 25,1 : PRINT SPACE$(79);
2014     LOCATE 25,1 : PRINT "Use ";:COLOR 15:PRINT CHR$(24);CHR$(25);CHR$(26);    CHR$(27);:COLOR 7:PRINT" to move cursor, ";
2015 COLOR 15:PRINT"M";:COLOR 7:PRINT"=mark, ";:COLOR 15:PRINT"space";:COLOR 7:PRINT"=erase, ";:COLOR 15:PRINT"R";:COLOR 7:PRINT "=Run, ";:COLOR 15:PRINT"C";:  COLOR 7:PRINT"=Clear screen, ";:COLOR 15:PRINT"Q";:COLOR 7:PRINT "=quit";
2016     DEF SEG=0:POKE 1052,PEEK(1050):DEF SEG
2020 '  Initialize cursor
2022     RN=11:CN=39:LOCATE RN+1,CN+1,1
2030 '  Top of input loop
2031     C$=INKEY$:IF C$="" THEN 2031
2032     IF LEN(C$)=2 THEN GOTO 2040
2033      IF C$="M" OR C$="m" THEN GOSUB 2080:GOTO 2031
2034      IF C$=" " THEN GOSUB 2070:GOTO 2031
2035      IF C$="R" OR C$="r" THEN RETURN
2036      IF C$="C" OR C$="c" THEN GOSUB 2110:GOTO 2031
2038      IF C$="Q" OR C$="q" THEN GOTO 65000
2039      GOTO 2031
2040     CC=ASC(RIGHT$(C$,1))                   'Two char. code
2041      IF CC=72 THEN GOSUB 2050:GOTO 2031
2042      IF CC=75 THEN GOSUB 2055:GOTO 2031
2043      IF CC=77 THEN GOSUB 2060:GOTO 2031
2044      IF CC=80 THEN GOSUB 2065:GOTO 2031
2045      GOTO 2031
2050 '  Up arrow
2051     IF RN>1 THEN RN=RN-1:LOCATE RN+1,CN+1,1
2052     RETURN
2055 '  Left arrow
2056     IF CN>1 THEN CN=CN-1:LOCATE RN+1,CN+1,1
2057     RETURN
2060 '  Right arrow
2061     IF CN<NCOLS THEN CN=CN+1:LOCATE RN+1,CN+1,1
2062     RETURN
2065 '  Down arrow
2066     IF RN<NROWS THEN RN=RN+1:LOCATE RN+1,CN+1,1
2067     RETURN
2070 '  Spacebar = erase
2071     IF G(RN,CN,CUR)=0 THEN RETURN
2072     FOR K=LLEN(CUR) TO 1 STEP -1
2073       IF CLIST(0,K,CUR)=RN AND CLIST(1,K,CUR)=CN THEN GOTO 2075
2074     NEXT K  :  STOP
2075     FOR J=K TO LLEN(CUR)-1
2076      CLIST(0,J,CUR)=CLIST(0,J+1,CUR):CLIST(1,J,CUR)=CLIST(1,J+1,CUR)
2077     NEXT
2078     G(RN,CN,CUR)=0:PRINT " ";:LOCATE RN+1,CN+1,1  : RETURN
2080 '  Any letter
2081     IF G(RN,CN,CUR)=1 THEN RETURN
2082     G(RN,CN,CUR)=1
2084     LLEN(CUR)=LLEN(CUR)+1
2086     CLIST(0,LLEN(CUR),CUR)=RN:CLIST(1,LLEN(CUR),CUR)=CN
2087     LOCATE RN+1,CN+1,1:PRINT CH$(CUR);:LOCATE RN+1,CN+1,1
2089     RETURN
2110 '  Routine to clear screen
2112     FOR K=1 TO LLEN(CUR)
2114        RN=CLIST(0,K,CUR):CN=CLIST(1,K,CUR):G(RN,CN,CUR)=0
2115        LOCATE RN+1,CN+1:PRINT " ";
2116     NEXT K
2118     LLEN(CUR)=0
2119     RETURN
2500 ' Routine to clear screen and print box
2502    CLS
2504    PRINT CHR$(218);
2506    FOR K=1 TO NCOLS:PRINT CHR$(196);:NEXT:PRINT CHR$(191);
2508    FOR K=2 TO NROWS+1:LOCATE K,NCOLS+2:PRINT CHR$(179);:NEXT
2510    FOR K=2 TO NROWS+1:LOCATE K,1:PRINT CHR$(179);:NEXT
2512    LOCATE NROWS+2,1:PRINT CHR$(192);
2514    FOR K=1 TO NCOLS:PRINT CHR$(196);:NEXT:PRINT CHR$(217);
2599    RETURN
4000 '^ Routine to calculate and display next generation
4001     LOCATE ,,0
4002 '  Zero out last generation
4004     FOR K=1 TO LLEN(NXT)
4006        RN=CLIST(0,K,NXT):CN=CLIST(1,K,NXT):G(RN,CN,NXT)=0
4007     NEXT K
4008     LLEN(NXT)=0 :LL=0
4010 '  Repeat for each cell on the current CLIST
4012     FOR K=1 TO LLEN(CUR)
4020 '    Determine if it lives, put it on list and display it.
4022       RN=CLIST(0,K,CUR):CN=CLIST(1,K,CUR)
4023       R=RN:C=CN:GOSUB 4100    ' Count its neighbors
4025       IF NN=2 OR NN=3 THEN GOTO 4030
4026 '       Cell dies
4027         G(RN,CN,NXT)=0:LOCATE RN+1,CN+1:PRINT " ";
4029         GOTO 4040
4030 '       Cell lives
4031         LL=LL+1:CLIST(0,LL,NXT)=RN:CLIST(1,LL,NXT)=CN:G(RN,CN,NXT)=1
4032         LOCATE RN+1,CN+1 : PRINT CH$(NXT);
4040 '    Consider each of its neighbors
4041       R=RN-1:C=CN:GOSUB 4200
4042       R=RN-1:C=CN+1:GOSUB 4200
4043       R=RN:C=CN+1:GOSUB 4200
4044       R=RN+1:C=CN+1:GOSUB 4200
4045       R=RN+1:C=CN:GOSUB 4200
4046       R=RN+1:C=CN-1:GOSUB 4200
4047       R=RN:C=CN-1:GOSUB 4200
4048       R=RN-1:C=CN-1:GOSUB 4200
4060     NEXT K
4062     LLEN(NXT)=LL
4099    RETURN
4100 ' Routine to count current neighbors of cell at r,c
4102    NN=G(R-1,C,CUR)+G(R-1,C+1,CUR)+G(R,C+1,CUR)+G(R+1,C+1,CUR)+                        G(R+1,C,CUR)+G(R+1,C-1,CUR)+G(R,C-1,CUR)+G(R-1,C-1,CUR) :RETURN
4200 ' Routine to analyze and manipulate a neighbor of cell at rn,cn
4203    IF G(R,C,CUR)=1 THEN RETURN  'Cell is currently alive
4211    IF R=0 OR R>NROWS OR C=0 OR C>NCOLS THEN RETURN 'Cell on border
4213    IF G(R,C,NXT)=1 THEN RETURN  'Cell already added
4221    GOSUB 4100  'Count its neighbors
4230 '  if nn=3 then cell becomes alive
4231     IF NN=3 THEN                                                                       LL=LL+1:CLIST(0,LL,NXT)=R:CLIST(1,LL,NXT)=C:G(R,C,NXT)=1 :                      LOCATE R+1,C+1:PRINT CH$(NXT);
4299    RETURN
65000 ' Return to Magazette
65001 LOCATE 25,1:PRINT SPACE$(79);:LOCATE 25,1:PRINT "  Press ESC key to continue ";:ANS$=INPUT$(1):IF ASC(ANS$)<>27 THEN 65001
65002 IF ADDR.%<>0 THEN RUN DRIVE$+":"+"START"
65005 END

PACKMAN.DOC

                PACKMAN PROGRAM DESCRIPTION
                ===========================
SCREEN LAYOUT
-------------
The score appears at the upper left.  The screen number is shown at the
far right.  The remaining PACKMEN are also shown in the upper right.
The prompt area is in the center of the status area above the center
"tunnel" exit.  The prompts indicate readiness to satrt/resume play, display
display bonus points for capturing a monster or prize, etc.

CONTROLS
--------
The player controls PACKMAN's direction using either the four arrow keys
(make sure [NumLock] is not accidently pressed!) or, optionally, via
joystick.  The player indicates his choice simply by pressing either a
cursor key or joystick "fire" button to start/resume play in response to
the READY! prompt.  Thus, it is even possible to alternate between keyboard
and joystick(s) during the game.  The joystick button may also be used to
respond affirmatively to the new game prompt.

Pressing [CTRL][END] during play causes the program to end immediately and
return to DOS.

Note:  This program assumes the joysticks are wired such that resistance
values increase from left to right and top to bottom, following the con-
vention for screen pel coordinates.

SCORING
-------
Dots:....................10 points
Power Capsules:..........50 points
"Scared" Monsters:......200,400,800, or 1600 points
Prizes:
     Screen 1:..........100 points (Cherries)
     Screen 2:..........300 points (Strawberry)
     Screen 3:..........500 points (Apple)
     Screen 4:..........700 points (Grapes)
     Screen 5:.........1000 points (Key)
     Screen >=6:.......2000 points (Randomly chosen symbol)

A bonus PACKMAN is awarded at each 10,000 point plateau.

GAME DESCRIPTION
================
The objective is for PACKMAN to score as many points as possible by
devouring dots, prizes, power capsules, and "scared" monsters, while
avoiding fatal collisions with "mean" monsters.  A screen ends when
all 180 dots and four power capsules are cleared. The game ends when
the player loses his last PACKMAN.

As play starts/resumes, the four monsters emerge from their "pen" in
the center and begin searching for PACKMAN.  At first, they move
randomly about the maze, checking out the corridors ahead and to the
sides.  As soon as a monster sees PACKMAN, it begins to chase him.
PACKMAN may be spotted even if only partially visable in a corridor.

Chasing basically entail this: If PACKMAN is in sight, the monster will
head directly toward him.  If PACKMAN then ducks out of sight, the
monster will remember where he was last seen and the direction he
turned, and will try to proceed to that point and turn the same way,
after which it reverts to its searching algorithm.  The monsters also
forget the trail when exiting the tunnels or passing in front of the
pen exit.



                          PACKMAN                              Page 2

The monsters normally do not look backwards or reverse their direc-
tions arbitrarily.  Therefore, PACKMAN can follow a monster without
being seen.  However, since the monsters cannot run over each other,
collisions between monsters may resuld in one or both suddenly revers-
ing their course, unexpectedly trapping PACKMAN if he is careless.

When PACKMAN eats a power capsule, all monsters outside the pen turn
blue, slow to half-speed, and attempt to flee if they see PACKMAN.
The first monster PACKMAN catches is worth 200 points, doubling for
each subsequent monster.  When a monster is captured, its disembodied
eyes make a beeline back to the pen, where it is reincarnated and re-
emerges.  After a short time, the blue monsters flash white three times
and revert to their normal dangerous state.

The prize appears twice per screen, staying for a time for PACKMAN to
claim it, then disappearing.  The first appearance is sometime after
one-third to two-thirds of the dots are cleared from the screen.

Each screen is progressively more difficult than the last.  For the
first several screens, PACKMAN is considerably faster than the monsters
in open corridors, so he can usually out-run them unless he gets him-
self trapped or is slowed by eating a long string of dots (eating slows
his speed by one-third).  However, with each screen, the monsters
become faster relative to PACKMAN, and remain frightened for shorter
length of time.  By the tenth screen, the power capsules cease to have
any effect at all.  Also, the prizes appear for progressively shorter
intervals.
creen, the power capsules cease to have
any

WIZARD.BAS

10 KEY OFF:CLS
20 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
30 PRINT"░┌───────────────────────────────────┐░"
40 PRINT"░│                                   │░"
50 PRINT"░│            2039-A.BAS             │░"
60 PRINT"░│        THE WIZARD'S CASTLE        │░"
70 PRINT"░│                                   │░"
80 PRINT"░│                                   │░"
90 PRINT"░│ BROUGHT TO YOU BY THE MEMBERS OF  │░"
100 PRINT"░│      ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄      │░"
110 PRINT"░│        █   █   █ █     █   █      │░"
120 PRINT"░│        █   █▄▄▄█ █     █   █      │░"
130 PRINT"░│        █   █     █     █   █      │░"
140 PRINT"░│      ▄▄█▄▄ █     █▄▄▄▄ █▄▄▄█      │░"
150 PRINT"░│                                   │░"
160 PRINT"░│      International PC Owners      │░"
170 PRINT"░│                                   │░"
180 PRINT"░│P.O. Box 10426, Pittsburgh PA 15234│░"
190 PRINT"░│                                   │░"
200 PRINT"░└───────────────────────────────────┘░"
210 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
220 PRINT
230 PRINT "       PRESS ANY KEY TO CONTINUE
240 A$=INKEY$: IF A$="" THEN 240
250 CLS
1000 SAMP$="NO":GOTO 1020
1010 SAMP$="YES"
1020 CLS:WIDTH 80:KEY OFF
1030 REM *****************************************************
1040 REM *                                                   *
1050 REM * WIZARD'S CASTLE GAME FROM JULY/AUGUST 1980        *
1060 REM * ISSUE OF RECREATIONAL COMPUTING MAGAZINE          *
1070 REM * WRITTEN FOR EXIDY SORCERER BY JOSEPH R. POWER     *
1080 REM * MODIFIED FOR HEATH MICROSOFT BASIC BY J.F.STETSON *
1090 REM *                                                   *
1100 REM *****************************************************
1110 DEFINT A-Z
1120 DIM C$(34),I$(34),R$(4),W$(8),E$(8)
1130 DIM L(512),C(3,4),T(8),O(3),R(3)
1140 DEF FNA(Q)=1+INT(RND(1)*Q)
1150 DEF FNB(Q)=Q+8*((Q=9)-(Q=0))
1160 DEF FNC(Q)=-Q*(Q<19)-18*(Q>18)
1170 DEF FND(Q)=64*(Q-1)+8*(X-1)+Y
1180 DEF FNE(Q)=Q+100*(Q>99)
1190 Y$="** PLEASE ANSWER YES OR NO"
1200 NG=0
1210 REM
1220 REM   INITIALIZE ARRAYS
1230 REM
1240 NG=NG+1
1250 Q=RND(1)
1260 RESTORE
1270 FOR Q=1 TO 34
1280 READ C$(Q),I$(Q)
1290 NEXT Q
1300 FOR Q=1 TO 512
1310 L(Q)=101
1320 NEXT Q
1330 FOR Q=1 TO 8
1340 READ W$(Q),E$(Q)
1350 NEXT Q
1360 FOR Q=1 TO 4
1370 READ R$(Q)
1380 NEXT Q
1390 IF NG > 1 GOTO 1520
1400 GOSUB 9770
1410 PRINT TAB(16);"* * * THE WIZARD'S CASTLE * * *"
1420 PRINT
1430 GOSUB 9770
1440 PRINT "MANY CYCLES AGO, IN THE KINGDOM OF N'DIC, THE GNOMIC"
1450 PRINT "WIZARD ZOT FORGED HIS GREAT *ORB OF POWER*. HE SOON"
1460 PRINT "VANISHED, LEAVING BEHIND HIS VAST SUBTERRANEAN CASTLE"
1470 PRINT "FILLED WITH ESURIENT MONSTERS, FABULOUS TREASURES, AND"
1480 PRINT "THE INCREDIBLE *ORB OF ZOT*. FROM THAT TIME HENCE, MANY"
1490 PRINT "A BOLD YOUTH HAS VENTURED INTO THE WIZARD'S CASTLE. AS"
1500 PRINT "OF NOW, *NONE* HAS EVER EMERGED VICTORIOUSLY! BEWARE!!"
1510 PRINT
1520 X=1 : Y=4
1530 L(FND(1))=2
1540 FOR Z=1 TO 7
1550 FOR Q1=1 TO 2
1560 Q=104
1570 GOSUB 9590
1580 L(FND(Z+1))=103
1590 NEXT Q1
1600 NEXT Z
1610 FOR Z=1 TO 8
1620 FOR Q=113 TO 124
1630 GOSUB 9590
1640 NEXT Q
1650 FOR Q1=1 TO 3
1660 FOR Q=105 TO 112
1670 GOSUB 9590
1680 NEXT Q
1690 Q=125
1700 GOSUB 9590
1710 NEXT Q1
1720 NEXT Z
1730 FOR Q=126 TO 133
1740 Z=FNA(8)
1750 GOSUB 9590
1760 NEXT Q
1770 Q=101
1780 FOR A=1 TO 3
1790 Z=FNA(8)
1800 GOSUB 9590
1810 C(A,1)=X
1820 C(A,2)=Y
1830 C(A,3)=Z
1840 C(A,4)=0
1850 NEXT A
1860 RC=0
1870 ST=2
1880 DX=14
1890 R$(3)="MAN"
1900 Q=112+FNA(12)
1910 Z=FNA(8)
1920 GOSUB 9590
1930 R(1)=X
1940 R(2)=Y
1950 R(3)=Z
1960 Q=109
1970 Z=FNA(8)
1980 GOSUB 9590
1990 O(1)=X
2000 O(2)=Y
2010 O(3)=Z
2020 BF=0 : OT=8 : AV=0 : HT=0 : T=1 : VF=0 : LF=0
2030 TC=0 : GP=60 : RF=0 : OF=0 : BL=0 : IQ=8 : SX=0
2040 FOR Q=1 TO 8
2050 T(Q)=0
2060 NEXT Q
2070 PRINT CHR$(7);
2080 PRINT "ALL RIGHT, BOLD ONE."
2090 PRINT "YOU MAY BE AN ELF, DWARF, MAN, OR HOBBIT."
2100 GOSUB 9830
2110 FOR Q=1 TO 4
2120 IF LEFT$(R$(Q),1)=O$ THEN RC=Q : ST=ST+2*Q : DX=DX-2*Q
2130 NEXT Q
2140 PRINT
2150 OT=OT+4*(RC=1)
2160 IF RC > 0 THEN R$(3)="HUMAN" : GOTO 2190
2170 PRINT "** THAT WAS INCORRECT. PLEASE TYPE E, D, M, OR H."
2180 GOTO 2090
2190 PRINT "WHICH SEX TO YOU PREFER";
2200 GOSUB 9850
2210 IF O$="M" THEN SX=1 : GOTO 2250
2220 IF O$="F" GOTO 2250
2230 PRINT "** CUTE ";R$(RC);", REAL CUTE. TRY M OR F."
2240 GOTO 2190
2250 PRINT
2260 PRINT "OK, ";R$(RC);", YOU HAVE THE FOLLOWING ATTRIBUTES :"
2270 PRINT "STRENGTH =";ST;" INTELLIGENCE =";IQ;" DEXTERITY =";DX
2280 PRINT "AND";OT;"OTHER POINTS TO ALLOCATE AS YOU WISH."
2290 PRINT
2300 Z$="STRENGTH"
2310 GOSUB 9880
2320 ST=ST+Q
2330 IF OT=0 GOTO 2410
2340 Z$="INTELLIGENCE"
2350 GOSUB 9880
2360 IQ=IQ+Q
2370 IF OT=0 GOTO 2410
2380 Z$="DEXTERITY"
2390 GOSUB 9880
2400 DX=DX+Q
2410 PRINT "OK, ";R$(RC);", YOU HAVE 60 GOLD PIECES (GP'S)."
2420 Z$="ARMOR"
2430 GOSUB 10130
2440 AV=0 : WV=0 : FL=0 : WC=0
2450 PRINT "PLATE<30> CHAINMAIL<20> LEATHER<10> NOTHING<0>"
2460 GOSUB 9830
2470 IF O$="N" GOTO 2530
2480 AV=-3*(O$="P")-2*(O$="C")-(O$="L")
2490 IF AV > 0 GOTO 2530
2500 PRINT
2510 PRINT "** ARE YOU A ";R$(RC);" OR ";C$(FNA(12)+12);"?"
2520 GOTO 2420
2530 AH=AV*7 : GP=GP-AV*10
2540 PRINT
2550 PRINT "OK, BOLD ";R$(RC);", YOU HAVE";GP;"GP'S LEFT."
2560 Z$="WEAPONS"
2570 GOSUB 10130
2580 PRINT "SWORD<30> MACE<20> DAGGER<10> NOTHING<0>"
2590 GOSUB 9830
2600 IF O$="N" GOTO 2660
2610 WV=-3*(O$="S")-2*(O$="M")-(O$="D")
2620 IF WV > 0 GOTO 2660
2630 PRINT
2640 PRINT "** IS YOUR IQ REALLY";IQ;"?"
2650 GOTO 2560
2660 GP=GP-WV*10
2670 IF GP < 20 GOTO 2730
2680 PRINT
2690 PRINT "DO YOU WANT TO BUY A LAMP FOR 20 GP'S";
2700 GOSUB 9850
2710 IF O$="Y" THEN LF=1 : GP=GP-20 : GOTO 2730
2720 IF O$ <> "N" THEN PRINT : PRINT Y$ : PRINT : GOTO 2690
2730 PRINT
2740 IF GP < 1 THEN Q=0 : GOTO 2850
2750 PRINT "OK, ";R$(RC);", YOU HAVE";GP;"GOLD PIECES LEFT."
2760 PRINT
2770 INPUT "FLARES COST 1 GP EACH. HOW MANY DO YOU WANT";O$
2780 Q=VAL(O$)
2790 PRINT
2800 IF Q > 0 OR ASC(O$)=48 GOTO 2840
2810 PRINT "** IF YOU DON'T WANT ANY, JUST TYPE 0 (ZERO)."
2820 PRINT
2830 GOTO 2770
2840 IF Q > GP THEN PRINT "** YOU CAN ONLY AFFORD";GP;"." : PRINT : GOTO 2770
2850 FL=FL+Q : GP=GP-Q
2860 X=1 : Y=4 : Z=1
2870 PRINT "OK, ";R$(RC);", YOU ARE NOW ENTERING THE CASTLE!"
2880 GOTO 5920
2890 REM
2900 REM   MAIN PROCESSING LOOP
2910 REM
2920 T=T+1
2930 IF RF+OF > 0 GOTO 3060
2940 IF C(1,4) > T(1) THEN T=T+1
2950 IF C(2,4) > T(3) THEN GP=GP-FNA(5)
2960 IF GP < 0 THEN GP=0
2970 IF C(3,4) <= T(5) GOTO 3060
2980 A=X : B=Y : C=Z
2990 X=FNA(8) : Y=FNA(8) : Z=FNA(8)
3000 L(FND(Z))=FNE(L(FND(Z)))+100
3010 X=A : Y=B : Z=C
3020 IF L(FND(Z)) <> 1 GOTO 3060
3030 FOR Q=1 TO 3
3040 C(Q,4)=-(C(Q,1)=X)*(C(Q,2)=Y)*(C(Q,3)=Z)
3050 NEXT Q
3060 IF FNA(5) > 1 GOTO 3350
3070 PRINT
3080 PRINT "YOU ";
3090 Q=FNA(7)+BL
3100 IF Q > 7 THEN Q=4
3110 ON Q GOSUB 3270,3150,3250,3130,3290,3310,3330
3120 GOTO 3350
3130 PRINT "STEPPED ON A FROG!"
3140 RETURN
3150 PRINT "HEAR ";
3160 ON FNA(4) GOTO 3170,3190,3210,3230
3170 PRINT "A SCREAM!"
3180 RETURN
3190 PRINT "FOOTSTEPS!"
3200 RETURN
3210 PRINT "A WUMPUS!"
3220 RETURN
3230 PRINT "THUNDER!"
3240 RETURN
3250 PRINT "SNEEZED!"
3260 RETURN
3270 PRINT "SEE A BAT FLY BY!"
3280 RETURN
3290 PRINT "SMELL ";C$(12+FNA(13));" FRYING!"
3300 RETURN
3310 PRINT "FEEL LIKE YOU'RE BEING WATCHED!"
3320 RETURN
3330 PRINT "HEAR FAINT RUSTLING NOISES!"
3340 RETURN
3350 IF BL+T(4) <> 2 GOTO 3390
3360 PRINT
3370 PRINT C$(29);" CURES YOUR BLINDNESS!"
3380 BL=0
3390 IF BF+T(6) <> 2 GOTO 3430
3400 PRINT
3410 PRINT C$(31);" DISSOLVES THE BOOK!"
3420 BF=0
3430 PRINT
3440 LINE INPUT "ENTER YOUR COMMAND : ";O$
3450 IF LEFT$(O$,2)="DR" GOTO 4760
3460 O$=LEFT$(O$,1)
3470 IF O$="N" GOTO 3890
3480 IF (O$="S") OR (O$="W") OR (O$="E") GOTO 3900
3490 IF O$="U" GOTO 3950
3500 IF O$="D" GOTO 3980
3510 IF O$="M" GOTO 4030
3520 IF O$="F" THEN ON BL+1 GOTO 4260,4030
3530 IF O$="L" THEN ON BL+1 GOTO 4520,4030
3540 IF O$="O" GOTO 4950
3550 IF O$="G" THEN ON BL+1 GOTO 5390,4030
3560 IF O$="T" THEN PRINT : ON RF+1 GOTO 5650,5690
3570 IF O$="Q" GOTO 5800
3580 IF O$<>"H" GOTO 3860
3590 PRINT CHR$(27);"E"
3600 PRINT "*** WIZARD'S CASTLE COMMAND AND INFORMATION SUMMARY ***"
3610 PRINT
3620 PRINT "THE FOLLOWING COMMANDS ARE AVAILABLE :"
3630 PRINT
3640 PRINT "H/ELP     N/ORTH    S/OUTH    E/AST     W/EST     U/P"
3650 PRINT "D/OWN     DR/INK    M/AP      F/LARE    L/AMP     O/PEN"
3660 PRINT "G/AZE     T/ELEPORT Q/UIT"
3670 PRINT
3680 PRINT "THE CONTENTS OF ROOMS ARE AS FOLLOWS :"
3690 PRINT
3700 PRINT ". = EMPTY ROOM      B = BOOK            C = CHEST"
3710 PRINT "D = STAIRS DOWN     E = ENTRANCE/EXIT   F = FLARES"
3720 PRINT "G = GOLD PIECES     M = MONSTER         O = CRYSTAL ORB"
3730 PRINT "P = MAGIC POOL      S = SINKHOLE        T = TREASURE"
3740 PRINT "U = STAIRS UP       V = VENDOR          W = WARP/ORB"
3750 PRINT
3760 PRINT "THE BENEFITS OF HAVING TREASURES ARE :"
3770 PRINT
3780 PRINT "RUBY RED - AVOID LETHARGY     PALE PEARL - AVOID LEECH"
3790 PRINT "GREEN GEM - AVOID FORGETTING  OPAL EYE - CURES BLINDNESS"
3800 PRINT "BLUE FLAME - DISSOLVES BOOKS  NORN STONE - NO BENEFIT"
3810 PRINT "PALANTIR - NO BENEFIT         SILMARIL - NO BENEFIT"
3820 PRINT
3830 PRINT "PRESS RETURN WHEN READY TO RESUME, ";R$(RC);".";
3840 LINE INPUT "";O$
3850 GOTO 2920
3860 PRINT
3870 PRINT "** SILLY ";R$(RC);", THAT WASN'T A VALID COMMAND!"
3880 GOTO 2920
3890 IF L(FND(Z))=2 GOTO 8960
3900 X=X+(O$="N")-(O$="S")
3910 Y=Y+(O$="W")-(O$="E")
3920 X=FNB(X)
3930 Y=FNB(Y)
3940 GOTO 5920
3950 IF L(FND(Z))=3 THEN Z=Z-1 : GOTO 5920
3960 Z$="UP"
3970 GOTO 4000
3980 Z$="DOWN"
3990 IF L(FND(Z))=4 THEN Z=Z+1 : GOTO 5920
4000 PRINT
4010 PRINT "** THERE ARE NO STAIRS GOING ";Z$;" FROM HERE!"
4020 GOTO 2920
4030 IF BL <> 1 GOTO 4100
4040 PRINT
4050 PRINT "** YOU CAN'T SEE ANYTHING, YOU DUMB ";R$(RC);"!"
4060 GOTO 2920
4070 REM
4080 REM   DISPLAY MAP OF CURRENT CASTLE LEVEL
4090 REM
4100 PRINT
4110 A=X : B=Y
4120 FOR X=1 TO 8
4130 FOR Y=1 TO 8
4140 Q=L(FND(Z))
4150 IF Q > 99 THEN Q=Q-100 ' LET Q=34 TO HIDE ROOMS
4160 IF X=A AND Y=B THEN PRINT "<";I$(Q);">  "; : GOTO 4180
4170 PRINT " ";I$(Q);"   ";
4180 NEXT Y
4190 PRINT
4200 PRINT
4210 NEXT X
4220 X=A : Y=B
4230 GOTO 4470
4240 PRINT ") LEVEL";Z
4250 GOTO 2920
4260 IF FL <> 0 GOTO 4320
4270 PRINT "** HEY, BRIGHT ONE, YOU'RE OUT OF FLARES!"
4280 GOTO 2920
4290 REM
4300 REM   DISeADJACENT ROOM CONTENTS WITH FLARE
4310 REM
4320 PRINT
4330 FL=FL-1
4340 A=X : B=Y
4350 FOR Q1=A-1 TO A+1
4360 X=FNB(Q1)
4370 FOR Q2=B-1 TO B+1
4380 Y=FNB(Q2)
4390 Q=FNE(L(FND(Z)))
4400 L(FND(Z))=Q
4410 PRINT " ";I$(Q);"   ";
4420 NEXT Q2
4430 PRINT
4440 PRINT
4450 NEXT Q1
4460 X=A : Y=B
4470 GOSUB 10160
4480 GOTO 2920
4490 REM
4500 REM   DISPLAY CONTENTS OF ADJACENT ROOM WITH LAMP
4510 REM
4520 IF LF <> 0 GOTO 4560
4530 PRINT
4540 PRINT "** YOU DON'T HAVE A LAMP, ";R$(RC);"!"
4550 GOTO 2920
4560 PRINT
4570 PRINT "WHERE DO YOU WANT TO SHINE THE LAMP (N,S,E,W)";
4580 GOSUB 9850
4590 A=X : B=Y
4600 X=FNB(X+(O$="N")-(O$="S"))
4610 Y=FNB(Y+(O$="W")-(O$="E"))
4620 IF A-X+B-Y <> 0 GOTO 4660
4630 PRINT
4640 PRINT "** THAT'S NOT A DIRECTION, ";R$(RC);"!"
4650 GOTO 2920
4660 PRINT
4670 PRINT "THE LAMP SHINES INTO (";X;",";Y;") LEVEL";Z;"."
4680 PRINT
4690 L(FND(Z))=FNE(L(FND(Z)))
4700 PRINT "THERE YOU WILL FIND ";C$(L(FND(Z)));"."
4710 X=A : Y=B
4720 GOTO 2920
4730 REM
4740 REM   TAKE A DRINK FROM A POOL
4750 REM
4760 IF L(FND(Z))=5 GOTO 4800
4770 PRINT
4780 PRINT "** IF YOU WANT A DRINK, FIND A POOL!"
4790 GOTO 2920
4800 Q=FNA(8)
4810 PRINT
4820 PRINT "YOU TAKE A DRINK AND ";
4830 IF Q < 7 THEN PRINT "FEEL ";
4840 ON Q GOTO 4850,4860,4870,4880,4890,4900,4910,4930
4850 ST=FNC(ST+FNA(3)) : PRINT "STRONGER." : GOTO 2920
4860 ST=ST-FNA(3) : PRINT "WEAKER." : ON (1-(ST<1)) GOTO 2920,8840
4870 IQ=FNC(IQ+FNA(3)) : PRINT "SMARTER." : GOTO 2920
4880 IQ=IQ-FNA(3) : PRINT "DUMBER." : ON (1-(IQ<1)) GOTO 2920,8840
4890 DX=FNC(DX+FNA(3)) : PRINT "NIMBLER." : GOTO 2920
4900 DX=DX-FNA(3) : PRINT "CLUMSIER." : ON (1-(DX<1)) GOTO 2920,8840
4910 Q=FNA(4) : IF Q=RC GOTO 4910
4920 RC=Q : PRINT "BECOME A ";R$(RC);"." : GOTO 2920
4930 SX=1-SX : PRINT "TURN INTO A "; : IF SX=0 THEN PRINT "FE";
4940 PRINT "MALE ";R$(RC);"!" : GOTO 2920
4950 IF L(FND(Z)) <> 6 GOTO 4990
4960 PRINT
4970 PRINT "YOU OPEN THE CHEST AND"
4980 GOTO 5250
4990 IF L(FND(Z)) <> 12 GOTO 5030
5000 PRINT
5010 PRINT "YOU OPEN THE BOOK AND"
5020 GOTO 5060
5030 PRINT
5040 PRINT "** THE ONLY THING OPENED WAS YOUR BIG MOUTH!"
5050 GOTO 2920
5060 ON FNA(6) GOTO 5070,5100,5120,5140,5170,5200
5070 PRINT "FLASH! OH NO! YOU ARE NOW A BLIND ";R$(RC);"!"
5080 BL=1
5090 GOTO 5230
5100 PRINT "IT'S ANOTHER VOLUME OF ZOT'S POETRY! - YECH!!"
5110 GOTO 5230
5120 PRINT "IT'S AN OLD COPY OF PLAY";R$(FNA(4));"!"
5130 GOTO 5230
5140 PRINT "IT'S A MANUAL OF DEXTERITY!"
5150 DX=18
5160 GOTO 5230
5170 PRINT "IT'S A MANUAL OF STRENGTH!"
5180 ST=18
5190 GOTO 5230
5200 PRINT "THE BOOK STICKS TO YOUR HANDS -"
5210 PRINT "NOW YOU ARE UNABLE TO DRAW YOUR WEAPON!"
5220 BF=1
5230 L(FND(Z))=1
5240 GOTO 2920
5250 ON FNA(4) GOTO 5260,5300,5340,5300
5260 PRINT "KABOOM! IT EXPLODES!!"
5270 Q=FNA(6)
5280 GOSUB 8740
5290 ON (1-(ST<1)) GOTO 5230,8840
5300 Q=FNA(1000)
5310 PRINT "FIND";Q;"GOLD PIECES!"
5320 GP=GP+Q
5330 GOTO 5230
5340 PRINT "GAS!! YOU STAGGER FROM THE ROOM!"
5350 L(FND(Z))=1
5360 T=T+20
5370 O$=MID$("NSEW",FNA(4),1)
5380 GOTO 3900
5390 IF L(FND(Z))=11 GOTO 5430
5400 PRINT
5410 PRINT "** IT'S HARD TO GAZE WITHOUT AN ORB!"
5420 GOTO 2920
5430 PRINT
5440 PRINT "YOU SEE ";
5450 ON FNA(6) GOTO 5460,5480,5500,5520,5590,5630
5460 PRINT "YOURSELF IN A BLOODY HEAP!"
5470 ST=ST-FNA(2) : ON (1-(ST<1)) GOTO 2920,8840
5480 PRINT "YOURSELF DRINKING FROM A POOL AND BECOMING ";C$(12+FNA(13));"!"
5490 GOTO 2920
5500 PRINT C$(12+FNA(13));" GAZING BACK AT YOU!"
5510 GOTO 2920
5520 A=X : B=Y : C=Z
5530 X=FNA(8) : Y=FNA(8) : Z=FNA(8)
5540 Q=FNE(L(FND(Z)))
5550 L(FND(Z))=Q
5560 PRINT C$(Q);" AT (";X;",";Y;") LEVEL";Z;"."
5570 X=A : Y=B : Z=C
5580 GOTO 2920
5590 A=FNA(8) : B=FNA(8) : C=FNA(8)
5600 IF FNA(8) < 4 THEN A=O(1) : B=O(2) : C=O(3)
5610 PRINT "***THE ORB OF ZOT*** AT (";A;",";B;") LEVEL";C;"!"
5620 GOTO 2920
5630 PRINT "A SOAP OPERA RERUN!"
5640 GOTO 2920
5650 IF RF <> 0 GOTO 5690
5660 PRINT
5670 PRINT "** YOU CAN'T TELEPORT WITHOUT THE RUNESTAFF!"
5680 GOTO 2920
5690 Z$="X-COORDINATE"
5700 GOSUB 9990
5710 X=Q
5720 Z$="Y-COORDINATE"
5730 GOSUB 9990
5740 Y=Q
5750 Z$="Z-COORDINATE"
5760 GOSUB 9990
5770 Z=Q
5780 O$="T"
5790 GOTO 5920
5800 PRINT
5810 PRINT "DO YOU REALLY WANT TO QUIT NOW";
5820 GOSUB 9850
5830 PRINT
5840 IF O$="Y" GOTO 5870
5850 PRINT "** THEN DON'T SAY THAT YOU DO!"
5860 GOTO 2920
5870 PRINT
5880 GOTO 9080
5890 REM
5900 REM   DISPLAY STATUS INFORMATION
5910 REM
5920 PRINT
5930 IF BL=0 THEN GOSUB 10160 : PRINT
5940 PRINT "STRENGTH =";ST;" INTELLIGENCE =";IQ;" DEXTERITY =";DX
5950 PRINT "TREASURES =";TC;" FLARES =";FL;" GOLD PIECES =";GP
5960 PRINT "WEAPON = ";W$(WV+1);"  ARMOR = ";W$(AV+5);
5970 IF LF=1 THEN PRINT "  AND A LAMP";
5980 PRINT
5990 WC=0
6000 Q=FNE(L(FND(Z)))
6010 L(FND(Z))=Q
6020 Z$="YOU NOW HAVE"
6030 PRINT
6040 PRINT "HERE YOU FIND ";C$(Q);"."
6050 IF (Q<7) OR (Q=11) OR (Q=12) GOTO 2920
6060 IF Q=7 THEN GP=GP+FNA(10) : PRINT Z$;GP;"." : GOTO 5230
6070 IF Q=8 THEN FL=FL+FNA(5) : PRINT Z$;FL;"." : GOTO 5230
6080 IF Q > 9 GOTO 6110
6090 IF (O(1)=X) AND (O(2)=Y) AND (O(3)=Z) THEN ON (1-(O$="T")) GOTO 3900,9370
6100 X=FNA(8) : Y=FNA(8) : Z=FNA(8) : GOTO 5920
6110 IF Q=10 THEN Z=FNB(Z+1) : GOTO 5920
6120 IF Q <= 25 OR Q >= 34 GOTO 6180
6130 PRINT
6140 PRINT "IT'S NOW YOURS!"
6150 T(Q-25)=1
6160 TC=TC+1
6170 GOTO 5230
6180 A=L(FND(Z))-12
6190 WC=0
6200 IF (A<13) OR (VF=1) GOTO 7390
6210 PRINT
6220 PRINT "YOU MAY TRADE WITH, ATTACK, OR IGNORE THE VENDOR."
6230 GOSUB 9830
6240 IF O$="I" GOTO 2920
6250 IF O$ <> "A" GOTO 6300
6260 VF=1
6270 PRINT
6280 PRINT "YOU'LL BE SORRY THAT YOU DID THAT!"
6290 GOTO 7390
6300 IF O$="T" GOTO 6340
6310 PRINT
6320 PRINT "** NICE SHOT, ";R$(RC);"!"
6330 GOTO 6210
6340 FOR Q=1 TO 8
6350 A=FNA(Q*1500)
6360 IF T(Q)=0 GOTO 6420
6370 PRINT
6380 PRINT "DO YOU WANT TO SELL ";C$(Q+25);" FOR";A;"GP'S";
6390 GOSUB 9850
6400 IF O$="Y" THEN TC=TC-1 : T(Q)=0 : GP=GP+A : GOTO 6420
6410 IF O$ <> "N" THEN PRINT Y$ : GOTO 6370
6420 NEXT Q
6430 IF GP >= 1000 GOTO 6470
6440 PRINT
6450 PRINT "YOU'RE TOO POOR TO TRADE, ";R$(RC);"."
6460 GOTO 2920
6470 IF GP < 1250 GOTO 6970
6480 PRINT
6490 PRINT "OK, ";R$(RC);", YOU HAVE";GP;"GP'S AND ";W$(AV+5);" ARMOR."
6500 PRINT
6510 Z$="ARMOR"
6520 GOSUB 10130
6530 PRINT "NOTHING<0> LEATHER<1250> ";
6540 IF GP > 1499 THEN PRINT "CHAINMAIL<1500> ";
6550 IF GP > 1999 THEN PRINT "PLATE<2000>";
6560 PRINT
6570 GOSUB 9830
6580 PRINT
6590 IF O$="N" GOTO 6720
6600 IF O$="L" THEN GP=GP-1250 : AV=1 : AH=7 : GOTO 6720
6610 IF O$ <> "C" OR GP >= 1500 GOTO 6640
6620 PRINT "** YOU HAVEN'T GOT THAT MUCH CASH ON HAND!"
6630 GOTO 6500
6640 IF O$="C" THEN GP=GP-1500 : AV=2 : AH=14 : GOTO 6720
6650 IF O$ <> "P" OR GP >= 2000 GOTO 6680
6660 PRINT "** YOU CAN'T AFFORD PLATE ARMOR!"
6670 GOTO 6500
6680 IF O$="P" THEN GP=GP-2000 : AV=3 : AH=21 : GOTO 6720
6690 PRINT
6700 PRINT "** DON'T BE SILLY. CHOOSE A SELECTION."
6710 GOTO 6560
6720 IF GP < 1250 GOTO 6970
6730 PRINT
6740 PRINT"YOU HAVE";GP;"GP'S LEFT WITH ";W$(WV+1);" IN HAND."
6750 PRINT
6760 Z$="WEAPON"
6770 GOSUB 10130
6780 PRINT "NOTHING<0> DAGGER<1250> ";
6790 IF GP > 1499 THEN PRINT "MACE<1500> ";
6800 IF GP > 1999 THEN PRINT "SWORD<2000>";
6810 PRINT
6820 GOSUB 9830
6830 PRINT
6840 IF O$="N" GOTO 6970
6850 IF O$="D" THEN GP=GP-1250 : WV=1 : GOTO 6970
6860 IF O$ <> "M" OR GP >= 1500 GOTO 6890
6870 PRINT "** SORRY SIR, I'M AFRAID I DON'T GIVE CREDIT!"
6880 GOTO 6750
6890 IF O$="M" THEN GP=GP-1500 : WV=2 : GOTO 6970
6900 IF O$ <> "S" OR GP >= 2000 GOTO 6940
6910 PRINT "** YOUR DUNGEON EXPRESS CARD - ";
6920 PRINT "YOU LEFT HOME WITHOUT IT!"
6930 GOTO 6750
6940 IF O$="S" THEN GP=GP-2000 : WV=3 : GOTO 6970
6950 PRINT "** TRY CHOOSING A SELECTION!"
6960 GOTO 6810
6970 IF GP < 1000 GOTO 2920
6980 Z$="STRENGTH"
6990 GOSUB 10070
7000 IF O$ <> "Y" GOTO 7060
7010 GP=GP-1000
7020 ST=FNC(ST+FNA(6))
7030 Q=ST
7040 GOSUB 10100
7050 GOTO 6970
7060 IF O$ <> "N" THEN PRINT Y$ : GOTO 6980
7070 IF GP < 1000 GOTO 2920
7080 Z$="INTELLIGENCE"
7090 GOSUB 10070
7100 IF O$ <> "Y" GOTO 7160
7110 GP=GP-1000
7120 IQ=FNC(IQ+FNA(6))
7130 Q=IQ
7140 GOSUB 10100
7150 GOTO 7070
7160 IF O$ <> "N" THEN PRINT Y$ : GOTO 7080
7170 IF GP < 1000 GOTO 2920
7180 Z$="DEXTERITY"
7190 GOSUB 10070
7200 IF O$ <> "Y" GOTO 7260
7210 GP=GP-1000
7220 DX=FNC(DX+FNA(6))
7230 Q=DX
7240 GOSUB 10100
7250 GOTO 7170
7260 IF O$ <> "N" THEN PRINT Y$ : GOTO 7180
7270 IF (GP<1000) OR (LF=1) GOTO 2920
7280 PRINT
7290 PRINT "DO YOU WANT TO BUY A LAMP FOR 1000 GP'S";
7300 GOSUB 9850
7310 IF O$ <> "Y" GOTO 7370
7320 GP=GP-1000
7330 LF=1
7340 PRINT
7350 PRINT "IT'S GUARANTEED TO OUTLIVE YOU!"
7360 GOTO 2920
7370 IF O$ <> "N" THEN PRINT Y$ : GOTO 7280
7380 GOTO 2920
7390 Q1=1+INT(A/2) : Q2=A+2 : Q3=1
7400 IF (C(1,4)>T(1)) OR (BL=1) OR (DX<FNA(9)+FNA(9)) GOTO 8420
7410 PRINT
7420 PRINT "YOU'RE FACING ";C$(A+12);"!"
7430 PRINT
7440 PRINT "YOU MAY ATTACK OR RETREAT."
7450 IF Q3=1 THEN PRINT "YOU CAN ALSO ATTEMPT A BRIBE."
7460 IF IQ > 14 THEN PRINT "YOU CAN ALSO CAST A SPELL."
7470 PRINT
7480 PRINT "YOUR STRENGTH IS";ST;"AND YOUR DEXTERITY IS";DX;"."
7490 GOSUB 9830
7500 IF O$ <> "A" GOTO 7910
7510 IF WV <> 0 GOTO 7550
7520 PRINT
7530 PRINT "** POUNDING ON ";C$(A+12);" WON'T HURT IT!"
7540 GOTO 8420
7550 IF BF <> 1 GOTO 7590
7560 PRINT
7570 PRINT "** YOU CAN'T BEAT IT TO DEATH WITH A BOOK!"
7580 GOTO 8420
7590 IF DX >= FNA(20)+(3*BL) GOTO 7630
7600 PRINT
7610 PRINT "YOU MISSED, TOO BAD!"
7620 GOTO 8420
7630 Z$=RIGHT$(C$(A+12),LEN(C$(A+12))-2)
7640 IF LEFT$(Z$,1)=" " THEN Z$=MID$(Z$,2)
7650 PRINT
7660 PRINT "YOU HIT THE EVIL ";Z$;"!"
7670 Q2=Q2-WV
7680 IF (A <> 9 AND A <> 12) GOTO 7730
7690 IF FNA(8) <> 1 GOTO 7730
7700 PRINT
7710 PRINT "OH NO! YOUR ";W$(WV+1);" BROKE!"
7720 WV=0
7730 IF Q2 > 0 GOTO 8420
7740 PRINT
7750 MC=MC-1
7760 PRINT C$(A+12);" LIES DEAD AT YOUR FEET!"
7770 IF H > T-60 GOTO 7810
7780 PRINT
7790 PRINT "YOU SPEND AN HOUR EATING ";C$(A+12);E$(FNA(8));"."
7800 H=T
7810 IF X <> R(1) OR Y <> R(2) OR Z <> R(3) THEN ON (1-(A=13)) GOTO 7860,9630
7820 PRINT
7830 PRINT "GREAT ZOT! YOU'VE FOUND THE RUNESTAFF!";CHR$(7)
7840 R(1)=0
7850 RF=1
7860 Q=FNA(1000)
7870 PRINT
7880 PRINT "YOU NOW GET HIS HOARD OF";Q;"GP'S"
7890 GP=GP+Q
7900 GOTO 5230
7910 IF O$="R" GOTO 8420
7920 IF O$ <> "C" GOTO 8210
7930 IF IQ >= 15 OR Q3 <= 1 GOTO 7970
7940 PRINT
7950 PRINT "** YOU CAN'T CAST A SPELL NOW!"
7960 GOTO 7410
7970 PRINT
7980 PRINT "WHICH SPELL (WEB, FIREBALL, DEATHSPELL)";
7990 GOSUB 9850
8000 PRINT
8010 IF O$ <> "W" GOTO 8050
8020 ST=ST-1
8030 WC=FNA(8)+1
8040 ON (1-(ST<1)) GOTO 8420,8840
8050 IF O$ <> "F" GOTO 8140
8060 Q=FNA(7)+FNA(7)
8070 ST=ST-1
8080 IQ=IQ-1
8090 IF (IQ < 1) OR (ST < 1) GOTO 8840
8100 PRINT "IT DOES";Q;"POINTS WORTH OF DAMAGE."
8110 PRINT
8120 Q2=Q2-Q
8130 GOTO 7730
8140 IF O$="D" GOTO 8180
8150 PRINT
8160 PRINT "** TRY ONE OF THE OPTIONS GIVEN."
8170 GOTO 7410
8180 PRINT "DEATH . . . ";
8190 IF IQ < FNA(4)+15 THEN PRINT "YOURS!" : IQ=0 : GOTO 8840
8200 PRINT "HIS!" : Q2=0 : GOTO 7740
8210 IF O$="B" AND Q3 <= 1 GOTO 8250
8220 PRINT
8230 PRINT "** CHOOSE ONE OF THE OPTIONS LISTED."
8240 GOTO 7410
8250 IF TC <> 0 GOTO 8290
8260 PRINT
8270 PRINT "ALL I WANT IS YOUR LIFE!"
8280 GOTO 8420
8290 Q=FNA(8)
8300 IF T(Q)=0 GOTO 8290
8310 PRINT
8320 PRINT "I WANT ";C$(Q+25);". WILL YOU GIVE IT TO ME";
8330 GOSUB 9850
8340 IF O$="N" GOTO 8420
8350 IF O$ <> "Y" THEN PRINT Y$ : GOTO 8310
8360 T(Q)=0
8370 TC=TC-1
8380 PRINT
8390 PRINT "OK, JUST DON'T TELL ANYONE ELSE."
8400 VF=VF+(L(FND(Z))=25)
8410 GOTO 2920
8420 Q3=2
8430 IF WC <= 0 GOTO 8460
8440 WC=WC-1
8450 IF WC=0 THEN PRINT : PRINT "THE WEB JUST BROKE!"
8460 Z$=RIGHT$(C$(A+12),LEN(C$(A+12))-2)
8470 IF LEFT$(Z$,1)=" " THEN Z$=MID$(Z$,2)
8480 IF WC <= 0 GOTO 8520
8490 PRINT
8500 PRINT "THE ";Z$;" IS STUCK AND CAN'T ATTACK NOW!"
8510 GOTO 8630
8520 PRINT
8530 PRINT "THE ";Z$;" ATTACKS!"
8540 IF DX < FNA(7)+FNA(7)+FNA(7)+3*BL GOTO 8580
8550 PRINT
8560 PRINT "WHAT LUCK, HE MISSED YOU!"
8570 GOTO 8630
8580 PRINT
8590 PRINT "OUCH! HE HIT YOU!"
8600 Q=Q1
8610 GOSUB 8740
8620 IF ST < 1 GOTO 8840
8630 IF O$ <> "R" GOTO 7410
8640 PRINT
8650 PRINT "YOU HAVE ESCAPED!"
8660 PRINT
8670 PRINT "DO YOU WANT TO GO NORTH, SOUTH, EAST, OR WEST";
8680 GOSUB 9850
8690 IF O$="N" OR O$="S" OR O$="E" OR O$="W" GOTO 3900
8700 PRINT
8710 PRINT "** DON'T PRESS YOUR LUCK, ";R$(RC);"!"
8720 PRINT
8730 GOTO 8670
8740 IF AV=0 GOTO 8820
8750 Q=Q-AV
8760 AH=AH-AV
8770 IF Q < 0 THEN AH=AH-Q : Q=0
8780 IF AH >= 0 GOTO 8820
8790 AH=0 : AV=0
8800 PRINT
8810 PRINT "YOUR ARMOR HAS BEEN DESTROYED . . . GOOD LUCK!"
8820 ST=ST-Q
8830 RETURN
8840 PRINT CHR$(7)
8850 GOSUB 9770
8860 PRINT "A NOBLE EFFORT, OH FORMERLY LIVING ";R$(RC);"!"
8870 PRINT
8880 PRINT "YOU DIED DUE TO LACK OF ";
8890 IF ST < 1 THEN PRINT "STRENGTH."
8900 IF IQ < 1 THEN PRINT "INTELLIGENCE."
8910 IF DX < 1 THEN PRINT "DEXTERITY."
8920 PRINT
8930 Q3=1
8940 PRINT "AT THE TIME YOU DIED, YOU HAD :"
8950 GOTO 9130
8960 Q3=0
8970 PRINT
8980 PRINT "YOU LEFT THE CASTLE WITH";
8990 IF OF=0 THEN PRINT "OUT";
9000 PRINT " THE ORB OF ZOT."
9010 PRINT
9020 IF OF=0 GOTO 9080
9030 PRINT
9040 PRINT "AN INCREDIBLY GLORIOUS VICTORY!!"
9050 PRINT
9060 PRINT "IN ADDITION, YOU GOT OUT WITH THE FOLLOWING :"
9070 GOTO 9120
9080 PRINT
9090 PRINT "A LESS THAN AWE-INSPIRING DEFEAT."
9100 PRINT
9110 PRINT "WHEN YOU LEFT THE CASTLE, YOU HAD :"
9120 IF Q3=0 THEN PRINT "YOUR MISERABLE LIFE!"
9130 FOR Q=1 TO 8
9140 IF T(Q)=1 THEN PRINT C$(Q+25)
9150 NEXT Q
9160 PRINT W$(WV+1);" AND ";W$(AV+5);
9170 IF LF=1 THEN PRINT " AND A LAMP";
9180 PRINT
9190 PRINT "YOU ALSO HAD";FL;"FLARES AND";GP;"GOLD PIECES"
9200 IF RF=1 THEN PRINT "AND THE RUNESTAFF"
9210 PRINT
9220 PRINT "AND IT TOOK YOU";T;"TURNS!"
9230 PRINT
9240 PRINT "ARE YOU FOOLISH ENOUGH TO WANT TO PLAY AGAIN";
9250 GOSUB 9850
9260 PRINT
9270 IF O$ <> "Y" THEN GOTO 9330
9280 PRINT "SOME ";R$(RC);"S NEVER LEARN!"
9290 PRINT
9300 PRINT "PLEASE BE PATIENT WHILE THE CASTLE IS RESTOCKED."
9310 PRINT
9320 GOTO 1240
9330 IF O$ <> "N" THEN PRINT Y$ : GOTO 9240
9340 PRINT "MAYBE DUMB ";R$(RC);" IS NOT SO DUMB AFTER ALL!"
9350 PRINT
9360 GOTO 10180
9370 PRINT
9380 PRINT "GREAT UNMITIGATED ZOT!"
9390 PRINT
9400 PRINT "YOU JUST FOUND ***THE ORB OF ZOT***!"
9410 PRINT
9420 PRINT "THE RUNESTAFF HAS DISAPPEARED!"
9430 RF=0
9440 OF=1
9450 O(1)=0
9460 GOTO 5230
9470 DATA AN EMPTY ROOM,.,THE ENTRANCE,E,STAIRS GOING UP,U
9480 DATA STAIRS GOING DOWN,D,A POOL,P,A CHEST,C,GOLD PIECES,G
9490 DATA FLARES,F,A WARP,W,A SINKHOLE,S,A CRYSTAL ORB,O
9500 DATA A BOOK,B,A KOBOLD,M,AN ORC,M,A WOLF,M,A GOBLIN,M,AN OGRE,M
9510 DATA A TROLL,M,A BEAR,M,A MINOTAUR,M,A GARGOYLE,M,A CHIMERA,M
9520 DATA A BALROG,M,A DRAGON,M,A VENDOR,V,THE RUBY RED,T
9530 DATA THE NORN STONE,T,THE PALE PEARL,T,THE OPAL EYE,T
9540 DATA THE GREEN GEM,T,THE BLUE FLAME,T,THE PALANTIR,T,THE SILMARIL,T
9550 DATA X,"?",NO WEAPON," SANDWICH"
9560 DATA DAGGER," STEW",MACE," SOUP",SWORD," BURGER",NO ARMOR," ROAST"
9570 DATA LEATHER," FILET",CHAINMAIL," TACO",PLATE," PIE"
9580 DATA HOBBIT,ELF,MAN,DWARF
9590 X=FNA(8) : Y=FNA(8)
9600 IF L(FND(Z)) <> 101 GOTO 9590
9610 L(FND(Z))=Q
9620 RETURN
9630 PRINT
9640 PRINT "YOU GET ALL HIS WARES :"
9650 PRINT "PLATE ARMOR"
9660 AV=3 : AH=21
9670 PRINT "A SWORD"
9680 WV=3
9690 PRINT "A STRENGTH POTION"
9700 ST=FNC(ST+FNA(6))
9710 PRINT "AN INTELLIGENCE POTION"
9720 IQ=FNC(IQ+FNA(6))
9730 PRINT "A DEXTERITY POTION"
9740 DX=FNC(DX+FNA(6))
9750 IF LF=0 THEN PRINT "A LAMP" : LF=1
9760 GOTO 7860
9770 FOR Q=1 TO 64
9780 PRINT "*";
9790 NEXT Q
9800 PRINT
9810 PRINT
9820 RETURN
9830 PRINT
9840 PRINT "YOUR CHOICE";
9850 INPUT O$
9860 O$=LEFT$(O$,1)
9870 RETURN
9880 PRINT "HOW MANY POINTS DO YOU WISH TO ADD TO YOUR ";Z$;
9890 INPUT O$
9900 PRINT
9910 Q=VAL(O$)
9920 IF Q=0 AND ASC(O$) <> 48 THEN Q=-1
9930 IF Q<0 OR Q>OT OR Q<>INT(Q) THEN PRINT "** "; : GOTO 9880
9940 OT=OT-Q
9950 RETURN
9960 INPUT O$
9970 Q=INT(VAL(O$))
9980 RETURN
9990 PRINT
10000 PRINT Z$;
10010 INPUT O$
10020 Q=INT(VAL(O$))
10030 IF Q > 0 AND Q < 9 THEN RETURN
10040 PRINT
10050 PRINT "** TRY A NUMBER FROM 1 TO 8."
10060 GOTO 9990
10070 PRINT
10080 PRINT "DO YOU WANT TO BUY A POTION OF ";Z$;" FOR 1000 GP'S";
10090 GOTO 9850
10100 PRINT
10110 PRINT "YOUR ";Z$;" IS NOW";Q;"."
10120 RETURN
10130 PRINT
10140 PRINT "THESE ARE THE TYPES OF ";Z$;" YOU CAN BUY :"
10150 RETURN
10160 PRINT "YOU ARE AT (";X;",";Y;") LEVEL";Z;"."
10170 RETURN
10180 IF SAMP$="YES" THEN CHAIN "SAMPLES",1000 ELSE  END

XWING.BAS

10 KEY OFF:CLS
20 SCREEN 0
30 WIDTH 40
40 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
50 PRINT"░┌───────────────────────────────────┐░"
60 PRINT"░│                                   │░"
70 PRINT"░│            2060-A.BAS             │░"
80 PRINT"░│              XWING                │░"
90 PRINT"░│                                   │░"
100 PRINT"░│                                   │░"
110 PRINT"░│ BROUGHT TO YOU BY THE MEMBERS OF  │░"
120 PRINT"░│      ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄      │░"
130 PRINT"░│        █   █   █ █     █   █      │░"
140 PRINT"░│        █   █▄▄▄█ █     █   █      │░"
150 PRINT"░│        █   █     █     █   █      │░"
160 PRINT"░│      ▄▄█▄▄ █     █▄▄▄▄ █▄▄▄█      │░"
170 PRINT"░│                                   │░"
180 PRINT"░│      International PC Owners      │░"
190 PRINT"░│                                   │░"
200 PRINT"░│P.O. Box 10426, Pittsburgh PA 15234│░"
210 PRINT"░│                                   │░"
220 PRINT"░└───────────────────────────────────┘░"
230 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
240 PRINT
250 PRINT "       PRESS ANY KEY TO CONTINUE
260 A$=INKEY$: IF A$="" THEN 260
270 WIDTH 80
280 CLS
1000  REM * STAR PILOT GAME *
1010  REM * WRITTEN BY GEORGE BLANK, LEECHBURG, PA. *
1020  REM * FOR  PUBLIC DOMAIN UNLESS MOVIEMAKERS OBJECT *
1030  REM * VERSION 4.0    SEPTEMBER 25,1978 *
1040  REM * MODIFIED TO RUN ON THE IBM PC BY ERNEST *
1050  REM * SMITH AND RAYMOND ROGERS, HOUSTON, TEXAS *
1060  REM * DECEMBER 82 *
1070  KEY OFF:CLS:WIDTH 80:DEF SEG=0:A=PEEK(&H410):POKE &H410,(A AND &HCF) OR &H20
1080  WIDTH 40:SCREEN 1:SCREEN 0:WIDTH 80:WIDTH 40:SCREEN 1:COLOR 0,1
1090  GOTO 1200
1100  V=V-1:IF V<-3 THEN V=-3
1110  RETURN
1120  W=W-1:IF W<-5 THEN W=-5
1130  RETURN
1140  W=W+1:IF W>5 THEN W=5
1150  RETURN
1160  V=V+1:IF V>3 THEN V=3
1170  RETURN
1180  KEY(1) ON:KEY(2) ON:KEY(11) ON:KEY(12) ON:KEY(13) ON:KEY(14) ON:RETURN
1190  KEY(1) STOP:KEY(2) STOP:KEY(11) STOP:KEY(12) STOP:KEY(13) STOP:KEY(14) STOP:RETURN
1200    LOCATE 8,1:PRINT"***************************************";
1210    PRINT"*                                     *";
1220    PRINT"*      X W I N G   F I G H T E R      *";
1230    PRINT"*                                     *";
1240    PRINT"***************************************";
1250  SOUND 525.25,18.2:SOUND 783.99,18.2/2:SOUND 698.46,18.2/6:SOUND 659.26,18.2/6:SOUND 587.33,18.2/6:SOUND 1046.6,18.2:SOUND 783.99,18.2/2:SOUND 698.46,18.2/6:SOUND 659.26,18.2/6:SOUND 587.33,18.2/6
1260  SOUND 1046.5,18.2:SOUND 783.99,18.2/2:SOUND 698.46,18.2/6:SOUND 659.26,18.2/6:SOUND 698.46,18.2/6:SOUND 587.33,18.2
1270 LOCATE 16,1:PRINT"DO YOU WANT INSTRUCTIONS (Y OR N)?";
1280  K$=INKEY$:IF K$="Y" OR K$="y" GOTO 6930
1290  IF K$<>"N" AND K$<>"n" GOTO 1270
1300 CLS:CLEAR:DEFINT A-Z:DEFSNG O,G,J,S
1310 RANDOMIZE(VAL(RIGHT$(TIME$,2)))
1320  ON KEY(1) GOSUB 5350:ON KEY(2) GOSUB 5750:ON KEY(11) GOSUB 1100:ON KEY(12) GOSUB 1120:ON KEY(13) GOSUB 1140:ON KEY(14) GOSUB 1160
1330  LOCATE 8,1:PRINT "IMPERIAL FIGHTER:  ":DRAW "C2;BM145,59;M+0,0;BM+10,1;M+0,-2;M+2,2;M+0,-2;BM+10,-1;M+0,4;BM+6,-4;M+0,4;M+0,-2;M-6,0"
1340  DIM IM(6):DIM IM1(6):DIM IM2(6):DIM IM3(6):GET (145,59)-(145,59),IM:GET (145,59)-(145,59),IM1:GET (155,58)-(157,60),IM2:GET (167,57)-(173,61),IM3
1350  DIM IM4(13):IM4(0)=22:IM4(1)=7:IM4(2)=128:IM4(3)=-32760:IM4(4)=2048:IM4(5)=128:IM4(6)=-22008:IM4(7)=-22358:IM4(8)=128:IM4(9)=-32760:IM4(10)=2048:IM4(11)=128:IM4(12)=8
1360  DIM IM5(20):IM5(0)=26:IM5(1)=9:IM5(2)=128:IM5(3)=-32768!:IM5(4)=128:IM5(5)=-32768!:IM5(6)=128:IM5(7)=-32768!:IM5(8)=128:IM5(9)=-32768!:IM5(10)=-21846:IM5(11)=-32598:IM5(12)=128
1370  IM5(13)=-32768!:IM5(14)=128:IM5(15)=-32768!:IM5(16)=128:IM5(17)=-32768!:IM5(18)=128:IM5(19)=-32768!
1380  DIM IM6(44):IM6(0)=34:IM6(1)=17:IM6(2)=2048:IM6(5)=32:IM6(7)=-32768!:IM6(9)=512:IM6(12)=-32760:IM6(14)=8192:IM6(15)=32:IM6(17)=2176:IM6(20)=2:IM6(23)=128:IM6(25)=8192:IM6(28)=8
1390  IM6(29)=128:IM6(30)=512:IM6(31)=2:IM6(33)=-30720:IM6(36)=32:IM6(38)=-32768!:IM6(40)=512:IM6(43)=8
1400  DIM IM7(44)
1410  IM7(0)=30:IM7(1)=21:IM7(2)=-22006:IM7(3)=-22358:IM7(4)=32:IM7(5)=8192:IM7(6)=-21846:IM7(7)=-32598:IM7(8)=2048:IM7(9)=128
1420  IM7(10)=2048:IM7(11)=128:IM7(12)=2048:IM7(13)=128:IM7(14)=2048:IM7(15)=128:IM7(16)=2048:IM7(17)=128:IM7(18)=2048:IM7(19)=128
1430  IM7(20)=2560:IM7(21)=32:IM7(22)=2048:IM7(23)=128:IM7(24)=8704:IM7(25)=128:IM7(26)=2048:IM7(27)=128:IM7(28)=2048:IM7(29)=128
1440  IM7(30)=2048:IM7(31)=128:IM7(32)=2048:IM7(33)=128:IM7(34)=2048:IM7(35)=128:IM7(36)=2048:IM7(37)=128:IM7(38)=-22518:IM7(39)=-22358
1450  IM7(40)=2592:IM7(41)=8192:IM7(42)=-21846:IM7(43)=-32598
1460  DIM IM8(102)
1470  IM8(0)=50:IM8(1)=29:IM8(3)=2048:IM8(7)=10:IM8(10)=2048:IM8(11)=128:IM8(14)=8200:IM8(17)=2048:IM8(18)=8:IM8(21)=514
1480  IM8(25)=-32640:IM8(28)=8192:IM8(29)=32:IM8(32)=2184:IM8(35)=514:IM8(36)=2:IM8(38)=2048:IM8(39)=-32760:IM8(40)=128:IM8(42)=8352
1490  IM8(43)=-32736:IM8(45)=8194:IM8(46)=2176:IM8(47)=128:IM8(48)=512:IM8(49)=34:IM8(50)=-32766:IM8(51)=128:IM8(52)=10250:IM8(54)=-24448
1500  IM8(55)=8704:IM8(56)=32:IM8(58)=136:IM8(59)=-24446:IM8(61)=-32256:IM8(62)=514:IM8(63)=128:IM8(65)=-30592:IM8(66)=8:IM8(68)=8192
1510  IM8(69)=8224:IM8(72)=8200:IM8(73)=128:IM8(75)=512:IM8(76)=34:IM8(79)=-22528:IM8(80)=128:IM8(83)=8224:IM8(86)=2048:IM8(87)=8
1520  IM8(90)=2050:IM8(94)=136:IM8(97)=10240:IM8(101)=8
1530  LOCATE 10,1:PRINT "DARTH VADER     :  ":DRAW "C2;BM145,75;M+0,0;BM+10,1;M+0,-2;M+2,2;M+0,-2;BM+11,-1;M-1,1;M+0,2;M+1,1;BM+4,-4;M+1,1;M+0,2;M-1,1;BM+1,-2;M-6,0"
1540  DIM DV(6):DIM DV1(6):DIM DV2(6):DIM DV3(6):GET (145,75)-(145,75),DV:GET (145,75)-(145,75),DV1:GET (155,74)-(157,76),DV2:GET (167,73)-(173,77),DV3
1550  DIM DV4(13)
1560  DV4(0)=22:DV4(1)=7:DV4(2)=8:DV4(3)=8320:DV4(4)=8192:DV4(5)=128:DV4(6)=-22008:DV4(7)=-22358:DV4(8)=128:DV4(9)=8200
1570  DV4(10)=8192:DV4(11)=8:DV4(12)=128
1580  DIM DV5(20)
1590  DV5(0)=26:DV5(1)=9:DV5(2)=8:DV5(3)=8:DV5(4)=32:DV5(5)=2:DV5(6)=128:DV5(7)=-32768!:DV5(8)=128:DV5(9)=-32768!
1600  DV5(10)=-21846:DV5(11)=-32598:DV5(12)=128:DV5(13)=-32768!:DV5(14)=128:DV5(15)=-32768!:DV5(16)=32:DV5(17)=2:DV5(18)=8:DV5(19)=8
1610  DIM DV6(32)
1620  DV6(0)=30:DV6(1)=15:DV6(2)=-22528:DV6(4)=2:DV6(6)=8:DV6(8)=34:DV6(10)=-32640:DV6(12)=8320:DV6(14)=2176:DV6(16)=512
1630  DV6(19)=2176:DV6(21)=2080:DV6(23)=2056:DV6(25)=8194:DV6(27)=-32768!:DV6(29)=2:DV6(31)=168
1640  DIM DV7(44)
1650  DV7(0)=32:DV7(1)=21:DV7(2)=10752:DV7(3)=-24406:DV7(4)=-32768!:DV7(5)=-30720:DV7(6)=-22014:DV7(7)=682:DV7(8)=520:DV7(9)=-30688
1660  DV7(10)=544:DV7(11)=8224:DV7(12)=512:DV7(13)=32:DV7(14)=512:DV7(15)=32:DV7(16)=512:DV7(17)=32:DV7(18)=512:DV7(19)=32
1670  DV7(20)=512:DV7(21)=136:DV7(22)=512:DV7(23)=32:DV7(24)=2048:DV7(25)=160:DV7(26)=512:DV7(27)=32:DV7(28)=512:DV7(29)=32
1680  DV7(30)=512:DV7(31)=32:DV7(32)=512:DV7(33)=32:DV7(34)=520:DV7(35)=544:DV7(36)=546:DV7(37)=2080:DV7(38)=-21888:DV7(39)=-24534
1690  DV7(40)=546:DV7(41)=-32640:DV7(42)=-22006:DV7(43)=170
1700  DIM DV8(76)
1710  DV8(0)=46:DV8(1)=25:DV8(3)=10752:DV8(4)=128:DV8(6)=-32768!:DV8(7)=32:DV8(9)=-22526:DV8(10)=8:DV8(12)=512:DV8(13)=2
1720  DV8(16)=-32640:DV8(18)=512:DV8(19)=8224:DV8(21)=2048:DV8(22)=2056:DV8(24)=8192:DV8(25)=2082:DV8(27)=-32766:DV8(28)=-30592:DV8(30)=-32248
1730  DV8(31)=10240:DV8(32)=128:DV8(33)=-30712:DV8(34)=2048:DV8(35)=128:DV8(36)=-24536:DV8(37)=2048:DV8(38)=128:DV8(39)=-32630:DV8(40)=2048
1740  DV8(41)=672:DV8(42)=-32760:DV8(44)=2184:DV8(45)=10:DV8(47)=8322:DV8(48)=32:DV8(50)=-32640:DV8(51)=128:DV8(53)=-32224:DV8(56)=-30712
1750  DV8(59)=-24062:DV8(62)=-32768!:DV8(63)=168:DV8(65)=8192:DV8(66)=136:DV8(68)=2048:DV8(69)=136:DV8(71)=512:DV8(72)=136:DV8(75)=168
1760  LOCATE 12,1:PRINT "DEATH STAR      :  ":DRAW "C3;BM145,91;M+0,0;BM+11,-1;M-1,1;M+2,0;M-1,1;BM+12,-3;M+1,0;M+1,1;M-3,0;M+0,1;M+3,0;M-1,1;M-1,0"
1770  DRAW "C3;BM+12,-5;M+2,0;M+1,1;M-4,0;M-1,1;M+6,0;M+0,1;M-6,0;M+0,1;M+6,0;M-1,1;M-4,0;M+1,1;M+2,0"
1780  DIM DS(8):DIM DS1(8):DIM DS2(8):DIM DS3(8):DIM DS4(8):GET (145,91)-(145,91),DS:GET (145,91)-(145,91),DS1:GET (155,90)-(157,92),DS2:GET (167,89)-(170,92),DS3:GET (178,87)-(184,93),DS4
1790  DIM EXPL3(18):DIM EXPL4(18):DIM EXPL5(18):DIM EXPL6(18):DIM EXPL7(18):DIM EXPL8(18)
1800  DATA 22,11,0,0,0,8194,0,-32608,-22006,2560,-32598,-22006,128,168,8706,0,0,0,0
1810  FOR I=0 TO 18:READ EXPL3(I):NEXT I
1820  DATA 22,11,-30720,2048,136,-30718,-24544,-32608,-22006,-21848,-22358,-22006,-23936,10274,-30206,2048,-32632,-30720,0
1830  FOR I=0 TO 18:READ EXPL4(I):NEXT I
1840  DATA 22,11,-30712,512,136,8194,-32760,-24416,-21974,-21976,-22358,-21974,-32608,2216,-30206,512,138,-30712,128
1850  FOR I=0 TO 18:READ EXPL5(I):NEXT I
1860  DATA 22,11,-30712,2048,136,8194,-24536,-32608,-22006,-21976,-22358,-22006,-24448,10408,8706,2048,-32632,-30712,128
1870  FOR I=0 TO 18:READ EXPL6(I):NEXT I
1880 DATA  22,11,-30688,2048,2080,8194,-32736,-32608,-21974,-22008,-22358,-22006,-24448,10408,8706,2048,-32632,-30688,32
1890  FOR I=0 TO 18:READ EXPL7(I):NEXT I
1900  DATA 22,11,-30688,2048,2184,-30718,-24544,-32608,-22006,-21848,-22358,-22006,-23936,10274,-30206,2048,-32632,-30688,32
1910  FOR I=0 TO 18:READ EXPL8(I):NEXT I
1920  LOCATE 17,1:PRINT "SELECT SKILL LEVEL FROM 0 TO 3"
1930  S$=INKEY$:IF S$<>"0" AND S$<>"1" AND S$<>"2" AND S$<>"3" GOTO 1920
1940  SKILL=VAL(S$):CLS
1950  DIM LASAR(381)
1960  LASAR(0)=148:LASAR(1)=40:LASAR(2)=64:LASAR(11)=5136:LASAR(20)=16385:LASAR(21)=16385:LASAR(29)=5120:LASAR(31)=20:LASAR(38)=256:LASAR(39)=64:LASAR(40)=256:LASAR(41)=64:LASAR(48)=20
1970  LASAR(50)=5120:LASAR(57)=16385:LASAR(60)=16385:LASAR(66)=5120:LASAR(70)=20:LASAR(75)=256:LASAR(76)=64:LASAR(79)=256:LASAR(85)=4:LASAR(89)=20480:LASAR(94)=20480:LASAR(99)=5
1980  LASAR(103)=1280:LASAR(109)=80:LASAR(113)=80:LASAR(118)=1280:LASAR(122)=5:LASAR(128)=20480:LASAR(131)=20480:LASAR(138)=5:LASAR(140)=1280:LASAR(148)=80:LASAR(150)=80
1990  LASAR(157)=1024:LASAR(159)=1:LASAR(167)=16385:LASAR(168)=5120:LASAR(177)=276:LASAR(178)=64:LASAR(186)=256:LASAR(187)=84:LASAR(196)=21505:LASAR(205)=5120:LASAR(206)=16385
2000  LASAR(214)=256:LASAR(215)=64:LASAR(216)=20:LASAR(224)=4:LASAR(225)=256:LASAR(233)=20480:LASAR(235)=20480:LASAR(242)=1280:LASAR(245)=5:LASAR(252)=80:LASAR(255)=80
2010  LASAR(261)=5:LASAR(264)=1280:LASAR(270)=20480:LASAR(274)=20480:LASAR(279)=1280:LASAR(284)=5:LASAR(289)=80:LASAR(294)=80:LASAR(298)=1:LASAR(303)=1024:LASAR(307)=5120
2020  LASAR(313)=16385:LASAR(316)=256:LASAR(317)=64:LASAR(323)=20:LASAR(326)=20:LASAR(332)=256:LASAR(333)=64:LASAR(335)=16385:LASAR(342)=5120:LASAR(344)=5120:LASAR(352)=16385
2030  LASAR(353)=256:LASAR(354)=64:LASAR(362)=20:LASAR(363)=20:LASAR(371)=256:LASAR(372)=16448:LASAR(381)=4096
2040  REM * INITIALIZE VARIABLES *
2050  M=INT(RND*61)+10:N=INT(RND*21)+10:O=INT(RND*32001)+70000!
2060  E=INT(RND*61)+10:F=INT(RND*21)+10:G=25000
2070  H=INT(RND*61)+10:I=INT(RND*21)+10:J=INT(RND*32001)+40000!
2080  Q=5:Z=3
2090  IMX=38:IMY=21:IMR1=1:IMR2=1
2100  DVX=38:DVY=21:DVR1=1:DVR2=1
2110  IF SKILL=0 THEN A1=5:A2=0:BYPASS=3
2120  IF SKILL=1 THEN A1=3:A2=0:BYPASS=2
2130  IF SKILL=2 THEN A1=2:A2=45:BYPASS=1
2140  IF SKILL=3 THEN A1=2:A2=30
2150 K$="5"
2160   LINE (1,1)-(76,42),3,B
2170  DRAW "C3;BM2,21;M+0,0;BM+6,0;M+0,0;BM+6,0;M+0,0;BM+6,0;M+0,0;BM+6,0;M+0,0;BM+6,0;M+0,0;BM+12,0;M+0,0;BM+6,0;M+0,0;BM+6,0;M+0,0;BM+6,0;M+0,0;BM+6,0;M+0,0;BM+6,0;M+0,0"
2180  DRAW "C3;BM38,3;M+0,0;BM+0,3;M+0,0;BM+0,3;M+0,0;BM+0,3;M+0,0;BM+0,3;M+0,0;BM+0,3;M+0,0;BM+0,6;M+0,0;BM+0,3;M+0,0;BM+0,3;M+0,0;BM+0,3;M+0,0;BM+0,3;M+0,0;BM+0,3;M+0,0"
2190  LOCATE 8,1:PRINT "REPUBLIC      X-WING     STAR FIGHTER"
2200  LOCATE 10,5:PRINT "TORPEDOES"
2210 LOCATE 12,1:PRINT "HOR.   VERT. DIRECTION"
2220  LOCATE 15,1:PRINT  "SPEED MACH"
2230  LOCATE 17,1:PRINT "RADAR TARGETS"
2240  LOCATE 18,8:PRINT "KM TO IMPERIAL FIGHTER"
2250  LOCATE 19,8:PRINT "KM TO DARTH VADER"
2260  LOCATE 20,8:PRINT "KM TO DEATH STAR"
2270  LOCATE 22,1:PRINT "TIME REMAINING"
2280  PLAY"T250"
2290   SEC1=VAL(RIGHT$(TIME$,2))
2300  GOSUB 1180
2310  REM * MASTER CONTROL ROUTINE *
2320  GOSUB 1190
2330  PUT (38,21),DS1
2340  LOCATE 10,1:PRINT Z
2350 LOCATE 13,1:PRINT W;"     ";-V
2360  LOCATE 15,12:PRINT Q*10
2370  GS=G-S:IF GS<0 THEN GS=0
2380  LOCATE 18,1:PRINT GS
2390  JS=J-S:IF JS<0 THEN JS=0
2400  LOCATE 19,1:PRINT JS
2410  OS=O-S:IF OS<0 THEN OS=0
2420  LOCATE 20,1:PRINT OS
2430  LOCATE 22,16:PRINT A1;":";A2NEW
2440  SOUND 37*Q,1
2450  PUT (38,21),DS1
2460  GOSUB 1180
2470  REM * DISPLAY DEATH STAR *
2480  IF O-S=30000 OR O-S>30000 GOTO 2840
2490  IF O-S<20000 AND DSTAR2=0 THEN DSTAR2=1:DSFLAG=1:DS(0)=DS2(0):DS(1)=DS2(1):DS(2)=DS2(2):DS(3)=DS2(3)
2500  IF O-S<10000 AND DSTAR3=0 THEN DSTAR3=1:DSFLAG=2:DS(0)=DS3(0):DS(1)=DS3(1):DS(2)=DS3(2):DS(3)=DS3(3)
2510  IF O-S<5000 AND DSTAR4=0 THEN DSTAR4=1:DSFLAG=3:DS(0)=DS4(0):DS(1)=DS4(1):DS(2)=DS4(2):DS(3)=DS4(3):DS(4)=DS4(4):DS(5)=DS4(5):DS(6)=DS4(6):DS(7)=DS4(7):DS(8)=DS4(8)
2520  IF FLAG1<>BYPASS THEN FLAG1=FLAG1+1:GOTO 2550
2530  FLAG1=0
2540  M=M+INT(RND*5)-2:N=N+INT(RND*5)-2
2550  M=M-W:N=N-V
2560  IF M<2  THEN  M=2+INT(RND*3)
2570  IF M>69 THEN  M=69-INT(RND*3)
2580  IF N<2  THEN  N=2+INT(RND*3)
2590  IF N>35 THEN  N=35-INT(RND*3)
2600  GOSUB 1190
2610  PUT (M,N),DS
2620  IF DSNEW=0 THEN DSNEW=1:GOTO 2680
2630  IF DSFLAG=0 GOTO 2670
2640  IF DSFLAG=1 THEN DSFLAG=0:PUT (MP,NP),DS1:GOTO 2680
2650  IF DSFLAG=2 THEN DSFLAG=0:PUT (MP,NP),DS2:GOTO 2680
2660  IF DSFLAG=3 THEN DSFLAG=0:PUT (MP,NP),DS3:GOTO 2680
2670  PUT(MP,NP),DS
2680  GOSUB 1180
2690  MP=M:NP=N
2700  IF O-S>10000 OR FLAG=1 GOTO 2840
2710  GOSUB 1190
2720  FOR K=1 TO 2
2730   LOCATE 24,1:PRINT "*** DEATH STAR WITHIN TORPEDO RANGE ***";
2740  PLAY "L2 N0"
2750   LOCATE 24,1:PRINT "                                       ";
2760  PLAY "L16 N0"
2770  NEXT K
2780   LOCATE 24,1:PRINT "*** DEATH STAR WITHIN TORPEDO RANGE ***";
2790   PLAY "L1 N0":PLAY "L1 N0"
2800   LOCATE 24,1:PRINT "                                       ";
2810  GOSUB 1180
2820  FLAG=1
2830  REM * DISPLAY IMPERIAL FIGHTER *
2840  GOSUB 1190
2850  IF G-S>26000 THEN GOSUB 1180:GOTO 3910
2860  IF G-S<20000 AND IMPFIGH2=0 THEN IMPFIGH2=1:IMFLAG=1:IM(0)=IM2(0):IM(1)=IM2(1):IM(2)=IM2(2):IM(3)=IM2(3):IMX=37:IMY=20:IMR1=2:IMR2=2
2870  IF G-S<10000 AND IMPFIGH3=0 THEN IMPFIGH3=1:IMFLAG=2:IM(0)=IM3(0):IM(1)=IM3(1):IM(2)=IM3(2):IM(3)=IM3(3):IM(4)=IM3(4):IM(5)=IM3(5):IM(6)=IM3(6):IMX=35:IMY=19:IMR1=4:IMR2=3
2880  IF FLAG2<>BYPASS THEN FLAG2=FLAG2+1:GOTO 2910
2890  FLAG2=0
2900 E=E+INT(RND*5)-2:F=F+INT(RND*5)-2
2910 E=E-W:F=F-V
2920 IF E<2  THEN  E=2+INT(RND*3)
2930 IF E>69 THEN  E=69-INT(RND*3)
2940 IF F<2  THEN  F=2+INT(RND*3)
2950 IF F>37 THEN  F=37-INT(RND*3)
2960  PUT (E,F),IM
2970  IF IMNEW=0 THEN IMNEW=1:GOTO 3020
2980  IF IMFLAG=0 GOTO 3010
2990  IF IMFLAG=1 THEN IMFLAG=0:PUT (EP,FP),IM1:GOTO 3020
3000  IF IMFLAG=2 THEN IMFLAG=0:PUT (EP,FP),IM2:GOTO 3020
3010  PUT (EP,FP),IM
3020  GOSUB 1180
3030  EP=E:FP=F
3040  IF G-S>5000 OR FLAG3=1 GOTO 3170
3050  GOSUB 1190
3060  FOR K=1 TO 2
3070  LOCATE 24,1:PRINT "**** IMPERIAL FIGHTER ATTACKS ****";
3080  PLAY "L2 N0"
3090  LOCATE 24,1:PRINT "                                  ";
3100  PLAY "L16 N0"
3110  NEXT K
3120  LOCATE 24,1:PRINT "**** IMPERIAL FIGHTER ATTACKS ****";
3130  PLAY "L1 N0":PLAY "L1 N0"
3140  LOCATE 24,1:PRINT "                                  ";
3150  GOSUB 1180
3160  FLAG3=1
3170 IF G>S THEN GOTO 3910
3180  REM * IMPERIAL FIGHTER ATTACKS *
3190  FLAG3=0:IMNEW=0:IMNEW1=0:IMPFIGH2=0:IMPFIGH3=0:PUT (E,F),IM
3200  GOSUB 1190
3210  DELTAX=29-E:DELTAY=19-F
3220  IF DELTAX>0 THEN E=E+1
3230  IF DELTAX<0 THEN E=E-1
3240  IF DELTAY>0 THEN F=F+1
3250  IF DELTAY<0 THEN F=F-1
3260  IF DELTAX=0 AND DELTAY=0 GOTO 3320
3270  PUT (E,F),IM:IF IMNEW1=0 THEN IMNEW1=1:GOTO 3290
3280  PUT (EP,FP),IM
3290  EP=E:FP=F
3300  PLAY "P32"
3310  GOTO 3210
3320  PUT (EP-4,FP-1),IM4
3330  PUT (EP,FP),IM
3340  PLAY "P4"
3350  PUT (EP-9,FP-2),IM5
3360  PUT (EP-4,FP-1),IM4
3370  PLAY "P4"
3380  PUT (EP-12,FP-6),IM6
3390  PUT (EP-9,FP-2),IM5
3400  PLAY "P4"
3410  PUT (EP-9,FP-7),IM7
3420  PUT (EP-12,FP-6),IM6
3430  PLAY "P4"
3440  PUT (EP-20,FP-14),IM8
3450  PUT (EP-9,FP-7),IM7
3460  PLAY "P4"
3470  PUT (EP-20,FP-14),IM8
3480  FOR J2=10000 TO 100 STEP -500
3490  SOUND J2,.001*18.2
3500  NEXT J2
3510  FOR A=1 TO 50:NEXT A
3520  FOR J2=10000 TO 100 STEP -500
3530  SOUND J2,.001*18.2
3540  NEXT J2
3550  G=G+25000
3560  E=INT(RND*61)+10:F=INT(RND*21)+10
3570  K=INT(RND*10)
3580  IF K>SKILL  THEN 3790
3590  KEY(1) OFF:KEY(2) OFF:KEY(11) OFF:KEY(12) OFF:KEY(13) OFF:KEY(14) OFF
3600  CLS
3610  PRINT  "BLAM!"
3620  FOR J2=1000 TO 37 STEP -10
3630  SOUND J2,.01*18.2
3640  NEXT J2
3650  PRINT
3660  PLAY "L1 N0":PLAY "L1 N0":PLAY "L1 N0"
3670  PRINT"YOU HAVE JUST BEEN SHOT DOWN BY AN";
3680  PRINT"IMPERIAL SKY FIGHTER!"
3690  PRINT
3700  PLAY "L1 N0":PLAY "L1 N0":PLAY "L1 N0"
3710  PRINT"YOU ARE A HERO!"
3720  PRINT
3730  PRINT"UNFORTUNATELY, YOU ARE A DEAD HERO AND";
3740  PRINT"DEAD HEROES DON'T WIN WARS. DARTH VADER";
3750  PRINT"WINS!"
3760  PRINT
3770  PRINT"*********   YOU   LOSE!!   *********"
3780   GOTO  5310
3790  FOR K=1 TO 2
3800  LOCATE 24,1:PRINT "**** IMPERIAL FIGHTER MISSED ****";
3810  PLAY "L2 N0"
3820  LOCATE 24,1:PRINT "                                 ";
3830  PLAY "L16 N0"
3840  NEXT K
3850  LOCATE 24,1:PRINT "**** IMPERIAL FIGHTER MISSED ****";
3860  PLAY "L1 N0":PLAY "L1 N0"
3870  LOCATE 24,1:PRINT "                                 ";
3880  IM(0)=IM1(0):IM(1)=IM1(1):IM(2)=IM1(2):IM(3)=IM1(3):IM(4)=IM1(4):IM(5)=IM1(5):IM(6)=IM1(6)
3890  GOSUB 1180
3900  REM * DISPLAY DARTH VADER *
3910  GOSUB 1190
3920  IF J-S>26000 THEN GOSUB 1180:GOTO 5140
3930  IF J-S<20000 AND DVADER2=0 THEN DVADER2=1:DVFLAG=1:DV(0)=DV2(0):DV(1)=DV2(1):DV(2)=DV2(2):DV(3)=DV2(3):DVX=37:DVY=20:DVR1=2:DVR2=2
3940  IF J-S<10000 AND DVADER3=0 THEN DVADER3=1:DVFLAG=2:DV(0)=DV3(0):DV(1)=DV3(1):DV(2)=DV3(2):DV(3)=DV3(3):DV(4)=DV3(4):DV(5)=DV3(5):DV(6)=DV3(6):DVX=35:DVY=19:DVR1=4:DVR2=3
3950  IF FLAG2<>BYPASS THEN FLAG2=FLAG2+1:GOTO 3980
3960  FLAG2=0
3970 H=H+INT(RND*5)-2:I=I+INT(RND*5)-2
3980 H=H-W:I=I-V
3990 IF H<2  THEN  H=2+INT(RND*3)
4000 IF H>69 THEN  H=69-INT(RND*3)
4010 IF I<2  THEN  I=2+INT(RND*3)
4020 IF I>37 THEN  I=37-INT(RND*3)
4030  PUT (H,I),DV
4040  IF DVNEW=0 THEN DVNEW=1:GOTO 4090
4050  IF DVFLAG=0 GOTO 4080
4060  IF DVFLAG=1 THEN DVFLAG=0:PUT (HP,IP),DV1:GOTO 4090
4070  IF DVFLAG=2 THEN DVFLAG=0:PUT (HP,IP),DV2:GOTO 4090
4080  PUT (HP,IP),DV
4090  GOSUB 1180
4100  HP=H:IP=I
4110  IF J-S>5000 OR FLAG4=1 GOTO 4350
4120  GOSUB 1190
4130  IF DVGONE=0 GOTO 4240
4140  FOR K=1 TO 2
4150  LOCATE 24,1:PRINT "**** IMPERIAL FIGHTER ATTACKS ****";
4160  PLAY "L2 N0"
4170  LOCATE 24,1:PRINT "                                  ";
4180  PLAY "L16 N0"
4190  NEXT K
4200  LOCATE 24,1:PRINT "**** IMPERIAL FIGHTER ATTACKS ****";
4210  PLAY "L1 N0":PLAY "L1 N0"
4220  LOCATE 24,1:PRINT "                                  ";
4230  GOTO 4330
4240  FOR K=1 TO 2
4250  LOCATE 24,1:PRINT "**** DARTH VADER ATTACKS ****";
4260  PLAY "L2 N0"
4270  LOCATE 24,1:PRINT "                             ";
4280  PLAY "L16 N0"
4290  NEXT K
4300  LOCATE 24,1:PRINT "**** DARTH VADER ATTACKS ****";
4310  PLAY "L1 N0":PLAY "L1 N0"
4320  LOCATE 24,1:PRINT "                             ";
4330  FLAG4=1
4340  GOSUB 1180
4350  IF J>S THEN GOTO 5140
4360  REM * DARTH VADER ATTACKS *
4370  FLAG4=0:DVNEW=0:DVNEW1=0:DVADER2=0:DVADER3=0:PUT (H,I),DV
4380  GOSUB 1190
4390  DELTAX=41-H:DELTAY=19-I
4400  IF DELTAX>0 THEN H=H+1
4410  IF DELTAX<0 THEN H=H-1
4420  IF DELTAY>0 THEN I=I+1
4430  IF DELTAY<0 THEN I=I-1
4440  IF DELTAX=0 AND DELTAY=0 GOTO 4500
4450  PUT (H,I),DV:IF DVNEW1=0 THEN DVNEW1=1:GOTO 4470
4460  PUT (HP,IP),DV
4470  HP=H:IP=I
4480  PLAY "P32"
4490  GOTO 4390
4500  IF DVGONE=0 THEN PUT(HP,IP-1),DV4 ELSE PUT(HP,IP-1),IM4
4510  PUT (HP,IP),DV
4520  PLAY "P4"
4530  IF DVGONE=0 THEN PUT(HP+3,IP-2),DV5 ELSE PUT(HP+3,IP-2),IM5
4540  IF DVGONE=0 THEN PUT(HP,IP-1),DV4 ELSE PUT(HP,IP-1),IM4
4550  PLAY "P4"
4560  IF DVGONE=0 THEN PUT(HP+2,IP-6),DV6 ELSE PUT(HP+2,IP-6),IM6
4570  IF DVGONE=0 THEN PUT(HP+3,IP-2),DV5 ELSE PUT(HP+3,IP-2),IM5
4580  PLAY "P4"
4590  IF DVGONE=0 THEN PUT(HP+1,IP-6),DV7 ELSE PUT(HP+1,IP-6),IM7
4600  IF DVGONE=0 THEN PUT(HP+2,IP-6),DV6 ELSE PUT(HP+2,IP-6),IM6
4610  PLAY "P4"
4620  IF DVGONE=0 THEN PUT(HP+2,IP-6),DV8 ELSE PUT(HP+2,IP-6),IM8
4630  IF DVGONE=0 THEN PUT(HP+1,IP-6),DV7 ELSE PUT(HP+1,IP-6),IM7
4640  PLAY "P4"
4650  IF DVGONE=0 THEN PUT(HP+2,IP-6),DV8 ELSE PUT(HP+2,IP-6),IM8
4660  FOR J2=10000 TO 100 STEP -500
4670  SOUND J2,.001*18.2
4680  NEXT J2
4690  FOR A=1 TO 50:NEXT A
4700  FOR J2=10000 TO 100 STEP -500
4710  SOUND J2,.001*18.2
4720  NEXT J2
4730  J=J+25000
4740 H=INT(RND*61)+10:I=INT(RND*21)+10
4750  K=INT(RND*10)
4760  IF K>SKILL+1  THEN 4910
4770  KEY(1) OFF:KEY(2) OFF:KEY(11) OFF:KEY(12) OFF:KEY(13) OFF:KEY(14) OFF
4780  CLS:PRINT "****  B O O M !  ****"
4790  FOR J2=1000 TO 37 STEP -10
4800  SOUND J2,.01*18.2
4810  NEXT J2
4820  PRINT
4830  PLAY "L1 N0":PLAY "L1 N0":PLAY "L1 N0"
4840  IF DVGONE=1 THEN PRINT"TOO BAD.  YOU HAVE BEEN SHOT DOWN.":GOTO 4880
4850  PRINT"YOU HAVE JUST BEEN PERSONALLY SHOT DOWN";
4860  PRINT"BY DARTH VADER.  THE FORCE WAS NOT WITH";
4870  PRINT"YOU."
4880  PRINT
4890  PRINT"*********   YOU   LOSE!!   *********"
4900   GOTO  5310
4910  IF DVGONE=0 GOTO 5030
4920  FOR K=1 TO 2
4930  LOCATE 24,1:PRINT "**** IMPERIAL FIGHTER MISSED ****";
4940  PLAY "L2 N0"
4950  LOCATE 24,1:PRINT "                                 ";
4960  PLAY "L16 N0"
4970  NEXT K
4980  LOCATE 24,1:PRINT "**** IMPERIAL FIGHTER MISSED ****";
4990  PLAY "L1 N0":PLAY "L1 N0"
5000  LOCATE 24,1:PRINT "                                 ";
5010  DV(0)=DV1(0):DV(1)=DV1(1):DV(2)=DV1(2):DV(3)=DV1(3)
5020  GOTO 5140
5030  FOR K=1 TO 2
5040  LOCATE 24,1:PRINT "**** DARTH VADER MISSED ****";
5050  PLAY "L2 N0"
5060  LOCATE 24,1:PRINT "                            ";
5070  PLAY "L16 N0"
5080  NEXT K
5090  LOCATE 24,1:PRINT "**** DARTH VADER MISSED ****";
5100  PLAY "L1 N0":PLAY "L1 N0"
5110  LOCATE 24,1:PRINT "                            ";
5120  DV(0)=DV1(0):DV(1)=DV1(1):DV(2)=DV1(2):DV(3)=DV1(3):DV(4)=DV1(4):DV(5)=DV1(5):DV(6)=DV1(6)
5130  REM * X - WING FIGHTER ROUTINE *
5140  GOSUB 1180
5150 Z$=INKEY$
5160 IF VAL(Z$)>0 AND VAL(Z$)<10   THEN  Q=VAL(Z$)
5170  S=S+Q*100
5180  IF S>O  GOTO 6410
5190  REM * TIME ROUTINE *
5200   SEC2=VAL(RIGHT$(TIME$,2))
5210   SECNEW=SEC2
5220   IF SECNEW=SECOLD GOTO 5280
5230   IF SECNEW<SECOLD THEN N8=N8+1
5240   SECOLD=SEC2
5250   A2NEW=A2-(SEC2+(60*N8)-SEC1)
5260   IF A2NEW<0 THEN A2NEW=A2NEW+60:A1=A1-1:A2=A2+60
5270   IF A1<0 GOTO 6760
5280   GOTO   2320
5290  REM * DISPLAY SKY FIGHTER *
5300  IF J-S<10000 THEN A=3
5310  REM * NEW GAME *
5320   PRINT
5330 PRINT "HIT ENTER TO PLAY AGAIN, ESC TO GIVE UP"
5340 B$=INKEY$:IF B$=CHR$(13) THEN GOTO 1300 ELSE IF B$=CHR$(27) THEN CLS:WIDTH 80:SCREEN 0:KEY ON:END ELSE GOTO 5340
5350  REM * FIRE CANNON *
5360  KEY(2) STOP:KEY(11) STOP:KEY(12) STOP:KEY(13) STOP:KEY(14) STOP
5370  PUT (2,2),LASAR
5380  FOR J2=5000 TO 100 STEP -250
5390    SOUND J2,.01*18.2
5400  NEXT J2
5410  PUT (2,2),LASAR
5420  IF G-S<26000 AND ABS(IMX-E)<IMR1 AND ABS(IMY-F)<IMR2 GOTO 5450
5430  IF J-S<26000 AND ABS(DVX-H)<DVR1 AND ABS(DVY-I)<DVR2 GOTO 5580
5440  GOTO 5730
5450  FOR I9=1 TO 2:PUT (E-2,F-3),EXPL3:PLAY "P64":PUT (E-2,F-3),EXPL3:NEXT I9
5460  FOR I9=1 TO 2:PUT (E-2,F-3),EXPL4:PLAY "P64":PUT (E-2,F-3),EXPL4:NEXT I9
5470  PUT (E,F),IM
5480  IF IMR2=1 GOTO 5540
5490  FOR I9=1 TO 2:PUT (E-2,F-3),EXPL5:PLAY "P64":PUT (E-2,F-3),EXPL5:NEXT I9
5500  FOR I9=1 TO 2:PUT (E-2,F-3),EXPL6:PLAY "P64":PUT (E-2,F-3),EXPL6:NEXT I9
5510  IF IMR2=2 GOTO 5540
5520  FOR I9=1 TO 2:PUT (E-2,F-3),EXPL7:PLAY "P64":PUT (E-2,F-3),EXPL7:NEXT I9
5530  FOR I9=1 TO 2:PUT (E-2,F-3),EXPL8:PLAY "P64":PUT (E-2,F-3),EXPL8:NEXT I9
5540  G=G+25000:E=INT(RND*61)+10:F=INT(RND*21)+10:FLAG3=0:IMNEW=0:IMPFIGH2=0:IMPFIGH3=0
5550  IMX=38:IMY=21:IMR1=1:IMR2=1
5560  IM(0)=IM1(0):IM(1)=IM1(1):IM(2)=IM1(2):IM(3)=IM1(3):IM(4)=IM1(4):IM(5)=IM1(5):IM(6)=IM1(6)
5570  GOTO 5730
5580  FOR I9=1 TO 2:PUT (H-2,I-3),EXPL3:PLAY "P64":PUT (H-2,I-3),EXPL3:NEXT I9
5590  FOR I9=1 TO 2:PUT (H-2,I-3),EXPL4:PLAY "P64":PUT (H-2,I-3),EXPL4:NEXT I9
5600  PUT (H,I),DV
5610  IF DVR2=1 GOTO 5670
5620  FOR I9=1 TO 2:PUT (H-2,I-3),EXPL5:PLAY "P64":PUT (H-2,I-3),EXPL5:NEXT I9
5630  FOR I9=1 TO 2:PUT (H-2,I-3),EXPL6:PLAY "P64":PUT (H-2,I-3),EXPL6:NEXT I9
5640  IF DVR2=2 GOTO 5670
5650  FOR I9=1 TO 2:PUT (H-2,I-3),EXPL7:PLAY "P64":PUT (H-2,I-3),EXPL7:NEXT I9
5660  FOR I9=1 TO 2:PUT (H-2,I-3),EXPL8:PLAY "P64":PUT (H-2,I-3),EXPL8:NEXT I9
5670  J=J+25000:H=INT(RND*61)+10:I=INT(RND*21)+10:FLAG4=0:LOCATE 19,8:PRINT "KM TO IMPERIAL FIGHTER";
5680  DVNEW=0:DVADER2=0:DVADER3=0
5690  DVX=38:DVY=21:DVR1=1:DVR2=1
5700  IF DVGONE=0 THEN DV3(0)=IM3(0):DV3(1)=IM3(1):DV3(2)=IM3(2):DV3(3)=IM3(3):DV3(4)=IM3(4):DV3(5)=IM3(5):DV3(6)=IM3(6)
5710  DV(0)=DV1(0):DV(1)=DV1(1):DV(2)=DV1(2):DV(3)=DV1(3):DV(4)=DV1(4):DV(5)=DV1(5):DV(6)=DV1(6)
5720  DVGONE=1
5730  KEY(2) ON:KEY(11) ON:KEY(12) ON:KEY(13) ON:KEY(14) ON
5740  RETURN
5750  REM * FIRE  TORPEDO *
5760  KEY(1) STOP:KEY(11) STOP:KEY(12) STOP:KEY(13) STOP:KEY(14) STOP
5770  IF Z=0  THEN 3600
5780  FOR J2=1500 TO 100 STEP -20
5790    SOUND J2,.01*18.2
5800    SOUND 3600-J2,.01*18.2
5810  NEXT J2
5820  Z=Z-1
5830  IF O-S>10000  THEN 5990
5840  IF POINT(38,21)<>3 THEN 5880
5850  IF SKILL=0 GOTO 6100
5860  K=INT(RND*10)
5870  IF K>SKILL+1  THEN 6100
5880   FOR K=1 TO 2
5890  LOCATE 24,1:PRINT "**** TORPEDO  MISSED  ****";
5900  PLAY "L2 N0"
5910  LOCATE 24,1:PRINT "                          ";
5920  PLAY "L16 N0"
5930   NEXT K
5940  LOCATE 24,1:PRINT "**** TORPEDO  MISSED  ****";
5950  PLAY "L1 N0":PLAY "L1 N0"
5960  LOCATE 24,1:PRINT "                          ";
5970  IF Z<=0  THEN 4780
5980  GOTO 6080
5990 FOR K=1 TO 2
6000  LOCATE 24,1:PRINT "**** OUT  OF  RANGE  ****";
6010  PLAY "L2 N0"
6020  LOCATE 24,1:PRINT "                         ";
6030  PLAY "L16 N0"
6040 NEXT K
6050  LOCATE 24,1:PRINT "**** OUT  OF  RANGE  ****";
6060  PLAY "L1 N0":PLAY "L1 N0"
6070  LOCATE 24,1:PRINT "                         ";
6080  KEY(1) ON:KEY(11) ON:KEY(12) ON:KEY(13) ON:KEY(14) ON
6090   RETURN
6100  REM * GAME WON *
6110  KEY(1) OFF:KEY(2) OFF:KEY(11) OFF:KEY(12) OFF:KEY(13) OFF:KEY(14) OFF
6120  FOR SCALE=1 TO 24
6130  DRAW"C3;S=SCALE;BM38,21;NM+6,0;NM-6,0;NM+0,-3;NM+0,3;NM-6,3;NM+6,-3;NM-6,-3;NM+6,3;NM+3,-3;NM-3,3;NM+3,3;NM-3,-3;NM+6,2;NM-6,-2;NM-6,1;NM+6,-1;NM+1,3;NM-1,-3"
6140  NEXT SCALE
6150  CLS
6160  FOR K=1 TO 5
6170  SOUND 37,.1*18.2
6180  SCREEN 0:WIDTH 40
6190  FOR A=1 TO 10:NEXT A
6200  SCREEN 1:WIDTH 80
6210  NEXT K
6220  WIDTH 40
6230  CLS:PRINT:PRINT:PRINT
6240  PRINT"* * * * * * * * * * * * * * * * * * * *";
6250  PRINT"*                                     *";
6260  PRINT"*                                     *";
6270  PRINT"*    THE  FORCE  IS  WITH  YOU  !!    *";
6280  PRINT"*                                     *";
6290  PRINT"* YOU HAVE DESTROYED THE DEATH STAR ! *";
6300  PRINT"*                                     *";
6310  PRINT"*    YOU HAVE SAVED THE REPUBLIC !    *";
6320  PRINT"*                                     *";
6330  PRINT"* PRINCESS LEAH WILL LOVE YOU ALWAYS! *";
6340  PRINT"*                                     *";
6350  PRINT"* * * * * * * * * * * * * * * * * * * *"
6360  SOUND 525.25,18.2:SOUND 783.99,18.2/2:SOUND 698.46,18.2/6:SOUND 659.26,18.2/6:SOUND 587.33,18.2/6:SOUND 1046.6,18.2:SOUND 783.99,18.2/2:SOUND 698.46,18.2/6:SOUND 659.26,18.2/6:SOUND 587.33,18.2/6
6370  SOUND 1046.5,18.2:SOUND 783.99,18.2/2:SOUND 698.46,18.2/6:SOUND 659.26,18.2/6:SOUND 698.46,18.2/6:SOUND 587.33,18.2
6380  PRINT
6390  GOTO   5310
6400  REM * COLLISION WITH DEATH STAR *
6410 KEY(1) OFF:KEY(2) OFF:KEY(11) OFF:KEY(12) OFF:KEY(13) OFF:KEY(14) OFF
6420  DELTAX=35-M:DELTAY=18-N
6430  IF DELTAX>0 THEN M=M+1
6440  IF DELTAX<0 THEN M=M-1
6450  IF DELTAY>0 THEN N=N+1
6460  IF DELTAY<0 THEN N=N-1
6470  IF DELTAX=0 AND DELTAY=0 GOTO 6530
6480  PUT (M,N),DS
6490  PUT (MP,NP),DS
6500  MP=M:NP=N
6510  PLAY "P32"
6520  GOTO 6420
6530  FOR RAD=4 TO 20
6540  CIRCLE(38,21),RAD,3
6550  PLAY "P32"
6560  NEXT RAD
6570  CLS:PRINT "CRASH"
6580  FOR J2=1000 TO 37 STEP -10
6590  SOUND J2,.01*18.2
6600  NEXT J2
6610  PLAY "L1 N0":PLAY "L1 N0":PLAY "L1 N0"
6620  PRINT
6630  PRINT"DARTH VADER IS LAUGHING AT YOU."
6640  PLAY "L1 N0":PLAY "L1 N0":PLAY "L1 N0"
6650  PRINT
6660  PRINT"YOU HAVE JUST COLLIDED WITH THE DEATH";
6670  PRINT"STAR.  THEY DID NOT EVEN HEAR THE";
6680  PRINT"COLLISION.  YOU DID NOT EVEN SCRATCH";
6690  PRINT"THE DEATH STAR'S PAINT, BUT YOU ARE   ";
6700  PRINT"DEAD!"
6710  PRINT
6720  PRINT"*********   YOU  LOSE!!   *********"
6730  PRINT
6740   GOTO  5310
6750  REM * OUT OF TIME *
6760  KEY(1) OFF:KEY(2) OFF:KEY(11) OFF:KEY(12) OFF:KEY(13) OFF:KEY(14) OFF
6770  CLS:PRINT "TOO LATE!"
6780  FOR J2=1000 TO 37 STEP -10
6790  SOUND J2,.01*18.2
6800  NEXT J2
6810  PLAY "L1 N0":PLAY "L1 N0":PLAY "L1 N0"
6820  PRINT
6830  PRINT"DARTH VADER IS LAUGHING AT YOU."
6840  PLAY "L1 N0":PLAY "L1 N0":PLAY "L1 N0"
6850  PRINT
6860  PRINT"THE DEATH STAR HAS JUST DESTROYED";
6870  PRINT"PRINCESS LEAH AND THE ENTIRE REBEL";
6880  PRINT"STRONGHOLD";
6890  PRINT
6900  PRINT"*********   YOU  LOSE!!   *********"
6910  PRINT
6920   GOTO  5310
6930  CLS
6940  PRINT"       STAR  PILOT  INSTRUCTIONS"
6950  PRINT
6960  PRINT"    THE DEATH  STAR SPACE STATION, UNDER";
6970  PRINT"THE COMMAND OF DARTH  VADER, IS THE MOST";
6980  PRINT"POWERFUL  WEAPON  THE UNIVERSE  HAS EVER";
6990  PRINT"KNOWN.   A FRONTAL  ATTACK BY  ANY OTHER";
7000  PRINT"CRAFT WOULD BE ABSOLUTE SUICIDE. HOWEVER";
7010  PRINT"INTELLIGENCE DELIVERED  TO  OUR REPUBLIC";
7020  PRINT"HEADQUARTERS  BY  THE  ANDROIDS R2D2 AND";
7030  PRINT"C3PO GIVES A FAINT  HOPE OF A SUCCESSFUL";
7040  PRINT"ATTACK  BY A SMALL ONE OR TWO  PASSENGER";
7050  PRINT"X-WING FIGHTER."
7060  PRINT
7070  PRINT"    THERE IS A SMALL, UNSHIELDED EXHAUST";
7080  PRINT"PORT  ON  THE  SURFACE OF THE DEATH STAR";
7090  PRINT"THAT LEADS DIRECTLY TO THE MAIN REACTOR.";
7100  PRINT"SINCE IT IS AN EMERGENCY THERMAL PORT IN";
7110  PRINT"CASE THE REACTOR OVERHEATS, IT COULD NOT";
7120  PRINT"BE SHIELDED."
7130  PRINT
7140  INPUT"     (PRESS ENTER  TO  CONTINUE)",B$
7150  CLS
7160  PRINT
7170  PRINT"    IF YOU CAN  SLIP YOUR  SMALL FIGHTER";
7180  PRINT"PAST THE  DEATH STAR'S DEFENSES AND MAKE";
7190  PRINT"A DIRECT HIT ON THE THERMAL EXHAUST PORT";
7200  PRINT"WITH  A  TORPEDO, THERE IS A CHANCE THAT";
7210  PRINT"THE  TORPEDO  WILL   PENETRATE  TO   THE";
7220  PRINT"MAIN REACTOR AND START A CHAIN REACTION,";
7230  PRINT"DESTROYING THE DEATH STAR."
7240  PRINT
7250  PRINT"    IT IS A SLIM  CHANCE,  BUT IT IS THE";
7260  PRINT"ONLY  HOPE  THE  REPUBLIC HAS.   OBI-WAN";
7270  PRINT"KENOBI GAVE  HIS LIFE TO GET THE MESSAGE";
7280  PRINT"HERE, SO HE CONSIDERED IT IMPORTANT."
7290  PRINT:PRINT:PRINT:PRINT
7300  PRINT"PRESS ENTER FOR X-WING FIGHTER          ";
7310  INPUT"      FAMILIARIZATION",B$
7320  CLS
7330  PRINT"        REPUBLIC  X-WING  FIGHTER       "
7340  PRINT
7350  PRINT"     THE X-WING  FIGHTER IS A SMALL  ONE";
7360  PRINT"MAN  SPACESHIP  THAT IS,  QUITE FRANKLY,";
7370  PRINT"OBSOLETE.  IT IS ARMED ONLY WITH A LASER";
7380  PRINT"CANNON  AND  THREE  TORPEDOES.   USE THE";
7390  PRINT"LASER CANNON  TO  FIGHT OFF ANY IMPERIAL";
7400  PRINT"FIGHTERS AND SAVE THE  TORPEDOES FOR THE";
7410  PRINT"DEATH STAR."
7420  PRINT
7430  PRINT"     THE  TARGET  ACQUISITION  RADAR CAN";
7440  PRINT"DETECT IN  EXCESS OF  100,000 KILOMETERS";
7450  PRINT"AWAY, BUT CAN ONLY DISPLAY TARGETS WITH-";
7460  PRINT"IN  20,000 KM.   THEREFORE,  YOU WILL BE";
7470  PRINT"WARNED OF APPROACHING  TARGETS  ON  YOUR";
7480  PRINT"CONTROL PANEL  BEFORE THEY ARE DISPLAYED";
7490  PRINT"ON THE RADAR SCREEN."
7500  PRINT
7510  INPUT"     (PRESS ENTER  TO  CONTINUE)",B$
7520  CLS
7530  PRINT
7540  PRINT"     THE LASER  CANNON IS AN  ANTIQUATED";
7550  PRINT"WEAPON.  TO  HIT AN ENEMY, YOU MUST HAVE";
7560  PRINT"HIM  IN THE  EXACT CENTER  OF THE  CROSS";
7570  PRINT"HAIRS ON YOUR RADAR SCREEN. THEN YOU MAY";
7580  PRINT"FIRE THE  LASER CANNON BY  TYPING THE F1";
7590  PRINT"KEY ON YOUR CONTROL PANEL."
7600  PRINT
7610  PRINT"     YOUR  THREE  TORPEDOES ARE COMPUTER";
7620  PRINT"GUIDED,  BUT ALSO QUITE  LIMITED.   MAKE";
7630  PRINT"SURE THAT YOU ARE WITHIN 10000 KM OF THE";
7640  PRINT"DEATH STAR  AND THAT YOU HAVE  SOME PART";
7650  PRINT"OF  THE SPACE STATION  IN THE CENTER  OF";
7660  PRINT"THE  CROSS HAIRS  ON YOUR  RADAR SCREEN.";
7670  PRINT"EVEN THEN,  SINCE IT TAKES A PERFECT HIT";
7680  PRINT"ON THE EXHAUST PORT TO DESTROY THE DEATH";
7690  PRINT"STAR,  YOU  MAY  REQUIRE  MORE  THAN ONE";
7700  PRINT"TORPEDO.   TYPE THE  F2  KEY TO FIRE THE";
7710  PRINT"TORPEDO."
7720  PRINT
7730  INPUT"    (PRESS ENTER  TO  CONTINUE)",B$
7740  CLS
7750  PRINT
7760  PRINT"    THE SPEED OF YOUR SHIP IS CONTROLLED";
7770  PRINT"BY TYPING THE NUMBERS  1 THROUGH 9  (FOR";
7780  PRINT"MACH  10 THROUGH 90  RESPECTIVELY).  THE";
7790  PRINT"MOVEMENT OF YOUR  SHIP IS  CONTROLLED BY";
7800  PRINT"THE CURSOR CONTROLS.  SINCE THESE INPUTS";
7810  PRINT"MOVE YOUR SHIP  AND NOT THE TARGETS, THE";
7820  PRINT"TARGETS APPEAR  TO  MOVE IN THE OPPOSITE";
7830  PRINT"DIRECTION.   ALSO, YOU  CAN  EXPECT  THE";
7840  PRINT"ENEMY TO TAKE EVASIVE ACTION."
7850  PRINT
7860  PRINT"    WHEN SELECTING THE SKILL LEVEL, 0 IS";
7870  PRINT"THE EASIEST  GAME AND 3 IS THE  HARDEST.";
7880  PRINT"SKILL LEVEL  0  PROVIDES THE BEST CHANCE";
7890  PRINT"OF BEING  MISSED BY THE  FIGHTERS AND OF";
7900  PRINT"HITTING  THE DEATH STAR.  LEVEL  0  ALSO";
7910  PRINT"PROVIDES  THE LARGEST  TIME LIMIT BEFORE";
7920  PRINT"THE DEATH STAR DESTROYS THE REBEL BASE."
7930  PRINT
7940  PRINT
7950  INPUT"PRESS ENTER FOR  TAKE-OFF",B$
7960  CLS
7970  PRINT"****************************************"
7980  PRINT
7990  PRINT"    MAY  THE  FORCE  BE  WITH  YOU"
8000  PRINT
8010  PRINT"****************************************"
8020  PLAY "L1 N0":PLAY "L1 N0"
8030   GOTO   1300

Directory of PC-SIG Library Disk #0274

 Volume in drive A has no label
 Directory of A:\

GAMES    TXT      4125   1-20-85   8:54p
CASTLE   EXE     72832   6-13-84  12:37p
CASTLE   RAN     48384   1-01-80   7:52a
SPACEVAD EXE      9216   1-28-84   9:46p
PACKMAN  EXE     37120   1-26-83  12:00p
PACKMAN  DOC      4736   1-25-82  11:15p
BREAKOUT BAS      4864   1-01-80   1:00a
LANDER   BAS     17920   9-20-82   8:23p
LANDER   BIN      5760   3-08-82
LANDER   SCR       128   4-17-82
BUGS     EXE     24064   1-29-84   3:29p
BUGS!    SCR       128   5-02-84   6:10p
LIFE2    EXE     26415  12-19-84  10:19p
LIFE2    BAS      9059  12-19-84  10:16p
WIZARD   BAS     27520   1-21-83  11:51p
XWING    BAS     34688   5-29-83   3:16p
FILES    TXT       975   1-20-85   9:18p
CRC      TXT      1381   1-01-80  12:44a
CRCK4    COM      1536  10-21-82   5:50p
GO       BAT       461   4-10-85  12:39p
       20 file(s)     331312 bytes
                       21504 bytes free