!*! Updated on 09-Jun-93 at 9:50 AM by Jim Randazzo; edit time: 0:00:24
! Mods: jhb - Digidata Computer Systems, Inc., Oakland, CA 3/17/88
!	change object displays: ship <E>, base >B<, klingon +K+
!	change LongRange scan display
!	only turn cursor on when at Command: prompt
!	add short range scanner to guages
!	enhance (?) program intro
! Challenge: set up a common system area to retain galaxy chart, et al;
!	first user on system becomes starship, subsequent users are klingons;
!	everyone against everyone
! If you like these enhancements: send $2; otherwise, make more enhancements
!	and put on AMUS Network
! Would like to have: allow fractional course entry (i.e. decimal point x.x)
!	when entering photon torpedo course; 'trillium' (?) logic which at
!	random attempts to build a web around Enterprise
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! USAMUS.BAS the never ending final frontier.
! Fly the United Star Ship AMUS on a galactic adventure fighting
! Klingons in somewhat real-time action. 
! The ongoing revision of TREK.
! Written for AMUS users to enjoy.
! Release Version 1.0
! 
! James A. Jarboe IV
! 1401 19th Street
! Huntsville, Texas 77340
! GR/AM
!
! Derived from a 1978 version of TREK by DEMARCO-SHATZ
! Started 1979  -      JAJ
! Upgraded 1979 - 1987 JAJ
! Most recent version 10-15-87 by JAJ
! Phaser routine taken from JEDI.BAS by Marc McCauly 12/30/85
!    
! Plays best at baud 19200, with a terminal that has graphics
! characters.
! Also plays better with INKEY.SBR loaded in memory (system or user)
! and no one else using the system.
! Level one is real easy, level 5 is challenging, level 9 us unwinnable.
!
! Also get:
!          USAMUS.CMD 
!          USAMUS.HLP 
!          INKEY.SBR   (INKEY.M68 by James A. Jarboe on AMUS system.)
!
! Locate USAMUS.CMD on DSK0:[2,2]
! Locate USAMUS.RUN on DSK0:[7,6]
! Locate USAMUS.HLP on DSK0:[7,1]
! Locate INKEY .SBR on DSK0:[7,6]
!
! If you like this program send $500.00. I've got car payments !
! If you don't like this program send $500.00 anyways.
! I still have car payments.
! If you don't have $500.00 to send then just enjoy flying
! the U.S.S. AMUS and send a comment or two.
! GR/AM
!
PROGRAM PRGNAM,87.10A(15)
ON ERROR GOTO ABORT
!	NOEXPAND
        RANDOMIZE
MAP1 KLINGON,F,6		! number of klingons	
MAP1 A$,S,2
MAP1 B$,S,1
MAP1 KKIILLEEDD,F,6         	! number killed in Phaser routine
MAP1 CD,F	
MAP1 KM,F			! Kilometers distance Phaser routine
MAP1 BR,F			! Bearing Phaser routine
MAP1 EV,F			! Elevation Phaser routine
MAP1 DAMAGER,F  		! Damage to enemy Phaser routine
MAP1 FQ,F
MAP1 FX,F			! phaser row
MAP1 FY,F			! phaser column
MAP1 FZ,F
MAP1 X,F
MAP1 Y,F
MAP1 A9,F			! phaser action determinator
MAP1 FL$,S,1
MAP1 DM$,S,1
MAP1 LRS,S,3
MAP1 RECORD
	MAP2 CAPTAIN,S,15
	MAP2 LAST'SCORE,F
	MAP2 LAST'LEVEL,B,1
	MAP2 LAST'REC,B,1
	MAP2 REC'FIL,X,9
MAP1 C$,S,6			! combat status condition
MAP1 SHORTRANGESCREEN				! main view screen
	MAP2 ROW(8)
	     MAP3 COL(8),S,1
	     	  MAP4 SECTOR,S,3
MAP1 DEVICE(8),S,10				! devices
	DEVICE(1)="1 IMPULSE" : DEVICE(2)="2 WARP "
     	DEVICE(3)="3 SENSORS" : DEVICE(4)="4 PHASERS"
	DEVICE(5)="5 PHOTONS" : DEVICE(6)="6 SHIELDS"
	DEVICE(7)="7 LR SCAN ": DEVICE(8)="8 COMPUTER"
MAP1 DAMAGE(8),F,6				! damage status of devices
MAP1 HLP,S,80
MAP1 FAM,S,24,": #ZZ : #ZZ : #ZZ :     "
MAP1 FRM,S,50,"   #ZZ   #ZZ   #ZZ   #ZZ   #ZZ   #ZZ   #ZZ   #ZZ"
MAP1 VAR1,B,1,1
MAP1 VARA,S,1	
MAP1 FILL'1
	MAP2 COMMAND,F
	MAP2 ACOURSE,F
	MAP2 LAG,S,77
MAP1 PHOTON'POWER,F,6			! power draw for photon usage
MAP1 PHASER'POWER,F,6			! power draw for phaser usage
MAP1 ACTION,F,6				! speed of action
!!!!

	CALL OPEN'BEGIN
	? TAB(24,11);:INPUT "Do You need INSTRUCTIONS on Ship Operations? ",A$
	IF UCS(A$[1,1])="Y" THEN CALL HELP'US
ENTRY:
	? TAB(-1,0);
	? TAB(3,10);:INPUT "Please Enter Your Last Name ",CAPTAIN
	CAPTAIN=UCS(CAPTAIN)
	IF CAPTAIN="" THEN GOTO GIVE'CAP
	CALL LEVEL
START:
	? TAB(-1,0);
        DIM GALAXY(8,8),C(10,2),K(3,3),N(3),Z(8,8)	
BEGIN:
	T0=INT(RND(0)*20+20)*100		! set up start up values
	STARTIME=T0 : T9=30 : D0=0
	E0=4000 : ENERGY=4000 : P0=10 : PHOTON=10
        S9=200 : SHIELD=0 : H8=0
	Q1=INT(RND(0)*8+1):Q2=INT(RND(0)*8+1)	! starting quadrant 
	S1=INT(RND(0)*8+1):S2=INT(RND(0)*8+1)	! starting sector
	C(1,1)=1:C(1,2)=-1 : C(2,1)=1:C(2,2)=0
	C(3,1)=1:C(3,2)=1  : C(4,1)=0:C(4,2)=-1
	C(5,1)=0:C(5,2)=0  : C(6,1)=0:C(6,2)=1
	C(7,1)=-1:C(7,2)=-1: C(8,1)=-1:C(8,2)=0
	C(9,1)=-1:C(9,2)=1 : C(10,1)=1:C(10,2)=-1
	FOR I=1 TO 8				! clear damage status
	DAMAGE(I)=0
	NEXT I
MAKE'GALAXY:
        BASES=0:KLINGON=0			! clear
	FOR I=1 TO 8				! Randomly set up klingons,
	FOR J=1 TO 8				! Starbases and stars
	R1=RND(0)				! for each quadrant
	IF R1>.98 LET NUMKLING=3 ELSE IF R1>.95 LET NUMKLING=2 ELSE IF R1>.8 LET NUMKLING=1 ELSE NUMKLING=0
	KLINGON=KLINGON+NUMKLING
        IF RND(0)>.96 LET NUMBASE=1:BASES=BASES+1 ELSE NUMBASE=0
        NUMSTAR=INT(RND(0)*8+1)
	GALAXY(I,J)=NUMKLING*100+NUMBASE*10+NUMSTAR
	Z(I,J)=0
	NEXT J
        NEXT I
	K7=KLINGON
        IF BASES <= 0 OR KLINGON <= 0 GOTO MAKE'GALAXY
        CALL MAIN'DISPLAY
	? TAB(15,25);"CAPTAIN ";CAPTAIN;"," 
        ? TAB(16,25);"You must destroy";KLINGON;"KLINGONS"
 	? TAB(17,25);"in";T9;"Stardates with";BASES;"StarBases";
        ? TAB(18,25);"           READY? ";:INPUT "",ANS$
        CALL CLR'CMD
        NUMKLING=0:NUMBASE=0:NUMSTAR=0
RESET:
	CALL RANDOM'MOVE			! setup location for all
MAIN:
	? TAB(1,1);
	CALL MAIN'INFO
	CALL BOT'SCREEN
COMMAND'IT:
        CALL CLR'POINT
	? TAB(13,3); "COMMAND: ";
	CALL XIN
	CALL CLR'CMD
	CALL PRINT'COMPAS
	COMMAND=VAR1:WARP=0
	IF COMMAND < 1 OR COMMAND > 8 GOTO COMMAND'IT
	IF DAMAGE(COMMAND)=>0 THEN ? TAB(COMMAND+3,3);DEVICE(COMMAND);
	ON COMMAND GOTO COURSE,COURSE,LR'SCAN,PHASERS,PHOTONS,SHIELDS,COMPUTER'RECORDS,DAMAGE'GO
!
! IMPULSE & WARP DRIVE CONTROL CENTER
!
COURSE:
	CALL CLR'CMD
COURSE1:	
	? TAB(13,3);"COURSE (1-9):";
	VAR1=0
	CALL XIN
	CALL COMPAS
	ACOURSE=VAR1
	IF ACOURSE=0 THEN ? TAB(13,3);SPACE$(15);:GOTO COMMAND'IT
	IF ACOURSE>9 THEN GOTO COURSE
	CALL CLR'CMD
	IF COMMAND = 1 THEN ? TAB(13,4);"SPEED  (0-8)";: GOTO GO'COURSE
	? TAB(13,3);"FACTOR (0-8):";
GO'COURSE:
	VAR1=0
	CALL XIN
	WARP = VAR1
     	CALL CLR'CMD
	IF WARP<1 OR WARP>8 THEN GOTO COMMAND'IT
	IF COMMAND = 1 THEN W$[1;1]=".":W$[2;2]=WARP:WARP=W$[1,2]
	IF DAMAGE(2) >= 0 OR WARP <= .2  GOTO CH'KLIN
	? TAB(COMMAND+3,15);"DAMAGE";TAB(15,2);CHR$(7);
	? TAB(15,25);"CAPTAIN ";CAPTAIN;","
	? TAB(16,25);"Warp Drives are Damaged. MAXIMUM"
	? TAB(17,25);"SPEED is obtainable only by using"
	? TAB(18,25);"IMPULSE ENGINES at a speed of 2."
 	CALL PRINT'COMPAS
    	GOTO COURSE1
CH'KLIN:
	IF NUMKLING <= 0 GOTO CHECK'GO
	CALL FIRE'BACK
	IF NUMKLING <= 0 GOTO CHECK'GO
	IF SHIELD<0 GOTO DESTROYED
	GOTO DO'DAMAGE
CHECK'GO:
	IF ENERGY>0 GOTO DO'DAMAGE
	IF SHIELD<0 GOTO DEAD
	? TAB(15,25);"CAPTAIN ";CAPTAIN;","
	? TAB(16,25);"You have";ENERGY;"Units of Energy."
	? TAB(17,25);"May I suggest you trade some Energy"
	? TAB(18,25);"From your shiels  which have"
	? TAB(19,25);SHIELD;" units if Energy."
	GOTO COMMAND'IT
DO'DAMAGE:
	FOR I=1 TO 8:IF DAMAGE(I)<0 THEN DAMAGE(I)=DAMAGE(I)+1:NEXT I
	IF RND(0)>.2 GOTO PAS'DAM
	R1=INT(RND(0)*8+1)
	IF R1 <1 THEN GOTO PAS'DAM
	IF R1 >8 THEN GOTO PAS'DAM
	IF RND(0)>=.5 GOTO DO'IMPROVE
	DAMAGE(R1)=DAMAGE(R1)-(RND(0)*5+1)
	FOR I = 1 TO 4
	IF DAMAGE(R1)<0 ? TAB((R1)+3,15);"DAMAGE";CHR$(7);
	NEXT I
	GOTO PAS'DAM
DO'IMPROVE:
	DAMAGE(R1)=DAMAGE(R1)+(RND(0)*5+1)
	FOR I = 1 TO 4
        IF DAMAGE(R1)< 0 ? TAB((R1)+3,15);"DAMAGE";CHR$(7);
        NEXT I
PAS'DAM:
	N=INT(WARP*8)
	SECTOR(S1,S2)="   "
	X=S1:Y=S2
	IF ACOURSE=0 THEN ACOURSE=1
	C2=INT(ACOURSE)
	X1=C(C2,1)+(C(C2+1,1)-C(C2,1))*(ACOURSE-C2)
	X2=C(C2,2)+(C(C2+1,2)-C(C2,2))*(ACOURSE-C2)
	FOR I=1 TO N
	S1=S1+X1
	S2=S2+X2
        IF VAR1=0 THEN VAR1=.4
	IF S1<.5 OR S1 >= 8.5 OR S2<.5 OR S2 >= 8.5 THEN I=N:NEXT I:GOTO NEW'SCR
	IF SECTOR(S1,S2)="   " GOTO MOR'LOOK
	? TAB(15,25);"CAPTAIN ";CAPTAIN;","
	? TAB(16,25);"WARP Drives have shut down at"
        ? TAB(17,25);"Sector ";CHR$(48+S1);",";CHR$(48+S2);" due to improper"
     	? TAB(18,25);"navigation.  Please retry."
        S1=S1-X1
	S2=S2-X2
	I=N
MOR'LOOK:
	NEXT I
	S1=INT(S1+.5):S2=INT(S2+.5)
	SECTOR(S1,S2)="<E>"
	ENERGY=ENERGY-N+5
NEW'LOOK:
	IF WARP>=1 THEN STARTIME=STARTIME+1
	IF STARTIME>T0+T9 GOTO TIM'UP
	? TAB(X+3,26);ROW(X)
	? TAB(S1+3,26);ROW(S1)
	CALL MAIN'INFO
        IF VAR1=0 THEN GOTO NEW'SCR
	GOTO COMMAND'IT
NEW'SCR:
	X=Q1*8+X+X1*N
	Y=Q2*8+Y+X2*N
	Q1=INT(X/8)
	Q2=INT(Y/8)
	S1=INT(X-Q1*8+.5)
	S2=INT(Y-Q2*8+.5)
	IF S1=0 THEN Q1=Q1-1:S1=8
	IF S2=0 THEN Q2=Q2-1:S2=8
NEWNE:
	STARTIME=STARTIME+1
	ENERGY=ENERGY-N+5
	IF STARTIME>T0+T9 GOTO TIM'UP
	GOTO RESET
!
! SHORT RANGE SCAN ROUTINE
!
LR'SCAN:
	IF DAMAGE(3)>=0 GOTO GO'SCAN
	? TAB(6,15);"DAMAGE"
	GOTO COMMAND'IT
GO'SCAN:
	NUM=5
	? TAB(4,26);SPACE$(8);"S.R.SENSOR SCAN";
	CALL QUAD
	? TAB(5,26);SPACE$(7);"__KBS___KBS___KBS__";SPACE$(7);
	FOR I=Q1-1 TO Q1+1
	N(1)=0:N(2)=0:N(3)=0
	FOR J=Q2-1 TO Q2+1
	IF I<1 OR I>8 OR J<1 OR J>8 GOTO MORE'SCAN
	N(J-Q2+2)=GALAXY(I,J)
	IF DAMAGE(7)<0 GOTO MORE'SCAN
	Z(I,J)=GALAXY(I,J)
MORE'SCAN:	
	NEXT J
	NUM=NUM+1
	? TAB(NUM,33);
	? USING FAM,N(1),N(2),N(3)
	NUM=NUM+1
	? TAB(NUM,26);SPACE$(7);"-------------------";SPACE$(7);
	NEXT I
	VAR1=0
	CALL XIN
	CALL BOT'SCREEN
	GOTO COMMAND'IT
!
! PHASER ROUTINE
!
PHASERS:
        IF NUMKLING <= 0 GOTO NO'KLINGS
	IF DAMAGE(4)<0 ? TAB(7,15);"DAMAGE":GOTO COMMAND'IT
	IF DAMAGE(8)<0 ? TAB(15,2);:?" COMPUTER FAILURE HAMPERS ACCURACY"
	PRINT TAB(-1,0)
	PRINT
	CALL CHECK'DOCK
	IF ACTION<6 THEN A9=0
	IF ACTION=6 THEN A9=1
	IF ACTION=7 THEN A9=2
	IF ACTION=8 THEN A9=3
	IF ACTION=9 THEN A9=4
 GRID:
	B$=""
     KKIILLEEDD=0
     PRINT TAB(-1,0);TAB(-1,36);TAB(-1,29);TAB(-1,11);
     PRINT TAB(1,11);"RANGE:        KM   ELEVATION:      DEG   BEARING:      DEG"
     PRINT TAB(2,11);"ENERGY:            DAMAGE:               SHIELDS:"
     PRINT TAB(8);"-90  -75  -60  -45  -30  -15   0   +15  +30  +45  +60  +75  +90"
     PRINT TAB(5);"+90 ";TAB(-1,23);tab(-1,38);
	FOR I=1 TO 11
	FOR A=1 TO 4
	? TAB(-1,46);
	NEXT A
	? TAB(-1,42);
	NEXT I
	FOR I= 1 TO 4
	? TAB(-1,46);
	NEXT I
	? TAB(-1,39);
	? TAB(-1,24);" +90" 
	PRINT TAB(9);TAB(-1,23);TAB(-1,47);SPACE(59);TAB(-1,47):PRINT TAB(9);TAB(-1,47);SPACE(59);TAB(-1,47);TAB(-1,24)
	PRINT TAB(5);"+60 ";TAB(-1,23);tab(-1,44);SPACE(59);tab(-1,43);TAB(-1,24);" +60"
	PRINT TAB(9);TAB(-1,23);TAB(-1,47);SPACE(59);TAB(-1,47):PRINT TAB(9);TAB(-1,47);SPACE(59);TAB(-1,47);TAB(-1,24)
	PRINT TAB(5);"+30 ";TAB(-1,23);tab(-1,44);SPACE(59);tab(-1,43);TAB(-1,24);" +30"
	PRINT TAB(9);TAB(-1,23);TAB(-1,47);SPACE(59);TAB(-1,47):PRINT TAB(9);TAB(-1,47);SPACE(59);TAB(-1,47);TAB(-1,24)
	PRINT TAB(6);"0  ";TAB(-1,23);TAB(-1,48);SPACE(59);TAB(-1,48);TAB(-1,24);"  0"
	PRINT TAB(9);TAB(-1,23);TAB(-1,47);SPACE(59);TAB(-1,47):PRINT TAB(9);TAB(-1,47);SPACE(59);TAB(-1,47);TAB(-1,24)
	PRINT TAB(5);"-30 ";TAB(-1,23);tab(-1,44);SPACE(59);tab(-1,43);TAB(-1,24);" -30"
	PRINT TAB(9);TAB(-1,23);TAB(-1,47);SPACE(59);TAB(-1,47):PRINT TAB(9);TAB(-1,47);SPACE(59);TAB(-1,47);TAB(-1,24)
	PRINT TAB(5);"-60 ";TAB(-1,23);tab(-1,44);SPACE(59);tab(-1,43);TAB(-1,24);" -60"
	PRINT TAB(9);TAB(-1,23);TAB(-1,47);SPACE(59);TAB(-1,47):PRINT TAB(9);TAB(-1,47);SPACE(59);TAB(-1,47);TAB(-1,24)
	PRINT TAB(5);"-90 ";TAB(-1,23);tab(-1,40);
	FOR I=1 TO 11
	FOR A=1 TO 4
	? TAB(-1,46);
	NEXT A
	? TAB(-1,45);
	NEXT I
	FOR I= 1 TO 4
	? TAB(-1,46);
	NEXT I
	? TAB(-1,41);
	? TAB(-1,24);" -90" 

	PRINT TAB(8);"-90  -75  -60  -45  -30  -15   0   +15  +30  +45  +60  +75  +90";TAB(-1,12)
	 ? tab(-1,37);
 !
 ! *** INPUT CONTROL SCAN ROUTINE ***
 !
	CALL ROVING
	CD=200+INT(200+RND(1)):FL$=ROVING
	? TAB(2,19);ENERGY USING "####"
	? TAB(2,61);INT(SHIELD) USING "####"
SCAN'ROUTINE:
     IF ENERGY<50 GOTO ALLGOOD
     IF FL$="0" THEN GOTO FIRE'WEAPON
SCAN2:
     XCALL INKEY,B$
     IF B$>="0" AND B$<="9" THEN FL$=B$ ELSE IF B$<>"" THEN DM$=B$
	IF B$=5 THEN CALL MAIN'DISPLAY:GOTO MAIN
     CALL FIGHTER'POSITION
	? TAB(7,20);"+";TAB(19,20);"+";TAB(10,30);"+";TAB(16,30);"+";TAB(13,40);"+";
	? TAB(10,50);"+";TAB(16,50);"+";TAB(7,60);"+";TAB(19,60);"+";
     GOTO SCAN'ROUTINE
!
! *** FIRE PHASER ROUTINE ***
!
FIRE'WEAPON:
     FOR I=8 TO 1 STEP -1
	? TAB(13+I,40-I);TAB(-1,23);TAB(-1,64);
	? TAB(13+I,40+I);TAB(-1,64);TAB(-1,24);
     IF I>6 THEN GOTO JNXI
	? TAB(15+I,38-I);" ";
	? TAB(15+I,42+I);" ";
JNXI:
     NEXT I
	I=0
	IF FLAG=1 THEN GOTO FIRE2
FIRE1:
	I=I+1
	IF I>3 THEN GOTO FIRE2
      	IF K(I,3) =< 0 GOTO FIRE1
      	H=(K(I,3)/SQR((K(I,1)-S1)^2+(K(I,2)-S2)^2))*(2*RND(0))
      	SHIELD=SHIELD-H
	? TAB(2,61);INT(SHIELD) USING "####"
        ? TAB(2,38);H;
	IF SHIELD=<100 THEN ? TAB(2,51);TAB(-1,21);"SHIELDS:";TAB(-1,22)
	IF SHIELD<0 THEN GOTO DESTROYED
FIRE2:
	ENERGY=ENERGY-PHASER'POWER
	? TAB(2,19);INT(ENERGY) USING "####"
	IF ENERGY<100 THEN ? TAB(2,10);TAB(-1,21);"ENERGY";TAB(-1,22)
	IF ENERGY<50 THEN GOTO ALLGOOD
	CALL ROVING
         PRINT TAB(15,38);" ";TAB(15,42);" ";TAB(14,39);" ";TAB(14,41);" ";
	IF FX<>44 OR FY<>70 THEN GOTO  NJED1
	IF KM>5000 THEN GOTO SCAN2
PHASE'KILL:
        DAMAGE=0
	FOR I= 1 TO 5
		? TAB(-1,36);
		? TAB(24,70);TAB(-1,37);
	NEXT I
		FOR I=1 TO 5:NEXT I
	? TAB(24,70);TAB(-1,37);
	FOR B=1 TO 3
	FOR I=1 TO 500:NEXT I
	NEXT B
	KKIILLEEDD = KKIILLEEDD+1
	CALL ROVING
	ZROW=FX-31:ZCOL=FY-31
	? TAB(ZROW-1,ZCOL);"   ";TAB(-1,33);
	? TAB(ZROW-1,ZCOL);TAB(-1,32);;"<|>";TAB(-1,33);
	? TAB(ZROW,ZCOL);"     ";TAB(-1,33);
	? TAB(ZROW,ZCOL);TAB(-1,32);"     ";TAB(-1,33);
	? TAB(ZROW+1,ZCOL);">|<";TAB(-1,33);
	? TAB(ZROW+1,ZCOL);TAB(-1,32);">|<";TAB(-1,33);
	? TAB(ZROW+1,ZCOL);TAB(-1,32);">|<";TAB(-1,33);
	FOR I=1 TO 50:PRINT CHR$(7);:NEXT I
	? TAB(ZROW,ZCOL);"***"
	FOR I=1 TO 50:NEXT I
	? TAB(ZROW-1,ZCOL);"    "
	? TAB(ZROW,ZCOL);"***"
	? TAB(ZROW+1,ZCOL);"    "
	FOR I=1 TO 50:NEXT I
	? TAB(ZROW,ZCOL);"     "
	FQ=0
	I=0
PHASE1:
	I=I+1
	IF I>3 THEN GOTO PHASE2
     	IF K(I,3) =<0 GOTO PHASE1
      	CALL A'KLIN
PHASE2:
      	IF KLINGON <= 0 GOTO WON
	IF ENERGY<50 THEN GOTO ALLGOOD
      	IF ENERGY<0 GOTO DESTROYED
 	IF NUMKLING=0 THEN GOTO ALLGOOD ELSE GOTO SCAN2
NJED1:
	IF FX<43 OR FX>45 THEN GOTO ALLSHOT
	IF FY<68 OR FY>72 THEN GOTO ALLSHOT
	DAMAGE=DAMAGE+1:IF DAMAGE=3 THEN GOTO PHASE'KILL
	ZROW=FX-31:ZCOL=FY-31
	PRINT TAB(ZROW-1,ZCOL);TAB(-1,11);"\=/";TAB(-1,12);
	PRINT TAB(ZROW,ZCOL-1);"^"
	PRINT TAB(ZROW,ZCOL+3);"v"
	PRINT TAB(ZROW+1,ZCOL);"/~\"
	PRINT TAB(ZROW+1,ZCOL);TAB(-1,11);"/~\";TAB(-1,12);
	FOR I=1 TO 50:NEXT I
	PRINT TAB(ZROW-1,ZCOL);"    "
	PRINT TAB(ZROW,ZCOL-1);" "
	PRINT TAB(ZROW,ZCOL+3);" "
	PRINT TAB(ZROW+1,ZCOL);"    "
	GOTO SCAN2

ALLSHOT:
	? TAB(24,15);TAB(-1,9);
	GOTO SCAN2
!
!FIGHTER POSITION UPDATE ***
!

FIGHTER'POSITION:
	B$="X"
        IF FQ=1 THEN GOTO NNJED1 ELSE FQ=1
NJED2:
	LET FX=INT(100*RND(1))
	IF FX<36 OR FX>52 THEN GOTO NJED2
NJED3:
	LET FY=INT(200*RND(1))
	IF FY<44 OR FY>97 THEN GOTO  NJED3
	LET KM=INT(10000*RND(1))
	FZ=INT(16*RND(1))
NNJED1:
	IF INT(100*RND(1))>6 THEN GOTO  NJED4
	FZ=INT(16*RND(1))
NJED4:
	IF INT(10*RND(1))<A9 THEN GOTO  NJED5 ELSE X=FX:Y=FY:GOTO NJED6
NJED5:
	IF FZ<>0 THEN GOTO  NJED7 ELSE X=FX-1:Y=FY+1
NJED7:
	IF FZ<>1 THEN GOTO  NJED8 ELSE X=FX:Y=FY+1
NJED8:
	IF FZ<>2 THEN GOTO  NJED9 ELSE X=FX+1:Y=FY+1
NJED9:
	IF FZ<>3 THEN GOTO  NJED10 ELSE X=FX+1:Y=FY
NJED10:
	IF FZ<>4 THEN GOTO  NJED11 ELSE X=FX+1:Y=FY-1
NJED11:
	IF FZ<>5 THEN GOTO  NJED12 ELSE X=FX:Y=FY-1
NJED12:
	IF FZ<>6 THEN GOTO  NJED13 ELSE X=FX-1:Y=FY-1
NJED13:
	IF FZ<>7 THEN GOTO  NJED14 ELSE X=FX-1:Y=FY
NJED14:
	IF FZ<>8 THEN GOTO  NJED15 ELSE X=FX-1:Y=FY+2
NJED15:
	IF FZ<>9 THEN GOTO  NJED16 ELSE X=FX-1:Y=FY+3
NJED16:
	IF FZ<>10 THEN GOTO  NJED17 ELSE X=FX+1:Y=FY+3
NJED17:
	IF FZ<>11 THEN GOTO  NJED18 ELSE X=FX+1:Y=FY+2
NJED18:
	IF FZ<>12 THEN GOTO  NJED19 ELSE X=FX+1:Y=FY-2
NJED19:
	IF FZ<>13 THEN GOTO  NJED20 ELSE X=FX+1:Y=FY-3
NJED20:
	IF FZ<>14 THEN GOTO  NJED21 ELSE X=FX-1:Y=FY-3
NJED21:
	IF FZ<>15 THEN GOTO  NJED6 ELSE X=FX-1:Y=FY-2
NJED6:
	IF FL$<>"1" THEN GOTO  NJED22 ELSE X=X-1:Y=Y+1
NJED22:
	IF FL$<>"2" THEN GOTO  NJED23 ELSE X=X-2:Y=Y
NJED23:
	IF FL$<>"3" THEN GOTO  NJED24 ELSE X=X-1:Y=Y-1
NJED24:
	IF FL$<>"4" THEN GOTO  NJED25 ELSE X=X:Y=Y+2
NJED25:
	IF FL$<>"6" THEN GOTO  NJED26 ELSE X=X:Y=Y-2
NJED26:
	IF FL$<>"7" THEN GOTO  NJED27 ELSE X=X+1:Y=Y+1
NJED27:
	IF FL$<>"8" THEN GOTO  NJED28 ELSE X=X+2:Y=Y
NJED28:
	IF FL$<>"9" THEN GOTO  NJED29 ELSE X=X+1:Y=Y-1
NJED29:
	IF X>39 AND X<50 AND Y>55 AND Y<87 THEN GOTO  NJED30
	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  NJED31 ELSE GOTO NJED32
NJED30:
	IF SGN(KM)=+1 THEN KM=KM-INT(200*RND(1))
	IF SGN(KM)=-1 THEN KM=KM+INT(200*RND(1))
NJED31:
	IF X<36 OR X>52 OR Y<42 OR Y>98 THEN GOTO  NJED32
	IF X=FX AND Y=FY THEN RETURN
	ZROW=FX-31:ZCOL=FY-31
	PRINT TAB(ZROW,ZCOL);"   "
	FX=X:FY=Y
	ZROW=FX-31:ZCOL=FY-31
	PRINT TAB(ZROW,ZCOL);TAB(-1,23);tab(-1,44);TAB(-1,24);"o";TAB(-1,23);tab(-1,43);TAB(-1,24);
	PRINT TAB(1,19);KM
	EV=10*(44-FX):PRINT TAB(1,42);EV
	BR=3*(FY-70):PRINT TAB(1,62);BR
     	IF DAMAGE(8)<0 THEN ? TAB(24,26);"COMPUTER DAMAGE HINDERS ACCURACY";:RETURN
        IF KM<5000 AND EV>-11 AND EV<11 AND BR>-11 AND BR<11 THEN ? TAB(24,26);"PHASERS LOCKED ON TARGET"; &
	ELSE ? TAB(24,1);TAB(-1,9);
	RETURN
NJED32:
	ZROW=FX-31:ZCOL=FY-31
	PRINT TAB(ZROW,ZCOL);"   ";
	FQ=0:RETURN
ALLGOOD:
	CALL MAIN'DISPLAY
	GOTO MAIN
ROVING:
        ROVING=INT(10*RND(1))
	FL$=ROVING
	IF FL$="0" OR FL$="5" THEN GOTO ROVING	
	RETURN
!
!*** FIRE PHOTON ROUTINE
!
PHOTONS:
	CALL CLR'CMD
	IF DAMAGE(5)<0 THEN ? TAB(13,26);" PHOTON TUBES NOT OPERATIONAL":GOTO COMMAND'IT
	IF PHOTON<=0 THEN ? TAB(13,26);"  ALL PHOTON TORPEDOES EXPENDED":GOTO COMMAND'IT
FIR'PHO:
	? TAB(13,4);"COURSE (1-9): ";
 	VAR1=0:CALL XIN
	CALL COMPAS
	CALL CLR'CMD
        C1=VAR1
	IF C1=5 THEN GOTO FIR'PHO
	IF C1<1 THEN CALL PRINT'COMPAS:GOTO COMMAND'IT
	IF C1<1 OR C1 >9 GOTO FIR'PHO
        PHOTON=PHOTON-1
	ENERGY=ENERGY-PHOTON'POWER
	IF ACTION<5 THEN GOTO NO'MOV
	IF INT(10*RND(1))<ACTION-2 THEN CALL RANDOM'MOVE	&
		:CALL MAIN'INFO:CALL BOT'SCREEN
NO'MOV:
	C2=INT(C1)
	X1=C(C2,1)+(C(C2+1,1)-C(C2,1))*(C1-C2)
	X2=C(C2,2)+(C(C2+1,2)-C(C2,2))*(C1-C2)
	X=S1:Y=S2
	CALL ENE
	CALL PHO
	WAS=0 : TER=0
AG'PHO:
	X=X+X1:Y=Y+X2
	IF X<1 OR X>=9 OR Y< 1 OR Y>=9 GOTO MISSED
	PROW=CHR$(48+X)+3:PCOL=CHR$(48+Y)*4+24
	IF X<=0 OR Y<=0 GOTO MISSED
	IF SECTOR(X,Y)="   " THEN ? TAB(PROW,PCOL);"+";:CALL PHO'FIX : GOTO AG'PHO
	IF SECTOR(X,Y)<>"+K+" THEN GOTO NO'STAR
	CALL PHO'FIX
	PCOL=PCOL-1
	? TAB(PROW,PCOL);"   ";
     	? TAB(13,62);"KLINGON AT SECTOR";
	? TAB(14,62);"   "X","Y;" IS"
	? TAB(15,62);"*** DESTROYED ***";CHR$(7);
	NUMKLING=NUMKLING-1
	KLINGON=KLINGON-1
	CALL KLI
	CALL CON
	IF KLINGON<=0 GOTO WON
	FOR I=1 TO 3
	IF INT(X+.5)<>K(I,1) GOTO NEX'PHO
 	IF INT(Y+.5)=K(I,2) LET K(I,3)=0:I=3
NEX'PHO:
	NEXT I
	GOTO BAS'DES
NO'STAR:
        IF SECTOR(X,Y)=" * " :? TAB(13,26);"YOU CAN'T DESTROY STARS" : GOTO MISSED
        IF SECTOR(X,Y)<>">B<" GOTO AG'PHO
        ? TAB(13,26);"*** STAR BASE DESTROYED **** "
	NUMBASE=NUMBASE-1
BAS'DES:
	SECTOR(X,Y)="   "
	CALL BOT'SCREEN
	GALAXY(Q1,Q2)=NUMKLING*100+NUMBASE*10+NUMSTAR
	GOTO MIS1
MISSED:
	? TAB(14,62);"TORPEDO MISSED";CHR$(7);
MIS1:
	CALL FIRE'BACK
	IF ENERGY<0 GOTO DESTROYED ELSE GOTO COMMAND'IT
!
!*** SHIELD ALLOCATION ROUTINE
!
SHIELDS:
	IF DAMAGE(6)<0 THEN ? TAB(9,15);TAB(-1,21);TAB(9,15);"DAMAGE";TAB(-1,22);:GOTO COMMAND'IT
NO'SHIELD:
	? TAB(15,25);"CAPTIAN ";CAPTAIN;","
	? TAB(16,25);"You have enough Energy for ";
	IF ENERGY+SHIELD>1999 THEN ? "100%"
	IF ENERGY+SHIELD<2000 AND ENERGY+SHIELD>1499 THEN ? "75%"
	IF ENERGY+SHIELD<1500 AND ENERGY+SHIELD>999 THEN ? "50%"
	IF ENERGY+SHIELD<999 THEN ? "25%"
        AMT'SHELD=0
PERC'SHIELD:
	? TAB(17,25);"Power to the SHIELDS."
	? TAB(18,25);"0=0%  1=25%  2=50%  3=75%  4=100%"
	? TAB(19,25);"Enter Amount of SHIELD Power ";
	CALL XIN
	AMT'SHELD=VAR1
	IF AMT'SHELD>4 THEN GOTO PERC'SHIELD
	IF AMT'SHELD=1 THEN AMT'SHELD=500
	IF AMT'SHELD=2 THEN AMT'SHELD=1000
	IF AMT'SHELD=3 THEN AMT'SHELD=1500
	IF AMT'SHELD=4 THEN AMT'SHELD=2000
	CALL CLR'CMD
	IF AMT'SHELD <= 0 THEN ENERGY=ENERGY+SHIELD:SHIELD=0:GOTO SHIELD'RET
	IF ENERGY + SHIELD < AMT'SHELD THEN AMT'SHELD=(ENERGY+SHIELD)/2
	ENERGY = ENERGY + SHIELD - AMT'SHELD
	SHIELD = AMT'SHELD
SHIELD'RET:
	CALL ENE:CALL SHE
	GOTO COMMAND'IT
!
! COMPUTER REPORT & REPAIR ROUTINE
! 
DAMAGE'GO:
 	IF DAMAGE(8)<0 THEN GOTO COMMAND'IT
	? TAB(15,25);"COMPUTER ON. MAKE SELECTION"
	? TAB(17,25);"(1) DAMAGE REPORT"
	? TAB(18,25);"(2) DAMAGE REPAIR"
	? TAB(15,54);
	CALL XIN
	CALL CLR'CMD
	IF VAR1=0 THEN GOTO DAM'RET
	IF VAR1=1 THEN GOTO D'REPORT
REPAIR:
	CALL CLR'POINT
	? TAB(15,25);"Each unit of REPAIR will take "
	? TAB(16,25);"100 units of ENERGY."
	? TAB(17,25);"Enter Device number to REPAIR ";:CALL XIN
	IF VAR1<1 THEN GOTO MAIN
	IF VAR1>8 THEN GOTO MAIN
	RP=VAR1
	? TAB(18,25);DEVICE(RP)[3,10] ;" has damage of ";DAMAGE(RP)
	? TAB(19,25);"Number of REPAIR units for "
	? TAB(20,25);DEVICE(RP)[3,10];" ";:CALL XIN
	DAMAGE(RP)=DAMAGE(RP)+VAR1
	RP=VAR1*100
	ENERGY=ENERGY-RP
DAM'RET:
	CALL CLR'CMD
	GOTO MAIN
D'REPORT:
	FOR R1=1 TO 8:PROW = R1+3
	TEMPD=100+DAMAGE(R1)
        ? TAB(PROW,15);TEMPD USING "###.##%"
	NEXT R1
	VAR1=0:CALL XIN
	GOTO MAIN
NO'KLINGS:
        ? TAB(19,10);"Short Range Sensors report no KLINGONS in this QUADRANT."
	GOTO COMMAND'IT
A'KLIN:
    	? TAB(24,20);"**** KLINGON AT SECTOR ";CHR$(48+K(I,1));",";CHR$(48+K(I,2));" DESTROYED ****";
	FOR ZZ=1 TO 750:NEXT ZZ
	NUMKLING=NUMKLING-1
	KLINGON=KLINGON-1
	SECTOR(K(I,1),K(I,2))="   "
	GALAXY(Q1,Q2)=NUMKLING*100+NUMBASE*10+NUMSTAR
     	K(I,3) =0
	RETURN
FIRE'BACK:
	IF C$<>"DOCKED" GOTO FIR'KI
  	? TAB(13,26);"BASE SHIELDS PROTECT U.S.S. AMUS";
	RETURN
FIR'KI:
	IF NUMKLING <= 0 GOTO FIR'RE
	FOR I=1 TO 3
	IF K(I,3)<=0 THEN GOTO FIR'NE
	H=(K(I,3)/SQR((K(I,1)-S1)^2+(K(I,2)-S2)^2))*(2*RND(0))
	SHIELD=SHIELD-H
	? TAB(19,25);"Shield DAMAGE REPORT"
	? TAB(I+20,25);H;"hit on SHIELD from SECTOR ";CHR$(48+K(I,1));",";CHR$(48+K(I,2));
	CALL SHE
	IF SHIELD<0 I=3:NEXT I:GOTO DESTROYED
FIR'NE:	
	NEXT I
FIR'RE:
	RETURN
DEAD:
	? TAB(15,25);"THE U.S.S AMUS IS DEAD IN SPACE."
	? TAB(17,25);"IF YOU SURVIVE ALL IMPENDING"    
	? TAB(18,25);"ATTACK YOU WILL BE DEMOTED"
	? TAB(19,25);"TO PRIVATE"
DEADY:	
	IF NUMKLING<=0 GOTO STIL'KLIN
	CALL FIRE'BACK
	GOTO DEADY
TIM'UP:
  	?TAB(15,25);"IT IS STARDATE";T
	GOTO STIL'KLIN
DESTROYED:
	? TAB(16,25);"THE U.S.S AMUS HAS BEEN DESTROYED."
	? TAB(17,25);"THE FEDERATION WILL BE CONQUERED"
STIL'KLIN:
	? TAB(18,25);"THERE ARE STILL";KLINGON;"KLINGON CRUISERS"
!	? ENERGY ;"   ";SHIELD
PLAY:
        ? TAB(20,25);
        INPUT "Do you want to Fly Again? ";RESP$
	? TAB(-1,0);
	IF UCS(RESP$[1,1])= "Y" GOTO BEGIN ELSE END
WON:
	? TAB(15,25);"THE LAST KLINGON BATTLE CRUISER"
	? TAB(16,25);"IN THE GALAXY HAS BEEN DESTROYED"
	? TAB(17,25);"THE FEDERATION HAS BEEN SAVED"
	? TAB(19,25);"YOUR EFFICIENCY RATING =";((K7/(STARTIME-T0))*1000)
	GOTO PLAY
MAIN'INFO:
	CALL CHECK'DOCK
	IF FLAG=0 GOTO MAIN'D
	D0=1:C$="DOCKED":ENERGY=4000:PHOTON=10:SHIELD=0
	FOR I = 1 TO 8
	IF DAMAGE(I)< 0 THEN DAMAGE(I)=DAMAGE(I)+1
	NEXT I
	? TAB(13,26);"SHIELDS DROPPED FOR DOCKING ";
	GOTO MAIN'DA
MAIN'D:
	D0=0
	IF NUMKLING>0 LET C$=" RED " ELSE IF ENERGY<E0*.1 LET C$="YELLOW" ELSE LET C$="GREEN "	
MAIN'DA:
	IF DAMAGE(1) >= 0 GOTO REP 
BAD'SCR:
	? TAB(4,26);"          *************          "
	? TAB(5,26);"                                 "
	? TAB(6,26);"       VISUAL SCREEN DAMAGED     "
        ? TAB(7,26);"     ALONG WITH IMPULSE ENGINE   "
    	? TAB(8,26);"         GUAGES INCORRECT        " 
	? TAB(9,26);"          *************          "
	? TAB(10,26);"                                 "
	? TAB(11,26);"                                 ";
     	GOTO RET 
REP:
     	FOR I = 1 TO 8
      	IF DAMAGE(I)=>0 THEN ? TAB(I+3,15);" OK    "
      	IF DAMAGE(I)<0 THEN ? TAB(I+3,15);"DAMAGED"
    	NEXT I
	ST$=STARTIME USING "####"
     	? TAB(4,74);ST$;
     	CALL CON
	CALL QUAD
        CALL SEC
	CALL ENE
    	? TAB(7,74);BASES
	CALL KLI
     	CALL PHO
     	IF SHIELD < 100 THEN ? TAB(9,15);TAB(-1,21);" LOW  ";TAB(-1,22);
	CALL SHE
RET:	
	RETURN
COMPUTER'RECORDS:
	IF DAMAGE(7)<0 THEN ? TAB(10,15); "DAMAGED";: GOTO COMMAND'IT
    	? TAB(-1,0);"LONG-RANGE SCAN     ";TAB(-1,11);"[KBS]";TAB(-1,12)
	PRINT
!              +--1--+--2--+--3--+--4--+--5--+--6--+--7--+--8--+
	PRINT "   1     2     3     4     5     6     7     8"
	CALL H'BAR
	FOR I = 1 TO 8
		PRINT CHR(48+I);
		FOR J = 1 TO 8	
			CALL V'BAR
			LRS = Z(I,J) USING "#ZZ"
			IF Q1 = I AND Q2 = J THEN PRINT TAB(-1,32); &
				ELSE IF LRS[2,2] <> "0" THEN PRINT TAB(-1,21); &
					ELSE PRINT " ";
			IF LRS = "000" THEN PRINT "   "; ELSE PRINT LRS;
			IF Q1 = I AND Q2 = J THEN PRINT TAB(-1,33); &
				ELSE IF LRS[2,2] <> "0" THEN PRINT TAB(-1,22); &
					ELSE PRINT " ";
		NEXT J
		CALL V'BAR
		PRINT
		CALL H'BAR
	NEXT I

!   	FOR I=1 TO 8
!   	?CHR$(48+I)
!       ?USING FRM,Z(I,1),Z(I,2),Z(I,3),Z(I,4),Z(I,5),Z(I,6),Z(I,7),Z(I,8)
!       IF I=7 GOTO COMP'BOT
!       IF I=8 GOTO COMP'NEX
!   	?"   _____ _____ _____ _____ _____ _____ _____ _____" : GOTO COMP'NEX
COMP'BOT:
!       ?"   __1__ __2__ __3__ __4__ __5__ __6__ __7__ __8__"
COMP'NEX:
!	NEXT I
	? TAB(10,55);"COMPUTER RECORD OF";
	? TAB(12,55);"GALAXY FOR QUADRANT";
	? TAB(14,62);CHR$(48+Q1);",";CHR$(48+Q2);
	PRINT TAB(Q1*2+3,Q2*6-1);
!       LL1=(CHR$(48+Q1)*3)-2 :LL2=(CHR$(48+Q2)*6)-1
!	? TAB(LL1,LL2);CHR(A1);
	NFLAG=1
	VAR1=0:CALL XIN
	? TAB(-1,0);
	CALL MAIN'DISPLAY
	GOTO MAIN

H'BAR:
	PRINT " ";TAB(-1,23);
	FOR K = 1 TO 8
		PRINT TAB(-1,48);
		FOR L = 1 TO 5 : PRINT TAB(-1,46); : NEXT L
	NEXT K
	PRINT TAB(-1,48);TAB(-1,24);
	PRINT
	RETURN
V'BAR:
	PRINT TAB(-1,23);TAB(-1,47);TAB(-1,24);
	RETURN

HELP'US:
	LOOKUP "DSK0:USAMUS.HLP[7,1]",ANSWER
	IF ANSWER<1 THEN GOTO NOT'IN'HLP 
	OPEN #1,"DSK0:USAMUS.HLP[7,1]",INPUT
	GOTO SEE'IN
NOT'IN'HLP:
	OPEN #1, "USAMUS.HLP",INPUT
	GOTO SEE'IN
SEE'HEL:
	INPUT "HIT RETURN TO CONTINUE",RESP$
	? TAB(-1,0);
SEE'IN:
	INPUT LINE #1,HLP
	IF EOF(1) # 0 THEN GOTO CL'HELP
	LCONT=LCONT+1
	? HLP
	IF LCONT=22 THEN LCONT=0:?:GOTO SEE'HEL
	GOTO SEE'IN
CL'HELP:
	INPUT "HIT RETURN TO CONTINUE",RESP$
	CLOSE #1
	RETURN
CLR'CMD:
	CALL CON
	? TAB(13,3);SPACE$(19);
	FOR I=15 TO 18
	? TAB(I,25);SPACE$(34);
	NEXT I
	FOR I=19 TO 23
	? TAB(I,25);TAB(-1,9);
	NEXT I
	FOR I=12 TO 17
	? TAB(I,62);SPACE$(17);
	NEXT I
	? TAB(13,26);SPACE$(32);
	RETURN
CLR'POINT:	
	? TAB(-1,11);
	FOR I = 4 TO 11
	? TAB(I,3);DEVICE(I-3);
	NEXT I
	? TAB(-1,12);
	RETURN
XIN:	
	DFLAG=0
  	? TAB(-1,28);
        VAR1=0 :VARA=""
        FOR LONI=1 TO TIM'LEN
     	XCALL INKEY,VARA
	VAR1=VAL(VARA)
	IF LONI=TIM'LEN/2 THEN DFLAG=1
        IF VARA#"" THEN LONI=TIM'LEN
        NEXT LONI
  	? TAB(-1,29);
	IF NFLAG=1 THEN NFLAG=0 :RETURN
	IF DFLAG=1 THEN CALL RANDOM'MOVE:CALL MAIN'INFO:CALL BOT'SCREEN
	RETURN
BOT'SCREEN:	
 	IF DAMAGE(1)<0 CALL BAD'SCR:RETURN
	FOR I = 1 TO 8
	? TAB(I+3,26);ROW(I)
	NEXT I
	RETURN
STA:	
	? TAB(4,74);STARTIME;
	RETURN
CON:	
	IF NUMKLING>0 LET C$=" RED " ELSE IF ENERGY<E0*.1 LET C$="YELLOW" ELSE LET C$="GREEN "	
	IF C$=" RED " THEN ? TAB(15,11);TAB(-1,21); ELSE ? TAB(15,11);TAB(-1,22);
	? TAB(15,12);"CONDITION";
	IF C$=" RED " THEN ? TAB(-1,22);TAB(17,12);TAB(-1,21); ELSE ? TAB(17,12);TAB(-1,22);
     	? TAB(17,13);C$;
	IF C$=" RED " THEN ? TAB(-1,22);
    	RETURN
QUAD:
    	? TAB(5,74);CHR$(48+Q1);","CHR$(48+Q2);
	IF VAL(CHR$(48+Q1))<1 OR VAL(CHR$(48+Q1))>8 THEN CALL BAD'QUAD
	IF VAL(CHR$(48+Q2))<1 OR VAL(CHR$(48+Q2))>8 THEN CALL BAD'QUAD
    	RETURN
SEC:	
	? TAB(6,74);CHR$(48+S1);",";CHR$(48+S2);
    	RETURN
ENE:	
      	? TAB(9,72);INT(ENERGY);" "
     	RETURN
BSS:	
    	? TAB(7,72);BASES
    	RETURN
KLI:	
    	? TAB(8,72);KLINGON;
    	RETURN
PHO:
	IF DAMAGE(5)<0 THEN RETURN
    	? TAB(8,15);PHOTON;"   ";
        RETURN	
SHE:	
    	IF SHIELD < 100 THEN ? TAB(9,15);TAB(-1,21);"LOW ";TAB(-1,22);CHR$(7);
	IF SHIELD=0 THEN RETURN
	IF DAMAGE(6)<0 THEN RETURN
        ? TAB(9,15);INT(SHIELD);"  "
     	RETURN
PHO'FIX:	
    	IF WAS=0 AND TER=0 THEN WAS=PROW:TER=PCOL:RETURN
    	? TAB(WAS,TER);"  ";
    	WAS=PROW:TER=PCOL
    	RETURN
BAD'QUAD:
	? TAB(15,25);"CAPTAIN ";CAPTAIN;","           
	? TAB(16,25);"You have flown out of the GALAXY "
	? TAB(17,25);"into a Black Hole. Retrace flight"
	? TAB(18,25);"path to get back to the GALAXY."
	RETURN
CHECK'DOCK:	
    	FLAG=0
        FOR I=S1-1 TO S1+1
        FOR J=S2-1 TO S2+1
    	IF I>0 AND I<9 AND J>0 AND J<9 THEN IF SECTOR(I,J)=">B<" LET FLAG=1
    	NEXT J
	NEXT I
    	RETURN
COMPAS:
	IF VAR1=1 THEN ? TAB(17,4);"1";
 	IF VAR1=2 THEN ? TAB(17,6);"2";
 	IF VAR1=3 THEN ? TAB(17,8);"3";
 	IF VAR1=4 THEN ? TAB(16,4);"4";
 	IF VAR1=6 THEN ? TAB(16,8);"6";
 	IF VAR1=7 THEN ? TAB(15,4);"7";
 	IF VAR1=8 THEN ? TAB(15,6);"8";
 	IF VAR1=9 THEN ? TAB(15,8);"9";
	RETURN
PRINT'COMPAS:
!!	? TAB(15,3);TAB(-1,11);
	? TAB(15,4);TAB(-1,11);"7 8 9";TAB(-1,12);
	? TAB(16,4);TAB(-1,11);"4 * 6";TAB(-1,12);
	? TAB(17,4);TAB(-1,11);"1 2 3";TAB(-1,12);

!PRINT SHORT-RANGE SCAN
	NUM = 19
	FOR I=Q1-1 TO Q1+1
		N(1)=0:N(2)=0:N(3)=0
		FOR J=Q2-1 TO Q2+1
			IF I<1 OR I>8 OR J<1 OR J>8 THEN N(J-Q2+2) = 999 : GOTO MORE'SCANN
			N(J-Q2+2)=GALAXY(I,J)
			IF DAMAGE(7)<0 GOTO MORE'SCAN
			Z(I,J)=GALAXY(I,J)
MORE'SCANN:	
		NEXT J
		NUM=NUM+1
		? TAB(NUM,4);
		FOR J = 1 TO 3
			IF N(J) = 999 THEN PRINT "***"; &
				ELSE IF I = 2 AND J = 2 THEN PRINT TAB(-1,11);N(J) USING "#ZZ";TAB(-1,12); &
					ELSE PRINT N(J) USING "#ZZ";
			IF J < 3 THEN PRINT "  ";
		NEXT J
	NEXT I
	RETURN
ABORT:
	? TAB(-1,0);
	?
	? "CAPTAIN ";CAPTAIN;","
	IF ERR(0)=8 THEN GOTO BAD'GALAXY
	IF ERR(0)>1 THEN GOTO REAL'PROBLEM
	?
	? "The U.S.S AMUS has been destroyed by a CLASS ^C Asteroid"
        ? 
	? "Try Commanding the U.S.S AMUS again, sometime after it is"
	? "Repaired !!!"
	GOTO FLASHY

BAD'GALAXY:
	? 
	? "You have exceeded the limits of your GALAXY, (You got lost)."
	? "Your last coordinates were ";CHR$(48+Q1);",";CHR$(48+Q2)
	? "well out of the designated 8 by 8 GALAXY. Where did you learn"
	? "how to navigate? At Sears? You have been destroyed by a "
	? "Galactic Subscript out of range of your comprehension."
	?
	? "Try again when the U.S.S. AMUS is rebuilt !!!"

FLASHY:
	FOR I=1 TO 5 
	? TAB(-1,36);
	? TAB(-1,37);
	NEXT I
	FOR I=1 TO 3:NEXT I
	? TAB(-1,37);TAB(-1,37);TAB(-1,28);
	END


LEVEL:
	PRINT TAB(-1,12);TAB(-1,29);
	PRINT TAB(5,30); "LEVEL OF ACTION"; 
	PRINT TAB(6,20); "       "; 
	PRINT TAB(7,12); "Lowest"; TAB(7,56); " Highest"; 
	PRINT TAB(9,13); TAB(-1,23); TAB(-1,11); TAB(-1,40); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,45); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,45); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,45); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,45); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,12); TAB(-1,46); TAB(-1,11); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,45); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,45); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,45); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,41); 
	PRINT TAB(10,13); TAB(-1,24); ""; TAB(-1,12); "1"; TAB(10,19); "2"; TAB(10,25); 
	PRINT "3"; TAB(10,31); "4"; TAB(10,37); "5"; TAB(10,43); "6"; TAB(10,49); "7"; TAB(10,55); 
	PRINT "8"; TAB(10,61); "9"; 
	PRINT TAB(-1,12); TAB(-1,28);
LEVEL'AG:
	? TAB(15,10);:INPUT "Enter Level of Action desired ",ACTION
	IF ACTION <1 OR ACTION>9 THEN GOTO GIVE'LEVEL
	IF ACTION=1 THEN TIM'LEN=5000
	IF ACTION=2 THEN TIM'LEN=4500
	IF ACTION=3 THEN TIM'LEN=4000
	IF ACTION=4 THEN TIM'LEN=3000
	IF ACTION=5 THEN TIM'LEN=2500
	IF ACTION=6 THEN TIM'LEN=2000
	IF ACTION=7 THEN TIM'LEN=1500
	IF ACTION=8 THEN TIM'LEN=1000
	IF ACTION=9 THEN TIM'LEN=500
	PHOTON'POWER=(ACTION*2)*10
	PHASER'POWER=ACTION*10
	RETURN
GIVE'LEVEL:
	? TAB(22,1);" Regulation 48.432-444b states that all potential Captains must select an "
	? TAB(23,1);" ACTION level greater than 0.                       CR to continue";
	INPUT "",ACTION
	GOTO LEVEL'AG
!
! RANDOM MOVEMENT OF KLINGONS ON SCREEN DISPLAY
!
RANDOM'MOVE:
   	IF Q1<1 OR Q1>8 OR Q2<1 OR Q2>8 GOTO NO'ENEM
   	X=GALAXY(Q1,Q2)*.01
   	NUMKLING=INT(X)
   	NUMBASE=INT((X-NUMKLING)*10)
   	NUMSTAR=GALAXY(Q1,Q2)-INT(GALAXY(Q1,Q2)*.1)*10
   	IF NUMKLING=0 GOTO S'NEX
   	? TAB(13,26);TAB(-1,21);"        COMBAT AREA       ";TAB(-1,22);CHR$(7);
        IF SHIELD>200 GOTO S'NEX
   	? TAB(9,3);DEVICE(6);
 	? TAB(15,25);"CAPTAIN ";CAPTAIN;","
	? TAB(16,25);"SHIELDS are DANGEROUSLY LOW !";CHR$(7);
	FOR I=1 TO 10 :? CHR$(7);: NEXT I
S'NEX:
   	FOR I=1 TO 3:FOR J=1 TO 3:K(I,J)=0:NEXT J:NEXT I
NO'ENEM:
   	FOR I=1 TO 3:K(I,3)=0:NEXT I
        SHORTRANGESCREEN=SPACE(256)
        SECTOR(S1,S2)="<E>"
       IF NUMKLING=0 GOTO NO'NEX ELSE FOR I=1 TO NUMKLING
MO'EN:
   	R1=INT(RND(0)*8+1):R2=INT(RND(0)*8+1)
       IF SECTOR(R1,R2)<>"   "GOTO MO'EN
       SECTOR(R1,R2)="+K+":K(I,1)=R1:K(I,2)=R2:K(I,3)=S9
       NEXT I
NO'NEX:
   	IF NUMBASE=0 GOTO NO'BAS ELSE FOR I=1 TO NUMBASE
MOR'BAS:
   	R1=INT(RND(0)*8+1):R2=INT(RND(0)*8+1)
       IF SECTOR(R1,R2)<>"   " GOTO MOR'BAS
        SECTOR(R1,R2)=">B<"
        NEXT I
NO'BAS:
    	IF NUMSTAR=0 GOTO RANDOM'RETURN ELSE FOR I=1 TO NUMSTAR
MO'STAR:
    	R1=INT(RND(0)*8+1):R2=INT(RND(0)*8+1)
        IF SECTOR(R1,R2)<>"   " GOTO MO'STAR
        SECTOR(R1,R2)=" * "
        NEXT I
RANDOM'RETURN:
	RETURN
GIVE'CAP:
	? TAB(22,1);"Regulation 43.234-90 states that all potential Captains must give their name."
        ? TAB(23,1);"                              CR to continue ";
	INPUT "",CAPTAIN	
	GOTO ENTRY
!
! SCREENS
!

MAIN'DISPLAY:
	PRINT TAB(-1,0); TAB(-1,29);
	PRINT TAB(-1,12);
	PRINT "     "; TAB(1,34); " "; TAB(-1,32); " U.S.S. AMUS "; TAB(1,49); TAB(-1,33); 
	PRINT TAB(3,2); TAB(-1,23); TAB(-1,38); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,42); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,11); TAB(-1,39); 
	PRINT TAB(-1,24); ""; TAB(-1,12); " "; TAB(-1,23); TAB(-1,38); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,42); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,42); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,42); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,42); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,42); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,42); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,42); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,42); TAB(-1,46); TAB(-1,46); TAB(-1,39); TAB(-1,24); " "; 
	PRINT TAB(-1,23); TAB(-1,11); TAB(-1,38); TAB(-1,46); TAB(-1,12); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,42); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,11); TAB(-1,46); TAB(-1,39); 
	PRINT TAB(4,2); TAB(-1,12); TAB(-1,47); TAB(-1,24); "          "; TAB(4,14); 
	PRINT TAB(-1,23); TAB(-1,11); TAB(-1,47); TAB(-1,24); ""; TAB(-1,12); "        "; 
	PRINT TAB(-1,23); TAB(-1,47); TAB(-1,24); " "; TAB(-1,23); TAB(-1,44); 
	PRINT TAB(4,55); TAB(-1,24); "   "; TAB(4,59); TAB(-1,23); TAB(-1,43); 
	PRINT TAB(-1,24); " "; TAB(-1,23); TAB(-1,11); TAB(-1,47); TAB(-1,24); 
	PRINT ""; TAB(-1,12); "STARDATE"; TAB(4,71); TAB(-1,23); TAB(-1,11); TAB(-1,47); 
	PRINT TAB(-1,24); ""; TAB(-1,12); "      "; TAB(4,79); TAB(-1,23); TAB(-1,11); TAB(-1,47); 
	PRINT 
	PRINT TAB(5,2); TAB(-1,12); TAB(-1,47); TAB(-1,24); "        "; TAB(5,14); 
	PRINT TAB(-1,23); TAB(-1,47); TAB(-1,24); "        "; TAB(-1,23); TAB(-1,47); 
	PRINT TAB(-1,24); " "; TAB(-1,23); TAB(-1,44); TAB(5,44); TAB(-1,24); 
	PRINT "            "; TAB(5,59); TAB(-1,23); TAB(-1,43); TAB(-1,24); " "; TAB(-1,23); 
	PRINT TAB(-1,11); TAB(-1,47); TAB(-1,24); ""; TAB(-1,12); "QUADRANT "; 
	PRINT TAB(-1,23); TAB(-1,11); TAB(-1,47); TAB(-1,24); ""; TAB(-1,12); "      "; 
	PRINT TAB(5,79); TAB(-1,23); TAB(-1,11); TAB(-1,47); 
	PRINT TAB(6,2); TAB(-1,12); TAB(-1,47); TAB(-1,24); "           "; TAB(-1,23); TAB(-1,47); 
	PRINT TAB(-1,24); "        "; TAB(-1,23); TAB(-1,47); TAB(-1,24); " "; 
	PRINT TAB(-1,23); TAB(-1,44); TAB(6,30); TAB(-1,24); "                      "; TAB(6,59); 
	PRINT TAB(-1,23); TAB(-1,43); TAB(-1,24); " "; TAB(-1,23); TAB(-1,11); TAB(-1,47); 
	PRINT TAB(-1,24); ""; TAB(-1,12); "SECTOR  "; TAB(6,71); TAB(-1,23); TAB(-1,47); 
	PRINT TAB(-1,24); "      "; TAB(6,79); TAB(-1,23); TAB(-1,11); TAB(-1,47); 
	PRINT 
	PRINT TAB(7,2); TAB(-1,12); TAB(-1,47); TAB(-1,24); "          "; TAB(7,14); 
	PRINT TAB(-1,23); TAB(-1,11); TAB(-1,47); TAB(-1,24); ""; TAB(-1,12); "        "; 
	PRINT TAB(-1,23); TAB(-1,47); TAB(-1,24); " "; TAB(-1,23); TAB(-1,44); 
	PRINT TAB(7,52); TAB(-1,24); " "; TAB(7,59); TAB(-1,23); TAB(-1,43); 
	PRINT TAB(-1,24); " "; TAB(-1,23); TAB(-1,11); TAB(-1,47); TAB(-1,24); 
	PRINT ""; TAB(-1,12); "STARBASE"; TAB(7,71); TAB(-1,23); TAB(-1,11); TAB(-1,47); 
	PRINT TAB(7,73); TAB(-1,24); ""; TAB(-1,12); "     "; TAB(7,79); TAB(-1,23); 
	PRINT TAB(-1,11); TAB(-1,47); 
	PRINT TAB(8,2); TAB(-1,12); TAB(-1,47); TAB(-1,24); "          "; TAB(8,14); 
	PRINT TAB(-1,23); TAB(-1,11); TAB(-1,47); TAB(-1,24); ""; TAB(-1,12); "    "; 
	PRINT TAB(8,20); "   "; TAB(-1,23); TAB(-1,47); TAB(-1,24); " "; TAB(-1,23); TAB(-1,44); 
	PRINT TAB(8,51); TAB(-1,24); " "; TAB(8,59); TAB(-1,23); TAB(-1,43); 
	PRINT TAB(-1,24); " "; TAB(-1,23); TAB(-1,11); TAB(-1,47); TAB(-1,24); 
	PRINT ""; TAB(-1,12); "KLINGONS "; TAB(-1,23); TAB(-1,11); TAB(-1,47); 
	PRINT TAB(8,73); TAB(-1,24); ""; TAB(-1,12); "  "; TAB(8,76); "  "; TAB(8,79); 
	PRINT TAB(-1,23); TAB(-1,11); TAB(-1,47); 
	PRINT TAB(9,2); TAB(-1,12); TAB(-1,47); TAB(-1,24); "          "; TAB(9,14); 
	PRINT TAB(-1,23); TAB(-1,11); TAB(-1,47); TAB(-1,24); ""; TAB(-1,12); "        "; 
	PRINT TAB(-1,23); TAB(-1,47); TAB(-1,24); " "; TAB(-1,23); TAB(-1,44); 
	PRINT TAB(9,29); TAB(-1,24); "                         "; TAB(9,59); TAB(-1,23); TAB(-1,43); 
	PRINT TAB(-1,24); " "; TAB(-1,23); TAB(-1,11); TAB(-1,47); TAB(-1,24); 
	PRINT ""; TAB(-1,12); "FUEL RODS"; TAB(-1,23); TAB(-1,11); TAB(-1,47); 
	PRINT TAB(-1,24); ""; TAB(-1,12); "      "; TAB(9,79); TAB(-1,23); TAB(-1,11); TAB(-1,47); 
	PRINT 
	PRINT TAB(10,2); TAB(-1,12); TAB(-1,47); TAB(-1,24); "           "; TAB(-1,23); 
	PRINT TAB(-1,11); TAB(-1,47); TAB(-1,24); ""; TAB(-1,12); "        "; 
	PRINT TAB(-1,23); TAB(-1,47); TAB(-1,24); " "; TAB(-1,23); TAB(-1,44); 
	PRINT TAB(10,59); TAB(-1,43); TAB(-1,24); " "; TAB(-1,23); TAB(-1,11); TAB(-1,44); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,12); TAB(-1,45); TAB(-1,11); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,12); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,11); TAB(-1,46); TAB(-1,43); 
	PRINT TAB(11,2); TAB(-1,12); TAB(-1,47); TAB(-1,24); "         "; TAB(11,14); 
	PRINT TAB(-1,23); TAB(-1,11); TAB(-1,47); TAB(-1,24); ""; TAB(-1,12); " "; 
	PRINT TAB(11,20); "   "; TAB(-1,23); TAB(-1,47); TAB(-1,24); " "; TAB(-1,23); TAB(-1,44); 
	PRINT TAB(11,59); TAB(-1,43); TAB(-1,24); " "; TAB(-1,23); TAB(-1,11); TAB(-1,47); 
	PRINT TAB(-1,24); ""; TAB(-1,12); "  ATTACK STATUS  "; TAB(-1,23); TAB(-1,47); 
	PRINT TAB(-1,24); " ";
	PRINT TAB(12,2); TAB(-1,23); TAB(-1,44); TAB(-1,46); TAB(-1,11); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,45); TAB(-1,12); TAB(-1,46); 
	PRINT TAB(-1,11); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,12); TAB(-1,46); 
	PRINT TAB(-1,11); TAB(-1,46); TAB(-1,12); TAB(-1,46); TAB(-1,11); TAB(-1,43); 
	PRINT TAB(-1,24); ""; TAB(-1,12); " "; TAB(-1,23); TAB(-1,44); 
	PRINT TAB(-1,11); TAB(-1,46); TAB(-1,46); TAB(-1,45); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,45); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,45); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,45); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,45); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,45); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,45); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,45); TAB(-1,46); TAB(-1,46); TAB(-1,12); TAB(-1,43); 
	PRINT TAB(-1,24); " "; TAB(-1,23); TAB(-1,11); TAB(-1,47); TAB(-1,24); 
	PRINT ""; TAB(-1,12); "                 "; TAB(-1,23); TAB(-1,47); 
	PRINT TAB(13,2); TAB(-1,47); TAB(-1,24); "COMMAND      "; TAB(13,20); "  "; TAB(13,23); 
	PRINT TAB(-1,23); TAB(-1,11); TAB(-1,47); TAB(-1,24); ""; TAB(-1,12); " "; 
	PRINT TAB(-1,23); TAB(-1,47); TAB(-1,24); "                                 "; TAB(-1,23); TAB(-1,47); 
	PRINT TAB(-1,24); " "; TAB(-1,23); TAB(-1,11); TAB(-1,47); TAB(-1,24); 
	PRINT ""; TAB(-1,12); "             "; TAB(13,78); " "; TAB(-1,23); TAB(-1,47); 
	PRINT 
	PRINT TAB(14,2); TAB(-1,44); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,42); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,11); TAB(-1,46); TAB(-1,46); TAB(-1,43); 
	PRINT TAB(-1,24); ""; TAB(-1,12); " "; TAB(-1,23); TAB(-1,40); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,41); TAB(-1,24); " "; 
	PRINT TAB(-1,23); TAB(-1,11); TAB(-1,47); TAB(-1,24); ""; TAB(-1,12); "                 "; 
	PRINT TAB(-1,23); TAB(-1,47); 
	PRINT TAB(15,2); TAB(-1,11); TAB(-1,47); TAB(15,4); TAB(-1,24); ""; 
	PRINT TAB(-1,11); "7 8 9";TAB(-1,12); TAB(15,10); TAB(-1,23); TAB(-1,11); TAB(-1,47); 
	PRINT TAB(-1,24); ""; TAB(-1,12); "            "; TAB(-1,23); TAB(-1,11); TAB(-1,47); 
	PRINT TAB(15,61); TAB(-1,47); TAB(-1,24); ""; TAB(-1,12); "  "; TAB(15,79); 
	PRINT TAB(-1,23); TAB(-1,11); TAB(-1,47); 
	PRINT TAB(16,2); TAB(-1,47); TAB(16,4); TAB(-1,24); ""; TAB(-1,11); "4"; 
	PRINT TAB(16,6); "*"; TAB(16,8); "6";TAB(-1,12); TAB(16,10); TAB(-1,23); TAB(-1,11); TAB(-1,47); 
	PRINT TAB(16,16); TAB(-1,24); ""; TAB(-1,12); " "; TAB(16,23); TAB(-1,23); 
	PRINT TAB(-1,11); TAB(-1,47); TAB(16,61); TAB(-1,47); TAB(-1,24); ""; 
	PRINT TAB(-1,12); " "; TAB(16,79); TAB(-1,23); TAB(-1,11); TAB(-1,47); 
	PRINT 
	PRINT TAB(17,2); TAB(-1,47); TAB(17,4); TAB(-1,24); ""; TAB(-1,11); "1"; 
	PRINT TAB(17,6); "2"; TAB(17,8); "3";TAB(-1,12); TAB(17,10); TAB(-1,23); TAB(-1,11); TAB(-1,47); 
	PRINT TAB(17,13); TAB(-1,24); ""; TAB(-1,12); "       "; TAB(17,23); TAB(-1,23); 
	PRINT TAB(-1,11); TAB(-1,47); TAB(17,61); TAB(-1,47); TAB(-1,24); ""; 
	PRINT TAB(-1,12); " "; TAB(17,79); TAB(-1,23); TAB(-1,11); TAB(-1,47); 
	PRINT 
	PRINT TAB(18,2); TAB(-1,40); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,45); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,41); TAB(18,61); 
	PRINT TAB(-1,40); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); TAB(-1,46); 
	PRINT TAB(-1,41); 

! SHORT RANGE BOX HERE
	PRINT TAB(19,2);TAB(-1,38);
	FOR X = 1 TO 15 : PRINT TAB(-1,46); : NEXT X
	PRINT TAB(-1,24);TAB(19,4);"KBS";TAB(19,9);"KBS";TAB(19,14);"KBS";TAB(-1,23);
	PRINT TAB(19,18);TAB(-1,39);
	FOR X = 1 TO 3 
		PRINT TAB(19+X,2);TAB(-1,47);
		PRINT TAB(19+X,18);TAB(-1,47);
	NEXT X
	PRINT TAB(23,2);TAB(-1,40);
	FOR X = 1 TO 15 : PRINT TAB(-1,46); : NEXT X 
	PRINT TAB(-1,41)

	PRINT TAB(-1,24); TAB(-1,28);
	RETURN
OPEN'BEGIN:
	PRINT TAB(-1,0); TAB(-1,29);
	PRINT TAB(-1,98);TAB(24,20);"Once upon a time, in a faraway place.......";	
	Z$ = "*+@:#"
	FOR X = 1 TO 24 
		FOR XX = 1 TO 5
RND'MIZE:
			Z = INT(24*RND(0)+1)
			ZZ = INT(80*RND(0)+1)
			IF Z => X AND Z <= 24 AND ZZ => 1 AND ZZ <= 80 &
				THEN PRINT TAB(Z,ZZ);TAB(-1,11);Z$[XX,XX];TAB(-1,12);
		NEXT XX
		PRINT TAB(24,80)
	NEXT X
	PRINT TAB(-1,95);TAB(-1,36);
	PRINT TAB(2,6); "   "; 
	PRINT TAB(3,9); TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(3,22); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(3,36); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,24); " "; TAB(3,50); 
	PRINT TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(3,62); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(4,9); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(4,22); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(4,36); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(4,50); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(4,62); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(4,74); TAB(-1,24); "  "; 
	PRINT TAB(5,9); TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(5,22); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(5,30); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(5,36); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(5,45); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(5,50); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(5,62); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(5,74); 
	PRINT TAB(-1,24); "  "; 
	PRINT TAB(6,9); TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(6,22); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(6,30); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(6,36); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(6,45); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(6,50); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(6,62); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(7,9); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(7,22); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(7,36); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(7,50); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(7,62); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(8,16); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(8,22); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(8,36); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(8,45); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(8,50); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(8,62); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(9,16); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(9,22); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(9,36); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(9,45); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(9,50); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(9,62); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(10,9); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,24); "  "; TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,24); "          "; TAB(-1,23); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,24); "     "; TAB(-1,23); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,24); "  "; TAB(-1,23); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(10,62); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(11,9); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(11,22); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(11,36); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(11,45); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(11,50); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(11,62); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(11,75); TAB(-1,24); " "; 
	PRINT TAB(12,75); " "; 
	PRINT TAB(14,14); TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(14,29); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,24); ""; 
	PRINT TAB(-1,11); " "; TAB(14,43); " "; TAB(-1,12); " "; TAB(14,45); TAB(-1,23); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(14,58); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(14,65); TAB(-1,24); " "; 
	PRINT TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(15,14); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(15,29); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(15,43); TAB(-1,24); " "; 
	PRINT TAB(15,45); TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(15,58); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(15,64); TAB(-1,24); " "; TAB(-1,23); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,24); " "; 
	PRINT TAB(16,19); TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,24); 
	PRINT " "; TAB(16,29); TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(16,37); TAB(-1,24); " "; TAB(-1,23); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(16,43); TAB(-1,24); " "; TAB(16,45); TAB(-1,23); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(16,58); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,24); "  "; TAB(-1,23); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,24); "  "; 
	PRINT TAB(17,19); TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(17,29); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(17,36); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(17,43); TAB(-1,24); 
	PRINT " "; TAB(17,45); TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(17,58); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,24); 
	PRINT "   "; 
	PRINT TAB(18,19); TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(18,29); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,24); "   "; TAB(18,43); 
	PRINT " "; TAB(18,45); TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(18,58); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,24); "  "; 
	PRINT TAB(19,19); TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(19,29); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(19,35); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,24); "  "; TAB(19,43); 
	PRINT " "; TAB(19,45); TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(19,58); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(19,64); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,24); 
	PRINT " "; 
	PRINT TAB(20,19); TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(20,29); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(20,35); TAB(-1,24); 
	PRINT " "; TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,24); " "; TAB(20,43); " "; TAB(20,45); TAB(-1,23); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,24); "       "; TAB(20,58); 
	PRINT TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(20,64); 
	PRINT TAB(-1,24); " "; TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); 
	PRINT TAB(21,19); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(21,29); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(21,35); TAB(-1,24); "  "; 
	PRINT TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(21,43); 
	PRINT TAB(-1,24); " "; TAB(21,45); TAB(-1,23); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(21,58); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(21,64); TAB(-1,24); "  "; TAB(-1,23); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(22,19); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(22,29); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(22,37); TAB(-1,24); " "; 
	PRINT TAB(-1,23); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,24); 
	PRINT " "; TAB(22,43); " "; TAB(22,45); TAB(-1,23); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(-1,49); TAB(22,58); TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); TAB(22,64); TAB(-1,24); "   "; TAB(-1,23); TAB(-1,49); 
	PRINT TAB(-1,49); TAB(-1,49); 
	PRINT TAB(-1,24); TAB(-1,28);TAB(-1,37);
	RETURN

!
! REPORT SYSTEM ERRORS
!
REAL'PROBLEM:
	?	
	? "Computer Reports that the System ";
	IF ERR(0)=2  THEN ? "has a System error"
	IF ERR(0)=3  THEN ? "is out of Memory (get more!)"
	IF ERR(0)=4  THEN ? "is out of Data"
	IF ERR(0)=5  THEN ? "has a NEXT without FOR situation"
	IF ERR(0)=6  THEN ? "has a RETURN without a CALL"
	IF ERR(0)=7  THEN ? "has a RESUME without Error"
	IF ERR(0)=9  THEN ? "has Floating Point Overflow problem"
	IF ERR(0)=10 THEN ? "has a divide by Zero situation"
	IF ERR(0)=11 THEN ? "has an Illegal Function Value" 
	IF ERR(0)=12 THEN ? "cannot find the INKEY.SBR subroutine "
	IF ERR(0)=13 THEN ? "already has that File Open"
	IF ERR(0)=14 THEN ? "is trying IO to unopened File"
	IF ERR(0)=15 THEN ? "has a Record Size overflow problem"
	IF ERR(0)=16 THEN ? "has a File Specification error"
	IF ERR(0)=17 THEN ? "cannot find the USAMUS.HLP File requested."
	IF ERR(0)=18 THEN ? "Device Not Ready"
	IF ERR(0)=19 THEN ? "Device Full"
	IF ERR(0)=20 THEN ? "Device is in Error"
	IF ERR(0)=21 THEN ? "Device In use"
	IF ERR(0)=22 THEN ? "has an Illegal user code"
	IF ERR(0)=23 THEN ? "is in a Protection Violation situation"
	IF ERR(0)=24 THEN ? "Write protected"
	IF ERR(0)=25 THEN ? "has a File type mismatch situation"
	IF ERR(0)=26 THEN ? "Device does not exist"
	IF ERR(0)=27 THEN ? "Bitmap is Kaput!  (better check that out) "
	IF ERR(0)=28 THEN ? "Disk is not mounted (Dummy!)      "
	IF ERR(0)=29 THEN ? "is requesting a File already exists"
	IF ERR(0)=30 THEN ? "Redimensioned array"
	IF ERR(0)=31 THEN ? "is requesting an Illegal Record number"
	IF ERR(0)=32 THEN ? "is requesting an Invalid File Name"
	IF ERR(0)=33 THEN ? "has a Stack overflow"
	IF ERR(0)=34 THEN ? "has an Invalid Syntax code"
	IF ERR(0)=35 THEN ? "has an Unsupported function situation"
	IF ERR(0)=36 THEN ? "is trying to use an Invalid subroutine Version"
?
? "This situation was not designed as part of the program!"
? "Thus it gotta be fixed or it gonna happen again sooner or later.";TAB(-1,28)
END