It's been a while since I've done anything of actual value on this thread, and I've been meaning to do this for about two moths, but now seems like an OK time.
This is moderately simple stuff (harder than getting doors to work, but not something any logic enthusiast will really care to read...