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

  1.      CW is a Morse Code send/receive program designed to run on the IBM PC and
  2. it's clones.  The program expects to find the Color Graphics Adapter present.
  3. It will not function correctly with a Mono board or the EGA.  A split screen
  4. format is used for the visual interface and on-line help is available to the
  5. operator.  On-line help is provided by the file HELP.CW.  If that file is not
  6. on the default drive, the program will still function, but without help.
  7.  
  8.      The program is user configurable and creates a file which supports the
  9. screen images for subsequent use.  The user has the option of changing the
  10. operating characteristics and input/output environment recognized by the pro-
  11. gram.  These may then be saved by CW in a file called INIT.CW, an ASCII file
  12. which can be viewed/modified using a word processor.  The default character-
  13. istics provide for Morse Input and Output on communications port COM1 using
  14. the RTS and CTS signal lines.   If INIT.CW is not on the default disk then
  15. the default values are assumed.
  16.  
  17.      CW.COM is a user supported program which may be transferred and/or copied
  18. as often as you like.  No monetary fees (other than disk copying) may be
  19. charged as a part of this service.  The program is a product of
  20.  
  21.           Dave Freese, W1HKJ
  22.           c/o Clermont Computer Consultants
  23.           29 N Ravenwood Drive
  24.           Cape May Court House, NJ  08210
  25.  
  26.           (609) 624 0076
  27.  
  28.      The program is written in TURBO (tm) PASCAL and demonstrates how well
  29. that particular product allows full use of the PC's hardware. Despite the
  30. disparaging reviews from some self proclaimed keepers of the PASCAL standard,
  31. this program demonstrates the efficacy of TURBO Pascal.
  32.  
  33.      It is not anticipated that the source code for this program will be
  34. placed in the public domain.
  35.  
  36.      Have fun with CW.  If you enjoy using it as much as I enjoyed creating
  37. it, you will have a ball.  Happy DX and bcnu.
  38.                           73's   Dave   W 1 H K J
  39.  
  40.  
  41. INSTALLATION PROCEDURE
  42.  
  43.      Create a bootable disk with CW.COM and HELP.CW installed in the root
  44. directory.  CW.COM is compatible with ancilliary programs such as SIDEKICK(tm)
  45. and in fact is much enhanced when used in conjunction with that product.
  46.  
  47.      When CW is run for the first time, the Logo, and Help screens are created
  48. and stored in a new file called IMAGE.CW.  This new file is used on subsequent
  49. program executions to speed the screen graphic response time.
  50.  
  51.      Press <F10> to review the HELP screen and then <SPACE> followed by <F7>
  52. to enter the configuration procedures.  CW is distributed with presets for
  53. screen colors to suit the authors tastes.  Colors may be altered, reviewed and
  54. eventually stored in an initialization file called INIT.CW.
  55.  
  56.      The internal tone generator is configured to ON by the default configur-
  57. ation parameters.  Try typing a few lines of text and observe the operation of
  58. the type ahead keyboard buffer/display, the character transmit indication and
  59. the morse code generated on the internal speaker.
  60.  
  61. PROGRAM TERMINATION
  62.  
  63.      The <ctrl>C and <Break> keys are disabled by the program.  The program is
  64. exited by the use of the <alt><F10> keystroke combination.  This allows a
  65. graceful termination of any open files in use by the program.
  66.  
  67. MESSAGE BUFFERS
  68.  
  69. <F1> - Transmitting a Message Buffer
  70.  
  71.      CW maintains 10 message buffers (0..9) which may be transmitted by press-
  72. ing <F1># where # is  0..9 .  The <F1># sequence may be pressed at any time
  73. which automatically inserts the specified message buffer into the outgoing
  74. character buffer.
  75.  
  76. <F2> - Modifying the Message Buffers
  77.  
  78.      The contents of the ten message buffers may be observed and modified by
  79. pressing <F2>.  The ten message buffers are displayed on a full screen and
  80. the operator prompted to enter a number (0..9) to modify a buffer, or <ESC>
  81. to return to the split screen display.  If a buffer is selected the buffer is
  82. cleared and the cursor placed at the beginning of the buffer line.  Up to 80
  83. characters may be put in each buffer.
  84.  
  85. <alt><F1> - Loading the Message Buffers
  86.  
  87.      The 10 message buffers may be loaded from disk.  This is accomplished by
  88. pressing <alt><F1>.  The operator is prompted to enter a valid directory-tree
  89. filename which will contain the desired message buffers.  This file is an
  90. ASCII file containing 10 lines of up to 80 characters per line.  They may be
  91. created using CW or a separate word processor program.
  92.  
  93. <alt><F2> - Saving the Message Buffers
  94.  
  95.      The present message buffer contents may be assigned to a disk file of the
  96. operators choice by pressing <alt><F2>.  The operator is prompted to enter a
  97. directory-tree filename for storage.  Existing files will be overwritten by
  98. this function.
  99.  
  100. ASCII TRANSMIT/RECEIVE FILES
  101.  
  102. <F3> - ASCII File Transmit Function
  103.  
  104.      Any valid ASCII file may be transmitted by pressing <F3>.  The operator
  105. is prompted to enter the file name (directory modifiers are ok).  If the file
  106. is not found the operator is returned to the split screen display.  If found,
  107. transmission begins immediately with character display in the transmit window.
  108. CR/LF and other non-Morse-characters are translated to a SPACE for the pur-
  109. poses of generating a correct timing duration.  Transmission may be altered
  110. with the ^P or ^X keys, causing a pause of termination respectively.  If this
  111. key is accidently pressed, respond to the file name prompt with a <RETN>.
  112.  
  113. <alt><F3> - ASCII Receive File Save Function
  114.  
  115.      The program maintains a receive buffer of 8192 bytes which acts as a
  116. first-in/first-out wrap around memory.  The operator may save the contents of
  117. this buffer from its beginning up to the last character received.  Pressing
  118. the <alt><F3> function key will cause an operator prompt for a filename in
  119. which to save the receive buffer.  If this key is accidently pressed, respond
  120. to the filename prompt with a <RETN>.
  121.  
  122. AUTOMATIC LOG MAINTENANCE
  123.  
  124. <F4> - Log Data Entry
  125.  
  126.      CW maintains the file LOG.CW, an ASCII data file containing a log of QSO
  127. activity.  Data may be entered in the log by pressing <F4>.  The operator is
  128. prompted to enter the data for the log in the following sequence:
  129.  
  130.                Date ..............xxxxxxxx
  131.                Time ..............xxxxx
  132.                Freq ..............xxxxxx
  133.                Power .............xxx
  134.                Outgoing RST ......xxx
  135.                Incoming RST ......xxx
  136.                Call sign worked ..xxxxxxxx
  137.                Comments [name, etc]
  138.  
  139.                xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  140.  
  141.      Default values may be obtained by pressing <RETN> alone.  This is partic-
  142. ularly useful for the TIME and DATE values which are the MS-DOS values corr-
  143. ected to UTC.  All other defaults are blank filled strings.
  144.  
  145.      Each composite of log data forms a single line in the file LOG.CW which
  146. may be subsequently altered with a word processor such as SideKick, Wordstar
  147. or Brief.
  148.  
  149. <alt><F4> - Saving the LOG
  150.  
  151.    The file LOG.CW may be updated manually by pressing the <alt><F4> function
  152. key.  Log entries made during normal operation will be automatically saved at
  153. the end of the operating session, or when 100 QSO's have been logged, which-
  154. ever comes first.
  155.  
  156. TRANSMIT/RECEIVE CHARACTER RATES
  157.  
  158. <F5> - Set Receive Code Speed = Transmit Code Speed
  159.  
  160.      During CW reception the program maintains an estimate of the incoming
  161. code speed.  First order difference equations are used to filter and smoothly
  162. track changes in the detected speed.  During high noise bursts or for rapid
  163. changes in received CW speed it may become necessary to reset the receive
  164. tracking values.  Use this function key to set the current Receive Tracking
  165. Speed equal to the current Transmit Speed.
  166.  
  167. <alt><F5> - Set Transmit Code Speed = Receive Code Speed
  168.  
  169.      During contests and other rapid CW exchanges it is considered good oper-
  170. ating to transmit at the receive code speed.  Pressing <alt><F5> will immed-
  171. iately force the transmit code speed to the received code speed.
  172.  
  173.  
  174. <F6> - Adjusting Transmit Code Speed
  175.  
  176.      The transmitted code speed may be adjusted in 1 WPM increments.  Pressing
  177. <F6> causes an operator prompt for the new value on the status line.  Entries
  178. must be digits 0 ... 9, improper entries will be rejected and the prompt re-
  179. issued.
  180.  
  181. <alt><F6> - Calibrating the Code Speed
  182.  
  183.      The transmit and receive code speeds are dependent on timing loops used
  184. in TURBO (tm) PASCAL.  They are therefore sensitive to the clock rate of the
  185. computer.  CW can accomodate variations in clock frequencies.  Accurate timing
  186. does require a scope and an external 10 HZ signal generator.  The signal gen-
  187. erator may be a calibrated keyer.
  188.  
  189.      To begin the calibration press <alt><F6> and select the transmit or re-
  190. ceive procedure.
  191.  
  192.      RECEIVE CALIBRATION - Apply a 10 Hz square wave of the proper amplitude
  193. to the input port.  The 10 Hz square wave is the dot rate equivalent of 25
  194. WPM cw.  Pressing the <u> and <d> keys will alter the displayed code speed in
  195. 0.1 WPM increments.  Pressing <U> and <D> will alter displayed code speed in
  196. 1.0 WPM increments.  Press <Q> when the calibration is complete.
  197.  
  198.  
  199.      TRANSMIT CALIBRATION - A nominal 10 Hz square is generated at the output
  200. port.  Adjust this signal for proper frequency by pressing the <u/U> and/or
  201. <d/D> keys for the 10 Hz output.  Press <Q> when the calibration is complete.
  202.  
  203.  
  204.      ALTERNATE CALIBRATION PROCEDURES - The program may be calibrated by 'ear'
  205. and a watch with a sweep second hand.  The ASCII file 'PARIS' contains a seq-
  206. uence of 100 occurences of 'paris '.  This is one of the standard timing words
  207. for text timing as specified in the 1985 issue of the ARRL Handbook.  Proceed
  208. as follows:
  209.  
  210.           <1> Clear the Screen,
  211.           <2> Select transmit code speed to be 25 WPM,
  212.           <3> Select <F3> (transmit file),
  213.           <4> Specify file name of PARIS -- do not press <RETN>,
  214.           <5> Press <RETN> - start timing at the first 'p',
  215.           <6> At the end of the timed minute press ^X to stop transmission.
  216.  
  217.           Count the number of words 'paris' on the screen.  It should be 25.
  218.      If it is not the file INIT.CW can be modified in the Timing Duration
  219.      entry.  The new entry can be calculated as:
  220.  
  221.                     new = old * #words / 25
  222.  
  223.           That completes the transmit calibration.  You now need to calibrate
  224.      an external keyer to 25 wpm.  Some amount of simple hardware will be re-
  225.      quired, the purpose of which is to allow both the computer output and the
  226.      keyer to simultaneously key an external oscillator.  The external keyer
  227.      speed is then adjusted for a zero beat note between the two keying
  228.      sources.  Use this calibrated keyer as the input as described in the pri-
  229.      mary receive calibration procedure.
  230.  
  231.  
  232. SOFTWARE/HARDWARE CONFIGURATION
  233.  
  234. <F7> - Modifying Configuration
  235.  
  236.      The operator may modify the characteristics of the program with respect
  237. to the transmit code weight, initialization values, internal tone, and screen
  238. colors.  Input/output port assignments and logical levels may be changed.  The
  239. designation of time zone for the purposes of timekeeping and logging is avail-
  240. able.   A previous configuration saved on disk may be loaded for quick changes
  241. in operating characterics.
  242.  
  243.  
  244.      TRANSMIT WEIGHTING - The operator may select transmit code weighting to
  245. fit his or her individual requirements.  A prompt for the following charac-
  246. teristics is presented:
  247.  
  248.                     Dash/Dot (3.00) .....
  249.                     Letter/Dot (3.00) ...
  250.                     Word/Dot (7.00) .....
  251.  
  252. where the values in parenthesis are the present values.  Pressing return at
  253. any one of the three leaves the value unchanged.  Here are some suggestions
  254. for transmit weighting and its intended use.
  255.  
  256.           Dash/Dot    Letter/Dot    Word/Dot       Used for:
  257.  
  258.             3.00        3.00          7.00         Standard code weighting
  259.  
  260.             3.60        3.60          8.00         Moderately heavy code
  261.                                                    good for QRN conditions
  262.  
  263.             3.00       10.00         30.00         Practice at 1/2 WPM rate
  264.  
  265.             3.00       17.00         51.00         Practice at 1/3 WPM rate
  266.  
  267.             3.00       24.00         73.00         Practice at 1/4 WPM rate
  268.  
  269.  
  270.  
  271.      SET INTERNAL TONE - The internal cw tones may be toggled ON/OFF and the
  272. frequency of the tone modified.  If the 'y' response is made to the prompt:
  273.  
  274.                PC tone on? <Y/N>');
  275.  
  276. then the operator is requested to enter the desired tone:
  277.  
  278.                Note frequency =  600  change to ....
  279.  
  280.      Pressing <RETN> leaves the frequency unchanged.
  281.  
  282.  
  283.  
  284.      SPECIFYING DEFAULT MESSAGE FILE - The operator may specify the start-up
  285. messages which will be loaded on each execution of CW.  The response to the
  286. prompt:
  287.  
  288.                Enter message file name.ext ...
  289.  
  290. should be an existing \directory\filename.ext string, where the directory is
  291. optional.
  292.  
  293.  
  294.  
  295.      SPECIFYING TIME ZONE - The program default for time zone is 0.  That is,
  296. you live in Greenwich, England.  Since most of us are not so fortunate, and
  297. good log keeping stipulates using UTC (GMT for us oldtimers), the operator can
  298. specify his or her own time zone as:
  299.  
  300.                Enter your time zone ...
  301.  
  302.      If a non-zero time zone is entered, the program adjusts the date and time
  303. for the on screen display and the log to accomodate the time zone.  Proper
  304. attention is also made to month and year rollover with the exception of leap
  305. year.  This is a subject of a future change to the program.
  306.  
  307.  
  308.  
  309.      CONTROLLING HARDWARE INTERFACE - CW may be configured to access any port
  310. within the 8088 port address space.  The individual bit and its logical sense
  311. can also be specified.  The program default values are for the COM1 port and
  312. uses the RTS, CTS signals for Transmit and Receive respectively.  The operator
  313. will be prompted:
  314.  
  315.                     Enter transmit port (1020)...
  316.                           transmit bit # (1).....
  317.                           transmit logic (1) ....
  318.                           receive port (1022)....
  319.                           receive bit # (4)......
  320.                           receive logic (1) .....
  321.  
  322. The values in parenthesis are the present in use, a <RETN> leaves the value
  323. unchanged.  You must enter the port numbers in decimal, the bit number as 0..7,
  324. and the logic level as 1 => active high; 0 => active low.  This may take some
  325. experimenting for your particular hardware.  The author has configured a VISUAL
  326. COMMUTER (IBM clone) and the MFJ 1224, RTTY/CW terminal unit to the LPT1
  327. parallel port and a homebrew interface to the COM1 port.  The homebrew design
  328. is the subject of a forthcoming public domain release.
  329.  
  330.  
  331.  
  332.      CHANGING RECEIVE FILTERING - The program is designed to track the charac-
  333. ter rate of the incoming (received) morse code.  Under ideal conditions, no
  334. filtering is required at all, however, in the real world of QRN and QRM it is
  335. an absolute necessity.  The filtering is accomplished using the digital equiv-
  336. alent of a low pass filter.  Just as the response of a low pass RC filter can
  337. be controlled by the resistor-capacitor product, the difference equation
  338. coefficients can be modified to adjust it's response.  The operator is prompt-
  339. ed as follows:
  340.  
  341.                     Receive filter coefficient:
  342.                       fast ... slow
  343.                         <2> .. <8>
  344.  
  345.                     Enter ...
  346.  
  347.      The default value is 5 which seems to work well with the author's Kenwood
  348. 599D receiver with an 800 Hz CW filter.  A 200 Hz wide active audio filter is
  349. also used along with a limiter/detector of the author's own design.  This is
  350. definitely an area for experimentation and user feedback.  I simply cannot
  351. afford to buy one of everything to test the programs utility.
  352.  
  353.      LOADING CONFIGURATION - The operator is prompted to enter the name of a
  354. configuration file which is to be loaded.  If the file does not exist or the
  355. <RETN> is pressed with out a file name then the default configuration is
  356. established.
  357.  
  358.  
  359. SAVING CONFIGURATION PARAMETERS
  360.  
  361. <alt><F7> - Save Configuration Parameters
  362.  
  363.      The operator has the option of saving the operating configuration of the
  364. program on a disk file.  The prompt for a file name may be given a <RETN> re-
  365. sponse in which case the default name of 'INIT.CW' is assumed.
  366.  
  367.      The operating characteristics of CW as determined by the configuration
  368. parameters can be saved on the default disk.  The program looks for this file
  369. on initial execution and uses the values contained therein for its presets.
  370. INIT.CW is an ASCII file created by CW when the <alt><F7> function key is
  371. pressed.  It may be observed/changed with any wordprocessor.  A sample of the
  372. INIT.CW file contents are:
  373.  
  374. Xmt_WPM ............  18
  375. Dash Dot Ratio ..... 3.0
  376. Letter Dot Ratio ... 3.0
  377. Word Dot Ratio ..... 7.0
  378. PC monitor flag ....   1
  379. Monitor note freq .. 600
  380. Time Zone ..........   0
  381. Initial msg file ...NIL
  382. Timing Duration .... 900
  383. Rx Coefficient .....5200
  384. Xmt background .....   7
  385. Xmt foreground .....  14
  386. Rcv background .....   3
  387. Rcv foreground .....  15
  388. Status background ..   4
  389. Status foreground ..  11
  390. Prompt background ..   1
  391. Prompt foreground ..  14
  392. Aux background .....   6
  393. Aux foreground .....  14
  394. Help background ....   2
  395. Help foreground ....  14
  396. Transmit port ......1020
  397. Transmit bit .......   2
  398. Transmit level .....   1
  399. Receive port .......1022
  400. Receive bit ........  16
  401. Receive level ......   1
  402. Filter coefficient..   5
  403.  
  404.      The above values are the equivalent to the internal program configuration
  405. defaults.
  406.  
  407.  
  408. TUNING & OTHER STUFF
  409.  
  410.  
  411. <F8> - Tune the Transmitter
  412.  
  413.      Pressing the <F8> function key causes the transmitter to be held in the
  414. key down condition.  The key down condition is released when any other key is
  415. pressed.  I suggest the <SPACE> to prevent on the air burbles - hi.
  416.  
  417.  
  418. <alt><F8> - Send V's
  419.  
  420.      The character V is used as a standard "test" signal by most CW operators.
  421. The <alt><F8> key causes a string of V's to be transmitted.  Pressing any key
  422. will terminate the sequence of V-s.  The <SPACE> is also appropriate here.
  423.  
  424.  
  425. <F9> - Clearing the Screen
  426.  
  427.      The split screen display is cleared of all text, the colors reset, and
  428. the status line refreshed when the <F9> function key is pressed.
  429.  
  430.  
  431. <alt><F9> - Reset Receive Buffer Pointer
  432.  
  433.      Clears the screen the same as <F9>, but additionally resets the receive
  434. buffer to begin loading characters at the beginning.  Useful for initializing
  435. the buffer during incoming traffic or bulletins.
  436.  
  437.  
  438. <F10> - H E L P !!!
  439.  
  440.      On line help is available and obtained by pressing <F10>.  A command
  441. synopsis is displayed.  Pressing any function-key or alt-function-key sequence
  442. will display the appropriate portion of the HELP.CW file in a central screen
  443. window.  If the file HELP.CW is not on the default drive, no action is taken.
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  screen
  464. window.  If the file HELP.CW is