Classic Computer Magazine Archive A.N.A.L.O.G. ISSUE 63 / AUGUST 1988 / PAGE 34

CRISIS CENTER

by Joe McManus

You've passed all the security procedures and are now standing in Crisis Command Headquarters. The 30-yard long electro-map seems uncommonly serene. As you relieve the Watch Commander, you can't help noticing his haggard face and bloodshot eyes. You log on, and the display generates your equipment status and an overview of the city.




    Looks good! You have your full complement of emergency vehicles. Suddenly, an alarm rings and a message flashes on the screen ...

"Sniper on roof at Theater Center."

Crisis Center is a 54-minute real-time simulation that takes place in one of three cities. The object of the game is to resolve emergencies that arise by sending the appropriate equipment needed to handle the situation.
    For example, there may be a hotel burning somewhere. You have ambulances, fire trucks, police cars and SWAT teams at your disposal. Crowd control could become a real problem; so you had better send some police cars along with the fire trucks. And, of course, you'll need some ambulances.
    If you have sent the right combination and number of vehicles to handle the situation, the people will be saved. On the other hand, if you don't get the right combination there in time... well, you lose points for losing lives! If you lose enough points, you'll be fired and the game will end. The more serious emergencies are worth more points. Therefore, you should try to resolve the most critical situations before handling the lesser emergencies.

If you have the right combination and
number of vehicles to handle the situation,
the people will be saved. On the other
hand, if you don't get the right combination
there in time....
HINT: Up to four emergencies may be
ongoing at the same time.


Playing the game
    After pressing START, you'll be asked to choose a city. Each city has its own level of difficulty based on crime rate and population. Dallas is the easiest game, followed by L.A. and then New York. When you have made your selection, a map of your city will appear at the top of the screen and the game will begin.
    The top section of the screen also contains a status display that is continually updated throughout the game. The status screen displays readouts of how many of each vehicle are currently available at headquarters, an emergency counter which shows how many crisis situations are currently ongoing, your current score and a real-time clock. The game begins at 12:30 p.m. and will end at 1:39 unless your score falls below zero; in which case the simulation is terminated.
    You have two communication links at headquarters. The primary communication system at Crisis Command is a half-duplex system. To gain control of this communication system you must wait until any message you are receiving is finished and then press the trigger button to obtain sending priority. Once you have communication control, you'll see a command screen. The other communication link is the emergency phone which is explained in the following command section.

Commands
    Select one of the four commands by moving the joystick in the designated direction.

SEND: This allows you to dispatch vehicles to crisis locations. After selecting the send command, another stick diagram appears. Choose which type of vehicle to send. Then the locations are given in a stick diagram with the choice "MORE" at the bottom. If the location you wish to send a vehicle does not appear on the menu, select the MORE option until you find it.
    You'll then be asked how many units you want to send. Type the number and press RETURN. You'll hear the units leave Command Headquarters.

RECALL: You'll be prompted for which type of unit you wish to recall and from what location. If you attempt to recall more units from a location than there actually are, no units at all will be returned and you'll have to try again.

STATUS: This command is included in case you forget where your emergency teams are located. For instance, if all your fire trucks are off-station, you must recall them before they can be sent again.
    Select which type of vehicle you need a status report on, and all ten locations will be displayed with how many of that unit type are there.

PHONE: Throughout the game the emergency phone may ring. It rings more often in the higher difficulty games. You must select the "answer phone" command to find out what emergency is being phoned in.
    If you do not answer the phone in two to three minutes from when the phone first starts ringing, that emergency will have deteriorated to the point of disaster, and an unanswered phone message will appear that describes the result. The value of that particular emergency will be deducted from your score.
    The phone emergency could be one of small point value, like a simple traffic accident. On the other hand, it could be worth lots of points; so you should stop working on your current emergency and answer the phone if you wish to avoid losing points.
    You begin the game with 200 points. If your score falls below zero, the game is over and you're fired from your position as Watch Commander. The simulation is designed to be a test of endurance, recall and common sense. The emergencies have been worded to enhance the sense of realism.

    There is no pause feature in Crisis Center since you should never leave a watch station unattended. However, if you must pause the game, you should select the status command and choose a vehicle. The status screen will stay up until you press the fire button. Though the clock will not appear to change during the break, it's still running. So if the phone was ringing when you took a break, and you're gone long, when you come back you'll lose some points.

HINT: Up to four emergencies may be ongoing at the same time. One limitation the program has is that it can only solve one emergency at a time, so it only checks for the correct solution after a send command.
    If you have two emergencies occurring at the same location and feel you have sent enough equipment to resolve both emergencies, then after you receive points for one of them, send another unit to get the points for the other emergency.

Crowd control could become a problem;
so you had better send some police cars
along with the fire trucks. And, of course,
you'll need some ambulances.



LISTING    1: BASIC

AA 100 REM   *************************
NF 110 REM *  CRISIS CENTER   *
VH 120 REM *  BY Joe McManus  *
GO 130 REM *       for        *
EQ 140 REM * ANALOG COMPUTING *
AK 150 REM ********************
RA 160 CLR
QH 170 DIM RES$(220),RES1$(220),RES2$(220
   ),DIS$(220),ANS(44),EQ$(48),PLC(4),EME
   R(4),EQU(4),PLACE(40),W1$(20),W2$(20)
IB 180 DIM TIME$(5),A$(92),B$(240),X$(60)
   ,BLANK$(40),C$(59),I$(59),T$(59),Y$(59
   ),S$(59),W3$(20),W4$(20),W5$(20)
GD 185 DIM CH$(1):EMS=0
VZ 190 TS=0:C0=0:C1=1:C2=C1+C1:C3=C2+C1:C
   4=C3+C1:C5=C4+C1:C6=C5+C1:C7=C6+C1:C8=
   C7+C1:C9=C8+C1:C10=C9+C1:C11=C10+C1
FA 200 BLANK$="
                 ":R=2400:TIME$="00:00":B
   $(201 240)=BLANK$:DOPLACE=0:GOTO 470
LR 210 X$(C1,20)=BLANK$:X$(21,40)=BLANK$:
   RETURN
AI 220 II=0
ZC 230 II=II+1:IF X$(II,II+1]="  " THEN S
   POT=II+1:RETURN
NG 240 GOTO 230
VE 260 POSITION A,B:? BLANK$;BLANK$;:GOSU
   B 300:RETURN
OL 270 B=B+C2:IF B>22 THEN FOR I1=C1 TO 6
   00:NEXT I1:B=13:FOR I2=C10+C2 TO C10+C
   8:POSITION C0,I2:? BLANK$;:NEXT I2
IR 280 GOSUB 300:RETURN
El 290 SOUND C3,ASC(A$(I,I)),12,C10:FOR D
   =C1 TO 34:NEXT D:SOUND C3,C0,C0,C0:RET
   URN
YZ 300 IF TS<>C1 THEN 460
CM 310 POSITION 33,C3:? ":";EQU(C2):PO
   SITION 33,C5:? ":";EQU(C3):POSITION
    33,C7:? ":";EQU(C1)
PK 320 POSITION 23,1:? ""
   :FOR II=2 TO 9:P05ITION 23,II:? "|":P
   OSITION 38,II:? "|";:NEXT II
UK 330 POSITION 23,10:? "
   "
QG 335 EMS=0:FOR DD=1 TO 4:IF EMER(DD)<>0
    THEN EMS=EMS+1
UH 336 NEXT DD:POSITION 26,C7:? "";:
   POSITION 28,C8:? EMS
YW 340 POSITION 33,C9:? ":";EQU(C4):IF
    SCORE(C0 THEN POSITION C4,C0:? "YO
   U ARE FIRED! ";:POKE 709,C0:GOTO 250
BO 350 IF PEEK(18)=C3 THEN POSITION C4,C0
   :? "  GAME OVER ";:GOTO 250
HN 360 TIME=(PEEK(20)+PEEK(19)*256+PEEK(1
   8)*256*256)/60:POSITION 27,C5:? "
   ";:POSITION 26,C4:? ""
DO 370 MIN=INT((TIME/3600-INT(TIME/3600))
   *60)+INT(ASC(TIME$(4,4)]-48)*10+INT(AS
   C(TIME$(C5,C5))-48)*1
NL 375 POSITION 27,C5:? SCORE
MM 380 HRS=INT((TIME/216000-INT(TIME/2160
   00))*60)+INT(ASC(TIME$(C1,C1))-48)*C10
   +INT(ASC(TIME$(C2,C2))-48)*C1
JZ 385 IF PHONE=1 THEN GOSUB 2255
BO 390 IF MIN>59 THEN HRS=HRS+C1:MIN=MIN-
   60
HE 400 IF HRS>12 THEN HRS=HRS-12
WZ 410 IF HRS<C10 THEN POSITION 35,C11:?
   "0";HRS;:GOTO 430
ET 420 POSITION 35,C11:? HRS;
AC 430 POSITION 37,C11:? ":"
NX 440 IF MIN<C10 THEN POSITION 38,C11:?
   "0";MIN;:GOTO 460
YA 450 POSITION 38,C11:? MIN;
ZM 460 RETURN
WN 470 GRAPHICS C0:POKE 752,C1:POKE 710,4
   8:POKE 712,48:POKE 709,54:A=C2:DL=PEEK
   (560)+PEEK(561)*256+C4:POKE DL-C1,70
QP 480 POKE DL+12,130
TD 490 POKE DL+C2,C6:POKE DL+13,130:POKE
   DL+16,130:FOR I=C0 TO 23:READ A:POKE 1
   686+I,A:POKE 1710+I,A:POKE 1734+I,A
HB 495 NEXT I
UK 500 POKE 1688,2
ZL 510 POKE 1747,150:POKE 1699,174:POKE 5
   12,150:POKE 513,C6:POKE 54286,192:EQU(
   C1)=C8:EQU(C2)=C9:EQU(C3)=C8
VQ 520 EQU(C4)=C2:PHONE=0:GOSUB 580:POSIT
   ION 9,14:? ""
AL 530 IF (PEEK(53279)<>C6) AND (STRIG(0)
   <>0) THEN 530
AI 540 POSITION 9,14:? "                
      "
KR 545 GOTO 2000
YY 548 B=23:GOSUB 270
FO 550 TIME$="12:45":GOSUB 260:POKE 20,C0
   :POKE 19,C0:POKE 18,C0:FOR I=C1 TO 240
    STEP 40:B$(I,I+39)=BLANK$:NEXT I
SH 560 B=21:GOSUB 270:RESTORE WHERE:FOR I
   =C1 TO 220 STEP 20:READ X$:B$(I,I+19)=
   X$:NEXT I:READ R,DIF
KR 570 TS=C0:GOSUB 580:GOTO 750:DATA 72,1
   69,160,141,10,212,141,24,208,141,26,20
   8,169,198,141,0,2,169,6,141,1,2,104,64
UJ 580 RESTORE R:READ C$,I$,T$,Y$,S$
XP 590 A$="CRISIS CENTER
         NOW MANYINCOMING MESSAG
   EYOU CAN'T DO THAT!UNITS"
PH 600 POSITION C4,C0:FOR I=C1 TO 13:? A$
   (I,I);:GOSUS 290:NEXT I:B=C1:A=C2
TS 610 POSITION A,B:? C$:GOSUS 270:POSITI
   ON A,B:? I$:GOSUB 270:POSITION A,B:? T
   $:GOSUB 270:POSITION A,B:? Y$
WL 615 GOSUB 270:POSITION A,B:? S$:GOSUB
   270
XD 620 POSITION 0,B:? BLANK$;:POSITION C8
   ,B:? B$(201,219);:POSITION 29,B:? "TIM
   E: ";:TS=C1:A=C2:GOSUB 270:RETURN
KI 750 RESTORE 780:B=21:GOSUB 270:C$="May
   or says do somethingHURRY COMMANDER!"
GL 760 FOR I=C1 TO 220 STEP 20:DIS$(I,I+1
   9)=BLANK$(C1,20):NEXT I:RES$=DIS$:RES1
   $=DIS$:RES2$=DIS$
MD 770 FOR I=C1 TO 220 STEP 20:READ X$:DI
   S$(I,I+19)=X$:NEXT I
XV 780 DATA There is a FIRE at,Traffic ac
   cident at,4-ALARM FIRE is at,BANK ROBB
   ERY at,A HEART ATTACK at,HIT & RUN at
FD 790 DATA SNIPER on roof at,HOTEL burni
   ng at,10 CAR pileup at,AIRPLANE on fir
   e at, HIJACK report from
MO 800 EQ$="FIRETRUCKS  AMBULANCES  POLIC
   ECARS  SWATTEAMS   "
TE 810 FOR I=1 TO 220 STEP 20:READ X$:RES
   $(I,I+19)=X$:NEXT I
UM 820 DATA The fire is out at,Accident c
   feared at,The fire is out at,Cops stop
    holdup at,Victim was saved at
WE 830 DATA Victim was saved at,Sniper ca
   ught at,Hotel safe at,Pileup cleared a
   t,Airplane saved at,Hijacker caught at
GC 840 FOR I=1 TO 220 STEP 20:READ X$:RES
   1$(I,I+19)=X$:NEXT I
NZ 850 DATA Fire killed 4 at,2 victims di
   ed at,8 burned to death at,$8000.00 st
   olen at,Elderly man died at
DJ 860 DATA The victim died at,7 Snip
   er escaped,Hotel destroyed at,70
   FOUL-UP at,Airplane is ashes at
PQ 870 DATA Plane in CUBA not
HX 880 FOR I=1 TO 220 STEP 20:READ X$:RES
   2$(I,I+19)=X$:NEXT I
FS 890 DATA Fire is burning at,Traffic sn
   arled at,Fire is raging at,Cops dodgin
   g lead at,Victim going fast at
ZS 900 DATA Weak-pulse report at,Sniper g
   ot one at,People screaming at,More car
   s wrecked at,Fuel may explode at
LQ 910 FOR I=C1 TO 40:PLACE(I)=0:NEXT I:F
   OR I=C1 TO C4:PLC(I)=0:EMER(I)=0:NEXT
   I:SCORE=200:DATA Hostages scared at
WO 920 FOR I=C1 TO C4:READ AA:EQU(I)=AA:N
   EXT I:FOR I=C5 TO 48:READ AA:ANS(I-C4)
   =AA:NEXT I
CN 930 DATA 8,9,8,2,3,2,1,0,0,1,2,0,4,2,2
   ,0,0,0,3,0,0,1,0,0,0,1,1,0,0,2,3,1,4,3
   ,3,0,2,4,4,0,3,2,2,0,0,2,3,2
HT 940 DATA ,SEND,RECALL,STATUS,ANSWE
   R PHONE,,AMBULANCE(S),POLICEC
   AR(S),SWAT TEAM(S),FIRETRUCK(S),
VN 950 DATA University Park,Highland Park
   ,Sunnyvale,,,Mesquite,Hines B
   lvd.,Second Ave.,
AT 960 X$(21,21)=" ":DATA ,Hensley F
   ield,Six Flags Park,Theatre Center,Cot
   ton Bowl Stadium
WD 970 IF STRIG(0)=0 THEN 1060
DV 975 IF PHONE=C2 THEN GOSUB 2265:GOTO 1
   000
MK 980 R=INT(RND(0)*800):IF R<DIF THEN 10
   00
SH 990 GOTO 970
QJ 1000 FOR I=C1 TO C4:IF EMER(I)=0 THEN
   1020
NJ 1010 NEXT I:GOTO 1610
CR 1020 R=INT(RND(C0)*C11)+C1:IF R>C9 THE
   N R1=C7:GOTO 1040
FG 1030 R1=INT(RND(C0)*C10)+C1:IF R1=C7 T
   HEN 1830
XH 1040 IF PHONE>C1 THEN 2275
FU 1045 GOSUB 210:X$(C1,20)=DIS$(R*20-19,
   R*20):II=0:GOSUB 220
VH 1050 X$(SPOT,SPOT+20)=B$(R1*20-19,R1*2
   0):E=I:EMER(E)=R:PLC(E)=R1:GOSUB 1380:
   GOSUB 1330:GOTO 970
NX 1060 R=INT(RND(0)*200):IF R<DIF OR PHO
   NE=1 THEN GOSUB 2200
WO 1065 B=21:GOSUB 270:RESTORE 940:C=C0:G
   OSUB 1240:IF C=C0 THEN B=21:GOSUB 270:
   GOTO 970
EU 1070 IF C<13 AND C>C8 THEN V=C2:GOTO 1
   110
PQ 1080 IF C=13 THEN 1400
MJ 1090 IF C=14 THEN V=C1:GOTO 1110
YE 1100 IF C<C8 THEN V=C3
PW 1110 GOSUB 1250:CT=C1:C=C0:GOSUB 1240:
   IF C=C0 THEN B=21:GOSUB 270:GOTO 970
JK 1120 IF C<13 AND C>C8 THEN EQ=C3
EE 1130 IF C<C8 THEN EQ=C4
SC 1140 IF C=13 THEN EQ=C1
TO 1150 IF C=14 THEN EQ=C2
UF 1160 IF V<>C3 THEN CT=C0:DOPLACE=1:GOT
   O 1435
LJ 1170 A=12
ZH 1180 I=9:B=21:GOSUB 270:POSITION A,B:F
   OR J=0 TO 11:? EQS(EQ*12-11+J,EQ*12-11
   +J);:GOSUB 290:NEXT J:? " Status"
IN 1185 B=B+2
IR 1190 A=1:FOR I=C0 TO C8 STEP 2:POSITIO
   N A,B:? B$((I+1)*20-19,(I+1)*20-4);PLA
   CE(((I+1)*4)-4+EQ):POSITION 21,B
WF 1200 ? B$((I+2)*20-19,(I+27*20-4);" ";
   PLACE(((I+2)*4)-4+EQ);:B=B+1:NEXT I
DE 1210 ? :? "    
   "
QS 1220 IF STRIG(0)<>0 THEN 1220
JY 1230 B=21:GOSUB 270:FOR I=18 TO 22:POS
   ITION 0,I:? BLANK$;:NEXT I:GOTO 970
ZW 1240 IF NOT DOPLACE THEN READ W1$,W2$
   ,W3$,W4$,W5$:CT=CT+C1:GOTO 1270
XY 1245 W1$="":READ W2$,W3$,W4$:IF C
   T=C2 THEN READ W5$:GOTO 1247
YU 1246 W5$=""
JF 1247 CT=CT+C1:GOTO 1270
HW 1250 W1$(C1,LEN(W1$))=BLANK$:W2$(C1,LE
   W(W2$))=BLANK$:W3$(C1,LEN(W3$))=BLANK$
   :W4$(C1 LEN(W4$))=BLANK$
IF 1260 W5$(C1,LEN(W5$))=BLANK$
ZS 1270 POSITION A,B:? W1$:POSITION A+18-
   (LEN(W2$)/C2),B:? W2$;:POSITION A+18,B
   +C1:? "|":POSITION A+16-LEN(W3$),B+C2
DV 1275 ? W3$
NR 1280 POSITION A+17,B+2:? "":POSITIO
   N A+20,B+2:? W4$;:POSITION A+18,B+3:?
   "|":POSITION A+18-(LEN(W5$)/2),B+4
EQ 1285 ? W5$
DU 1290 IF W1$(C1,C1)=" " THEN RETURN
WJ 1300 FOR I=250 TO 30 STEP -20:FOR J=15
    TO C0 STEP -C1:SOUND C2,I,C10,J:NEXT
   J
WY 1310 FOR DE=C1 TO I:IF STICK(0)<>15 TH
   EN C=STICK(C0):RETURN
DA 1320 NEXT DE:NEXT I:RETURN
FX 1330 GOSUB 260:POSITION A,B:FOR I=C1 T
   0 LEN(X$):? X$(I,I);:GOSUB 290:NEXT I:
   RETURN
IT 1340 GOSUB 260:POSITION A,B:FOR I=70 T
   0 87:? A$(I,I);:GOSUB 290:NEXT I:B=21:
   GOSUB 270:RETURN
NH 1350 B=21:GOSUB 270:POSITION A,B:FOR I
   =46 TO 53:? A$(I,I);:GOSUB 290:NEXT I:
   RETURN
LB 1360 FOR J=C0 TO C3:SCORE=SCORE+(ANS(E
   MER(E)*C4-C3+J)*15):NEXT J:RETURN
UG 1370 FOR J=C0 TO C3:SCORE=SCORE-(ANS(E
   MER(E)*4-3+J)*15):NEXT J:RETURN
UG 1380 B=21:GOSUB 270:FOR I=C1 TO C3:POK
   E 1712,242:POSITION A+11,B:? A$(54,69)
   ;"";:POSITION A,B:? BLANK$;
RZ 1390 POKE 1712,160:FOR J=C1 TO 20:NEXT
    J:NEXT I:RETURN
DJ 1400 IF PHONE>0 THEN POSITION 0,22:? B
   LANK$;:B=21:GOSUB 270:? "ANSWERING PHO
   NE...":PHONE=3:GOTO 1000
RF 1410 B=21:GOSUB 270:POSITION 9,19:? "N
   O PHONE WAS RINGING":GOSUB 1950:POSITI
   ON 0,19:? BLANK$;:GOTO 970
VJ 1435 RESTORE WHERE
LA 1440 GOSUB 1250:C=C0:GOSUB 1240:IF C=C
   0 THEN B=21:GOSUB 270:GOTO 970
XG 1450 IF C=13 AND CT<C3 THEN 1440
ZR 1460 IF C=14 THEN PLC1=CT*C3-C2
WR 1470 IF C<13 AND C>C8 THEN PLC1=CT*C3-
   C1
DW 1480 IF C<C8 THEN PLC1=CT*C3
ZZ 1490 IF C=13 AND CT=C3 THEN PLC1=10
IC 1500 DOPLACE=0:TRAP 1500:GOSUB 1350:IN
   PUT C:TRAP 40000:IF V=1 THEN 1540
IF 1510 IF C>PLACE(PLC1*4-4+EQ) THEN GOSU
   B 1340:GOTO 970
ZB 1520 PLACE(PLC1*4-4+EQ)=PLACE(PLC1*4-4
   +EQ)-C:EQU(EQ)=EQU(EQ)+C:R=C1:IF C=C1
   THEN R=C0
NM 1530 GOSUB 260:POSITION A+C10,B:FOR I=
   88 TO 91+R:? A$(I,I);:GOSUB 290:NEXT I
   :? " ";:B=21:GOSUB 270
UV 1535 GOTO 970
ID 1540 IF EQU(EQ)-C<C0 THEN GOSUB 1340:G
   OTO 970
VF 1550 EQU(EQ)=EQU(EQ)-C:PLACE(PLC1*4-4+
   EQ)=PLACE(PLC1*4-4+EQ)+C:FOR I=C1 TO C
   4:IF PLC(I)=PLC1 THEN E=I:GOTO 1570
PB 1560 NEXT I:GOTO 1710
RU 1570 FOR J=C0 TO C3:IF PLACE(PLC1*4-3+
    J)(ANS(EMER(E)*4-3+J) THEN 1710
VW 1580 NEXT J:GOSUB 1780:GOSUB 210:X$(C1
   ,20)=RES$(EMER(E)*20-19,EMER(E)*20):II
   =0:GOSUB 220
YK 1590 X$(SPOT,SPOT+20)=B$(PLC1*20-19,PL
   C1*20):GOSUB 1360
PD 1600 EMER(E)=C0:PLC(I)=C0:B=21:GOSUB 2
   70:GOSUB 1330:GOTO 970
VO 1610 B=21:GOSUB 210:GOSUB 270:GOSUB 13
   80:E=INT(RND(0)*4)+1:IF RND(CO)<0.5 TH
   EN 1670
NC 1620 X$(C1,20)=RES2$(EMER(E)*28-19,EME
   R(E)*20):II=0:GOSUB 220
IE 1630 X$(SPOT,SPOT+20)=B$(PLC(E)*20-19,
   PLC(E)*20)
SH 1640 IF RND(C0)<0.5 THEN S=24:G=39:GOT
   0 1660
XV 1650 S=C1:G=23
TL 1660 GOSUB 260:POSITION A,B:FOR I=S TO
    G:? C$(I,I);:GOSUB 290:NEXT I:GOTO 17
   00
MY 1670 X$(C1,20)=RESI$(EMER(E)*20-19,EME
   R(E)*20):II=0:GOSUB 220
YO 1680 X$(SPOT,SPOT+20)=B$(PLC(E)*20-19,
   PLC(E)*20):GOSUB 1370
OY 1690 EMER(E)=C0:PLC(E)=C0
IY 1700 GOSUS 1330:GOSUB 270:GOTO 970
HE 1710 VOL=12:ON EQ GOTO 1720,1740,1760,
   1770
LC 1720 FOR I=C1 TO C4:FOR J=70 TO 15 STE
   P -C4:SOUND C1,J+20,14,VOL:SOUND C2,J,
   C10,VOL:NEXT J
NI 1730 FOR J=15 TO 70:SOUND C1,J+20,14,V
   OL:SOUND C2,J,170,VOL:NEXT J:VOL=VOL-C
   4:NEXT I:GOTO 970
FC 1740 FOR I=C1 TO C4:FOR J=40 TO 20 STE
   P -C4:SOUND C1,J+C8,14,VOL:SOUND C2,J,
   C10,VOL:NEXT J
MT 1750 FOR J=20 TO 40:SOUND C1,J+C8,14,V
   OL:SOUND C2,J,C10,VOL:NEXT J:VOL=VOL-C
   4:NEXT I:GOTO 970
MA 1760 FOR I=C1 TO C4:SOUND C1,110,14,VO
   L:FOR D=C1 TO 45:NEXT D:SOUND C1,65,C1
   0,VOL:FOR D=C1 TO 45:NEXT D:VOL=VOL-C4
HZ 1765 NEXT I:GOTO 970
QR 1770 FOR I=C1 TO C5:FOR J=80 TO 50 STE
   P -C2:SOUND C1,220,12,VOL:SOUND C2,J,C
   10,VOL:NEXT J:VOL=VOL-C3:NEXT I
VL 1775 GOTO 970
HW 1780 FOR DD=1 TO 3:SOUND 1,96,10,10:FO
   R J=1 TO 6:NEXT J:FOR J=1 TO 6:SOUND 1
   ,0,0,0:NEXT J:NEXT DD
RT 1790 SOUND 1,81,10,10:SOUND 2,53,10,8:
   SOUND 0,64,10,8:FOR J=1 TO 35:NEXT J:F
   OR J=0 TO 2:SOUND J,0,0,0:NEXT J
AP 1800 RETURN
YL 1900 OPEN #2,4,0,"1K:":GET #2,CH
VJ 1910 CH$=CHR$(CH):CLOSE #2:FOR DD=20 T
   O 30:SOUND 1,DD,12,10:NEXT DD:SOUND 1,
   0,0,0:RETURN
FM 1950 FOR DD=1 TO 50:SOUND 0,100,12,10:
   NEXT DD:SOUND 0,0,0,0:RETURN
LO 2000 REM CHOOSE CITY
TP 2010 POSITION 14,13:? ""
XW 2015 POSITION 2,15:? "1. DALLAS  2. NE
   W YORK  3. LOS ANGELES"
BQ 2020 GOSUB 1900:IF (CH$<"1") OR (CH$>"
   3") THEN GOSUB 1950:GOTO 2020
RC 2030 CHOICE=ASC(CH$)-48:ON CHOICE GOTO
    2040,2050,2060
YW 2040 WHERE=2480:GOTO 548
ZM 2050 WHERE=2580:GOTO 548
AC 2060 WHERE=2680:GOTO 548
XE 2200 REM EMERGENCY PHONE
GJ 2210 IF PHONE>0 THEN 2215
JZ 2212 TIME=(PEEK(20)+PEEK(19)*256+PEEK(
   18)*256*256)/60
YR 2214 PHMIN=INT((TIME/3600-INT(TIME/360
   0))*60)+INT(ASC(TIME$(4,4))-48)*10+INT
   (ASC(TIME$(C5,C5))-48)*1
TL 2215 PHONE=1:POSITION 7,22:? A$(14,42)
OW 2220 FOR JJJ=1 TO 3
BU 2230 FOR DD=0 TO 15:FOR K=1 TO 3:SOUND
   2,22+K,10,DD:SOUND 1,50-K,10,15-DD:NE
   XT K:NEXT DD
JC 2240 SOUND 1,0,0,0:SOUND 2,0,0,0:FOR J
   J=1 TO 10:NEXT JJ:NEXT JJJ:RETURN
RN 2255 IF PHMIN+2<MIN THEN PHONE=C2
BR 2256 RETURN
NP 2260 REM DIDN'T ANSWER
IF 2265 B=21:GOSUB 270:FOR DD=C1 TO C3:PO
   KE 1712,242:POSITION A+11,B:? "UNANSWE
   RED PHONE!!";:POSITION A,B
EQ 2266 ? BLANK$;
SM 2270 POKE 1712,160:FOR J=C1 TO 20:NEXT
    J:NEXT DD:POSITION 0,22:? BLANK$;:RET
   URN
AN 2275 ON PHONE GOTO 2290,2280,2295
FF 2280 GOSUB 210:X$(C1,20)=RES1$(R*20-19
   ,R*20):II=0:GOSUB 220
BV 2285 X$(SPOT,SPOT+20)=B$(R1*20-19,R1*2
   0):E=I:EMER(E)=R:PLC(E)=R1:GOSUB 1330:
   GOSUB 1370:PHONE=0:EMER(E)=0:PLC(E)=0
VN 2287 GOTO 970
BZ 2290 ? "ERROR IN ANSWER OR NOT ANSWER"
   :STOP
GO 2295 GOSUB 210:X$(C1,20)=DIS$(R*20-19,
   R*20):II=0:GOSUB 220
SS 2300 X$(SPOT,SPOT+20)=B$(R1*20-19,R1*2
   0):E=I:EMER(E)=R:PLC(E)=R1:GOSUB 1330:
   PHONE=0:POSITION 0,12:? BLANK$;
UJ 2305 GOTO 970
UR 2400 DATA

SP 2410 DATA

YK 2420 DATA

SR 2430 DATA

XV 2440 DATA


WT 2470 REM ***  DALLAS  ***
SI 2480 DATA University Park,Highland Par
   k,Sunnyvale,Mesquite,Hines B1vd,Second
    Ave,Hensley Field
FI 2490 DATA Six Flags Park,Theatre Cente
   r,the Cotton Bowl,DALLAS,2500,40
IK 2500 DATA

VV 2510 DATA

SF 2520 DATA

ZC 2530 DATA

ZN 2540 DATA


KO 2570 REM ***  NEW YORK  ***
WC 2580 DATA Brooklyn,Bronx,Queens,Manhat
   tan,Staten Island,Forty Second St.,J.F
   .K. Airport,Lincoln Tunnel
ET 2590 DATA Statue of Liberty,United Nat
   ions,NEW YORK,2600,120.
YJ 2600 DATA

IM 2610 DATA

DQ 2620 DATA

JB 2630 DATA

TZ 2640 DATA


FK 2670 REM ***  LOS ANGELES  ***
NV 2680 DATA Santa Monica,Culver City,Bev
   erly Hills,Hollywood,San Pedro,Pasaden
   a,L.A. International,Disneyland
RV 2698 DATA Hollywood Bowl,Security Plaz
   a,LOS ANGELES,2700,85
SP 2700 DATA

NA 2710 DATA

PD 2720 DATA

LU 2730 DATA

JT 2740 DATA