Random game
Random demo
Random game
Entry name:
 Two and One Half Mile Island 
Publisher/Developer:

BELLCOM - Public Domain Library
(Software library)
  • Category:

    Games
  • Year:

    1981
  • Code:

    C. A. Fowler
  • Maximum players:

    1
  • Programming language:

    Atari BASIC
Two and One Half Mile Island Two and One Half Mile Island Two and One Half Mile Island Two and One Half Mile Island Two and One Half Mile Island Two and One Half Mile Island Two and One Half Mile Island Two and One Half Mile Island Two and One Half Mile Island
Listing 1
10GOSUB8000
50?"THISPROGRAMSIMULATESTHEOPERATION"
60?"OFANUCLEARPOWERREACTOR.THE"
70?"OBJECTISTOOPERATETHEPLANTATA"
80?"MAXIMUMAVERAGEPOWEROUTPUTWITHOUT"
90?"CAUSINGAREACTORMELTDOWN.":?
110?"THECONTROLRODSADJUSTTHEAMOUNTOF"
120?"HEATPRODUCEDBYTHEREACTOR.PRIMARY"
130?"COOLANTTRANSFERSTHISHEATTOTHE"
140?"HEATEXCHANGER.SECONDARYCOOLANT"
150?"TRANSFERSHEATFROMTHEEXCHANGERTO"
160?"THETURBINE,WHEREPOWERISPRODUCED,"
170?"ANDFINALLYTOTHECOOLINGTOWER.THE"
180?"EMERGENCYCOOLANTISUSEDTOHELP"
190?"SHUTDOWNTHEREACTORWHENOTHER"
200?"SYSTEMSFAIL.UNLIKETHEOTHER"
210?"COOLANTS,EMERGENCYCOOLANTISNOTREUSEABLE.":?
220?"ENTERTOSEEREACTORENTERFORWORKINGINSTRUCTIONSENTERTOSTARTOPERATION";:GET#2,Q
221IFCHR$(Q)="D"THENGOSUB6000:GOTO220
222IFCHR$(Q)="S"THEN390
225GRAPHICS0
226?:?:?:?:?
230?"THECONTROLSAREOPERATEDBYTYPING"
235?"INTHEDESIREDCONTROLRODSETTING"
240?"ANDFLOWRATES.(USEVALUES0TO100)"
245?"IFNOENTRYMADE,THENTHEVALUESWILL"
250?"NOTCHANGE.PRESSTOSTEPTO"
255?"THEDIFFERENTFUNCTIONS."
270?"THEREACTORCANBEOPERATEDUNTILLA"
275?"MELTDOWNOCCURSORTHEREACTORFUEL"
280?"ISEXHAUSTED.THEFUELWILLLASTFOR"
285?"ABOUT100TO150DAYS."
290?"YOURPERFORMANCEWILLBEEVALUATEDATTHEENDOFTHEGAME."
298?"PRESSTOCONTINUE";:INPUTQ$:GRAPHICS0
299?:?:?:?:?
300?:?"IFYOUWANTTOREPAIRDAMAGEOR"
305?"REPLACECOOLANT,BRINGTHEREACTOR"
310?"TEMPERATUREDOWNBELOW100ANDSHUT"
315?"OFFTHECOOLANTFLOWS.THISWILL"
320?"CAUSEANAUTOMATICMAINTENANCESHUT-"
325?"DOWNANDALLCOOLANTWILLBEREFILLED"
330?"ANDREPAIRSMADE.THEGREATERTHE"
335?"DAMAGE,THELONGERTHEREPAIRSWILLTAKE."
337?"PRESSTOCONTINUE";:INPUTQ$
338GRAPHICS1+16
339SETCOLOR4,3,2
340POSITION5,10:?#6;"*WARNING*":POSITION2,12:?#6;"THISPOWERPLANT"
341POSITION2,13:?#6;"HASNOAUTOMATIC":POSITION3,14:?#6;"SAFETYDEVICES"
342FORX=1TO5:FORP=100TO1STEP-3:SOUND0,P,10,10:FORI=1TO2:NEXTI:NEXTP
343FORP=1TO88STEP4:SOUND0,P,10,10:NEXTP:NEXTX
345POSITION2,13:?#6;"HASNOAUTOMATIC":POSITION3,14:?#6;"SAFETYDEVICES"
346SOUND0,0,0,0
347GRAPHICS0
348?:?:?:?:?:?
380GOTO220
390REMINITIATE
400GOSUB2000
405DAY=0
410RH=0
420RL=0
440TT=0
450DMGE=0
455A=0:A1=0:A2=0
460REMWRITEREPORT
470GRAPHICS0
475DAY=DAY+1:IFDAY>120THEN4000
480?"ATARINUCLEARPOWERPLANT"
490?"STATUSREPORT-DAY";DAY
500?
510?"WARNINGS:":W=0
520IFRT>800THEN?"REACTOROVERHEATED":RD=RD+1+(RT>850)+(RT>900)+2*(RT>950):PD=PD+1:ED=ED+1+(RT>850)
525IFRT>800THENW=W+1
530IFXT>500THEN?"HEATEXCHANGEROVERHEATED":XD=XD+1+(XT>600):PD=PD+1:SD=SD+1:W=W+1
540IFGO>2000THEN?"TURBINEOVERLOADED":TD=TD+1+(GO>2500):SD=SD+1:W=W+1
550IFCT>300THEN?"COOLINGTOWEROVERHEATED":SD=SD+1:W=W+1
560IFGO<1000THEN?"POWEROUTPUTLOW":W=W+1
570IFEV<200THEN?"EMERGENCYCOOLANTLOW":W=W+1
580IFPV<100THEN?"PRIMARYCOOLANTLOW":W=W+1
590IFSV<100THEN?"SECONDARYCOOLANTLOW":SD=SD+1:W=W+1
595IFW=3THEN?"PRESSTOCONTINUE";:INPUTQ$:GRAPHICS0
600IFW=3THEN?"TWOAND0NE-HALFISLANDSTATUSREPORT-DAY";DAY:?
610?"DAMAGE:":D=0
620IFRD>3THEN?"REACTORCOREDAMAGED":D=D+1
630IFPD>4THEN?"PRIMARYCOOLANTLEAK-";PD;"PERDAY":PV=((PV-PD)*(PV-PD)>0):D=D+1
640IFSD>4THEN?"SECONDARYCOOLANTLEAK-";SD;"PERDAY":SV=(SV-SD)*((SV-SD)>0):D=D+1
650IFED>2THEN?"EMERGENCYCOOLANTLEAK-";2*ED;"PERDAY":EV=(EV-2*ED)*((EV-2*ED)>0):D=D+1
660IFPBTHEN?"PRIMARYCOOLANTPUMPFAILURE-";10*PD*(PD<10)+100*(PD>=10);"%":D=D+1
670IFSBTHEN?"SECONDARYCOOLANTPUMPFAILURE-";10*SD*(SD<10)+100*(SD>10);"%":D=D+1
680IFXBTHEN?"HEATEXCHANGERFAILURE":D=D+1
690IFGBTHEN?"TURBINEFAILURE":D=D+1
695IFD>3THEN?"PRESSTOCONTINUE";:INPUTQ$:?""
700IFRD>5THENGRAPHICS17:FORI=1TO10:FORI1=15TO0STEP-1:SETCOLOR0,3,I1:POSITION5,10
701IFRD>5THEN?#6;"MELTDOWN!":SOUND0,10+I1,12,8:NEXTI1:NEXTI:SOUND0,0,0,0:GOTO3000
720POSITION2,10:?"INDICATORS:"
730RT=INT(RT):POSITION2,11:?"REACTORTEMP.(MAX800)";RT
740XT=INT(XT):POSITION2,12:?"HEATEXCHANGERTEMP.(MAX500)";XT
750CT=INT(CT):POSITION2,13:?"COOLINGTOWERTEMP.(MAX300)";CT
760GO=INT(GO):POSITION2,14:?"POWEROUTPUT(MAX2000KW)";GO;"KW"
765KW=INT(KW):KW=TT/DAY
770KW=INT(KW):POSITION2,15:?"AVERAGEPOWEROUTPUT";KW;"KWPERDAY"
800POSITION2,16:?"CONTROLRODS-";A
810POSITION2,17:?"COOLANTS"
820POSITION2,18:?"EMERGENCYLEVEL-";EV;"FLOW-";EF
830POSITION2,19:?"PRIMARYLEVEL-";PV;"FLOW-";PF
840POSITION2,20:?"SECONDARYLEVEL-";SV;"FLOW-";SF
850IF(100-RL)<5THEN?:?:?"REACTORFUELEXHAUSTED":GOTO4000
900REMGETCONTROLVALUES
915A2=A1:A1=A:X$="":Z=0
930POSITION21,16:INPUTX$:IFX$=""THEN965
935X=VAL(X$):IFX<0ORX>100THEN930
955X$=STR$(X)
960A1=VAL(X$):A=A1+(100-A)*(A>100)
965GOSUB1160
990X$="":Z=0:X=0
1000POSITION33,18:INPUTX$:IFX$=""THEN1055
1005X=VAL(X$):IFX<0ORX>100THEN1000
1040X$=STR$(X)
1045EF1=VAL(X$):EF=EF1+(100-EF)*(EF>100)
1050IFEF>EVTHENEF=EV
1055GOSUB1160
1060X$="":Z=0:X=0
1065POSITION33,19:INPUTX$:IFX$=""THEN1110
1070X=VAL(X$):IFX<0ORX>100THEN1065
1100X$=STR$(X)
1105PF1=VAL(X$):PF=PF1+(100-PF)*(PF>100)
1110GOSUB1160
1120X$="":Z=0:X=0
1125POSITION33,20:INPUTX$:IFX$=""THEN1150
1130X=VAL(X$):IFX<0ORX>100THEN1125
1135X$=STR$(X)
1140SF1=VAL(X$):SF=SF1+(100-SF)*(SF>100)
1150GOSUB1163
1160POSITION2,22:?"GOONTONEXTDAY(YORN)";:GET#2,ND:POKE764,255
1161IFCHR$(ND)="Y"THEN1170
1162POSITION2,22:?"":RETURN
1163POSITION2,22:?"GOONTONEXTDAY(YORN)";:GET#2,ND1:POKE764,255:IFCHR$(ND1)="Y"THEN1170
1164POSITION2,22:?""
1165POSITION2,15:GOTO800
1170MSW=0:IFPF=0ANDSF=0ANDRH<1ANDRT<100ANDA=0THENMSW=1:GOSUB2000
1175GRAPHICS17:SETCOLOR4,3,2:POSITION3,10
1176IFMSWTHEN?#6;"-MAINTENANCE--SHUTDOWN-":GOTO1179
1177?#6;"----"
1179IFMSWTHENPOSITION4,13:?#6;"";MD;"DAYS":FORI=1TOMD*50:NEXTI
1180IFD>=2AND(NOTMSW)THENPOSITION5,14:?#6;"":?#6:?#6;"damageoccurring"
1181IFD>=2AND(NOTMSW)THEN?#6;"":?#6;""
1190FORI=1TO500:NEXTI:IFEF>EVTHENEF=EV
1200REMDAMAGEASSESMENTANDOPERATIONCALCULATIONS
1205EV=EV-EF-2*ED*(ED>3)
1210PD=PD+(PF>90)*(INT(RND(0)*20)>0.9500000000000001)
1220SD=SD+(SF>90)*(INT(RND(0)*20)>0.92)
1230PB=PD>5
1240SB=SD>5
1250IFPF>(100-PD*10)ANDPBTHENPF=(100-PD*10)*(100-PD*10>0)
1260IFSF>(100-SD*10)ANDSBTHENSF=(100-SD*10)*(100-SD*10>0)
1270RL=RL+RH/50
1280RH=(A*30+A1*60+A2*10)/2500*(100-RL)
1300PH=PF*(100*(PV>100)+PV*(PV<=100))/350
1310EH=EF/200*(RT-25)
1320RT=RT+RH-EH-PH-5*(RT>25)
1325RT=25+(RT-25)*(RT>25)
1330XT=((RT-25)*PF+(CT-25)*SF)/(PF+SF+1)+25
1340IFXBTHENXT=RT*0.8+5
1350SH=SF*(100*(PV>100)+PV*(PV<=100))/350*(XT-CT)
1360IFXBTHENSH=SH*0.2
1370GO=SH/XT*(XT-CT)*2/3
1375IFGO>2600THENGO=2600
1380GO=GO*(GO>0)*(GB=0)
1390CT=25+((XT-25)*(SH-GO)/(SH+1)*0.75)
1395CT=25*(CT<=25)+CT*(CT>25)
1400IFXB<1THENXB=(XD>2)*(INT(RND(0)*4)>0.9)
1410IFGB<1THENGB=(GD>4)*(INT(RND(0)*4)>0.9)
1420TT=TT+GO
1430GOTO470
2000REMMAINTREPAIRSUB.
2010EV=300
2020PV=120
2030SV=120
2040RT=25
2050XT=25
2060CT=25
2070DMGE=DMGE+2*RD+ED+PD+XD+SD+GD
2080MD=5+3*(10*(RD>3)+(ED>3)+(PD>3)+(SD>3)+2*PB+2*SB+3*XB+3*GB):DAY=DAY+MD
2090RD=0
2100ED=0
2110PD=0
2120XD=0
2130SD=0
2140GD=0
2150PB=0
2160SB=0
2170XB=0
2180GB=0
2190EF=0
2195GO=0
2200RETURN
3000REMMELTDOWNENDING
3010?
3020IFRD>6THEN3100
3030?"THEREACTORCOREHASBEENDESTROYED"
3040?"BYUNCONTROLLEDTHERMALRUNAWAY."
3050?"HOWEVERTHECONTAINMENTBUILDINGHAS"
3060?"NOTYETRUPTURED."
3070?
3080?"INITIATEYOUREVACUATIONPLAN."
3090GOTO5000
3100?"THEREACTORCOREHASMELTEDDOWNAND"
3110?"PRODUCEDASTEAMEXPLOSION.THE"
3120?"CONTAINMENTBUILDINGHASRUPTURED."
3130?"LETHALRADIOACTIVEGASESANDDEBRIS"
3140?"HAVEESCAPED."
3150?
3160?"INITIATEYOUREVACUATIONAND"
3170?"RADIATIONCLEANUPPLANSANDGET"
3180?"MEDICALASSISTANCE."
3190GOTO5000
4000REMEVALUATIONOFGAMERESULTS
4010?
4020?"OVERAPERIODOF";DAY;"DAYS,YOU"
4030?"HAVEPRODUCEDANAVERAGEPOWEROUTPUT"
4040?"OF";KW;"KILOWATTSPERDAY."
4050AKW=1+(KW>1000)+(KW>1200)+(KW>1500)+(KW>1800)
4060?
4070?"YOURAVERAGEPOWERPRODUCTIONRATEIS"
4080ONAKWGOTO4090,4100,4110,4120,4140
4090?"HORRIBLE!FINDALESSDEMANDINGJOB.":GOTO4200
4100?"WAYBELOWYOURAREA'SPOWERNEEDS.":GOTO4200
4110?"ADEQUATE.YOUCOULDDOBETTER.":GOTO4200
4120?"EXCELLENT!POWERCOSTSINYOURAREA"
4130?"WILLNOTBEINCREASED.":GOTO4200
4140?"NEARTHEMAXIMUM!POWERCOSTSIN"
4150?"YOURAREAWILLDROPSIGNIFICANTLY."
4200REMDAMAGEEVALUATION
4210?
4215GOSUB2000
4220D=1+(DMGE>10)+(DMGE>20)+(DMGE>30)
4230?"THEEQUIPMENTDAMAGESUSTAINEDDURING"
4240?"THISPERIODWAS";
4250ONDGOTO4260,4270,4280,4290
4260?"VERYLIGHT.":GOTO5000
4270?"MODERATE.":GOTO5000
4280?"HEAVY.":GOTO5000
4290?"SEVERE."
5000REMEND
5010?
5020?"WOULDYOULIKETOTRYAGAIN?(YORN)";
5030GET#2,A
5040IFCHR$(A)="Y"THENGOSUB2000:GOTO390
5050IFCHR$(A)<>"N"THEN5030
5060POSITION0,0
5070END
5100B$=""
5105FORI=1TO4
5110INPUTA$
5130IFASC(A$)<>32THEN5140
5134IFB$=""THENRETURN
5136OUT=VAL(B$)
5138RETURN
5140IFASC(A$)=13THENPOP:GOTO1170
5150A$(LEN(A$)+1)=B$
5160?A$
5170NEXTI
5180RETURN
6000GRAPHICS5:SETCOLOR2,9,12:COLOR5:FORI=1TO39:PLOTI,0:DRAWTOI,39:NEXTI
6005DE=200
6010?"":POKE752,1
6020?"THISISTHEREACTORVESSEL"
6030RESTORE
6035SETCOLOR1,12,3:COLOR2
6040FORI=1TO29
6050READX1,X2,Y
6060PLOTX1,Y:DRAWTOX2,Y
6070NEXTI
6080DATA7,9,6,15,17,6,6,18,7,5,19,8,5,7,9,17,19,9,5,6,10,18,19,10,5,6,11,18,19,11,5,6,12,18,19,12,5,6,13
6085DATA18,19,13,5,6,14
6090DATA18,19,14,5,6,15,18,19,15,5,6,16,18,19,16,5,6,17,18,19,17,5,6,18,18,19,18,5,7,19,17,19,19,6,18
6095DATA20,7,17,21,8,16,22
6100COLOR1
6110PLOT13,6:DRAWTO14,6
6120COLOR2
6130PLOT14,5:DRAWTO15,5
6140PLOT14,4:DRAWTO16,4
6150PLOT15,3:DRAWTO16,3
6160FORI=1TODE:NEXTI
6170?""
6180?"THISISTHEREACTORCORE"
6190SETCOLOR1,9,5:COLOR2
6200FORI=9TO15
6210PLOTI,11:DRAWTOI,17
6220NEXTI
6230FORI=1TODE:NEXTI
6240?""
6250?"THESEARETHECONTROLRODS."
6260COLOR4
6270PLOT11,2:DRAWTO11,17
6280PLOT13,2:DRAWTO13,17
6290FORI=1TODE:NEXTI
6300?""
6310?"THEEMERGENCYCOOLANTCANCOOLTHE"
6320?"REACTORINANEMERGENCY."
6330COLOR4
6340FORI=1TO36
6350READY,X
6360PLOTX,Y
6370FORJ=1TO25:NEXTJ
6380NEXTI
6390DATA4,2,4,4,5,2,5,3,5,4,6,2,6,3,6,4,7,3,8,3,9,3,10,3,11,3,12,3,12,4,12,5,12,6,12,7,12,8,12,9
6400DATA13,9,14,9,15,9,16,9,16,8,16,7,16,6,16,5,16,4,16,3,17,3,18,3,19,3,20,3,22,3,24,3
6410FORI=1TODE:NEXTI
6430?"THEPRIMARYCOOLANTCARRIESHEATFROM"
6440?"THEREACTORCORETOTHEHEATEXCHANGER"
6450FORI=1TO52
6460READY,X
6470PLOTX,Y
6480FORJ=1TO25:NEXTJ
6490NEXTI
6500FORI=1TODE:NEXTI
6510DATA4,25,4,27,5,25,5,26,5,27,6,25,6,26,6,27,7,26,8,26,9,26,10,26,11,26,12,26,12,25,12,24,12,23,12,22
6513DATA12,21,12,20,12,19
6515DATA12,18,12,17,12,16,12,15,13,15,14,15,15,15,16,15,16,16,16,17,16,18
6520DATA16,19,16,20,16,21,16,22,16,23,16,24,16,25,16,26,16,27,16,28,16,29,16,30,15,30,14,30,13,30,13,30
6525DATA12,30,12,29,12,28,12,27
6540?"":?:?
6550?"THISISTHEHEATEXCHANGER"
6560SETCOLOR2,0,12:COLOR3
6570PLOT28,10:DRAWTO34,10
6580PLOT34,10:DRAWTO34,18
6590PLOT34,18:DRAWTO28,18
6600PLOT28,18:DRAWTO28,10
6605COLOR2:PLOT28,12:PLOT28,16:COLOR3
6610FORI=1TODE:NEXTI
6620?""
6630?:?"THISISTHEGENERATORTURBINE"
6640PLOT5,30:DRAWTO18,30
6650PLOT18,30:DRAWTO18,36
6660PLOT5,36:DRAWTO18,36
6670PLOT5,30:DRAWTO5,36
6680COLOR2
6690PLOT2,33:DRAWTO17,33
6700FORI=7TO15STEP2
6710PLOTI,34:PLOTI+1,32
6720NEXTI
6730FORI=1TODE:NEXTI
6750?"":?:?"THISISTHECOOLINGTOWER"
6760SETCOLOR2,2,7:COLOR2
6770PLOT24,23:DRAWTO24,25
6780PLOT36,23:DRAWTO36,25
6790PLOT25,25:DRAWTO25,26
6800PLOT35,25:DRAWTO35,26
6810PLOT26,26:DRAWTO26,28
6820PLOT34,26:DRAWTO34,28
6830PLOT27,28:DRAWTO27,36
6840PLOT33,28:DRAWTO33,36
6850PLOT34,36
6860PLOT26,36
6870PLOT25,38:DRAWTO35,38
6880FORI=1TODE:NEXTI
6890?""
6900?"SECONDARYCOOLANTCARRIESHEATFROMTHEHEATEXCHANGERTOTHETURBINE";
6910?"ANDTHENTOTHECOOLINGTOWER."
6925COLOR4
6930FORI=1TO123
6940READY,X
6950PLOTX,Y
6970NEXTI
6980DATA4,35,4,37,5,35,5,36,5,37,6,35,6,36,6,37,7,36,8,36,9,36,10,36,11,36,12,36,12,35,12,34,12,33,12,32
6985DATA13,32,14,32,15,32,16,32
6990DATA16,33,16,34,16,35,16,36,17,36,18,36,19,36,20,36,20,35,20,34,20,33,20,32,20,31,20,30,20,29,20,28
6995DATA20,27,20,26,20,25,20,24,20,23,20,22,20,21
7000DATA21,21,22,21,23,21,24,21,25,21,26,21,27,21,27,20,27,19,27,18,27,17,27,16,27,15,27,14,27,13,27,12
7005DATA27,11,27,10,27,9,27,8,27,7
7010DATA28,7,29,7,30,7,31,7,32,7,34,10,32,13,34,16,35,16,35,17,35,18,35,19,35,20,35,21,35,22,35,23,35,24
7015DATA35,25,35,26,35,27,35,28
7020DATA34,28,34,29,34,30,35,30,35,31,35,32,34,32,34,33,34,34,34,35,34,36,34,37,34,38,33,38,32,38,31,38
7025DATA30,38,29,38,28,38,27,38,26,38,25,38,24,38,23,38
7030DATA22,38,21,38,20,38,19,38,18,38,17,38,16,38,15,38,14,38,13,38,12,38,12,37
7035FORJ=1TO100:NEXTJ
7040GRAPHICS0:?""
7050RETURN
8000?""
8010DIMX$(1000),B$(20),W$(20),P$(20),Y$(20),Z$(20),K(4),Q$(4),ND$(3),ND1$(3)
8015W$="-=-=-=-=-=-=-=-=-=-=-"
8016Y$="-=-=-=-=-=-=-=-=-=-=-"
8020X$="":B$=""
8025X$="TWOANDONEHALFMILEISLANDREVISITED...................."
8030X$(LEN(X$)+1)=B$
8035GRAPHICS18
8040DIMK$(LEN(X$)),C$(LEN(X$)):K$=X$
8046POSITION1,3:?#6;W$(1,19):P$=W$(2):P$(LEN(P$)+1)=W$:W$=P$
8047POSITION1,7:?#6;Y$(1,19):Z$=Y$(2):Z$(LEN(Z$)+1)=Y$:Y$=Z$
8050POSITION1,5:?#6;K$(1,19):C$=K$(2):C$(LEN(C$)+1)=K$:K$=C$:K=PEEK(764)
8053POSITION1,8:?#6;"REVISEDBYC.A.FOWLER1981"
8054POSITION1,10:?#6;"PRESSSTARTTOPLAY"
8055M=PEEK(53279):IFM=6THEN8060
8056FORTI=1TO10:NEXTTI:POKE77,0:SETCOLORINT(RND(0)*4),INT(RND(0)*15),8:IFK=255THEN8046
8060GRAPHICS0:OPEN#2,4,0,"K:"
8065RETURN	

This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page, please contact me immediatelly so I can remove it!