|
- 10 REM CLS$=CHR$(26):REM SET FOR YOUR TERMINAL
- 20 REM *Hurricane Locate* By: ???
- 30 REM Mod. By: K.D. Wentzel, Charlotte, NC
- 40 REM CP/M Conversion by Jim Lill
- 50 REM Input your coordinates in degrees, example:
- 60 REM 23 deg 30 min. you would enter as 23.5
- 70 REM ********************
- 80 CLS :PRINT "";:GOSUB 1220:FOR TT= 1 TO 2000:NEXT
- 90 CLS :PRINT :GOSUB 1220:PRINT : PRINT
- 100 PRINT"ENTER (H) for HOME Location ..."
- 110 PRINT" (W) for Wilmington / Wrightsville Beach area"
- 120 PRINT" (M) for Myrtle Beach area"
- 130 PRINT" (C) for Charleston area."
- 140 PRINT : PRINT "or just press <cr> to input your own Local Coordinates: ";: INPUT MHC$
- 150 IF MHC$="H" OR MHC$="h" THEN II$="East Charlotte" : A=35.208 : G=80.808 : GOTO 220
- 160 IF MHC$="W" OR MHC$="w" THEN II$="Wilmington NC" : A=34.167 : G=77.867 : GOTO 220
- 170 IF MHC$="M" OR MHC$="m" THEN II$="Myrtle Beach SC" : A=33.7 : G=78.85 : GOTO 220
- 180 IF MHC$="C" OR MHC$="c" THEN II$="Charleston SC" : A=32.783 : G=79.933 : GOTO 220
- 190 PRINT :PRINT
- 200 INPUT "Enter The Name of Your Location ";II$
- 210 PRINT :INPUT "Enter Your LATITUDE in Degrees";A:PRINT :INPUT "Your LONGITUDE in Degrees";G
- 220 CLS :PRINT :GOSUB 1220:PRINT
- 230 INPUT "What is the Name of the Hurricane ";A$:PRINT
- 240 PRINT "Input LATITUDE of Hurricane ";A$;" in Degrees";:INPUT B:PRINT
- 250 PRINT "Input LONGITUDE of Hurricane ";A$;" in Degrees";:INPUT H
- 255 IF B = 0 AND H = 0 THEN END ' for automated testing
- 260 PRINT :PRINT "What is ";A$;"'s Current Direction of Travel (in Degrees)";:INPUT DD
- 270 PRINT :PRINT "What is ";A$;"'s Current Speed (MPH)";:INPUT SS
- 280 REM **** CALCULATE LOCATION AND DISTANCE ****
- 290 CLS :IF A=B AND G=H THEN H=H+.1
- 300 PRINT :GOSUB 1220:I=G-H:L=I
- 310 IF (I<180) AND (I>-180) GOTO 350
- 320 J=I+360:L=J
- 330 IF (J<180) AND (J>-180) GOTO 350
- 340 L=I-360
- 350 IF L>0 THEN R=1
- 360 IF L<0 THEN R=0
- 370 E=SIN(A*.0174533):F=SIN(B*.0174533):K=COS(A*.0174533)
- 380 M=COS(B*.0174533):N=COS(L*.0174533):D=(E*F)+(K*M*N)
- 390 O=(-ATN(D/SQR(-D*D+1))+1.5708)*57.2958
- 400 P=SIN(O*.0174533):Q=(F-(E*D))/(K*P)
- 410 C=INT((-ATN(Q/SQR(-Q*Q+1))+1.5708)*57.2958)
- 420 IF R=0 THEN C=360-C
- 430 QQ=(E-(F*D))/(M*P)
- 440 CC=INT((-ATN(QQ/SQR(-QQ*QQ+1))+1.5708)* 57.2958)
- 450 IF R=1 THEN CC=360-CC
- 460 D=O*60*1.15078:D=INT(D+.5):PRINT
- 470 REM **** DETERMINE DIRECTION ****
- 480 IF C>=0 AND C<15 THEN G$="NORTH":GOTO 570
- 490 IF C>=15 AND C<75 THEN G$="NORTHEAST":GOTO 570
- 500 IF C>=75 AND C<105 THEN G$="EAST":GOTO 570
- 510 IF C>=105 AND C<165 THEN G$="SOUTHEAST":GOTO 570
- 520 IF C>=165 AND C<195 THEN G$="SOUTH":GOTO 570
- 530 IF C>=195 AND C<225 THEN G$="SOUTHWEST":GOTO 570
- 540 IF C>=255 AND C<285 THEN G$="WEST":GOTO 570
- 550 IF C>=285 AND C<345 THEN G$="NORTWEST":GOTO 570
- 560 G$="NORTH"
- 570 GOSUB 780:GOSUB 1210
- 580 REM **** PRINT NO ALARM TEXT ****
- 590 PRINT "HURRICANE ";A$;" is Currently ";D;" Miles ";G$;" Of"
- 600 PRINT II$;". Bearing From ";II$
- 610 PRINT "IS ";C;" Degrees From True North."
- 620 GOSUB 1210
- 630 PRINT "If Hurricane ";A$;" Maintains its Current Speed of ";SS;"(mph)
- 640 PRINT "THERE IS NO CAUSE FOR ALARM. Please Continue To Monitor"
- 650 PRINT "Hurricane ";A$;" Closely."
- 660 GOSUB 1210
- 670 PRINT :PRINT
- 680 PRINT" N O A A Weather Radio" : PRINT
- 690 PRINT" Charlotte 162.475 MHz"
- 700 PRINT" Wilmington NC 162.55"
- 710 PRINT" Myrtle Beach SC 162.4"
- 720 PRINT" Charleston SC 162.55"
- 730 PRINT" Beaufort SC 162.475"
- 740 PRINT" Cape Hatteras 162.55" : PRINT
- 750 PRINT :FOR TT= 1 TO 1000:NEXT :PRINT "Press <cr> to Input New Status On Hurricane ";A$;:INPUT UU$
- 760 CLS :PRINT :GOSUB 1220:PRINT :GOTO 240
- 770 REM **** DETERMINE IF PATH IS IN YOUR DIRECTION ****
- 780 KK=10:IF D<200 THEN KK=20
- 790 IF D<400 THEN KK=15
- 800 IF D<90 THEN 1450
- 810 P$=II$
- 820 IF DD<(CC+KK) AND DD>(CC-KK) THEN 880
- 830 IF DD<KK AND CC>360-(KK-DD) THEN 880
- 840 IF DD>(360-KK) AND CC<KK-(360-DD) THEN 880
- 850 IF D<100 THEN 880
- 860 RETURN
- 870 REM **** PRINT INITIAL WARNING ****
- 880 CLS
- 890 FOR XX=1 TO 4
- 900 PRINT " * * * H U R R I C A N E * * * "
- 910 PRINT " * * * A L E R T * * *"
- 920 FOR TT=1 TO 250:NEXT TT:CLS:FOR TT=1 TO 10:NEXT TT
- 930 NEXT XX
- 940 TIME=D/SS
- 950 TS=FIX(TIME):TB=TIME-TS:TC=FIX(TB*60)
- 960 II= 5
- 970 REM **** DETERMINE HURCON NUMBER ****
- 980 IF TS<72 THEN II= 4
- 990 IF TS<48 THEN II= 3
- 1000 IF TS<24 THEN II= 2
- 1010 IF TS<12 THEN II= 1
- 1020 REM **** PRINT HURCON WARNING TEXT ****
- 1030 GOSUB 1220:PRINT :PRINT " * * * H U R C O N ";II;" N O W I N E F F E C T * * *":GOSUB 1210
- 1040 PRINT "HURRICANE ";A$;" IS CURRENTLY ";D;"MILES ";G$;" OF ";II$
- 1050 PRINT "BEARING FROM ";II$;": ";C;" DEGREES FROM TRUE NORTH."
- 1060 GOSUB 1210
- 1070 PRINT "IF THIS HURRICANE MAINTAINS ITS CURRENT SPEED OF ";SS;" MILES"
- 1080 PRINT "PER HOUR AND CURRENT DIRECTION OF ";DD;" DEGREES, THE CENTER"
- 1090 PRINT "OF THE STORM CAN BE EXPECTED TO HIT THE ";II$
- 1100 PRINT "AREA IN APPROXIMATELY ";TS;" HOURS."
- 1110 GOSUB 1210
- 1120 PRINT "PRESS LETTER - H - TO INPUT NEW STATUS ON HURRICANE"
- 1130 PRINT " PRESS LETTER - C - TO REVIEW HURRICANE CONDITION NUMBERS";
- 1140 PRINT " * * * H U R R I C A N E W A R N I N G * * *"
- 1150 FOR TT=1 TO 200:NEXT TT
- 1160 PRINT " "
- 1170 FOR TT= 1 TO 20:NEXT TT
- 1180 INPUT MM$ :IF MM$="H" OR MM$="h" THEN CLS :PRINT:GOSUB 1220:PRINT:GOTO 240
- 1190 IF MM$="C" OR MM$="c" THEN CLS:PRINT:GOTO 1250
- 1200 GOTO 1140
- 1210 PRINT STRING$ (63,"*"):RETURN
- 1220 PRINT " * * * HURRICANE LOCATION AND DISTANCE CALCULATOR * * *"
- 1230 RETURN
- 1240 REM * * * HURCON LISTING * * *
- 1250 PRINT " H U R R I C A N E C O N D I T I O N S ":PRINT
- 1260 PRINT " A. H U R C O N 5 : A HURRICANE READINESS STATUS"
- 1270 PRINT " CONSISTANT WITH SOUND PRECAUTIONARY MEASURES EFFECTIVE"
- 1280 PRINT " JUNE 1 THROUGH NOVEMBER 30 EACH YEAR.":PRINT
- 1290 PRINT " B. H U R C O N 4: A HURRICANE HAS BECOME A THREAT"
- 1300 PRINT " TO THE ";II$;" AREA. SURFACE WINDS IN EXCESS OF 50"
- 1310 PRINT " COULD ARRIVE WITHIN 72 HOURS.":PRINT
- 1320 PRINT " C. H U R C O N 3: A HURRICANE HAS BECOME A THREAT"
- 1330 PRINT " TO THE ";II$;" AREA. SURFACE WINDS IN EXCESS OF 50"
- 1340 PRINT " KNOTS COULD ARRIVE WITHIN 48 HOURS."
- 1350 PRINT :INPUT " Press <<cr>> To Continue";UU$:CLS
- 1360 PRINT :PRINT " H U R R I C A N E C O N D I T I O N S":PRINT
- 1370 PRINT " D. H U R C O N 2: A HURRICANE HAS BECOME A THREAT"
- 1380 PRINT " TO THE ";II$;" AREA. SURFACE WINDS IN EXCESS OF 50"
- 1390 PRINT " KNOTS COULD ARRIVE WITHIN 24 HOURS.":PRINT
- 1400 PRINT " E. H U R C O N 1: A HURRICANE HAS BECOME A THREAT"
- 1410 PRINT " TO THE ";II$;" AREA. SURFACE WINDS IN EXCESS OF 50"
- 1420 PRINT " KNOTS COULD ARRIVE WITHIN 12 HOURS.":PRINT :PRINT
- 1430 INPUT " Press <<cr>> To Continue";UU$:CLS :GOTO 1030
- 1440 REM **** TOO LATE MESSAGE ****
- 1450 CLS :PRINT "YOU ARE NOW IN A HURRICANE "
- 1460 EE=FIX(LEN(A$)/2)
- 1470 IF EE/2<>INT(EE/2) THEN EE=EE+1
- 1480 PRINT "* * * ";A$;" * * *"
- 1490 PRINT "G O O D L U C K"
- 1500 FOR X=1 TO 250:NEXT
- 1510 PRINT "+ - + - + - + - + "
- 1520 FOR X= 1 TO 250:NEXT
- 1530 GOTO 1490
- 2000 REM -------------------------------------------------
- 2010 REM changed :' to REM
- 2020 REM changed PRINT CLS$ to CLS
- 2030 REM added line 255 for automated testing
- 2999 END
|