A microprocessor system contains a read-only memory (ROM) for storing
programs or firmware. Retrieval and execution of program code is
controlled by a microprocessor address bus. Erroneous data in the ROM can
be corrected by address comparison and translation. Trap, region, and
patch tables are provided to store addresses, regions, and translated
addresses. An address issued by the microprocessor is stored in the trap
and region tables can be translated for selecting another programmable
device, such as a SRAM or DRAM, other than the original ROM. Thus,
erroneous code in the ROM can be corrected, inserted, or replaced.