Space Station

Developer(s): Tim Hartnell
Date: 198x
Type: Program
Platform(s): TS 1000

Content

Appears On

Assembled by Tim Ward from many sources. Contains programs 10211 – 10251.

Related Products

Related Articles

Related Content

Image Gallery

Space Station

Source Code

   0 REM "SPACE STATION"                  TIM HARTNELL
   2 FAST 
   3 RAND 
   4 CLS 
   5 LET CTR=0
  10 GOSUB 3000
  20 LET YEAR=YEAR+1
  30 LET FOLK=INT FOLK+FOLK/INT (((RND*18)+1)+2)-FOLK/INT (((RND*15)+1)+3)
  40 GOTO 710
  50 PRINT "COMPUTER REPORT:"
  60 PRINT 
  70 IF OXY<OXYNEED*FOLK THEN GOTO 8000
  80 IF FOOD<FOODNEED*FOLK THEN GOTO 8100
  90 IF CASH<1 THEN GOTO 8200
  97 IF FOLK<1 THEN GOTO 8500
  98 IF FOLK<2 AND CTR=1 THEN GOTO 8500
 100 IF FOLK<2 THEN GOTO 8300
 110 IF FOLK<13 THEN PRINT "WARNING - POPULATION IS","NEARING EXTINCTION"
 120 IF OXY<2*OXYNEED*FOLK THEN PRINT "WARNING - OXYGEN SUPPLIES LOW"
 130 IF FOOD<2*FOODNEED*FOLK THEN PRINT "WARNING - FOOD STOCKS LOW"
 140 IF CASH<2000 THEN PRINT "WARNING - MONEY RUNNING LOW"
 150 PRINT "%*%*THERE ARE ";INT FOLK;" PEOPLE ON"
 160 PRINT "THE SPACE STATION IN YEAR ";YEAR;"%*%*"
 170 PRINT 
 180 PRINT "MONEY CREDIT IS £";CASH
 190 PRINT "ANNUAL MAINTENANCE:  £";REPAIR
 200 PRINT "OXYGEN TANKS HOLD  ";(INT (OXY*100)/100);" UNITS"
 210 PRINT "OXYGEN COSTS £";OXYCOST;" PER UNIT"
 220 PRINT "OXYGEN NEED PER PERSON:  ";OXYNEED
 230 PRINT 
 240 PRINT "FOOD STOCKS STAND AT ";(INT (FOOD*100)/100)
 610 LET U=INT ((RND*11)+1)+128
 620 FOR J=1 TO 32
 630 PRINT CHR$ (U);
 640 NEXT J
 650 PRINT 
 700 RETURN 
 710 GOSUB 50
 712 PRINT "ARTEFACTS - HOW MANY WILL YOU",,"MAKE AND TRADE?"
 714 PRINT "THEY USE UP ";ARTCOST;" UNITS OF"
 718 PRINT "OXYGEN AND SELL FOR £";ARTPAY 
 720 INPUT B
 730 IF B*ARTCOST>OXY THEN PRINT "NOT ENOUGH OXYGEN"
 740 IF B*ARTCOST>OXY THEN GOTO 720
 745 LET CASH=CASH+B*ARTPAY
 750 LET OXY=OXY-B*ARTCOST
 755 CLS 
 760 GOSUB 50
 762 PRINT "FOOD COSTS £";FOODCOST;" PER UNIT"
 763 PRINT "EACH PERSON NEEDS ";FOODNEED;" UNITS"
 764 PRINT "(£";FOODCOST*FOODNEED;" EACH, £";(INT (FOLK*FOODCOST*FOODNEED)*10)/10;" FOR STATION)"
 766 PRINT "THIS WILL LAST ";(INT (FOOD/(FOODNEED*FOLK)*10)/10);" YEARS        AT THE PRESENT POPULATION"
 770 PRINT "HOW MUCH FOOD WILL YOU BUY?"
 780 INPUT C
 790 IF C*FOODCOST>CASH  THEN PRINT "NOT ENOUGH MONEY"
 800 IF C*FOODCOST>CASH  THEN GOTO 780
 805 LET FOOD=FOOD+C*FOODCOST
 810 LET CASH=CASH-C*FOODCOST
 820 CLS 
 830 GOSUB 50
 850 PRINT "HOW MUCH OXYGEN WILL YOU BUY?"
 855 PRINT "(CURRENT STOCKS WILL LAST FOR   ";(INT (OXY/(OXYNEED*FOLK)*10)/10);" YEARS AT THE PRESENT          POPULATION)"
 860 INPUT D
 870 IF D*OXYCOST>CASH THEN PRINT "NOT ENOUGH MONEY"
 880 IF D*OXYCOST>CASH THEN GOTO 860
 890 CLS 
 900 IF INT (RND*5)+1=2 THEN GOSUB 7000
\n2005 LET FOOD=FOOD-FOLK*FOODNEED
\n2030 LET CASH=CASH-REPAIR-D*OXYCOST
\n2040 LET OXY=OXY+D-FOLK*OXYNEED
\n2050 GOTO 20
\n3010 LET YEAR=0
\n3015 LET A$="THE STATION IS DEAD"
\n3020 LET FOLK=INT (80+INT (RND*40)+1)
\n3030 LET CASH=7*(700+INT (RND*800+1))/INT (RND*3+1)
\n3040 LET FOODCOST=INT (RND*7+1)
\n3050 LET ARTCOST=1+INT (RND*3)+1
\n3055 LET FOOD=2000+INT (RND*500)+1
\n3060 LET OXY=2000-INT (RND*1500)+1
\n3070 LET OXYCOST=INT (RND*7)+1
\n3080 LET ARTPAY=30*INT (RND*ARTCOST)+1
\n3090 LET REPAIR=200+INT (RND*400+1)
\n3100 LET FOODNEED=1+INT (RND*5+1)
\n3105 LET OXYNEED=2+INT (RND*3+1)
\n3115 RETURN 
\n7010 CLS 
\n7012 LET J=INT (RND*6+1)
\n7013 PRINT "THE STATION WAS ATTACKED BY"
\n7014 IF J=1 THEN PRINT "A FLEET OF SYRIAN SHIPS"
\n7015 IF J=2 THEN PRINT "RENEGADE EARTHLINGS"
\n7016 IF J=3 THEN PRINT "MARTIAN SPACE PILOTS"
\n7017 IF J=4 THEN PRINT "VYRILLIEX OUTWORLDERS"
\n7018 IF J=5 THEN PRINT "A LONE SHIP, APPARENTLY UNDER",,"ROBOT CONTROL"
\n7019 IF J=6 THEN PRINT "A PARRALEXIAN ESCORT VESSEL"
\n7020 PRINT 
\n7025 PRINT 
\n7027 PRINT 
\n7030 LET Z=1+(FOLK/INT (RND*15+1)+1)
\n7040 PRINT "THERE WERE ";INT Z;" PEOPLE KILLED"
\n7045 PRINT 
\n7050 LET ZZ=250+INT (RND*250+1)
\n7060 PRINT "DAMAGE WAS £";ZZ
\n7062 PRINT 
\n7065 LET ZZZ=INT (RND*300+1)
\n7066 LET ZZZZ=INT (RND*300*1)
\n7067 PRINT "AND FOOD STOCKS HAVE FALLEN",,"BY ";ZZZZ
\n7069 LET FOOD=FOOD-ZZZZ
\n7070 LET FOLK=FOLK-Z
\n7075 LET OXY=OXY-ZZZ
\n7080 LET CASH=CASH-ZZ
\n7085 PRINT 
\n7090 PRINT ,,"PRESS <ENTER>"
\n7092 INPUT U$
\n7095 CLS 
\n7100 RETURN 
\n8010 PRINT A$
\n8020 PRINT "YOU RAN OUT OF OXYGEN IN YEAR ";YEAR
\n8040 GOTO 8020
\n8100 PRINT A$
\n8110 PRINT "FOOD SUPPLIES WERE EXHAUSTED IN YEAR ";YEAR
\n8120 GOTO 8100
\n8200 PRINT A$
\n8210 PRINT "THE TREASURY RAN DRY IN YEAR ";YEAR
\n8220 GOTO 8210
\n8310 PRINT "YOUR POPULATION HAS FALLEN"
\n8320 PRINT "TO ";INT (FOLK);".  DO YOU WANT TO"
\n8330 PRINT "COMMIT SUICIDE PAINLESSLY"
\n8340 PRINT "NOW (1), AWAIT A SAD AND"
\n8350 PRINT "LINGERING DEATH (2), OR"
\n8355 PRINT "WAIT AND HOPE FOR NEW COLONISTS"
\n8356 PRINT "(3)?"
\n8360 INPUT B
\n8365 CLS 
\n8366 PRINT "I HOPE YOU HAVE CHOSEN WELL"
\n8367 FOR H=1 TO 50
\n8368 NEXT H
\n8370 IF B=1 THEN GOTO 8400
\n8384 IF B=2 THEN GOTO 8395
\n8386 IF B=3 THEN LET NC=INT (5*RND)+1
\n8387 IF NC=1 THEN LET FOLK=FOLK+INT (RND*26+1)
\n8388 IF NC=1 THEN LET CASH=CASH+INT (RND*300+1)
\n8389 IF NC>1 THEN GOTO 8390
\n8391 LET CTR=CTR+1
\n8395 GOTO 20
\n8400 PRINT A$
\n8401 PRINT "YOU MADE IT TO YEAR ";YEAR+1
\n8402 PRINT "GOODBYE"
\n8410 GOTO 8402
\n8500 PRINT A$
\n8510 PRINT "ALL COLONISTS HAVE DIED"
\n8520 PRINT "YOU MADE IT TO YEAR ";YEAR+1
\n8530 GOTO 8402
\n8550 STOP 
\n8560 REM RAND USR 14336
\n8570 REM SAVE "SPASTA.B1"
\n8575 SAVE "1021%5"
\n8580 RUN 
Scroll to Top