4.2 Badram and Badrom Directives
The MPASM __BADRAM and __BADROM directives
along with the __MAXRAM and __MAXROM directives
specifies file register address ranges that should be flagged as being invalid should
they be used by code.
Suggested Replacement
There is no replacement for these directives.
Using the -mreserve driver option will restrict linker
classes to the desired memory ranges. If you only use symbols defined in psects
placed into those classes, invalid memory areas will be avoided.
The_RAMSIZE and _ROMSIZE preprocessor
macros are also available and indicate the largest data and program memory space
address available with the selected target device.
#define DEST 0x7D0
PSECT text,CLASS=code,reloc=2 ;for PIC18 devices
;for other devices: PSECT text,class=CODE,delta=2
storeIt:
movlw 66
#if DEST > _ROMSIZE
#error "destination out of bounds"
#endif
BANKSEL (DEST)
movwf BANKMASK(DEST)
return
BANKMASK() or PAGEMASK()
macros or ANDing the operand with a mask) is not necessary when using the
-Wl,--fixupoverflow option and any of the
ignore, warn, or lstwarn
arguments.