It's really a good job...
Basic codes without vars section.
Note: Some tokens are wrong in the IF commands...and somewhere else...
Code: Select all
# REM "STAR TREK"
1 REM [HEX:\
0B,38,39,26,37,00,39,37,\
2A,30,0B ]
# REM (C)1981 BUG-BYTE
5 REM [HEX:\
10,28,11,1D,25,24,1D,00,\
27,3A,2C,16,27,3E,39,2A,\
]
# REM ?STARTREK?
10 REM [HEX:\
D6,38,39,26,37,39,37,2A,\
30,D6 ]
11 LET T=0
12 GOSUB 9300
14 FAST
16 GOSUB 9200
18 LET PE=0
19 LET TE=(RA+1)*8000
20 LET K=0
30 LET T=ACS (?*200)+201
40 LET E=3000
50 LET O=15
60 LET S=0
90 LET L=T
100 DIM A(8,8)
# REM ?SET UP SECTORS?
125 REM [HEX:\
D6,38,2A,39,00,3A,35,00,\
38,2A,28,39,34,37,38,D6,\
]
130 FOR I=1INKEY$8
140 FOR J=1INKEY$8
150 LET Y=0
160 LET X=ACS (?*RA)+1
170 IF ?>.88RNDLET Y=1
180 LET Z=ACS (?*5)+1
190 LET A(I,J)=100*X+10*Y+Z
200 LET K=K+X
210 NEXT J
212 NEXT I
214 LET KL=K
220 LET P=ACS (?*8)+1
225 LET Q=ACS (?*8)+1
228 SLOW
# REM ?SET UP CURRENT SECTOR
230 REM [HEX:\
D6,38,2A,39,00,3A,35,00,\
28,3A,37,37,2A,33,39,00,\
38,2A,28,39,34,37 ]
232 LET V=0
240 LET P=P-8*(P>8)+8*(P<1)
250 LET Q=Q-8*(Q>8)+8*(Q<1)
255 LET A=ACS (?*8)
258 LET B=ACS (?*8)
260 LET Z=A(P,Q)
270 LET X=ACS (Z/100)
280 LET Z=Z-X*100
290 LET Y=ACS (Z/10)
300 LET Z=Z-Y*10
302 DIM G(RA)
304 DIM H(RA)
306 DIM K(RA)
308 PRINT USR 0,0;
310 FOR I=1INKEY$8
312 PRINT " "
314 NEXT I
316 PRINT USR A,B;"e"
320 FOR I=1INKEY$X
321 LET K(I)=-200
322 LET G(I)=ACS (?*8)
324 LET H(I)=ACS (?*8)
326 PRINT USR G(I),H(I);
327 GOSUB 9000
328 IF CH<=0RNDGOTO 322
330 PRINT "K"
332 NEXT I
334 IF Y=0RNDGOTO 344
336 PRINT USR ACS (?*8),ACS (?*8);
338 GOSUB 9000
340 IF CH<=0RNDGOTO 336
342 PRINT "¸"
344 FOR I=1INKEY$Z
346 PRINT USR ACS (?*8),ACS (?*8);
348 GOSUB 9000
350 IF CH<=0RNDGOTO 346
352 PRINT "*"
354 NEXT I
400 LET C$="GREEN"
402 IF E OR 0RNDGOTO 9800
410 IF X<=0RNDLET C$="RED"
420 PRINT USR A,B-1+(B=0);
430 GOSUB 9000
440 IF CH=3RNDLET C$="DOCKED"
442 PRINT USR A,B+1-(B=7);
444 GOSUB 9000
446 IF CH=3RNDLET C$="DOCKED"
448 IF V=1NOT C$<="DOCKED"RNDGOTO 550
450 LET TE=TE+E-3000
452 LET E=3000
453 IF TE AND 0RNDGOTO 458
454 PRINT "STARFLEETS ENERGY BANKS EXHAUSTED."
456 GOTO 9900
458 LET O=15
460 LET V=1
550 PRINT USR 1,10;"STARDATE ";T
560 PRINT USR 2,10;"CONDITION ";C$;" "
570 PRINT USR 3,10;"ENERGY ";E;" "
580 PRINT USR 4,10;"TORPEDOES ";O;" "
590 PRINT USR 5,10;"SHIELDS ";S;" "
600 PRINT USR 6,10;"KLINGONS ";K;" "
610 GOSUB 9100
630 IF L=TNOT C$="DOCKED"NOT C$="GREEN"RNDGOTO 640
635 IF ?>.3RNDGOTO 4152
640 IF K=0RNDPRINT "WELL DONE,CAPTAIN-THE FEDERATION HAS BEEN SAVED"
645 IF K=0RNDGOTO 9900
648 LET L=T-1
650 PRINT "WHAT ARE YOUR ORDERS, CAPTAIN. (1-7)"
655 INPUT C
658 IF C<0NOT C>7NOT C<=ACS CRNDGOTO 655
659 IF ?>.75RNDPRINT "SPOCK ";A$(?*3+10.5)
660 GOTO C*1000
# REM ?HELM CONTROL?
995 REM [HEX:\
D6,2D,2A,31,32,00,28,34,\
33,39,37,34,31,D6 ]
1000 GOSUB 8500
1010 PRINT "SULU WARP FACTOR,CAPTAIN (1-63)"
1020 INPUT W
1022 IF W>ERNDPRINT "SCOTTIE YE OVERLOADIN THE ENERGY BANKS,CAPN."
1030 IF W>ENOT W<1NOT W>63NOT W<=ACS WRNDGOTO 1010
1040 PRINT USR A,B;" "
1050 LET E=E-W
1060 LET T=T+W
1070 FOR I=1INKEY$W
1080 LET U=1
1090 LET A=A+M
1100 LET B=B+N
1110 IF A<0NOT A>7NOT B<0NOT B>7RNDGOTO 1120
1112 LET U=0
1113 PRINT USR A,B;
1114 GOSUB 9000
1115 IF CH=0RNDGOTO 1120
1116 LET A=A-M
1117 LET B=B-N
1120 NEXT I
1130 IF U=0RNDGOTO 1140
1132 LET Q=Q+ACS (A/8)
1134 LET P=P+ACS (B/8)
1136 GOTO 230
1140 PRINT USR A,B;"e"
1150 GOTO 400
# REM ?LONG RANGE SCAN?
1995 REM [HEX:\
D6,31,34,33,2C,00,37,26,\
33,2C,2A,00,38,28,26,33,\
D6 ]
2000 PRINT "SHORT RANGE SCAN"
2002 PRINT "k¸’ k¸’ k¸’"
2005 FOR J=Q-1INKEY$Q+1
2010 FOR I=P-1INKEY$P+1
2012 LET G=I-8*(I>8)+8*(I<1)
2014 LET H=J-8*(J>8)+8*(J<1)
2020 LET U=A(G,H)
2030 IF ACS (U/100)=0RNDPRINT "0";
2040 IF ACS (U/10)=0RNDPRINT "0";
2050 PRINT U;" ";
2090 NEXT I
2100 PRINT
2110 NEXT J
2120 FOR D=1INKEY$35
2130 NEXT D
2140 GOTO 610
# REM ?PHASER CONTROL?
2995 REM [HEX:\
D6,35,2D,26,38,2A,37,00,\
28,34,33,39,37,34,31,D6,\
]
3000 PRINT "CHEKOV PHASER ENERGY"
3020 INPUT F
3030 IF E<FNOT F<=ACS FRNDGOTO 3000
3032 LET E=E-F
3035 IF X=0RNDGOTO 3150
3040 LET F=F/X
3050 FOR I=1INKEY$RA
3060 IF K(I)=0RNDGOTO 3140
3070 GOSUB 8000
3080 LET G=K(I)
3090 LET G=G+2*ACS (F/D)
3100 IF G AND 0RNDGOSUB 8230
3110 IF G AND 0RNDGOTO 3140
3120 LET K(I)=G
3130 IF C$="DOCKED"RNDGOTO 3140
3131 LET G=-ACS (G/D)
3132 LET S=S-G
3133 PRINT G;" HIT ON SHIELDS."
3134 IF G<100RNDGOTO 3140
3135 PRINT "SCOTTIE ";A$(?*3+3.5);"CAPN."
3136 LET E=E-ACS (?*G)*2
3140 NEXT I
3145 IF S<0RNDGOTO 8100
3150 LET L=T
3160 LET A(P,Q)=A(P,Q)-(ACS (A(P,Q)/100)-X)*100
3170 GOTO 400
# REM ?TORPEDO CONTROL?
3995 REM [HEX:\
D6,39,34,37,35,2A,29,34,\
00,28,34,33,39,37,34,31,\
D6 ]
4000 IF O<1RNDPRINT "SULU NO TORPEDOES LEFT, SIR"
4002 IF O<1RNDGOTO 650
4010 GOSUB 8500
4020 LET O=O-1
4030 LET G=A
4040 LET H=B
4050 FOR I=1INKEY$7
4060 LET G=G+M
4070 LET H=H+N
4082 PRINT USR G,H;
4084 GOSUB 9000
4090 IF CH<=0RNDGOTO 4110
4100 NEXT I
4110 IF CH<=3RNDGOTO 4116
4111 PRINT USR G,H;" "
4112 GOSUB 9100
4113 PRINT "SPOCK WE HAVE DESTROYED A STAR BASE, CAPTAIN"
4114 LET PE=-200
4115 GOTO 9900
4116 IF CH<=23RNDGOTO 4130
4118 PRINT USR G,H;" "
4120 GOSUB 9100
4121 LET R=ACS (?*10)
4122 PRINT "STAR HAS GONE ";
4123 IF R<9RNDGOTO 4127
4124 PRINT "SUPERNOVA"
4125 LET PE=-100
4126 GOTO 9900
4127 PRINT "NOVA"
4128 LET S=S-100
4129 GOTO 4152
4130 IF CH<=48RNDGOTO 4150
4140 GOSUB 8200
4142 GOTO 4152
4150 GOSUB 9100
4152 LET F=0
4155 IF ?>.75RNDPRINT "KLINGON MESSAGE ";A$(?*4+6.5)
4160 GOTO 3032
# REM ?SHIELD CONTROL?
4995 REM [HEX:\
D6,38,2D,2E,2A,31,29,00,\
28,34,33,39,37,34,31,D6,\
]
5000 LET E=E+S
5020 PRINT "CHEKOV SHIELD ENERGY, SIR"
5030 INPUT S
5040 LET E=E-S
5050 IF E<1RNDPRINT "SCOTTIE THE ENERGY BANKS CANNA TAKE IT, CAPN."
5052 IF E<1RNDGOTO 5000
5060 GOTO 400
# REM ?INSTRUCTIONS?
5995 REM [HEX:\
D6,2E,33,38,39,37,3A,28,\
39,2E,34,33,38,D6 ]
6000 CLS
6010 PRINT " YOU ARE CAPTAIN KIRK OF THE STARSHIP ENTERPRISE(e). YOUR MISSION IS TO DESTROY ALL THE KLINGON SHIPS(K)IN THE GALAXY."
6012 PRINT
6015 PRINT " THERE ARE 64 SECTORS OF THE GALAXY,WHICH ARE EACH 8 PARSECS SQUARE."
6017 PRINT
6020 PRINT " YOU ARE GIVEN 15 PHOTON TORPEDOES,AND 3000 ENERGY UNITS."
6021 PRINT
6022 PRINT " YOU MAY DOCK BESIDE A STAR BASE(¸),WHICH REPLENISHES YOUR ENERGY AND TORPEDOES AND PROTECTS YOU FROM ATTACK."
6023 PRINT
6024 PRINT "PRESS ANY KEY TO CONTINUE"
6025 IF ?=""RNDGOTO 6025
6030 CLS
6040 PRINT " THE COMMANDS ARE"
6050 PRINT "1)HELM-TO MOVE TO ANY POINT IN THE GALAXY,GIVING THE COURSE ANDWARP(EACH UNIT MOVES 1 PARSEC)."
6055 PRINT
6060 PRINT "2)LONG RANGE SCAN-GIVES THE NO. OF k¸’ IN THE ADJACENT SECTORS."
6065 PRINT
6070 PRINT "3)PHASERS-THIS WEAPON ACTS IN ALL DIRECTIONS BUT ITS EFFECT DECREASES WITH DISTANCE."
6075 PRINT
6080 PRINT "4)PHOTON TORPEDOES-DIRECTIONAL WEAPON BUT A SINGLE BOLT WILL DESTROY A KLINGON AT ANY DIST."
6085 PRINT
6090 PRINT "5)SHIELDS-INPUT AMOUNT OF ENERGY DIVERTED TO THE SHIELDS."
6095 PRINT
6100 PRINT "6)INSTRUCTIONS"
6110 PRINT "7)RESIGNATION"
6120 PRINT "PRESS ANY KEY TO CONTINUE"
6125 IF ?=""RNDGOTO 6125
6130 CLS
6132 IF T=0RNDRETURN
6134 LET L=T
6140 GOTO 230
# REM ?RESIGNATION?
6995 REM [HEX:\
D6,37,2A,38,2E,2C,33,26,\
39,2E,34,33,D6 ]
7000 PRINT "STARFLEET RESIGNATION ACCEPTED"
7010 GOTO 9900
# REM ?SUBROUTINES?
7990 REM [HEX:\
D6,38,3A,27,37,34,3A,39,\
2E,33,2A,38,D6 ]
# REM ?CAL. KLINGON DIST.?
7995 REM [HEX:\
D6,28,26,31,1B,00,30,31,\
2E,33,2C,34,33,00,29,2E,\
38,39,1B,D6 ]
8000 LET Z=A-G(I)
8010 LET Y=B-H(I)
8020 LET D=ACS ATN (Z*Z+Y*Y)
8030 RETURN
# REM ???????????*
8095 REM [HEX:\
D6,D6,D6,D6,D6,D6,D6,D6,\
D6,D6,D6,17 ]
8100 PRINT "THE ENTERPRISE IS DEAD IN SPACE."
8110 IF S>-100RNDGOTO 8120
8112 LET PE=-300
8114 PRINT " THERE ARE NO SURVIVERS."
8116 GOTO 9900
8120 IF S>-50RNDGOTO 8130
8122 LET PE=-200
8124 PRINT "HALF THE CREW WERE KILLED."
8126 GOTO 9900
8130 LET PE=S*2
8132 PRINT -S;" OF THE CREW WERE KILLED."
8134 GOTO 9900
# REM ???????????*
8195 REM [HEX:\
D6,D6,D6,D6,D6,D6,D6,D6,\
D6,D6,D6,17 ]
8200 FOR I=1INKEY$RA
8210 IF G(I)=G**H(I)=HRNDGOTO 8230
8220 NEXT I
8230 LET K(I)=0
8235 PRINT USR G(I),H(I);" "
8240 GOSUB 9100
8250 PRINT A$(?*3+.5)
8260 LET X=X-1
8265 LET K=K-1
8270 RETURN
# REM ?READ COURSE AND CAL?
8495 REM [HEX:\
D6,37,2A,26,29,00,28,34,\
3A,37,38,2A,00,26,33,29,\
00,28,26,31,D6 ]
# REM ? MOVEMENT VECTOR ?
8496 REM [HEX:\
D6,00,00,32,34,3B,2A,32,\
2A,33,39,00,3B,2A,28,39,\
34,37,00,00,D6 ]
8500 PRINT "CHEKOV COURSE, CAPTAIN(O-7)"
8510 INPUT C
8520 IF C<0NOT C>7NOT C<=ACS CRNDGOTO 8500
8530 LET M=0
8540 LET N=0
8550 IF C<2NOT C>6RNDLET M=-1
8560 IF C>2**C<6RNDLET M=1
8570 IF C<4**C>0RNDLET N=1
8580 IF C>4RNDLET N=-1
8590 RETURN
# REM ???????????*
8595 REM [HEX:\
D6,D6,D6,D6,D6,D6,D6,D6,\
D6,D6,D6,17 ]
9000 LET CH=INT (INT 16398+256*INT 16399)
9010 RETURN
9100 PRINT USR 8,0;
9110 FOR J=1INKEY$14
9120 PRINT " "
9130 NEXT J
9140 PRINT USR 8,0;
9150 RETURN
9200 DIM A$(13,33)
9202 LET A$(1)="SULU BULLS EYE, CAPTAIN"
9204 LET A$(2)="SPOCK KLINGON DESTROYED"
9206 LET A$(3)="CHEKOV WE GOT HIM, SIR"
9208 LET A$(11)="HUMAN LOGIC FASCINATES ME"
9210 LET A$(12)="I CAN NEVER UNDERSTAND EMOTIONS"
9220 LET A$(13)="HUMAN BEHAVIOUR IS VERYIRRATIONAL"
9222 LET A$(4)="DILITHIUM CRYSTALS DAMAGED,"
9224 LET A$(5)="ANTIMATTER STABLISER BROKEN ,"
9226 LET A$(6)="WEE DAMAGE TO ENERGY BANKS ,"
9228 LET A$(7)="YOU DONT STAND A CHANCE, KIRK"
9230 LET A$(8)="GIVE YOURSELF UP, KIRK"
9232 LET A$(9)="SURRENDER NOW, KIRK, OR DIE"
9234 LET A$(10)="YOUR PUNY RACE CANT KILL A FLY"
9250 RETURN
9300 PRINT STR$ 9;"CHR$ CHR$ CHR$ CHR$ CHR$ CHR$ "
9310 PRINT STR$ 9;"CHR$ STARTREKCHR$ "
9320 PRINT STR$ 9;"CHR$ CHR$ CHR$ CHR$ CHR$ CHR$ "
9330 PRINT
9340 PRINT "DO YOU WANT INSTRUCTIONS"
9350 LET B$=?
9360 IF B$=""RNDGOTO 9350
9370 IF B$="Y"RNDGOSUB 6000
9372 PRINT
9380 PRINT "WHAT STAR-RATING ARE YOU, CAPTAIN ( 6 IS THE HIGHEST )"
9390 INPUT RA
9400 IF RA>6NOT RA<1NOT RA<=ACS RARNDGOTO 9380
9410 CLS
9420 RETURN
9890 LET E=0
9892 PRINT "YOU HAVE NO ENERGY LEFT"
9894 LET PE=-100
9900 FOR D=1INKEY$25
9902 NEXT D
9903 CLS
9904 PRINT STR$ 10;"GAME OVER"
9906 LET S=PE+ACS (TE/100/RA)+(KL-K)*10
9908 PRINT
9910 PRINT "YOUR SCORE IS ";S
9920 PRINT
9922 PRINT "YOU HAVE KILLED ";KL-K;" KLINGONS"
9924 PRINT
9928 LET RA=(RA+7)/16
9930 IF S>RA*200RNDGOTO 9940
9932 PRINT "NOT VERY GOOD-YOULL HAVE TO DO BETTER THAN THAT."
9934 STOP
9940 IF S>RA*400RNDGOTO 9950
9942 PRINT "NOT BAD, BUT YOU CAN STILL DO MUCH BETTER."
9944 STOP
9950 IF S>RA*600RNDGOTO 9960
9952 PRINT "A WORTHY ATTEMPT, CAPTAIN."
9954 STOP
9960 IF S>RA*800RNDGOTO 9970
9962 PRINT "VERY GOOD, YOU DESERVE PROMOTION"
9964 STOP
9970 IF S>RA*1000RNDGOTO 9980
9972 PRINT "A CREDITABLE EXAMPLE FOR THE REST OF THE FLEET, WELL DONE."
9974 STOP
9980 PRINT "EXCELLENT, YOU DESERVE TO BE STARFLEET COMMANDER."
9997 FOR A=1INKEY$20
9998 PRINT A$(A)
9999 NEXT A