What is x20?
what is f0?
what is x?

A little more detail and it is possible that a different solution exists.

The last time I did something similar, I had a pulses per mile count. After that the mile count would increase by 1. To handle numbers as big as 99999999 you can do it in code like I did

Pseudo code begins
Code:
miles[4]    var    byte         ' lsb to msb

        on input pulse,  pulses=pulses+1
        
        if pulses >= Pulsespermile
              pulses = 0                               ' start counting again till we reach pulses per mile

              miles[0] = miles[0]+1
              if miles[0] > 99 then
                   miles[0]  =0
                   miles[1] = miles[1]+1
                   if miles[1] > 99 then
                        miles[1] = 0
                        miles[2] = miles[2]+1
                        if miles[2] > 99 then
                              miles[2] = 0
                              miles[3] = miles[3]+1
                              if miles[3] > 99 then
                                   miles[3] = 0   ' roll over to all zero
                              endif
                        endif
                    endif
              endif
       endif
Now, displaying this is easy.
Code:
      Num = miles[0] dig 1                ' first digit to display
      digitpos = 0
      gosub displaynum                   ' show the number

      Num = miles[0] dig 0                ' 2nd digit to display
      digitpos = 1
      gosub displaynum                   ' show the number

      Num = miles[1] dig 1                ' 3rd digit to display
      digitpos = 2
      gosub displaynum                   ' show the number

      Num = miles[1] dig 0                ' 4th digit to display
      digitpos = 3
      gosub displaynum                   ' show the number

and so on