The PASS program reads a Cabrillo log and reports the QSOs that were passed (moved) from one band to another. This is a command line utility meant to be run from a command prompt within DOS or Windows.

Version 3.1 of the program was released on 6 April 2014. Click on this link to download the program. Click on this link to see the Revision History.


Extract the contents of the .ZIP file to a directory on your computer, preferably the same one that contains your contest log and country file. The program is not graphical – it's meant to be run at a DOS prompt or in a CMD window under Windows. The ZIP file contains two versions of the program:

This version is for DOS only
This version is for Windows XP and higher


This is the command syntax for running the program (do not actually type the <> or [] characters). Arguments enclosed by [square brackets] are optional. You can also see the command line syntax by running the PASS program at the command prompt without any arguments:

pass [-min <#>] [-cty <CTY.DAT>] <CONTEST.LOG> [CONTEST.TXT]

-min is used to set the length of the pass "window" in minutes. This means that two QSOs with the same station must occur within this time limit. The default is five (5) minutes if -min is not specified.

-cty is used to specify the location of a country file that will help determine whether the pass resulted in a new multiplier. It's best to use the same country file you logged the contest with. If you don't specify a CTY.DAT file, the program will still run and show your passes, it just won't be able to identify new multipliers. The program can read any of these country file formats: CTY.DAT, WL_CTY.DAT or CTY_WT.DAT (the file name CTY_WT_MOD.DAT is too long for DOS).

The contest log must be in Cabrillo format. If another format is given, the program will exit with an error.

If the output file name is not given, the program output is written to the user's command window.

Program Output:

Here is some sample output from the program:

        9984 QSOs read.
        5480 unique callsigns.
        Pass window = 5 minutes.

9H3WW         29-Nov-2003 02:09  7069 CW * new
->            29-Nov-2003 02:09  3505 CW * unique

9Y4ZC         29-Nov-2003 13:49 28050 CW * unique
->            29-Nov-2003 13:49 21073 CW * unique

AH6OZ         29-Nov-2003 22:41 21012 CW
->            29-Nov-2003 22:43 14006 CW * new

DK4JT         30-Nov-2003 15:50 21007 CW
->            30-Nov-2003 15:53 14056 CW
->            30-Nov-2003 15:58 28001 CW

[other passes not shown]

 8 passes resulted in a new unique multiplier
 5 passes resulted in a new multiplier that was worked again later

Output key:

*   new multiplier
unique   this multiplier was never worked again on this band
new   another station in the same multiplier was worked later on this band

9H3WW was worked on 40 meters and passed to 80 meters. 9H was a new multiplier (*) on both bands. It was "new" on 40 meters at the time, however another 9H was worked on that band later in the contest. It was "unique" on 80 meters because no other 9H was worked on that band during the contest.

9Y4ZC was worked on 10 meters and passed to 15 meters. 9Y was a new multiplier (*) on both bands. It was also unique on both bands; no other 9Y was worked on those two bands during the contest.

AH6OZ was worked on 15 meters and passed to 20 meters. The operator had previously worked KH6 on 15 meters, so it was neither new, unique or a multiplier. It was a new multiplier on 20 meters at the time, however another KH6 was worked on that band later in the contest.

DK4JT was worked on 15 meters, then passed to 20 meters, and then passed from 20 to 10 meters. This was not a new multiplier on any band, just a new QSO on all three bands, assuming that neither the first QSO nor the passes resulted in a duplicate contact.


The QSOs listed may not necessarily be passes. For example, the operator could have worked a DX station in the multi-multi class, and that DX station told the operator where to find them on another band.

The software to determine the country (multiplier) from the callsign is not perfect. The program also does not take new CQ zones into consideration as a new multiplier (nor ITU zones, nor ITU HQ stations, etc.).

The log must be in chronological order. If not, the output is unpredictable.


The program can report two types of errors when reading the Cabrillo log (aside from reporting that the log file is not in Cabrillo format):

ERROR: Could not find multiplier for T95A
This means that the program could not determine the country from the callsign. This usually indicates that the wrong country file was used (either too old or too new).
ERROR [1]: Can't determine prefix for 4D71/N0NM
There are some callsigns that the program just can not determine a country for. In this case, the "portable" part is the same length (four characters) as the "home call" part. While it may be obvious to a human, it is not obvious to a program.

The program writes these error messages to the console only, not to the output file.

Revision History

Version 3.2 - 6 April 2014
Fixed bug which occurred if you worked more than 127 stations in the same country on the same band (thanks N3RD)
Version 3.1 - 28 February 2012
The ZIP file includes pass_win.exe which will run in a CMD window under Windows 7/Vista
The -cty parameter is truly optional.
Version 2.0 - 16 November 2010
Added option to specify location of CTY.DAT file
CTY file can be from CT9/10, WriteLog or Win-Test
Writes to console unless output file name specified
Changed way time window was specified
Re-compiled using current source code libraries
(note: out-of-order QSOs are not supported at this time)
Version 1.3 - 14 December 2003
Check if input file is Cabrillo
Ignore grid squares when looking for the worked callsign
Fixed out-of-order QSOs in input log (again)
Version 1.2 - 4 December 2003
Fixed out-of-order QSOs in input log
Version 1.1 - 3 December 2003
Initial revision