Category : BASIC Source Code
Archive   : WEATHER.ZIP
Filename : WEATHER.BAS
20 REM WEATHER FORECAST PROGRAM by Phil Baughn
30 REM
40 REM This software program is distributed as "SHAREWARE". You may
50 REM feel free to copy and revise it as you like as long as you do
60 REM not alter or remove the credit information in lines 1-400. If
70 REM you find that you have made some significant improvements and
80 REM additions to this package, please upload them to my attention
90 REM either at The MAILROOM RBBS or to Compuserve; User#76044,1535.
100 REM Enjoy! Phil Baughn
110 REM
120 REM Mailing address: The MAILROOM RBBS-PC
130 REM attn. Phil Baughn
140 REM 2050 Idle Hour Center
150 REM Lexington, KY 40502
160 REM
170 REM Data: (606)293-5119
180 REM Voice: (606)268-0206
190 REM
200 CLS
210 WIDTH 80:COLOR 11,0:LOCATE 5,5:PRINT CHR$(201):LOCATE 5,75:PRINT CHR$(187)
220 LOCATE 20,5:PRINT CHR$(200):LOCATE 20,75:PRINT CHR$(188)
230 FOR N=6 TO 19
240 LOCATE N,5:PRINT CHR$(186)
250 LOCATE N,75:PRINT CHR$(186)
260 NEXT N
270 FOR N=6 TO 74
280 LOCATE 5,N:PRINT CHR$(205)
290 LOCATE 20,N:PRINT CHR$(205)
300 NEXT N
310 COLOR 13,0:LOCATE 7,31:PRINT "WEATHER FORCASTING"
320 LOCATE 9,28:PRINT "DEVELOPED FOR THE IBM-PC"
330 LOCATE 11,39:PRINT "BY"
340 LOCATE 13,35:PRINT "PHIL BAUGHN"
350 LOCATE 16,20:PRINT "Distributed Through The MAILROOM RBBS-PC"
360 LOCATE 17,29:PRINT "In Lexington, Kentucky"
370 LOCATE 18,22:PRINT "(606)293-5119 24 Hours - 2400 Baud"
380 LOCATE 19,25:PRINT "Latest Revision [ C ]; May 1986"
390 FOR N=1 TO 9999
400 NEXT N
410 GOSUB 2380
420 CLS:COLOR 14:LOCATE 10,20:PRINT "1 - WEATHER FORECAST PROGRAM"
430 COLOR 11:LOCATE 12,20:PRINT "2 - WIND CHILL CALCULATION"
440 COLOR 12:LOCATE 14,20:PRINT "3 - TEMPERATURE HUMIDITY INDEX"
450 COLOR 9:LOCATE 5,5:INPUT "ENTER THE NUMBER OF THE WEATHER PROGRAM WHICH YOU WISH TO RUN ";CHOICE
460 IF CHOICE=1 THEN 490
470 IF CHOICE=2 THEN 1920
480 GOTO 2150
490 CLS:COLOR 14:LOCATE 2,25:PRINT "WEATHER FORECAST PROGRAM"
500 COLOR 5:LOCATE 4,32:PRINT DATE$:LOCATE 5,33:PRINT TIME$
510 COLOR 3,0,0
520 KEY OFF:LOCATE 7,12
530 INPUT "ENTER CURRENT BAROMETRIC PRESSURE ";CBP
540 IF CBP<25 THEN 520
550 IF CBP>35 THEN 520
560 LOCATE 8,12
570 INPUT "WIND DIRECTION IS CURRENTLY FROM THE ";PWD$
580 IF PWD$="SW" THEN 590 ELSE 620
590 LOCATE 9,12
600 INPUT "PREVIOUS WIND DIRECTION WAS FROM THE ";PWD$
610 GOTO 740
620 IF PWD$="SE" THEN 630 ELSE 660
630 LOCATE 9,12
640 INPUT "PREVIOUS WIND DIRECTION WAS FROM THE ";PWD$
650 GOTO 820
660 IF PWD$="S" THEN 700 ELSE 670
670 IF PWD$="N" THEN 700 ELSE 680
680 IF PWD$="NW" THEN 700 ELSE 690
690 IF PWD$="NE" THEN 700 ELSE 900
700 LOCATE 18,23
710 COLOR 9
720 PRINT "NO IMMEDIATE CHANGE IS FORECAST"
730 COLOR 7,0,0:GOTO 1850
740 IF PWD$="S" THEN 760 ELSE 750
750 IF PWD$="NW" THEN 780 ELSE 800
760 PWD$="M"
770 GOTO 950
780 PWD$="N"
790 GOTO 950
800 PWD$="O"
810 GOTO 950
820 IF PWD$="NE" THEN 840 ELSE 830
830 IF PWD$="S" THEN 860 ELSE 880
840 PWD$="P"
850 GOTO 950
860 PWD$="Q"
870 GOTO 950
880 PWD$="R"
890 GOTO 950
900 IF PWD$="E" THEN 920 ELSE 910
910 IF PWD$="W" THEN 940
920 PWD$="S"
930 GOTO 950
940 PWD$="T"
950 COLOR 4:LOCATE 13,12:PRINT "WIND CONDITION CODE IS ",PWD$;
960 COLOR 3,0,0
970 IF CBP>30.01 THEN 1140 ELSE 980
980 IF CBP<29.81 THEN 1290 ELSE 990
990 LOCATE 10,12
1000 INPUT "IS PRESSURE RISING (R), FALLING (F), OR STEADY (S) ";BM$
1010 IF BM$="F" THEN 1020 ELSE 1090
1020 LOCATE 11,12
1030 INPUT "IS IT FALLING RAPIDLY (R) OR SLOWLY (S) ";BM$
1040 IF BM$="R" THEN 1050 ELSE 1070
1050 BM$="C6"
1060 GOTO 1360
1070 BM$="C5"
1080 GOTO 1360
1090 IF BM$="R" THEN 1100 ELSE 1120
1100 BM$="C7"
1110 GOTO 1360
1120 BM$="C0"
1130 GOTO 1360
1140 LOCATE 10,12
1150 INPUT "IS PRESSURE RISING (R), FALLING (F), OR STEADY (S) ";BM$
1160 IF BM$="F" THEN 1170 ELSE 1240
1170 LOCATE 11,12
1180 INPUT "IS IT FALLING RAPIDLY (R) OR SLOWLY (S) ";BM$
1190 IF BM$="R" THEN 1200 ELSE 1220
1200 BM$="C4"
1210 GOTO 1360
1220 BM$="C3"
1230 GOTO 1360
1240 IF BM$="S" THEN 1250 ELSE 1270
1250 BM$="C1"
1260 GOTO 1360
1270 BM$="C2"
1280 GOTO 1360
1290 LOCATE 10,12
1300 INPUT "IS THE PRESSURE RISING (R) OR FALLING (F) ";BM$
1310 IF BM$="R" THEN 1320 ELSE 1340
1320 BM$="C8"
1330 GOTO 1360
1340 BM$="C9"
1350 GOTO 1360
1360 COLOR 4:LOCATE 14,12:PRINT "BAROMETRIC CODE IS ",BM$
1370 COLOR 3,0,0
1380 IF PWD$="O" THEN 700
1390 IF PWD$="R" THEN 700
1400 LOCATE 17,18:PRINT "PLEASE WAIT - FORECAST BEING COMPUTED"
1410 FOR X=1 TO 3200:NEXT X
1420 LOCATE 17,18:PRINT " "
1430 IF PWD$="T" AND BM$="C8" THEN 1610
1440 IF PWD$="M" AND BM$="C7" THEN 1620
1450 IF PWD$="Q" AND BM$="C3" THEN 1640
1460 IF PWD$="Q" AND BM$="C4" THEN 1650
1470 IF PWD$="Q" AND BM$="C9" THEN 1660
1480 IF PWD$="P" AND BM$="C3" THEN 1680
1490 IF PWD$="P" AND BM$="C4" THEN 1690
1500 IF PWD$="P" AND BM$="C5" THEN 1700
1510 IF PWD$="P" AND BM$="C6" THEN 1710
1520 IF PWD$="P" AND BM$="C9" THEN 1660
1530 IF PWD$="S" AND BM$="C3" THEN 1730
1540 IF PWD$="S" AND BM$="C4" THEN 1750
1550 IF PWD$="S" AND BM$="C9" THEN 1790
1560 IF PWD$="N" AND BM$="C1" THEN 1810
1570 IF PWD$="N" AND BM$="C2" THEN 1830
1580 IF PWD$="N" AND BM$="C3" THEN 1840
1590 IF PWD$="N" AND BM$="C7" THEN 1620
1600 GOTO 700
1610 LOCATE 17,30:COLOR 13:PRINT "CLEARING AND COLDER":GOTO 1850
1620 LOCATE 17,20:COLOR 13:PRINT "CLEARING WITHIN A FEW HOURS/"
1630 LOCATE 19,20:PRINT "FAIR FOR SEVERAL DAYS":GOTO 1850
1640 LOCATE 17,30:COLOR 13:PRINT "RAIN WITHIN 24 HOURS":GOTO 1850
1650 LOCATE 17,20:COLOR 13:PRINT "WIND INCREASING; RAIN WITHIN 24 HOURS":GOTO 1850
1660 LOCATE 17,15:COLOR 15:PRINT "SEVERE STORM IMMIMENT, FOLLOWED WITHIN 24 HOURS"
1670 LOCATE 19,15:PRINT "BY CLEARING. IN WINTER, COLDER TEMPERATURES.":GOTO 1850
1680 LOCATE 17,30:COLOR 13:PRINT "RAIN WITHIN 12 TO 18 HOURS":GOTO 1850
1690 LOCATE 17,20:COLOR 13:PRINT "WIND INCREASING; RAIN WITHIN 12 HOURS":GOTO 1850
1700 LOCATE 17,20:COLOR 13:PRINT "RAIN WILL CONTINUE FOR 1 TO 2 DAYS":GOTO 1850
1710 LOCATE 17,15:COLOR 13:PRINT "RAIN, WITH HIGH WIND, FOLLOWED WITHIN 36 HOURS BY"
1720 LOCATE 19,15:PRINT "CLEARING. IN WINTER - COLDER TEMPERATURES.":GOTO 1850
1730 LOCATE 17,15:COLOR 13:PRINT "SUMMER - LIGHT WINDS; RAIN MAY NOT FALL FOR"
1740 LOCATE 19,15:PRINT "SEVERAL DAYS. WINTER - RAIN WITHIN 24 HOURS":GOTO 1850
1750 LOCATE 17,15:COLOR 13:PRINT "SUMMER RAIN PROBABLE 12/24 HOURS. WINTER"
1760 LOCATE 19,15:PRINT "RAIN OR SNOW, INCREASING WIND; BAD WEATHER"
1770 LOCATE 21,15:PRINT "OFTEN SETS IN WHEN BAROMETER BEGINS TO FALL AND"
1780 LOCATE 23,15:PRINT "WINDS SET IN FROM THE NORTHEAST.":GOTO 1850
1790 LOCATE 17,15:COLOR 15:PRINT "SEVERE NORTHEAST GALE AND HEACY PRECIPITATION,"
1800 LOCATE 19,15:PRINT "IN WINTER - HEAVY SNOW FOLLOEWD BY A COLD WAVE":GOTO 1850
1810 LOCATE 17,20:COLOR 13:PRINT "CONTINUED FAIR WEATHER WITH"
1820 LOCATE 19,20:PRINT "NO DECIDED TEMPERATURE CHANGE":GOTO 1850
1830 LOCATE 17,20:COLOR 13:PRINT "FAIR, FOLLOWED WITHIN 2 DAYS BY RAIN":GOTO 1850
1840 LOCATE 17,15:COLOR 13:PRINT "FAIR FOR 2 DAYS WITH SLOWLY RISING TEMPERATURES":GOTO 1850
1850 COLOR 7,0,0:LOCATE 24,17:INPUT "DO YOU WISH TO RUN ANOTHER FORECAST (Y/N)";L$
1860 IF L$="Y" OR L$="y" THEN GOTO 490
1870 LOCATE 24,14:INPUT "DO YOU WISH TO DO A DIFFERENT CALCULATION (Y/N)";D$
1880 IF D$="Y" OR D$="y" THEN GOTO 420
1890 GOTO 1900
1900 COLOR 7,0,0
1910 LOCATE 23,1:END
1920 CLS:COLOR 11:LOCATE 2,27:PRINT "WIND CHILL CALCULATION"
1930 COLOR 5:LOCATE 4,34:PRINT DATE$:LOCATE 5,35:PRINT TIME$
1940 COLOR 3,0,0:KEY OFF:LOCATE 7,12
1950 INPUT "ENTER TEMPERATURE IN FAHRENHEIT ";T
1960 LOCATE 8,12
1970 INPUT "ENTER WIND SPEED IN MILES PER HOUR ";V
1980 T1=T:V=(V*1609.35)/(3600):TC=33-((T-32)*(5/9))
1990 H=(10.45+(SQR(V)*10)-V)*TC:X=H-506.784
2000 IF X<0 THEN X1=T1:GOTO 2100
2010 X1=50-(X/12.3):X1=INT(((X1*10)+5)/10)
2020 COLOR 3:LOCATE 11,19:PRINT "PLEASE WAIT - WIND CHILL BEING COMPUTED"
2030 FOR ZZ=1 TO 1600:NEXT ZZ
2040 COLOR 4:LOCATE 13,17:PRINT "T1=T:V=(V*1069.35)/3600:TC=33-((T-32)*(5/9))"
2050 FOR Z=1 TO 800:NEXT Z
2060 LOCATE 14,20:PRINT "H=(10.45+(SQR(V)*10)-V)*TC:X=H-506.784"
2070 FOR ZXC=1 TO 800:NEXT ZXC
2080 LOCATE 15,21:PRINT "X1=50-(X/12.3):X1=INT(((X1*10)+5)/10)"
2090 FOR ZX=1 TO 1600:NEXT ZX
2100 COLOR 13:LOCATE 19,15:PRINT "WIND CHILL TEMPERATURE = ";X1;"DEGREES FAHRENHEIT"
2110 COLOR 7,0,0:LOCATE 24,19:INPUT "RUN ANOTHER WIND CHILL FACTOR (Y/N)";L$
2120 IF L$="Y" OR L$="y" THEN GOTO 1920
2130 GOTO 1870
2140 END
2150 CLS:COLOR 12:LOCATE 2,26:PRINT "TEMPERATURE HUMIDITY INDEX"
2160 COLOR 5:LOCATE 4,34:PRINT DATE$:LOCATE 5,35:PRINT TIME$
2170 COLOR 3,0,0:KEY OFF:LOCATE 7,24:PRINT "THE TEMPERATURE HUMIDITY INDEX"
2180 LOCATE 8,21:PRINT "DETERMINES THE EFFECTIVE TEMPERATURE"
2190 LOCATE 11,12:INPUT "ENTER THE TEMPERATURE IN FAHRENHEIT ";T
2200 LOCATE 12,12:INPUT "ENTER THE RELATIVE HUMIDITY ";H
2210 LOCATE 15,15:PRINT "PLEASE WAIT - EFFECTIVE TEMPERATURE BEING COMPUTED"
2220 LOCATE 18,30:FOR C=1 TO 16
2230 COLOR (C):PRINT "!!!!!!!!!!!!!!!!!!!"
2240 LOCATE 18,30:C=C+1
2250 FOR Z=1 TO 400:NEXT Z
2260 NEXT C
2270 COLOR 3,0,0
2280 LOCATE 18,25:PRINT " "
2290 IF H>94 THEN A=0 ELSE IF H>89 AND H<95 THEN A=2
2300 IF H>79 AND H<90 THEN A=4 ELSE IF H>69 AND H<80 THEN A=6
2310 IF H>59 AND H<70 THEN A=10 ELSE IF H<60 THEN A=14
2320 TH=.8*T+15-A
2330 COLOR 13:LOCATE 20,10:PRINT "THE TEMPERATURE HUMIDITY INDEX = ";TH;"DEGREES FAHRENHEIT"
2340 COLOR 7,0,0:LOCATE 24,17:INPUT "ANOTHER TEMPERATURE HUMIDITY INDEX (Y/N)";L$
2350 IF L$="Y" OR L$="y" THEN GOTO 2150
2360 GOTO 1870
2370 END
2380 CLS:COLOR 14,1,1:CLS
2390 PRINT " "
2400 PRINT " "
2410 PRINT "This program will provide you with a very good forcast providing"
2420 PRINT "you supply the correct information as to barometric pressure and"
2430 PRINT "wind direction. This method has been used for ages by sailors &"
2440 PRINT "the tables themselves can still be found in almost all editions"
2450 PRINT "of The Farmers Almanac."
2460 PRINT " "
2470 PRINT "The other two programs which are included at present; Wind Chill"
2480 PRINT "and Temperature/Humidity Index, can be especially important when"
2490 PRINT "working outdoors. Wind Chill tells you the true "FEEL" of the"
2500 PRINT "temperature after the wind has it's effect. It's not always safe"
2510 PRINT "to simply look at the outdoor thermometer! Humidity also effects"
2520 PRINT "the temperature. Lower humidity levels cause it to feel cooler"
2530 PRINT "than the thermometer states."
2540 PRINT " "
2550 PRINT "Enjoy the program, please pass along any improvements which you"
2560 PRINT "may develope or additional modules which will fit well into the"
2570 PRINT "menu. Listing the programs lines 1-200 [ ie- LIST -200 ] will"
2580 PRINT "provide you with more detailed contact information."
2590 PRINT " "
2600 PRINT " "
2610 PRINT "Turn your CAPS LOCK key to ON, then press any key when ready..."
2620 IF INKEY$ ="" GOTO 2620
2630 COLOR 7,0,0:CLS
2640 RETURN
Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!
This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.
But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/