home *** CD-ROM | disk | FTP | other *** search
Wrap
1 ' HURRICAN TRACKER 1.1 - 7/27/84 WHMC 80 KEY OFF:DEF SEG=0:POKE &H417, &H40 82 GOSUB 3000 90 DEFINT I 100 DIM C$(15),D$(50),T$(50),X(50),Y(50),MAPXY(20,2),IMAP(50,2),E$(50),HURICARRAY(90),STOR.SCR(4002) 110 U$="& & ##.# ###.# ####.# MI ##.# MPH ###.# DEG &" 120 M$="& & ##.# ###.#" 130 V$=" & & ###.# ###.# ####.# MI ##.# MPH ###.# DEG &" 140 MAP0$="F2G2F2D5L1G1F2G2L2M-20,+14M-2,+4L3M-4,+12D8M+4,+8M+4,+10D1F2G2M-3,+8D2G2L3U3M-5,-7L2U2E2U1H4U6H2U6H8L4G4H4L4U2G2L16D2F2D1G1F2L6G1L6M-6,-4G2M-12,-2G4M-16,+10D15G6D17F2M+12,+18M+10,+6R8F2R11U2M+5,-8U8M+15,-5F1R6M+2,+6G5D6G2M-2,+6" 150 MAP1$="L2U4G2D10G4D1M+4,+3R13E2F2R3F1R6D2M+2,+1R4F1G1F1D4G2D8G2D2F2G2F2D2F3D2R3M+7,+2M+12,-4R8M+8,+6M+8,-6R2U3M+5,-3R4E2R6M+12,-5F2D2G4D2R12E2U3E1R3F3R4F1D1R18F3M+19,-2D4R5M+6,+8M+10,+4" 'GULF SIDE AND SOUTH AMERICA 160 MAP2$="BM-16,-18L4U3R2E2R2F1D4L2BM-4,-14U1BM+2,-2U2BM-2,-2U1BM-1,-2U2BU3U1L1U1G3F1E1R1BM-6,-4U1BM-2,-2U1BM-2,-4U1BU2U1BH2U1BG4U1BL6L2BL4BU3G2L8U3H2RR2F1R5F2BL20" ' LITTLE ISLANDS PUERTO RICO 170 MAP3$="E2U2M-6,-2E2L3H1L2M-11,-3G2H1L6G2D1M+5,+3D4L12F3R13F4E4R3E2R4F1E2BL54L6G3R2F3R10E1U2L3H3BM-33,-18U2H1L2G1D2R4BL12BU6" ' HAITI , JAMAICA 180 MAP4$="C2E2R2U3R3E2M+10,-2M+10,+2F4R6D2M+11,+7R2F2R4F2R4D2M-10,+3H1L6M-9,+2E5H2M-7,-2H4M-10,-3H2M-12,+2L4C3" 'CUBA 190 MAP5$="BM+42,-13U2L1D2BU4U3H3G1D2F3BM+3,-6U2BU8BR1D2R1U2H3BL2U1L3D1NR3L3BM+17,+8L4D1R4F1BF4F3U1H3BG4F3D1BE3BR4BD1D2F3U1H2BR6BD5F1R3D2G3L1E2U1H2" ' NASSAU AND BAHAMAS 200 MAP6$="F4D3M+4,+5D2F2D3M-2,+3R2D2F14R10F4M+30,+12F2M+10,-4U1R3D2R4F15R6M+20,+8M+14,+4M+13,+14D5F4R3U3M+7,+4D3F2D2" 'PACIFIC SIDE (SET X,Y=96,0) 210 MAP7$="M+4,+2D2M+9,+11D4R1M+5,+7R3M+4,-6R8F3R3F1D3M+8,+10D2M+6,+5R3M+9,+4" ' TEXAS BORDER 220 STORM$="R2E1U1H1L3G2D3F2R3E4U2H4L4G4D4F5" 230 HUR$="BH4U1E3R3D1U2L3G2D4L1BF8D1G3L3U1D2R3E2U4R1BH4" 240 FOR I=0 TO 19:READ MAPXY(I,0):READ MAPXY(I,1):NEXT ' 0-10=X, 11-17=Y 250 DATA 0,319,60,312,65,275,70,242,75,210,80,180,85,150,90,117,95,83,100,47,105,12,120,0 260 DATA 0,199,10,185,15,158,20,125,25,90,30,50,35,8,50,0 270 GOSUB 2410 272 GOSUB 2500 274 GOSUB 1310 280 FOR I=1 TO 22:PRINT :NEXT 290 COLOR 0,7:LOCATE 3,5:PRINT"H U R R I C A N E T R A C K E R (c)" 291 LOCATE 5,2:PRINT"Generate your own Tracking Record of Tropical Storms or Hurricanes":COLOR 7,0:PRINT 300 LINE INPUT " What is the name of the HURRICANE/STORM? ";A$ 310 PRINT " Any";:COLOR 4,0:PRINT " NEW ";:COLOR 7,0:INPUT "coordinates to add (Y or N)";Z$ 320 IF Z$="" THEN 470 330 IF Z$="N" OR Z$="n" THEN 470 340 PRINT :PRINT :PRINT 350 OPEN A$ FOR APPEND AS #1 360 PRINT :PRINT " Enter new data ( or <END>)" 370 INPUT " Enter DATE (MM/DD/YY) ";D$ 380 IF D$="END" OR D$="end" THEN 460 390 IF LEN(D$) <> 8 THEN LOCATE CSRLIN-1,1:COLOR 23,0:PRINT " Form must be MM/DD/YY ";:COLOR 7,0:PRINT :GOTO 370 400 INPUT " Enter TIME (16:45) ";T$ 410 IF LEN(T$) <> 5 THEN LOCATE CSRLIN-1,1:COLOR 23,0:PRINT " Form must be 15:30 ";:COLOR 7,0:PRINT :GOTO 400 420 INPUT " Enter LATITUDE == (xx.x) ";Y 422 IF (Y <10) OR (Y >35) THEN PRINT "MUST BE >10 NORTH OR <35 NORTH.":GOTO 420 430 INPUT " Enter LONGITUDE || (xx.x) ";X 435 IF (X <60) OR (X >105) THEN PRINT "MUST BE >60 WEST OR <105 WEST.":GOTO 430 440 WRITE #1, D$;T$;X;Y 450 GOTO 360 460 CLOSE #1 470 PRINT :INPUT "Do you want a hard copy (Y or N)";Z$ 475 ' CLS 480 IF Z$="Y" OR Z$="y" THEN H=1 ELSE H=0 490 IF H=1 THEN 510 500 PRINT :PRINT :PRINT 510 OPEN A$ FOR INPUT AS #1 520 P1=20 'Set page counter 530 INPUT #1,D$,T$,X,Y 535 PRINT " Initial tracking began on - ";D$;" , at - ";T$ 537 IF H=1 THEN LPRINT " Initial tracking began on - ";D$;" , at - ";T$ 540 PRINT " Hurricane ";A$;"'s Initial Position was LATITUDE -";Y;", LONGITUDE -";X; 550 IF H=1 THEN LPRINT " Hurricane ";A$;"'s Initial Position was LAT -";Y;" , LON -";X; 560 OLDDAY=VAL(MID$(D$,4,2)) 562 TH=VAL(LEFT$(T$,2))*100:TM=VAL(MID$(T$,4,2)) 564 OLDTIME=TH+TM 'STORE ORIGINAL TIME 566 COUNT = 0:ASOA = 0:TSOA = 0 570 PRINT STRING$(80,61) 575 IF H=1 THEN LPRINT STRING$(80,61) 580 X0=X 590 Y0=Y 600 IF EOF(1) THEN 750 610 INPUT #1,D1$,T1$,X1,Y1 620 GOSUB 1040 630 IF P1<20 THEN 665 640 COLOR 2,0:PRINT " DATE TIME LAT LON DISTANCE SPEED DIRECTION OF TRAVEL";:COLOR 7,0:PRINT 650 IF H=1 THEN LPRINT " DATE TIME LAT LON DISTANCE SPEED DIRECTION OF TRAVEL" 660 P1=1 665 GOSUB 2800 670 PRINT USING U$;D1$,T1$,Y1,X1,Q,SOA,D,C$ 680 IF H=1 THEN LPRINT USING V$;D1$,T1$,Y1,X1,Q,SOA,D,C$ 690 IF H=0 THEN P1=P1+1 ELSE 720 700 IF P1<>20 THEN 720 710 INPUT " Press <ENTER> to continue";Z$ 720 X=X1 730 Y=Y1 740 GOTO 600 750 X=X0 760 Y=Y0 770 GOSUB 1040 780 T2=D:ASOA = TSOA/COUNT 'compute average speed of advance 790 PRINT :PRINT "TOTAL movement has been ";T2;" DEGREES ";C$;" AT ";ASOA;" MPH":PRINT 800 IF H=1 THEN LPRINT :LPRINT USING " TOTAL MOVEMENT HAS BEEN ##.# DEGREES & AT ##.# MPH";T2,C$,ASOA:ASOA=0 810 IF CITY=1 THEN X=97.22 : Y=27.48 'x=long, y=lat of city to track to 811 IF CITY=2 THEN X=96.56 : Y=28.51 812 IF CITY=3 THEN X=97.93 : Y=26.43 813 IF CITY=4 THEN X=94.65 : Y=29.45 814 IF CITY=5 THEN X=89.56 : Y=30.05 815 IF CITY=6 THEN X=80.05 : Y=26.21 816 IF CITY=7 THEN X=80.17 : Y=25.43 817 IF CITY=8 THEN X=0! : Y=0! 818 IF CITY=9 THEN X=0! : Y=0! 830 GOSUB 1040 840 COLOR 4,0:PRINT USING " & IS ####.# MILES AT ##.# DEGREES & FROM &.";A$,Q,D,C$,CITY1$ 850 IF H=1 THEN LPRINT USING " & IS ####.# MILES AT ##.# DEGREES & FROM & .";A$,Q,D,C$,CITY1$ 860 P1=P1+3 870 FOR I=P1 TO 10:PRINT :NEXT 880 CLOSE #1 890 IF Q >= 100 THEN 960 900 PRINT :PRINT :PRINT 910 COLOR 16,7:PRINT " ************************************************************************ "; 920 PRINT " * W A R N I N G - HURRICANE IS LESS THAN 100 MILES AWAY * " 930 PRINT " ************************************************************************ ";:COLOR 7,0 940 FOR I=1 TO 3:SOUND 4400,8:SOUND 220,8:NEXT 950 FOR I=1 TO 6:PRINT :NEXT : IF H=1 THEN LPRINT CHR$(12); 960 COLOR 7,0:INPUT "Press <ENTER>";Z$: RETURN 970 ' This Subroutine computes the direction and distance between two points 980 ' on the globe. Input is - Starting coordinates X,Y and ending coordinates 990 ' x1,y1. Output is - C$ -- contains the heading in words, IE north of west 1000 ' due south, etc. D -- contains the Angular Heading in degrees 1010 ' Q -- contains the Distance between two points 1020 ' Uses variables A,B,Q,Q2,D,S,N,U 1030 ' Variables X,X1,Y,Y1 are unchanged 1040 IF X1 = X AND Y1 = Y THEN C$="NO MOVEMENT" 1050 IF X1 > X AND Y1 = Y THEN C$="DUE WEST" 1060 IF X1 > X AND Y1 > Y THEN C$="NORTH OF WEST" 1070 IF X1 = X AND Y1 > Y THEN C$="DUE NORTH" 1080 IF X1 < X AND Y1 > Y THEN C$="NORTH OF EAST" 1090 IF X1 < X AND Y1 = Y THEN C$="DUE EAST" 1100 IF X1 < X AND Y1 < Y THEN C$="SOUTH OF EAST" 1110 IF X1 = X AND Y1 < Y THEN C$="DUE SOUTH" 1120 IF X1 > X AND Y1 < Y THEN C$="SOUTH OF WEST" 1160 U=57.29578 1170 Q=0: D=0 1180 N=ABS(X-X1) 1190 B=90 - Y 1200 A=90 - Y1 1210 S=COS(A/U)*COS(B/U)+SIN(A/U)*SIN(B/U)*COS(N/U) 1220 IF S*S >= 1 THEN RETURN 1230 Q2=ATN(SQR(1-S*S)/S) 1240 Q=Q2*U*69.5 1250 IF Y=Y1 THEN RETURN 1260 S=SIN(A/U)*SIN(N/U)/SIN(Q2) 1270 IF S*S >= 1 THEN RETURN 1280 D=ATN(S/SQR(1-S*S))*U 1290 D=90-D 1300 RETURN 1310 CLS: LOCATE 2,15 :COLOR 0,15:PRINT " H U R R I C A N E T R A C K I N G P R O G R A M " 1315 LOCATE 4,24:COLOR 7,0:PRINT "Track to city is ";CITY1$ 1320 LOCATE 6,20 :PRINT "(1) Enter a NEW Storm/Hurricane " 1330 LOCATE 7,20 :PRINT "(2) Update Position on Existing Storm/Hurricane " 1340 LOCATE 8,20 :PRINT "(3) Track a Storm/Hurricane on the MAP. " 1350 LOCATE 9,20 :PRINT "(4) Change track to City/Area " 1355 LOCATE 10,20 :PRINT "(5) END Program. " 1360 GOSUB 1400 1370 LOCATE 12,20 :INPUT "Enter function ===> ";M:ON M GOSUB 1425,280,1540,2500,1390 1380 GOTO 1310 1390 LOCATE 22,1:CLS:END 1400 REM DISPLAY STORMS 1410 LOCATE 14,20:COLOR 15:PRINT "The Storms currently on this disk are:";:COLOR 7:LOCATE 16,10:PRINT :FILES "*." 1420 RETURN 1425 FOR I=1 TO 22:PRINT :NEXT 1427 COLOR 0,7:PRINT " This program creates a NEW storm. ";:COLOR 7,0:PRINT 1430 LINE INPUT " What is the name of the Storm? ";A$ 1440 OPEN A$ FOR OUTPUT AS #1 1450 INPUT " Enter Initial DATE (MM/DD/YY) ";D$ 1460 IF LEN(D$) <> 8 THEN LOCATE CSRLIN-1,1:COLOR 23,0:PRINT " Form must be MM/DD/YY ";:COLOR 7,0:PRINT :GOTO 1450 1470 INPUT " Enter Initial TIME (16:45) ";T$ 1480 IF LEN(T$) <> 5 THEN LOCATE CSRLIN-1,1:COLOR 23,0:PRINT " Form must be 15:30 ";:COLOR 7,0:PRINT :GOTO 1470 1490 INPUT " Enter Initial LATITUDE == (xx.x) ";Y 1495 IF (Y <10) OR (Y >35) THEN PRINT "MUST BE >10 DEGREES NORTH AND <35 DEGREES NORTH.":GOTO 1490 1500 INPUT " Enter Initial LONGITUDE || (xx.x) ";X 1505 IF (X <60) OR (X >105) THEN PRINT "MUST BE >60 DEGREES WEST AND <105 DEGREES WEST.":GOTO 1500 1510 WRITE #1, D$;T$;X;Y 1520 CLOSE #1 1530 RETURN 1540 ' Routine to draw storm on map 1550 FOR I=1 TO 22:PRINT :NEXT:COLOR 0,7 1552 PRINT " This program tracks a storm on the map. ";:COLOR 7,0:PRINT 1553 LINE INPUT "What is the name of the storm? ";A$:GOSUB 2150 1555 INPUT "Do you want auto advance for the storm? (Y/N)";Q$ 1557 IF Q$="y" OR Q$="Y" THEN AUTO.ADVANCE=1 ELSE AUTO.ADVANCE=-1 1560 INPUT "Draw latitude and longitude lines at five degree increments? (Y/N)";I$ 1570 'I$="":WHILE I$="":I$=INKEY$:WEND 1580 IF I$="y" OR I$="Y" THEN I.DO.LATLON =-1 ELSE I.DO.LATLON = 0 1590 I=0:GOSUB 1960 ' go set up graphics and basic map 1600 OPEN A$ FOR INPUT AS #1 1610 WHILE NOT EOF(1) 1620 INPUT#1,D$(I),T$(I),X(I),Y(I) 1630 I=I+1 1640 WEND 1650 CLOSE #1 1660 LOCATE 1,1:PRINT A$;:IF AUTO.ADVANCE =-1 THEN LOCATE 23,1:PRINT "HIT ANY KEY"; 1670 FOR I0=0 TO I-1 1680 OUT.OF.RANGE=0:IMAP(I0,2)=0:GOSUB 1800 1690 IF OUT.OF.RANGE THEN LOCATE 1,15:PRINT USING M$;D$(I0),T$(I0),Y(I0),X(I0);:GOTO 1710 1700 LOCATE 1,15:PRINT USING M$;D$(I0),T$(I0),Y(I0),X(I0); 1710 IF I0 > 0 THEN IF IMAP(I0-1,2) <> -1 THEN PUT (IMAP(I0-1,0)-7,IMAP(I0-1,1)-10),HURICARRAY,XOR 1720 IF I0 > 0 THEN LINE (IMAP(I0-1,0),IMAP(I0-1,1))-(IMAP(I0,0),IMAP(I0,1)),2 1730 IF IMAP(I0,2) <> -1 THEN PUT (IMAP(I0,0)-7,IMAP(I0,1)-10),HURICARRAY,XOR 1735 IF AUTO.ADVANCE=1 THEN GOTO 1750 1740 I$="":WHILE I$="":I$=INKEY$:WEND 1750 NEXT 1760 I$="" 1770 LOCATE 23,1:INPUT "Press ENTER";Z$ 1780 GOSUB 2410 1790 RETURN 1800 ' Subroutine to translate Lat and Lon to Screen Coordinates 1810 IF X(I0) > 105 OR X(I0) < 60 THEN OUT.OF.RANGE=-1:IMAP(I0,2)=-1 1820 IF Y(I0) > 33 OR Y(I0) < 10 THEN OUT.OF.RANGE=-1:IMAP(I0,2)=-1 1830 FOR IB=0 TO 10: IF X(I0) >= MAPXY(IB,0) AND X(I0) < MAPXY(IB+1,0) THEN GOSUB 1880 1840 NEXT 1850 FOR IB=12 TO 18:IF Y(I0) >= MAPXY(IB,0) AND Y(I0) < MAPXY(IB+1,0) THEN GOSUB 1920 1860 NEXT 1870 RETURN 1880 ' calculate x(longitude) 1890 Z=MAPXY(IB+1,0)-MAPXY(IB,0) 1900 X=X(I0)-MAPXY(IB,0):XX=MAPXY(IB,1)-MAPXY(IB+1,1):IPOS=INT((X/Z)*XX) :IMAP(I0,0)=INT(MAPXY(IB,1))-IPOS 1910 RETURN 1920 ' calculate y(latitude) 1930 Z=MAPXY(IB+1,0)-MAPXY(IB,0) 1940 Y=Y(I0)-MAPXY(IB,0):YY=MAPXY(IB,1)-MAPXY(IB+1,1):IPOS=INT((Y/Z)*YY) :IMAP(I0,1)=INT(MAPXY(IB,1))-IPOS 1950 RETURN 1960 SCREEN 1,0:COLOR 0,1 ':OUT 980,2:OUT 981,43 1970 'IF STORED THEN THEN PUT(0,0),STOR.SCR,PSET:GOTO 2060 1980 CIRCLE (160,100),4,2,,,1:PAINT (160,100),2,2:PSET(160,100),2:DRAW "C2XHUR$;":GET (153,90)-(167,111),HURICARRAY:PUT (153,90),HURICARRAY,XOR 1990 PSET (202,0),3:DRAW "C3XMAP0$;XMAP1$;XMAP2$;XMAP3$;XMAP4$;XMAP5$;":PSET (0,96),3:DRAW "XMAP6$;":PSET (0,34),3:DRAW "XMAP7$;": PAINT (80,0),3,3: PAINT (40,80),1,3 2000 PAINT (180,110),2,2:PAINT (234,132),2,3:PAINT (265,136),2,3:PAINT (194,138),2,3:PAINT (304,181),2,3:PAINT (161,115),2,3:PAINT (191,91),2,3 2010 PSET (275,30),3:DRAW "C3R2D1L3" : ' BERMUDA 2015 GOSUB 2060 2020 IF CITY=1 THEN PSET (65,67),2:DRAW "C2H1R2G2R2U1L2":LOCATE 9,2:PRINT CITY$; ' CORPUS CHRISTI,TEXAS 2021 IF CITY=2 THEN PSET (71,60),2:DRAW "C2H1R2G2R2U1L2":LOCATE 8,1:PRINT CITY$; 'Victoria,Texas 2022 IF CITY=3 THEN PSET (66,79),2:DRAW "C2H1R2G2R2U1L2":LOCATE 10,2:PRINT CITY$; 'BROWNSVILLE,TEXAS 2023 IF CITY=4 THEN PSET (80,55),2:DRAW "C2H1R2G2R2U1L2":LOCATE 7,4:PRINT CITY$; 'GALVESTON,TEXAS 2024 IF CITY=5 THEN PSET (119,48),2:DRAW "C2H1R2G2R2U1L2":LOCATE 6,7:PRINT CITY$; 'NEW ORLEANS, LA 2025 IF CITY=6 THEN PSET (176,80),2:DRAW "C2H1R2G2R2U1L2":LOCATE 10,18:PRINT CITY$; ' BOCA RATON, FLA 2026 IF CITY=7 THEN PSET (175,86),2:DRAW "C2H1R2G2R2U1L2":LOCATE 11,16:PRINT CITY$; ' MIAMI, FLA 2027 IF CITY=8 THEN PSET (0,0),2:DRAW "C2H1R2G2R2U1L2":LOCATE 0,0:PRINT CITY$;' city 2028 IF CITY=9 THEN PSET (0,0),2:DRAW "C2H1R2G2R2U1L2":LOCATE 0,0:PRINT CITY$; ' city 2030 LOCATE 3,7:PRINT " U S A";:LOCATE 6,29:PRINT "ATLANTIC";:LOCATE 8,31:PRINT "OCEAN";:LOCATE 14,2:PRINT " MEXICO";:LOCATE 21,3:PRINT "PACIFIC";:LOCATE 21,22:PRINT "CARIBBEAN "; 2040 RETURN: ' LOCATE 10,12:PRINT "GULF";:LOCATE 11,14:PRINT "OF";:LOCATE 12,13:PRINT "MEXICO"; 2050 IF NOT STORED THEN GET (0,0)-(319,199),STOR.SCR:STORED=-1 2060 IF I.DO.LATLON THEN FOR I=0 TO 10:LINE(MAPXY(I,1),0)-(MAPXY(I,1),199),1:NEXT:FOR I=12 TO 18:LINE(0,MAPXY(I,1))-(319,MAPXY(I,1)),1:NEXT:I=0 2070 IF I.DO.LATLON THEN LOCATE 7,38:PRINT "30";:LOCATE 12,38:PRINT "25";:LOCATE 16,38:PRINT "20";:LOCATE 20,38:PRINT "15";:LOCATE 25,5:PRINT "100";:LOCATE 25,15:PRINT "90";:LOCATE 25,22:PRINT "80";:LOCATE 25,30:PRINT "70"; 2080 RETURN 2090 REM ERROR TRAPS 2100 IF ERR=53 THEN CLS:COLOR 0,7:LOCATE 1,1:PRINT "THERE IS NO STORM ";A$;" RECORDED.":PRINT "THE STORMS ON THIS DISK ARE:":FILES "*.":COLOR 7,8 2110 IF ERR=53 THEN PRINT "TRY ONE OF THESE STORMS, OR <RETURN>.":LINE INPUT "==> ";A$ 2120 IF ERR=53 AND A$="" THEN GOSUB 2410:RESUME 1310 2130 IF ERR=53 AND LEN(A$) <> 0 THEN CLS:RESUME 1590 2140 ON ERROR GOTO 0 2150 FOR ICAP=1 TO LEN(A$):E$=MID$(A$,ICAP,1):IF E$ >="a" AND E$ <="z" THEN MID$(A$,ICAP,1) = CHR$(ASC(E$)-32) 2160 NEXT:RETURN 2200 REM toggle color graphics 2210 DEF SEG=0 2220 POKE &H410, (PEEK(&H410) AND &HCF) OR &H10 2230 SCREEN 1,0,0,0: SCREEN 0:WIDTH 40:LOCATE ,,1,6,7 2240 RETURN 2250 REM toggle monochrome display 2260 DEF SEG=0 2270 POKE &H410, (PEEK(&H410) OR &H30) 2280 SCREEN 0:WIDTH 40:WIDTH 80:LOCATE ,,1,12,13 2290 STOP 'RETURN 2410 ' switch to color 80 char mode 2420 DEF SEG = 0 2430 POKE &H410,(PEEK(&H410) AND &HCF) OR &H10 2440 SCREEN 1,0,0,0 2450 SCREEN 0 2460 WIDTH 80 2470 LOCATE ,,1,6,7 2480 RETURN 2500 CLS: LOCATE 2,15 :COLOR 0,7:PRINT " H U R R I C A N E T R A C K I N G P R O G R A M ";:COLOR 7,0 2510 LOCATE 4,20 :PRINT "(1) GALVESTON, TEXAS " 2520 LOCATE 5,20 :PRINT "(2) VICTORIA, TEXAS " 2530 LOCATE 6,20 :PRINT "(3) BROWNSVILLE, TEXAS " 2540 LOCATE 7,20 :PRINT "(4) CORPUS CHRISTI, TEXAS " 2550 LOCATE 8,20 :PRINT "(5) NEW ORLEANS, LOUISIANA " 2560 LOCATE 9,20 :PRINT "(6) BOCA RATON, FLORIDA " 2570 LOCATE 10,20 :PRINT "(7) MIAMI, FLORIDA " 2580 LOCATE 12,20 :INPUT "Enter number of your CITY/AREA --> ";M 2590 ON M GOSUB 2640,2620,2630,2610,2650,2660,2670,2500,2500 2600 RETURN 2610 CITY=1:X=97.22:Y=27.48 'x=longitude,y=latitude of city to track to 2615 CITY$=" CORPUS":CITY1$="CORPUS CHRISTI":RETURN 2620 CITY=2:X=96.56:Y=28.51 2625 CITY$="VICTORIA":CITY1$="VICTORIA":RETURN 2630 CITY=3:X=97.93:Y=26.43 2635 CITY$="BROWNSV":CITY1$="BROWNSVILLE":RETURN 2640 CITY=4:X=94.65:Y=29.45 2645 CITY$=" GALVST":CITY1$="GALVESTON":RETURN 2650 CITY=5:X=89.56:Y=30.05 2655 CITY$=" NEW ORL.":CITY1$="NEW ORLEANS":RETURN 2660 CITY=6:X=80.05:Y=26.21 2665 CITY$=" BOCA":CITY1$="BOCA RATON":RETURN 2670 CITY=7:X=80.17:Y=25.43 2675 CITY$=" MIAMI":CITY1$="MIAMI, FLA":RETURN 2700 RETURN 2800 'SUBROUTINE TO COMPUTE THE SPEED OF ADVANCE 2810 'Variables are OLDDAY,OLDTIME - where it was 2820 ' D1$,T1 - where it is and q=distance moved 2830 NUDAY=VAL(MID$(D1$,4,2)) 'extract the day 2840 DAYINT=NUDAY-OLDDAY 'determine # of 24hr periods 2845 IF DAYINT <0 THEN HR24 = 2400 2850 IF DAYINT = 0 THEN HR24 = 0 2860 IF DAYINT = 1 THEN HR24 = 2400 2870 IF DAYINT = 2 THEN HR24 = 4800 2880 IF DAYINT = 3 THEN HR24 = 7200 2890 IF DAYINT > 3 THEN HR24 = 9999 2892 TH1=VAL(LEFT$(T1$,2))*100:TM1=VAL(MID$(T1$,4,2)) 'EXTRACT SEMICOLN 2894 TIME1=TH1 + TM1 'STORE NEW TIME 2900 LAPSTIME=(HR24 + (TIME1 - OLDTIME))/100 'calculate total hours 2910 SOA = Q/LAPSTIME 'calculate speed of advance 2915 TSOA = TSOA + SOA:COUNT = COUNT + 1 'SUM SPEED FOR AVERAGE CALC. 2920 OLDDAY = NUDAY:OLDTIME = TIME1:RETURN 2930 END 3000 CLS:LOCATE 10,5:COLOR 15:PRINT " WOULD YOU LIKE TO REVIEW OPERATIONAL NOTES?" 3005 PRINT:PRINT:INPUT "PRESS Y OR N, THEN PRESS <ENTER>.";QUEST$ 3010 COLOR 7,8 3020 IF QUEST$="N" OR QUEST$="n" THEN RETURN 3030 CLS:PRINT:PRINT " The purpose of this program is to track HURRICANES. It will track a storm" 3033 PRINT "from history or a new storm. The program allows you to enter data on a current storm as often as you wish and print out a list of the storms' location by date and time. ":PRINT 3050 PRINT " In addition, the program will provide a warning if the storm is within l00 miles of the city selected as the 'TRACK TO CITY', and display the selected storm super-imposed on a color map." 3060 PRINT :PRINT :PRINT: INPUT "PRESS <ENTER> TO CONTINUE"; QUEST$ 3070 CLS:PRINT:PRINT:PRINT "There are two menus associated with this program.":PRINT:PRINT "The first menu simply presents the list of cities which are currently available as a 'TRACK TO CITY ', from which you may select ONE.":PRINT 3080 PRINT "The second menu is the operational menu. It presents five (5) options. The options are as follow:":PRINT :PRINT " 1) Enter a NEW storm.":PRINT " 2) ADD or LIST storm data.":PRINT " 3) Display storm on map." 3083 PRINT " 4) Change track to city.":PRINT " 5) End the program." 3086 PRINT: INPUT "PRESS <ENTER> TO CONTINUE";QUEST$ 3089 CLS:PRINT " The first option (l) allows you to enter the INITIAL data on a storm which is not currently on the disk. You will be prompted to enter:":PRINT 3090 PRINT "1) DATE ":PRINT "2) TIME ":PRINT "3) LATITUDE":PRINT "4) LONGITUDE" 3093 COLOR 3:PRINT :PRINT "NOTE:":PRINT "Latitude MUST be greater than l0 Degrees North and LESS than 35 Degrees North. Longitude MUST be greater than 60 Degrees West and LESS than l05 Degrees West." 3100 PRINT: COLOR 0,15 :PRINT "WARNING: This option must NOT be used for storms that are now stored on the disk":COLOR 7,0 3110 PRINT: INPUT "PRESS <ENTER> TO CONTINUE";QUEST$ 3120 CLS: PRINT " The second option (2) allows you to enter ADDITONAL data about an active storm or list data for a storm stored on disk and may be used as often as you wish.":PRINT 3130 PRINT " You will be asked for the name of the storm. Next, you will be asked if you wish to ADD any new coordinates. Type 'Y' to ADD more data to an active storm. Do not add data to an old storm unless you have better data than is" 3140 PRINT "currently stored on the disk.":PRINT 3160 PRINT "You will be prompted thru the data entry process. Keep in mind that the storm coordinates must be >10 N and <35 N and >60 W and <105 W. After entering 'END' you will have a choice of hard copy along with the display list." 3170 PRINT :PRINT "In addition, if the storm is within 100 miles of the current 'TRACK TO CITY,' a warning will be issued!" 3180 PRINT :PRINT "If you only want to list an old storm then enter 'N' and you will be prompted for hard copy as above.":PRINT 3190 PRINT :INPUT "PRESS <ENTER> TO CONTINUE";QUEST$ 3200 CLS: PRINT:PRINT " Option 3 will allow you to track the storm on a map with either 'AUTO ADVANCE' or 'MANUAL' advance ('Press any key' prompt) and with or without Latutide/Longitude lines in 5 degree increments." 3210 PRINT :PRINT "When the storm is not moving on the map, you may 'PRINT SCREEN' and the IBM Printer will produce a 'shades of grey' hard copy of the map." 3220 PRINT :INPUT "PRESS <ENTER> TO CONTINUE";QUEST$ 3230 CLS: PRINT :PRINT " Option 4 of the operational menu will return you to the first menu to change the 'TRACK TO CITY'. After you select a new city, you will be returned to the operational menu.":PRINT 3240 PRINT:PRINT "Option 5 will terminate the program." 3250 PRINT:COLOR 2:PRINT "ENJOY THE PROGRAM AND HAPPY HURRICANE TRACKING!" 3260 PRINT: INPUT "ANOTHER REVIEW (Y/N)";QUEST$:COLOR 7 3270 IF QUEST$ = "Y" OR QUEST$ = "y" THEN GOTO 3030 ELSE RETURN