home *** CD-ROM | disk | FTP | other *** search
/ Hacker Chronicles 2 / HACKER2.BIN / 294.WX60.BAS < prev    next >
BASIC Source File  |  1990-07-21  |  35KB  |  1,334 lines

  1.      REM
  2.      REM      WEATHER FORECAST PROGRAM by Phil Baughn
  3.      REM
  4.      REM      This software program is distributed as "SHAREWARE".  You may
  5.      REM      feel free to copy and revise it as you like as long as you do
  6.      REM      not alter or remove the credit information in the program. If
  7.      REM      you find that you have made some significant improvements and
  8.      REM      additions to this package, please upload them to my attention
  9.      REM      either at The MAILROOM RBBS or to Compuserve; User#76044,1535.
  10.      REM      Enjoy!    Phil Baughn
  11.      REM
  12.      REM     Mailing address:          The MAILROOM RBBS-PC
  13.      REM                               c/o COMMUNITRONICS OF LEXINGTON, INC.
  14.      REM                               attn.  Phil Baughn
  15.      REM                               121 Prosperous Place, Suite 6B
  16.      REM                               Lexington, KY  40509
  17.      REM                               Data:  (606)293-5119
  18.      REM                               Voice: (606)263-2737
  19.      REM
  20.      REM     Special Credit to Mssrs. Bernard N. Meisner and Leon F. Graves
  21.      REM     who developed the Heat Index / Apparent Temperature Formula.
  22.      REM
  23.      REM     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  24.      REM
  25.      REM     BELOW TURNS KEYS OFF, SELECTS COLOR OR MONO, TURNS CAPS ON
  26.      REM
  27.      DEF SEG = 0
  28.      POKE 1047, 96
  29.      DEF SEG
  30. TARGET2:
  31.      KEY OFF
  32.      CLS
  33.      LOCATE 10, 23
  34.      INPUT "Do you want Color? (Y)es or (N)o"; CLRANS$
  35.      IF LEFT$(CLRANS$, 1) = "Y" OR LEFT$(CLRANS$, 1) = "y" THEN
  36.          CLRT$ = "Y"
  37.          GOTO TARGET1
  38.      END IF
  39.      IF LEFT$(CLRANS$, 1) <> "N" AND LEFT$(CLRANS$, 1) <> "n" THEN
  40.          GOTO TARGET2
  41.      END IF
  42.      CLRT$ = " "
  43.      REM
  44.      REM
  45. TARGET1:
  46.      GOSUB TARGET3
  47.      REM     GET WELCOME SCREEN AND CREDITS IN ABOVE LINE
  48.      REM     GET MASTER WELCOME DOCUMENT IN FOLLOWING LINE
  49.      GOSUB TARGET4
  50.      REM
  51.      REM     PRINT MAIN MENU
  52.      REM
  53. TARGET15:
  54.      CLS
  55.      IF CLRT$ = "Y" THEN
  56.          COLOR 14
  57.      END IF
  58.      LOCATE 9, 20
  59.      PRINT "1 - WEATHER FORECAST PROGRAM"
  60.      IF CLRT$ = "Y" THEN
  61.          COLOR 11
  62.      END IF
  63.      LOCATE 11, 20
  64.      PRINT "2 - WIND CHILL CALCULATION"
  65.      IF CLRT$ = "Y" THEN
  66.          COLOR 12
  67.      END IF
  68.      LOCATE 13, 20
  69.      PRINT "3 - TEMPERATURE HUMIDITY INDEX"
  70.      IF CLRT$ = "Y" THEN
  71.          COLOR 13
  72.      END IF
  73.      LOCATE 15, 20
  74.      PRINT "4 - HEAT INDEX CALCULATION"
  75.      IF CLRT$ = "Y" THEN
  76.          COLOR 14
  77.      END IF
  78.      LOCATE 17, 20
  79.      PRINT "5 - DEW POINT CALCULATION"
  80.      IF CLRT$ = "Y" THEN
  81.          COLOR 9
  82.      END IF
  83.      LOCATE 5, 5
  84.      INPUT "ENTER THE NUMBER OF THE WEATHER PROGRAM WHICH YOU WISH TO RUN  "; CHOICE
  85.      REM
  86.      REM     GET FORCASTING SUNROUTINE
  87.      REM
  88.      IF CHOICE = 1 THEN
  89.          GOSUB TARGET5
  90.      ELSE
  91.           GOTO TARGET6
  92.      END IF
  93.      GOTO TARGET7
  94.      REM
  95.      REM     GET WIND CHILL SUBROUTINE
  96.      REM
  97. TARGET6:
  98.      IF CHOICE = 2 THEN
  99.          GOSUB TARGET8
  100.      ELSE
  101.           GOTO TARGET9
  102.      END IF
  103.      GOTO TARGET7
  104.      REM
  105.      REM     GET TEMP-HUMIDITY SUBROUTINE
  106.      REM
  107. TARGET9:
  108.      IF CHOICE = 3 THEN
  109.          GOSUB TARGET10
  110.      ELSE
  111.           GOTO TARGET11
  112.      END IF
  113.      GOTO TARGET7
  114.      REM
  115.      REM     GET HEAT INDEX SUBROUTINE
  116.      REM
  117. TARGET11:
  118.      IF CHOICE = 4 THEN
  119.          GOSUB TARGET12
  120.      ELSE
  121.           GOTO TARGET13
  122.      END IF
  123.      GOTO TARGET7
  124.      REM
  125.      REM     GET DEW POINT SUBROUTINE
  126.      REM
  127. TARGET13:
  128.      IF CHOICE = 5 THEN
  129.          GOSUB TARGET14
  130.      ELSE
  131.           GOTO TARGET15
  132.      END IF
  133.      REM
  134.      REM     LOOP OR QUIT
  135.      REM
  136. TARGET7:
  137.      LOCATE 24, 14
  138.      INPUT "DO YOU WISH TO DO A DIFFERENT CALCULATION (Y/N)"; D$
  139.      REM
  140.      REM     LOOP
  141.      REM
  142.      IF D$ = "Y" OR D$ = "y" THEN
  143.          GOTO TARGET15
  144.      END IF
  145.      REM
  146.      REM     QUIT WITH EPILOG SCREEN AND RESET IF CLRT$="Y" THEN COLORS TO NORMAL
  147.      REM     ALSO PLACE CAPS AND NUMBERS LOCK KEYS BACK TO OFF STATUS
  148.      REM
  149.      IF CLRT$ = "Y" THEN
  150.          COLOR 12, 0, 0
  151.      END IF
  152.      CLS
  153.      LOCATE 9, 23
  154.      PRINT "I hope you enjoyed WEATHER and"
  155.      LOCATE 11, 21
  156.      PRINT "that your forecast was a good one."
  157.      LOCATE 15, 20
  158.      PRINT "Let us here from you on The MAILROOM"
  159.      LOCATE 17, 18
  160.      PRINT "Data (606)293-5119 - 9600 Baud Supported"
  161.      LOCATE 19, 37
  162.      PRINT "- Phil Baughn"
  163.      DEF SEG = 0
  164.      POKE 1047, 0
  165.      DEF SEG
  166.      IF CLRT$ = "Y" THEN
  167.          COLOR 7, 0, 0
  168.      END IF
  169.      LOCATE 24, 1
  170.      END
  171.      REM     ~~~~~~~~~~~~~~PROGRAM ENDS HERE~~~~~~~~~~~~~~
  172.      REM
  173.      REM     ~~~~~~~~SUBROUTINE MODULES BEGIN HERE~~~~~~~~
  174.      REM
  175.      REM     WELCOME SCREEN AND CREDITS SUBROUTINE
  176.      REM
  177. TARGET3:
  178.      CLS
  179.      WIDTH 80
  180.      IF CLRT$ = "Y" THEN
  181.          COLOR 11, 0
  182.      END IF
  183.      LOCATE 5, 5
  184.      PRINT CHR$(201)
  185.      LOCATE 5, 75
  186.      PRINT CHR$(187)
  187.      LOCATE 20, 5
  188.      PRINT CHR$(200)
  189.      LOCATE 20, 75
  190.      PRINT CHR$(188)
  191.      FOR N = 6 TO 19
  192.      LOCATE N, 5
  193.      PRINT CHR$(186)
  194.      LOCATE N, 75
  195.      PRINT CHR$(186)
  196.      NEXT N
  197.      FOR N = 6 TO 74
  198.      LOCATE 5, N
  199.      PRINT CHR$(205)
  200.      LOCATE 20, N
  201.      PRINT CHR$(205)
  202.      NEXT N
  203.      IF CLRT$ = "Y" THEN
  204.          COLOR 13, 0
  205.      END IF
  206.      LOCATE 7, 31
  207.      PRINT "WEATHER FORCASTING"
  208.      LOCATE 9, 28
  209.      PRINT "DEVELOPED FOR THE IBM-PC"
  210.      LOCATE 10, 39
  211.      PRINT "BY"
  212.      LOCATE 11, 35
  213.      PRINT "PHIL BAUGHN"
  214.      LOCATE 13, 14
  215.      PRINT "Special Thanks For Module Improvements To Sean Gayle,"
  216.      LOCATE 14, 11
  217.      PRINT "John Fleming, & Brad James - Meteorologist, WTVQ, Lexington"
  218.      LOCATE 16, 20
  219.      PRINT "Distributed Through The MAILROOM RBBS-PC"
  220.      LOCATE 17, 29
  221.      PRINT "In Lexington, Kentucky"
  222.      LOCATE 18, 22
  223.      PRINT "(606)293-5119   24 Hours - 9600 Baud"
  224.      LOCATE 19, 22
  225.      PRINT "Latest Revision [ 6.0 ]; August 1990"
  226.      LOCATE 22, 27
  227.      PRINT "Press any key when ready..."
  228. TARGET16:
  229.      IF INKEY$ = "" GOTO TARGET16
  230.      IF CLRT$ = "Y" THEN
  231.          COLOR 7, 0, 0
  232.      END IF
  233.      CLS
  234.      RETURN
  235.      REM
  236.      REM     MAIN WELCOME DOCUMENT SUBROUTINE
  237.      REM
  238. TARGET4:
  239.      IF CLRT$ = "Y" THEN
  240.          COLOR 14, 1, 1
  241.      END IF
  242.      CLS
  243.      PRINT "  "
  244.      PRINT "  "
  245.      PRINT "    This  program  will provide  you with a very good forcast providing"
  246.      PRINT "    you supply the correct  information  as to barometric  pressure and"
  247.      PRINT "    wind direction.  This method has been used  for ages  by  sailors &"
  248.      PRINT "    the tables  themselves can still be found in  almost  all  editions"
  249.      PRINT "    of The Farmers Almanac."
  250.      PRINT " "
  251.      PRINT "    The other four programs which are included at present;  Wind Chill,"
  252.      PRINT "    Dew Point, Temp/Humidity, & Heat Index; can be especially important"
  253.      PRINT "    when working outdoors.  Wind Chill tells you the true  FEEL  of the"
  254.      PRINT "    temperature  after the wind has it's effect.   It's not always safe"
  255.      PRINT "    to simply  look  at the outdoor thermometer!  Humidity also effects"
  256.      PRINT "    the temperature.   Higher humidity  levels  cause it to effect your"
  257.      PRINT "    body as if it were hotter than the thermometer states."
  258.      PRINT "  "
  259.      PRINT "    Enjoy the program,   please pass along any  improvements  which you"
  260.      PRINT "    may develop  or  additional  modules  which will fit well into  the"
  261.      PRINT "    menu.   Listing  the  first part of the program,  lines 1-20,  will"
  262.      PRINT "    provide you with more detailed contact information."
  263.      PRINT "  "
  264.      PRINT "  "
  265.      PRINT "    Press any key when ready..."
  266. TARGET17:
  267.      IF INKEY$ = "" GOTO TARGET17
  268.      IF CLRT$ = "Y" THEN
  269.          COLOR 7, 0, 0
  270.      END IF
  271.      CLS
  272.      RETURN
  273.      REM
  274.      REM     WIND-BAROMETER FORECASTING SUBROUTINE
  275.      REM
  276. TARGET5:
  277.      CLS
  278.      IF CLRT$ = "Y" THEN
  279.          COLOR 14
  280.      END IF
  281.      LOCATE 2, 25
  282.      PRINT "WEATHER FORECAST PROGRAM"
  283.      IF CLRT$ = "Y" THEN
  284.          COLOR 5
  285.      END IF
  286.      LOCATE 4, 32
  287.      PRINT DATE$
  288.      LOCATE 5, 33
  289.      PRINT TIME$
  290.      IF CLRT$ = "Y" THEN
  291.          COLOR 3, 0, 0
  292.      END IF
  293. TARGET18:
  294.      KEY OFF
  295.      LOCATE 17, 1
  296.      PRINT "             In inches, between 25.0 & 35.0.  Example:  29.95"
  297.      LOCATE 7, 12
  298.      INPUT "ENTER CURRENT BAROMETRIC PRESSURE                  "; CBP
  299.      IF CBP < 25 THEN
  300.          GOTO TARGET18
  301.      END IF
  302.      IF CBP > 35 THEN
  303.          GOTO TARGET18
  304.      END IF
  305.  
  306. BEGINING.OF.TRAP.1:
  307.     
  308.      LOCATE 17, 1
  309.      PRINT "                                                                            "
  310.      LOCATE 17, 1
  311.      PRINT "              Allowable entries are:  N NE E SE S SW W NW"
  312.      LOCATE 8, 12
  313.      INPUT "WIND DIRECTION IS CURRENTLY FROM THE               "; PWD$
  314.  
  315.      IF PWD$ = "N" THEN GOTO END.OF.TRAP.1
  316.      IF PWD$ = "NE" THEN GOTO END.OF.TRAP.1
  317.      IF PWD$ = "E" THEN GOTO END.OF.TRAP.1
  318.      IF PWD$ = "SE" THEN GOTO END.OF.TRAP.1
  319.      IF PWD$ = "S" THEN GOTO END.OF.TRAP.1
  320.      IF PWD$ = "SW" THEN GOTO END.OF.TRAP.1
  321.      IF PWD$ = "W" THEN GOTO END.OF.TRAP.1
  322.      IF PWD$ = "NW" THEN GOTO END.OF.TRAP.1
  323.     
  324.      BEEP
  325.      GOTO BEGINING.OF.TRAP.1
  326.     
  327. END.OF.TRAP.1:
  328.  
  329.      IF PWD$ = "SW" THEN
  330.          GOTO TARGET19
  331.      ELSE
  332.          GOTO TARGET20
  333.      END IF
  334. TARGET19:
  335.  
  336. BEGINING.OF.TRAP.2:
  337.  
  338.      LOCATE 17, 1
  339.      PRINT "                                                                            "
  340.      LOCATE 17, 1
  341.      PRINT "              Allowable entries are:  N NE E SE S SW W NW"
  342.      LOCATE 9, 12
  343.      INPUT "PREVIOUS WIND DIRECTION WAS FROM THE               "; PWD$
  344.  
  345.      IF PWD$ = "N" THEN GOTO END.OF.TRAP.2
  346.      IF PWD$ = "NE" THEN GOTO END.OF.TRAP.2
  347.      IF PWD$ = "E" THEN GOTO END.OF.TRAP.2
  348.      IF PWD$ = "SE" THEN GOTO END.OF.TRAP.2
  349.      IF PWD$ = "S" THEN GOTO END.OF.TRAP.2
  350.      IF PWD$ = "SW" THEN GOTO END.OF.TRAP.2
  351.      IF PWD$ = "W" THEN GOTO END.OF.TRAP.2
  352.      IF PWD$ = "NW" THEN GOTO END.OF.TRAP.2
  353.    
  354.      BEEP
  355.      GOTO BEGINING.OF.TRAP.2
  356.    
  357. END.OF.TRAP.2:
  358.  
  359.      GOTO TARGET21
  360. TARGET20:
  361.      IF PWD$ = "SE" THEN
  362.          GOTO TARGET22
  363.      ELSE
  364.           GOTO TARGET23
  365.      END IF
  366. TARGET22:
  367.  
  368. BEGINING.OF.TRAP.3:
  369.  
  370.      LOCATE 17, 1
  371.      PRINT "                                                                            "
  372.      LOCATE 17, 1
  373.      PRINT "              Allowable entries are:  N NE E SE S SW W NW"
  374.      LOCATE 9, 12
  375.      INPUT "PREVIOUS WIND DIRECTION WAS FROM THE               "; PWD$
  376.  
  377.      IF PWD$ = "N" THEN GOTO END.OF.TRAP.3
  378.      IF PWD$ = "NE" THEN GOTO END.OF.TRAP.3
  379.      IF PWD$ = "E" THEN GOTO END.OF.TRAP.3
  380.      IF PWD$ = "SE" THEN GOTO END.OF.TRAP.3
  381.      IF PWD$ = "S" THEN GOTO END.OF.TRAP.3
  382.      IF PWD$ = "SW" THEN GOTO END.OF.TRAP.3
  383.      IF PWD$ = "W" THEN GOTO END.OF.TRAP.3
  384.      IF PWD$ = "NW" THEN GOTO END.OF.TRAP.3
  385.   
  386.      BEEP
  387.      GOTO BEGINING.OF.TRAP.3
  388.   
  389. END.OF.TRAP.3:
  390.  
  391.  
  392.      GOTO TARGET24
  393. TARGET23:
  394.      IF PWD$ = "S" THEN
  395.          GOTO TARGET25
  396.      ELSE
  397.           GOTO TARGET26
  398.      END IF
  399. TARGET26:
  400.      IF PWD$ = "N" THEN
  401.          GOTO TARGET25
  402.      ELSE
  403.           GOTO TARGET27
  404.      END IF
  405. TARGET27:
  406.      IF PWD$ = "NW" THEN
  407.          GOTO TARGET25
  408.      ELSE
  409.           GOTO TARGET28
  410.      END IF
  411. TARGET28:
  412.      IF PWD$ = "NE" THEN
  413.          GOTO TARGET25
  414.      ELSE
  415.           GOTO TARGET29
  416.      END IF
  417. TARGET25:
  418.      LOCATE 17, 1
  419.      PRINT "                                                                            "
  420.      LOCATE 18, 23
  421.      IF CLRT$ = "Y" THEN
  422.          COLOR 9
  423.      END IF
  424.      PRINT "NO IMMEDIATE CHANGE IS FORECAST"
  425.      IF CLRT$ = "Y" THEN
  426.          COLOR 7, 0, 0
  427.      END IF
  428.      GOTO TARGET30
  429. TARGET21:
  430.      IF PWD$ = "S" THEN
  431.          GOTO TARGET31
  432.      ELSE
  433.           GOTO TARGET32
  434.      END IF
  435. TARGET32:
  436.      IF PWD$ = "NW" THEN
  437.          GOTO TARGET33
  438.      ELSE
  439.           GOTO TARGET34
  440.      END IF
  441. TARGET31:
  442.      PWD$ = "M"
  443.      GOTO TARGET35
  444. TARGET33:
  445.      PWD$ = "N"
  446.      GOTO TARGET35
  447. TARGET34:
  448.      PWD$ = "O"
  449.      GOTO TARGET35
  450. TARGET24:
  451.      IF PWD$ = "NE" THEN
  452.          GOTO TARGET36
  453.      ELSE
  454.           GOTO TARGET37
  455.      END IF
  456. TARGET37:
  457.      IF PWD$ = "S" THEN
  458.          GOTO TARGET38
  459.      ELSE
  460.           GOTO TARGET39
  461.      END IF
  462. TARGET36:
  463.      PWD$ = "P"
  464.      GOTO TARGET35
  465. TARGET38:
  466.      PWD$ = "Q"
  467.      GOTO TARGET35
  468. TARGET39:
  469.      PWD$ = "R"
  470.      GOTO TARGET35
  471. TARGET29:
  472.      IF PWD$ = "E" THEN
  473.          GOTO TARGET40
  474.      ELSE
  475.           GOTO TARGET41
  476.      END IF
  477. TARGET41:
  478.      IF PWD$ = "W" THEN
  479.          GOTO TARGET42
  480.      END IF
  481. TARGET40:
  482.      PWD$ = "S"
  483.      GOTO TARGET35
  484. TARGET42:
  485.      PWD$ = "T"
  486. TARGET35:
  487.      IF CLRT$ = "Y" THEN
  488.          COLOR 4
  489.      END IF
  490.      LOCATE 17, 1
  491.      PRINT "                                                                            "
  492.      LOCATE 13, 12
  493.      PRINT "WIND CONDITION CODE IS ", PWD$;
  494.      IF CLRT$ = "Y" THEN
  495.          COLOR 3, 0, 0
  496.      END IF
  497.      IF CBP > 30.01 THEN
  498.          GOTO TARGET43
  499.      ELSE
  500.           GOTO TARGET44
  501.      END IF
  502. TARGET44:
  503.      IF CBP < 29.81 THEN
  504.          GOTO TARGET45
  505.      ELSE
  506.           GOTO TARGET46
  507.      END IF
  508. TARGET46:
  509.  
  510. BEGINING.OF.TRAP.4:
  511.  
  512.      LOCATE 17, 1
  513.      PRINT "                                                                            "
  514.      LOCATE 10, 12
  515.      INPUT "IS PRESSURE RISING (R), FALLING (F), OR STEADY (S) "; BM$
  516.  
  517.      IF BM$ = "F" THEN GOTO END.OF.TRAP.4
  518.      IF BM$ = "R" THEN GOTO END.OF.TRAP.4
  519.      IF BM$ = "S" THEN GOTO END.OF.TRAP.4
  520.  
  521.      BEEP
  522.      GOTO BEGINING.OF.TRAP.4
  523.  
  524. END.OF.TRAP.4:
  525.  
  526.      IF BM$ = "F" THEN
  527.          GOTO TARGET47
  528.      ELSE
  529.           GOTO TARGET48
  530.      END IF
  531. TARGET47:
  532.  
  533. BEGINING.OF.TRAP.5:
  534.  
  535.      LOCATE 17, 1
  536.      PRINT "                                                                            "
  537.      LOCATE 11, 12
  538.      INPUT "IS IT FALLING RAPIDLY (R) OR SLOWLY (S)            "; BM$
  539.  
  540.      IF BM$ = "R" THEN GOTO END.OF.TRAP.5
  541.      IF BM$ = "S" THEN GOTO END.OF.TRAP.5
  542.  
  543.      BEEP
  544.      GOTO BEGINING.OF.TRAP.5
  545.  
  546. END.OF.TRAP.5:
  547.  
  548.      IF BM$ = "R" THEN
  549.          GOTO TARGET49
  550.      ELSE
  551.           GOTO TARGET50
  552.      END IF
  553. TARGET49:
  554.      BM$ = "C6"
  555.      GOTO TARGET51
  556. TARGET50:
  557.      BM$ = "C5"
  558.      GOTO TARGET51
  559. TARGET48:
  560.      IF BM$ = "R" THEN
  561.          GOTO TARGET52
  562.      ELSE
  563.           GOTO TARGET53
  564.      END IF
  565. TARGET52:
  566.      BM$ = "C7"
  567.      GOTO TARGET51
  568. TARGET53:
  569.      BM$ = "C0"
  570.      GOTO TARGET51
  571. TARGET43:
  572.  
  573. BEGINING.OF.TRAP.6:
  574.  
  575.      LOCATE 17, 1
  576.      PRINT "                                                                            "
  577.      LOCATE 10, 12
  578.      INPUT "IS PRESSURE RISING (R), FALLING (F), OR STEADY (S) "; BM$
  579.  
  580.      IF BM$ = "F" THEN GOTO END.OF.TRAP.6
  581.      IF BM$ = "R" THEN GOTO END.OF.TRAP.6
  582.      IF BM$ = "S" THEN GOTO END.OF.TRAP.6
  583.  
  584.      BEEP
  585.      GOTO BEGINING.OF.TRAP.6
  586.  
  587. END.OF.TRAP.6:
  588.  
  589.  
  590.      IF BM$ = "F" THEN
  591.          GOTO TARGET54
  592.      ELSE
  593.           GOTO TARGET55
  594.      END IF
  595. TARGET54:
  596.  
  597. BEGINING.OF.TRAP.7:
  598.  
  599.      LOCATE 17, 1
  600.      PRINT "                                                                            "
  601.      LOCATE 11, 12
  602.      INPUT "IS IT FALLING RAPIDLY (R) OR SLOWLY (S)            "; BM$
  603.  
  604.      IF BM$ = "R" THEN GOTO END.OF.TRAP.7
  605.      IF BM$ = "S" THEN GOTO END.OF.TRAP.7
  606.  
  607.      BEEP
  608.      GOTO BEGINING.OF.TRAP.7
  609.  
  610. END.OF.TRAP.7:
  611.  
  612.     
  613.      IF BM$ = "R" THEN
  614.          GOTO TARGET56
  615.      ELSE
  616.           GOTO TARGET57
  617.      END IF
  618. TARGET56:
  619.      BM$ = "C4"
  620.      GOTO TARGET51
  621. TARGET57:
  622.      BM$ = "C3"
  623.      GOTO TARGET51
  624. TARGET55:
  625.      IF BM$ = "S" THEN
  626.          GOTO TARGET58
  627.      ELSE
  628.           GOTO TARGET59
  629.      END IF
  630. TARGET58:
  631.      BM$ = "C1"
  632.      GOTO TARGET51
  633. TARGET59:
  634.      BM$ = "C2"
  635.      GOTO TARGET51
  636. TARGET45:
  637.  
  638. BEGINING.OF.TRAP.8:
  639.  
  640.      LOCATE 17, 1
  641.      PRINT "                                                                            "
  642.      LOCATE 10, 12
  643.      INPUT "IS THE PRESSURE RISING (R) OR FALLING (F)          "; BM$
  644.  
  645.      IF BM$ = "R" THEN GOTO END.OF.TRAP.8
  646.      IF BM$ = "F" THEN GOTO END.OF.TRAP.8
  647.  
  648.      BEEP
  649.      GOTO BEGINING.OF.TRAP.8
  650.  
  651. END.OF.TRAP.8:
  652.  
  653.     
  654.      IF BM$ = "R" THEN
  655.          GOTO TARGET60
  656.      ELSE
  657.           GOTO TARGET61
  658.      END IF
  659. TARGET60:
  660.      BM$ = "C8"
  661.      GOTO TARGET51
  662. TARGET61:
  663.      BM$ = "C9"
  664.      GOTO TARGET51
  665. TARGET51:
  666.      IF CLRT$ = "Y" THEN
  667.          COLOR 4
  668.      END IF
  669.     
  670.      LOCATE 17, 1
  671.      PRINT "                                                                            "
  672.  
  673.      LOCATE 14, 12
  674.      PRINT "BAROMETRIC CODE IS ", BM$
  675.      IF CLRT$ = "Y" THEN
  676.          COLOR 3, 0, 0
  677.      END IF
  678.      IF PWD$ = "O" THEN
  679.          GOTO TARGET25
  680.      END IF
  681.      IF PWD$ = "R" THEN
  682.          GOTO TARGET25
  683.      END IF
  684.     
  685.      LOCATE 17, 1
  686.      PRINT "                                                                            "
  687.  
  688.      LOCATE 17, 18
  689.      PRINT "PLEASE WAIT - FORECAST BEING COMPUTED"
  690.      FOR X = 1 TO 3200
  691.      NEXT X
  692.      LOCATE 17, 18
  693.      PRINT "                                                 "
  694.      IF PWD$ = "T" AND BM$ = "C8" THEN
  695.          GOTO TARGET62
  696.      END IF
  697.      IF PWD$ = "M" AND BM$ = "C7" THEN
  698.          GOTO TARGET63
  699.      END IF
  700.      IF PWD$ = "Q" AND BM$ = "C3" THEN
  701.          GOTO TARGET64
  702.      END IF
  703.      IF PWD$ = "Q" AND BM$ = "C4" THEN
  704.          GOTO TARGET65
  705.      END IF
  706.      IF PWD$ = "Q" AND BM$ = "C9" THEN
  707.          GOTO TARGET66
  708.      END IF
  709.      IF PWD$ = "P" AND BM$ = "C3" THEN
  710.          GOTO TARGET67
  711.      END IF
  712.      IF PWD$ = "P" AND BM$ = "C4" THEN
  713.          GOTO TARGET68
  714.      END IF
  715.      IF PWD$ = "P" AND BM$ = "C5" THEN
  716.          GOTO TARGET69
  717.      END IF
  718.      IF PWD$ = "P" AND BM$ = "C6" THEN
  719.          GOTO TARGET70
  720.      END IF
  721.      IF PWD$ = "P" AND BM$ = "C9" THEN
  722.          GOTO TARGET66
  723.      END IF
  724.      IF PWD$ = "S" AND BM$ = "C3" THEN
  725.          GOTO TARGET71
  726.      END IF
  727.      IF PWD$ = "S" AND BM$ = "C4" THEN
  728.          GOTO TARGET72
  729.      END IF
  730.      IF PWD$ = "S" AND BM$ = "C9" THEN
  731.          GOTO TARGET73
  732.      END IF
  733.      IF PWD$ = "N" AND BM$ = "C1" THEN
  734.          GOTO TARGET74
  735.      END IF
  736.      IF PWD$ = "N" AND BM$ = "C2" THEN
  737.          GOTO TARGET75
  738.      END IF
  739.      IF PWD$ = "N" AND BM$ = "C3" THEN
  740.          GOTO TARGET76
  741.      END IF
  742.      IF PWD$ = "N" AND BM$ = "C7" THEN
  743.          GOTO TARGET63
  744.      END IF
  745.      LOCATE 17, 20
  746.      IF CLRT$ = "Y" THEN
  747.          COLOR 13
  748.      END IF
  749.      PRINT "WIND INCREASING; RAIN WITHIN 12 HOURS"
  750.      GOTO TARGET30
  751.      GOTO TARGET25
  752. TARGET62:
  753.      LOCATE 17, 30
  754.      IF CLRT$ = "Y" THEN
  755.          COLOR 13
  756.      END IF
  757.      PRINT "CLEARING AND COLDER"
  758.      GOTO TARGET30
  759. TARGET63:
  760.      LOCATE 17, 20
  761.      IF CLRT$ = "Y" THEN
  762.          COLOR 13
  763.      END IF
  764.      PRINT "CLEARING WITHIN A FEW HOURS/"
  765.      LOCATE 19, 20
  766.      PRINT "FAIR FOR SEVERAL DAYS"
  767.      GOTO TARGET30
  768. TARGET64:
  769.      LOCATE 17, 30
  770.      IF CLRT$ = "Y" THEN
  771.          COLOR 13
  772.      END IF
  773.      PRINT "RAIN WITHIN 24 HOURS"
  774.      GOTO TARGET30
  775. TARGET65:
  776.      LOCATE 17, 20
  777.      IF CLRT$ = "Y" THEN
  778.          COLOR 13
  779.      END IF
  780.      PRINT "WIND INCREASING; RAIN WITHIN 24 HOURS"
  781.      GOTO TARGET30
  782. TARGET66:
  783.      LOCATE 17, 15
  784.      IF CLRT$ = "Y" THEN
  785.          COLOR 15
  786.      END IF
  787.      PRINT "SEVERE STORM IMMIMENT, FOLLOWED WITHIN 24 HOURS"
  788.      LOCATE 19, 15
  789.      PRINT "BY CLEARING. IN WINTER, COLDER TEMPERATURES."
  790.      GOTO TARGET30
  791. TARGET67:
  792.      LOCATE 17, 30
  793.      IF CLRT$ = "Y" THEN
  794.          COLOR 13
  795.      END IF
  796.      PRINT "RAIN WITHIN 12 TO 18 HOURS"
  797.      GOTO TARGET30
  798. TARGET68:
  799.      LOCATE 17, 20
  800.      IF CLRT$ = "Y" THEN
  801.          COLOR 13
  802.      END IF
  803. TARGET69:
  804.      LOCATE 17, 20
  805.      IF CLRT$ = "Y" THEN
  806.          COLOR 13
  807.      END IF
  808.      PRINT "RAIN WILL CONTINUE FOR 1 TO 2 DAYS"
  809.      GOTO TARGET30
  810. TARGET70:
  811.      LOCATE 17, 15
  812.      IF CLRT$ = "Y" THEN
  813.          COLOR 13
  814.      END IF
  815.      PRINT "RAIN, WITH HIGH WIND, FOLLOWED WITHIN 36 HOURS BY"
  816.      LOCATE 19, 15
  817.      PRINT "CLEARING. IN WINTER - COLDER TEMPERATURES."
  818.      GOTO TARGET30
  819. TARGET71:
  820.      LOCATE 17, 15
  821.      IF CLRT$ = "Y" THEN
  822.          COLOR 13
  823.      END IF
  824.      PRINT "SUMMER - LIGHT WINDS; RAIN MAY NOT FALL FOR"
  825.      LOCATE 19, 15
  826.      PRINT "SEVERAL DAYS.  WINTER - RAIN WITHIN 24 HOURS"
  827.      GOTO TARGET30
  828. TARGET72:
  829.      LOCATE 17, 15
  830.      IF CLRT$ = "Y" THEN
  831.          COLOR 13
  832.      END IF
  833.      PRINT "SUMMER RAIN PROBABLE 12/24 HOURS.  WINTER"
  834.      LOCATE 19, 15
  835.      PRINT "RAIN OR SNOW, INCREASING WIND; BAD WEATHER"
  836.      LOCATE 21, 15
  837.      PRINT "OFTEN SETS IN WHEN BAROMETER BEGINS TO FALL AND"
  838.      LOCATE 23, 15
  839.      PRINT "WINDS SET IN FROM THE NORTHEAST."
  840.      GOTO TARGET30
  841. TARGET73:
  842.      LOCATE 17, 15
  843.      IF CLRT$ = "Y" THEN
  844.          COLOR 15
  845.      END IF
  846.      PRINT "SEVERE NORTHEAST GALE AND HEAVY PRECIPITATION,"
  847.      LOCATE 19, 15
  848.      PRINT "IN WINTER - HEAVY SNOW FOLLOWED BY A COLD WAVE"
  849.      GOTO TARGET30
  850. TARGET74:
  851.      LOCATE 17, 20
  852.      IF CLRT$ = "Y" THEN
  853.          COLOR 13
  854.      END IF
  855.      PRINT "CONTINUED FAIR WEATHER WITH"
  856.      LOCATE 19, 20
  857.      PRINT "NO DECIDED TEMPERATURE CHANGE"
  858.      GOTO TARGET30
  859. TARGET75:
  860.      LOCATE 17, 20
  861.      IF CLRT$ = "Y" THEN
  862.          COLOR 13
  863.      END IF
  864.      PRINT "FAIR, FOLLOWED WITHIN 2 DAYS BY RAIN"
  865.      GOTO TARGET30
  866. TARGET76:
  867.      LOCATE 17, 15
  868.      IF CLRT$ = "Y" THEN
  869.          COLOR 13
  870.      END IF
  871.      PRINT "FAIR FOR 2 DAYS WITH SLOWLY RISING TEMPERATURES"
  872. TARGET30:
  873.      IF CLRT$ = "Y" THEN
  874.          COLOR 7, 0, 0
  875.      END IF
  876.      LOCATE 24, 17
  877.      INPUT "DO YOU WISH TO RUN ANOTHER FORECAST (Y/N)"; L$
  878.      IF L$ = "Y" OR L$ = "y" THEN
  879.          GOTO TARGET5
  880.      END IF
  881.      RETURN
  882.      REM
  883.      REM     WIND CHILL SUBROUTINE
  884.      REM
  885. TARGET8:
  886.      CLS
  887.      IF CLRT$ = "Y" THEN
  888.          COLOR 11
  889.      END IF
  890.      LOCATE 2, 27
  891.      PRINT "WIND CHILL CALCULATION"
  892.      IF CLRT$ = "Y" THEN
  893.          COLOR 5
  894.      END IF
  895.      LOCATE 4, 34
  896.      PRINT DATE$
  897.      LOCATE 5, 35
  898.      PRINT TIME$
  899.      IF CLRT$ = "Y" THEN
  900.          COLOR 3, 0, 0
  901.      END IF
  902.      KEY OFF
  903.      LOCATE 7, 12
  904.      INPUT "ENTER TEMPERATURE IN FAHRENHEIT                    "; T
  905.      LOCATE 8, 12
  906.      INPUT "ENTER WIND SPEED IN MILES PER HOUR                 "; V
  907.      IF V <= 4 THEN V = 4
  908.      T1 = T
  909.      V = (V * 1609.35) / (3600)
  910.      TC = 33 - ((T - 32) * (5 / 9))
  911.      H = (10.45 + (SQR(V) * 10) - V) * TC
  912.      X = H - 506.784
  913.      IF X < 0 THEN
  914.          X1 = T1
  915.          GOTO TARGET77
  916.      END IF
  917.      X1 = 50 - (X / 12.3)
  918.      X1 = INT(((X1 * 10) + 5) / 10)
  919.      IF CLRT$ = "Y" THEN
  920.          COLOR 3
  921.      END IF
  922.      LOCATE 11, 19
  923.      PRINT "PLEASE WAIT - WIND CHILL BEING COMPUTED"
  924.      FOR ZZ = 1 TO 1600
  925.      NEXT ZZ
  926.      IF CLRT$ = "Y" THEN
  927.          COLOR 4
  928.      END IF
  929.      LOCATE 13, 17
  930.      PRINT "T1=T:V=(V*1069.35)/3600:TC=33-((T-32)*(5/9))"
  931.      FOR Z = 1 TO 800
  932.      NEXT Z
  933.      LOCATE 14, 20
  934.      PRINT "H=(10.45+(SQR(V)*10)-V)*TC:X=H-506.784"
  935.      FOR ZXC = 1 TO 800
  936.      NEXT ZXC
  937.      LOCATE 15, 21
  938.      PRINT "X1=50-(X/12.3):X1=INT(((X1*10)+5)/10)"
  939.      FOR ZX = 1 TO 1600
  940.      NEXT ZX
  941. TARGET77:
  942.      IF CLRT$ = "Y" THEN
  943.          COLOR 13
  944.      END IF
  945.      LOCATE 19, 15
  946.      PRINT "WIND CHILL TEMPERATURE = "; X1; "DEGREES FAHRENHEIT"
  947.      IF CLRT$ = "Y" THEN
  948.          COLOR 7, 0, 0
  949.      END IF
  950.      LOCATE 24, 19
  951.      INPUT "RUN ANOTHER WIND CHILL FACTOR (Y/N)"; L$
  952.      IF L$ = "Y" OR L$ = "y" THEN
  953.          GOTO TARGET8
  954.      END IF
  955.      RETURN
  956.      REM
  957.      REM     HEAT INDEX SUBROUTINE
  958.      REM
  959. TARGET12:
  960.      CLS
  961.      IF CLRT$ = "Y" THEN
  962.          COLOR 11
  963.      END IF
  964.      LOCATE 2, 27
  965.      PRINT "HEAT INDEX CALCULATION"
  966.      IF CLRT$ = "Y" THEN
  967.          COLOR 5
  968.      END IF
  969.      LOCATE 4, 34
  970.      PRINT DATE$
  971.      LOCATE 5, 35
  972.      PRINT TIME$
  973.      IF CLRT$ = "Y" THEN
  974.          COLOR 3, 0, 0
  975.      END IF
  976.      KEY OFF
  977.      LOCATE 7, 11
  978.      INPUT "ENTER THE CURRENT TEMPERATURE IN DEGREES FAHRENHEIT "; TA
  979.      U$ = "F"
  980.      LOCATE 8, 11
  981.      INPUT "ENTER THE RELATIVE HUMIDITY  (`50'= 50% )           "; RH
  982.      IF CLRT$ = "Y" THEN
  983.          COLOR 9
  984.      END IF
  985.      LOCATE 11, 18
  986.      PRINT "PLEASE WAIT - HEAT INDEX BEING COMPUTED"
  987.      FOR ZZ = 1 TO 1600
  988.      NEXT ZZ
  989.      IF CLRT$ = "Y" THEN
  990.          COLOR 4
  991.      END IF
  992.      LOCATE 13, 23
  993.      PRINT "Heat Index Is Also Refered To"
  994.      FOR Z = 1 TO 800
  995.      NEXT Z
  996.      LOCATE 14, 17
  997.      PRINT "As The Apparent Temperature.  See The H/I"
  998.      FOR ZXC = 1 TO 800
  999.      NEXT ZXC
  1000.      LOCATE 15, 18
  1001.      PRINT "Explanation & Danger Table For Details."
  1002.      FOR ZX = 1 TO 1600
  1003.      NEXT ZX
  1004.      GOSUB TARGET78
  1005.      IF CLRT$ = "Y" THEN
  1006.          COLOR 11
  1007.      END IF
  1008.      LOCATE 19, 19
  1009.      PRINT "APPARENT TEMPERATURE = "; APPTEMP; " "; U$
  1010.      IF DF < 0 THEN
  1011.          GOTO TARGET79
  1012.      END IF
  1013.      GOTO TARGET80
  1014. TARGET79:
  1015.      LOCATE 20, 19
  1016.      PRINT "SEVERE SULTRINESS..."
  1017. TARGET80:
  1018.      IF CLRT$ = "Y" THEN
  1019.          COLOR 7, 0, 0
  1020.      END IF
  1021.      LOCATE 23, 19
  1022.      INPUT "RUN ANOTHER HEAT INDEX FACTOR (Y/N)"; L$
  1023.      IF L$ = "Y" OR L$ = "y" THEN
  1024.          GOTO TARGET12
  1025.      END IF
  1026.      LOCATE 24, 16
  1027.      INPUT "View H/I  Explanation & Danger Table? (Y/N)"; CT$
  1028.      IF CT$ = "N" OR CT$ = "n" THEN
  1029.          GOTO TARGET81
  1030.      END IF
  1031.      IF CLRT$ = "Y" THEN
  1032.          COLOR 14, 1, 1
  1033.      END IF
  1034.      CLS
  1035.      PRINT "  "
  1036.      PRINT "       Your Present Calculated Heat Index Value Is"; APPTEMP; " "; U$; "."
  1037.      PRINT "  "
  1038.      PRINT "       When the  Heat Index reaches 130 degrees or higher, Heat"
  1039.      PRINT "       Strokes or  Sunstrokes are  HIGHLY likely with continued"
  1040.      PRINT "       exposure!   When the  Heat Index  ranges from 105 to 130"
  1041.      PRINT "       degrees,  sunstroke, heat exhaustion and heat cramps are"
  1042.      PRINT "       likely with  prolonged exposure and/or physical activity."
  1043.      PRINT "       Heat Index  ranges between 90 and 105 degrees indicate a"
  1044.      PRINT "       possibility  of  heat  cramps and  heat  exhaustion with"
  1045.      PRINT "       prolonged  exposure and/or physical activity."
  1046.      PRINT "  "
  1047.      PRINT "       Program calculations assume an adult, wearing long pants"
  1048.      PRINT "       and a  short sleeved shirt,  walking in shade at 3.1 MPH"
  1049.      PRINT "       with standard sea level air pressure,  a wind  speed  of"
  1050.      PRINT "       5.6 MPH, and a vapor pressure of 1.6kPa.  In effect, the"
  1051.      PRINT "       calculations  approximate the temperature  that  current"
  1052.      PRINT "       conditions feel like to the average person."
  1053.      PRINT "  "
  1054.      IF CLRT$ = "Y" THEN
  1055.          COLOR 7, 0, 0
  1056.      END IF
  1057. TARGET81:
  1058.      RETURN
  1059. TARGET78:
  1060.      TC = TA
  1061.      IF U$ = "F" OR U$ = "f" THEN
  1062.          TC = (TA - 32) * 5 / 9
  1063.      END IF
  1064.      ES = 6.11 * 10 ^ ((7.567 * TC) / (239.7 + TC))
  1065.      E = .01 * RH * ES
  1066.      GOTO TARGET82
  1067. TARGET84:
  1068.      IF DF < 0 THEN
  1069.          GOTO TARGET83
  1070.      END IF
  1071. TARGET86:
  1072.      IF U$ = "F" OR U$ = "f" THEN
  1073.          APPTEMP = 32 + 1.8 * APPTEMP
  1074.      END IF
  1075.      RETURN
  1076. TARGET82:
  1077.      TB = 37
  1078.      PB = 5.65
  1079.      Q = 180
  1080.      RS = .0387
  1081.      ZS = .0521
  1082.      EHC = 17.4
  1083.      PHI2 = .84
  1084.      R = .124
  1085.      CHC = 11.6
  1086.      PINF = .1 * E
  1087.      HER = 4.18 + .036 * TC
  1088.      ERA = 1 / (EHC + HER)
  1089.      QV = Q * (.143 - .00112 * TC - .0168 * PINF)
  1090.      EZA = .060606 / EHC
  1091.      HR = 3.35 + .049 * TC
  1092.      ARA = 1 / (CHC + HR)
  1093.      AZA = .060606 / CHC
  1094.      Q2U = ((TB - TC) + (PB - PINF) * ERA / (ZS + EZA)) / (RS + ERA)
  1095.      QJ = (Q - QV - (1 - PHI2) * Q2U) / PHI2
  1096.      K = (RS + ARA) + (ZS + AZA) / R - ((TB - TC) + (PB - PINF) / R) / QJ
  1097.      L = (RS + ARA) * (ZS + AZA)
  1098.      L = (L - ((TB - TC) * (ZS + AZA) + (PB - PINF) * ARA) / QJ) / R
  1099.      F = K * K - 4 * L
  1100.      IF F < 0 THEN
  1101.          DF = -1
  1102.      END IF
  1103.      IF F < 0 THEN
  1104.          GOTO TARGET84
  1105.      END IF
  1106.      RF = .5 * (-K + SQR(F))
  1107.      DF = 60 * RF
  1108.      IF DF < 0 THEN
  1109.          GOTO TARGET84
  1110.      END IF
  1111.      W1 = .2016
  1112.      W2 = (1 - PHI2) / (RS + ERA)
  1113.      W3 = PHI2 / (RS + RF + ARA)
  1114.      W4 = 159.0984
  1115.      W5 = 37
  1116.      W6 = 4.05 * ERA / (ZS + EZA)
  1117.      W7 = 4.05 * (RF + ARA) / (ZS + R * RF + AZA)
  1118.      APPTEMP = (-W4 + W2 * (W5 + W6) + W3 * (W5 + W7)) / (W1 + W2 + W3)
  1119.      GOTO TARGET84
  1120. TARGET83:
  1121.      HC = 12.3
  1122.      HR = 4.1 + .028 * TC
  1123.      RA = 1 / (HC + HR)
  1124.      ZA = .060606 / HC
  1125.      QU = Q - QV
  1126.      FOR IT = 1 TO 10
  1127.      ZS = ((PB - PINF) * RA) / (QU * (RS + RA) - (TB - TC)) - ZA
  1128.      IF ZS < 0 THEN
  1129.          ZS = 0
  1130.      END IF
  1131.      R3 = (ZS / 600000!) ^ .2
  1132.      C = ABS(RS - R3)
  1133.      IF C <= .0001 THEN
  1134.          GOTO TARGET85
  1135.      END IF
  1136.      RS = .5 * (RS + R3)
  1137.      NEXT IT
  1138. TARGET85:
  1139.      N1 = 159.0984
  1140.      N2 = 37
  1141.      N3 = 4.05 * RA / (ZS + ZA)
  1142.      N4 = (RS + RA)
  1143.      N5 = .2016
  1144.      APPTEMP = (-N1 + (N2 + N3) / N4) / (N5 + 1 / N4)
  1145.      GOTO TARGET86
  1146.      REM
  1147.      REM     TEMP-HUMIDITY INDEX SUBROUTINE
  1148.      REM
  1149. TARGET10:
  1150.      CLS
  1151.      IF CLRT$ = "Y" THEN
  1152.          COLOR 12
  1153.      END IF
  1154.      LOCATE 2, 26
  1155.      PRINT "TEMPERATURE HUMIDITY INDEX"
  1156.      IF CLRT$ = "Y" THEN
  1157.          COLOR 5
  1158.      END IF
  1159.      LOCATE 4, 34
  1160.      PRINT DATE$
  1161.      LOCATE 5, 35
  1162.      PRINT TIME$
  1163.      IF CLRT$ = "Y" THEN
  1164.          COLOR 3, 0, 0
  1165.      END IF
  1166.      KEY OFF
  1167.      LOCATE 7, 24
  1168.      PRINT "THE TEMPERATURE HUMIDITY INDEX"
  1169.      LOCATE 8, 21
  1170.      PRINT "DETERMINES THE EFFECTIVE TEMPERATURE"
  1171.      LOCATE 11, 12
  1172.      INPUT "ENTER THE TEMPERATURE IN FAHRENHEIT                 "; T
  1173.      LOCATE 12, 12
  1174.      INPUT "ENTER THE RELATIVE HUMIDITY  (`50'= 50% )           "; H
  1175.      LOCATE 15, 15
  1176.      PRINT "PLEASE WAIT - EFFECTIVE TEMPERATURE BEING COMPUTED"
  1177.      LOCATE 18, 30
  1178.      FOR C = 1 TO 16
  1179.      IF CLRT$ = "Y" THEN
  1180.          COLOR (C)
  1181.          PRINT "!!!!!!!!!!!!!!!!!!!"
  1182.      END IF
  1183.      LOCATE 18, 30
  1184.      C = C + 1
  1185.      FOR Z = 1 TO 400
  1186.      NEXT Z
  1187.      NEXT C
  1188.      IF CLRT$ = "Y" THEN
  1189.          COLOR 3, 0, 0
  1190.      END IF
  1191.      LOCATE 18, 25
  1192.      PRINT "                                   "
  1193.      IF H > 94 THEN
  1194.          A = ((.195 * T) - 15)
  1195.      ELSE
  1196.           IF H > 89 AND H < 95 THEN
  1197.              A = ((.18 * T) - 15)
  1198.          END IF
  1199.      END IF
  1200.      IF H > 79 AND H < 90 THEN
  1201.          A = ((.1667 * T) - 15)
  1202.      ELSE
  1203.           IF H > 69 AND H < 80 THEN
  1204.              A = ((.145 * T) - 15)
  1205.          END IF
  1206.      END IF
  1207.      IF H > 59 AND H < 70 THEN
  1208.          A = ((.1233 * T) - 15)
  1209.      ELSE
  1210.           IF H < 60 THEN
  1211.              A = ((.085 * T) - 15)
  1212.          END IF
  1213.      END IF
  1214.      TH = (((.8 * T) + 15) + A)
  1215.      IF CLRT$ = "Y" THEN
  1216.          COLOR 13
  1217.      END IF
  1218.      LOCATE 20, 10
  1219.      PRINT "THE TEMPERATURE HUMIDITY INDEX =  "; TH; "DEGREES FAHRENHEIT"
  1220.      IF CLRT$ = "Y" THEN
  1221.          COLOR 7, 0, 0
  1222.      END IF
  1223.      LOCATE 23, 17
  1224.      INPUT "ANOTHER TEMPERATURE HUMIDITY INDEX (Y/N)"; L$
  1225.      IF L$ = "Y" OR L$ = "y" THEN
  1226.          GOTO TARGET10
  1227.      END IF
  1228.      LOCATE 24, 16
  1229.      INPUT "View THI Explanation & Comfort Table? (Y/N)"; CT$
  1230.      IF CT$ = "N" OR CT$ = "n" THEN
  1231.          GOTO TARGET87
  1232.      END IF
  1233.      GOTO TARGET88
  1234. TARGET87:
  1235.      RETURN
  1236. TARGET88:
  1237.      IF CLRT$ = "Y" THEN
  1238.          COLOR 14, 1, 1
  1239.      END IF
  1240.      CLS
  1241.      PRINT "  "
  1242.      PRINT "    Your Temperature-Humidity Index reading was "; TH; "."
  1243.      PRINT "  "
  1244.      PRINT "    Readings in excess of  70  represent the point  where a few people"
  1245.      PRINT "    begin  to  feel  uncomfortable.   Over 75, about 1/2 of all people"
  1246.      PRINT "    will feel uncomfortable. Nearly all people will feel uncomfortable"
  1247.      PRINT "    with  readings  over  79  with rapidly  decreasing work efficiency"
  1248.      PRINT "    begining  with  levels  in excess of  84;  and EXTREME DANGER with"
  1249.      PRINT "    possibility of heat  exhaustion  and heat stroke begin with levels"
  1250.      PRINT "    of 92 and higher."
  1251.      PRINT "  "
  1252.      PRINT "    The THI number, used to express the  combined temperature-humidity"
  1253.      PRINT "    effect provides a fairly good index of equivalent heat stress.  In"
  1254.      PRINT "    engineering, this combined index is refered to as `effective temp-"
  1255.      PRINT "    erature'. The weather bureau has also been known to refer to it as"
  1256.      PRINT "    the Discomfort Index.  It is NOT the same as the `Heat Index' even"
  1257.      PRINT "    though they both help to compute `Appearant' Temperatures."
  1258.      PRINT "  "
  1259.      PRINT "  "
  1260.      IF CLRT$ = "Y" THEN
  1261.          COLOR 7, 0, 0
  1262.      END IF
  1263.      RETURN
  1264. TARGET14:
  1265.      REM
  1266.      REM     DEW POINT SUBROUTINE
  1267.      REM
  1268. TARGET89:
  1269.      CLS
  1270.      IF CLRT$ = "Y" THEN
  1271.          COLOR 10
  1272.      END IF
  1273.      LOCATE 2, 28
  1274.      PRINT "DEW POINT CALCULATION"
  1275.      IF CLRT$ = "Y" THEN
  1276.          COLOR 5
  1277.      END IF
  1278.      LOCATE 4, 34
  1279.      PRINT DATE$
  1280.      LOCATE 5, 35
  1281.      PRINT TIME$
  1282.      IF CLRT$ = "Y" THEN
  1283.          COLOR 3, 0, 0
  1284.      END IF
  1285.      KEY OFF
  1286.      LOCATE 7, 12
  1287.      INPUT "ENTER TEMPERATURE IN FAHRENHEIT                    "; T
  1288.      LOCATE 8, 12
  1289.      INPUT "ENTER THE RELATIVE HUMIDITY (`50' = 50%)           "; DPRH
  1290.      T = (T - 32) * 5 / 9
  1291.      X = 1 - (.01 * DPRH)
  1292.      TD = T - (14.55 + .114 * T) * X - ((2.5 + .007 * T) * X) ^ 3 - (15.9 + .117 * T) * X ^ 14
  1293.      TD = (TD * 9 / 5) + 32
  1294.      IF CLRT$ = "Y" THEN
  1295.          COLOR 3
  1296.      END IF
  1297.      LOCATE 11, 19
  1298.      PRINT "PLEASE WAIT - DEW POINT BEING COMPUTED"
  1299.      FOR ZZ = 1 TO 1600
  1300.      NEXT ZZ
  1301.      IF CLRT$ = "Y" THEN
  1302.          COLOR 4
  1303.      END IF
  1304.      LOCATE 13, 23
  1305.      PRINT "TF=(T-32)*5/9:X=1-(.01*DPRH)"
  1306.      FOR Z = 1 TO 800
  1307.      NEXT Z
  1308.      LOCATE 14, 9
  1309.      PRINT "TD=T-(14.55+.114*T)*X-((2.5+.007*T)*X)^3-(15.9+.117*T)*X^14"
  1310.      FOR ZXC = 1 TO 800
  1311.      NEXT ZXC
  1312.      LOCATE 15, 30
  1313.      PRINT "TD=(TD*9/5)+32"
  1314.      FOR ZX = 1 TO 1600
  1315.      NEXT ZX
  1316.      IF CLRT$ = "Y" THEN
  1317.          COLOR 13
  1318.      END IF
  1319.      LOCATE 19, 21
  1320.      PRINT "DEW POINT CALCULATION = "; TD
  1321.      IF CLRT$ = "Y" THEN
  1322.          COLOR 7, 0, 0
  1323.      END IF
  1324.      LOCATE 24, 20
  1325.      INPUT "CALCULATE ANOTHER DEW POINT (Y/N)"; L$
  1326.      IF L$ = "Y" OR L$ = "y" THEN
  1327.          GOTO TARGET89
  1328.      END IF
  1329.      RETURN
  1330.      REM     ~~~~~~~~~~LAST LINE OF PROGRAM~~~~~~~~~
  1331. :
  1332.      
  1333.  
  1334.