Bill, W1HIJ writes:
> it seems like whatever people ask for or suggest always seems to be
> coming next week---AND THEY DO COME THEN!
They must read my release notes before I publish them. I just remembered
that I published the manual for 5.97 and haven't released 5.97 yet...
Maybe that has something to do with it.
> BTW---do you ever sleep?
Only when 160 meters isn't open.
> Used to be in the software business myself and I'm continually
> amazed at the speed and quality of what you turn out. Hope the rest
> of the people out there have an idea about how unique you and TRLog
> really is.
Thanks for your kind words.
I started this back around 1989 when I decided two things within
milliseconds of each other (on a Sunday afternoon):
1. Operate the All Asian CW Contest all band (that next weekend).
2. To use computer software for the first time.
I thought about using CT, but decided anything that made you type the
call, then hit the INSERT key to start sending CW was just too crazy.
So, I created a prototype and had it running around midnight on Thursday.
I then won the contest and had the "CT" experience. I even called my
160 meter JA buddies by name. I had long cables to my headphones and
would go into the kitchen or bathroom while the program was auto-CQing.
I would run into the run and hit the J key ASAP when I got a response
(to stop the next CQ from starting). The program was perfect for this
as the rate was often 30 per hour.
I proceeded to add things and optimized the program for the California
QSO Party - which I operated from K6NA - winning and setting a new
record. I had relays setup so I could switch to CW on the other rig
and start a CQ with a single keystroke.
Next came the SS, more changes and optimizations, and a top ten finish
from W7NI. The Z80 op was integrated into the program looking for
rare sections on the other band.
Then came the CQ 160 from WN4KKN's QTH in Texas and together, we wondered
how I was ever going to get back to the All Asian software as the program
had been changed so much - that going back was going to be tough.
So, I borrowed the idea of a configuration file from my brief exposure
to UNIX and tried to make the program as user programmable as possible.
This was a gold mine as the program structure is really clean and I
can make changes very quickly - and with minimum impact to the other
funtions. There is very little "spaghetti" code. Adding a new feature
typically involves adding a new entry to various case statements (Pascal's
equivalent to C's switch statements).
Shortly after the CQ 160 test, I ended up in Europe for 14 months with
more free time than I could use up operating at 4U1ITU, so this is where
a large part of the program was written. I still remember working on the
exchange format descriptions for the manual while resting in bed after
a lawnmower accident I had just before returning to the states - it was
hard work figuring out all those details. I added computer generated
CW to the program - using a 286 laptop for both development and
testing. Ask N6ZZ about how long it took to download a new version
of the program at 2400 baud from Europe.
For example, a new feature in the next release will be a Control-J
command to select if you want the cursor left at the start or end
of an initial exchange (currently the program puts it at the end).
The INITIAL EXCHANGE CURSOR POS command was invented, implemented
and tested in about 20 minutes.
Another example is that I finally was bothered by not being able to
set the Auto-CQ delay time to 3.5 seconds, so I implemented that
change during the CQ 160 - in about 5 minutes... However, I have
some display problems to fix before it is ready for prime time.
The program unit that does the Control-J function was rewritten twice
to make it easy to add new functions, and this can now be done in
minutes - with a high degree of confidence that it will work.
While the program is written in the "archaic" language of Pascal, it
does have 5 or 6 Objects in it, using the extensions that Borland
added in their Borland Pascal version 7.0. There are about 50,000
lines of PASCAL code for TR, and about 35,000 for POST (many of them
are the same units however). There are about 100 lines of assembly
language code still used just for fun.
I learned PASCAL back in 1982 when working for K6OVJ (also known as
NB6U, N6FU and now K5YA). They had developed a test system for T1
lines between telephone central offices and were using a software
consulting company (started with 4 guys from my previous company).
The project I was hired to do was cancelled (after I convinced them
it wouldn't work) and I needed something to do. So, I took over the
project and did nothing but programming for a couple of years. It
was one of my most productive periods with a similar pattern of
adding new features. I would often stand at Dennis' office staring
off into space and would say something like: "Do you think there
would be any value in doing this...". Then I would go do it.
I consider myself to be a simple programmer - trying to take the simple
approach, instead of the confusing approach. I believe in the long run,
this is the best way to develop software as typically you spend 90
percent of your time maintaining code. In this case, I probably spend
even more.
I have learned some tricks from K2MM who has helped me with some of the
more tricky parts - like how to sort the TRMASTER data quickly. John
is one of those brilliant programmers who words I only hope to half
understand most of the time. He is always challenging me to do the
right thing instead of the simple thing. There are still a couple of
procedures in the code that he has written and I don't touch. He is
even brilliant enough to write in Pascal if I make him.
> Hmmmm---guess I'll do the trmaster creation on my 486----and then
> move it to the "shack" computer. Or maybe I should retire (read as
> take out and shoot) the 286.
I threw my old 286 motherboard into the trash last week. The attic was
just getting too crowded. 10 years ago, we all thought 286's were
magic.
> Hope the RAT's nest will be around for the CW sprint!
Yes! Wouldn't miss it! We have a new team - the Boring Amateur
Radio Club. We are getting some new blood into the contest and
hopefully we can encourage other people to start up new teams and
do the same thing.
73 Tree N6TR
tree@contesting.com
|