AFRICAM V2.1 commands

Version 2.1 adds support for ET3 encoding (32-bit frames).
Also we can now decode ET BPSK frames transmitted either differentially
(the traditional standard) or non-differentially.  The non-differential
mode is called PSKL.  Non-differential transmission is more robust in
noise but does introduce a 2-way ambiguity in the reference phase.  The
FLIP button can manually invert this reference value - you'll have to
re-sync afterwards.  I'm looking at how to make this automatic.
Until we can establish an external phase reference, differential
encoding is probably still best for weak signals in white noise.

This program is intended for receiving what has become known as BPSK.
It's a weak-signal mode mostly used on the lowfer band.  It's actually
"differential-mark" BPSK.

The speed is defaulted to MS100, which means 100 milliseconds per bit.
You can select any speed which is an integral multiple of one audio
cycle at 800 Hz (i.e. a multiple of 1.25 milliseconds).  Upper limit is
MS5 (200 baud), lower limit is MS2000 (half a baud) (varies a bit from
one implementation to the next).

The receiver synchronizes on an incoming bitstream and tracks the places
in time where a phase change is allowed to occur, the "bit edges".
Within each bit a least squares fit is done to the expected carrier
frequency (nominally 800 Hz).  The resulting least squares fit lets us
solve for the phase.  That's the best estimate of the phase as averaged
over one whole bit time.  We assume the phase cannot change over that
bit time.  If the measured phase is more than plus/minus 90 degrees from
that in the previous bit time, it is deemed that the transmitter inverted
its carrier during the second bit-time.  That denotes that a "1" was
encoded.  No phase inversion signifies a "0" was transmitted.

AFRICAM supports several BPSK modes:

o  straight ASCII (each character is 10 bits, one start bit, 7 data
 bits, one even parity bit, one stop bit).

o  ET1 - each character is coded as a 16-bit frame.  Forward error
 correction is used.  For the same SNR, ET1 mode provides much improved
 copy.  In many cases error-free copy results.

o  ET2 - each character is coded into a 27-bit frame.  Same as ET1 except
 better copy is achieved at the expense of fewer characters per second
 transmitted.

o  ET3 - each character is coded into a 32-bit frame.

BPSK requires good frequency accuracy.  At the default speed of MS100,
you need to have the receiver tuned accurately to within about 0.5 Hz
for reasonable copy.  The closer you can tune your Rx to the exact 800
Hz nominal carrier frequency, the better the results will be.  At higher
speeds the absolute frequency accuracy isn't as critical.  On HF it was
customary to use MS25 (40 bits per second).  At that speed you can be off
by quite a bit and still get solid copy.

In general, if everything is set up right you will be able to copy signals
that you cannot hear at all.  AFRICAM is set up to allow you to fine-tune
everything when the SNR is good and you can hear the signal, then freeze
the settings so that when the signal falls well below the noise you can
still continue to copy it.

The program requires DOS.  It doesn't work with Windows.

The audio from your rig is digitized to 8-bits by the Sigma-Delta interface
board (feeds 7200 digitized samples per second through a serial COM port),
or by a sound card.  You can select 8 or 16 bit audio from your sound card.

When using a SB16-type card, AFRICAM expects the audio input to be on the
LEFT LINE channel.  The ESS688 support may be on left or right channel.
I say this because my PCMCIA card (uses ESS688) requires the logical right
channel to make it compatible with the same audio cable I use for the SB16.
This may be an error in my particular PCMCIA card implementation?  At any
rate, try them both; one will work, hi!  The audio level needs to be set up
manually.  Crank it up till you see the red "clipping" message at top right
corner of screen, then back it down a bit.

If you are going to use a sound card for input you will need the usual
statement in your AUTOEXEC.BAT file to set the DOS environment variable
BLASTER.  Here's the one I have in my AUTOEXEC.BAT file:

SET BLASTER=A220 I5 D1 H5 P330 T6

A220 means my sound card is at address 220h
I5   means my sound card uses interrupt 5
D1   means my sound card uses DMA channel 1 for 8-bit transfers
H5   means my sound card uses DMA channel 5 for 16-bit transfers

The other parameters may be present but are not required for AFRICAM.
If you have no idea what interrupt, etc your sound card uses, you may
be able to dig this information out of Windows somewhere.  The above
SET BLASTER= ... statement may be executed manually from any DOS prompt,
or you can make a little .BAT file to do it for you.  I generally find
it's easier to just leave the statement in my AUTOEXEC.BAT file all the
time.  If you run other programs under DOS, chances are they will also
need that statement.

AFRICAM works with SB16 sound cards and with any card that uses the
ESS688 sound chip or later versions of same.  When you start AFRICAM
for sound card input, it will tell you if it's likely to work or not.
If it cannot use the sound card, it defaults to the traditional sigma
delta interface input expected on COM1.

The program may be invoked with any of the following command line parameters:

o    COMn - specifies which com port the SD board is on (default is com1)

o    ET - starts pgm in ET1 mode.  Default is straight ASCII.

o    TICK - emit a sharp audio tick thru pc speaker at start of each bit time

o    NODEL - do not decode the DELETE character

o    SLOG - writes measured phase angles to a diskfile SLOG.TXT.
              not recommended for normal use.

o    SHOWPH - shows computed phase angles on the screen in real-time.
              not recommended for normal use.

o    FCAR=xxxx - sets the center frequency to something other than the default
                800.000 Hz.

o   SB - specifies input to come from SoundBlaster instead of SD board.
       - this uses 16-bit audio if sound card can do it.

o    SB8 - same as SB except use 8-bit audio even if sound card can do 16.

o    DISK - program will take its raw digitized data input from a previously
          recorded .AUD file.  You must know the characteristics of this
          file (sampling rate and whether Single precision (8-bit) or
          Double precision (16-bit)).  Raw data files can be recorded by
          several means: CRUNCH can do it, you can save a .wav file as
          a raw PCM file using Cool Edit, etc.  The format must be signed
          bytes or signed integers.  The AFRICAM program itself can be
          used to save raw digitized audio to disk (see RAW parm above).
          Typical sampling rates are: SB16: 8000 samples per second,
          Sigma-Delta interface: 7200 samples per second, ESS688 chip:
          CRUNCH: 7954 samples per second, AFRICAM: 8200 samples per sec.

The following real-time commands may also be used.
To get into command mode, hit ESC key, then enter command.
Not all commands are prompted to the user.
All command verbs may be abbreviated to the first few keystrokes
if no ambiquity will result.
Many of these parameters can also be changed/toggled with the mouse.
All commands are in the form: VERB <space> ARG1 <space> ARG2 etc.
You may use a comma (,) instead of space.  Enter as many
arguments as the command verb implies.  Commands may be given in
upper or lower case and may be abbreviated.

o    QUIT  leave the program.

o    DECO  switch between AFR and COH decode algorithms.
           if ultra stable, accurate Rx or atomic clocks at
           both ends, AFR is better, else it's worse.

o    SYNC  starts sync-ing.  You may specify a numeric argument following
           the SYNC verb.  That says how many seconds worth of running
           averaging to use in the sync process.  If you don't specify
           any argument, it syncs forever using all data since you started
           sync-ing.  If there is any QSB or if you change anything that
           could be a disaster.  It is best to specify a limiting time.
           E.g. SYNC 100 will sync using the last 100 seconds worth of
           audio.  The 100-second long window keeps rolling forward, so
           you don't have to worry about anything that happened more than
           100 seconds before present time.  The END key toggles sync
           mode (it's a hot key).  If the signal is strong, hit END
           to start SYNC-ing, then as soon as you see good copy, hit END
           once more to stop SYNC-ing.  Once locked on it should stay
           in sync indefinitely if AUTOTRACK is enabled.

o    NF    species how many bits to integrate over when measuring the
           input carrier frequency.  If you don't have some good reason
           to change it, leave at the default setting of 15.

o    TF    sets the tracking filter center frequency

o    CF    sets the carrier frequency when it's way off 800 Hz.

o    ALERT  enter ALERT, then on the next line type the string you
            want to match.  It will sound a beep whenever the string
            is matched in the incoming decoded datastream.  Entering
            a null string switches ALERT mode off.

o    GRAB   command has two arguments, separated by spaces.  First is
            the run length, second is depth.  GRAB is a technique where
            we know the same message is being transmitted over and over.
            We can sum up many copies of the received message.  They
            will reinforce one another and result in better copy.  The
            run length is how many characters before the message repeats.
            The depth is how many complete copies of that message we sum
            up before decoding the characters. GRAB can be toggled on/off
            with the mouse, and the database can be cleared to zero depth
            where it will gradually build up again to the maximum depth.

o    ETn    ET1 = 16-bit frame forward-error-correcting code
            ET2 = 27-bit frame forward-error-correcting code
            ET3 = 32-bit frame forward-error-correcting code

            The default format is straight ASCII - i.e. one start bit,
            7 data bits, one even parity bit, one stop bit, for 10
            bits per character.  There is *no* error correction in this
            mode.  ET1 uses 16-bit frames - several bits of each character
            may be corrupted in transmission and we still get perfectly
            solid copy on the screen.  ET2 is more robust than ET1 but
            at the expense of fewer characters sent per second.  The Tx
            station must be sending the same format of course.  You should
            set ET to the same format the transmitter is known to be using.

o    SPD MSxxxx - allows the speed to be changed on the fly.  Default is
            MS100, which means 100 milliseconds per bit or 10 baud.  Spd
            can be set to any value which is an exact multiple of one audio
            cycle at 800 Hz - i.e. a multiple of 1.25 milliseconds.  Fastest
            speed is MS5 (200 bits per second), slowest speed is MS2000
            (2 seconds per bit, or one-half baud).  Slow speeds allow
            copy at poorer SNR's but also demand much more stringent
            receiver performance. I.e. no drift and absolute freq accuracy.

o    TICK - toggles the emitted audio tick mode, leave it off mostly.
           TICK was used to synchronize by ear.  It only works for very
           slow speeds.  If you leave it on at MS100 it will just be very
           annoying.

o    RCV - enables/disables the receiver.  That's the BPSK decoder.  It
         gets enabled automatically whenever you start SYNC-ing.

o    TRACE - toggles trace mode.  In trace mode, all incoming characters
           are written to a diskfile.  The filename is generated auto-
           matically, but will be something like TRACE.000, etc.
           A second file called BLOCK.000 etc is also written.  It is for
           use with the COHPLAY software if you want to try twiddling the
           parameters later to see if different settings might have improved
           copy.  If you don't wish to play with the settings after the
           fact just delete those BLOCK files.

o    RAW - if RAW is ON during TRACE mode, the actual raw data samples
           will be saved to hard disk.  This is definitely NOT recommended
           unless you really know what you are doing!  A few hours can use
           up humongous amounts of hard disk space.  The raw data is saved
           as an 8-bit or 16-bit .AUD file.  Some CPU's are not fast enough
           to keep up when RAW is enabled.

o    AUTOTRACK - toggles autotrack mode.  In general, it should be enabled
            all the time unless you have atomic clocks at both ends of the
            link.  AUTOTRACK continuously adjusts the BitPhase parameter,
            which specifies which sample (modulo n, where n is the number
            of samples per bit) marks the end of each received bit in time.
            The adjustable TC parameter controls the tightness of this
            filter.  Set it to a lower value to be able to follow signals
            with sloppy timing, set it to a higher value when the timing
            at both ends is excellent and you want to track the bit edges
            down deeper in the noise.

o    AUTOFREQ - toggles AUTOFREQ mode.  This is an attempt to track out a
            slow drift in the received frequency.  The received freq
            is measured over a long time frame (TCF and NF parameters
            control just how long a time frame) - and the front end filter
            is centered on that frequency.  The internal FCAR is also
            adjusted to that frequency.  You may lock on to a signal's
            frequency when the SNR is good, then switch off AUTOFREQ to
            stay on that frequency come hell or high water even when the
            signal drops down below the noise.  AUTOFREQ works well when
            the SNR is good.  If the signal is buried in noise it is
            generally better to switch it off and use dead reckoning to
            tune it in.  I.e. rely on the accuracy of the transmitted
            signal and your receiver's calibration.  External frequency
            standards are often used in lowfer work.

The HOME key is a hot key which produces some statistical and diagnostic
details at bottom of screen.  Most useful is the estimate of bit error
rate when ET1 or ET2 are in use.

Just about all the on-screen parameters can be adjusted from the keyboard
using the arrow keys, etc if you don't have a mouse working.  The actual
key definitions are available in AFRICA.TXT (reproduced below).  Just
remember that AFRICAM cannot SEND, it can only RECEIVE.

Bill VE2IQ bill1@cgocable.ca
--------------------------------------------------------------------------
AFRICA V 3.0

Version 3.0 has a new command: ALERT.

You may enter a test string via the ALERT command, then whenever that
string is matched by incoming characters AFRICA will sound an 800-Hz
alert through the PC's speaker.  It will also set parallel port bit 7
high for the duration of the match (usually 1 character time) so you can
activate an external circuit if you wish.  Bit 7 is TTL/CMOS level (0 to
5V) and is found on pin 9 of the standard 25-pin printer connector.
As with other commands, you may enter the command all on one line
(e.g. "ALERT VA3LK") or wait for the prompt and enter the string on
a second line.  Please note that if you must have imbedded spaces in
your text string you should enter it at the prompt only.  The comparison
is case-sensitive.

While ALERT is enabled, the RECEIVE header line on the screen will display
the alert-string you entered.  With ALERT enabled, the regular ASCII BEL
(07h) characters are not "displayed" - so if you get tired of hearing
those random beeps, you can enter some string that's near-impossible
to come up by chance alone, then you can sleep soundly.  To shut off
ALERT mode just enter a null string.

The NF parameter has been re-introduced.  You can set it with the "NF nn"
command.  This is the number of consecutive bits over which the incoming
frequency is measured.  The result of the measurement drives the frequency
tracking filter.  When the SNR is good, almost any value for NF will always
give the correct measured frequency.  The default (e.g. 15 for ET1) is
just fine.  When the SNR deteriorates however, it becomes very difficult
to measure the incoming frequency accurately.  Cautiously increasing the
NF value may help.  (Watch the displayed freq readout, increase NF slowly
as long as it gets more stable.  A point will come where further increases
will make things worse.)  The problem here is that in order to measure the
frequency accurately under very difficult conditions, we have to look at
the signal for a long time.  That's fine if the frequency is absolutely
stable, but over these time periods it's difficult to keep the frequency
constant (even propagation can introduce changes in the received frequency),
and since the measuring algorithm assumes the freq is constant, looking
at the signal for a long time span gives it more opportunity to change and
hence screw things up.  There is probably an optimum value for NF, based
on the received SNR and the speed being used.  At this point if you don't
know what's going on it's best to just stick with the default values chosen
by the program.

You can now directly enter a value for the tracking filter's center frequency.
The command is "FCAR xxx.xx" - of course it only makes sense to do this when
the tracking filter is not being updated automatically - i.e. turn AUTOFREQ
OFF if you want to do this.  Essentially this gives us the ability to tune
in the incoming signal manually.  Usual problem: when the SNR is good the
tracking filter works beautifully.  But when the SNR is lousy the system
can't measure the incoming frequency very well and the center frequency tends
to jump around quite a lot.  When using the AFR decoder the signal *must* be
tuned in precisely.  If you cannot be sure of the received frequency and the
signal is too weak to hear (hence too weak to measure its freq accurately) -
then stick with the COH decoder.  I just did an experiment here while
receiving the SOLAR beacon.  Started out fine with AUTOFREQ enabled, AFR
decoder solid copy.  I noted the exact frequency as measured by AFRICA and
wrote it down.  Then I attenuated the signal so copy virtually disappeared.
The measured freq was jumping all over the place and the center freq of the
tracking filter was trying to follow it.  When I turned off AUTOFREQ and
manually dialled in the correct frequency (800.24 Hz in this case) the AFR
decoder started printing out perfect copy again.  So if you have external
means to establish the exact receive frequency to within 0.01 Hz or so,
by all means use it!

7.  The new program has two techniques available for decoding BPSK:

     1) The same algorithm previously used, called "COH"
     2) A fancier algorithm called "AFR"

There is a parameter up on the STAT screen called "DECO" - you can use
the mouse to click on its asterisk to toggle between the two decoders.
The actual switch is done immediately after a character has been decoded,
so there will be no glitches on the screen.

Here are some of the more obvious operator-visible changes....

1.  AFRICA has better bit-tracking.  The BitPhase number now equals the
sample number (7200 samples per second).  At MS25 for instance, there are
only 20 cycles of audio (at 800 Hz) in each bit time.  COHERENT chose the
end of the bit time only to the nearest complete audio cycle.  That is
pretty coarse, especially at the faster baudrates.  There were only 20
possible values to choose from.  In other words, there could well have been
a considerable error in where the integration window ended.  Any error in
the bit timing can hurt us like hell, because if a phase transition occurred
before the end of the current bit time, say, we would be integrating some
of the next bit's energy by mistake, which not only doesn't help us to find
the phase, it hurts us because it cancels out the same amount of energy
from what we had already integrated.  So it pays to get the bit edges as
well-defined as possible in time.  At MS25 there are still only 20 audio
cycles in each bit time, but there are 180 instantaneous voltage samples
from the ADC available, and AFRICA splits up the bit time into 180
increments instead of 20.  That translates into better recovery.  Of course
the old bit-tracking algorithm wouldn't work worth a damn with the much
finer resolution, because it could step only one cycle plus or minus at a
time, and that only at the end of each bit time.  At MS1000 for instance,
each transmitted bit has 7200 voltage samples in it, and if we had to step
only one sample at a time it could take about an hour to move to the right
point (if all went well and it always moved in the right direction!).

The algorithm used in AFRICA not only decides in which direction to move, it
also estimates "how much" to move.  If the SNR is good, it can acquire the
correct bit sync in only a few steps, starting from anywhere and at any
speed.  If you set TC to 1, it will acquire the final answer in only one
step (after the next bit time) - but it will be unstable and might jump
around a whole lot from bit to bit.  You can still disable it (i.e. turn
AUTOTRACK OFF)- and find the correct point by manually stepping through all
the possibilities, but it could take ages.  Probably best to leave AUTOTRACK
enabled all the time, and only adjust the TC parameter.  Once the BitPhase
number appears to have stabilized, if you know there is little drift between
the SD oscillator clocks at both ends, you can increase TC substantially to
prevent the bit tracking loop from jumping around.  Of course never set TC
so high that the loop cannot track out long term differences between the
1.8432 Mhz clocks at each end.

2.  The indicated frequency of the incoming wave should work better now.
    The frequency is measured more accurately and displayed to the nearest
    hundredth of one Hz.  If you see it jumping around more than 0.1 Hz,
    be sure to use only the COH decoder, not the AFR decoder.

3.  The amplitude has been normalized/corrected for speed, so the numbers
represent basically the incoming voltage in counts.  There is only one
amplitude reported, not separate amplitudes for MARK/SPACE.  And the new
amplitude is corrected for bit-time mismatch errors, so it should (?) stay
pretty much constant and reflect more accurately the actual amplitude of
the incoming signal.

4.  When the AFR decoder is in use (DECO:AFR), the bandwidth of the front
end filter is only one-sixteenth of what it is for (DECO:COH), one
twenty-seventh if ET2 is used!  It is only to be expected that a whole
lot more problems will be encountered due to frequency errors in the
800-Hz tone.  COHERENT works over a tuning range of plus or minus
10 Hz at MS25.  (That's when the SNR is perfect!)  With the new AFRICA
algorithm, you would have to tune the signal to well within plus/minus
0.625 Hz *even at MS25!* - which is nearly impossible at HF.

Fortunately, I think I have a solution.  The main lobe of the DSP filter
in COHERENT was *always* centered on exactly 800.0 Hz, and any mis-tuning
of the radio simply moved the signal down the skirt of the filter so the
response was degraded.  AFRICA has a filter with a variable center frequency,
and it can be adjusted automatically by the program.  When the AUTOFREQ
tracking loop is enabled, the program will find, lock onto and then track
the incoming BPSK signal, keeping it always centered in the DSP filter's
passband.  There is another time-constant, TCF, which sets the response
time of this tracking loop.  Large values of TCF slow down the loop, making
it reluctant to move very fast.  Small values of TCF make the filter follow
the incoming signal quickly, but are more unstable, and make the filter
more vulnerable to being "captured" by nearby strong carriers.  I am looking
at building in BPSK discrimination capability, but it isn't in the code yet.
A nearby steady carrier which is much stronger than the BPSK signal will look
awfully attractive to the tracking filter.  For this reason, once you have
the filter locked onto a BPSK signal and are getting good copy, it may pay
off handsomely to increase TCF to lesson the possibility of losing lock and
jumping to an adjacent carrier's frequency.

The new tracking filter can operate over a *wide* range of frequencies with
absolutely no degradation in performance.  There is an arbitrary software
limit of from 700 to 900 Hz.  You should always try to tune in an incoming
signal as closely as possible to 800.0 Hz before enabling the AUTOFREQ loop.
If you "lose" a signal, check to see where the center frequency of the
tracking filter is - it could have drifted way off.  If this is the case,
reset it to 800.00 Hz and let it re-acquire using the COH decoder.

There are two frequencies displayed (to the nearest hundredth of one Hz)
one right above the other.  The top frequency is that of the incoming signal
as measured by the program, the bottom frequency is that of the center of
the DSP filter's main lobe.  When AUTOFREQ is enabled, the bottom frequency
should track any gradual changes in the incoming BPSK signal's frequency,
and it will track even if the signal gradually drifts up or down by up to
100 Hz.  Even if the signal winds up at 701.00 Hz the data recovery should
be just as good as at 800.00 Hz.  Of course any narrow IF filters in your
radio might come into play if the signal drifts too far from 800 Hz.

You will note an asterisk (*) right next to the bottom frequency display.
Clicking on this asterisk will reset the center frequency of the tracking
filter to exactly 800.00 Hz.

Considerations on how the AFRICA decode algorithm should compare to
COHERENT.....

If the phase of the incoming signal is stable, then AFRICA will run
rings around COHERENT.

But by stable, I mean STABLE!  Any slight frequency offset between the 800 Hz
transmitted and the 800 Hz received will produce a cumulative phase error
over time.  Once this phase error reaches plus or minus 90 degrees, the
decoder is guaranteed to make an error.  At MS25 ET1 for instance, a 1-Hz
error will produce a phase shift of 9 degrees from one bit to the next.  Not
the end of the world, but it still hurts copy.

The AFRICA algorithm looks at all the bits in a frame simultaneously and
assumes the phase remain constant over the longer time period.  At ET1 for
instance, that's 16 times longer.  So we must keep the frequency offset
down to one-sixteenth(!) what we could tolerate before.  And the phase
must not drift during the entire character (as opposed to during only one
bit-time using the COHERENT detector).  If there is almost *any* amount
of flutter (rapid variation in frequency/phase of the received signal),
then the COHERENT algorithm will perform better than the AFRICA algorithm.
If there is no flutter, then the AFRICA algorithm can copy a BPSK signal
buried more deeply in the noise.

The new AFRICA program V1.0 lets you choose either decoder.  All you have
to do is point your mouse at the (*) next to the DECO: field and click.
You will not need to re-sync, and you can do it while a station is sending
text to you so you can switch rapidly back and forth between the two
algorithms to see which gives the better copy.  Unless your 800 Hz trans-
mitter is phase-locked to the receiver's SD board sampling clocks, you must
use the tracking filter for AFR.  On HF it is hopelessly impossible to
keep a signal tuned in to better than plus or minus 0.625 Hz (at MS25 ET1).
Any error greater than that will degrade copy rapidly.

The improved features are available for both decoders.  Both use the finer
resolution Bitphase Tracking loop, and both can use the new tracking
filter which can compensate completely for a *constant* frequency offset.
The tracking filter is optional - you can shut it off if you want.  When
using COH decoder, the bandwidth of the new tracking filter is the same
as the filter used in the old COHERENT program, only difference is the
center frequency is not absolutely fixed at 800.0 Hz, it can follow slow
drifts in the received signal.  When using the AFR decoder the bandwidth
is n times narrower, where n=10 (ASCII), 16 (ET1) or 27 (ET2).  When you
shut it off the center frequency remains where it was at when you shut
it off.  If you want to reset it to 800.00 Hz, use the mouse to click on
the asterisk next to the displayed center frequency.

The SYNC function now works similarly to the one on the old program.
You hit END to start sync-ing and hit END again to quit.  You many now
specify a length of time in seconds.  E.G. Sync 10 will sync continuously
using only the last ten seconds worth of received information.

Bottom line:

The new program should work at least as well as the old program even under
difficult HF conditions, and it has the potential to work much better than
the old program if the signal is very stable phase-wise and you can use
the AFR decoder.  Even using the COH decoder, some improvements have been
made, so that should also work somewhat better than what we've had before.

In case you don't have a mouse...

left arrow	- adjusts BitPhase lower
right arrow - adjusts BitPhase higher
up arrow    - adjusts startbit higher
down arrow  - adjusts startbit lower
PageUP      - adjusts TC higher
PageDOWN    - adjusts TC lower
^PageUP     - adjusts TCF higher
^PageDOWN   - adjusts TCF lower
home        - some stats and diagnostic info
^home       - resets the tracking filter center freq to 800.00 Hz
end         - hotsync key
^end        - toggles freq tracking filter on/off
tab         - generates string of }}}} for sync purposes
Shift-tab   - toggles between DECO:AFR and DECO:COH modes
(^ = control key held down)

If there is something you can't find above, try typing the parameter name
in command mode; there are some commands which aren't shown on the menu.

73 de Bill VE2IQ
bill1@cgocable.ca
