you are correct, each input data is multiplied by a constant. this value depends on which input sample you are working with. the values in the ROM are the FFT window which you select. you can read about them here:
http://en.wikipedia.org/wiki/window_function you can generate FFT windows with MATLAB or Octave (I think) which is free. i can generate a window and paste it here if you'd like. the length of the ROM is indeed equal to the length of the FFT.
you should do some reading on FFT windows to see which trade-offs you are willing to deal with. basically it comes down to dynamic range vs spectral resolution.