1. A pseudo-MTP memory that uses at least a portion of One-Time Programmable (OTP) memory to function as a Multiple-Time Programmable (MTP) memory, comprising: at least one OTP memory array having a plurality of OTP blocks; at least one block register configured to provide non-volatile storage for a block size; and at least one count register configured to store a program count; wherein the count register is programmed at least once each time starting a new programming a different one the of the OTP blocks in the OTP memory array, and wherein a final address to access the different blocks of the OTP memory array is generated based on the at least one count register, the at least one block register, and an input address.