Listing of file='STARTRK4' on disk='vmedia/games.wvd.zip'
# Sector 212, program filename = 'STARTRK4' 0010 REM GUCKER 4/75 : DIM E(2),K(6,2),B(2,2),S(6) : SELECT R : GOTO 590 0020 SELECT P : IF S(2)>0THEN 430 : INPUT "RESOLUTION",R 0030 PRINT HEX(03); : C=5*R : X1=E(2)-C : X2=E(2)+C : Y1=E(1)-C : Y2=E(1)+C : FOR J=X2TO X1STEP -R : PRINT , : FOR K=1TO 11 : PRINT " . "; : NEXT K : PRINT J : NEXT J 0040 Z=18 : FOR I=Y1+RTO Y2-RSTEP 2*R : PRINT TAB(Z);I; : Z=Z+6 : NEXT I 0050 FOR K=1TO N : Y=K(K,1) : X=K(K,2) : GOSUB 80 : PRINT HEX(0909);"K"; : NEXT K 0060 FOR K=1TO 2 : Y=B(K,1) : X=B(K,2) : GOSUB 80 : PRINT "B"; : NEXT K 0070 Y=E(1) : X=E(2) : GOSUB 80 : PRINT HEX(09);"E"; : GOTO 280 0080 SELECT PRINT 005 : PRINT HEX(01); : IF X<X1THEN 140 : IF X>X2THEN 140 : IF Y<Y1THEN 140 : IF Y>Y2THEN 140 : X=INT(((X-X1)/R)+.5) : Y=INT(((Y-Y1)/R)+.5) 0090 PRINT , : FOR V=1TO Y : PRINT HEX(090909); : NEXT V : FOR V=1TO 11-X : PRINT HEX(0A); : NEXT V : PRINT HEX(0C); : RETURN 0100 PRINT HEX(03) : RETURN 0110 DEFFNA(W)=INT(99*RND(1)) 0120 PRINT HEX(010A);"SCREEN "; : GOSUB 130 : PRINT F$ : PRINT "ENERGY =";E;" " 0125 PRINT "HEADING" : PRINT 3;2;1 : PRINT 4;" E ";0 : PRINT 5;6;7 : FOR I=1TO 5 : PRINT TAB(15) : NEXT I : FOR I=1TO 3 : PRINT TAB(60) : NEXT I : PRINT HEX(0C0C0C0C) : RETURN 0130 F$="OFF" : IF F=0THEN 140 : F$="ON." 0140 RETURN 0150 IF S(1)=0THEN 160 : PRINT "WARP DRIVE INOPERATIVE" : IF W<3THEN 160 : W=3 0160 H=H*#PI/4 : E(1)=E(1)+INT(W*COS(H)) : E(2)=E(2)+INT(W*SIN(H)) : E=E-5*W : RETURN 0170 N=N-1 : IF N=0THEN 580 : IF Q>NTHEN 140 : FOR S=QTO N : FOR E1=1TO 2 : K(S,E1)=K(S+1,E1) : NEXT E1 : NEXT S : RETURN 0180 DEFFNC(A)=INT(6.9*RND(1)) 0190 FOR I=1TO N : FOR J=1TO 2 : K(I,J)=K(I,J)+FNC(1)-3 : NEXT J : NEXT I 0200 FOR I=NTO 1STEP -1 : J=K(I,1) : K=K(I,2) : IF J<0THEN 210 : IF K<0THEN 210 : IF J>99THEN 210 : IF K<=99THEN 220 0210 Q=I : GOSUB 170 0220 NEXT I : IF N=6THEN 140 : IF .3>RND(1)THEN 140 : N=N+1 : K(N,1)=FNA(1) : K(N,2)=FNA(1) : RETURN 0230 DEFFNB(A)=(K(A,1)-E(1))^2+(K(A,2)-E(2))^2 0240 Z,S=0 : FOR I=1TO 6 : IF I>NTHEN 260 : Q=FNB(I) : IF Q>0THEN 250 : S=3 : I=6 : NEXT I : RETURN 0250 IF Q>25THEN 260 : Z=Z+1 0260 IF I>2THEN 270 : IF E(1)<>B(I,1)THEN 270 : IF E(2)<>B(I,2)THEN 270 : S=2 0270 NEXT I : RETURN 0280 IF E>0THEN 300 : SELECT P9 : GOSUB 100 : PRINT "ENERGY = 0" : PRINT : PRINT "YOU LOSE" : GOTO 390 0290 F=1-F : IF S(6)=0THEN 300 : F=0 0300 SELECT P : GOSUB 120 : INPUT "COMMAND",C : IF C=1THEN 340 : IF C=2THEN 20 : IF C=3THEN 450 : IF C=4THEN 520 : IF C=6THEN 290 : IF C<>5THEN 300 : IF S(5)=0THEN 320 : PRINT "STATUS"; : GOTO 440 0320 GOSUB 100 : PRINT "STARDATE:";D;" ENTERPRISE AT COORDINATES";E(1);E(2) 0330 PRINT ,"TORPEDOES:";T : PRINT ,"ELAPSED TIME:";D-D1;"DAYS" : PRINT : PRINT ,," DAMAGE CONTROL" : FOR I=1TO 6 : PRINT ,,"FN";I,S(I) : NEXT I : GOTO 280 0340 INPUT "HEADING",H : INPUT "DISTANCE",W 0350 FOR I=1TO 6 : S(I)=S(I)-1 : IF S(I)>=0THEN 360 : S(I)=0 0360 NEXT I : D=D+.1*INT(10*RND(1)) : GOSUB 150 : E=E-30*F 0370 GOSUB 190 : GOSUB 240 : IF Z>0THEN 410 : IF S=2THEN 400 : IF S=0THEN 20 0380 SELECT P6 : GOSUB 100 : PRINT "COLLISION ... ALL IS LOST" 0390 GOSUB 100 : PRINT "NEW GAME" : SELECT P : GOTO 10 0400 GOSUB 570 : SELECT P6 : PRINT "ENTERPRISE DOCKED" : GOTO 280 0410 SELECT P2 : FOR I=1TO 6 : PRINT HEX(01);TAB(11) : PRINT HEX(01);"RED ALERT" : PRINT HEX(0D0C) : IF Z<(.4*F+.5+RND(1))THEN 420 : S(I)=S(I)+FNC(1) 0420 NEXT I : E=E-(9-4*F)*FNA(1) : IF S=3THEN 380 : IF S=2THEN 400 : GOTO 280 0430 PRINT "SCAN"; 0440 SELECT P6 : PRINT " INOPERATIVE" : SELECT P : GOTO 280 0450 IF S(3)=0THEN 460 : PRINT "PHASORS"; : GOTO 440 0460 Y=25 : FOR K=1TO N : Z=FNB(K) : IF Z>YTHEN 470 : Y=Z : Q=K 0470 NEXT K : IF Y<5THEN 480 : SELECT P6 : PRINT "NO TARGET" : SELECT P : GOTO 280 0480 PRINT "PHASOR LOCKED ON TARGET" : INPUT "ENERGY",E1 : IF E1<=ETHEN 490 : E1=E 0490 E=E-E1 : IF 50<E1/YTHEN 510 0500 SELECT P6 : PRINT "NO EFFECT" : GOTO 370 0510 PRINT "KLINGON DESTROYED" : GOSUB 170 : GOTO 370 0520 IF S(4)=0THEN 530 : PRINT "TORPEDOES"; : GOTO 440 0530 Q=0 : IF T=0THEN 560 : T=T-1 : INPUT "HEADING",H : H=H*#PI/4 : FOR Y=1TO 7STEP .5 0540 K=INT(.5+E(1)+Y*COS(H)) : J=INT(.5+E(2)+Y*SIN(H)) : FOR Z=1TO N : IF K<>K(Z,1)THEN 550 : IF J<>K(Z,2)THEN 550 : Q=Z 0550 NEXT Z : SELECT P1 : PRINT K;J;HEX(0C) : NEXT Y : SELECT P : IF Q=0THEN 500 : GOTO 510 0560 SELECT P6 : PRINT "TORPEDOES EXPENDED" : GOTO 280 0570 E=3000 : T=4 : F=0 : FOR I=1TO 6 : S(I)=0 : NEXT I : RETURN 0580 SELECT P9 : GOSUB 100 : PRINT "YOU WIN" : GOTO 390 0590 GOSUB 100 : N=6 : FOR I=1TO 6 : FOR J=1TO 2 : K(I,J)=FNA(1) : NEXT J : NEXT I : GOSUB 570 : S=0 : D,D1=2000+10*FNA(1) 0600 FOR I=1TO 2 : FOR J=1TO 2 : B(I,J)=FNA(1) : NEXT J : E(I)=FNA(1) : NEXT I : R=10 : GOTO 30