So, I'm working in the exciting world of embedded programming. Things like "shoot a laser beam at an object and figure out how far away the object is". Or "control this motor, and turn on the laser when it is not pointing at a corner on the attached mirror wheel".
While doing this, I am introduced to the world of PIC microcontrollers. I find this very interesting, because of a project that had some notoriaty at the time: the iPic web server.
Besides being a neat hardware hack, this seems (at the time) like a good way to learn TCP/IP. After all, if you can fit a webserver into a 1K instruction microcontroller, how hard can it be?
So, I start playing with the development tools. And soon find that I don't like them (surprise, surprise...) What do I do?
Well, write my own of course. I'd written VIM, so why not an interpreter for a much simpler processor? Well, I didn't realize it at the time, but there were enough differences in chips and limitations to the compiler I was using that I needed to have a family of interpreters, one for each processor...