How to convert a TR-Log TRMASTER.DTA call sign and exchange
database into N1MM Logger History Files.

Many contesters selected TR-Log as the as their software of choice
over the years. In addition to many outstanding CW and SO2R features,
TR-Log had the ability to show the names of operators, which made it 
easy to learn and remember the name of the person behind the key during
a contest. It helped make contests more personal, even if the name was
not a part of the exchange.  The name database feature was later expanded 
to include other info such as QTH, old call sign, grid square and so forth.
This data could be recalled for a particular station during a contest. 

The use of such exchange databases remains a tactical and ethical question 
that each operator must examine for himself. Many top operators will argue
that reliance on exchange and call sign databases will actually hurt one's 
score. More importantly they might hurt one's operating technique in the 
long run. Also note that some operating events such as WRTC specifically 
forbid the use of call sign or exchange databases. One fact remains certain.
You must copy call signs and exchanges on the air accurately to do well in 
contesting. At best, judicious use of an exchange database might save some 
typing.  At worst, it will hurt your score as your errors rise. It might 
ruin your rhythm, or even deteriorate your operating ability. Caveat emptor!

The N1MM Logger program has become very popular, and is perhaps the 
leading freeware Windows contest logging program available today.
Many die-hard TR-Log users have been switching to N1MM Logger for
a number of reasons.  The primary reason may be that N1MM Logger 
can "behave" like TR-Log, with its "Enter Sends Message" or ESM mode.
ESM mode allows the operator to simply hit Enter after entering 
a call sign and/or an exchange, and the software knows what it is
supposed to do next. A secondary reason may be that they no longer 
own a DOS computer. N1MM Logger also has incorporated sophisticated 
SO2R (Single Operator 2 Radio) features which rival that of TR-Log.

I have all but migrated to N1MM logger over the last year (2007.)
After using the N1MM software in many CW, RTTY, and SSB contests, I 
have become accustomed to the way the program operates. Much as I hate
to admit, I am probably reaching the end of my DOS days. One of my
last tasks going from TR-Log to N1MM Logger was to migrate the old 
call sign and exchange information to N1MM Logger.

There are significant differences between how N1MM and TR-Log handle 
call history data and master call database data.  This task is important 
to me because I don't use the master database files from K5ZD or other 
sources. I build my own data from my own contest logs only. I have been 
doing this for over ten years using TR-Log.

With TR-Log, both the "Call History" and "MASTER.DTA" are combined
into a single full-featured "TRMASTER.DTA" file.  TRMASTER is like
a CT MASTER.DTA file, but with room for additional data like name
and QTH. With N1MM Logger, MASTER.DTA and "Call History" are completely
separate entities. They must be managed separately and independently. 
This is an important distinction to understand.

It is possible to strip TRMASTER.DTA of all of its name & QTH data, 
and reduce it to a MASTER.DTA that N1MM can read. To do this, simply
use the TR-Log POST utility to delete every field except the call sign.
After all of the extra fields are cleared out, the file behaves like
a standard MASTER.DTA with N1MM Logger. Be sure to make a back up of
your TRMASTER.DTA first, or you will permanently lose all of your
exchange data.  The MASTER.DTA will only hold call signs for N1MM Logger.
It will not hold any exchange data at all.  By the way, VE3NEA's MEdit 
program is great for managing MASTER.DTA files.

N1MM Call History management is a bit more confusing.  Unlike TRMASTER,
Call History is independent of the MASTER.DTA file, and must be created
for each specific contest.  There is not really a "master exchange database"
such as TRMASTER represented.  There are some tools available for creating
and managing N1MM history files.   N4AF's MakeHistory program is useful 
to create N1MM history files from any ASCII file, including TR-Log LOG.DAT 
files.  However, the ASCII file must have each data element aligned in 
specific columns in order to work. "Thucydides" by PC5M is another program 
which is useful for managing and creating N1MM history files.

We can use TR-Log to convert the binary TRMASTER.DTA to an ASCII version
(called TRMASTER.ASC)  Unfortunately, this ASCII file has fields which are
NOT aligned in specific columns. This means that the file does not lend 
itself to easy conversion, whether with a text editor, a spreadsheet, or
a program such as N4AF's MakeHistory.  

The problem is that TRMASTER fields are NOT position-dependent, while 
N1MM Call History fields ARE position-dependent. Here is an example of
a TRMASTER.ASC ASCII file:

S52AA =H1
PA3AAV =C14 =H14 =I27 =QPA
OH7AAC =H1
JA9AA =C25 =H3
JA7YAA =C25 =H6
JA3AA =C25 =H6 =I45
JA1AAT =H1
DJ7AA =C14 =H3
7J1AAI =C25 =H5 =I45
AA0CY =ANv =H36 =K63 =NBOB =QPa
AA1CE =NDAVE =QRi
AA1MI =NPAUL =QNh

There is no simple way to reformat the data from the TRMASTER ASCII 
format to the comma-delimited history file format required by Thucydides 
and N1MM Logger.   Again, the main problem is that the TRMASTER ASCII data 
format is not consistent with respect to field positions. For example, the 
NAME field might appear in the 2nd, 3rd, 4th or 5th field position, depending
on what other data is (or is not) present. 

So, what to do?   Several solutions were offered by the EXCELLENT
TR-Log and N1MM Logger user communities. 

VE3IAY came up with a detailed method to manipulate the data using 
an Excel spreadsheet.   Rich's method can be found here.

W9WI wrote a well-documented Perl program which also handles the job. 
It requires a Perl interpreter. You can download Doug's program here: 
 TR2N1MMHist_W9WI.pl

W9CF offered an awk script. "awk" is a UNIX program which performs string 
manipulations. You can download Kevin's script here: 
TR2N1MMHist_W9CF.awk

JE1CKA also wrote an awk script for the task. You can download Tack's script here: 
TR2N1MMHist_JE1CKA.awk

And finally, borrowing from the work of those above, I wrote my own awk 
shell script which is available here:
TRMaster_2_N1MM_History.sh


Once the resulting history file is created, one can use tools such
as Thucydides to create specific history files for individual contests.

I hope this will help others who may be faced with a similar challenge.

Many thanks to W9WI, VE3IAY, W9CF, and JE1CKA for their valuable help.

73

-Kirk  K4RO