NXT as GPS Receiver
I have been reading through a disassembly of the NXT firmware and ROMS, and discovered a couple of tricks that made this app possible. It turns out that it is possible to reprogram the bluetooth radio receiver to receive GPS frequencies, which allows you to implement a simple GPS position readout, even from this NXT-G program! The reception is not very strong (I had to stand outside in a large clear area), but it was able to determine basic position data for me.
Key to getting this to work, I was surprised to discover, embedded in the ROMs, there is a DOS (!) micro-kernal, which is apparently only used as a debug console for attaching a remote debugging host. However, if you can get a process running under this kernal then you have full access to all of the internal hardware registers, including the bluetooth controller, which allows you to remap the radio frequencies.
Then I discovered some "back door" hooks in NXT-G (also apparently there as debug hooks) that allow access to system traps and basic DMA (memory) access, by reading and writing to variables with special names. This made this actually possible from NXT-G, including the process of getting the app to run under the debug micro-kernal. Check out the program above to see how it is done. There are probably a number of other interesting things you could try using these hooks!