home *** CD-ROM | disk | FTP | other *** search
- CW is a Morse Code send/receive program designed to run on the IBM PC and
- it's clones. The program expects to find the Color Graphics Adapter present.
- It will not function correctly with a Mono board or the EGA. A split screen
- format is used for the visual interface and on-line help is available to the
- operator. On-line help is provided by the file HELP.CW. If that file is not
- on the default drive, the program will still function, but without help.
-
- The program is user configurable and creates a file which supports the
- screen images for subsequent use. The user has the option of changing the
- operating characteristics and input/output environment recognized by the pro-
- gram. These may then be saved by CW in a file called INIT.CW, an ASCII file
- which can be viewed/modified using a word processor. The default character-
- istics provide for Morse Input and Output on communications port COM1 using
- the RTS and CTS signal lines. If INIT.CW is not on the default disk then
- the default values are assumed.
-
- CW.COM is a user supported program which may be transferred and/or copied
- as often as you like. No monetary fees (other than disk copying) may be
- charged as a part of this service. The program is a product of
-
- Dave Freese, W1HKJ
- c/o Clermont Computer Consultants
- 29 N Ravenwood Drive
- Cape May Court House, NJ 08210
-
- (609) 624 0076
-
- The program is written in TURBO (tm) PASCAL and demonstrates how well
- that particular product allows full use of the PC's hardware. Despite the
- disparaging reviews from some self proclaimed keepers of the PASCAL standard,
- this program demonstrates the efficacy of TURBO Pascal.
-
- It is not anticipated that the source code for this program will be
- placed in the public domain.
-
- Have fun with CW. If you enjoy using it as much as I enjoyed creating
- it, you will have a ball. Happy DX and bcnu.
- 73's Dave W 1 H K J
-
-
- INSTALLATION PROCEDURE
-
- Create a bootable disk with CW.COM and HELP.CW installed in the root
- directory. CW.COM is compatible with ancilliary programs such as SIDEKICK(tm).
- When used with this and other keyboard enhancement programs special considera-
- tion must be given to program timing. See the section on calibration for more
- details.
-
- When CW is run for the first time, the Logo, and Help screens are created
- and stored in a new file called IMAGE.CW. This new file is used on subsequent
- program executions to speed the screen graphic response time.
-
- Press <F10> to review the HELP screen and then <SPACE> followed by <F7>
- to enter the configuration procedures. CW is distributed with presets for
- screen colors to suit the authors tastes. Colors may be altered, reviewed and
- eventually stored in an initialization file called INIT.CW.
-
- The internal tone generator is configured to ON by the default configur-
- ation parameters. Try typing a few lines of text and observe the operation of
- the type ahead keyboard buffer/display, the character transmit indication and
- the morse code generated on the internal speaker.
-
- PROGRAM TERMINATION
-
- The <ctrl>C and <Break> keys are disabled by the program. The program is
- exited by the use of the <alt><F10> keystroke combination. This allows a
- graceful termination of any open files in use by the program.
-
- DIRECTORY ACCESS
-
- Whenever a file access is required by the program, the operator may be
- prompted to enter a file name. The prompt may include a default response. The
- operator will also have the choice of using the <Ctrl>F, ^F, key sequence to
- access the disk directory. The directory access is provided by a window over-
- lay with an additional prompt for the directory mask. This mask may use the
- usual wildcards and/or directory structure allowed under DOS. A <Retrn> will
- produce the same result as the *.* wildcard specification.
-
-
- MESSAGE BUFFERS
-
- <F1> - Transmitting a Message Buffer
-
- CW maintains 10 message buffers (0..9) which may be transmitted by press-
- ing <F1># where # is 0..9 . The <F1># sequence may be pressed at any time
- which automatically inserts the specified message buffer into the outgoing
- character buffer.
-
- <F2> - Modifying the Message Buffers
-
- The contents of the ten message buffers may be observed and modified by
- pressing <F2>. The ten message buffers are displayed on a full screen and
- the operator prompted to enter a number (0..9) to modify a buffer, or <ESC>
- to return to the split screen display. If a buffer is selected the buffer is
- cleared and the cursor placed at the beginning of the buffer line. Up to 80
- characters may be put in each buffer.
-
- <alt><F1> - Loading the Message Buffers
-
- The 10 message buffers may be loaded from disk. This is accomplished by
- pressing <alt><F1>. The operator is prompted to enter a valid directory-tree
- filename which will contain the desired message buffers. This file is an
- ASCII file containing 10 lines of up to 80 characters per line. They may be
- created using CW or a separate word processor program.
-
- <alt><F2> - Saving the Message Buffers
-
- The present message buffer contents may be assigned to a disk file of the
- operators choice by pressing <alt><F2>. The operator is prompted to enter a
- directory-tree filename for storage. Existing files will be overwritten by
- this function.
-
- ASCII TRANSMIT/RECEIVE FILES
-
- <F3> - ASCII File Transmit Function
-
- Any valid ASCII file may be transmitted by pressing <F3>. The operator
- is prompted to enter the file name (directory modifiers are ok). If the file
- is not found the operator is returned to the split screen display. If found,
- transmission begins immediately with character display in the transmit window.
- CR/LF and other non-Morse-characters are translated to a SPACE for the pur-
- poses of generating a correct timing duration. Transmission may be altered
- with the ^P or ^X keys, causing a pause of termination respectively. If this
- key is accidently pressed, respond to the file name prompt with a <RETN>.
-
- The file may contain control fields which alter several aspects of the
- code transmission. A control field is generated by the backslash character as
- at the beginning of the first three lines. A space followed by any ASCII char-
- acters is treated as a comment field which is skipped over during transmission.
-
- A backslash in column one followed by a control character and/or control
- values will cause the transmission characteristic to change as follows:
-
- Control sequence Effect
-
- \*ascii text ascii text dislayed on line 24 of display
- \#nnn wpm rate changed to nnn (integer value)
- \Dff.f dash-dot-ratio changed to ff.f (float value)
- \dff.f " " " " " " " "
- \Lff.f letter-dot-ratio changed to ff.f
- \lff.f " " " " " "
- \Wff.f word-dot-ratio changed to ff.f
- \wff.f " " " " " "
-
- See the file CODETEST for examples of each of the above.
-
- <alt><F3> - ASCII Receive File Save Function
-
- The program maintains a receive buffer of 8192 bytes which acts as a
- first-in/first-out wrap around memory. The operator may save the contents of
- this buffer from its beginning up to the last character received. Pressing
- the <alt><F3> function key will cause an operator prompt for a filename in
- which to save the receive buffer. If this key is accidently pressed, respond
- to the filename prompt with a <RETN>.
-
- AUTOMATIC LOG MAINTENANCE
-
- <F4> - Log Data Entry
-
- CW maintains the file LOG.CW, an ASCII data file containing a log of QSO
- activity. Data may be entered in the log by pressing <F4>. The operator is
- prompted to enter the data for the log in the following sequence:
-
- Date ..............xxxxxxxx
- Time ..............xxxxx
- Freq ..............xxxxxx
- Power .............xxx
- Outgoing RST ......xxx
- Incoming RST ......xxx
- Call sign worked ..xxxxxxxx
- Comments [name, etc]
-
- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-
- Default values may be obtained by pressing <RETN> alone. This is partic-
- ularly useful for the TIME and DATE values which are the MS-DOS values corr-
- ected to UTC. All other defaults are blank filled strings.
-
- Each composite of log data forms a single line in the file LOG.CW which
- may be subsequently altered with a word processor such as SideKick, Wordstar
- or Brief.
-
- <alt><F4> - Saving the LOG
-
- The file LOG.CW may be updated manually by pressing the <alt><F4> function
- key. Log entries made during normal operation will be automatically saved at
- the end of the operating session, or when 100 QSO's have been logged, which-
- ever comes first.
-
- TRANSMIT/RECEIVE CHARACTER RATES
-
- <F5> - Set Receive Code Speed = Transmit Code Speed
-
- During CW reception the program maintains an estimate of the incoming
- code speed. First order difference equations are used to filter and smoothly
- track changes in the detected speed. During high noise bursts or for rapid
- changes in received CW speed it may become necessary to reset the receive
- tracking values. Use this function key to set the current Receive Tracking
- Speed equal to the current Transmit Speed.
-
- <alt><F5> - Set Transmit Code Speed = Receive Code Speed
-
- During contests and other rapid CW exchanges it is considered good oper-
- ating to transmit at the receive code speed. Pressing <alt><F5> will immed-
- iately force the transmit code speed to the received code speed.
-
-
- <F6> - Adjusting Transmit Code Speed
-
- The transmitted code speed may be adjusted in 1 WPM increments. Pressing
- <F6> causes an operator prompt for the new value on the status line. Entries
- must be digits 0 ... 9, improper entries will be rejected and the prompt re-
- issued.
-
- <alt><F6> - Calibrating the Code Speed
-
- The transmit and receive code speeds are dependent on timing loops used
- in TURBO (tm) PASCAL. They are therefore sensitive to the clock rate of the
- computer. CW can accomodate variations in clock frequencies. Accurate timing
- does require a scope and an external 10 HZ signal generator. The signal gen-
- erator may be a calibrated keyer.
-
- To begin the calibration press <alt><F6> and select the transmit or re-
- ceive procedure.
-
- RECEIVE CALIBRATION - Apply a 10 Hz square wave of the proper amplitude
- to the input port. The 10 Hz square wave is the dot rate equivalent of 25
- WPM cw. Pressing the <u> and <d> keys will alter the displayed code speed in
- 0.1 WPM increments. Pressing <U> and <D> will alter displayed code speed in
- 1.0 WPM increments. Press <Q> when the calibration is complete.
-
-
- TRANSMIT CALIBRATION - A nominal 10 Hz square is generated at the output
- port. Adjust this signal for proper frequency by pressing the <u/U> and/or
- <d/D> keys for the 10 Hz output. Press <Q> when the calibration is complete.
-
-
- ALTERNATE CALIBRATION PROCEDURES - The program may be calibrated by 'ear'
- and a watch with a sweep second hand. The ASCII file 'PARIS' contains a seq-
- uence of 100 occurences of 'paris '. This is one of the standard timing words
- for text timing as specified in the 1985 issue of the ARRL Handbook. Proceed
- as follows:
-
- <1> Clear the Screen,
- <2> Select transmit code speed to be 25 WPM,
- <3> Select <F3> (transmit file),
- <4> Specify file name of PARIS -- do not press <RETN>,
- <5> Press <RETN> - start timing at the first 'p',
- <6> At the end of the timed minute press ^X to stop transmission.
-
- Count the number of words 'paris' on the screen. It should be 25.
- If it is not the file INIT.CW can be modified in the Timing Duration
- entry. The new entry can be calculated as:
-
- new = old * #words / 25
-
- That completes the transmit calibration. You now need to calibrate
- an external keyer to 25 wpm. Some amount of simple hardware will be re-
- quired, the purpose of which is to allow both the computer output and the
- keyer to simultaneously key an external oscillator. The external keyer
- speed is then adjusted for a zero beat note between the two keying
- sources. Use this calibrated keyer as the input as described in the pri-
- mary receive calibration procedure.
-
- ALTERNATE RECEIVE CALIBRATION - Beginning with version 3.12 of CW a fea-
- ture has been added which is not documented on the help screen. By press-
- ing the <ALT> <d> combination a continuous readout of receive tracking
- filter value (count) is displayed on the 24th line. During the reception
- of a known morse rate - such as W1AW code practice or bulletin - this
- value will be fairly constant. The Rx Coefficient written in the file
- INIT.CW is equal to count * WPM. Try modifying the Rx Coefficient accord-
- ingly and observe the result. Pressing <ALT><d> will toggle the 24th line
- display.
-
-
- SOFTWARE/HARDWARE CONFIGURATION
-
- <F7> - Modifying Configuration
-
- The operator may modify the characteristics of the program with respect
- to the transmit code weight, initialization values, internal tone, and screen
- colors. Input/output port assignments and logical levels may be changed. The
- designation of time zone for the purposes of timekeeping and logging is avail-
- able. A previous configuration saved on disk may be loaded for quick changes
- in operating characterics.
-
-
- TRANSMIT WEIGHTING - The operator may select transmit code weighting to
- fit his or her individual requirements. A prompt for the following charac-
- teristics is presented:
-
- Dash/Dot (3.00) .....
- Letter/Dot (3.00) ...
- Word/Dot (7.00) .....
-
- where the values in parenthesis are the present values. Pressing return at
- any one of the three leaves the value unchanged. Here are some suggestions
- for transmit weighting and its intended use.
-
- Dash/Dot Letter/Dot Word/Dot Used for:
-
- 3.00 3.00 7.00 Standard code weighting
-
- 3.60 3.60 8.00 Moderately heavy code
- good for QRN conditions
-
- 3.00 10.00 30.00 Practice at 1/2 WPM rate
-
- 3.00 17.00 51.00 Practice at 1/3 WPM rate
-
- 3.00 24.00 73.00 Practice at 1/4 WPM rate
-
-
-
- SET INTERNAL TONE - The internal cw tones may be toggled ON/OFF and the
- frequency of the tone modified. If the 'y' response is made to the prompt:
-
- PC tone on? <Y/N>');
-
- then the operator is requested to enter the desired tone:
-
- Note frequency = 600 change to ....
-
- Pressing <RETN> leaves the frequency unchanged.
-
-
-
- SPECIFYING DEFAULT MESSAGE FILE - The operator may specify the start-up
- messages which will be loaded on each execution of CW. The response to the
- prompt:
-
- Enter message file name.ext ...
-
- should be an existing \directory\filename.ext string, where the directory is
- optional.
-
-
-
- SPECIFYING TIME ZONE - The program default for time zone is 0. That is,
- you live in Greenwich, England. Since most of us are not so fortunate, and
- good log keeping stipulates using UTC (GMT for us oldtimers), the operator can
- specify his or her own time zone as:
-
- Enter your time zone ...
-
- If a non-zero time zone is entered, the program adjusts the date and time
- for the on screen display and the log to accomodate the time zone. Proper
- attention is also made to month and year rollover with the exception of leap
- year. This is a subject of a future change to the program.
-
-
-
- CONTROLLING HARDWARE INTERFACE - CW may be configured to access any port
- within the 8088 port address space. The individual bit and its logical sense
- can also be specified. The program default values are for the COM1 port and
- uses the RTS, CTS signals for Transmit and Receive respectively. The operator
- will be prompted:
-
- Enter transmit port (1020)...
- transmit bit # (1).....
- transmit logic (1) ....
- receive port (1022)....
- receive bit # (4)......
- receive logic (1) .....
-
- The values in parenthesis are the present in use, a <RETN> leaves the value
- unchanged. You must enter the port numbers in decimal, the bit number as 0..7,
- and the logic level as 1 => active high; 0 => active low. This may take some
- experimenting for your particular hardware. The author has configured a VISUAL
- COMMUTER (IBM clone) and the MFJ 1224, RTTY/CW terminal unit to the LPT1
- parallel port and a homebrew interface to the COM1 port. The homebrew design
- is the subject of a forthcoming public domain release.
-
-
-
- CHANGING RECEIVE FILTERING - The program is designed to track the charac-
- ter rate of the incoming (received) morse code. Under ideal conditions, no
- filtering is required at all, however, in the real world of QRN and QRM it is
- an absolute necessity. The filtering is accomplished using the digital equiv-
- alent of a low pass filter. Just as the response of a low pass RC filter can
- be controlled by the resistor-capacitor product, the difference equation
- coefficients can be modified to adjust it's response. The operator is prompt-
- ed as follows:
-
- Receive filter coeff: 3
- slow ... fast
- <0> .. <9>
-
- Enter ...
-
- Selecting the value <0> will disable the filter. In this case the receive
- algorithm will rely on the transmit WPM selection. The receive tracking can be
- reset with the <F5> key. This is particularly useful under extremely noisy
- conditions or when the incoming code is a known speed, such as W1AW bulletins.
-
- The default value is 3 which seems to work well with the author's Kenwood
- 599D receiver with an 800 Hz CW filter. A 200 Hz wide active audio filter is
- also used along with a limiter/detector of the author's own design. This is
- definitely an area for experimentation and user feedback. I simply cannot
- afford to buy one of everything to test the programs utility.
-
- LOADING CONFIGURATION - The operator is prompted to enter the name of a
- configuration file which is to be loaded. If the file does not exist or the
- <RETN> is pressed with out a file name then the default configuration is
- established.
-
-
- SAVING CONFIGURATION - The operator has the option of saving the operating
- configuration of the program on a disk file. The prompt for a file name may be
- given a <RETN> response in which case the default name of 'INIT.CW' is assumed.
-
- The operating characteristics of CW as determined by the configuration
- parameters can be saved on the default disk. The program looks for this file
- on initial execution and uses the values contained therein for its presets.
- INIT.CW is an ASCII file which may be observed/changed with any wordprocessor.
- A sample of the INIT.CW file contents are:
-
- Xmt_WPM ............ 18
- Dash Dot Ratio ..... 3.0
- Letter Dot Ratio ... 3.0
- Word Dot Ratio ..... 7.0
- PC monitor flag .... 1
- Monitor note freq .. 600
- Time Zone .......... 0
- Initial msg file ...NIL
- Timing Duration .... 920
- Rx Coefficient .....8250
- Xmt background ..... 7
- Xmt foreground ..... 14
- Rcv background ..... 3
- Rcv foreground ..... 15
- Status background .. 4
- Status foreground .. 11
- Prompt background .. 1
- Prompt foreground .. 14
- Aux background ..... 6
- Aux foreground ..... 14
- Help background .... 2
- Help foreground .... 14
- Transmit port ......1020
- Transmit bit ....... 2
- Transmit level ..... 1
- Receive port .......1022
- Receive bit ........ 16
- Receive level ...... 1
- Filter coefficient.. 5
-
- The above values are the equivalent to the internal program configuration
- defaults.
-
- SPECIAL NOTE FOR USE WITH SIDEKICK - I have always used the program with
- the utility SIDEKICK. Some early feedback on program operation indicated that
- my machine was slower than I wanted to believe. It seems that SIDEKICK really
- makes a significant impact on program speed such as CW which uses a lot of key-
- board i/o. All of the timing loops involved in generation and reception of the
- morse characters have i/o tests imbedded in them. These i/o calls to DOS are
- trapped by SIDEKICK. The number of tests SIDEKICK performs is apparently not
- trivial. My computer is a VISUAL COMMUTER with a V20 operating at 4.77 MHz.
- The Norton Utility SYSINFO indicates a 1.8 performance index. This computer
- requires the following constants in the INIT file:
-
- constant w/o SK w SK
-
- Timing Duration 920 850
- Rx Coefficient 8250 5660
-
- If you use SIDEKICK or other keyboard enhancement utility with CW, you may
- find it necessary to play around a little to find the right values for these
- two constants.
-
-
- TUNING & OTHER STUFF
-
-
- <F8> - Tune the Transmitter
-
- Pressing the <F8> function key causes the transmitter to be held in the
- key down condition. The key down condition is released when any other key is
- pressed. I suggest the <SPACE> to prevent on the air burbles - hi.
-
-
- <alt><F8> - Send V's
-
- The character V is used as a standard "test" signal by most CW operators.
- The <alt><F8> key causes a string of V's to be transmitted. Pressing any key
- will terminate the sequence of V-s. The <SPACE> is also appropriate here.
-
-
- <F9> - Clearing the Screen
-
- The split screen display is cleared of all text, the colors reset, and
- the status line refreshed when the <F9> function key is pressed.
-
-
- <alt><F9> - Reset Receive Buffer Pointer
-
- Clears the screen the same as <F9>, but additionally resets the receive
- buffer to begin loading characters at the beginning. Useful for initializing
- the buffer during incoming traffic or bulletins.
-
-
- <F10> - H E L P !!!
-
- On line help is available and obtained by pressing <F10>. A command
- synopsis is displayed. Pressing any function-key or alt-function-key sequence
- will display the appropriate portion of the HELP.CW file in a central screen
- window. If the file HELP.CW is not on the default drive, no action is taken.
-