The method that I used has a mix of BCD and binary, which can get a bit confusing. I used BCD for the user entry of frequency, since it's entered digit by digit. This BCD value is converted to binary in the process of scaling by the clock rate factor. Then everything after that is done in binary. For the sweep starting frequency, to get half the centre frequency value, all you have to do is a right shift.
Hmmm, just been reviewing my implementation of your FTW generation algorithm. At no point does it produce a plain binary conversion of the BCD input. Looks like I need to put an extra conversion in there... grumble grumble....
Or adjust the FTW directly. Haven't tried to see how that would pan out yet.