Compucolor.org – Virtual Media

Listing of file='ELECCO.BAS;01' on disk='vmedia/chip_8-sector.ccvf'

0 OUT 8,247:DEF FN C(X)= (X- 1)* RND (1)+ 1
10 DEF FN C0(X)= INT (ABS (X)+ .5)* SGN (X)
20 DEF FN C2(X)= (INT (ABS (X* 100)+ .5)/ 100)* SGN (X)
30 PLOT 14,31,29,20,30,16,12,27,24:PRINT :PRINT :PRINT
40 A$= "+--++--++--++--++--++--++--++--+"
50 PRINT TAB( 16)A$:PRINT :PRINT TAB( 24)"ELECTRIC COMPANY":PRINT :PRINT :PRINT TAB( 16)A$:PLOT 3,64,0,15,14,29,18
60 FOR J= 1TO 5000:NEXT
70 PLOT 12:OUT 8,255:INPUT "DO YOU NEED INSTRUCTIONS (YES/NO)? ";Z$
80 OUT 8,247:IF Z$= "NO"GOTO 540
90 PLOT 12:PRINT "YOU HAVE BEEN HIRED AS PRESIDENT OF AN ELECTRIC COMPANY.
100 PRINT "YOU WILL BE PRESIDENT FOR 10 YEARS BEFORE BEING NAMED TO THE
110 PRINT "BOARD OF DIRECTORS--ASSUMING A SUCCESSFUL TERM AS PRESIDENT.
120 PRINT TAB( 5)"YOU WILL START WITH ONE MILLION DOLLARS IN CASH, 1 POWER
130 PRINT "PLANT AND STOCK PILES OF COAL AND FUEL OIL--THE TWO FUELS YOU
140 PRINT "MAY USE TO POWER A GENERATING PLANT.  YOU MAY CHOOSE EITHER
150 PRINT "FUEL YOU WISH TO POWER THE PLANT YOU START WITH AND EACH
160 PRINT "SUCCEEDING PLANT YOU BUILD THEREAFTER.  ALL PLANTS HAVE A
170 PRINT "GENERATING CAPACITY OF 1 MILLION KILOWATTS.  AS THE PLANTS
180 PRINT "BECOME OLDER, THEY BECOME INCREASINGLY INEFFICIENT.  THAT IS,
190 PRINT "THEY REQUIRE MORE FUEL TO PRODUCE EACH KILOWATT OF ELECTRICITY.
200 PRINT "THEY CAN BE BROUGHT BACK TO PEAK EFFICIENCY BY REMODELING THEM.
210 PRINT "THE LONGER YOU WAIT TO REMODEL, THE MORE IT WILL COST.  AND IF
220 PRINT "MORE THAN ONE PLANT IS OWNED, ALL PLANTS MUST BE REMODELED AT
230 PRINT "THE SAME TIME.
240 PRINT TAB( 5)"PRESS ANY KEY TO CONTINUE INSTRUCTIONS":PLOT 3,64,0:POKE 33278,0:OUT 8,255
241 IF PEEK (33278)= 0GOTO 241
250 OUT 8,247:PLOT 12:PRINT "YOU HAVE TWO FUELS FROM WHICH TO CHOOSE: COAL AND FUEL OIL.
260 PRINT "COAL TENDS TO YIELD MORE KILOWATTS PER DOLLAR OF FUEL; HOWEVER,
270 PRINT "COAL PLANTS COST ABOUT 50% MORE TO BUILD THAN FUEL OIL PLANTS.
280 PRINT TAB( 5)"MANAGEMENT OF FUEL SUPPLIES IS IMPORTANT BECAUSE THERE IS
290 PRINT "A LEAD TIME OF 1 YEAR BEFORE IT ARRIVES.  COAL ORDERED IN YEAR
300 PRINT "4 IS NOT AVAILABLE FOR USE UNTIL YEAR 5, SO A CLOSE EYE MUST BE
310 PRINT "KEPT ON FUEL RESERVES.
320 PRINT TAB( 5)"INFLATION AFFECTS THE COST OF ALMOST EVERYTHING YOU
330 PRINT "ENCOUNTER, FROM FUEL COSTS TO DAMAGE CAUSED BY DISASTER OR
340 PRINT "JUDGEMENT ERROR.  IF YOU FIND THAT A RATE INCREASE IS REQUIRED
350 PRINT "TO MAINTAIN A PROFITABLE BUSINESS AND KEEP THE STOCK HOLDERS
360 PRINT "HAPPY, YOU MAY APPLY FOR A RATE INCREASE EACH YEAR.  ALL YOU DO
370 PRINT "IS SPECIFY WHAT YOU WANT THE NEW RATE TO BE (THE INITITAL RATE
380 PRINT "IS .05 PER KILOWATT).
390 PRINT TAB( 5)"PRESS ANY KEY TO CONTINUE INSTRUCTIONS":PLOT 3,64,0:POKE 33278,0:OUT 8,255
391 IF PEEK (33278)= 0GOTO 391
400 OUT 8,247:PLOT 12:PRINT TAB( 5)"TEMPER YOUR RATE REQUESTS WITH MODERATION.  GREED WILL
410 PRINT "GET YOU NOWHERE.  RATE INCREASES CAN BE REJECTED AS WELL AS
420 PRINT "ACCEPTED.  BY WAITING LONGER BETWEEN INCREASE REQUESTS, YOU
430 PRINT "CAN ASK FOR A LARGER INCREASE AND HAVE IT ACCEPTED.  ALSO BY
440 PRINT "WAITING LONGER BETWEEN REQUESTS, A COMPROMISE RATE INCREASE MAY
450 PRINT "BE GRANTED--WHERE AS FREQUENT REQUESTS MAY RESULT IN A DENIED
460 PRINT "INCREASE.  AS WITH FUEL ORDERS, THERE IS A LEAD TIME OF 1 YEAR
470 PRINT "FOR RATE HIKES.  A RATE INCREASE GRANTED IN YEAR 6 DOES NOT
480 PRINT "TAKE AFFECT UNTIL YEAR 7.
490 PRINT :PRINT TAB( 5)"NOW LIKE ALL GOOD EXECUTIVES, YOU MUST GET TO WORK.
500 PRINT :PRINT TAB( 20)"G O O D   L U C K ! ! !
510 PRINT :PRINT "PRESS ANY KEY TO BEGIN":PLOT 3,64,0,27,11:POKE 33278,0:OUT 8,255
511 IF PEEK (33278)= 0GOTO 511
540 OUT 8,247:YR= 0:PI= 1:GF= 1:CS= 700:CC= 20:CF= 25:CL= 1600:FO= 2500:CR= 1000000:R= .05:RT= .05
550 PLOT 12:PRINT "WHAT FUEL DO YOU WANT TO POWER THE GENERATORS OF YOUR PLANT?
560 OUT 8,255:INPUT "1=COAL   2=FUEL OIL? ";F(1)
570 OUT 8,247:IF F(1)< 1OR F(1)> 2GOTO 550
580 EF(1)= 1
590 YR= YR+ 1
600 I= 0
610 E= (100+ FN C(10))/ 100
620 I= I+ 1:EF(I)= EF(I)* E:IF I< GFGOTO 610
630 PLOT 12:PRINT "   ***** FINANCES FOR BEGINNING OF YEAR";YR;" *****":PRINT
640 PRINT "GENERATING PLANTS OWNED"TAB( 30)GF
650 PRINT "NUMBER OF CUSTOMERS"TAB( 30)CS
660 PRINT "TONS OF COAL IN STOCK"TAB( 30)CL
670 PRINT "BARRELS OF FUEL OIL IN STOCK"TAB( 30)FO
680 PRINT "CASH RESERVE"TAB( 30)CR
690 PRINT :PRINT "PRESS ANY KEY TO BEGIN THIS YEAR'S TRANSACTIONS":PLOT 3,64,0:POKE 33278,0:OUT 8,255
691 E= RND (1):IF PEEK (33278)= 0GOTO 691
700 OUT 8,247:PLOT 12:IF CR> 0GOTO 780
710 PLOT 12:PRINT "YOU HAVE BUNGLED THE JOB.  THE COMPANY IS BROKE.
720 PRINT "TURN IN YOUR EXECUTIVE WASHROOM KEY AND GET OUT
730 PRINT :GOTO 2220
740 PRINT "YOU HAVE MISMANAGED YOUR FUEL INVENTORY.  THAT IS TOO BAD, FOR
750 PRINT "YOU WERE DOING FINE IN OTHER AREAS OF MANAGEMENT.  BUT THE
760 PRINT "BOARD OF DIRECTORS IS UNSYMPATHETIC, YOU ARE CANNED.
770 PRINT :GOTO 2220
780 IN= FN C2((100+ FN C(12))/ 100):PI= FN C2(PI* IN):PG= (100+ FN C(12))/ 100
790 MN= ((GF* 5000)+ (CS* 10))* PI:CR= FN C0(CR- MN)
800 CS= INT (CS* PG):KD= CS* 1000:GC= 1000000* GF
810 CC= INT (2000* PI)/ 100:SC= INT (100* PI* (FN C(30)+ 20)/ 10)/ 100
820 OC= INT (2500* PI)/ 100:SO= INT (100* PI* (FN C(10)+ 10)/ 10)/ 100
830 EV= FN C(10):IF EV> 5GOTO 1000
840 ON EVGOTO 850,920,940,960,980
850 CA= FN C0(FN C(100)):HU= INT ((500+ FN C(500)+ (1/ CA)* FN C(500))* PI)
860 PLOT 12:PRINT CA;" PEOPLE HAVE REQUESTED TO BE ADDED TO THE CUSTOMER LIST.
870 PRINT "IT WILL COST $";HU;" TO HOOK THE CUSTOMERS TO YOUR SYSTEM.
880 PRINT "DO YOU WISH TO SELL POWER TO THEM?":OUT 8,255:INPUT "1=YES   2=NO  ? ";DC
890 OUT 8,247:IF DC< 1OR DC> 2GOTO 860
900 IF DC= 2GOTO 1000
910 CS= CS+ CA:CR= CR- HU:GOTO 1000
920 CA= FN C0(FN C(100)):PLOT 12:PRINT CA;" PEOPLE HAVE DROPPED AS CUSTOMERS
930 CS= CS- CA:GOTO 990
940 SD= FN C0((FN C(1000)+ 1000)* PI):PRINT "A STORM CAUSED $";SD;" DAMAGE.
950 CR= CR- SD:GOTO 990
960 PRINT "PEOPLE PROMISE TO CONSERVE.  DEMAND WILL NOT RISE AS SHARPLY
970 PRINT "THIS YEAR.":KD= INT (KD* .9):GOTO 990
980 PRINT "DEMAND WILL RISE FASTER THAN USUAL.":KD= INT (KD* 1.1)
990 FOR J= 1TO 2000:NEXT
1000 KG= 0:NC= 0:NF= 0:I= 0
1010 I= I+ 1
1020 PLOT 12:PRINT FN C0(KD- KG);
1030 PRINT " KILOWATTS ARE NEEDED.  YOU HAVE";GF;" PLANTS.
1040 PRINT "HOW MANY KILOWATTS FROM PLANT";I;:OUT 8,255:INPUT "? ";K
1050 OUT 8,247:IF K< = 1000000GOTO 1070
1060 PRINT "ONE PLANT CAN NOT PRODUCE THAT MUCH.":GOTO 1040
1070 KG= KG+ K
1080 IF F(I)= 2GOTO 1120
1090 F= INT ((K/ 600* EF(I))+ .5):NC= NC+ F:IF NC< CLGOTO 1110
1100 NC= NC- F:KG= KG- K:PRINT "YOU DO NOT HAVE ENOUGH COAL.":GOTO 740
1110 PRINT "PLANT";I;" NEEDS";F;" TONS OF COAL.":GOTO 1150
1120 F= INT ((K/ 400* EF(I))+ .5):NF= NF+ F:IF NF< FOGOTO 1140
1130 NF= NF- F:KG= KG- K:PRINT "YOU DO NOT HAVE ENOUGH FUEL OIL.":GOTO 740
1140 PRINT "PLANT";I;" NEEDS";F;" BARRELS OF OIL
1150 FOR J= 1TO 1500:NEXT
1160 PLOT 12:IF I< GFGOTO 1010
1170 IF KD> GCGOTO 1200
1180 IF KD> KGGOTO 1240
1190 GOTO 1280
1200 PLOT 12:PRINT "ALL GENERATORS WERE OVERLOADED!  DEMAND WAS GREATER THAN
1210 PRINT "CAPACITY.  A MAJOR BLACKOUT OCCURRED.  SEVERE DAMAGE HAS BEEN
1220 PRINT "CAUSED TO THE GENERATORS AND YOUR CAREER.  YOU HAVE BEEN SENT
1230 PRINT "TO ANTARCTICA TO MANAGE AN ICE CREAM PARLOR.":GOTO 2220
1240 DM= FN C0((FN C(1000)+ 2000)* PI* KD/ KG):CR= CR- DM
1250 PLOT 12:PRINT "YOU DID NOT GENERATE ENOUGH TO MEET DEMANDS.
1260 PRINT "$";DM;" WORTH OF DAMAGE HAS BEEN CAUSED TO THE
1270 PRINT "EQUIPMENT.  FURTUNATELY THIS WAS NOT A FATAL MISTAKE.
1280 PRINT "FUEL REQUIREMENTS
1290 PRINT NC;" TONS OF COAL":PRINT NF;" BARRELS OF FUEL OIL":PRINT
1300 PRINT "COST PER TON OR BARREL";TAB( 30)"SHIPPING"TAB( 45)"TOTAL COST
1310 PC= CC+ SC:PO= OC+ SO
1320 CC= FN C2(CC):PRINT "COAL"TAB( 15)CC;
1330 SC= FN C2(SC):PRINT TAB( 30)SC;
1340 PC= FN C2(PC):PRINT TAB( 48)PC
1350 OC= FN C2(OC):PRINT "FUEL OIL"TAB( 15)OC;
1360 SO= FN C2(SO):PRINT TAB( 30)SO;
1370 PO= FN C2(PO):PRINT TAB( 48)PO
1380 PRINT :OUT 8,255:INPUT "HOW MANY TONS OF COAL DO YOU WISH TO BUY? ";CP
1390 PRINT :INPUT "HOW MANY BARRELS OF FUEL OIL DO YOU WISH TO BUY? ";OP
1400 OUT 8,247:CB= CP* PC:OB= OP* PO
1410 PLOT 12:PRINT "FUEL COSTS"TAB( 20)"COAL"TAB( 35)"FUEL OIL"TAB( 50)"TOTAL
1420 CB= FN C2(CB):OB= FN C2(OB):PRINT TAB( 19)CB;TAB( 34)OB;TAB( 49)(CB+ OB)
1430 ER= KG* RT:CR= CR- CB- OB+ ER:CL= CL+ CP- NC:FO= FO+ OP- NF
1440 FOR J= 1TO 3000:NEXT
1450 PLOT 12:PRINT "REMODELING DOES NOT INCREASE THE GENERATING CAPACITY OF A
1460 PRINT "PLANT.  IT WILL RESTORE ALL PLANTS TO PEAK EFFICIENCY.  ALL
1470 PRINT "PLANTS MUST BE DONE AT THE SAME TIME.":PRINT
1480 PRINT "PLANT"TAB( 20)"COST"TAB( 40)"INCREASE IN EFFICIENCY
1490 RM= 0
1500 FOR I= 1TO GF
1510 RC= FN C0(5000* EF(I)* PI):SV= FN C2(((EF(I)- 1)/ EF(I))* 100)
1520 RM= RM+ RC
1530 RC= FN C2(RC):PRINT I;TAB( 19)RC;TAB( 50)SV;" %"
1540 NEXT
1550 RM= FN C0(RM):PRINT "TOTAL COST"TAB( 19)RM
1560 PRINT :PRINT "DO YOU WISH TO REMODEL?":OUT 8,255:INPUT "1=YES  2=NO? ";DC
1570 OUT 8,247:IF DC< 1OR DC> 2GOTO 1560
1580 IF DC= 2GOTO 1610
1590 CR= CR- RM
1600 FOR I= 1TO GF:EF(I)= 1:NEXT
1610 CM= (FN C(5000)+ 45000)* PI:OM= (FN C(3000)+ 30000)* PI
1620 PLOT 12:CM= FN C2(CM):PRINT "A COAL GENERATING PLANT WILL COST"TAB( 40)CM
1630 OM= FN C2(OM):PRINT "A FUEL OIL GENERATING PLANT WILL COST"TAB( 40)OM
1640 PRINT :PRINT "DO YOU WISH TO BUILD A NEW PLANT?
1650 PRINT "1=COAL   2=FUEL OIL   3=NEITHER"
1660 OUT 8,255:INPUT "WHAT IS YOU DECISION? ";DC
1670 OUT 8,247:IF DC< 1OR DC> 3GOTO 1640
1680 IF DC> 1GOTO 1700
1690 CR= CR- CM:GF= GF+ 1:F(GF)= 1:EF(GF)= 1:GOTO 1720
1700 IF DC> 2GOTO 1720
1710 CR= CR- OM:GF= GF+ 1:F(GF)= 2:EF(GF)= 1
1720 PLOT 12:PRINT "DO YOU WISH TO APPLY FOR A RATE INCREASE?
1730 OUT 8,255:INPUT "1=YES   2=NO? ";DC
1740 OUT 8,247:IF DC< 1OR DC> 2GOTO 1720
1750 IF DC= 1GOTO 1770
1760 GOTO 1920
1770 PRINT :PRINT "IT HAS BEEN";TR;" YEARS SINCE YOU HAD A RAISE.
1780 PRINT "CUSTOMERS ARE PRESENTLY PAYING";RT;" PER KILOWATT.
1790 PRINT "HOW MUCH DO YOU WISH TO CHARGE PER KILOWATT?"
1800 OUT 8,255:INPUT "ENTER REQUEST AS A DECIMAL (.07 OR .075 ETC.)? ";PR
1810 OUT 8,247:IF TR< 2GOTO 1890
1820 IF PR> R* PI^ 1.5AND TR< 3GOTO 1890
1830 IF PR< R* PI^ 1.5GOTO 1870
1840 RT= RT+ ((PR- RT)* .8):TR= 0
1850 PRINT "YOU ARE ALLOWED TO INCREASE YOUR RATE TO";RT;" PER KILOWATT.
1860 GOTO 1910
1870 PRINT "YOUR RATE INCREASE HAS BEEN STUDIED AND ACCEPTED AS REQUESTED
1880 RT= PR:TR= 0:GOTO 1910
1890 PRINT "THE RATE INCREASE YOU REQUESTED HAS BEEN DENIED.
1900 PRINT "NO INCREASE IS ALLOWED.
1910 FOR J= 1TO 1500:NEXT
1920 TR= TR+ 1
1930 PLOT 12:PRINT TAB( 5)"***** END OF YEAR";YR;" REPORT *****":PRINT
1940 ER= FN C0(ER):PRINT "INCOME FROM SALE OF POWER"TAB( 30)ER
1950 GF= FN C0(GF):PRINT "POWER PLANTS OPERATED"TAB( 30)GF
1960 MN= FN C0(MN):PRINT "MAINTAINENCE COSTS"TAB( 30)MN
1970 PRINT "YOU ARE GENERATING AT";(KG/ GC)* 100;"% OF CAPACITY
1980 PRINT "THE INFLATION RATE FOR THE YEAR WAS";FN C2((IN* 100)- 100);"%"
1990 PRINT "THE CONSUMER PRICE INDEX NOW STANDS AT  ";PI
2000 PRINT :PRINT "PRESS ANY KEY TO BEGIN THE NEXT YEAR":PLOT 3,64,0:POKE 33278,0:OUT 8,255
2001 IF PEEK (33278)= 0GOTO 2001
2010 OUT 8,247:IF YR< 10GOTO 590
2020 PLOT 12:PRINT TAB( 5)"***** ENDING FINANCIAL REPORT *****":PRINT
2030 PRINT "GENERATING PLANTS OWNED"TAB( 30)GF
2040 PRINT "NUMBER OF CUSTOMERS"TAB( 30)CS
2050 CL= FN C0(CL):PRINT "TONS OF COAL IN STOCK"TAB( 30)CL
2060 FO= FN C0(FO):PRINT "BARRELS OF FUEL OIL IN STOCK"TAB( 30)FO
2070 CR= FN C0(CR):PRINT "CASH RESERVE"TAB( 30)CR
2080 PRINT :PRINT TAB( 5)"**********************************
2090 PRINT TAB( 5)"PRESS ANY KEY FOR COMMENTS":PLOT 3,64,0:POKE 33278,0:OUT 8,255
2091 IF PEEK (33278)= 0GOTO 2091
2100 OUT 8,247:PLOT 12:PRINT "CONGRATULATIONS!  YOU LASTED THE 10 YEARS.
2110 AS= ((GF- 1)* 40000+ CR+ CL* 25+ FO* 25)* PI
2120 IF AS> 1000000* PI* .95GOTO 2160
2130 PRINT "YOU SURVIVED AND THAT WAS ALL.  YOUR ASSETS DID NOT GROW AS
2140 PRINT "FAST AS INFLATION.  INSTEAD OF BEING A MEMBER OF THE BOARD OF
2150 PRINT "DIRECTORS, YOU HAVE BEEN GIVEN A POSITION AS A JANITOR.":GOTO 2220
2160 IF AS> 1000000* PI* 1.1GOTO 2190
2170 PRINT "YOU KEPT PACE WITH INFLATION.  YOU HAVE BEEN GIVEN THE POSITION
2180 PRINT "AS MEMBER OF THE BOARD OF DIRECTORS.":GOTO 2220
2190 PRINT "NOT ONLY ARE YOU APPOINTED A MEMBER OF THE BOARD OF DIRECTORS
2200 PRINT "BUT YOU HAVE BEEN MADE CHAIRMAN OF THE BOARD AND AS A BONUS
2210 PRINT "YOU HAVE BEEN GIVEN A YEAR'S SUPPLY OF SMELLY CIGARS.
2220 OUT 8,255:END