Another thing that might be interesting is to introduce "applications". An application is a binary with an entry point. Even better might be objects. The basic idea is to be able to reload code without full chip erase. (Again, balancing on the line between whole-program compilation and linkable objects.) I wonder.. Is there a standard object format to use for the pic18?