Windows XP (Service Pack 1 only) - LPT CW keying problem with Writelog 10.47E

July 2004

January 2006 - Important note : the changes described below work with XP Pro Service Pack 1 only - I have not had time yet to find out how to achieve the same results with XP Pro Service Pack 2.

DISCLAIMER :  The changes to your computer Registry and System files detailed below may cause your computer to stop working, could make your computer vulnerable to viruses or other harmful intrusions via the Internet, and may make the parallel port unavailable for use with printers or other devices.

I accept no responsibility for any such events, and all changes are undertaken entirely at your own risk. You should store back-up copies of all configurations and files before making any changes.  I am not a software or hardware engineer, and may just be lucky that this worked on this particular computer.

Set-up :  Writelog 10.47E running on a Compaq Evo 600c Laptop, OS = XP Pro (SP1)   This laptop has 1 Parallel port, and 1 Serial port. This laptop is used solely for radio use.

Problem :  In Writelog 'Set-up : Ports', the LPT1 option is 'greyed-out' and cannot be selected.

Solution : This problem took me about 6 hours to fix, so I hope I can save you some time. I did not want to use the COM port for CW keying (it is used for transceiver CAT control and I didn't want to have 2 features on the one COM port), and I did not want to buy a USB to RS-232 adaptor (I am not sure that Writelog would find it correctly anyway)

Initially, following the advice on the N1EU website, I downloaded and tried 'Userport' - no success. Then I tried 'DLPortio' - no success. Then I tried 'DirectIO' - no success. By this stage I began to suspect some fundamental problem (which a software engineer would have suspected in 30 seconds probably)  All 3 software packages seemed to do something, but none of them made the LPT1 port available to Writelog for CW keying. I tried several other downloaded Parallel Port drivers e.g. PortTalk, but none seemed to work.  At this low point, I even considered changing the laptop to Windows 98 SE, but being a determined sort of guy I decided that this would be admitting defeat !

To cut a long story short, XP has a feature called 'Windows File Protection', which automatically (usually in a few seconds) replaces any System files that a user deletes or modifies. In this case, I was trying to delete the file 'parport.sys' (in the c:\windows\system32\drivers directory)  This explains (I think) why, if you try to disable, or uninstall the driver, of the LPT1 port using Control Panel : System : Hardware : Device Manager : Communication Ports : LPT1 : Properties, the port reinstalls itself after every reboot. Microsoft have deliberately made it difficult to disable Windows File Protection.

Step 1 :  Disable 'Windows File Protection' - see instructions at http://www.winguides.com/registry/display.php/790  These instructions are not 100% clear - you have to use a Hex Editor (e.g. downloaded from www.hhdsoftware.com/hexeditor.html ) to modify the SFC_OS.DLL file before changing the 'SFCDisable' Registry entry (modify the stored values - from '0' to 'ffffff9d' using regedit.exe, which is part of XP), and the instructions for saving the modified SFC_OS.DLL file don't work as described. You have to do a bit of renaming, deleting, and saving to get things to work. Reboot the computer, save a copy of parport.sys in another directory, then delete the parport.sys file from the c:\windows\system32\drivers directory.  Check that the Windows File Protection is in fact disabled, and the parport.sys file stays deleted.

Step 2 :  Download 'Userport' (instructions on http://www.writelog.com/support/lpt_port_support_on_windows_nt.htm ) and follow the Userport installation instructions given on this web-page. Userport usage instructions again are not 100% clear - you have to delete the old 3 lots of memory values, then configure the memory range 0378-037F. Click 'update' to save these values, then 'start' to run the driver, then 'exit'.

Step 3 : Using Windows Explorer or similar, examine the c:\windows\system32\drivers directory. You should see the file 'userport.sys' there, installed as per Step 2, and the file 'parport.sys' should be missing, following deletion as per Step 1. You need to copy this file 'userport.sys', rename the copy 'parport.sys' then save this 'parport.sys' back into this c:\windows\system32\drivers directory. (the directory now contains both parport.sys and userport.sys)

Step 4 : Another reboot, and now you should be able to select LPT1 for CW keying, and it should work !   Note : it does not appear necessary to have the lines LPT1=0x378 or CW_ON_PIN1=1 in the [PORTS] section of the writelog.ini file.

I now can't access the LPT1 port using Win CT 9.91, but that's not a problem at the moment.

Hope this helps !         73    Chris   ZL1CT     Wellington, N.Z.      6th July 2004

DISCLAIMER :  The changes to your computer Registry and System files detailed above may cause your computer to stop working, could make your computer vulnerable to viruses or other harmful intrusions via the Internet, and may make the parallel port unavailable for use with printers or other devices.

I accept no responsibility for any such events, and all changes are undertaken entirely at your own risk. You should store back-up copies of all configurations and files before making any changes.  I am not a software or hardware engineer, and may just be lucky that this worked on this particular computer.    E & O.E.