home *** CD-ROM | disk | FTP | other *** search
/ World of Ham Radio 1997 / WOHR97_AmSoft_(1997-02-01).iso / cw / cw_11 / amsoft.iii next >
Text File  |  1997-02-01  |  35KB  |  689 lines

  1.           
  2.           
  3.                                 ██████        █     █
  4.                                 █    █        █     █
  5.                                 █             █     █
  6.                                 █             █  █  █
  7.                                 █             █  █  █
  8.                                 █    █        █  █  █
  9.                                 ██████        ███████
  10.           
  11.                                     Version 1.04
  12.                                   20 September 1991
  13.           
  14.                                          by
  15.                                     Larry Winslow
  16.                                         W0NFU
  17.                                  1520 E. Verlea Dr.
  18.                                      Tempe, Az.
  19.           
  20.           
  21.                                      Disclaimer
  22.           
  23.           There always has to be a disclaimer. This program has been written
  24.           to the best of my abilities - I've been programming computers for
  25.           27 years now so I should be pretty good at it. The program has been
  26.           extensively tested and has been found to cause no damage to files,
  27.           memory resident programs, or the computer itself. I assume no
  28.           liability if some condition arises which I have not tested for.
  29.           
  30.           
  31.                                     A brief note
  32.           
  33.           This program is not free. If, after using it for a few weeks, you
  34.           find the program a benefit in your shack, a $10 contribution is
  35.           expected. Otherwise, you are expected to remove it and all of its
  36.           support files from your system. In return for your contribution, I
  37.           will provide support either via mail correspondence or phone call
  38.           (as long as you pay for the long distance charges).
  39.           
  40.           
  41.                                   Brief Description
  42.           
  43.           "CW" is a versatile program which allows a PC to receive and send
  44.           Morse code for the Amateur Radio operator. Some of the more
  45.           significant features of "CW" are:
  46.           
  47.                - Automatic tracking of received CW speed.
  48.           
  49.                - User adjustment of parameters defining the length of the   
  50.                  space after a character and after a word.
  51.           
  52.                - User adjustment of a programmatic filter to eliminate false
  53.                  signals.
  54.           
  55.                - Code transmit speed can be either locked to the speed of the
  56.  
  57.  
  58.  
  59.                  received code speed or user adjustable.
  60.           
  61.                - Type ahead buffer of 4096 characters allowing user to enter
  62.                  data to be sent in response to that being received.
  63.           
  64.                - Ten user defined messages which can be sent.
  65.           
  66.                - User definition of user call which can be sent with single
  67.                  key stroke.
  68.           
  69.                - Maintenance of 2 receive parameters allowing the tracking of
  70.                  multiple users.
  71.           
  72.                - User definition of user QTH which can be sent with a single
  73.                  key stroke.
  74.           
  75.                - Random code generator for practice.
  76.           
  77.                - Received data can be captured to user defined file and/or to
  78.                  the printer.
  79.           
  80.                - User defined input file which can be sent.
  81.           
  82.                - Help screen available with simple keystroke.
  83.           
  84.                - Full featured Iambic keyer with dit and dah memory.
  85.           
  86.           
  87.           
  88.                                 Hardware Requirements
  89.           
  90.           The program requires at least 128k of available memory and 1 serial
  91.           communication port which will operate at 9600 baud. The program has
  92.           been successfully test on XT clones, AT clones and 16mhz 386SX
  93.           systems. The timing function has been designed such that it is
  94.           totally independent of the characteristics of the machine that it
  95.           is executing on. The only machine that it has failed to function
  96.           properly was a very old, true "Big Blue" XT with only a 4.77mhz
  97.           clock and that was with a very busy TSR executing; without the TSR,
  98.           the program functioned properly
  99.           
  100.           
  101.           
  102.                                 Detailed Description
  103.           
  104.           My interest in a computer interface for CW was prompted by the
  105.           article "ROBO-COPY" by Michael Hansen WB9DYI in the October 1990
  106.           issue of 73 magazine. The program described in the article does an
  107.           excellent job of copying CW but there was no provision for sending
  108.           code. Therefore, after obtaining the source file and a file
  109.           describing the code receive algorithm from the 73 BBS, I rewrote
  110.           the program. The original was written in C but my skills in C are
  111.           limited. Therefore, I wrote my program in QuickBasic 4.5 including
  112.           the transmit functionality. My receive algorithm is identical to
  113.           that in the C program.
  114.  
  115.  
  116.  
  117.           
  118.           The algorithm is described as "The Mean Machine". This name is not
  119.           used in a slang manner but rather the method of tracking the
  120.           incoming code. I quote Michael Hansen's description of the
  121.           algorithm.
  122.           
  123.           "Before we start writing the program, we have to decide on the
  124.           algorithm (method) to be used to time the dits and dahs. How does
  125.           the computer decide that a "mark" (Mark is the presence of a
  126.           signal, either dit or dah - space is absence of the signal) falls
  127.           into the dit or dah category?
  128.           
  129.           A good approach to try would be to calculate the average of some
  130.           number of marks. The average, or as it is call by statisticians,
  131.           the arithmetic mean, is calculated by adding up a number of related
  132.           values then dividing that sum by the number of values. The ARRL
  133.           tells us that proper Morse timing is that a dah is three times as
  134.           long as a dit. This means that the calculated mark average should
  135.           be 2 dits, assuming equal numbers of dits and dahs. As you can see
  136.           in the figure below, this average is an excellent point of
  137.           reference for sorting marks into dits and dahs.
  138.           
  139.           
  140.           
  141.           
  142.           
  143.           
  144.           
  145.                     WPM = 2.4/(average of Marks in milliseconds)
  146.                            therefore, 20wpm => mark of 60ms.
  147.           
  148.                                                       Average
  149.                                                DIT       |       DAH
  150.                                        |________|________|________|
  151.           Time in milliseconds         0ms     60ms     120ms    180ms
  152.           Deviation from mean                    < -60ms >< +60ms >
  153.           
  154.                                          Time values for 20 wpm cw
  155.           
  156.           The important factor here is the number of marks used to calculate
  157.           the average (mean). If that number is too small the average will
  158.           become easily skewed by uneven occurrences of either dits or dahs.
  159.           An example of this skew can be seen in the phrase "1000 watt"; it
  160.           contains 24 dahs but only 3 dits. In this example the average would
  161.           quickly converge to the length (time) of a dah.
  162.           
  163.           If we select a very large number (>250) of samples for the
  164.           averaging calculation, we can effectively "swamp out" all but the
  165.           most absurd of the "pathological" patterns that would significantly
  166.           skew the average. An additional benefit to having a large number of
  167.           samples in the average would be better noise immunity should an
  168.           errant value enter the calculation due to QRM or QRN.
  169.           
  170.           A scheme based on a large sample average would work well if all cw
  171.           operators could standardize on a fixed baud rate, much like the way
  172.  
  173.  
  174.  
  175.           the asynchronous serial protocols work. Unfortunately, the real
  176.           world of cw is anything but standard when it comes to transmission
  177.           speed. CW speed not only varies from operator to operator, but it
  178.           also changes if the operator fatigues or desires to emphasize
  179.           certain portions of the transmission such as signal reports, QTH,
  180.           etc.
  181.           
  182.           There are two major disadvantages to the large sample average. The
  183.           larger the number of samples used in an average, the less
  184.           responsive to change it becomes. When a big change in transmission
  185.           rate is encountered, such a system requires an infusion of many
  186.           dozens of new mark values before it would have an accurate enough
  187.           average to operate properly. During this time, much of the QSO
  188.           would have been lost in a sea of garbled characters. Large sample
  189.           averages are also computationally intensive, restricting their use
  190.           with only the fastest machines.
  191.           
  192.                                   The MEAN Machine.
  193.           
  194.           ROBO-COPY's algorithm uses a smaller number of samples, 32,
  195.           allowing it to "sync up" rapidly to varying transmission rates. The
  196.           trick is to manage the entries that are used in the calculation of
  197.           the average. First, the errant mark values due to noise are reduced
  198.           by the sampling filter that qualifies each mark as it happens. Then
  199.           a pre-screening function insures that skew is minimized by
  200.           disallowing more than 3 successive marks of the same length, plus
  201.           or minus 12.5%, from being entered into the average calculation.
  202.           
  203.           Another type of statistical operation used in ROBO-COPY is the mean
  204.           deviation. It is used to detect large changes in the transmission
  205.           speed and adjust for dah to dit rations that aren't 3:1. The mean
  206.           deviation is the difference between the average and the current
  207.           mark value. A record of the past 32 deviations from average is
  208.           maintained. The above figure shows that under normal circumstances
  209.           the mean deviation of the dit and dah are of equal value but have
  210.           different signs. If you add all 32 mean deviations together the
  211.           dits and dahs will cancel each other out and the sum will be near
  212.           or at zero for "normal" copy.
  213.           
  214.           If the speed of the incoming code should change rapidly however,
  215.           like when you change frequency from a 13 wpm QSO to a 50 wpm QSO,
  216.           the mean deviation really "kicks in". When the value of the mean
  217.           deviation exceeds 25% of the average value, the average is "opened-
  218.           up" so that any mark will be included in the calculation of the new
  219.           average. The program temporarily suspends the pre-screening of
  220.           entries into the average in an effort to purge the average of the
  221.           out-of-date values it contains. After the mean deviation recedes
  222.           back below 25% of the average value the program will again start
  223.           the pre-screening process using the new average as the basis for
  224.           qualifications.
  225.           
  226.           Because of these algorithms, ROBO-COY is responsive to changing
  227.           copy conditions, yet stable without being computational
  228.           cumbersome."
  229.           
  230.  
  231.  
  232.  
  233.           As each mark is completed, the program then starts measuring the
  234.           length of the space following it. If the length of the space is
  235.           less than or equal to the value of letter space value, then the
  236.           space is considered to be part of the current character and the
  237.           program starts measuring the length of the next mark. If not, then
  238.           the character is considered to be complete and is output to the
  239.           "receive" window of the screen. The timing of the space continues
  240.           and if it reaches the value of word space, a word is considered
  241.           complete and a space is output to the receive window of the screen.
  242.           The program then waits for the beginning of the next mark. The
  243.           default values of the letter space is initially 2.5 times the dit
  244.           length. The default value of the word space is initially 6.7 times
  245.           a dit length. Both of these two values can be changed with function
  246.           keys.
  247.           
  248.           
  249.           
  250.                                     The Interface
  251.           
  252.           The program uses either COM1 or COM2 to interface to the radio
  253.           equipment and to provide timing of the CW received or sent. Because
  254.           a comm-port is used, the signals must conform to the RS-232
  255.           definition which is normally a -12v to +12v swing. Naturally, the
  256.           radio equipment does not normally provide the proper signals and
  257.           therefore some type of interface must be developed.
  258.           
  259.           The interface to the "key" input of the rig is simple. Wire a diode
  260.           from the DTR pin of the  comm-port connector to a very small reed
  261.           relay (a good one would be one of the 16 pin DIP types) and then
  262.           back to the GND pin of the connector. The polarity of the diode
  263.           would be with the cathode connected to the connector.
  264.           
  265.                           |\  |     |----------|
  266.               DTR   o-----|  \|-----|  relay   |--------+
  267.                           | / |     |----------|        |
  268.                                                         |
  269.               GND   o-----------------------------------+
  270.           
  271.           The contacts of the relay can then be used to key the rig.
  272.           
  273.           However, the interface for the receive side is not quite so simple.
  274.           The October 1990 issue of 73 magazine, which contains the original
  275.           article describing ROBO-COPY, includes a somewhat simple interface
  276.           which does function although it is not very effective.
  277.           
  278.           Back in the early 70s, I received the diagram of an interface
  279.           circuit which is impressive in its performance. It is so effective
  280.           in digging into the incoming signal and extracting the cw present
  281.           that I added a small audio amplifier so that I could use it just as
  282.           a simple audio filter. It has recovered a cw signal from the
  283.           receiver even when it could not be heard with headphones on.
  284.           Unfortunately, I misplaced the diagram when I moved from
  285.           Minneapolis to Phoenix in 1980 - if you've ever moved, you will
  286.           understand how easy this is to happen. I will have to reverse
  287.           engineer the device before it can be provided to the users of CW.
  288.  
  289.  
  290.  
  291.           Please forward a SASE envelope to me and I will furnish you with
  292.           the schematic as soon as possible.
  293.           
  294.           There are two different types of connectors which can be used on a
  295.           PC - DB-9 and DB-25. The following table list only the pins which
  296.           are of interest to the user.
  297.           
  298.                           DB-9 pin     DB-25 pin   usage
  299.           
  300.             Ring Indicator   9            22       input from receiver
  301.             Data Term Rdy    4            20       "key" signal to rig
  302.             GND              5             7       ground
  303.             Clear to Send    8             5       Dit paddle
  304.             Carrier Detect   1             8       Dah paddle
  305.           
  306.           
  307.           
  308.                                   Electronic keyer
  309.           
  310.           The user can also wire his keyer paddle such that the program will
  311.           act as full-featured electronic keyer. This includes iambic action
  312.           plus dit and dash memories. For this feature to be active, the user
  313.           must include a line in the parameter file of "KEYER=YES". I have
  314.           found that a simple 1488 EIA interface chip (used for some of the
  315.           other required signals) with the paddle connections to the inputs
  316.           of the chip provided a very satisfactory method of interfacing the
  317.           keyer paddle to the program.
  318.           
  319.           
  320.           
  321.                                    Parameter file
  322.           
  323.           When the program is started, it reads in a file (which defaults to
  324.           the file CW.MSG) which contains parameters defining the user and
  325.           also up to 10 "canned" messages. Each record of the file begins
  326.           with a keyword followed by the data associated with that keyword.
  327.           
  328.                Keyword       Associated data
  329.           
  330.                MSGn=         Where "n" can be 0 thru 9 defining 10 "canned"
  331.                              messages. The content of those messages can be
  332.                              any valid cw characters. One feature that can be
  333.                              taken advantage of is the inclusion of #
  334.                              followed by a "C", "Q", "N" or "I" - the pair
  335.                              will be replaced with the users Call, the users
  336.                              Qth, a program maintained Number, or Increment
  337.                              that number.
  338.           
  339.                GMT=          Value necessary to adjust local time to GMT/UCT.
  340.                              Negative values are represented by a leading -.
  341.           
  342.                PORT=         Hex value of the comm-port to be used. If this
  343.                              parameter is not present, the program will
  344.                              default to comm-port 1. Comm-port is "2F8".
  345.           
  346.  
  347.  
  348.  
  349.                CALL=         User call sign.
  350.           
  351.                QTH=          User Qth.
  352.           
  353.                TONE=         Frequency of the monitor. If this parameter is
  354.                              not present, the program defaults to 800hz.
  355.           
  356.                SPEED=        The transmit speed to be used initially. If this
  357.                              parameter is not present, the program defaults
  358.                              to 20 wpm.
  359.           
  360.                KEYER=        This must be "YES" for the electronic keyer
  361.                              feature to be available.
  362.           
  363.           
  364.           
  365.           
  366.           
  367.                                   Program start-up
  368.           
  369.           The program is launched with the command:
  370.           
  371.                CW [filename]
  372.           
  373.           This will start the program executing and if "filename" is
  374.           included, that file will be read in place of the default file of  
  375.           "CW.MSG" (see description of the contents of this file above).
  376.           
  377.           First, the program will announce itself, wait three seconds [this
  378.           can be shortened by pressing the <space> key], and then the normal
  379.           screen is brought up. The normal screen consists of 4 areas: (1)
  380.           the status line, (2) the receive area, (3) the keyboard area, and
  381.           (4) the sending area.
  382.           
  383.           The information contained on the status line consists of:
  384.           
  385.                a) The state of the program - either RCVE or XMIT
  386.                b) The current value of the receiving speed.
  387.                c) The current value of the transmitting speed - this can have
  388.                   a value of "LK" which indicates that the transmitting speed
  389.                   locked to the receiving speed (see Alt-L later).
  390.                d) The count of the number of characters currently in the    
  391.                   keyboard buffer (to a maximum of 2048 characters).
  392.                e) The state of the digital filter.
  393.                f) The "letter" space to dit ratio.
  394.                g) The "word" space to dit ratio.
  395.                h) The monitor frequency.
  396.                i) The local and GMT/UCT time.
  397.           
  398.           This is followed by the window for the data received by the program
  399.           - while receiving, if the program detects a character which is
  400.           invalid, it will be replaced with a @. The name of the receive
  401.           window will flash when there is either printer or file capturing of
  402.           received data. Also, the upper right corner of the shows which of
  403.           the two sets of receive (see alt-U in special keys) is currently
  404.  
  405.  
  406.  
  407.           active.
  408.           Next comes the window where the keyboard data is display that the
  409.           user has entered for transmitting. And the final area is to show
  410.           the user what is being sent.
  411.           
  412.           Just a brief warning. Do not have a "background" program such as
  413.           print or a TSR running which can actively steal CPU cycles from the
  414.           program. This will severely alter the timing mechanisms of the
  415.           program.
  416.           
  417.           
  418.                                    Operating Tips
  419.           
  420.           When the program is interpreting the incoming signal, it makes
  421.           every attempt to properly decode the signal. However, because there
  422.           is an infinite number of different "fists", it becomes almost
  423.           impossible to adjust for each different operator. Frequently the
  424.           user of the program must provide assistance so that the program can
  425.           function as the user desires. This assistance if provide thru the
  426.           F1, F2, F3 and F4 function keys.
  427.           
  428.           F1 and F2 should be used when the characters are translated into Ts
  429.           and Es - for example, "C" becomes "TETE" - or when characters are
  430.           combined - such as "AM" becomes "J". These two keys adjust the
  431.           length of the space between elements of a character. Too long and
  432.           the "AM" becomes "J" and too short results in the "TETE". As you
  433.           use F1 and F2, the effect is reflected by the "Ltr=" value on the
  434.           status line of the screen. The value reflects the "dit" time that
  435.           represents the inter-letter space.
  436.           
  437.           The second assistance is thru the F3 and F4 keys. These keys are
  438.           used to help the program determine the end of letters in a word. If
  439.           the word "help" is shown as "h e l p" then the F3 key should be
  440.           used. And if "help me" is show as "helpme" then F4 should be used.
  441.           As with F1 and F2, when you use F3 and F4, the effect is reflected
  442.           by the "Word=" value on the status line of the screen. The value
  443.           represents the "dit" time that reflects the between-word space.
  444.           
  445.           During the development of the program, it quickly became apparent
  446.           that without these function keys, the program would never be able
  447.           to cope with the variety of "fists". Use them properly and the
  448.           program is fully capable of showing even poor code on the screen.
  449.           
  450.           It is not unusual for the Rx speed on the status line to change a
  451.           bit either up or down when the program is copying code solidly.
  452.           This is caused by the program recalculating the receive code speed
  453.           at the end of each dit or dah. The program should continue to copy
  454.           the incoming code with no problem. On the other hand, if the speed
  455.           should change by large values, this is an indication that the input
  456.           signal is not properly tuned in such that the interface provides a
  457.           solid signal to the computer -- another cause can be static
  458.           crashes.
  459.           
  460.           
  461.           
  462.  
  463.  
  464.                                    "Special Keys"
  465.           
  466.           The program will respond to some keys other than as data to be
  467.           sent. A brief explanation of these special keys can be obtained by
  468.           entering Alt-H while the program is executing. The following is a
  469.           more detailed description of each key.
  470.           
  471.                ESC       This key will toggle the program between receive and
  472.                          transmit modes. The left end of the status line will
  473.                          show the current mode. Additionally if in transmit
  474.                          mode, the name of the Sending window will blink.
  475.           
  476.                F1        Adjust length of letter spacing down by .1 times of
  477.                          the current dit length. This key should be pressed
  478.                          when the received code is shown as is not separated
  479.                          into individual characters properly. For example,
  480.                          "is" is interpreted as "5".
  481.           
  482.                F2        Adjust length of letter spacing up by .1 times of
  483.                          the current dit length. This key should be pressed
  484.                          when the received code is shown as a string of Es
  485.                          and Ts. For example, "B" would be shown as "TEEE".
  486.           
  487.                F3        When the spaces between words are missing, press
  488.                          this key. This adjusts the length of the "space"
  489.                          between words down by .1 times the current dit
  490.                          length.
  491.           
  492.                F4        When every letter is separated by a space, use this
  493.                          key. Each press of the key, adjust the length of the
  494.                          "space" between words up by .1 times the current dit
  495.                          length.
  496.           
  497.                F5        Decreases the send speed by 1 wpm.
  498.           
  499.            alt-F5        Decreases the send speed by 5 wpm.
  500.           
  501.                F6        Increases the send speed by 1 wpm.
  502.           
  503.            alt-F6        Increases the send speed by 5 wpm.
  504.           
  505.                F7        Clear the receive window of the screen
  506.                
  507.                F8        Clear the keyboard window of the screen. Note that
  508.                          this will also change the "Buff" entry of the status
  509.                          line to zero.
  510.           
  511.                F9        Toggle the digital filter. There are 4 settings of
  512.                          the filter.  "Low" which limit the maximum received
  513.                          code speed to 75 wpm but the program will be
  514.                          sensitive to "noise". "Med" will limit the maximum
  515.                          speed to 37 wpm but makes the program less sensitive
  516.                          to noise. "Hi" limits the speed to 18 wpm but makes
  517.                          the program even more insensitive to noise. And
  518.                          finally, "Off" which removes limits from the maximum
  519.  
  520.  
  521.  
  522.                          speed but also makes the program very sensitive to
  523.                          noise.
  524.           
  525.                F10       This will reset all program receive timing
  526.                          parameters to their default values.
  527.           
  528.                alt-B     This will toggle the monitor on and off. The current
  529.                          state can be seen on the status line.
  530.           
  531.                alt-H     A brief description of each special key will be
  532.                          shown. The display can be terminated prematurely by
  533.                          pressing the "ESC" key.
  534.           
  535.                alt-I     The user will prompted of the name of a file to be
  536.                          read and treated as if the data were keyboard input
  537.                          for transmission. The file will be read until end-
  538.                          of-file is reached or until the user presses alt-I
  539.                          a second time. When the file is closed, the user
  540.                          will be notified with a brief message on the screen.
  541.           
  542.                alt-L     This key will lock (or unlock) the transmit code
  543.                          speed to the value of the receiving code speed. A
  544.                          brief message is shown the screen. Also, the TxSpeed
  545.                          of the status line will reflect the current value.
  546.           
  547.                alt-M     This will display the value of the Call, Qth, and
  548.                          the 10 canned messages.
  549.           
  550.                alt-N     Allows the user to initialize the value of "number"
  551.           
  552.                alt-O     This provides the user with the writing of the
  553.                          received CW to a file. The user will be prompted for
  554.                          the file name. The program always opens the file in
  555.                          "append" mode. The file will remain open until alt-O
  556.                          is pressed a second time or until the program
  557.                          terminates. Note that any special cw characters such
  558.                          as "BT" will be shown in brackets - for example,
  559.                          [BT] - also, once a minute the date and time will be
  560.                          written to the file again surrounded with brackets.
  561.           
  562.                alt-P     This function is identical to the alt-O described 
  563.                          above except that the output is to the user printer.
  564.           
  565.                alt-Q     Terminate program.
  566.           
  567.                alt-R     This will cause the program to generate 63 groups of
  568.                          5 characters of random code. It can be used for code
  569.                          practice.
  570.           
  571.                alt-S     If the user is curious, this key will show the
  572.                          current state of the mean-deviation and mark tables.
  573.                          It is present for program debugging.
  574.           
  575.                alt-T     Allows the user to adjust the frequency of the
  576.                          monitor.
  577.  
  578.           
  579.                alt-U     The program has the ability to maintain its receive
  580.                          algorithm values for 2 different signals. This key
  581.                          will flip the program from one signal to the other.
  582.                          This can be useful when you are in a QSO with two 
  583.                          people are not sending identical code. Without this
  584.                          functionality, there would be the possibility of a
  585.                          brief period time when the program would receive
  586.                          "garbage" while it synched up with the other signal.
  587.           
  588.                alt-0     Send message 0.
  589.           
  590.                alt-1     Send message 1.
  591.                  .
  592.                  .
  593.                  .
  594.                alt-9     Send message 9.
  595.           
  596.                Insert    Send cw character AS
  597.           
  598.                Home      Send cw character KN
  599.           
  600.                PgUp      Send cw character AR
  601.           
  602.                PgDn      Send cw character SK
  603.           
  604.                End       Send cw character SN
  605.           
  606.                Delete    Send cw character BK and switch program to receive
  607.                          mode.
  608.           
  609.                <enter>   Send cw character BT
  610.           
  611.                UpArrow   Send call
  612.           
  613.                DnArrow   Send Qth
  614.           
  615.                RtArrow   Send "number"
  616.           
  617.                LtArrow   Increment "number" by 1.
  618.           
  619.                !         Send cw character AA
  620.           
  621.                #         Send cw character KA
  622.           
  623.                $         Send cw character IQ
  624.           
  625.                %         Send cw character AK
  626.           
  627.           Any character which is not in the above list nor represents a valid
  628.           CW character will result in a Beep.
  629.           
  630.           
  631.           
  632.                                  And there is more!
  633.           
  634.           I have an ICOM IC-765 and have developed a computer interface to
  635.           it. I then combined this interface with the CW program. This allows
  636.           me to first tune the rig with my computer and then with the simple
  637.           pressing of the F12 key, I'm in the CW program. Another press of
  638.           F12 returns me back to the interface program. If you are interested
  639.           in this software and have an ICOM CT-17 CI-V interface (I can
  640.           provide you with the diagram of a $12 replacement for the $97.50
  641.           that ICOM wants for the CT-17), send me a 5.25 floppy along with a
  642.           shareware fee of $20. This interface has proven very effective in
  643.           controlling my IC-765 and recognizing when I manually assume
  644.           control of it. Based upon the documentation provided to me by ICOM,
  645.           the program should be equally effective in controlling other ICOM
  646.           HF rigs. 
  647.           
  648.           
  649.           
  650.           
  651.                                         Change history
  652.            
  653.           Rev: 1.01 -- 25 July 1991
  654.                   Initial release
  655.           
  656.           Rev: 1.02 -- 31 August 1991
  657.                   Implemented calibration function.
  658.                   Changed initial value calculations using results 
  659.                        of calibration function.
  660.                   Blanks and special characters weren't showing adjusted 
  661.                        buffer count.
  662.                   Initial filter value was getting changed down to "low".
  663.                   Changed Welcome screen to reflect new rev number.
  664.                   Corrected Alt-I function - it was not working.
  665.                   Corrected TellClose - in case current line not at 
  666.                        announcement.
  667.                   Changed OpenWindow to center message
  668.                   TxLock wasn t functioning
  669.           
  670.           Rev: 1.03 -- 15 September 1991
  671.                   The help function (Alt-H) was inadvertantly changed such 
  672.                   that it wouldn't function at all.
  673.           
  674.           Rev: 1.04 -- 20 September 1991
  675.                   Corrected Farnsworth spacing - it was too short.
  676.                   Show Farnsworth speed on send area border when active.
  677.           
  678.           
  679.           
  680.                                           Future changes
  681.           
  682.                   I'm currently working on a mouse interface for as many 
  683.                   keyboard type functions as possible.
  684.           
  685.                   Any and all suggestions are solicitied. In fact, many of 
  686.                   the current features were the result of suggestions from 
  687.                   hams here in the Phoenix area. If you have an idea, let 
  688.                   me know.
  689.