My Windows desktop is running WIndows 11H23 and it refuses to update due to multi-boot. I have tried a gazillion things, but no success. So I’m slowly switching over to Linux. Fedora in my case. There are a few programs to run Windows programs on Linux like Wine and Winboat. I have tried Wine before with Garmin Express but it just didn’t work well. I have to mention this was on Ubuntu 24.
MorseRunner Community Edition (MRCE) is a port by W7SST from VE3NEA’s Morserunner. The latter version isn’t maintained anymore. The MRCE is, and this fork (there are many more) has added more contests. The program is written in Pascal and the sourcecode is available on Github. So instead of running a Windows-emulator, I wanted to try and port it to Fedora Linux with the help of Claude AI. Claude has progressed tremendously again and rcently released the Opus 5 model, which again made improvements in it’s coding abilities.

The port was successful in 2 tries. The first try had the program compiled and running, but the screen was very small on my monitor. After I fed Claude Code what was wrong, together with a screenshot of the screen on Windows, it redesigned the windows and then the screen look fine.
Then I asked it to add a new activity called SOTA. Since I’m a SOTA activator and chaser, this is useful as trainingprogram. When I finished last night, the program only had the typical 599 exchange, nothing else. For a test port, this was fine. I included a list of known CW SOTA participants, compiled by ON6ZQ to be used as responding stations.
Overnight I thought that this was a bit sparse for actual training and that it needed to be adapted to reflect real-life a bit better. The exchange had to be real, plus Summt-to-Summit QSO’s also need to be included. So I had to write proper instructions again for what I needed Claude Code to work out. The design decision was:
- Summits needed to be accurate as possible matching the call. The official SOTA-summitlist was added for the summits and city.dat to determine which prefixes and summits match. Also calls with a prefix like LX/, and calls with a suffix like /P or /QRP are most likely an activator on a summit, so they needed to exchange a summit-reference as well.
- The exchange has to reflect real life, not the standard contest 599. A chaser send their RST, and MRCE sends a RST based on how strong the signal is. Signals which are really weak to copy, get a proper 339.
- A chaser can request the summitcode by sending REF? and by pressing F6, our REF is sent again. We cAn request a repeat of the summitcode by pressing F7.
- You only get a point if the exchange is correct. Either RST for chasers, or RST + summitcode for S2S.
Now it’s time to test if everything works properly. Maybe add some more features, debug it, port it to Windows as well and put the fork on my Github.