Intel 8XC196MC User Manual

Page of 579
8XC196MC, MD, MH USER’S MANUAL
4-16
Appendix C includes a table of the windowable SFRs with the WSR values and direct addresses
for each window size. The following examples explain how to determine the WSR value and di-
rect address for any windowable location. An additional example shows how to set up a window
by using the linker locator.
4.2.2.1
32-byte Windowing Example
Assume that you wish to access location 014BH (a location in the upper register file used for gen-
eral-purpose register RAM) with register-direct addressing through a 32-byte window. Table 4-11
on page 4-15 shows that you need to write 4AH to the window selection register. It also shows
that the base address of the 32-byte memory area is 0140H. To determine the offset, subtract that
base address from the address to be accessed (014BH – 0140H = 000BH). Add the offset to the
base address of the window in the lower register file (00E0H, from Table 4-12). The direct ad-
dress is 00EBH (000BH + 00E0H).
4.2.2.2
64-byte Windowing Example
Assume that you wish to access the WG_CONTROL register (location 1FCCH) with register-di-
rect addressing through a 64-byte window. Table 4-11 shows that you need to write 3FH to the
window selection register. It also shows that the base address of the 64-byte memory area is
1FC0H. To determine the offset, subtract that base address from the address to be accessed
(1FCCH – 1FC0H = 000CH). Add the offset to the base address of the window in the lower reg-
ister file (00C0H, from Table 4-12). The direct address is 00CCH (000CH + 00C0H).
4.2.2.3
128-byte Windowing Example
Assume that you wish to access location 1F42H (the EPA0_TIME register) with register-direct
addressing through a 128-byte window. Table 4-11 shows that you need to write 1EH to the win-
dow selection register. It also shows that the base address of the 128-byte memory area is 1F00H.
To determine the offset, subtract that base address from the address to be accessed (1F42H –
1F00H = 0042H). Add the offset to the base address of the window in the lower register file
(0080H, from Table 4-12). The direct address is 00C2H (0042H + 0080H).
4.2.2.4
Unsupported Locations Windowing Example
Assume that you wish to access location 1FF1H (the P5_MODE register, a memory-mapped
SFR) with register-direct addressing through a 128-byte window. This location is in the range of
addresses (1FE0–1FFFH) that cannot be windowed. Although you could set up the window by
writing 1FH to the WSR, reading this location through the window would return FFH (all ones)
and writing to it would not change the contents. However, you could access the peripheral SFRs
in the range of 1F80–1FDFH with their windowed direct addresses.