Modular system for evaluating sailboat performance
I United States Patent 1 [111 3,875,388  
 Luten et al. Apr. 1, 1975 MODULAR SYSTEM FOR EVALUATING 3.764.784 10/1973 Haner et al. 235/1503 SAIL PERFORMANCE 3.780.272 l2/l973 Rohner 235/1502 3.800.128 3/1974 Kurk 235/1502 I75] Inventors: Robert H. Luten, Los Gatos; Lucian Taylor Los Altos both of Primary Examiner-Felix D. Gruber [73] Assignee: Velcoh Filters, Inc., San Jose, Calif. AlwmeL 8 Firm-David H Wilson [22] Filed: Nov. 5, 1973 [57] ABSTRACT l2 ll Appl&#39; 412593 A system for evaluating sailboat performance wherein boat speed, apparent wind speed and apparent wind [52] U. (3|, 235 1503. 235 1513; direction are sensed and utilized to determine the per- 51 Int. Cl G06g 7/78 fmmance Characteristics of Sailing boats. Modular [58] Field of Search ..235/l52, I56, 164. 150.2, nal detection and signal display units are bus-tied to a 235/l50.27,l50.3, 154,155, computer which controls data flow on the bus and 5/ 5 340/1725 computes average boat speed. average apparent wind speed and average apparent wind direction for display. 5 References Cited Storage of the sailboats previous performance also UNITED STATES PATENTS permits computation of a comparison between its present performance and its previous best. 3.(ll2.23(l l2/l9bl Galas ct al. 340/1725 3.678.474 7/[972 Brown 235/1502 6l Claims. 9 Drawing Figures APPARENT wmo DIRECTION In. ENCODER ECODEFMEUP on ,.Muma |-:xER DEMULTIPLEXER aroma. TD ANALOG anoumaa H6 3 no 5 ANALOG INDICATOR --rac. 2 -coN ERTEn men FIG. onccnou 24 26 FIG. 7 lo :2 I f APPARENT WIND SPEED 3o 75 75 oerzcroa COUNTER um uzxsa omumruxea DISPLAY DlGlTAL w lJtuuur i-( INRIJCATOR H- CONTROL 91580 32 as 34 42 ifi fifi m s2 84 86 9 w 38 &#39;IMER mpg-1 R MUL&#39;nPLEXE L X COUNTERQV%LTNSE FETECTORM 7 V 4 Goa-8228a Boa SPEED 46 54 5e 5a 124 I00] 9e 96 94 aerzcroa eoumea MULTIPLEXER DEMLLTPLEXER OBPLAY 0mm.  
  no.4 E oecgoca IINDICATOR a -FlG. BOAT s asm me 44 46 as f 90 I 92 FIG. I  
  ,so as com urmc comaoe manner: ocmum uzxza A DISPLAY 010mm UNIT umr CIRCUIT ozcooza QNDtCATOR FlG.7 FIG. 7 FIG 7 POSITDN l l 74 .13 w osmumuxza MULTI- up on own. moan oerccroa no.7 PLEXER :cow&#39;rm I20] H4 l2 ll8 I66 6 I64 I02 PATENTEDAPR H975 SHEET 5 [1F 8 wmm MODULAR SYSTEM FOR EVALUATING SAILBOAT PERFORMANCE RELATED APPLICATION This invention relates to a further improvement and development of a system for determining the performance characteristics of a sailboat as disclosed in the patent application of Lucian W. Taylor and George .I. Eilers. entitled System for Evaluating Sailboat Performance, Ser. No. 347.380 filed Apr 3. I973 and the patent application of Lucian W. Taylor and John M. Yarborough. Jr.. entitled Signal Averaging Circuit. Ser. No. 376.709 filed July 5, I973.  
 FIELD OF THE INVENTION This invention relates to a system for automatically determining performance characteristics of a sailing boat. Modular signal detectors ascertain instantaneous values of boat speed. apparent wind speed and apparent wind direction which are utilized to generate average but speed. average apparent wind speed and average apparent wind direction. These average signals are transmitted to modular signal displays to enable a sailor to most efficiently sail the both at the maximum hull speed under continuously varying conditions.  
 DESCRIPTION OF THE PRIOR ART Since many sailing enthusiasts are interested in determining that their sailboats are performing as close to the designed hull speed&#34; as possible, attempts have been made toward evaluating the performance ofa sailboat. It is well understood that sail designs. full design, sea conditions. and wind conditions cooperate to regulate the speed of a sailboat. However. much of this basic information has never been properly checked from an empirical standpoint because there have been no systems employing really meaningful metering equipment. Since the inertia of a sailboat is high, the boat responds to an average wind speed and direction at an average boat speed over any period oftime. Readings from instruments which provide instantaneous values of speed produce erroneous calculations of boat performance since an instantaneous value may vary significantly from an average value. Damped instruments are able to pro\ ide an average value over a short period of time but are confined to a single value of averaging period.  
  The system disclosed in US. Pat. application Ser. No. 347.380 entitled System For Evaluating Sailboat Performance by Lucian W. Taylor and George J. Eilers and the circuits disclosed in US. Pat. application Ser. No. 376.709 entitled &#34;Signal Averaging Circuit by Lucian W. Taylor and John M. Yarborough, Jr. produce average boat speed, apparent wind speed and apparent wind direction signals for an accurate evaluation of the performance of a sailboat.  
 SUMMARY OF THE INVENTION It is an object of the present invention to produce a system for evaluating the performance of a sailboat capable of ascertaining average boat speed. average apparent wind speed and average apparent wind direction.  
  Another object of the invention is to produce a system for evaluating the performance of a sailboat wherein means are provided to automatically sense average boat speed. average apparent wind speed and average apparent wind direction either individually or in combination.  
  Still another object of the invention is to produce a system for evaluating the performance of a sailboat wherein the average boat speed average wind speed and average apparent wind direction may be selectively presented in a sequential manner.  
  A further object of the invention is to produce a system for evaluating the performance of a sailboat whereby the capability of the system may be readily expanded by the addition of modular signal detectors and modular signal displays.  
  Another object of the invention is to produce a system for evaluating the performance of a sailboat wherein the present performance characteristics are compared to the previous best performance of the boat.  
  Still another object of the invention is to produce a system for evaluating the performance of a sailboat whereby the system performs the function of an autopilot.  
  Another object of the invention is to produce a system for evaluating the performance to a sailboat whereby the system performs the function of a dead reckoning navigation computer.  
  A further object of the invention is to produce a system for evaluating the performance of a sailboat which may be readily and economically installed as auxiliary equipment on existing boats or may be incorporated as an integral portion of sailboats during construction.  
 DESCRIPTION OF THE DRAWINGS FIG. I is a functional block diagram ofa modular system for evaluating sailboat performance;  
  FIG. 2 is a schematic representation of the wind direction counter of FIG. 1;  
  FIG. 3 is a schematic representation of a multiplexer of FIG. 1;  
  FIG. 4 is a schematic representation of a speed counter and associated timer of FIG. 1;  
  FIG. 5 is a schematic representation of a demultiplexer of FIG. 1;  
  FIG. 6 is a schematic representation of the computing unit, multiplexer. demultiplexer, control and interface circuits of FIG. 1;  
  FIG. 7 is a schematic representation of the digital-toanalog converter and analog indicator for wind speed of FIG. 1;  
  FIG. 8 is a schematic representation of the digital indicators of FIG. 1; and  
  FIG. 9 is a schematic representation of the control switches and timer of FIG. 1.  
 DESCRIPTION OF THE PREFERRED EMBODIMENT In sailboating, the accurate measurement of boat performance is important whether it is desired to sail from point X to point Y in the shortest possible time or simply to determine if a new piece of equipment has changed the speed of the boat. FIG. 1 is a functional block diagram of a modular system for evaluating sailboat performance. Modular signal detectors. modular signal displays and a computing unit are tied together by a common bus line over which data is transmitted between the computer and any other device. Each device has its own address code and when it is addressed by the computing unit it can be commanded to read data from or send data on the bus line in accordance with its prescribed function.  
  In FIG. 1, apparent wind direction, apparent wind speed. boat speed, wave effect and compass direction signals are detected and converted to binary coded decimal form. The computing unit is programmed to send address and control signals on the bus line which are received by all multiplexer and demultiplexer units. lf data is being requested. only the multiplexer which is assigned the address present on the bus line will re spond. This multiplexer will place binary coded decimal information onto the bus line where it may be read by the computing unit. The computing unit performs the necessary arithmetic operations on the data to generate a display signal and then places the display data and the proper demultiplexer address on the bus line. The addressed demultiplexer reads the data which is then converted to a form which activates a display device for the desired wind direction, wind speed, boat speed and course correction results.  
  From the reference point of a moving sailboat. there is created a wind past the boat in a direction opposite the boat heading. This wind is added vectorially to the true wind which is propelling the boat to produce an apparent wind direction and apparent wind speed. These apparent values are detected and displayed by conventional instruments but their usefulness is limited since someone must break them into their component vectors in order to determine the actual performance of the boat. In the present invention, this conversion along with other functions may be performed quickly and automatically by the computing unit. In FIG. 1, apparent wind direction is sensed by wind direction detector 10, which may be a conventional wind vane, which drives a dual-track. quadrature phased incremental shaft encoder lZ. Encoder 12 produces an analog signal on data line 14 corresponding to the position of the wind vane of detector 10. This analog signal is converted by decoder 16 to a pulse train on up line 18, one pulse for each degree of clockwise rotation of detector l0, and a pulse train on down line 20, one pulse for each degree of counterclockwise rotation of dector I0. Binary coded decimal up/down counter 22 adds pulses on up line 18 and subtracts pulses on down line 20 to maintain a total count representative of the position of detector [0 in degrees or rotation. Encoder 12 also sends a signal on index line 24 at predetermined points, approximately 80, l80 and 280. to decoder 16 which generates a signal on index data line 26 to counter 22. This signal will corect any errors in the total count of counter 22 at the predctc rmined points. When multiplexer 28 is addressed the contents of counter 22 will be placed on bus line 30 to be read by the computing unit. Multiplexer 28 is utilized to con vcrt the binary coded decimal data from parallel to serial form so that is may be transmitted on a single data line within bus line 30.  
  Apparent wind speed and boat speed signals are converted to binary coded decimal by circuits which are similar. Apparent wind speed is sensed by detector 32, which may be a masthead anemometer and pulse generator. which gnerates a pulse train with frequency proportional to speed. Counter 34 counts the pulses for a period to time determined by an enable signal on line 36 from timer 38 so that the total count represents apparent wind speed. When multiplexer 40 is addressed to contents of counter 34 will be placed on bus line 30 LII to be read by the computing unit. After this data transfer, timer 38 sends a reset signal on line 42 to reset counter 34 to binary zero and then sends an enable signal on line 36 to commence another counting sequence. Boat speed is sensed by detector 44, which may be a magnetic paddlewheel, which generates a pulse train with frequency proportional to speed. Counter 46 counts the pulses for a period of time determined by an enable signal on line 48 from timer 50. when multiplexer 52 is addressed the contents of counter 46 will be placed on bus line 30 to be read by the computing unit. After this data transfer. timer 50 sends a reset signal on line 54 to reset counter 46 to binary zero and then send an enable signal on line 48 to commence another counting sequence. The pulse train output of boat speed detector 44 is also utilized to produce a log counter signal. Log divider 56 divides the frequency of the boat speed pulse train by a predetermined factor to produce a pulse train representing nautical miles traveled. Distance counter and indicator 58 counts this pulse train and displays the total count as distance traveled.  
  Computing unit 60 has a program stored in a read only memory which controls the transmission of signals on bus line 30. If. for example. the program requires apparent wind direction data the address and control signals for multiplexer 28 must be sent to enable multiplexer 288 to place the data on the bus line. An instruction in the program will generate the correct six bit multiplexer address which is converted form parallel to serial form by multiplexer 62. Computing unit 60 also enables control unit 64 to generate a strobe signal on line 66 for each address bit and both signals are passed through interface circuit 68 and onto bus line 30. Each multiplexer connected to bus line 30 receives the strobe and address signals but only multiplexer 28 will respond to its address. When the six address bits have been received and decoded computing unit 60 enables control unit 64 to generate a mode signal on line 70 through interface circuit 68. This mode signal and the address signals request multiplexer 28 to check whether the data is ready for transmission. If the data is available a data ready signal is sent on bus line 30 through interface circuit 68 to computing unit 60 on test line 72. This test signal tells computing unit 60 to enable control unit 64 to send a series of strobe signals on line 66 through interface circuit 68 onto bus line 30. Multiplexer 28 responds to each strobe signal by placing a data bit on bus line 30 where the serial bits are the multiplexed binary coded decimal representation of apparent wind direction. The data bits are decoded by de multiplexer 74 and ready by computing unit 60. Now computing unit 60 will execute the program instructions to perform the arithmetic operations necessary to generate the data for the displays.  
  When the computer program reaches the point at which data is to be transmitted to a display. the display address is converted from parallel to serial form by multiplexer 62. Computing unit 60 enables control unit 64 to generate a strobe signal on line 66 for each address bit and both signals are passed through interface circuit 68 and onto bus line 30. Each demultiplexer connected to bus line 30 receives the strobe and address signals but only one demultiplexer. for example wind direction demultiplexer 76, will respond to the ad dress. When the six address bits have been received computing unit 60 enables control unit 64 to generate a mode signal on line 70 through interface circuit 68. This mode signal enables demultiplexer 76 to receive the data bits and strobe signals from multiplexer 62 and control unit 64 which are generated next. The binary coded decimal data signals are converted to an analog signal by converter 78 to drive an analog wind direction indicator 80. Where wind speed and boat speed are to be displayed. the indicators may be of the digital type requiring only decoding of the binary coded decimal signal from the computing unit. Demultiplexer 82 converts the data from serial to parallel form which is then decoded by display decoder 84 and displayed on digital indicator 86 as wind speed. Boat speed data is converted from serial to parallel form by demultiplexer 88 and is then decoded by display decoder 90 and displayed on digital indicator 92.  
  In the basic system the wind direction. wind speed and boat speed signals may be totaled in computing unit 60 over predetermined periods of time to produce average signals. The average apparent wind direction at indicator 80 and the average apparent wind speed at indicator 86 represent the factors which are producing the average boat speed at indicator 92. By comparing these values with charts of previously recorded values the present performance of the sailboat may be determined. Since true wind direction and true wind speed must be calculated from apparent wind direction. apparent wind speed and boat speed in order to determine the best course to sail. further programming will allow computing unit 60 to perform the calculations and display true wind direction at indicator 80 and true wind speed at indicator 86. lfdata is compiled by utilizing the present invention under various conditions. the performance characteristics of the boat can be placed in the memory of computing unit 60. The computing unit then can compare the present boat speed with the previous best boat speed under the same conditions of wind direction and speed to permit a display at boat speed indicator )2 of whether the boat is slower or faster. This would be especially helpful in testing new equipment.  
  Wave size and frequency also affects boat performance therefore. a wave effect detector 94, which may be an accelerometer. might be utilized. The analog signal from detector 94 is converted from voltage to a frequency based pulse train by converter 96 and totaled in counter 98. The count total is then converted from parallel to serial form by multiplexer I00. In the table of previous performance boat speed would be stored with reference to wind direction. wind speed and wave effect.  
  A further expansion of the system may be accomplished by adding a compass direction detector 102. Encoder Ill-I is a dual-track. quadrature phased incremental shaft cncoder which is driven by detector 102 and produces an analog signal on line I06 corresponding to compass direction. Decoder 108 converts this analog signal to a pulse train on up line III), one pulse for each degree of clockwise rotation and a pulse train on down line I12. one pulse for each degree of counterclockwise rotation. Binary coded decimal up/down counter I14 adds the pulses on up line 110 and subtracts the pulses on down line I12 to maintain a total count representative of the position of detector 102. Encoder I04 also sends a signal on index line I16 at predetermined compass points to decoder I08 which generates a signal on index data line 118 to counter I14 to correct any errors in the total count at these points. Multiplexer 120 converts the parallel binary coded decimal data to serial form for transmission on bus line 30. Control switches I22 and multiplexer 124 may be utilized to send a desired compass heading to computing unit 60 which then can compare the desired heading with the actual heading as received from detector 102 and produce an error signal. The error signal. through a demultiplexer and associated circuitry, may be utilized to automatically correct the boat heating thereby functioning as an autopilot. Computing unit 60 may also resolve the east-west and north-south components of boat speed and integrate them to function as a dead reckoning computer. Position coordinates would be converted from serial to parallel binary coded decimal by demultiplcxer I26 and decoded by display decoder 128 to generate a numerical display of position at digital indicator 130. Control switches and timer I22 may also be utilized to change averaging times for apparent wind direction. apparent wind speed and boat speed, to change the frequency of display of any of the signals or to select functions only as required.  
  The present invention relies upon the transmission of multiplexed data along a common bus line between modular signal sensors or modular signal displays and a computing unit. Each input signal is converted to binary coded decimal and then multiplexed by converting from parallel to serial form before transmission to the computing unit. At the computing unit the data is demultiplexed and utilized to generate new data for display. This new data is then multiplexed and sent to a display unit where it is demultiplexed to drive an indicator. Each multiplexer and demultiplexer has a unique address which must be received from the computing unit before data may be sent or received. Therefore, the number of sensors and displays incorporated in the system is only limited by the number of addresses available and the capacity of the computing unit. The basic system for sensing and displaying wind direction, wind speed and boat speed may be easily expanded by adding other sensing and display modules as more functions are desired.  
  FIG. 2 is a schematic representation of wind direction counter 22 of FIG. I. Decoder I6 sends up counts on line 18 and down counts on line 20 which are totaled in counters 140, 142 and 144. Index data lines 26 and I46 provide a correction signal to the counters at predetermined points of compass rotation to correct any errors in the count total. When the wind direction count is to be read a device select signal is received on line 148 from multiplexer 28 of FIG. I after that multiplexer has been addressed by computing unit 60. In response. wind direction counter 22 will send a data ready signal on line 150 in the absence of up and down counts or a correction or clear signal on line 150 in the absence of up and down counts or a correction or clear signal at counters 140, I42 and 144.  
  In the following discussion logic level one will be represented as l and 0 will represent logic level zero. Each logic element will be designated by a number and each terminal will be indicated as terminal 152-1&#34; which is an input terminal for NAND element 152 which produces a 0 at output 152-3 when both inputs are at l and a l at output 152-3 for any other combination of input signals. Element 154 is a NOR which produces a l at output 154-3 when inputs 154-1 and 154-2 are at O and a O at output 154-3 for any other combination of input signals.  
  Element 156 is a NOR flip flop comprised of two cross-coupled NOR elements. When inputs 156-1 and 156-2 ate at l outputs 156-3 and 156-4 will be at 0. 11&#39; input 156-1 changes to a output 156-3 changes to 1. 1f instead input 156-2 changes to 0 output 156-4 changes to 1. When both inputs are at 0 outputs 156-3 and 156-4 will be in the state generated by the first input to change to 0. Element 140 is a binary coded decimal up/down counter. A l at up/down count input 140-1 will add to and a 0 will subtract from the total binary count as displayed at outputs 140-2, 140-3, 140-4 and 140-5 where output 140-2 is binary one, output 140-3 is binary two. output 140-4 is binary four and output 140-5 is binary eight. Each input signal must be accompanied by a change from 0 to l at clock input 140-6. a 0 at preset enable input 140-7, a 0 at reset input 140-8 and a U at carry input 140-9 in order to change the output signals. When the outputs reach a total count of binary nine an up count will set all outputs to 0, representing binary zero. and a carry out signal is issued as a change from 1 to 0 at output 140-10 to enable the next counter in series to count. When the outputs are at binary zero a down count will set the outputs to binary nine and carry output 140-10 will also change from 1 to O to enable the next counter in series to count. A l at reset input 140-8 will set all outputs to U and a l at preset enable input 140-7 will cause the signals present at preset inputs 140-11, 140-12, 140-13 and 140-14 to be transferred to outputs 140-2, 140-3, 140-4 and 140-5 respectively. By connecting the carry output 140-l0 to the carry input of a second counter the two counters will count in series with the first counter representing the ones position and the second counter the tens position ofa decimal number. The addition of a third counter expands the number with a hundred&#39;s position. Element 158 is an inverter which changes alto a 0 and a O to a 1.  
  During clockwise rotation of wind direction detector of F10. 1, a l will appear on up line 18 for each degree of rotation. Counter 140 will count to binary nine at outputs 140-2 through 140-5 and generate a 0 at carry output 140-10. Counter 142 receives the carry 0 at carry input 140-9 and the next count will produce a binary one representing decimal ten or l0of clockwise rotation while the outputs of counter 140 are changed to zero. When both counters 140 and 142 are at binary nine. decimal 99. an up count at input 140-1 will change counter 140 outputs to zero and the O carry signal to counter 142 will allow counter 142 to have its outputs set to binary zero. The O carry signal at outut 142-10 to input 144-9 allows counter 144 to be set to binary one. The output of counters 140, 142 and 144 will then represent decimal 100 or 100 degrees of clockwise rotation. During counterclockwise rotation a 1 will appear on down line 20 for each degree of rotation and will cause counter 140 to subtract to binary one from the binary number at outputs 140-2 through 140-5. When counter 140 reaches binary zero the next down count will change the output to binary nine and counter 142 then subtracts a binary one from its output. When both counters 140 and 142 are at binary zero the next count would be subtracted from the output of counter 144. Therefore. counter 140, 142 and 144 produce the three digits of a decimal number rep- 8 resenting degrees of rotation with each digit in binary form.  
  lfthere are no pulse counts on lines 18 and 20 inputs -1 and 160-2 are both at 0 and output 160-3 produces at l at input 161-2 of monostable multivibrator 161. It input 161-1 changes from 0 to 1 while input 161-2 is at 1 or input 161-2 changes from 1 to 0 while input 161-l is at 0, output 161-3 will produce a 1 pulse and output 161-4 will produce a 0 pulse the duration of which is determined by external timing components, resistor 163 and capacitor 165. Multivibrator 167 will respond to the change of output 161-4 from 0 to l at the end of the pulse to produce a 1 pulse of a duration determined by its external timing components. since input 161-1 receives a 0 from ground and input 161-2 receives a 1 from output 160-3 output 167-3 of multivibrator will be at O. A 1 pulse on either input line will change output 160-3 to 0 and produce a l at clock inputs 140-6, 142-6 and 144-6. 1f the 1 appears on up line 18 at input 164-1 of NOR flip flop 164 output 164-4 will be at l to produce an up count at inputs 140-1, 142-1 and 144-1. 1f the 1 appears on down line 20 at input 164-2 output 164-4 will be at 0 to produce a down count at inputs 140-1, 142-1 and 144-1. Therefore. a 1 count pulse on either line produces its own clock pulse to counters 140, 142 and 144. Multivibrators 161 and 167 provide an approximately 2 microsecond delay for the clock pulses relative to the up or down count signal from NOR flip flop 164 to prevent a count from being registered before the count direction has changed.  
  Since the capacity of the three counters is decimal 999, provision must be made to reset to zero degrees after 359 has been reached during clockwise rotation and to reset to 359 after zero degrees has been reached during counterclockwise rotation. Output 142-3 represents binary two and output 142-4 represents binary four to produce a l at inputs 166-1 and 166-2 of NAND 166 each time counter 142 reaches 60 degrees to change to output from 1 to 0. Output 144-2 represents binary one and output 144-3 represents binary two to produce a l at inputs 168-1 and 168-2 of NAND 168 each time counter 144 reaches 300 to change output 168-3 from 1 to 0. Therefore. only when 360 have been counted will inputs 170-1 and 170-2 of NOR 170 both be at 0 to change output 170-3 from 0 to l. The 1 from NOR 170 resets the counters at reset inputs 140-8, 142-8 and 144-8 to binary zero to represent zero degrees and subsequent counting begins at this point.  
  In order to count down from zero degrees to 359 during counterclockwise rotation the counters must be loaded with the binary equivalent signals. At zero degrees all counter outputs are at binary zero. A 0 on down line 20 will set each counter to binary nine and produce a O carry signal from carry output 144-10. Inputs 172-1 and 172-2 of NAND 172 will change from 0 to l to produce a change at output 172-3 from 1 to 0 which is present at input 176-2 of NAND 176. Since the detector is not at one of the index points index data lines 26 and 146 are at 0 to produce a 1 from output 154-3 of NOR 154 to input 176-1. When input 176-2 changes from 1 to 0 output 176-3 will change from 0 to l at input 174-1 of monostable multivibrator 174. Multivibrator 174 will produce a 0 pulse. the duration of which is determined by external timing components. from output 174-4 at input 175-1 ofmultivibrator 175.  
 At the termination of the pulse from output 174-4 multivibrator 175 will respond to the change from 0 to 1 by producing a 1 pulse at output 175-3 the duration of which is determined by the external timing components connected to it. Multivibrators 174 and 175 provide an approximately two microsecond delay for the present enable signal at preset inputs 140-7, 142-7 and 144-7 relative to the input signals at the preset inputs. The 1 from output 154-3 is changed to a 0 by inverter 178 at input 180-1 of NAND 180 to produce a I from output 180-3 to input 1411-11 which places a binary one at output 140-2. The 1 from output 154-3 is present at inputs 182-1 and 184-1 ofNORs 182 and 184. Outputs 182-3 and 184-3 will be at 0 which is placed at outputs 140-3 and 140-4. The I from inverter 178 is also present at input 186-1 to produce a I from output 186-3 which is placed at output 140-5 to represent binary eight. Therefore. counter 140 has been loaded to binary nine or 9.  
  Inputs 188-1 and 190-1 otNANDs 188 and 190 receive the 0 from inverter 178 to place a l at outputs 144-2 and 144-4 of counter 144. Inputs 192-1 and 194-1 of NORs 192 and 194 receive the l from output 154-3 to place a at outputs 144-3 and 144-5. Thus, counter 144 has been loaded to binary five or 50. The 0 from inverter 178 is also present at inputs 196-1 and 198-1 of NANDs 196 and 198 to place a l at outputs 144-2 and 144-3. Inputs 144-3 and 144-14 are connected to ground to provide a O to outputs 144-4 and 144-5. Therefore. counter 114 has been loaded to binary three or 300 to produce a total binary count of 359 at which point subsequent counting begins.  
  Encoder 12 of FIG. 1 is provided with three index positions which generate index signals on line 24 through decoder 16 to index data lines 26 and 146. These index signals are utilized to correct the count totals in counters 140, I42 and 144 at three predetermined points during the rotation of the detector. Since the encoder index positions may vary due to installation tolerances. a pair of binary coded decimal switches may be preset to provide a binary number between 00 and 99 to counters 140 and 142. This number when combined with a binary number from zero to three from NANDs 196 and 198 enables counters 140, 142 and 144 to be corrected at three positions between 00 and 359. Once the binary switches have been preset the ones and tens digits of the three index positions will remain the same and the positions will be spaced at intervals of multiples of I00. Therefore. if it is desired to space the first and third positions equally from zero degrees the three index positions will be at 80, 180 and 280.  
  A 1 index signal on one ol&#39;index data lines 26 or 146 will change output 154-3 of NOR 154 from 1 to O at input 176-1 of NAND 176 to produce a I from output 176-3 at input 174-1 of multivibrator 174. After an approximately 2 microsecond delay multivibrator 175 produces a l at preset enable inputs 140-7, 142-7 and 148-7. The 0 from output 154-3 is present at NORs 182. 184. 192 and 194 to enable them. The I from inverter 178 is present at NANDs 180, 186. 188, 190, I96 and 198 to enable them. Input 180-2 ofNAND 180 is connected to a positive power supply through resistor 200 to pro\ idc a l and produce a 0 from output 180-3 through input l-lU-ll to output 140-2 to represent the binary one place in the decimal ones position of the detector rotation in degrees. Switch section 202 of the first binary coded decimal switch is connected to ground to produce a 0 at input 1802 when closed in order to generate a 1 at output 140-2. If the index position is switch sections 202, 204, 206 and 208 are open and resistors 200, 210, 212 and 214 provide a 1 to inputs 180-2, 182-2, 184-2 and 186-2 to produce a 0 at outputs 180-3, 182-3, 184-3 and 186-3 to load counter to binary coded decimal zero. Switch sections 216, 218 and 220 of the second binary coded decimal switch are also open and resistors 222, 224 and 226 provide a l to inputs 188-2, 192-2 and 190-2 while switch section 228 is closed to place a 0 at input 194-2 instead of a 1 from resistor 230 to load counter 142 to binary coded decimal 80.  
  At the first index position line 26 will receive a 0 while line 146 remains at I. This 0 is present at inputs 152-2 and 232-2 of NANDs 152 and 232 to produce at I from outputs 152-3 and 232-3 at inputs 196-2 and 198-2 ofNANDs 196 and 198. Since NANDs 196 and 198 are enabled by a 1 from inverter 178 outputs 196-3 and 198-3 will change from 1 to 0 to load counter 144 to zero from a correction of 080. Next. at the second index position. both lines 26 and 146 will receive a l to produce a 0 from NAND 152 at input 196-2 to generate a I from output 196-3. The l on line 146 is changed to a 0 by inverter 158 at input 232-1 while input 232-2 is at O to produce a I at input 198-2 to generate a 0 from output 198-3 and load counter 144 to one for a correction of 180. Finally, at the third index position, line 146 will receive a 0 while line 26 remains at I. This 0 produces a I from NAND 152 at input 196-2 to generate a 0 from output 196-3. The 0 on line 146 is changed to a l at input 232-1 and with the l on line 26 produces a O at input 198-2 to generate a I from output 198-3 and load counter 144 to two for a correction of 280. At each index position at least one of the inputs to NOR 154 was at l to produce a 0 which is changed to a l by inverter 178 to enable NANDs 196 and 198. The 2 microsecond delay produced by mutlivibrators 174 and 175 assures that the correct preset signals are generated at the preset inputs of the counters before the preset enable signal is applied.  
  In the absence of a device select signal on line 148. set input 156-1offlip flop 156 and input 234-1 of NOR 234 receive a l. The l at input 234-] produces a 0 from output 234-5 at reset input 156-2 which generates a 0 at output 156-3 to indicate that the data is not ready on line 150. When computing unit 60 in FIG. 1 is ready to receive wind direction data a device select signal is received on line 148 as a O which enables NOR 234. If counters 140, 142 and 144 are not being reset. as when the count must change from 359 to zero degrees, then input 234-2 will be at 0 also. Inputs 160-1 and 160-2 of NOR 160 will be at 0 when there are no count pulses on up line 18 and down line 20. Input 234-4 will receive a 0 from inverter 162 therefore. If there is no index signal on lines 26 and 146 so that inputs 154-1 and 154-2 are at 0 to produce a l at output 154-3 and the counters are not changing from zero to 359 so that input 176-2 is at 1 then output 176-3 will be at 0 at input 234-3. Therefore. NOR 234 will produce a l which enables flip flop 156 to generate a I data ready signal on lne in response to a 0 device select signal on line 148 only if counters 140, 142 and 144 are not counting. being corrected. or being reset. This ensures that the count data in counters 140, 142 and 144 is stable so that it may be read from lines 236-] through 236-4, the binary coded decimal ones digit. lines 238-1 through 11 238-4, the binary coded decimal tens digit. and lines 240-1 through 240-4. the binary coded decimal hundred&#39;s digit where the binary four line 240-3 and binary eight line 240-4 are grounded through preset inputs 144-13 and 144-14 to provide a signal. Unutilized lines 242 are grounded to provide a 0.  
  In summary. wind direction counter 22 totals up counts on line 18 and down counts on line 20 from a wind direction detector to convert them to a binary coded decimal indication of wind direction in parallel signal form. Counters 140, 142 and 144 generate the ones, ten&#39;s. and hundreds positions ofthe wind direction in degrees on lines 236, 238 and 240. During counting the total count is automatically reset as wind direction passes from 359 to zero degrees and from zero to 359. Three index positions are also provided to correct the total count at predetermined points during the wind direction detector rotation. When the wind direction data is to be read. a device select signal received from computing unit 60 on line 148 will generate a data ready signal on line 150 if the counters are not counting. being corrected or being reset.  
  FIG. 3 is a schematic representation of multiplexer 28 of FIG. 1 which is addressed when apparent wind direction data is to be placed onto bus line 30. Multiplexers 40, 52, 100, 120 and 124 have similar circuits. Multiplexer 28 transmits and receives signals on bus line 30 which is comprised of four individual lines. data line 30-1. strobe line 30-2, mode line 30-3 and test line 30-4. When computing unit 60 of FIG. 1 is ready to read the apparent wind direction data the address corresponding to muliplexer 28 is placed on data line 30-1 in multiplexed form with each address bit being accompanied by a strobe signal on line 30-2. Although all multiplexers connected to bus line 30 receive the address and strobe signals. only multiplexer 28 responds to its address. The receipt of the full address and a mode signal on line 30-3 will generate a device select signal on line 148 to wind direction counter 22 of FIG. 1. lfthe wind direction data is ready, a data ready signal is received on Inc 150 to generate a test signal on line 30-4. Computing unit 60. in response to the test signal. sends strobe signals to clock the wind direction data one bit at a time onto data line 30-1 from which it is read.  
  In FIG. 3, element 250 is a bilateral switch which will pass a l or 0 from input 250-2 to output 250-3 without inversion when enable input 250-l is at l When enable input 250-1 is at O the element is in an off state which represents a high impedance condition which can neither sink nor source current at a definable logic level. Element 252 represents four D-type flip flops connected in series to function as an address shift register. Input 252-l is the common clock input for the four flip flops. Data is transferred from input 252-2 to output 252-3 when the signal at clock input 252-1 changes from 0 to l. Each successive clock signal will transfer that bit of input data to the next output and by connecting a second shift register in series with output 252-6 a total of eight bits of data may be entered for storage. Element 254 is an eight input NAND which will produce a O at output 254-9 when all inputs are at l and a l at output 254-9 for any other combination of input signals. Element 256 is an exclusive -or which produces a 0 at output 256-3 if both input signals are the same and a 1 if the input signals are different. Element 258 is a parallel-load eight-bit shift register which shifts 12 data in eight stages from serial input 258-1 to output 258-2. Shifting will occur when clock input 258-3 changes from O to 1 while parallel/serial input 258-4 is at 0. Each stage of the shift register may be loaded with data at parallel inputs 258-5 through 258-12 when parallel/serial input 258-4 changes from 0 to I.  
  When no multiplexer or demultiplexer is being addressed strobe line 30-2 will receive a l and mode line 30-3 will receive a 0 from computing unit of FIG. 1. With one input at l NOR 260 will produce a 0 at clock inputs 252-1 and 262-1 of address shift registers 252 and 262. If computing unit 60 is ready for the apparent wind direction data a six bit address is sent in multiplexed form on line 30-] to shift register input 252-2. During the time each address bit is present on line 30-1 the strobe signal on line 30-2 will be changed from 1 to O to produce a l at output 260-3 and clock inputs 252-1 and 262-1 to enter the address bit into address shift registers 252 and 262 and then return to 0. After eight strobe signals the address bits will appear at shift register outputs 252-5, 252-6, 262-3, 262-4, 262-5 and 262-6. Switches 264-1 through 264-6 are set to decode the address to provide inputs 254-1 through 254-7 of NAND 254 with a 1 when the correct address is received. If for example, the address bit at output 252-2 is a l input 256-2 must receive a O to generate a l at input 254-1. Therefore, switch 264-1 is closed to ground input 256-2 and provide the required 0. If output 262-6 has a 0 address bit then input 266-2 of exclusive -or 266 must receive a l to generate l at inputs 254-6 and 254-7. Therefore. switch 264-6 is open and resistor 269 supplies a 1 from a positive power supply. When the correct address is received inputs 254-1 through 254-7 will receive a l to enable NAND 254. A maximum of 64 different six bit addresses may be decoded in this manner. The demultiplexers are provided with similar address shift registers so that up to 64 modules connected to bus line 30 by a multiplexer or demultiplexer may be addressed. Additional shift register capacity may be added in series and each additional address bit will increase the number of modules available by a factor of two.  
  After the address has been received. the mode signal on line 30-3 is changed by computing unit 60 from 0 to 1. This 1 is present at input 260-2 to disable NOR 260 and prevent the production of any clock signals to address shift registers 252 and 262 so that the address remains static to enable NAND 254. The l on line 30-3 also is present at input 254-8 of NAND 254 to change output 254-9 to U and produce a device select signal on line 148 to apparent wind direction counter 22 of HO 2. When the wind direction data is available, line 150 receives a 1 data ready signal. The change from l to 0 at output 254-9 produces a O which is changed to a l by inverter 251 at enable input 250-1 of bilateral switch 250 to place it in an on&#34; state so that the 1 data ready signal appears on test line 30-4. The l on line 150 is also present at enable input 270-l to enable bilateral switch 270 to pass the output from shift registers 258 and 272. During the time line 150 had been at 0 parallel shift inputs 272-4 and 258-4 received a 1 from inverter 253 to place the shift registers in the parallel mode and the contents of the shift registers changed as the data from counter 22 of FIG. 2 changed on lins 236. 238 and 240. When line 150 changes to l the shift registers are changed to the shift mode and the data is latched into the shift registers. ln response to the data ready signal on line 30-4, computing unit 60 sends a series of strobe signals on line 30-2 to clock the data from shift registers 272 and 258 onto data line 30-1. The from NAND 254 enables NOR 274 at input 274-2 to produce a l clock signal at output 274-3 when input 274-] changes from I to 0. Inverter 276 will produce the required signal change as the strobe signal changes from O to l on strobe line 30-2. Since parallel shift inputs 272-4 and 258-4 are at l to produce the shift mode, each change from 0 to l at clock inputs 272-3 and 258-3 from strobe line 30-2 will shift data in registers 272 and 258 to output 258-2 through bilateral switch 270 and onto data line 30-l one bit at a time. This multiplexed data is read by computing unit 60 and then mode line 30-3 is turned to O to disable mutliplexer 28. The data from the shift registers also passes through bilateral switch 270 to input 252-2 of address shift register 252 but the l on mode line 30-3 during this time disables NOR 260 so that this data will not be clocked into the address shift register by the strobe signals on line 30-2. The change from l to O on mode line 30-3 disables NAND 254 and removes the 0 device select signal from line 148 which in turn causes apparent wind direction counter 22 of FIG. 3 to remove the 1 data ready signal from line 150.  
  Since shift registers 272 and 258 each have an eight bit capacity, up to four binary coded decimal numbers having four bits each may be loaded into them. The wind direction data is received on lines 236, 238 and 240 in the form ofthree binary coded decimal numbers therefore. inputs 272-5 through 272-8 receive a 0 from wind direction counter 22 of FIG. 2 as lines 242 are connected to ground. Computing unit 60 can be instructed to ignore this one set ofdata. Where the input data is four binary coded decimal numbers all inputs would be received data and computing unit 60 would utilize all sixteen bits of data.  
  In summary, shift registers 272 and 258 receive wind direction data on lines 236, 238 and 240 from apparent wind direction counter 22 of FIG. 2. When computing unit 60 of FIG. I is ready to read the wind direction data, mutliplexed address signals are sent on data line 30-1 with strobe signals on line 30-2 to be decoded by address shift registers 252 and 262 and NAND 254 to produce a device select signal on line 148. In response to the device select signal, counter 22 of FIG. 2 sends a data ready signal on line ISO to change the mode of shift registers 272 and 258 and latch the wind direction data into them. This data ready signal is transmitted on test line 30-4 to computing unit 60 of FIG. I which sends strobe signals on line 30-2 to place the data in shift registers 272 and 258 onto data line 30-1 in multiplexed form.  
  FIG. 4 is a schematic representation of boat speed counter 46 and timer 50 of FIG. 1. Although the following discussion will be directed toward these elements in particular apparent wind speed counter 34 and timer 38 are similar in design and operation. Also shown is log divider 56 which produces a count of distance traveled. Speed counter 46 receives count signals on input line 280 from boat speed detector 44 of FIG. I. Timer 50 sends an enable signal on line 48 which enables four binary coded decimal counters to accumulate speed counts for a predetermined period of time. When computing unit 60 is ready to read the boat speed data it will address multiplexer 52 of FIG. 1. Multiplexer 52, which is similar to multiplexer 28 of FIG.  
 1 except that it is preset to a different address, will generate a device select signal on line 282 and if the count accumulate time has expired a data ready signal will be generated on line 284. In response, multiplexer 52 will transmit the data ready signal on the test line and computing unit 60 will strobe the speed data onto the data line of bus line 30.  
  Element 286 is a binary coded decimal up counter. When enable input 286-2 receives a l pulses appearing at clock input 286-1 will be counted and the total displayed in binary coded decimal form where output 286-3 represents binary one and output 286-6 represents binary eight. A l at reset input 286-7 sets all the outputs to 0. Element 288 is a timing circuit externally connected for monostable operation. Capacitor 290 is held discharged by a transistor inside timer 288 connected to discharge input 288-7 through resistor 292. When a 0 is received at trigger input 288-2 output 288-3 is changed from O to l and capacitor 290 charges from a positive power supply. When the voltage across capacitor 290 reaches a predetermined level at threshold input 288-6 output 288-3 is reset to O and the capacitor is discharged. A 0 at reset input 288-4 may be utilized to reset the timing cycle however, input 288-4 is connected to a positive power supply to prevent the possibility of false triggering during monostable operation. Control voltage input 288-5 permits the output pulse time to be varied by the application of different voltage levels but by connecting it to ground through capacitor 296 the timing period is determined solely by the values of capacitor 290 and resistors 292 and 294.  
  When output 298-4 of NOR 298 changes from i to 0 capacitor 300 will produce a short 0 pulse to be applied to trigger input 288-2 of reset timer 288 before the trigger input returns to the voltage level of a positive power supply connected through resistors 302 and 304. Output 288-3 will change from 0 to l on reset line 54, as capacitor 290 charges, to generate a I reset signal at reset inputs 286-7, 306-7, 308-7 and 310-7 of binary counters 286, 306, 308 and 310 to reset all counter outputs to 0. The values of resistor 294 and capacitor 290 determine a reset timing interval of approximately 10 microseconds. At the end of the reset timing interval output 288-3 will change from I to 0 and capacitor 312 will produce a short 0 pulse at trigger input 314-2 of count timer 314 before the trigger input returns to the voltage level of a positive power supply connected through resistors 316 and 318. Output 314-3 will change from 0 to l to enable counter 286 at input 286-2 to receive count pulses from input line 280. A I count pulse on line 280 is present at clock inputs 320-1 and 322-1 of binary coded decimal rate multipliers 320 and 322. multiplier 320 will produce between zero and ten output pulses at output 320-2 for each ten pulses at clock input 320-1 as determined by the binary coded decimal input number set at inputs 320-3, representing binary one, through 320-6, representing binary eight, when cascade input 320-7, enable input 320-8 and strobe input 320-9 are provided with a 0. Two multipliers may be cascaded. such as 320 and 322, so that multiplier 320 represents the tens digit and multiplier 322 represents the ones digit of the number of output pulses per one hundred input pulses on line 280. If for example, 94 pulses are desired multiplier 320 would be preset to by closing switch sections 324-2 and 324-3 to provide a 0 from ground while inputs 320-3 and 320-6 receive a 1 from a positive power supply through resistors. Multiplier 322 would be preset to 4 by closing switch sections 326-1, 326-2 and 326-4 to provide a from ground while input 322-5 receives a 1 from a positive power supply through a resistor. During each of the first nine pulses at clock inputs 320-1 and 322-1, output 320-1 will provide a l to cascade input 322-7 whicn will produce a l from output 322-2. During the tenth pulse enable output 320- will produce a 0 at enable input 322-8 and strobe input 322-9 to enable multiplier 322 to count every tenth pulse and produce a l during four of these pulse periods. Therefore, multipliers 320 and 322 will produce 94 pulses at output 322-2 for every lOO pulses on input line 280.  
  Multipliers 320 and 322 enable the use of the same circuitry for the boat speed counter and the apparent wind speed counter by converting the pulse train frequency of the detectors to a predetermined value for the computing unit and indicators. This adjustment may also be utilized to compensate for differences in output frequency between detectors if the original detector must be replaced. The pulse train from output 322-2 is applied to clock input 286-1 of binary counter 286. When the tenth count pulse is received, the outputs of counter 286 will be changed to 0. Clock input 306-] of counter 306 is connected to output 286-6 of counter 286 so that when output 286-6 changes from l to 0 on every tenth count pulse counter 306 will count one pulse. Counter 308 is in series with counter 306 to count once every one hundred pulses and counter 310 is in series with counter 308 to count once very one thousand pulses. Therefore, the outputs of counter 286 represent the ones place. the outputs of counter 306 represent the tens place, the outputs of counter 308 represent the hundreds place and the outputs of counter 310 represent the thousands place of the total number of counts received during the count timing interval in binary coded decimal form. These numbers are available to the shift registers of multiplexer 52 on lines 328, 330, 332 and 334.  
  Resistor 336 and capacitor 338 determine a count timing interval of approximately l second at which time output 314-3 returns to 0 to disable counters 286, 306, 308 and 310 to stop the pulse counting. When computing unit 60 of H0. 1 is ready to read the apparent wind speed data stored in counters 286, 306, 308 and 310 multiplexer 52 is addressed which generates a 0 device select signal on line 282 at input 298-1 of NOR 298. Only if inputs 298-2 and 298-3 are enabled with a 0 will a l data ready signal be generated on line 284. During the reset timing interval input 298-3 of NOR 298 will be at l to produce a 0 from output 298-4 on line 284. During the count timing interval input 298-2 will receive a l on enable line 48 to produce a 0 from output 298-4 on line 284. Therefore, both timing intervals must be completed to enable NOR 298 to generate a data ready signal on line 284. After the boat speed data has been placed on bus line computing unit 60 causes multiplexer 52 to remove the device select signal from line 282 which changes output 298-4 from t to 0 to remove the data ready signal from line 284 and provide the trigger input signal to reset timer 288.  
  In summary, count timer 314 enables boat speed counter 46 on line 48 to count output pulses from detector 44 of FIG. 1 for a predetermined period of time. These pulses are accumulated in four binary decade counters which com crt the total count to four binary coded decimal digits in parallel signal form. Multiplexer 52 of FIG. receives the output from counters 286, 306. 308 and 310 on lines 328, 330, 332 and 334 and places the data on bus line 30 upon being addressed by computing unit 60. When the correct address is received by multiplexer 52, a device select signal is generated on line 282 which in turn will generate a data ready signal on line 284 if the count timing interval has been completed. After the data has been placed on bus line 30, the device select signal is removed from line 282 which then removes the data ready signal from line 284 and triggers reset timer 288 to reset counters 286, 306, 308 and 310 to zero. The end of the reset timing interval triggers count timer 314 to enable the counters for another count timing interval.  
  Log divider 56 receives the boat speed pulse train from output 322-2 and produces a pulse train proportional to the distance traveled. Element 342 is a twelvebit binary counter which divides the frequency of the pulse train at input 342-1 by a factor of 1024 at output 342-2. In the preferred embodiment the boat speed pulse train frequency from output 322-2 is 28.44 hertz/knot. Since there are 3600 seconds in an hour, there will be 102,384 pulses per nautical mile at input 342-1 which is converted to 100 pulses per nautical mile at output 342-2 to provide a distance traveled indication of 0.01 nautical mile increments. Element 344 is a monostable multivibrator with a timing interval of 0.1 second to provide a uniform pulse width to amplitier 346 and transformer 348. The pulses are sent on line 350 to distance counter and indicator 58 for visual display.  
  FIG. 5 is a schematic representation ofdemultiplexer 76 of FIG. 1 which is addressed by computing unit 60 when the wind direction data is ready for display. Demultiplexers 82, 88 and 126 have similar circuits. Computing unit 60 sends a multiplexed address on data line 30-] and a strobe signal for each address bit on line 30-2. 1f the address corresponds to demultiplexer 76 then four shift registers are enabled to receive the display data from line 30-1 as sent by computing unit 60. The data is converted from binary coded decimal form to analog form by converter 78 of FIG. 1 and the analog signal is utilized to drive a visual display 80 such as the pointer on a meter marked in compass degrees.  
  Before demultiplexer 76 is addressed strobe lne 30-2 is at 1 from computing unit 60. Mode line 30-3 is also at 1 from computing unit 60 and with both inputs of NOR 358 at 1 output 3583 will be 0 at clock inputs 360-1 and 362-1 of address shift registers 360 and 362. When computing unit 60 sends the eight bit address in multiplexed form on data line 30-1 the signals are received at input 360-2. Each address bit is also accompanied by a strobe signal on line 30-2 in the form of a 0 pulse which changes output 358-3 from 0 to l to clock the address bit at input 360-2 onto output 360-3. After the first four address bits have been clocked into shift register 360 the first address bit is available at output 360-6 to input 362-2 of the second shift register 362. After the eighth address bit has been clocked into shift register 360 the first bit is at output 362-6. Switches 364-1 through 364-6 are set to decode the first six address bits by providing inputs 366-1 through 366-7 of NAND 366 with a 1 when the correct address is received. If for example the address bit at output 362-6 is a 1 input 368-2 of exclusive -or must receive a (l to generate a l at inputs 366-6 and 366-7. Therefore. switch 364-6 is closed to ground input 368-2 and provide the required 0. If output 360-5 has a 0 address bit then input 370-2 of exclusive -or 370 must receive a l to generate a l at input 366-1. Therefore. switch 364-1 is open and resistor 372 supplies a I from a positive power supply. When the correct address is receivcd inputs 366-1 through 366-7 will receive a l to enable NAND 366. Next, computing unit 60 sends a l on mode line 30-3 which is the input at 366-8 to change output 366-9 from I to O at input 374-2 of NOR 374. This l at input 374-2 enables NOR 374 so that when strobe line 30-2 receives a 0 strobe signal at input 374-1 output 374-3 will produce a l clock signal to the data shift registers.  
  Now computing unit 60 sends the wind direction display data in multiplexed form on data line 30-1 to input 376-2 of shift register 376. Each data bit is accompanied by a 0 pulse on strobe line 30-2 which is changed to a l by NOR 374 at clock input 376-1 of shift register 376. When strobe line 30-2 changes from 1 to 0 output 374-3 changes from (I to l to clock the data bit at input 376-2 onto output line 376-3. After four bits of data have been clocked into shift register 376 the first data bit which is on output 376-6 is present at input 378-2 of shift register 378 to be clocked onto output 378-3 by the fifth clock pulse. After sixteen strobe signals the first data bit is available at output 382-6 while the last data bit is available at output 376-3. Mode line 30-3 is then returned to t] to disable NAND 366 and enable NOR 358 to clock the next address received into address shift registers 360 and 362. The display data is available to converter 78 of FIG. 1 on output lines 384, 386. 388 and 390 from shift registers 376, 378, 380 and 382.  
  The last two address bits which are received and stored at shift register outputs 360-3 and 360-4 are utilized to produce three distinct levels of display lighting intensity. If both bits are 0, lines 392 and 394 will place a O at inputs 396-1 and 396-2 of NAND 396 to produce a l at output 396-3 which is changed to a 0 by inverter 398. The (J from inverter 398 and lines 392 and 394 will turn off NPN transistors 400, 402 and 404 at the base inputs. Therefore, no current will flow to light lamp 406. If Inc 394 receives a 1, current will flow through base resistor 408 to turn on transistor 404 which provides a current path from a positive power supply through resistors 410,412, 414, and 416 to produce a base voltage to NPN transistor 418. Transistors 418 and 420 are connected in what is commonly known as a Darlington configuration which has the advantage of high current gain with high input impedance. With resistors 410, 412, 414 and 416 in series the voltage drop across resistor 416 is relatively small and the base current to transistor 418 through resistor 422 is relatively low to partially turn on transistors 418 and 420. Transistor 420 produces a low current flow from a positive power supply through lamp 406 to provide a relatively low light intensity.  
  lfline 392 receives a l current will flow through base resistor 424 to turn *on&#34; transistor 402 which provides a current path through resistors 410, 412 and 416. The total resistance of this current path is less than that of the rum iously discussed state and therefore, the voltage across resistor 416 will be higher to increase the current tlow through base resistor 422 to more fully turn on transistor 418 and 420. Lamp 406 will be provided with more current from the positive power supply to produce a medium intensity light. In the third state. if both lines 392 and 394 are at l NAND 396 will produce a 0 which is changed to a l by inverter 398 to produce a current flow through base resistor 426 and turn 0n transistor 400. Transistor 400 provides a current path through resistors 410 and 416 to produce a relatively high voltage across resistor 416. Since transistors 402 and 404 are alos turned on.&#34; the three parallel current paths provide enough current through base resistor 422 to completely turn on&#34; transistors 418 and 420. Lamp 406 now receives the highest current flow of the three states and will produce the highest light intensity. Resistor 410 is a vaiable resistor to enable an adjustment of the three lighting intensities by controlling the base current to transistor 418 and thereby its degree of turn 0n.&#34;  
  In summary, demultiplexer 76 receives a multiplexed eight bit address on data line 30-] from computing unit of FIG. 1 which is clocked into address shift registers 360 and 362 by strobe signals on line 30-2. NAND 366 and switches 364 decode the addres whereby NAND 366 is enabled only by one of 64 possible address combinations. Next computing unit 60 sends multiplexed data bits on line 30-1 which are clocked into shift registers 376, 378, 380 and 382 by strobe signals on line 30-2. This data is then available as the wind direction information in binary coded decimal form to a maximum of four digits on lines 384, 386, 388 and 390. Converter 78 of FIG. 1 utilizes the data to generate an analog signal to drive wind direction indicator 80.  
  FIG. 6 is a schematic representation of computing unit 60, multiplexer 62, control unit 64, interface circuit 68 and demultiplexer 74 of FIG. 1. When data is required computing unit 60 is programmed to provide the correct multiplexer address which is changed from parallel to serial form by multiplexer 62 and is sent out through interface 68 on data line 30-1. In addition. control unit 64 is provided with control signals which generate the strobe and mode signals on lines 30-2 and 30-3. A data ready signal on test line 30-4 indicates the data is available and computing unit 60 sends strobe signals to place the data onto data line 30-1. When the requested data is received at interface 68 it is changed from serial to parallel form by demultiplexer 74 and read by computing unit 60. After the data has been processed, computing unit 60 generates a demultiplexer address which is changed from parallel to serial form by multiplexer 62 and is sent out through interface 68 on data line 30-1 with the strobe and mode signals. Next computing unit 60 sends the data for display through multiplexer 62 and interface 68 to the addressed display device.  
  Interface 68 connects computing unit 60 with each data ready&#34; bilateral switch, such as switch 250 of FIG. 3, of multiplexers 28, 40, 52, 100, and 124 of FIG. 1 through test line 30-4. If none of the multiplexers have been addressed, the bilateral switches will be in the off&#34; state which neither sources nor sinks current. Therefore, line 30-4 will be connected to a positive power supply through resistor 340 to supply a 0 to computing unit 60 through inverter 432.  
  If the requested data is available when a particular multiplexer is addressed, test line 30-4 will receive a 1 data ready signal from the bilateral switch which has been set to the &#34;on&#34; state. Since line 30-4 was previously supplied with a 1 from resistor 430 which is connected to a positive power supply computing unit 60 will continue to receive a on line 72 from inverter 432 to indicate the data is available. In response, computing unit 60 will signal control unit 64 to send the correct number of strobe signals on line 30-2 to enable the addressed multiplexer to place the data onto data line 30-1. If the data is not available when the bilateral switch is set to the on&#34; state a 0 will appear on line 30-4. Inverter 432 will change the signal on line 72 from 0 to l to indicate that the data is not ready. Computing unit 60 may be programmed to wait for the data ready signal or to jump over the portion of the program requiring the data to the next instruction so that the data is not obtained until the program returns to the omitted portion.  
  Control unit 64 sends strobe signals on line 66 through amplifier 434 onto line 30-2 and mode signals on line 70 through amplifier 436 onto line 30-3. When address data or display data is to be sent out on line 30-1 control unit 64 provides a O which is changed to a l by inverter 438 to enable input 440-l of bilateral switch 440 to enable switch 440 to pass multiplexed data from multiplexer 62 through amplifier 442 onto line 30-1. Data which is received on line 30-1 is blocked by bilateral switch 440 but is inverted by inverter 444 before entering demultiplexer 74. Amplifiers 434, 436 and 442 are provided to ensure the proper signal levels to the various inputs.  
  Demultiplexer 74 is a four-bit shift register similar to address shift register 252 of FIG. 3. Input data at input 74-2 is clocked onto output 74-3 when clock input 74-1 changes from 0 to l as supplied by control 64 as it strobes the data from a multiplexer onto data line 30-1. After four clock pulses. the first bit of data will have been shifted to output 74-6. When computing unit 60 is ready to send or receive data a first four-bit address is placed onto inputs 62-9 through 62-12 of multiplexer 62 which is an eight-bit shift register similar to shift register 258 of FIG. 3. When parallel/serial input 62-4 changes from 0 to 1 this data is loaded into the shift register along with a 0 at inputs 62-5 through 152-8 from ground. Input 62-4 is changed back to 0 and each time control 64 changes the strobe signal from 1 to 0 the signal at clock input 62-3 will be changed from 0 to l by inverter 446 to shift the data to output 62-2 and data line 30-1. After four clock pulses multiplexer 62 will contain all 0 signals since serial input 62-1 is grounded. Now a second four-bit address is placed at inputs 62-9 through 62-12 and the procedure is repeated to complete the transmission ofthe eight-bit address. In a similar manner four-bit groups of display data are sent on data line 30-1 to the various demultiplexers.  
  Computing unit 60 is typically a special purpose, programmable microcomputer comprised of elements such as those manufactured by the Intel Corporation. 3065 Bowers Avenue. Santa Clara. Calif. 95051. A central processing unit performs the control and data processing functions as directed by program instructions stored in read only memories upon data stored in random access memories. Communication between the elements is accomplished over a four-line data bus. Central processing unit (CPU) 448 includes an internal address register which stores the address of the instructions during the running of the program. CPU 448 begins at the first instruction address in the program which usually corresponds to the first memory location in the first read only memory. This memory location contains the first instruction to be executed by CPU 448. After each instruction is completed, the address in the address register is incremented and this new address is utilized to obtain the next program instruction.  
  CPU 448 is connected to the four-line data has by input/output terminals 448-1 through 448-4 whereby data and addresses may be sent and data and instructions may be received. CPU 448 may also enable a group of read only memories from output 448-5 or enable up to four random access memories from each of outputs 448-6 through 448-9. A sync signal is produced at the start of each instruction cycle from output 448-I0 to coordinate the operation of the various elements comprising computing unit 60. A reset signal may be applied at inpput 448-11 to enable CPU 448 to start at the address for the first instruction. Test input 448-l2 receives the data ready signal from the various multiplexers.  
  Element 64 is a random access memory (RAM) which performs two functions. It stores 320 bits of information in four registers of twenty, four-bit characters each. Up to four RAMSs may be grouped together to be enabled from one output such as 448-6 of CPU 448. An enable signal at input 64-5 will enable the four memories and an address on data bus input/outputs 64-1, 64-2, 64-3 and 64-4 will select the proper memory, register number and character mumber. CPU 448 may read data or an instruction or store data in the selected character location. RAM 64 functions as a communication device with elements outside computing unit 60. Instructions may be stored which will cause CPU 448 to transfer data which is placed on outputs 64-6, 64-7, 64-8 and 64-9 to control other devices. Input 64-10 receives the sync signal from output 448-10 at the beginning of each instruction cycle.  
  Element 450 is an address latch which latches the address received at inputs 450-1 through 450-4 from CPU 448 when enabled by a control signal at input 450-5. The address is presented in three groups of four bits each as eight bits of program address at outputs 450-6 through 450-13 and four bits of memory number at outputs 450-14 through 450-17. Three bits of the memory number are decoded to select a particular read only memory and the program address selects one word in the selected memory. Input 450-l8 receives the sync signal from output 448-l0 at the beginning of each instruction cycle.  
  Element 452 is a one out of four binary decoder which receives a binary memory number at address inputs 452-1, 452-2 and 452-3 and decodes it to place a select signal at one of four outputs 452-4 through 452-7. Element 445 is a read only memory (ROM) with a storage capacity of 256 eight-bit words. Each ROM utilized is preprogrammed with instructions in the order in which they will be addressed. A slect signal at input 445-1 enables the memory and an eight-bit program address at address inputs 445-2 through 445-9 selects one of the 256 eight-bit words for display on output lines 445-]() through 445-17.  
  Element 456 is an instruction and input/output transfer device. When enabled by a control signal at input 456-5 eight-bit words received at inputs 456-6 through 456-13 are transferred four hits at a time from input- /outputs 456-1, 456-2, 456-3 and 456-4 to the data bus and CPU 448. Upon instruction from CPU 448 transfer 456 will generate an input strobe signal at 456-14 to transfer data at input/output ports 456-15, 456-16.  
 456-17 and 456-18 to input/outputs 456-1, 456-2, 456-3 and 456-4 respectively or generate an output strobe signal at 456-19 to transfer data at input/outputs 456-1 through 456-4 to input/output ports 456-15 through 456-18. Input 456-20 receives the sync signal from output 448-10 at the beginning of each instruction cycle. Element 458 is a strobed hex inverter buffer which is in the on state when control input 458-1 is at and will pass signals from inputs 458-2, 458-3, 458-4 and 458-5 to outputs 458-6, 458-7, 458-8 and 458-9 respectively. If control input 458-1 is at 1 buffer 458 is in the off&#34; state and will neither sink nor source current at a definable logic level at outputs 458-6 through 458-9.  
  The elements ofcomputing unit 60 operate on a 10.8 microsecond instruction cycle comprised of eight subcycles of approximately l.35 microseconds duration each. At the beginning of the instruction cycle CPU 448 generates a sync signal from output 448-10 to address latch 450, transfer device 456 and RAMS 64 and 46. ln addition CPU 448 and all elements receiving the sync signal also receive two non-overlapping clock signals (inputs not shown) which determine the period of the subcycles. In a typical instruction cycle, CPU 448 will send an address in three groups of four bits each, one group in each of the first three subcycles. The address is generated at input/output terminals 448-1 through 448-4 and placed on the data bus where it is received at inputs 450-1 through 450-4 of address latch 450. In addition. a control signal is sent from output 448-5 to input 450-5 to enable address latch 450 to latch the first eight bits as the program address on outputs 450-6 through 450-13 and the last four bits as the memory on outputs 450-14 through 450-17. Since eight ROMs are utilized. only two bits of memory number and an enable signal are required to select the proper memory. Binary decoders 452 and 462 decode the memory number at inputs 452-1, 452-2, 462-1 and 462-2 to select an output such outputs 462-4 and 462-7 for example. The signal at output 450-16 determines which decoder is enabled. a 0 enabling decoder 452 at enable input 452-3 and a I being changed to a 0 by inverter 464 to enable decoder 462 at enable input 462-3. 11&#39; decoder 452 is enabled a O is generated at output 452-7 to enable ROM 445 at enable input 445-1. The eight-bit program address at address inputs 445-2 through 445-9 selects one of the 256 eight bit instruction words stored in memory 445 which is produced at outputs 445-l0 through 445-l7 during the fourth subcycle. Transfer device 456 receives the instruction word at inputs 456-6 through 456-13 and generates the word. four bits during each of the fourth and fifth subcycles. at input/outputs 456-1 through 456-4 on the data bus where the instruction word is read by CPU 448. During the final three subcycles CPU 448 executes the instruction by operating on some data or sending or receiving an address or data on the data bus.  
  A ROM such as memory 466 may also be utilized to store data concerning the boats previous best performance characteristics. An instruction stored in one of the ROMs would direct 448 to address the memory locations in ROM 466 and the data would be sent to CPU 448 through transfer device 456. Suitable program instnctions would then permit the calculation of the boats present deviation from the best previous performance to generate a display of how well the boat was being sailed. With such data the sailor could make minor corrections in an attempt to increase the present performance and would be able to see the immediate effect of such corrections.  
  1f the instruction received by CPU 448 from a ROM is a send register control instruction the RAM&#39;s and address latch 450 will receive address bits during the seventh and eighth subcyles of the instruction cycle. Address latch 450 and decoders 452 and 462 select the proper ROM location for an input/output instruction which is executed during the next instruction cycle. If data is to be sent out during execution of the input/output instruction, CPU 448 places the data, such as a multiplexer address. on the four-line data bus at inputloutputs 456-1 through 456-4 where it is transferred to input/output ports 456-15 through 456-18. A 0 output strobe signal is produced at 456-19 and inverted by inverter 468 to enable multiplexer 62 at parallel/serial input 62-4 to load the data from transfer device 456 onto inputs 62-9 through 62-12. Then output 456-l9 changes to l which produces a 0 at 62-4 to enable multiplexer 62 to shift the data onto data line 30-1. The next instruction will direct RAM 64 to generate an enable signal from output 64-9 to bilateral switch 440 and strobe signals from output 64-6 to amplifier 434 and clock input 62-3 to place the data onto data line 30-1. This is the process by which multiplexer and demultiplexer addresses and display data is transmitted from computing unit 60. If the data is to be read in during execution of the input/output instruction. CPU 448 will direct RAM 64 to generate strobe signals from output 64-6 to amplifier 434 and clock input 74-1 to place the data received on data line 30-1 onto demultiplexer outputs 74-3 through 74-6. Then CPU 448 instructs transfer device 456 to generate a 0 input strobe signal from 456-l4 to control input 458-1 of buffer 458 to place the data at outputs 74-3 through 74-6 at input/output ports 456-15 through 456-l8. This data is transferred to input/outputs 456-1 through 456-4 where it is read by CPU 448. Data on line 30-1 is inverted once by inverter 444 and then inverted again by buffer 458 to its original form.  
  In summary, computing unit includes CPU 448 which performs control and data processing functions as directed by program instructions stored in ROMs upon data stored in RAM&#39;s. CPU 448 generates addresses which are decoded by address latch 450 and decoders 452 and 462 to select a memory location in a ROM such as ROM 445. When such a memory location is selected the contents of the memory location are transmitted through transfer device 456 to CPU 448. If the memory location contains a program instruction. CPU 448 executes the instruction by processing data or sending control signals. All the aforementioned steps are performed during an instruction cycle initiated by a sync signal from CPU 448. Data and multiplexer and demultiplexer addresses are sent by CPU 448 through transfer device 456 and multiplexer 62 to data line 30-1. Multiplexer 62 is enabled by an output strobe signal from 456-19 of transfer device 456 to place the data or address on inputs 62-9 through 62-12. Then CPU 448 sends control signals to RAM 64 which generates as enable signal to bilateral switch 440 and strobe signals to clock the data or address onto data line 30-1. After an address has been sent, CPU 448 will direct RAM 64 to send a mode signal on line 30-3 which enables the addressed multiplexer or demultiplexer. If a multiplexer has been addressed, a data