Star Trip

Products: ZX Star-Trip
Date: 1981
Type: Cassette
Platform(s): TS 1000
Tags: Game

STARTRIP is a Star Trek–inspired strategy game in which the player commands the Enterprise across a toroidal 8×8 galaxy of sectors, each represented as an 8×8 parsec grid. The player manages energy, photon torpedoes, and shields while hunting Klingon ships, docking with starbases for resupply, and avoiding novas and supernovas. Game state for each sector is packed into a single integer per cell of the A(8,8) array, encoding Klingon count, starbase presence, and star count as hundreds, tens, and units digits respectively. Screen-position reading via PEEK of the display file address (lines 9000–9010) is used to detect what character occupies a given AT position before printing, allowing collision detection without a separate map array. Difficulty is controlled by the RA variable (1–6 star-rating), which scales the Klingon population, energy budget, and final score thresholds.


Program Analysis

Program Structure

The program is organised into functional blocks separated by REM statements, with command dispatch handled by a computed GOTO C*1000 at line 660. The main game loop runs from roughly line 400 to 660, with the following major sections:

  1. Lines 5–19: Initialisation and title display (via GOSUB 9300), string table load (GOSUB 9200)
  2. Lines 30–214: Galaxy generation — populating the 8×8 sector array
  3. Lines 220–354: Current sector setup — placing the Enterprise, Klingons, starbase, and stars
  4. Lines 400–660: Status display, docking check, and command input loop
  5. Lines 1000–1150: Helm (warp movement)
  6. Lines 2000–2140: Short-range scan (labelled “Long Range Scan” in the REM but displaying adjacent sectors)
  7. Lines 3000–3170: Phaser control
  8. Lines 4000–4160: Photon torpedo control
  9. Lines 5000–5060: Shield control
  10. Lines 6000–6140: Instructions
  11. Lines 7000–7010: Resignation
  12. Lines 8000–8590: Subroutines (distance calculation, Klingon kill, course vector, shield destruction)
  13. Lines 9000–9420: Utility subroutines and initialisation
  14. Lines 9890–9999: End-of-game scoring and rating

Galaxy and Sector Data Packing

Each element of the two-dimensional array A(8,8) stores three values packed into a single integer: 100*X + 10*Y + Z, where X is the number of Klingons (1 to RA), Y is 1 if a starbase is present (0 otherwise), and Z is the number of stars (1–5). Unpacking is performed with integer division and modulo arithmetic at lines 270–300. This is a classic space-saving technique that avoids the need for a three-dimensional array.

Screen-Peek Collision Detection

The subroutine at lines 9000–9010 reads the character code at the current cursor position directly from the display file:

9000 LET CH=PEEK (PEEK 16398+256*PEEK 16399)

System variables at addresses 16398–16399 hold the address of the current print position in the display file. By issuing PRINT AT r,c; (with no output) and then calling this subroutine, the program determines what is already drawn at that cell. Character codes used as sentinels include 128 (space/empty), 3 (starbase graphic), 151 (star graphic), and 176 (Klingon graphic). This avoids maintaining a separate in-memory sector map.

Computed GOTO Dispatch

Command selection uses GOTO C*1000 at line 660, where C is an integer 1–7 entered by the player. This dispatches directly to line 1000 (helm), 2000 (scan), 3000 (phasers), 4000 (torpedoes), 5000 (shields), 6000 (instructions), or 7000 (resignation). Input is validated at line 658 to ensure C is an integer in range.

Toroidal Galaxy Wrapping

The galaxy wraps at its edges. Sector coordinates P and Q are kept in range 1–8 using the idiom at lines 240–250:

LET P=P-8*(P>8)+8*(P<1)

The same pattern is applied to the scan subroutine at lines 2012–2014 for variables G and H. Boolean expressions evaluate to 1 (true) or 0 (false), making this a branchless modular wrap.

Movement and Sector Transition

Warp movement (lines 1070–1136) steps the ship one parsec at a time in a direction determined by the 8-point compass encoded as course 0–7. The course-to-vector translation at lines 8530–8590 sets M (row delta) and N (column delta) using conditional assignments. If the ship moves off the edge of the current sector, U is set to 1 and GOTO 230 regenerates the new sector; otherwise it lands within the current sector.

Difficulty Scaling

The player-chosen star-rating RA (1–6) controls several aspects of difficulty:

  • Maximum Klingons per sector (INT(RND*RA)+1)
  • Size of Klingon, position arrays (DIM G(RA), DIM H(RA), DIM K(RA))
  • Initial total energy budget: TE=(RA+1)*8000
  • Score thresholds at end-of-game, scaled by (RA+7)/16

Scoring System

The final score at line 9906 is computed as:

S = PE + INT(TE/100/RA) + (KL-K)*10

where PE is a penalty (negative values for destroying a starbase, crew casualties, or energy exhaustion), TE is remaining total energy divided by difficulty, KL is the initial Klingon count, and K is the survivors. Five rating tiers are checked sequentially at lines 9930–9980, each threshold a multiple of RA*200.

Notable Techniques and Anomalies

  • The REM at line 1995 says “LONG RANGE SCAN” but the print at line 2000 says “SHORT RANGE SCAN” — the labels are transposed.
  • FAST (line 14) is called before galaxy generation to speed up the setup loop, and SLOW (line 228) re-enables normal display before sector rendering.
  • The string array A$(13,33) stores all game messages with fixed-length padding. Random selection from subsets uses RND*N+offset with fractional indices, relying on array indexing truncation.
  • Line 9999 attempts to print all 13 rows of A$ in a loop up to 20, which will access undefined rows 14–20 — this is a latent bug that would cause an error if the game-over scoring branch reaches the excellent path.
  • Phaser damage to the player (lines 3131–3136) fires back based on remaining Klingon strength divided by distance, and there is a chance of triggering a Scottie damage message and further energy drain.
  • The subroutine at line 8200 searches the Klingon position arrays to find which entry matches G,H (the torpedo hit position), then calls 8230 to mark it destroyed — an unusual fall-through into a shared code path also used by phasers.

Key Variables

VariableRole
A(8,8)Galaxy sector data (packed Klingons/starbase/stars)
G(RA), H(RA)Row/column positions of Klingons in current sector
K(RA)Shield strength of each Klingon (negative = alive, 0 = dead)
EEnterprise energy
TETotal fleet energy pool (for docking replenishment)
OPhoton torpedoes remaining
SShield energy level
TCurrent stardate
KTotal Klingons remaining in galaxy
KLInitial total Klingon count
P, QCurrent sector coordinates
A, BEnterprise position within sector (row, col)
RADifficulty rating (1–6)
PEPenalty score
CHCharacter code read from display file

Content

Appears On

Related Products

Nail the aliens in outer space. Warp, photons, starbases, smart K-ons.

Related Articles

Related Content

Image Gallery

Star Trip

Source Code

   5 REM (C)1981 BUG-BYTE
  10 REM **STARTRIP**
  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=INT (RND*200)+201
  40 LET E=3000
  50 LET O=15
  60 LET S=0
  90 LET L=T
 100 DIM A(8,8)
 125 REM **SET UP SECTORS**
 130 FOR I=1 TO 8
 140 FOR J=1 TO 8
 150 LET Y=0
 160 LET X=INT (RND*RA)+1
 170 IF RND>.88 THEN LET Y=1
 180 LET Z=INT (RND*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=INT (RND*8)+1
 225 LET Q=INT (RND*8)+1
 228 SLOW 
 230 REM **SET UP CURRENT SECTOR
 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=INT (RND*8)
 258 LET B=INT (RND*8)
 260 LET Z=A(P,Q)
 270 LET X=INT (Z/100)
 280 LET Z=Z-X*100
 290 LET Y=INT (Z/10)
 300 LET Z=Z-Y*10
 302 DIM G(RA)
 304 DIM H(RA)
 306 DIM K(RA)
 308 PRINT AT 0,0;
 310 FOR I=1 TO 8
 312 PRINT "% % % % % % % % "
 314 NEXT I
 316 PRINT AT A,B;"%$"
 320 FOR I=1 TO X
 321 LET K(I)=-200
 322 LET G(I)=INT (RND*8)
 324 LET H(I)=INT (RND*8)
 326 PRINT AT G(I),H(I);
 327 GOSUB 9000
 328 IF CH<>128 THEN GOTO 322
 330 PRINT "%K"
 332 NEXT I
 334 IF Y=0 THEN GOTO 344
 336 PRINT AT INT (RND*8),INT (RND*8);
 338 GOSUB 9000
 340 IF CH<>128 THEN GOTO 336
 342 PRINT "\''"
 344 FOR I=1 TO Z
 346 PRINT AT INT (RND*8),INT (RND*8);
 348 GOSUB 9000
 350 IF CH<>128 THEN GOTO 346
 352 PRINT "%*"
 354 NEXT I
 400 LET C$="GREEN"
 402 IF E<=0 THEN GOTO 9800
 410 IF X<>0 THEN LET C$="RED"
 420 PRINT AT A,B-1+(B=0);
 430 GOSUB 9000
 440 IF CH=3 THEN LET C$="DOCKED"
 442 PRINT AT A,B+1-(B=7);
 444 GOSUB 9000
 446 IF CH=3 THEN LET C$="DOCKED"
 448 IF V=1 OR C$<>"DOCKED" THEN GOTO 550
 450 LET TE=TE+E-3000
 452 LET E=3000
 453 IF TE>=0 THEN GOTO 458
 454 PRINT "STARFLEET""S ENERGY BANKS       EXHAUSTED."
 456 GOTO 9900
 458 LET O=15
 460 LET V=1
 550 PRINT AT 1,10;"STARDATE   ";T
 560 PRINT AT 2,10;"CONDITION  ";C$;"   "
 570 PRINT AT 3,10;"ENERGY     ";E;"   "
 580 PRINT AT 4,10;"TORPEDOES  ";O;" "
 590 PRINT AT 5,10;"SHIELDS    ";S;"   "
 600 PRINT AT 6,10;"KLINGONS   ";K;"   "
 610 GOSUB 9100
 630 IF L=T OR C$="DOCKED" OR C$="GREEN" THEN GOTO 640
 635 IF RND>.3 THEN GOTO 4152
 640 IF K=0 THEN PRINT "WELL DONE,CAPTAIN-THE FEDERATION HAS BEEN SAVED"
 645 IF K=0 THEN GOTO 9900
 648 LET L=T-1
 650 PRINT "WHAT ARE YOUR ORDERS, CAPTAIN?             (1-7)"
 655 INPUT C
 658 IF C<0 OR C>7 OR C<>INT C THEN GOTO 655
 659 IF RND>.75 THEN PRINT "SPOCK:   ";A$(RND*3+10.5)
 660 GOTO C*1000
 995 REM **HELM CONTROL**
\n1000 GOSUB 8500
\n1010 PRINT "SULU: WARP FACTOR,CAPTAIN?(1-63)"
\n1020 INPUT W
\n1022 IF W>E THEN PRINT "SCOTTIE:YE OVERLOADIN"" THE      ENERGY BANKS,CAP""N."
\n1030 IF W>E OR W<1 OR W>63 OR W<>INT W THEN GOTO 1010
\n1040 PRINT AT A,B;"% "
\n1050 LET E=E-W
\n1060 LET T=T+W
\n1070 FOR I=1 TO W
\n1080 LET U=1
\n1090 LET A=A+M
\n1100 LET B=B+N
\n1110 IF A<0 OR A>7 OR B<0 OR B>7 THEN GOTO 1120
\n1112 LET U=0
\n1113 PRINT AT A,B;
\n1114 GOSUB 9000
\n1115 IF CH=128 THEN GOTO 1120
\n1116 LET A=A-M
\n1117 LET B=B-N
\n1120 NEXT I
\n1130 IF U=0 THEN GOTO 1140
\n1132 LET Q=Q+INT (A/8)
\n1134 LET P=P+INT (B/8)
\n1136 GOTO 230
\n1140 PRINT AT A,B;"%$"
\n1150 GOTO 400
\n1995 REM **LONG RANGE SCAN**
\n2000 PRINT "SHORT RANGE SCAN"
\n2002 PRINT "%K\''%*  %K\''%*  %K\''%*"
\n2005 FOR J=Q-1 TO Q+1
\n2010 FOR I=P-1 TO P+1
\n2012 LET G=I-8*(I>8)+8*(I<1)
\n2014 LET H=J-8*(J>8)+8*(J<1)
\n2020 LET U=A(G,H)
\n2030 IF INT (U/100)=0 THEN PRINT "0";
\n2040 IF INT (U/10)=0 THEN PRINT "0";
\n2050 PRINT U;"  ";
\n2090 NEXT I
\n2100 PRINT 
\n2110 NEXT J
\n2120 FOR D=1 TO 35
\n2130 NEXT D
\n2140 GOTO 610
\n2995 REM **PHASER CONTROL**
\n3000 PRINT "CHEKOV: PHASER ENERGY?"
\n3020 INPUT F
\n3030 IF E<F OR F<>INT F THEN GOTO 3000
\n3032 LET E=E-F
\n3035 IF X=0 THEN GOTO 3150
\n3040 LET F=F/X
\n3050 FOR I=1 TO RA
\n3060 IF K(I)=0 THEN GOTO 3140
\n3070 GOSUB 8000
\n3080 LET G=K(I)
\n3090 LET G=G+2*INT (F/D)
\n3100 IF G>=0 THEN GOSUB 8230
\n3110 IF G>=0 THEN GOTO 3140
\n3120 LET K(I)=G
\n3130 IF C$="DOCKED" THEN GOTO 3140
\n3131 LET G=-INT (G/D)
\n3132 LET S=S-G
\n3133 PRINT G;" HIT ON SHIELDS."
\n3134 IF G<100 THEN GOTO 3140
\n3135 PRINT "SCOTTIE: ";A$(RND*3+3.5);"CAP""N."
\n3136 LET E=E-INT (RND*G)*2
\n3140 NEXT I
\n3145 IF S<0 THEN GOTO 8100
\n3150 LET L=T
\n3160 LET A(P,Q)=A(P,Q)-(INT (A(P,Q)/100)-X)*100
\n3170 GOTO 400
\n3995 REM **TORPEDO CONTROL**
\n4000 IF O<1 THEN PRINT "SULU: NO TORPEDOES LEFT, SIR"
\n4002 IF O<1 THEN GOTO 650
\n4010 GOSUB 8500
\n4020 LET O=O-1
\n4030 LET G=A
\n4040 LET H=B
\n4050 FOR I=1 TO 7
\n4060 LET G=G+M
\n4070 LET H=H+N
\n4082 PRINT AT G,H;
\n4084 GOSUB 9000
\n4090 IF CH<>128 THEN GOTO 4110
\n4100 NEXT I
\n4110 IF CH<>3 THEN GOTO 4116
\n4111 PRINT AT G,H;"% "
\n4112 GOSUB 9100
\n4113 PRINT "SPOCK: WE HAVE DESTROYED A STAR BASE, CAPTAIN"
\n4114 LET PE=-200
\n4115 GOTO 9900
\n4116 IF CH<>151 THEN GOTO 4130
\n4118 PRINT AT G,H;"% "
\n4120 GOSUB 9100
\n4121 LET R=INT (RND*10)
\n4122 PRINT "STAR HAS GONE ";
\n4123 IF R<9 THEN GOTO 4127
\n4124 PRINT "SUPERNOVA"
\n4125 LET PE=-100
\n4126 GOTO 9900
\n4127 PRINT "NOVA"
\n4128 LET S=S-100
\n4129 GOTO 4152
\n4130 IF CH<>176 THEN GOTO 4150
\n4140 GOSUB 8200
\n4142 GOTO 4152
\n4150 GOSUB 9100
\n4152 LET F=0
\n4155 IF RND>.75 THEN PRINT "KLINGON MESSAGE:";A$(RND*4+6.5)
\n4160 GOTO 3032
\n4995 REM **SHIELD CONTROL**
\n5000 LET E=E+S
\n5020 PRINT "CHEKOV: SHIELD ENERGY, SIR?"
\n5030 INPUT S
\n5040 LET E=E-S
\n5050 IF E<1 THEN PRINT "SCOTTIE:THE ENERGY BANKS CANNO"" TAKE IT, CAP""N."
\n5052 IF E<1 THEN GOTO 5000
\n5060 GOTO 400
\n5995 REM **INSTRUCTIONS**
\n6000 CLS 
\n6010 PRINT "   YOU ARE CAPTAIN KIRK OF THE  STARSHIP ENTERPRISE(%$). YOUR    MISSION IS TO DESTROY ALL THE   KLINGON SHIPS(%K)IN THE GALAXY."
\n6012 PRINT 
\n6015 PRINT "   THERE ARE 64 SECTORS OF THE  GALAXY,WHICH ARE EACH 8 PARSECS SQUARE."   
\n6017 PRINT 
\n6020 PRINT "   YOU ARE GIVEN 15 PHOTON      TORPEDOES,AND 3000 ENERGY UNITS."
\n6021 PRINT 
\n6022 PRINT "   YOU MAY DOCK BESIDE A STAR   BASE(\''),WHICH REPLENISHES YOUR  ENERGY AND TORPEDOES AND        PROTECTS YOU FROM ATTACK."
\n6023 PRINT 
\n6024 PRINT "PRESS ANY KEY TO CONTINUE"
\n6025 IF INKEY$="" THEN GOTO 6025
\n6030 CLS 
\n6040 PRINT "   THE COMMANDS ARE:"
\n6050 PRINT "1)HELM-TO MOVE TO ANY POINT IN  THE GALAXY,GIVING THE COURSE ANDWARP(EACH UNIT MOVES 1 PARSEC)."
\n6055 PRINT 
\n6060 PRINT "2)LONG RANGE SCAN-GIVES THE NO. OF %K\''%* IN THE ADJACENT SECTORS."
\n6065 PRINT 
\n6070 PRINT "3)PHASERS-THIS WEAPON ACTS IN   ALL DIRECTIONS BUT ITS EFFECT   DECREASES WITH DISTANCE."
\n6075 PRINT 
\n6080 PRINT "4)PHOTON TORPEDOES-DIRECTIONAL  WEAPON BUT A SINGLE BOLT WILL   DESTROY A KLINGON AT ANY DIST."
\n6085 PRINT 
\n6090 PRINT "5)SHIELDS-INPUT AMOUNT OF       ENERGY DIVERTED TO THE SHIELDS."
\n6095 PRINT 
\n6100 PRINT "6)INSTRUCTIONS"
\n6110 PRINT "7)RESIGNATION"
\n6120 PRINT "PRESS ANY KEY TO CONTINUE"
\n6125 IF INKEY$="" THEN GOTO 6125
\n6130 CLS 
\n6132 IF T=0 THEN RETURN 
\n6134 LET L=T
\n6140 GOTO 230
\n6995 REM **RESIGNATION**
\n7000 PRINT "STARFLEET: RESIGNATION ACCEPTED"
\n7010 GOTO 9900
\n7990 REM **SUBROUTINES**
\n7995 REM **CAL. KLINGON DIST.**
\n8000 LET Z=A-G(I)
\n8010 LET Y=B-H(I)
\n8020 LET D=INT SQR (Z*Z+Y*Y)
\n8030 RETURN 
\n8095 REM ***********************
\n8100 PRINT "THE ENTERPRISE IS DEAD IN SPACE."
\n8110 IF S>-100 THEN GOTO 8120
\n8112 LET PE=-300
\n8114 PRINT " THERE ARE NO SURVIVERS."
\n8116 GOTO 9900
\n8120 IF S>-50 THEN GOTO 8130
\n8122 LET PE=-200
\n8124 PRINT "HALF THE CREW WERE KILLED."
\n8126 GOTO 9900
\n8130 LET PE=S*2
\n8132 PRINT -S;" OF THE CREW WERE KILLED."
\n8134 GOTO 9900
\n8195 REM ***********************
\n8200 FOR I=1 TO RA
\n8210 IF G(I)=G AND H(I)=H THEN GOTO 8230
\n8220 NEXT I
\n8230 LET K(I)=0
\n8235 PRINT AT G(I),H(I);"% "
\n8240 GOSUB 9100
\n8250 PRINT A$(RND*3+.5)
\n8260 LET X=X-1
\n8265 LET K=K-1
\n8270 RETURN 
\n8495 REM **READ COURSE AND CAL**
\n8496 REM **  MOVEMENT VECTOR  **
\n8500 PRINT "CHEKOV:COURSE, CAPTAIN?(O-7)"
\n8510 INPUT C
\n8520 IF C<0 OR C>7 OR C<>INT C THEN GOTO 8500
\n8530 LET M=0
\n8540 LET N=0
\n8550 IF C<2 OR C>6 THEN LET M=-1
\n8560 IF C>2 AND C<6 THEN LET M=1
\n8570 IF C<4 AND C>0 THEN LET N=1
\n8580 IF C>4 THEN LET N=-1
\n8590 RETURN 
\n8595 REM ***********************
\n9000 LET CH=PEEK (PEEK 16398+256*PEEK 16399)
\n9010 RETURN 
\n9100 PRINT AT 8,0;
\n9110 FOR J=1 TO 14
\n9120 PRINT "                                "
\n9130 NEXT J
\n9140 PRINT AT 8,0;
\n9150 RETURN 
\n9200 DIM A$(13,33)
\n9202 LET A$(1)="SULU: BULLS EYE, CAPTAIN"
\n9204 LET A$(2)="SPOCK: KLINGON DESTROYED"
\n9206 LET A$(3)="CHEKOV: WE GOT HIM, SIR"
\n9208 LET A$(11)="HUMAN LOGIC FASCINATES ME"
\n9210 LET A$(12)="I CAN NEVER UNDERSTAND EMOTIONS"
\n9220 LET A$(13)="HUMAN BEHAVIOUR IS VERYIRRATIONAL"
\n9222 LET A$(4)="DILITHIUM CRYSTALS     DAMAGED,"
\n9224 LET A$(5)="ANTIMATTER STABLISER   BROKEN ,"
\n9226 LET A$(6)="WEE DAMAGE TO ENERGY   BANKS ,"
\n9228 LET A$(7)="YOU DON""T STAND A CHANCE, KIRK"
\n9230 LET A$(8)="GIVE YOURSELF UP, KIRK"
\n9232 LET A$(9)="SURRENDER NOW,  KIRK, OR DIE"
\n9234 LET A$(10)="YOUR PUNY RACE  CAN""T KILL A FLY"
\n9250 RETURN 
\n9300 PRINT TAB 9;"************"
\n9310 PRINT TAB 9;"**STARTRIP**"
\n9320 PRINT TAB 9;"************"
\n9330 PRINT 
\n9340 PRINT "DO YOU WANT INSTRUCTIONS?"
\n9350 LET B$=INKEY$
\n9360 IF B$="" THEN GOTO 9350
\n9370 IF B$="Y" THEN GOSUB 6000
\n9372 PRINT 
\n9380 PRINT "WHAT STAR-RATING ARE YOU,       CAPTAIN?   ( 6 IS THE HIGHEST )"
\n9390 INPUT RA
\n9400 IF RA>6 OR RA<1 OR RA<>INT RA THEN GOTO 9380
\n9410 CLS 
\n9420 RETURN 
\n9890 LET E=0
\n9892 PRINT "YOU HAVE NO ENERGY LEFT"
\n9894 LET PE=-100
\n9900 FOR D=1 TO 25
\n9902 NEXT D
\n9903 CLS 
\n9904 PRINT TAB 10;"GAME OVER"
\n9906 LET S=PE+INT (TE/100/RA)+(KL-K)*10
\n9908 PRINT 
\n9910 PRINT "YOUR SCORE IS ";S
\n9920 PRINT 
\n9922 PRINT "YOU HAVE KILLED ";KL-K;" KLINGONS"
\n9924 PRINT 
\n9928 LET RA=(RA+7)/16
\n9930 IF S>RA*200 THEN GOTO 9940
\n9932 PRINT "NOT VERY GOOD-YOU""LL HAVE TO DO BETTER THAN THAT."
\n9934 STOP 
\n9940 IF S>RA*400 THEN GOTO 9950
\n9942 PRINT "NOT BAD, BUT YOU CAN STILL DO   MUCH BETTER."
\n9944 STOP 
\n9950 IF S>RA*600 THEN GOTO 9960
\n9952 PRINT "A WORTHY ATTEMPT, CAPTAIN."
\n9954 STOP 
\n9960 IF S>RA*800 THEN GOTO 9970
\n9962 PRINT "VERY GOOD, YOU DESERVE PROMOTION"
\n9964 STOP 
\n9970 IF S>RA*1000 THEN GOTO 9980
\n9972 PRINT "A CREDITABLE EXAMPLE FOR THE    REST OF THE FLEET, WELL DONE."
\n9974 STOP 
\n9980 PRINT "EXCELLENT, YOU DESERVE TO BE    STARFLEET COMMANDER."
\n9997 FOR A=1 TO 20
\n9998 PRINT A$(A)
\n9999 NEXT A

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

People

No people associated with this content.

Scroll to Top