1. A method for reprogramming a memory in a microcontroller, comprising the steps of: providing a first memory, said first memory storing program instructions that the microcontroller is capable of executing; providing a second memory, said second memory storing information; identifying a pre-determined bit in a register, wherein a logical value of said pre-determined bit determines a first logical location of said first memory and a second logical location of said second memory; altering said information of said second memory to produce altered information; changing said logical value of said pre-determined bit in said register; and responsive to said step of changing, interchanging said first logical location of said first memory with said second logical location of said second memory.