531
CHAPTER 25 ROM CORRECTION
No
Yes
Initialization
Load the contents of external nonvolatile memory
into internal expansion RAM
Correction address register setting
ROM correction enabled
Is ROM
correction used ?Note
ROM correction
Main program
(2) Assemble in advance the initialization routine as shown in Figure 25-6 to correct the program.
Figure 25-6. Initialization Routine
Note Whether the ROM correction is used or not should be judged by the port input level. For example, when
the P20 input level is high, the ROM correction is used, otherwise, it is not used.
(3) After reset, store the contents that have been previously stored in the external nonvolatile memory with
initialization routine for ROM correction of the user to internal expansion RAM (see Figure 25-6).
Set the start address of the instruction to be corrected to CORAD0 and CORAD1, and set bits 1 and 3
(COREN0, COREN1) of the correction control register (CORCN) to 1.
(4) Set the entire-space branch instruction (BR !addr16) to the specified address (F7FDH) of the internal
expansion RAM with the main program.
(5) After the main program is started, the fetch address value and the values set in CORAD0 and CORAD1 are
always compared by the comparator in the ROM correction circuit. When these values match, the correction
branch request signal is generated. Simultaneously the corresponding correction status flag (CORST0 or
CORST1) is set to 1.
(6) Branch to the address F7FDH by the correction branch request signal.
(7) Branch to the internal expansion RAM address set with the main program by the entire-space branch
instruction of the address F7FDH.
(8) When one place is corrected, the correction program is executed.
When two places are corrected, the correction status flag is checked with the branch destination judgment
program, and branches to the correction program.