Finally got around to objectifying this driver code for the Taos TSL3301 digital interface line sensor. All of this code is based off the "Using the TSL3301 with a Microcontroller.pdf" that can be found on Taos's product page for the TSL3301
"TSL3301_driver_spn_v1" is a spin driver that directly translates the pseudo code from the Taos .pdf.
"TSL3301_spn_demo" is a short spin program that will use the spin driver to capture line images from a TSL3301
"TSL3301_driver_v1" is a high speed assembly driver for the TSL3301. It can trigger off of an external pin and get the electronic shutter of the TSL3301 open in <500nS. (fully configurable) The minimum line integration time for the assembly code is ~2uS. (again configurable) Data readout from the chip takes ~172uS. The spin interface to assembly driver is different than to the spin driver. This driver is optimized to quickly grab individual lines. The maximum lines per second could be doubled (within limits) if the code was re-written to overlap data readout time and line optical integration time. I'd also say code optimizations should be able to get at least a 10% speed up in serial speed and response times. The assembly code could likely also be made much smaller.
I'd like comments and edits from the forum before I .zip all this up and submit it to the Object Exchange.