Apparatus for converting code signal to visual display
BACKGROUND OF THE INVENTION 
     This invention relates generally to apparatus for converting a manually produced code signal to a visual display, and more particularly to electronic apparatus for converting International Morse Code signals to visual displays of corresponding letters, numbers, or symbols. 
     The use of coded signals for interpersonal communications has been a well known practice for a long time. For example, before the invention of the telephone or radio, the telegraph, which utilizes International Morse Code signal patterns, was the primary way to communicate over long distances. Even today, the use of Morse Code as a vehicle for sending communications remains popular with amateur radio enthusiasts and hobbiests. To become proficient in communicating with Morse Code, an operator must learn the standardized signal patterns and develop the technique of properly initiating those signal patterns. Operator technique was perfected only through hours of practice with a second party who had to decode the initiated signals. In the past, there was no way that an individual could develop his expertise in sending code signals on his own. 
     Advances in electronics have enabled apparatus, such as the teletypewriter, to convert electrically generated code signals to a visual display of corresponding letters, numbers, or symbols. However, for manually generated code signals, there has heretofore been no way of discriminating between operator levels of proficiency in sending such code signals. That is, signals generated by a novice with a low degree of proficiency could be misinterpreted with relation to the signals generated by an operator with a high degree of proficiency. For example, the time duration of a Morse Code short signal (dot) produced by a novice may be the same as the time duration of a Morse Code long signal (dash) by a skilled operator. 
     SUMMARY OF THE INVENTION 
     This invention is directed to an apparatus for converting a train of code signals representative of a letter, number, or symbol to a visual display of such corresponding letter, number, or symbol. The train of signals includes individual signals of at least two distinct time durations, the length of the time durations being dependent upon the proficiency of the operator initiating the signals. In the signal converting apparatus, a clock signal of a preselected time duration is produced. The time relation of each of the signals in the train of signals is resolved in relation to the clock signal. A first signal is produced if the signal being resolved is less than the clock signal, and a second signal is produced if the signal being resolved is greater than the clock signal. An addressor receives the first and second signals and stores the signals to generate a given address dependent upon the particular first and second signals and the order those signals are received. The addressor produces a signal indicative of the given address. A memory contains a respective letter, number, or symbol corresponding to each address. The memory is associated with the addressor for receiving the signal of the given address and producing a signal representative of such respective letter, number, or symbol of the address. A sensor detects the end of the train of signals and produces a signal indicative of the end of the train of signals. A visual display is associated with the memory and the sensor such that the visual display receives signals indicative of the respective letter, number, or symbol of the given address and produces a visual display of the respective letter, number, or symbol when the end of the train of signals is sensed. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a view in perspective of the keyer for producing a train of code signals and the housing of the apparatus for converting the train of code signals to a visual display of a corresponding letter, number, or symbol, according to this invention; 
     FIG. 2 is a block diagram functionally illustrating the conversion of the train of code signals to the visual display according to this invention; and 
     FIG. 3 is a schematic illustration of the electronic circuit for carrying out the conversion of the train of code signals to the visual display in the apparatus according to this invention. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Referring now to the accompanying drawings, FIG. 1 shows an apparatus designated generally by the numeral 10 for converting the train of code signals to a visual display of a corresponding letter, number, or symbol. The apparatus includes a housing 11 having a visual display 46. The display is controlled by an electrical circuit 30, within the housing 11, which can be operated either off an internal electrical potential source (battery) or by connection to a conventional electrical power supply through power cord 12. The code signals are produced by a conventional mechanical keyer 14. Of course, other keyers, such as those of the electromechanical type may be used. The keyer has a key arm 16 connected to a first wire 18 and a contact 20 connected to a second wire 22. The wires 18, 22 are, in turn, connected to the electrical circuit 30 (FIG. 3) by a conventional plug 24. When the potential source is applied to the circuit 30 by turning on switch 26, the keyer 14 can be used to produce a train of code signals which are converted to a visual display of the corresponding letter, number, or symbol by the circuit 30. 
     When the key arm 16 is depressed, the potential level in the electrical circuit 30 is changed to produce an input signal to the circuit, the time duration of the signal being directly related to the time the key arm is depressed. Input signals are in the form of a train of signals based on a code pattern, such as International Morse Code, for example. As is well known, International Morse Code comprises signals of two distinct time durations placed together in given patterns representing respective letters, numbers, or symbols. Typically, the signals of one time duration, called &#34;dashes,&#34; are significantly longer than the signals of the other time duration, called &#34;dots&#34;. When the signal patterns (e.g. letters) are transmitted in series to form a message (e.g. a word), the patterns must be separated from one another by a time duration of, for example, at least three times the time duration of a dot in order to distinguish between patterns. As noted above, the length of the two distinct time durations of the code signals, while remaining in the same basic relationship, may vary widely depending on the proficiency of the operator generating the code signals. Therefore, the electronic circuit 30 of this invention is capable of differentiating between the distinct time duration code signals over a variety of durations. 
     The electronic circuit 30 functionally represented in FIG. 2, receives the train of input code signals from the keyer 14 and passes the signals through a filter 32 to suppress high frequency noise. An adjustable timer 34, preset by the operator according to his proficiency, produces the signals of a duration between the operator&#39;s &#34;dash&#34; signal and &#34;dot&#34; signal, and the end of the code signal train for each signal in the train. Such time signals are inputted to a first signal resolver 36, a subsequent signal resolver 38, and an end of code signal train sensor 40. The first signal of the train is fed to the resolver 36 where, based on the time signal, a determination is made as to whether such signal is a &#34;dot&#34; or a &#34;dash,&#34; and an appropriate signal of such determination is produced. The signal from resolver 36 is fed to an addressor 42 of the universal, bidirectional shift register type. The addressor 42 is loaded with the signal from the resolver 36 and also has its shift direction determined thereby. Subsequent signals of the train are fed to the resolver 38 where, similarly, determination is made as to whether such signals are &#34;dots&#34; or &#34;dashes&#34;. Appropriate signals of such determinations are produced and sequentially loaded in the addressor 42 in the determined direction. This bidirectional loading of the addressor 42 enables addresses to be given to each standard code signal train corresponding to a letter, number, or symbol in the manner described below. 
     A memory device 44 such as a Read Only Memory (ROM) contains the corresponding letter, number, or symbol for each address. The memory device receives a signal of the given address in the addressor 42 and delivers a signal of the corresponding letter, number, or symbol to the normally blanked out visual display 46 located in the housing of the apparatus 10 (see FIG. 1). If the memory device has separate fields for addresses based on the direction the addressor is loaded, the device receives a signal from the resolver 36 indicative of the shift direction. If a signal of the train is not received by the sensor 40 during the time signal fed thereto by the timer 34, then the sensor determines that the end of the signal train has occurred. When the sensor 40 makes such determination, a signal is sent to the visual display 46 to activate the display so that the appropriate letter, number, or symbol is displayed. 
     A particular arrangement for the electronic circuit 30 of the apparatus 10 is schematically illustrated in FIG. 3. The filter 32 of the circuit 30 includes an RC network connected to the wires 18 and 22, so that input code signals generated by depressing the keyer 14 are passed through filter 32 to suppress high frequency noise, caused for example by keyer bounce, with a minimum of time distortion. An internal potential source connected to the RC network provides a normally high level signal which goes low when the keyer 14 is depressed to generate the input code signals. The filtered input code signals (low level signals) are inverted and delivered to the adjustable timer 34 and the first signal resolver 36. 
     The adjustable timer 34 includes a first clock pulse generator 50. The clock pulse generator 50 is, for example, a monostable multivibrator connected to a linear potentiometer which produces a clock pulse signal of variable time duration. The length of the pulse signal is dependent upon the setting of the linear potentiometer. An adjustment knob 52, mounted on the housing of the apparatus 10 (see FIG. 1), is connected to the linear potentiometer in any well known manner to control the setting of the potentiometer. The time duration for the clock pulse is preset by operator selection of the position of the knob 52, so as to be of a particular duration dependent upon the proficiency of the operator. That is, the clock pulse time duration is selected to be between the time duration of a &#34;dot&#34; signal and the time duration of a &#34;dash&#34; signal as typically produced by the particular operator so as to enable differentiation to be made between the &#34;dot&#34; and &#34;dash&#34; code signals. 
     In order to accomplish such differentiation, the first input signal produced by depression of the keyer, is delivered to the clock generator 50 and initiates the production of the clock pulse signal of the preset time duration. The lead edge of the input signal also triggers a monostable multivibrator 54 to produce a one microsecond pulse. This pulse clears the addressor 42, clocks a first D flip-flop 56, and resets a second D flip-flop 58, the Q output of which is connected to the D input of flip-flop 56. The addressor 42 is an initially zeroed, universal eight bit bidirectional shift register 60. The clocking of the flip-flop 56 causes NAND gates 62, 64 to force the S 1  and S o  inputs to the shift register 60 to high (&#34;ones&#34;). This in turn causes the shift register to go to the parallel load mode. When the end of the clock pulse signal occurs, the shift register receives the input signal at the least significant bit (A 7 ) and an inverted signal at the most significant bit (A o ). If the input signal is a &#34;dot,&#34; the most significant bit receives a high signal and is stored as a &#34;one&#34; and the least significant bit receives a low signal and is stored as a &#34;zero;&#34; conversely, if the input signal is a &#34;dash,&#34; the most significant bit receives a low signal and is stored as a &#34;zero,&#34; and the least significant bit receives a high signal and is stored as a &#34;one.&#34; 
     Clocking of the flip-flop 56 also enables the clock input to a JK flip-flop 66. The JK flip-flop 66 receives the input signal at the K input, an inverted input signal at the J input, and the clock pulse signal from the clock generator 50. If the state of the flip-flop 66 remains the same at the end of the clock pulse signal, the input signal is determined to be a &#34;dash;&#34; and if the state of the flip-flop 66 has been set at the end of the clock pulse signal, the input signal is determined to be a &#34;dot.&#34; The characteristic equation of the flip-flop 66 is such that when the signal at the J input is high (a &#34;dot&#34; signal has occurred), the Q output is high and the Q output is low; and when the signal at the J input is low (a &#34;dash&#34; signal has occurred), the Q output is low and the Q output is high. The Q, Q outputs of the JK flip-flop 66 are connected to the NAND gates 62, 64 respectively, so that the shift direction for subsequent input signals is set. That is, if the first input signal was a &#34;dot,&#34; the S 1  input is low and the S o  input is high, and the new input signal will be entered from the DSR input and the first signal shifted right; and if the first input signal was a &#34;dash,&#34; the S 1  input is high and the S o  input is low, and the new input signal will be entered from the DSL input and the first signal shifted left. On the second and subsequent input signals, the flip-flop 56 is clocked enabling the shift direction, established by the NAND gates 62, 64 and inhibiting the flip-flop 66 from further clocking. 
     Accordingly, subsequent input signals of the code train trigger the generator 50 and at the end of the clock pulse signal from the generator, the subsequent input signals are loaded into and stored in the shift register 60 in the set direction. Thus, if the first input signal was a &#34;dot&#34;, the shift register 60 is loaded from the DSR input with all &#34;dots&#34; being stored as &#34;ones&#34; and &#34;dashes&#34; as &#34;zeroes;&#34; and if the first input signal was a &#34;dash&#34;, the shift register is loaded from the DSL input with all &#34;dashes&#34; being stored as &#34;ones&#34; and &#34;dots&#34; as &#34;zeroes.&#34; The following chart depicts how a &#34;dot&#34; leading code signal train is loaded in the shift register from the DSR input, and the &#34;dash&#34; leading code signal train is entered from the DSL input: 
     
         ______________________________________                                    
                               Address                                    
Letter/Character/Symbol                                                   
                 Code Signal Train                                        
                               01234567                                   
______________________________________                                    
A                dot, dash ( . - )                                        
                               01000000                                   
N                dash, dot ( . - )                                        
                               00000010                                   
______________________________________                                    
 
    
     The shift register 60 is connected to the memory 44, such as a 4K bit (512×8) ROM 70 for example. The ROM 70 provides two separate memory fields. One memory field contains numbers, letters, and symbols corresponding to addresses of valid &#34;dot&#34; leading signal patterns, while the other memory field contains numbers, letters, and symbols corresponding to addresses of valid &#34;dash&#34; leading signal patterns. One bit (eg. AD8) of the ROM 70 is connected to a shift direction decoder 48 which is in turn connected to the Q, Q outputs of the JK flip-flop 66. The decoder 48 determines the shift direction (i.e., whether the first signal in the signal train is a &#34;dot&#34; or a &#34;dash&#34;) depending on the output of the flip-flop 66 and correspondingly selects the memory field to receive the address signal from the shift register 60. The ROM translates the received addresses of the International Morse Code signal patterns into a seven bit ASCII (American Standard Code for Information Interchange) code for the display 46, representing respective letters, numbers, or symbols. Of course, conversion of other code signal patterns to corresponding visual display may be accomplished by substituting an appropriate ROM in the memory 44. 
     The memory 44 is constantly receiving signals from the shift register as the code signal train is being produced by selective depression of the keyer 14. Such signals are translated by the memory 44 and appropriate corresponding signals are delivered to the visual display 46. The display output may be, for example, a Dialight 740-0018 Alpha-Numeric apparatus manufactured by Dialight Corporation of Brooklyn, New York. The visual display 46 is normally blanked out. This blanking is desirable since the display output is continuously receiving signals as the code signal train is produced, and would otherwise be flashing intermediate letters, numbers, or symbols until the signal train is completed. Therefore, it is necessary to provide the end of code signal train sensor 40 to enable the display 46 to be utilized to visually display only the proper letter, number, or symbol corresponding to the particular code signal train produced. Sensor 40 utilizes a second clock pulse generator 72 of timer 34. The clock pulse generator 72 is, for example, a retriggerable monostable multivibrator connected to a linear potentiometer. The linear potentiometer of generator 72 is ganged with the linear potentiometer of the first clock pulse generator 50 and is therefore similarly controlled in its setting by adjustment knob 52. As noted above, the average time duration between trains of code signals for different numbers, letters, or symbols is ideally three times the time duration of a &#34;dot&#34; signal. Therefore, the generator 72 is selected so that the time duration of the clock pulse produced thereby is always related to the clock pulse produced by generator 50 in the ratio of 3 to 1. 
     When the operator depresses the keyer 14 to produce an input code signal, a signal is sent to the clock pulse generator 72 to initiate the production of its clock pulse signal; and when the keyer is released, the generator is retriggered. The retriggerable clock pulse is utilized to clock the flip-flop 58, which also receives an inverted input signal. If the keyer 14 has not been re-depressed by the end of the time duration of the clock pulse at the flip flop 58, then the end of the code signal train is determined to have occurred; if the keyer has been re-depressed, it is determined that the end of the train has not yet occurred. Particularly, if the keyer 14 has been re-depressed before the flip-flop 58 is clocked, the Q output is low and the Q output connected to an inverter 90 is high to blank out the display 46; but if the keyer has not been depressed, the Q output is high and the Q output is low. This low signal enables the visual display 46 to display the respective letter, number, or symbol in the memory 70 for the particular unique address at the shift register at that point in time. The operator thus receives an immediate visual indication of the actual code signal inputted at the keyer and can compare this with the signal he intended to produce. Further, by adjusting the time duration of the clock pulses, the operator can challenge himself to produce code signals faster and more accurately. 
     The circuit 30 may include an audio device 75 for producing a sound output equivalent in duration to the input signals produced by depressing the keyer. The audio device 75 includes a speaker 76 mounted in the apparatus housing 11 (see FIG. 1), and may be, for example, a Sonalert Model SC628, manufactured by Mallory of Indianapolis, Indiana. Further, to insure that the components of the circuit 30 are initiallized when first powered up, a reset device 78 is employed. The reset device 78 includes a monostable multivibrator for producing a pulse signal connected to the shift register 60 and flip-flop 58 to clear the shift register and set the flip-flop when first powered up. The reset device may also be manually triggered by a button 80 located on the housing of the apparatus 10 (see FIG. 1) at the desire of the operator. Additionally, the circuit 30 may include logic for detection of errors generated by too rapidly keying the keyer 14 (i.e., input signal produced before resolution of previous input signal), or keying in too many input signals in a code train. The error detection logic designated generally by the numeral 82, includes a JK flip-flop 84 clocked by the input signal. The J input is connected to the clock pulse generator 50 and the K input is connected to the Q output so that the flip-flop functions in the toggle mode. Thus, if the flip-flop is clocked before the previous input signal is resolved (i.e., before the end of the pulse from generator 50), the state of flip-flop changes and a signal from the Q output turns on a light 86, inhibits the operation of the audio device 75, and clears addressor 60. Operation of the light 86 mounted in the housing of the apparatus 10 (FIG. 1) gives a visual indication of the detection of an error. In this instance, the operator is depressing key 14 too rapidly for the operator-set clock pulses; and such setting should be adjusted accordingly by knob 52. Further, a shift register 88 is connected to the clock pulse generator and counts the number of input signals until the end of the train of signals is sensed. If the count exceeds eight, the signal train is improperly generated in that it has too many components. Accordingly, a signal is produced which turns on light 86, inhibits operation of the audio device 75, and clears addressor 60. After time out, the start of a new code train automatically resets the flip-flop 84 and register 88 so that any similar errors in the subsequent train can be detected. 
     The invention has been described in detail with particular reference to preferred embodiment thereof, but will be understood that variations and modifications can be issued within the spirit and scope of the invention as claimed.