You could get 31.25% just by one addition and a couple of shiftoperations.
Code:
Dummy1          VAR WORD
Delay           VAR WORD
OldPulseTime    VAR WORD

Dummy1 = OldPulseTime >> 2  'Divide by 4 (=0.25)
Delay = Dummy1 >> 2         'Divide by 4 again(=0.0625)
Delay = Delay + Dummy1      'Add them to get 0.3125
Don't know how fast it will be, but it feels like it should be faster than 48 cycles. I also have a gutfeeling that the following code will be even faster.
Code:
Dummy1          VAR WORD
Delay           VAR WORD
OldPulseTime    VAR WORD

Dummy1 = OldPulseTime >> 1  'Divide by 2 (=0.5)
Dummy1 = Dummy1 >> 1        'Divide by 2 (=0.25)
Delay = Dummy1 >> 1         'Divide by 2 (=0.125)
Delay = Delay >> 1          'Divide by 2 (=0.0625)
Delay = Delay + Dummy1      'Add them to get 0.3125
I can't run any of the code right now, but perhaps Darrel could measure theese with one of his ingenious macros?