Random demo
Random demo
Random book
Entry name:
 Safryland 
Publisher/Developer:

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

    Games
  • Year:

    1982
  • Code:

    Peter Naleszkiewicz
  • Maximum players:

    1
  • Programming language:

    Atari BASIC
Safryland Safryland Safryland Safryland Safryland
Listing 1
10REM*******************
12REM***SAFRYLAND***
15REM*******************
20REMW/OUTPUTTOSCREEN
25REMORBOTHSCREENANDPRINTER!
30REM
35REMByPeterNaleszkiewicz(1982)
40REMPOSTEDONA.M.I.S./BILLERICA(617)667-7388
45REM
50DIMR$(13),P$(80)
60GRAPHICS0:SETCOLOR2,7,0:POSITION12,8:?"":?:?
100?"DOYOUWANTOUTPUTTOBOTHTVSCREENANDPRINTER[]or[]";:GOSUB1970:PR=R
115IFPRTHENOPEN#1,8,2,"P:":GOTO150
120OPEN#1,8,2,"E:"
150YR=0:PP=INT(RND(0)*500+500):SF=INT(RND(0)*1500+PP*1.2):AC=INT(RND(0)*100+PP/10):MAX=PP
160FM=INT(RND(0)*50+PP/15):MM=INT(RND(0)*AC/100):ID=INT(RND(0)*2):ML=INT(RND(0)*PP/9+PP/9)
170LY=INT(RND(0)*20+25):REM***FINDMAXIMUM#OFYEARSTORULE
200?#1:?#1:?#1:GRAPHICS0:SETCOLOR2,7,0:P$="":V=YR:GOSUB1820:P$="POPULATION:":V=PP:GOSUB1820
210P$="SAFRIESINTREASUREY:":V=SF:GOSUB1820
220P$="ACRESOFLAND:":V=AC:GOSUB1820
230P$="SAFRIESWORTHOFFARMING":V=-9.9:GOSUB1820:P$="EQUIPMENT:":V=FM:GOSUB1820
235P$="SAFRIESWORTHOFMILITARY":V=-9.9:GOSUB1820:P$="SUPPLIES:":V=ML:GOSUB1820
240P$="#OFMINERALMINES:":V=MM:GOSUB1820
250P$="#OFINDUSTRIALFACTORIES:":V=ID:GOSUB1820
255IFPP>MAXTHENMAX=PP
260IFPP<MAX/2THEN3000
270IFYR=LYTHEN3100
280IFYR=3THENLWPP=PP:LWFM=FM:LWML=ML:LWMM=MM:LWID=ID:HGFM=FM:HGML=ML:HGMM=MM:HGID=ID
300GOSUB1000:REMLANDPRICE
310IFYR<4THEN400:REMDON'TKEEPTRACKRECORDOF1st3YEARS
315REM***KEEPTRACKOFHIGHANDLOWSTATISTICS(forgradingperformance)
320IFLWPP>PPTHENLWPP=PP
325IFLWFM>FMTHENLWFM=FM
330IFLWML>MLTHENLWML=ML
335IFLWMM>MMTHENLWMM=MM
340IFLWID>IDTHENLWID=ID
345IFHGFM<FMTHENHGFM=FM
350IFHGML<MLTHENHGML=ML
355IFHGMM<MMTHENHGMM=MM
360IFHGID<IDTHENHGID=ID
400P$="Doyouwanttosellanyland":GOSUB1800:GOSUB1970:IFRTHENGOSUB2050
405GOSUB1900:P$="onfoodforyourpeople":GOSUB1800:GOSUB1940:SFF=R
408IFR>SFTHENP$="***Youonlyhave":V=SF:GOSUB1820:GOTO405
409SF=SF-SFF
410IFSFTHENP$="Doyouwanttobuyanyland":GOSUB1800:GOSUB1970:IFRTHENGOSUB2000
420R=0:IFSFTHENGOSUB1900:P$="onfarmingequipment":GOSUB1800:GOSUB1940
425MFM=R:IFR>SFTHENP$="***Youonlyhave":V=SF:GOSUB1820:GOTO420
427SF=SF-MFM
430GOSUB1920:P$="workonfarmsthisyear":GOSUB1800:GOSUB1940:PFM=R
435IFR>PPTHENP$="***Youonlyhave":V=PP:GOSUB1820:GOTO430
440R=0:IFSFTHENGOSUB1900:P$="onmilitaryequipment":GOSUB1800:GOSUB1940
445MML=R:IFR>SFTHENP$="***Youonlyhave":V=SF:GOSUB1820:GOTO440
447SF=SF-MML
450R=0:IF(PP-PFM)THENGOSUB1920:P$="workinthemilitarythisyear":GOSUB1800:GOSUB1940
455PML=R:IFR>PP-PFMTHENP$="***Youonlyhave":V=PP-PFM:GOSUB1820:GOTO450
460R=0:IF(PP-PFM-PML)THENGOSUB1920:P$="workinminesthisyear":GOSUB1800:GOSUB1940
465PMM=R:IFR>PP-PFM-PMLTHENP$="***Youonlyhave":V=PP-PFM-PML:GOSUB1820:GOTO460
470R=0:IF(PP-PFM-PML-PMM)THENGOSUB1920:P$="workinfactoriesthisyear":GOSUB1800:GOSUB1940
475PID=R:IFR>PP-PFM-PML-PMMTHENP$="***Youonlyhave":V=PP-PFM-PML-PMM:GOSUB1820:GOTO470
480R=0:IFSFTHENGOSUB1900:P$="forgeologicaltesting/miningsupplies":GOSUB1800:GOSUB1940
485MMM=R:IFR>SFTHENP$="***Youonlyhave":V=SF:GOSUB1820:GOTO480
487SF=SF-MMM
490R=0:IFSFTHENGOSUB1900:P$="onindustry":GOSUB1800:GOSUB1940
495MID=R:IFR>SFTHENP$="***Youonlyhave":V=SF:GOSUB1820:GOTO490
500SF=SF-MID:GOSUB2200:REMFARMINGOUTCOME
505GOSUB2500:REMPEOPLEDIE?
510GOSUB1200:REMCOMPUTEMILITARYHOLDING/EXPANSION
520GOSUB1400:REMMININGOUTCOME
530GOSUB1600:REMINDUSTRYOUTCOME
540GOSUB4000:REMNATURALPHENOMINAE
550IFAC<5THEN3010
580?:?"...";:INPUTR$
590YR=YR+1:GOTO200
999STOP
1000ACP=INT(RND(0)*4+2)+DR:IFDR<>0THENDR=0
1020P$="Landissellingfor":GOSUB1800:P$=STR$(ACP):GOSUB1800:V=-9.9:P$="sf.peracre.":GOSUB1820
1060RETURN
1200?#1:TRAP1260:C=1:IFRND(0)*(AC*5/(PML+ML/3))<2THENC=2
1210IFC=1ANDRND(0)*(AC*5/(PML+ML/3))>4THENC=3
1220ML=INT(ML-ML*RND(0)*0.1):ML=INT(ML+RND(0)*MML*0.4):IFML<0THENML=0
1230ONCGOTO1270,1340,1300
1260C=3:GOTO1220
1270P$="Nomilitaryactionthisyear.":V=-9.9:GOSUB1820:RETURN
1300AL=INT(RND(0)*10+RND(0)*AC/(PML/2+0.001+ML/4)):IFAL>ACTHENAL=AC
1310P$="AmilitaryDEFEAT!-Lossofacrage=":V=AL:GOSUB1820
1320P$="-Lossofpeople=":V=AL:GOSUB1820:PP=PP-AL:RETURN
1340AL=INT(RND(0)*10+RND(0)*(PML/2+ML/4))
1350P$="AmilitaryVICTORY!-Acragegained=":V=AL:GOSUB1820
1360AC=AC+AL:AL=INT(RND(0)*AL+RND(0)*10)
1370P$="-Peoplegained=":V=AL:GOSUB1820:PP=PP+AL:RETURN
1400HM=INT(MM-RND(0)*MM*0.5):HM=INT(HM+RND(0)*MMM*0.030000000000000002):IFHM<0THENMM=0
1402IFHM>AC/8THENHM=INT(AC/8)
1404IFHM>PMM/10THENHM=INT(PMM/10)
1406P$="Numberofmineslost/discovered=":V=HM-MM:GOSUB1820:MM=HM
1410AL=(MM<>0)*(PMM<>0)*INT(RND(0)*(PMM*2+190*MM)):?#1:P$="Safriesearnedinmining=":V=AL:GOSUB1820
1420SF=SF+AL:RETURN
1600HD=INT(ID-RND(0)*ID*0.3):HD=INT(HD+RND(0)*MID*0.02):IFHD<0THENHD=0
1602IFHD>AC/6THENHM=INT(AC/6)
1604IFHD>PID/5THENHM=INT(PMM/5)
1606P$="Numberoffactorieslost/built=":V=HD-ID:GOSUB1820:ID=HD
1610AL=(PID<>0)*(ID<>0)*INT(RND(0)*(PID*1.5+150*ID)):?#1:P$="Safriesearnedinindustry=":V=AL:GOSUB1820
1620SF=SF+AL:RETURN
1800?#1;P$;:IFPRTHEN?P$;
1810RETURN
1820IFV<>-9.9THENP$(LEN(P$)+1)=STR$(V)
1825?#1;P$:IFPRTHEN?P$
1830RETURN
1900P$="HowmanySafriesdoyouwanttospend":GOTO1800
1920P$="Howmanyofthepeopledoyouwantto":GOTO1800
1940TRAP1940:INPUTR$:IFR$=""THEN1940
1945R=VAL(R$):IFR<0ORSTR$(R)<>R$THEN1940
1950IFPRTHEN?#1;"?";R$
1955RETURN
1970TRAP1940:INPUTR$:IFR$=""THEN1970
1973R=0:IFR$(1,1)="Y"ORR$(1,1)="y"THENR=1
1975IFPRTHEN?#1;"?";R$
1980RETURN
2000P$="Howmanyacresdoyouwant":GOSUB1800:GOSUB1940
2010P=R*ACP:IFP>SFTHENP$="***Youonlyhave":V=SF:GOSUB1820:POP:GOTO410
2020SF=SF-P:AC=AC+R
2030P$="Acresnowowned:":V=AC:GOSUB1820:RETURN
2050P$="Howmanyacresdoyouwanttosell":GOSUB1800:GOSUB1940
2060P=R*ACP:IFR>ACTHENP$="***Youonlyhave":V=AC:GOSUB1820:POP:GOTO400
2070SF=SF+P:AC=AC-R:GOTO2030
2200IFPFM=0ORFM=0THENT=0:GOTO2202
2201FT=INT(RND(0)*AC/2+AC/3):T=INT(FT*(FM/PFM)):IFT>FTTHENT=FT
2202FM=INT(FM-FM*RND(0)*0.1):FM=INT(FM+RND(0)*MFM*0.4):IFFM<0THENFM=0
2210?#1:P$="Acresoffarmablelandthisyear=":V=T:GOSUB1820
2220M=INT(ACP-RND(0)*3+FM/(T+0.01))*T:M=M*(M>0):P$="Safriesearnedfromfarming=":V=M:GOSUB1820
2230SF=SF+M:RETURN
2500SUR=SFF-PP:IFSUR<0ANDDR<>2THENPP=PP+SUR:P$="STARVATION!!PEOPLESTARVED=":V=-SUR:GOSUB1820
2510IFSUR>0THENNP=PP+INT(RND(0)*SUR/10):P$="FOODSURPLUS!!NEWBORN=":V=NP-PP:GOSUB1820:PP=NP
2520IFDR<>2THENSUR=INT(RND(0)*PP*0.1):PP=PP-SUR:P$="Peoplediedofnaturalcauses=":V=SUR:GOSUB1820
2530IFPP<5THEN3000
2540RETURN
3000?#1:?#1:?#1:P$="OHNO!TOOMANYHAVEDIED...":V=-9.9:GOSUB1820:GOTO3500
3010?#1:?#1:?#1:P$="OHNO!ACRAGELEFT=":V=AC:GOSUB1820:GOTO3500
3100?#1:?#1:?#1:P$="YOUHAVERULEDUNTILRETIREMENT!":V=-9.9:GOSUB1820:GOTO3500
3500REM***FINDRATING***
3510R=10:IFYR<4THENR=1:GOTO3600
3520R=R-(LY-YR)/2-(150-HGMM-HGID)/10-(9000-HGML-HGFM)/1000+(LWMM+LWID)/2+(LWFM+LWML)/1000
3530R=R+(44-LY)/6+(PP-MAX)/300+(MAX-LWPP)/2000+LWPP/500+SF/100000:R=INT(R):IFR>10THENR=100
3540IFR<1THENR=1
3600RESTORE3700:FORC=1TOR:READR$:NEXTC
3610?#1:?#1:P$="HISTORIANSFINDYOUTOBEARULER!"
3620P$(29+(10-LEN(R$))/2,38-(10-LEN(R$))/2)=R$
3630V=-9.9:GOSUB1820:END
3700DATAHORRID,POOR,BAD,FEEBLE,FAIR,NAVERAGE,NOKAY,GOOD,GREAT,PERFECT
4000IFRND(0)<0.15THENGOSUB4100
4010IFRND(0)<0.1THENGOSUB4200
4020IFRND(0)<0.12000000000000001THENGOSUB4300
4080RETURN
4100SFF=INT(RND(0)*SFF/3+2*SFF/3):?#1:P$="###DROUGHT!###":V=-9.9:GOSUB1820:DR=-1:GOTO2500
4200SFF=INT(RND(0)*SFF*2+SFF):?#1:P$="###RAINYSEASON!###":V=-9.9:GOSUB1820:DR=2:GOTO2500
4300PL=INT(RND(0)*PP/6):?#1:P$="###EARTHQUAKE!###PEOPLELOST=":V=PL:GOSUB1820:PP=PP-PL
4310AL=INT(RND(0)*AC/4+10):IFAL>ACTHENAL=AC
4320P$="Lossofacrage=":V=AL:GOSUB1820:AC=AC-AL: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!