Intel 80C196NU Microscope & Magnifier User Manual


 
5-19
MEMORY PARTITIONS
5.3.2.4 Unsupported Locations Windowing Example (8XC196NP Only)
Assume that you wish to access location 1FE7H (the EP_PIN register, a memory-mapped SFR)
with 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 directly address the remaining SFRs in
the range of 1F80–1FDFH.
5.3.2.5 Using the Linker Locator to Set Up a Window
In this example, the linker locator is used to set up a window. The linker locator locates the win-
dow in the upper register file and determines the value to load in the WSR for access to that win-
dow. (Please consult the manual provided with the linker locator for details.)
********* mod1 **************
mod1 module main ;Main module for linker
public function1
extrn ?WSR ;Must declare ?WSR as external
wsr equ 14h:byte
sp equ 18h:word
oseg
var1: dsw 1 ;Allocate variables in an overlayable segment
var2: dsw 1
var3: dsw 1
cseg
function1:
push wsr ;Prolog code for wsr
ldb wsr, #?WSR ;Prolog code for wsr
add var1, var2, var3 ;Use the variables as registers
;
;
;
ldb wsr, [sp] ;Epilog code for wsr
add sp, #2 ;Epilog code for wsr
ret
end
******** mod2 **************