Small update here for the DBPro version.
I cleaned up the code a bit and fixed a few bugs I forgot were in this old version. So cut and paste the source code attachment over the old source file in the zip above.
Easiest way to understand what's happening here is to use and figure what is happening in the _control_matrix_slow: subroutine first (so uncomment it in main loop and comment out the _conrtol_matrix_fast: call). Once you understand that, you will be better ready to handle understanding what is happening in the _control_matrix_fast:, which gives almost a 100% performance boost over _control_matrix_slow: when moving.
Hint: Forcing Anisotropic filtering with your video card settings will get rid of the seams in the matrix. (Still waiting for a function in DBPro to allow for changing those rendering options)