News: BCPROG v3.00 for Windows is currently in production; no release date projected at this time. Click here to view the full announcement.

 



B C P R O G   v 2 . 1 0



F R O M   C M I   S O F T W A R E



  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!


A B O U T   B C P R O G   v 2 . 1 0


BCPROG is a DOS-native* utility to generate and display the proper switch sequences for programming the Electra Bearcat 101 scanner. It also contains a database feature which enables you to keep track of your programming and generate a master chart detailing your programming for all 16 channels. Switch sequences are clearly displayed graphically, along with a large "LED" display showing the frequency, as shown in the screen shot above. A reverse lookup feature lets you find the frequency which corresponds to a switch sequence.

* BCPROG is compiled as a DOS-native "real mode" application, making it compatible even with machines as old as 8088-based XT's, but it will also run under Windows and should run under other operating systems which provide direct DOS compatibility or DOS emulation [such as OS/2 and possibly Linux]. The most basic system requirements are only about 128K available RAM, a color display capable of handling multiple [4] screen pages, and the ability to run DOS applications.



This program is designed for use ONLY with the Bearcat 101. No other scanner shared the BC101's encoding scheme, and this program does not generate codes for any other scanner.

Q.: Why not?

A.: Because I don't own any of those other old first generation programmable scanners such as the Sears Cardomatic or the Regency Whamo-10, so I wouldn't be able to test my results, and I don't know their encoding formulae.


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.


A N   I M P O R T A N T   N O T E   A B O U T
T H E   A C C U R A C Y   O F   B C P R O G



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!


Got a question about BCPROG? E-mail me!



Be sure to visit Strong Signals, an excellent resource for radio and scanning information!



Click here to view a PDF version of the BCPROG v2.10 User Manual



Click here to download BCPROG v2.10



Sign My Guestbook

View My Guestbook


This page is Copyright © 2003-2007 by Ken Harris
Last Revision: 03/22/2007

All images on this page Copyright © Ken Harris, except:
GuestBook button, Bearcat 101 manual cover illustration
[Yes, I made that scanning BC101 animation too, and no, you may NOT borrow it without asking]
There are six Easter eggs in v2.10 - enter 101, 571, 686, 905, or press CTRL+A or CTRL+F