image of READY prompt

Wang2200.org

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