My solution should work with anything, at compile time it decide which macro to build/compile/use.

It should even work with many 12F... with some limitations.