Fat Controller - Source code
The Fat Controller software was written entirely in assembly language - this was the only way to squeeze all the desired features into a 16-series PIC. Here is the full source code:
It was developed in MPLAB IDE and will compile using the MPASM Assembler. It was written for the PIC16F877 which is now obsolete, but the replacement PIC16F877A will work just fine.
If you don't have a PIC programmer you can buy a PIC pre-programmed.
Changes in v1.1 2007
Added support for note off being sent as MIDI Note On message with velocity 0
Previously only true MIDI Note Off messages were supported
Changes in v1.2 22-10-2009
Added support for changing the AMOUNT setting of CV assignments, via MIDI over the control channel.