The percentage of music you are going to have on your station has to be entered, and this is followed by the number of radio cars you want to run, to be used for covering local events and thus typifying your community spirit.
Your station is funded by advertising, so you have to spend money on promotion, to get the populace listening, and hence make advertising on your station desirable.
The computer then displays the broadcast area for all the stations, spreading the call-sign of the station over the map. Another annual review comes up and you get the chance to alter the composition of your station to get a greater edge. Play continues until someone conquers the airwaves over the South Coast, stations with no listeners dropping out of the game.
10 REM **RADIOPOWER ** BBC VERSION* 20 RY$=CHR$(131)+CHR$(157)+CHR$(129):YR$= CHR$(129)+CHR$(157)+CHR$(131):YB$=CHR$(132)+C HR$(157)+CHR$(131):BY$=CHR$(131)+CHR$(157)+CH R$(132) 30 DIM D(8,2):DIM N$(20):DIM S$(20):DIM P 1(20):DIM P2(20):DIM P5(20):DIM P6(20):DIM T( 20,2):DIM T$(20):DIM TP(20):DIM PR(20) 35 DIM S1$(20) 40 DIM B$(22):DIM BM(22):DIM BP(22): DIMB N(22):DIM D$(25) 50 FOR K=0 TO 22:READ B$(K),BM(K),BP(K):N EXT 60 FOR K=1 TO 22:READ D$(K):NEXT:FOR K=1 TO 20:LET P2(K)=100000:NEXT 70 FOR K= 1 TO 20:READ T$(K):NEXT 80 FOR K= 1 TO 20:READ TP(K):NEXT 90 FOR K= 1 TO 20:READ T(K,1),T(K,2):NEXT 100 FOR K=1 TO 8:READ D(K,1),D(K,2):NEXT: MODE7:PROCintro 110 CLS:FOR K= 1 TO 22:PRINT TAB(0,K+1);D$ (K); 120 NEXT K 130 PRINT TAB(0,0);RY$;"PRESS C TO SPEAK T O CONTROL" 140 PRINT TAB(0,1);YR$;"PRESS A FOR AUDIEN CE REACTION" 150 A$=GET$:IF A$<>"C" AND A$<>"A" THEN GO TO 150 160 IF A$="A" THEN 1000 170 GOSUB 5000 180 GOTO 110 1000 REM ***STATION CONTROL SUB ****** 1010 A$=GET$ 1012 FLAG=0: FORJ=1 TO 20:IF N$(J)<>"" AND S1$(J)="" THEN FLAG=1 1013 NEXT J 1014 IF FLAG=1 THEN GOSUB 9000:PRINT TAB(0, 0);RY$;"NOT ALL ANNUAL REVIEWS COMPLETE!":T=T IME:REPEAT UNTIL TIME=T+200:GOTO 1420 1020 IF A$="N" THEN GOSUB 9000:GOTO130 1030 IF A$<>"Y" THEN VDU7:GOTO1000 1040 CLS:FOR K= 2 TO 21:PRINT TAB(0,K+1);CH R$(131);MID$(D$(K),2,38):NEXT K 1050 FR K=1 TO 20 1060 IF N$(K)=""THEN 1080 1070 PRINT TAB(T(K,2)-1,T(K,1)+2);CHR$(135) ;"*";CHR$(131) 1080 P5(K)=0: NEXT K 1090 QQ=1 1095 PP=0 1100 FOR K= 1 TO 20:IF N$(K)=""THEN 1280 1110 IF P1(K)*10<QQ THEN 1280 1115 X=T(K,2):Y=T(K,1):CS$=CHR$(ASC(LEFT$ (S$(K),1))+32) 1120 PP=1:DD=RND(8) 1130 DX=D(DD,1):DY=D(DD,2) 1140 Z=FNchar(X+DX,Y+DY) 1150 Z$=CHR$(Z) 1160 IF Z$="+" THEN 1120 1170 IF Z$="#" OR Z$=CS$ OR Z$="*" THEN X =X+DX:Y=Y+DY:GOTO 1120 1175 FLAG=0 1180 FOR M=1 TO 20 1185 I IF FLAG=1 ORN$(M)="" OR M=K THEN 1250 1190 SM$=CHR$(ASC(LEFT$(S$(M),1))+32) 1200 SM$=CHR$(ASC(LEFT$(S$(M),1))+32) 1210 FOR J=1 TO 4 1215 PRINT TAB(X+DX,Y+DY);"+":T=TIME: REPEAT UNTIL TIME=T+50 1220 PRINT TAB(X+DX,Y+DY);"-":T=TIME: REPEAT UNTIL TIME=T+50 1230 NEXTJ 1240 FLAG=1:PRINT TAB(X+DX,Y+DY);CS$ 1250 NEXT M 1260 IF FLAG=1 THEN 1280 1270 P5(K)=P5(K)+1:PRINT TAB(X+DX,Y+DY);C S$ 1280 NEXT K 1290 QQ=QQ+1 1300 IF PP=0 THEN GOTO 1320 1310 GOTO 1095 1320 PRINT TAB(0,0);RY$;"THAT'S THE CURRENT AUDIENCE REACH." 1330 PRINT BY$;"PRESS ANY KEY FOR STATION D ETAILS" 1340 FOR J=1 TO 20:S1$(J)="":NEXT J 1350 A$=GET$ 1360 IF S$(K)=""THEN 1390 1370 P2(K)=P2(K)+P5(K)*1500 1380 PROCstation 1390 NEXT K 1400 PRINT:PRINT"THAT'S ALL THE CURRENT STA TIONS.PRESS " 1410 PRINT"ANY KEY TO RETURN TO BASIC MAP" 1420 A$=GET$:GOTO 110 5000 GOSUB 9000 5010 PRINT TAB(0,0);BY$;"IS THIS A NEW STAT ION? (Y/N)" 5020 A$=GET$:IF A$<>"Y" AND A$<>"N" THEN GO TO 5020 5030 IF A$="N" THEN 5500 5040 GOSUB9000 5050 PRINT TAB(0,0);BY$;"PLEASE INPUT YOUR NAME ";:INPUT N$ 5060 GOSUB 9000 5070 PRINT TAB(0,0);YB$;"AND YOUR STATION N AME ";:INPUT S$ 5080 FLAG=0:FOR K= 1 TO 20:IF LEFT$(S$(K),1 )=LEFT$(S$,1) THEN FLAG=1:NEXT K 5090 IF FLAG<>1 THEN GOTO 5120 5100 GOSUB 9000 5110 PRINT TAB(0,0);RY$;"SORRY,BUT TRY ANOT HER NAME,PLEASE....":T=TIME:REPEAT UNTIL TIME >T+200:GOTO5060 5120 GOSUB 9000 5130 PRINT TAB(0,0);YB$;"RADIO";RY$;S$;YB$; "MANAGER";RY$;N$ 5140 PRINT TAB(0,1);BY$;"BASED IN WHICH TOW N ";:INPUT T$ 5150 GOSUB9000 5160 FLAG=0:FOR J=1 TO 20:IF FLAG=1 THEN 51 75 5170 IF T$(J)=T$ THEN IF N$(J)=""THEN K=J :FLAG=1 5175 NEXT J 5176 IF FLAG=1 THEN 5190 5180 PRINT TAB(0,0);YB$;"SORRY,TOWN NOT AVA ILABLE.OR NAME NOT ";TAB(0,1);YB$;"SPELT CORR ECTLY.TRY AGAIN":T=TIME:REPEAT UNTIL TIME>T+2 00:GOTO 5120 5190 PRINT TAB(0,0);CHR$(136);RY$;"CONGRATU LATIONS ON OPENING RADIO" 5200 PRINT TAB(0,1);CHR$(136);RY$;S$;" !" 5210 FOR J=1 TO 20:PRINT TAB(T(K,2)-1,T(K,1 )+2);CHR$(129);"*";CHR$(135) 5220 FOR L=1 TO 200:NEXTL 5230 PRINT TAB(T(K,2)-1,T(K,1)+2);CHR$(13 4);"*";CHR$(135) 5240 FOR L=1 TO 200:NEXTL:NEXTJ 5250 N$(K)=N$:S$(K)=S$:GOSUB 9000 5260 RETURN 5270 REM ENDSUB ******************************** 5490 REM**STATION DETAILS AND REVIEW SUB*** 5500 CLS:PRINT TAB(0,0);YB$;"WHAT IS YOUR N AME PLEASE";:INPUT N$ 5510 IF N$="" THEN 5500 5520 FLAG=0:FOR J=1 TO 20:IF FLAG=1 THEN 55 35 5530 IF N$(J)=N$ THEN FLAG=1:K=J 5535 NEXT J 5536 IF S1$(K)="#" THEN GOSUB 9000:PRINT T AB(0,0);YR$;"YOU'VE ALREADY DONE YOUR REVIEW! !!!":T=TIME:REPEAT UNTIL TIME=T+150:GOSUB 900 0:RETURN 5537 IF FLAG=1 THEN 5570 5540 GOSUB 9000: PRINT TAB(0,0);CHR$(136);R Y$;"NO RECORD OF THAT NAME.PRESS R TO TRY":PR INT TAB(0,1);CHR$(136);RY$;"AGAIN,ANY OTHER K EY TO RETURN" 5550 A$=GET$:IF A$<>"R" THEN RETURN 5560 GOSUB 9000:GOTO 5000 5570 PRINT YB$;"RADIO";BY$;S$(K);YB$;"OF";B Y$;T$(K) 5571 PRINT YB$;"MANAGER...";BY$;N$(K) 5572 PRINT "############################### #########":PRINT RY$;"MONEY AVAILABLE:";YB$;P 2(K);RY$;"POUNDS" 5573 PRINT "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%" 5574 PRINT YB$;"THESE PRESENTERS WILL WORK FOR YOU" 5580 PRINT BY$;"NO. NAME WAGE" 5590 FOR J= 0 TO 22:IF BN(J)<>0 THEN 5620 5600 IF RND(1)>.45 THEN 5620 5610 PRINT RY$;J,B$(J);TAB(31);BP(J) 5620 NEXT J 5630 PRINT "DO YOU WANT TO HIRE ONE?(Y/N)" 5640 A$=GET$:IF A$="N" THEN 5710ELSE IF A$< >"Y" THEN 5630 5650 PRINT "WHICH ONE (NUMBER).IF NONE,ENTE R 99..";:INPUT LINE N$ 5660 PROCnumber 5670 IF FLAG=0 THEN N=VAL(N$) ELSE PRINT RY $;"TRY AGAIN-WHICH NUMBER?";:INPUT LINE N$:GO TO 5660 5680 IF N<0 OR N>22 THEN IF N<>99 THEN FLAG =1:GOTO5670 5690 PRINT BY$;"YOU HAVE ";P2(K);" POUNDS": IF N=99 THEN 5720 5700 BN(N)=K: PRINT:PRINT CHR$(136);RY$;B$( N);" JOINS RADIO ";S$(K) 5710 P=0:PRINT"---------------------------- ------------" 5720 PRINT:PRINT"PRESENTERS ON STATION ";S$ (K) 5730 PRINTBY$;"NO. NAME WA GE" 5740 N=0:FOR J=0 TO 22:IF BN(J)<>K THEN 577 0 5750 PRINT RY$;J;TAB(10);B$(J);TAB(28);BP (J) 5760 N=1:P=P+BP(J) 5770 NEXT J 5780 IF N=0 THEN PRINT "NO SPECIAL PRESENTE RS ON STATION !" 5790 PRINT BY$;"YOUR WAGE BILL IS ";P;" POU NDS" 5800 IF P=0 THEN 5920 5810 PRINTYB$;"WANT TO FIRE A PRESENTER ?(Y /N)" 5820 A$=GET$:IF A$<>"N" AND A$<>"Y" THEN 58 20 5830 IF A$="N" THEN 5910 5840 PRINT RY$;"WHICH ONE(NUMBER)?ENTER 99 IF NONE";:INPUT LINE N$ 5850 PROCnumber 5860 IF FLAG=0 THEN N=VAL(N$) ELSE PRINT RY $;"TRY AGAIN-WHICH NUMBER?";:INPUT LINE N$:GO TO 5850 5870 IF N<0 OR N>22 THEN IF N<>99 THEN FLAG =1:GOTO 5860 5875 IF N=99 THEN 5910 5880 IF BN(N)<>K THEN FLAG=1:GOTO5860 5890 BN(N)=0:P=P-BP(N) 5900 PRINT CHR$(136);YB$;B$(N);" LEAVES RAD IO ";S$(K) 5910 P2(K)=P2(K)-P:IF P2(K)<0 THEN 5940 5920 PRINT"################################ #######":PRINT BY$;"YOU NOW HAVE ";P2(K);" PO UNDS" 5930 GOTO 5960 5940 PRINT CHR$(136);RY$;"YOUR STATION IS B ANKRUPT!!" 5950 PRINT RY$;"SO YOU MUST FIRE A PRESENTE R":FOR X=1 TO 1000:NEXTX:PRINT:GOTO 5710 5960 PRINT "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%" 5970 PRINT BY$;"WHAT PERCENTAGE OF YOUR PRO GRAMME ":PRINT BY$;"OUTPUT IS TO BE MUSIC (0- 100) ";:INPUT LINE N$ 5980 PROCnumber:IF FLAG=1 THEN 5970 5990 N=VAL(N$):IF N<0 OR N>100 THEN 5970 6000 R=N:PRINT:PRINT"********************** ******************" 6010 PRINT BY$;"YOU HAVE ";P2(K);" POUNDS" 6020 PRINT RY$;"RADIO CARS COST 10000 POUND S EACH" 6030 IF RND(1)>.4 AND PR(K)>0THEN PRINTYR$; "ONE OF YOURS HAS FALLEN APART":PR(K)=PR(K)-1 6040 PRINTRY$;"YOU HAVE ";PR(K);" RADIO CAR S" 6050 PRINT YB$;"HOW MANY MORE CARS DO YOU W ANT ";:INPUT N$:PROCnumber 6060 IF FLAG=1 THEN 6050 6070 N=VAL N$:IF N+PR(K)=0 AND P2(K)>10000 THEN PRINT YB$;"WHAT HAVE YOU GOT AGAINST RAD IO CARS?" 6080 IF N+PR(K)>5 THEN PRINT YB$;"COME ON N OW,NO ONE NEEDS MORE THAN 5":GOTO 6050 6090 LET P2(K)=P2(K)-N*10000:IF P2(K)<0 THE N PRINT CHR$(136);RY$;"NOT ENOUGH MONEY IN TH E KITTY !":P2(K)=P2(K)+N*10000:GOTO 6050 6100 LET PR(K)=PR(K)+N 6110 PRINT"################################ ########" 6120 PRINTRY$;"YOU HAVE ";P2(K);" POUNDS LEF T" 6130 PRINT YR$;"SPEND HOW MUCH ON PROMOTION ";:INPUT LINE N$:PROCnumber 6140 IF FLAG=1 THEN GOTO 6130 6150 P2(K)=P2(K)-(VAL(N$)):IF P2(K)<0 THEN PRINT CHR$(136);RY$;"NOT ENOUGH MONEY IN THE KITTY !":P2(K)=P2(K)+(VAL(N$)):GOTO 6130 6160 PRINT"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$" 6170 PRINT BY$;"O.K. THANK YOU VERY MUCH,"; N$(K) 6175 S1$(K)="#" 6180 PM=VAL(N$):P1=PM*RND(2)+PR(K)*10000*(1 +RND(2))+20000*RND(1) 6190 FOR J= 0 TO 22:IF BN(J)<>K THEN 6220 6200 PP=ABS(R-BM(J)) 6210 P1=P1+BP(J)/10*(100-PP) 6220 NEXT J 6230 PRINT:PRINT BY$;"YOUR PREVIOUS AUDIENC E FIGURE: ";P1(K);"%" 6240 P1=INT(P1/10000)/10 6250 PRINT:PRINT RY$;"YOUR CURRENT AUDIENCE FIGURE IS ";P1;"%" 6260 P1(K)=P1:IF P1>0 THEN 6310 6270 PRINT YB$;"IT SEEMS NO ONE LISTENS TO YOUR ":PRINT YB$;"STATION,AND YOU HAVE LOST Y OUR JOB!" 6280 PRINT CHR$(135);RY$;"RADIO ";S$(K);" I S OFF THE AIR!" 6290 PRINT YB$;"OH WELL,THAT'S SHOW BIZ!" 6300 S$(K)="":N$(K)="":P2(K)=100000:P1(K)=0 :S1$(K)="" 6310 PRINT "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%" 6320 PRINT RY$;"RADIO ";S$(K);" STILL ON TH E AIR!" 6330 PRINT YB$;"WITH ";P2(K);" POUNDS IN HA ND." 6340 PRINT YB$;"WE SHALL SEE HOW YOUR REVEN UE IS" 6350 PRINT YB$;"AFFECTED BY THE NEW FIGURES ." 6360 PRINT RY$;"PRESS ANY KEY TO RETURN TO MAP" 6370 A$= GET$:CLS:RETURN 6990 STOP 7000 DEF PROCintro 7010 CLS:PRINT TAB(11,0);CHR$(141);CHR$(136 );CHR$(129);"RADIOPOWER" 7020 PRINT TAB(11);CHR$(141);CHR$(136);CHR$ (131);"RADIOPOWER" 7030 PRINT'"UP TO 20 PLAYERS CAN COMPETE FO R CONTROLOF THE AIRWAVES.SPEAK TO THE CONTROL LER,ANSWER 'Y' TO THE QUESTION AS TO WHETHER" ; 7040 PRINT"THIS IS A NEW STATION,THEN INPUT AS" 7050 PRINT "REQUESTED.YOU MUST USE THE FULL NAMES OFTOWNS,NOT THE ABBREVIATIONS SHOWN ON THEMAP. THESE ARE:-" 7060 FOR K=1 TO 20 STEP 2:PRINT T$(K);TAB(2 0);T$(K+1):NEXT K 7070 PRINT'"WHEN ALL PLAYERS HAVE REGISTERE D THEIR STATIONS,PLAY PROCEEDS THROUGH THE " 7080 PRINT "ANNUAL REVIEWS."; 7090 PRINT CHR$(136);CHR$(129);"PRESS A KEY TO START" 7100 A$=GET$ 7110 ENDPROC 7990 REM PRESENTERS,%MUSIC,PRICE 8000 DATA ARNOLD AARDVARK,1,50000 8001 DATA BRIAN BOULDER,2,30000 8002 DATA CLARA CUTTTHROAT,5,45000 8003 DATA DINA DYNAMICK,10,25000 8004 DATA EDDIE EEL,15,10000 8005 DATA FREDA FOOLISH,20,10000 8006 DATA GERRY GULLIBLE,25,10000 8007 DATA HARRY HATFUL,30,15000 8008 DATA IZZY IDLETALK,35,10000 8009 DATA JOLLY JETSETTER,40,25000 8010 DATA KING KANUTE,50,20000 8011 DATA MOLLY MEDIAN,50,10000 8012 DATA NED NORMAL,50,20000 8013 DATA POLLY PERSPEX,60,1000 8014 DATA RICKY RADIO,65,25000 8015 DATA SANDRA SONIX,70,15000 8016 DATA TRISTRAN TAPE,75,30000 8017 DATA UNCLE UBIX,80,10000 8018 DATA VICTOR VAPID,85,20000 8019 DATA WALLY WETLOCK,90,10000 8020 DATA XANDRA XCESS,95,40000 8021 DATA YALE YESTERYEAR,98,45000 8022 DATA ZOOT ZIEGLER,99,50000 8029 REM MAP DATA 8030 DATA "++++++++++++++++++++++++++++++++ ++++++++" 8031 DATA "+ STOCKBRIDGE @ +" 8032 DATA "+ +" 8033 DATA "+SALISBURY @ WINCHESTER @ +" 8034 DATA "+ +" 8035 DATA "+ +" 8036 DATA "+ TWYFORD @ +" 8037 DATA "+ ROMSEY @ P/FLD @+" 8038 DATA "+ CHNDLRS/FORD @ +" 8039 DATA "+ EASTLEIGH @ +" 8040 DATA "+ B/WALTHA M @ +" 8041 DATA "+F/BRIDGE @ +" 8042 DATA "+ TOTTON @ # +" 8043 DATA "+ ## @ S/H MPTON +" 8044 DATA "+ ##WICKH AM @ +" 8045 DATA "+ LYNDHURST @ ## +" 8046 DATA "+ RINGWOOD @ ##FAR EHAM @ +" 8047 DATA "+ B/HURST @ #### +" 8048 DATA "+ # ####### +" 8049 DATA "+ C/CHURCH @ ################ P/MTH#@+" 8050 DATA "+@ B/MTH######################## #######+" 8051 DATA "++++++++++++++++++++++++++++++++ ++++++++" 8059 REM FULL TOWN NAMES 8060 DATA STOCKBRIDGE,SALISBURY,WINCHESTER, TWYFORD,ROMSEY,PETERSFIELD 8061 DATA CHANDLERS FORD,EASTLEIGH,BISHOPS WALTHAM,FORDINGBRIDGE,TOTTON 8062 DATA SOUTHAMPTON,WICKHAM,LYNDHURST,RIN GWOOD,FAREHAM,BROCKENHURST 8063 DATA CHRISTCHURCH,PORTSMOUTH,BOURNEMOU TH 8070 DATA 1,3,4,2,2,2,1,2,1,1,1,5,1,1,2,2,1 ,1,5,5 8079 REM TOWN CO-ORDINATES 8080 DATA 1,23,3,11,3,33,6,33,7,19,7,38,8,2 6,9,28,10,34,11,10,12,22,13,27,14,35,15,21,16 ,11,16,37,17,21,19,11,19,38,20,1 8090 REM MAP PLOT DISPLACEMENTS 8100 DATA 1,1,1,0,1,-1,0,1,0,-1,-1,1,-1,0,-1 ,-1 9000 PRINT TAB(0,0);" ":REM 80 SPACES 9010 RETURN 9100 DEF PROCnumber 9110 FLAG=0:FOR X=1 TO LEN (N$) 9120 C=ASC(MID$(N$,X,1)):IF C<48 OR C>57 THEN FLAG=1 9130 NEXT X 9140 ENDPROC 9200 DEFPROCstation 9210 CLS:PRINT CHR$(130);"%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%" 9220 PRINT RY$;"RADIO";BY$;S$(K);RY$ 9230 PRINT RY$;"BASED IN";BY$;T$(K);RY$ 9240 PRINT RY$;"STATION MANAGER";BY$;N$(K); RY$ 9250 PRINT CHR$(130);"%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%" 9260 PRINT YR$;"AUDIENCE FIGURE";YB$;P1(K); "%";YR$ 9270 PRINT YR$;"AUDIENCE APPRECIATION";YB$; P5(K);YR$ 9280 PRINT YR$;"CURRENT BALANCE";YB$;P2(K); " POUNDS";YR$ 9290 PRINT CHR$(130);"%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%" 9300 PRINT BY$;"PRESENTERS:" 9310 FOR M=0 TO 22 9320 IF BN(M)=K THEN PRINT YB$;B$(M) 9330 NEXT M 9340 PRINT CHR$(130);"%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%" 9350 PRINT RY$;"PRESS ANY KEY FOR MORE DETA ILS" 9360 A$=GET$ 9370 ENDPROC 9500 DEF FNchar(X%,Y%) 9510 VDU 31,X%,Y%:A%=135 9520 C=USR(&FFF4) 9530 C=C AND &FFFF:C=C DIV &100 9540 =C