A method for writing software into a programmable memory and a method for initiating program control are provided. A host computer loads new firmware from an external source. The computer then checks two firmware spaces to determine which firmware space is erased or which firmware space is valid. The computer then stores the new firmware in the firmware space that is erased or not valid.
To initiate program control, the host computer determines whether either of firmware spaces are erased and then executes programs from the firmware space that is not erased. If both firmware spaces contain firmware, then the host computer may determine the validity of the firmware using a checksum. The host computer will then execute programs from the firmware space containing valid firmware.