|
September 27th, 2003: BCPROG
v1.00 released.
September 28th, 2003:
BCPROG v1.01 released. Maintenance release only; I discovered and
patched a few very minor odd bugs in the user interface that had somehow
gone unnoticed before. Made a few other tiny tweaks and small rewrites.
None of these patches affect the switch code generation
algorithms.
November 21st, 2003:
BCPROG v2.00 released. Made some very useful enhancements - for
starters, the CTRL+P "View Programming" list is now a full-featured
channel editor, so your programming can be edited while BCPROG is
running. GUI screens have been redesigned a bit [users of previous
versions will notice the obvious differences in this screen shot], and
the frequency input routine now scrolls the digits in the LED display
area from right to left as they are typed, like a calculator. Many other
little tweaks have been made - mostly optimizing and cleanup work
rather than bug patches - but they're generally "behind-the-scenes"
stuff that the user wouldn't notice. The most significant changes are in
the user interface.
February 13th, 2004:
v2.01 released, on BCPROG's first birthday [development started on
02/13/2003]. Discovered and patched a few very minor user
interface bugs - for starters, the "Out Of Band" indicator was not
remaining on, when necessary, on exit from the reverse lookup. I only
had to change one short line of code to fix that, so it really was a
very minor bug, but I don't like to ignore bugs in my programs, not even
tiny cosmetic ones that most users wouldn't even notice. I'm very picky
that way. No changes made to any critical routines. Added one little
cosmetic feature - the CTRL+LEFT and CTRL+RIGHT keys will change
the digit display color, rotating among five different schemes [LED,
fluorescent, plain LCD, LCD with a green backlight, or LCD with a blue
backlight]. The CTRL+UP and CTRL+DOWN keys toggle between "plain" and
"fancy" digits. The screen shot above shows this cycle using the new
optional fancy digit display format. Your display preference is saved to
BCPROG.INI.
June 5th, 2004: v2.02
released. Cosmetic bug patch in "plain/fancy" digit selection code.
Added one tiny new feature - the CTRL+S "save frequency" command now
locates the first available empty channel in BCPROG.INI to simplify the
process of defining multiple channels.
October 14th, 2004: v2.03
released. Bug patch in CTRL+S "save frequency" command.
March 22nd, 2007: v2.10 released.
Added ALT+O configuration menu. Added "range enforcement" option. Source
code split into two modules, which increases the executable's size and
memory requirements somewhat, but it was necessary due to compiler
limitations [too much code for one module, basically]. Corrected a minor
user interface bug. Made a few enhancements to the "input box" routine.
At this point, I am not aware of any other bugs anywhere in the program,
and I can't think of any more features to add, so this might be the
final version of BCPROG unless one of you users has any suggestions or
bug reports.
BCPROG is distributed free-of-charge, but I won't refuse donations if
they're offered.
Click here
to view a PDF version of the BCPROG v2.10 User Manual.
You new Bearcat 101 owners might be interested to know that you can order copies of the BC101
manual direct from www.bearcat1.com!
|

BCPROG will generate all possible switch sequences for
the Bearcat 101, making manual calculations unnecessary, and making
cumbersome and hard-to-find code books and charts obsolete. Find the
exact code for any frequency instantly! [Well, any frequency the
Bearcat 101 can receive, anyway...]
It can also generate an optional log file of all valid frequencies
entered - along with their switch codes, of course - and
maintains a master data file for your 16 channels' programming. Using
this file, it can create a printable page [suitable for framing
<chuckle>] which shows you exactly which switches to set
for all of your 16 channels. Never lose track of your programming
again!
NEW IN v2.00: The CTRL+P list screen which shows your programming
is now an interactive and full-featured channel editor. You can edit
your frequencies and alpha tags, sort and rearrange your channels to any
desired order, and print a hard copy for use in programming your BC101.
Modify the contents of your BCPROG.INI file without an external text
editor!
A reverse lookup feature is included which will let you display
the frequency which corresponds to a given switch sequence. The
ability to convert a switch sequence back to a frequency also helps to
make BCPROG the most consistently accurate Bearcat 101 code generator
available anywhere - more details below.

BCPROG even accepts and encodes the theoretical
frequencies which lie outside of Electra's published band limits but
which might be receivable by the BC101. These limits are as
follows:
PUBLISHED
30.0000 to 50.0000 MHz
146.0000 to 174.0000 MHz
416.0000 to 512.0000 MHz
|
THEORETICAL
10.7450 to 51.7000 MHz
143.7450 to 184.7000 MHz
409.6625 to 512.0500 MHz
|
Step Size
5.0 kHz
5.0 kHz
12.5 kHz
|
T E C H N I C A L N O T E S
Please note that the theoretical limits above
are just that - theoretical - and there is no
guarantee that the Bearcat 101 actually can receive them.
According to the mathematics of the BC101's encoding scheme,
there are switch sequences which would equate to these
frequencies. This can be verified using BCPROG's reverse lookup
feature.
Electra's manual lists a step size of 10 kHz for the low band,
but the mathematics and BCPROG's reverse lookup show that
toggling switch #13 - the "least bit" of the
algorithm - will result in a 5 kHz difference between the
"up" and "down" positions for both the low and middle bands. So,
the table above shows a 5 kHz step for the low band even though
the original manual claims a 10 kHz step. The original frequency
guide does not list any low band sequences which would include
switch #13 being on. Since the whole system is binary and switch
#13 is the least bit, it equates to one single channel step.
[Switch #12 equals two channel steps, #11 equals four channel
steps, etc. In the high band, toggling switch #13 results in a
difference of 12.5 kHz between "up" and "down."]
It is likely that the receive sensitivity outside of the
published band limits may range from very poor to nonexistent,
probably due to the bandpass filters designed into the
circuitry. I suppose it might be possible to modify the BC101
for better out-of-band sensitivity or a wider bandwidth, but I
wouldn't know how. Regardless, the mathematics dictate that
these frequencies can be encoded, so BCPROG accepts them and
encodes them.
Keep in mind that the BC101 is an FM-only scanner, and most of
the activity below 30 MHz will tend to be AM, SSB [sideband],
and CW [Morse], so don't be surprised if you can't receive
anything clearly, if at all, below 30 MHz. Your best bet is
probably just to stick to the published band limits, or at least
not to deviate too far beyond them.
I have not done any experimenting or testing of these
theoretical limits, but I would be glad to hear from anyone who
has done so.
|
|
During the development and beta testing of BCPROG, I learned from informed
sources - people who have owned Bearcat 101's for a long time
and who have tried every other code generator program on the net over
the years - that many other such programs contain bugs, most often
apparently in the form of rounding errors, which can cause them to
generate incorrect results for certain frequencies.
I have even seen, in very old Usenet postings from over a decade ago,
source code for a small GWBASIC program that displayed switch #16 as
being used for the low band selection, instead of switches #14 and #15!
With just one little mistake in a PRINT statement - probably an
honest mistake, since this programmer mentioned that he didn't actually
own a Bearcat 101 and had written the program at a friend's
request - this programmer had rendered an entire band
inaccessible to anyone who didn't know better and relied solely on his
program's output. OOPS! <grin>
Okay, so that's an extreme example, not to mention an old and otherwise
long forgotten one, but I got the impression that the rounding error
problem is so common that it bears mentioning here.
|
Proper rounding of
numbers is crucial to the accuracy of the switch code
calculations - get it wrong, and you'll be off by one full
step, if not more. In the high band, this can mean an error of
at least 12.5 kHz. In any case, a rounding error can - at
the very least - result in a sequence which shows switch
#13 as being UP when it should be DOWN, or
vice-versa.
|
BCPROG, however, uses a rounding method which precisely
follows the rules of the Bearcat 101's encoding scheme as stated in the
manual. In basic technical terms, BCPROG always correctly
determines the nearest whole number after multiplying the
frequency by the proper factor for the selected band. These are the
first steps of the encoding process, and the ones where any rounding
errors, if they are going occur, will occur.
BCPROG's encoding has been extensively tested and has so far been
found to be 100% completely accurate. Comparisons between
BCPROG's output and Electra's frequency guide also prove this.
Aside from being free of the rounding errors which seem to plague some
other encoders, another internal feature of BCPROG which helps to ensure
total accuracy is that it self-verifies its results, reversing switch
sequences to frequencies for comparison with the original entries, and
the function which does the actual encoding also monitors itself.
Therefore, BCPROG always knows whether its results are correct. It will
even display the nearest actual frequency - the one which truly and
directly corresponds to the resulting generated sequence - if you
enter an oddball frequency which does not exactly fit the BC101's
channel spacing.
How has BCPROG's encoding been tested? Well, in addition to manual
double-checks with a calculator and countless test runs during
development, I have also performed a full iterative test of
every possible frequency which can be accepted by BCPROG, to
ensure that every frequency can be encoded without errors. By "every
possible frequency," I mean everything from 10.7450 to 51.7000,
143.7450 to 184.7000, and 409.6625 to 512.0500, all the way out to the
fourth decimal place [10.7450, 10.7451, 10.7452, etc.] and even out to
the fifth decimal place in the high band. Every frequency which
BCPROG will accept, every frequency in the BC101's published and
theoretical ranges, has been tested. By "without errors," I mean
that the encoder function always returned the proper switch code for
every frequency tested without encountering any unusual
conditions, and the frequencies which did not fit the BC101's channel
spacing were always accurately encoded to the nearest valid
frequency.
This iterative test verified its results by passing them through the
"reverse lookup" function for comparison with the original frequencies
and ensuring that the difference between the original frequency and the
one represented by the resulting sequence was always within acceptable
tolerances - plus-or-minus no more than one-half channel step, no
more than 2.5 kHz for the low and middle bands and 6.25 kHz for the high
band. Anything outside of these tolerances would have resulted in an
incorrect switch sequence which would have been wrong on switch #13 at
the very least - it would have been wrong by at least one full
step - and the reverse lookup would have revealed the error. This
proves that the nearest valid frequency was always correctly
determined, as any sequence which would have equated to a frequency
outside of these tolerances - in other words, not truly the
nearest valid frequency - would have been flagged as an error.
Any failures in the encoding process or the reverse lookup would have
been flagged as errors. The bottom line? No errors.
BCPROG from CMI Software is the Bearcat 101 switch code generator you
can trust!
Q.: Doesn't your hand get tired, stroking your own ego
like that?
A.: Shut up. ;->
|

Just as a side-note, I've been watching the prices for
these old Bearcat beauties on eBay, and they've been going for an
average of about $20 to $35 in good condition. Mint-condition units can
go for twice as much!

|