!-----------------------------------------------------------------------------
! MODIFIED [01/28/90] by Grant Thomson-T F Business Computers, Toronto, Canada
!
! Replaced Line numbers with labels (mostly meaningful ones)
! Added Fuel gauge, Kill gauge.
! Added High Score Tracker.
! Number of Enemies and Fuel proportional to skill rating.
! A few cosmetic changes.
! Program is now both AlphaBASE Pre-compiler compatible as well as pure
! AlphaBASIC compatible to encourage enhancements (other scenarios?)
! REMEMBER TO LOAD INKEY.SBR INTO MEMORY as suggested by Marc (see below)
!-----------------------------------------------------------------------------
! This program was originally written in MICROSOFT BASIC for CP/M
! and was first distributed by the HEATH USERS GROUP (HUG). I found it
! titled: OSZ-JEDI.BAS (FOR THE OSBORNE-1) and modified it to run on my
! ALPHA MICRO AM1000. The line #'s are choppy due to my editing, but
! have remained largely unchanged due to the number of line # calls.
!
! There may still be a bug or two - if you find 'em, fix 'em!
!
! Makes use of TCRT calls and GRAPHICS CHARACTERS FOR AM-62 TERMINAL
! Makes use of INKEY.SBR (from AMUS) (Thanx, Mr. Jarboe!)
!
! I suggest you copy the following into a .CMD file to load and start the
! program.  It runs a great deal faster with INKEY.SBR resident in memory.
!
! DEL *
! LOAD INKEY.SBR
! :R
! RUN JEDI
!
! ENJOY!
!
! Marc McCauley   MARY/AM    12/30/85
!

       MAP1 A$,S,2
       MAP1 B$,S,1
       MAP1 E$,S,1,CHR$(27)
       MAP1 ED,F                ! enemies destroyed - mod line 3280 for more
       MAP1 CD,F
       MAP1 CT,F                ! timer - mod line 2910 for longer game
       MAP1 KM,F
       MAP1 BR,F
       MAP1 EV,F
       MAP1 DG,F
       MAP1 FQ,F
       MAP1 FX,F
       MAP1 FY,F
       MAP1 FZ,F
       MAP1 X,F
       MAP1 Y,F
       MAP1 A9,F
       MAP1 FL$,S,1
       MAP1 DM$,S,1
       MAP1 H'ED(7),B,3        ! History of most enemies destroyed
       MAP1 H'CT(7),B,3        ! History of Fuel remaining for high scorer
       MAP1 HU$(7),S,10        ! High Scorers Name
       MAP1 SAV$,S,10          ! High Scorers Name For Input

       RANDOMIZE
       GOSUB STAR'WARS
       PRINT ,"A long time ago in a galaxy far, far away, a great":GOSUB DELAY
       PRINT ,"adventure took place.  It is a period of civil war.":GOSUB DELAY
       PRINT ,"Rebel space ships striking from a hidden base have":GOSUB DELAY
       PRINT ,"won their first victory against the evil galactic ":GOSUB DELAY
       PRINT ,"empire.  During the battle, rebel spies managed to":GOSUB DELAY
       PRINT ,"steal secret plans to the empire's ultimate weapon":GOSUB DELAY
       PRINT ,"The Death Star, an armoured space station with the":GOSUB DELAY
       PRINT ,"fire power to destroy an entire planet. ":GOSUB DELAY:PRINT
       PRINT ,"     Your mission as one of the rebel pilots is to":GOSUB DELAY
       PRINT ,"attack and destroy the `Death Star'.  While making":GOSUB DELAY
       PRINT ,"your attack you have encountered `Darth Vader' and":GOSUB DELAY
       PRINT ,"his Imperial storm troopers in their tie fighters.":GOSUB DELAY
       PRINT ,"You must destroy them before they can destroy you.":PRINT
       PRINT ,"    GOOD LUCK, AND MAY THE `FORCE' BE WITH YOU    "
       FOR I=1 TO 11000:NEXT I
       PRINT TAB(-1,0)
!
!       INSTRUCTION ROUTINE ***
!
!Old    PRINT E$;"=*6";"DO YOU NEED:":PRINT
       PRINT TAB(10,30);"F - FULL INSTRUCTIONS"
       PRINT TAB(11,30);"B - BRIEF INSTRUCTIONS"
       PRINT TAB(12,30);"N - NO INSTRUCTIONS"
GET'INSTR'TYP:
!       INPUT A$:IF A$=" " THEN A$="N"
       ?tab(-1,28);
       ?TAB(8,26);"CHOOSE ONE OF THE FOLLOWING: N";TAB(-1,5);
       INPUT LINE "",A$
       if A$="" THEN A$="N"    ! Default
       IF UCS(A$)="F" THEN GOTO FULL'INSTR
       IF UCS(A$)="B" THEN GOTO BRIEF'INSTR
       IF UCS(A$)<>"N" THEN GOTO GET'INSTR'TYP
SKILL'LEVEL:
       PRINT TAB(19,20);"PLEASE ENTER A SKILL RATING FROM 1 TO 9:"
!       PRINT
       PRINT TAB(19,62);"1";TAB(-1,5);
       INPUT LINE "",A$
       IF A$="" THEN A$="1"    ! Default=1
       ?tab(-1,29);            ! Turn cursor OFF
       IF A$<"1" OR A$>"9" THEN GOTO USER'SCREW'UP
       A$=A$+"0":A9=INT(VAL(A$)):A9=A9-12336:GOTO DRAW'GRID
USER'SCREW'UP:
       PRINT
       PRINT TAB(26);"EVIDENTLY YOU NEED INSTRUCTIONS!"
       FOR I=1 TO 3000:NEXT I:PRINT
FULL'INSTR:
       PRINT TAB(-1,0)
       PRINT "You have been equipped with an X-wing    As in a real DOG-FIGHT you  must lead"
       PRINT "Fighter by the Rebel Alliance.   Your    the target when firing your laser. If"
       PRINT "fighter is computer controlled by the    you wait until he is exactly centered"
       PRINT "NUMERIC KEYPAD on your keyboard.  The    to fire, then you will miss him.  You"
       PRINT "display you will see is your ON-BOARD    may continue to fire at him, but when"
       PRINT "SCANNER.  In order to kill  an  enemy    you are firing your weapon, your con-"
       PRINT "fighter he must receive a  DIRECT HIT    trol of direction is not as  good  as"
       PRINT "OR MULTIPLE DAMAGING HITS.   He  will    when you aren't Firing and the Target"
       PRINT "receive damage if hit when he is  +/-    may fly out of your sights."
       PRINT "10 DEGREES IN ELEVATION and he is +/-"
       PRINT "9 DEGREES IN BEARING.  In addition to    In order to CENTER your target on the"
       PRINT "this, he MUST BE WITHIN 7500 KMS.        Scanner, you must fly towards him."
       PRINT "                                         To do this you PRESS THE KEY  ON  THE"
       PRINT "WARNING:  The `Tie' Fighter  has  the    NUMERIC KEY PAD THAT IS IN HIS DIREC-"
       PRINT "capability to pop in and out of  hyp-    TION. ie: IF HE IS IN THE UPPER RIGHT"
       PRINT "erspace.  Therefore he may  disappear    QUADRANT YOU WOULD PRESS KEY 9 TO FLY"
       PRINT "right from before your sights.  Also,    TOWARDS HIM. IF HE IS BELOW, PRESS 2."
       PRINT "you are given  a  limited  amount  of    NOTE:  At higher  skill  levels,  you"
       PRINT "fuel.  Your gauge will indicate  fuel    will be thrust  into  a  more intense"
       PRINT "remaining.                               battle (more Tie Fighters to destroy)"
       PRINT " ":PRINT
       INPUT "      MAY THE FORCE BE WITH YOU                 Press RETURN to Continue ",NADA
BRIEF'INSTR:
       PRINT TAB(-1,0)
       PRINT ,"     UP &                UP             UP &"
       PRINT TAB(17);"  LEFT";TAB(-1,23);"      rzzzzzs rzzzzzs rzzzzzs  ";TAB(-1,24);"RIGHT"
       PRINT TAB(17);TAB(-1,23);"            v     v v     v v     v"
       PRINT TAB(17);"            qzzzzzu qzzzzzu qzzzzzu"
       PRINT ,"               rzzzzzs rzzzzzs rzzzzzs";TAB(-1,24)
       PRINT ,"      LEFT     ";TAB(-1,23);"v     v v     v v     v";TAB(-1,24);"   RIGHT"
       PRINT TAB(-1,23),"               qzzzzzu qzzzzzu qzzzzzu"
       PRINT ,"               rzzzzzs rzzzzzs rzzzzzs"
       PRINT TAB(17);"            v     v v     v v     v"
       PRINT TAB(-1,24),"      DOWN";TAB(-1,23);"     qzzzzzu qzzzzzu qzzzzzu    ";TAB(-1,24);"DOWN"
       PRINT ,"    & LEFT";TAB(-1,23);"     rzzzzzs";TAB(-1,24);"   DOWN           & RIGHT"
       PRINT TAB(-1,23);"                             v     v"
       PRINT "                             qzzzzzu";TAB(-1,24)
       PRINT ,"                FIRE"
       PRINT TAB(4,33);"7";TAB(4,41);"8";TAB(4,49);"9"
       PRINT TAB(7,33);"4";TAB(7,41);"5";TAB(7,49);"6"
       PRINT TAB(10,33);"1";TAB(10,41);"2";TAB(10,49);"3";TAB(13,33);"0"
       PRINT TAB(17,20);"<<PRESS '5' TO STOP ANY TURNS OR CLIMBS>>":PRINT
       PRINT:PRINT:PRINT
!!!     PRINT TAB(20);"PLEASE ENTER A SKILL RATING FROM 1 TO 9:":PRINT
       PRINT TAB(27);"NOVICE = 1   EXPERT = 9":PRINT
       PRINT "AFTER SCANNER CONSTRUCTION IS COMPLETE, PRESS ANY NUMBER KEY TO START."
       ?tab(-1,28);            ! Turn cursor ON
GOTO SKILL'LEVEL

!GET'INSTR'TYP2:
!       INPUT "SKILL LEVEL > ",A$:IF A$<"1" OR A$>"9" THEN GOTO GET'INSTR'TYP2
!       A$=A$+"0":A9=INT(VAL(A$)):A9=A9-12336

DRAW'GRID:              ! GRID CONSTRUCTION ROUTINE ***
       ED=0:CT=0
       PRINT TAB(-1,0);TAB(-1,29);TAB(-1,11);
       PRINT TAB(1,2);"RANGE:      KM   ELEVATION:      DEG   BEARING:      DEG   FUEL:     KILLS:"
       PRINT
       PRINT TAB(8);"-90  -75  -60  -45  -30  -15   0   +15  +30  +45  +60  +75  +90"
       PRINT TAB(5);"+90 ";TAB(-1,23);"r0000b0000b0000b0000b0000b0000b0000b0000b0000b0000b0000b0000s";TAB(-1,24);" +90"
       PRINT TAB(9);TAB(-1,23);"v";SPACE(59);"v":PRINT TAB(9);"v";SPACE(59);"v";TAB(-1,24)
       PRINT TAB(5);"+60 ";TAB(-1,23);"x";SPACE(59);"x";TAB(-1,24);" +60"
       PRINT TAB(9);TAB(-1,23);"v";SPACE(59);"v":PRINT TAB(9);"v";SPACE(59);"v";TAB(-1,24)
       PRINT TAB(5);"+30 ";TAB(-1,23);"x";SPACE(59);"x";TAB(-1,24);" +30"
       PRINT TAB(9);TAB(-1,23);"v";SPACE(59);"v":PRINT TAB(9);"v";SPACE(59);"v";TAB(-1,24)
       PRINT TAB(6);"0 ";TAB(-1,23);" x";SPACE(59);"x ";TAB(-1,24);" 0"
       PRINT TAB(9);TAB(-1,23);"v";SPACE(59);"v":PRINT TAB(9);"v";SPACE(59);"v";TAB(-1,24)
       PRINT TAB(5);"-30 ";TAB(-1,23);"x";SPACE(59);"x";TAB(-1,24);" -30"
       PRINT TAB(9);TAB(-1,23);"v";SPACE(59);"v":PRINT TAB(9);"v";SPACE(59);"v";TAB(-1,24)
       PRINT TAB(5);"-60 ";TAB(-1,23);"x";SPACE(59);"x";TAB(-1,24);" -60"
       PRINT TAB(9);TAB(-1,23);"v";SPACE(59);"v":PRINT TAB(9);"v";SPACE(59);"v";TAB(-1,24)
       PRINT TAB(5);"-90 ";TAB(-1,23);"q]]]]a]]]]a]]]]a]]]]a]]]]a]]]]a]]]]a]]]]a]]]]a]]]]a]]]]a]]]]u";TAB(-1,24);" -90"
       PRINT TAB(8);"-90  -75  -60  -45  -30  -15   0   +15  +30  +45  +60  +75  +90";TAB(-1,12)
!
! *** INPUT CONTROL SCAN ROUTINE ***
!
       CD=200+(A$[1,1]*10)+INT(200+RND(1)):FL$="5"     !2910
!Old    CD=200+INT(200+RND(1)):FL$="5"  !2910
IN'LOOP:
       IF CT=CD THEN GOTO FAILED ELSE CT=CT+1 : CALL DSP'TIME
       IF FL$="0" THEN GOTO FIRE
       XCALL INKEY,B$
       IF B$>="0" AND B$<="9" THEN FL$=B$ ELSE IF B$<>"" THEN DM$=B$
IN'LOOP2:
       XCALL INKEY,B$
       IF B$>"0" AND B$<="9" THEN FL$=B$ ELSE IF B$<>"" THEN DM$=B$
       GOSUB POS'UPDATE
       PRINT E$;"=&3+";E$;"=23+";E$;"=)=+";E$;"=/=+";E$;"=,G+";E$;"=)Q+";E$;"=/Q+";E$;"=&[+";E$;"=2[+";
       FOR I=1 TO 100:NEXT I
GOTO IN'LOOP

FIRE:                           ! *** FIRE WEAPON ROUTINE ***
       FOR I=8 TO 1 STEP -1
               PRINT E$;"=";CHR$(44+I);CHR$(71-I);TAB(-1,23);"a";
               PRINT E$;"=";CHR$(44+I);CHR$(71+I);"a";TAB(-1,24);
               IF I>6 THEN GOTO NXTI'1
               PRINT E$;"=";CHR$(46+I);CHR$(69-I);" ";
               PRINT E$;"=";CHR$(46+I);CHR$(73+I);" ";
       NXTI'1:
       NEXT I
       PRINT E$;"=.E ";E$;"=.I ";E$;"=-F ";E$;"=-H ";
       IF FX<>44 OR FY<>70 THEN GOTO L'3290
       IF KM>5000 THEN GOTO IN'LOOP2
DESTROYED:
       PRINT TAB(25,31);TAB(-1,32);" ENEMY DESTROYED ";TAB(-1,33);:DG=0
       ED=ED+1
       PRINT E$;"=";CHR$(FX-1);CHR$(FY);"<|>"
       PRINT E$;"=";CHR$(FX);CHR$(FY-1);"     "
       PRINT E$;"=";CHR$(FX+1);CHR$(FY);">|<"
       FOR I=1 TO 50:PRINT CHR$(7);:NEXT I
       PRINT E$;"=";CHR$(FX);CHR$(FY);"***"
       FOR I=1 TO 50:NEXT I
       PRINT E$;"=";CHR$(FX-1);CHR$(FY);"   "
       PRINT E$;"=";CHR$(FX);CHR$(FY-1);"***"
       PRINT E$;"=";CHR$(FX+1);CHR$(FY);"   "
       FOR I=1 TO 50:NEXT I
       PRINT E$;"=";CHR$(FX);CHR$(FY);"   "
       FQ=0:IF ED=3*A$[1,1] THEN GOTO MISSION'DONE ELSE GOSUB DSP'KILLS : GOTO IN'LOOP2        !3280
L'3290:
       IF FX<43 OR FX>45 THEN GOTO L'3410
       IF FY<68 OR FY>72 THEN GOTO L'3410
       DG=DG+1:IF DG=3 THEN GOTO DESTROYED
       PRINT E$;"=";CHR$(FX-1);CHR$(FY);"[=]"
       PRINT E$;"=";CHR$(FX);CHR$(FY-1);"I"
       PRINT E$;"=";CHR$(FX);CHR$(FY+3);"I"
       PRINT E$;"=";CHR$(FX+1);CHR$(FY);"]*["
       FOR I=1 TO 50:NEXT I
       PRINT E$;"=";CHR$(FX-1);CHR$(FY);"   "
       PRINT E$;"=";CHR$(FX);CHR$(FY-1);" "
       PRINT E$;"=";CHR$(FX);CHR$(FY+3);" "
       PRINT E$;"=";CHR$(FX+1);CHR$(FY);"   ":GOTO IN'LOOP2
L'3410:
       PRINT E$;"=8 ";E$;"T";
       GOTO IN'LOOP2

POS'UPDATE:                     ! *** FIGHTER POSITION UPDATE ***
       IF FQ=1 THEN GOTO POS'1 ELSE FQ=1
POS'LOOP'1:
       LET FX=INT(100*RND(1))
       IF FX<36 OR FX>52 THEN GOTO POS'LOOP'1
POS'LOOP'2:
       LET FY=INT(200*RND(1))
       IF FY<44 OR FY>97 THEN GOTO POS'LOOP'2
       LET KM=INT(10000*RND(1))
       FZ=INT(16*RND(1))
POS'1:
       IF INT(100*RND(1))>6 THEN GOTO POS'2
       FZ=INT(16*RND(1))
POS'2:
       IF INT(10*RND(1))>A9 X=FX:Y=FY:GOTO POS'3
       IF FZ=0 THEN X=FX-1:Y=FY+1
       IF FZ=1 THEN X=FX:Y=FY+1
       IF FZ=2 THEN X=FX+1:Y=FY+1
       IF FZ=3 THEN X=FX+1:Y=FY
       IF FZ=4 THEN X=FX+1:Y=FY-1
       IF FZ=5 THEN X=FX:Y=FY-1
       IF FZ=6 THEN X=FX-1:Y=FY-1
       IF FZ=7 THEN X=FX-1:Y=FY
       IF FZ=8 THEN X=FX-1:Y=FY+2
       IF FZ=9 THEN X=FX-1:Y=FY+3
       IF FZ=10 THEN X=FX+1:Y=FY+3
       IF FZ=11 THEN X=FX+1:Y=FY+2
       IF FZ=12 THEN X=FX+1:Y=FY-2
       IF FZ=13 THEN X=FX+1:Y=FY-3
       IF FZ=14 THEN X=FX-1:Y=FY-3
       IF FZ=15 THEN X=FX-1:Y=FY-2
POS'3:
       IF FL$="1" THEN X=X-1:Y=Y+1
       IF FL$="2" THEN X=X-2:Y=Y
       IF FL$="3" THEN X=X-1:Y=Y-1
       IF FL$="4" THEN X=X:Y=Y+2
       IF FL$="6" THEN X=X:Y=Y-2
       IF FL$="7" THEN X=X+1:Y=Y+1
       IF FL$="8" THEN X=X+2:Y=Y
       IF FL$="9" THEN X=X+1:Y=Y-1
       IF X>39 AND X<50 AND Y>55 AND Y<87 THEN GOTO POS'4
       IF SGN(KM)=+1 THEN KM=KM+INT(200*RND(1))
       IF SGN(KM)=-1 THEN KM=KM-INT(200*RND(1))
       IF KM<10000 THEN GOTO POS'5 ELSE GOTO POS'6
POS'4:
       IF SGN(KM)=+1 THEN KM=KM-INT(200*RND(1))
       IF SGN(KM)=-1 THEN KM=KM+INT(200*RND(1))
POS'5:
       IF X<36 OR X>52 OR Y<42 OR Y>98 THEN GOTO POS'6
       IF X=FX AND Y=FY THEN RETURN
       PRINT E$;"=";CHR$(FX);CHR$(FY);"   ":FX=X:FY=Y
       PRINT E$;"=";CHR$(FX);CHR$(FY);TAB(-1,23);"4/9";TAB(-1,24)
       PRINT TAB(1,8);KM
       EV=10*(44-FX):PRINT TAB(1,31);EV
       BR=3*(FY-70):PRINT TAB(1,51);BR:RETURN
POS'6:
       PRINT E$;"=";CHR$(FX);CHR$(FY);"   ";
       FQ=0:RETURN
       PRINT E$;"=8 ";E$;"T";
RETURN

MISSION'DONE:
       FOR I=1 TO 500:NEXT I:PRINT E$;"=  ";TAB(-1,0)
       PRINT TAB(-1,12);E$;"=( ";
       PRINT TAB(-1,0)
       PRINT TAB(2,1);
       PRINT TAB(2,20);"CONGRATULATIONS ON A JOB WELL DONE.  YOU HAVE"
       PRINT TAB(3,20);"DESTROYED DARTH VADER AND HIS STORM TROOPERS,"
       PRINT TAB(4,20);"AND SAVED THE REBELLION.":GOTO END'YN
FAILED:
       PRINT TAB(-1,0)
       PRINT TAB(2,20);"YOU HAVE ONLY DESTROYED";ED;"TIE FIGHTERS AND"
       PRINT TAB(3,20);"YOU LET DARTH VADER GET AWAY.  OH WELL, I GUESS"
       PRINT TAB(4,20);"WE WANT HIM AROUND FOR THE SEQUEL ANYWAY!"
END'YN:
       CALL HIGH'SCORE
       PRINT ""
       PRINT TAB(-1,28);TAB(17,20);"DO YOU WANT TO PLAY AGAIN (Y/N): Y";TAB(-1,5);
       INPUT LINE "",A$
       if A$="" THEN A$="Y"    ! Default
       IF UCS(A$)="Y" THEN B$=" ":GOTO SKILL'LEVEL
       PRINT TAB(-1,0);TAB(-1,28)
       PRINT TAB(5,5);"FIGHTING EVIL CAN BE TIRING...COME BACK WHEN YOU'RE READY FOR";TAB(-1,21);"ACTION !";TAB(-1,22)
END

DELAY:
       FOR I=1 TO 1000:NEXT I:PRINT
RETURN

DSP'TIME:
       ?tab(1,66);CD-CT;
RETURN

DSP'KILLS:
       ?tab(1,77);ED;
RETURN

HIGH'SCORE:
       LOOKUP "JEDI.SCO",HSTRY
! If NO history, then New high score
       IF HSTRY=0 THEN CALL CREATE'HIGH
       OPEN #1,"JEDI.SCO",INPUT
       H'FLG=0         ! High scored attained? 0=NO 1=LEVEL OF HIGH
       FOR I=1 to 7    ! See if high score attained
               INPUT #1,HU$(I),H'ED(I),H'CT(I)
               IF H'FLG > 0 THEN GOTO NXTI'2
               IF ED > H'ED(I) THEN H'FLG=I  ! New high by no. of kills
               IF ED=H'ED(I) AND CD-CT > H'CT(I) THEN &
                       H'FLG=I ! New high by kills and fuel remaining
NXTI'2:
       NEXT I
       CLOSE #1
       IF H'FLG > 0 GOTO NEW'HIGH

DSP'HIGH:
       ? TAB(6,1);TAB(-1,9);TAB(6,30);"HIGH SCORES: "
       ? TAB(8,1);TAB(-1,9);TAB(8,22);"NAME:     KILLS:  FUEL REMAINING:"
       FOR I=1 TO 7
               ?TAB(20);HU$(I);TAB(32);H'ED(I) USING "###";TAB(45);H'CT(I)
       NEXT I
RETURN

NEW'HIGH:
       ? TAB(6,20);"YOU ARE A NEW REBEL LEADER!"
       ?tab(-1,28);    ! Turn Cursor OFF
       ? TAB(8,20)"YOUR NAME (10 DIGITS MAX): ";
       INPUT LINE "",SAV'HU$
       FOR I=7 to 2 STEP -1    ! Shuffles High Scores to insert new
               IF I > H'FLG THEN &
                       HU$(I)=HU$(I-1) : &
                       H'ED(I)=H'ED(I-1) : &
                       H'CT(I)=H'CT(I-1)
       NEXT I
       HU$(H'FLG)=SAV'HU$ : H'ED(H'FLG)=ED : H'CT(H'FLG)=CD-CT   ! Insert new
       OPEN #1,"JEDI.SCO",OUTPUT
       FOR I=1 TO 7
               ? #1,HU$(I);",";H'ED(I);",";H'CT(I)
       NEXT I
       CLOSE #1
       ?tab(-1,29);    ! Turn Cursor ON
GOTO DSP'HIGH

CREATE'HIGH:            ! Setup system generated high scores
       OPEN #1,"JEDI.SCO",OUTPUT
       FOR I=1 TO 7
               ? #1,"SKYWALK, 3 , 50 "
               HU$(I)="SKYWALK"
               H'ED(I)=3
               H'CT(I)=50
       NEXT I
       CLOSE #1
RETURN

STAR'WARS:
       ?TAB(-1,36);    ! Turn Screen OFF
       PRINT TAB(-1,0)
       PRINT ,TAB(2,14);TAB(-1,32);SPACE(8);TAB(-1,33);
       PRINT ,TAB(2,25);TAB(-1,32);SPACE(10);TAB(-1,33);
       PRINT ,TAB(2,39);TAB(-1,32);SPACE(6);TAB(-1,33);
       PRINT ,TAB(2,49);TAB(-1,32);SPACE(9);TAB(-1,33);

       PRINT ,TAB(3,13);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(3,21);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(3,29);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(3,38);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(3,44);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(3,49);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(3,57);TAB(-1,32);SPACE(2);TAB(-1,33);

       PRINT ,TAB(4,13);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(4,29);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(4,37);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(4,45);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(4,49);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(4,57);TAB(-1,32);SPACE(2);TAB(-1,33);

       PRINT ,TAB(5,14);TAB(-1,32);SPACE(8);TAB(-1,33);
       PRINT ,TAB(5,29);TAB(-1,32);SPACE(2);TAB(-1,33);

       PRINT ,TAB(5,37);TAB(-1,32);SPACE(10);TAB(-1,33);
       PRINT ,TAB(5,49);TAB(-1,32);SPACE(9);TAB(-1,33);

       PRINT ,TAB(6,21);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(6,29);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(6,37);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(6,45);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(6,49);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(6,55);TAB(-1,32);SPACE(2);TAB(-1,33);

       PRINT ,TAB(7,13);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(7,21);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(7,29);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(7,37);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(7,45);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(7,49);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(7,56);TAB(-1,32);SPACE(2);TAB(-1,33);

       PRINT ,TAB(8,14);TAB(-1,32);SPACE(8);TAB(-1,33);
       PRINT ,TAB(8,29);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(8,37);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(8,45);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(8,49);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(8,57);TAB(-1,32);SPACE(2);TAB(-1,33);

       PRINT ,TAB(10,13);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(10,21);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(10,27);TAB(-1,32);SPACE(6);TAB(-1,33);
       PRINT ,TAB(10,37);TAB(-1,32);SPACE(9);TAB(-1,33);
       PRINT ,TAB(10,50);TAB(-1,32);SPACE(8);TAB(-1,33);

       PRINT ,TAB(11,13);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(11,21);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(11,26);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(11,32);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(11,37);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(11,45);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(11,49);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(11,57);TAB(-1,32);SPACE(2);TAB(-1,33);

       PRINT ,TAB(12,13);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(12,21);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(12,25);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(12,33);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(12,37);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(12,45);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(12,49);TAB(-1,32);SPACE(2);TAB(-1,33);

       PRINT ,TAB(13,13);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(13,17);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(13,21);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(13,25);TAB(-1,32);SPACE(10);TAB(-1,33);
       PRINT ,TAB(13,37);TAB(-1,32);SPACE(9);TAB(-1,33);
       PRINT ,TAB(13,50);TAB(-1,32);SPACE(8);TAB(-1,33);

       PRINT ,TAB(14,13);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(14,17);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(14,21);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(14,25);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(14,33);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(14,37);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(14,44);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(14,57);TAB(-1,32);SPACE(2);TAB(-1,33);

       PRINT ,TAB(15,14);TAB(-1,32);SPACE(8);TAB(-1,33);
       PRINT ,TAB(15,25);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(15,33);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(15,37);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(15,45);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(15,49);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(15,57);TAB(-1,32);SPACE(2);TAB(-1,33);

       PRINT ,TAB(16,15);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(16,19);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(16,25);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(16,33);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(16,37);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(16,46);TAB(-1,32);SPACE(2);TAB(-1,33);
       PRINT ,TAB(16,50);TAB(-1,32);SPACE(8);TAB(-1,33);
       PRINT

       ?TAB(-1,37);    ! Turn Screen ON
       GOSUB DELAY
RETURN