Good day to all. This is an incredibly newbie-type question, but I'm stumped. I've been writing code in assembler for 'conventional' 12-bit-core=20 and 14-bit-core PIC chips for a LONG time now. I've got a bunch of=20 code-writing techniques that make the whole process fairly painless. These early PICs have only 4 RAM banks: zero through three. I have=20 macros that deal with the MSB of the 7-bit address so that I get=20 Message 302 warnings only when I haven't properly set up the bank=20 bits. These macros save me an awful lot of time when my fingers go=20 faster than my mind. In part, these macros are: #define BB1(reg,bit) (reg^0x80),(bit) ;bit in bank 1 #define RB1(reg) (reg^0x80) ;reg in bank 1 ;usage is: bcf BB1(_SOMEBIT) ;usage is: movwf RB1(SOMEREG) What happens is that MPASMWIN spits out a message 302 warning if I=20 don't use the BB1 or RB1 macro on a register that is in RAM bank 1 or=20 3. Conversely, the assembler spits out a warning if use either macro=20 when I shouldn't be using the macro with a register that is in RAM bank 0 o= r 2. Like I mentioned above, these simple macros save me loads of time in=20 tracking down stupid banking errors. Plus - I get completely empty=20 ..ERR files - this helps reassure me that I've probably caught all the=20 RAM bank switching that is needed. Now I'm starting a project with my very first enhanced PIC16=20 architecture PIC - the 12F1840. This little sucker has 32 RAM banks=20 - and an easy way to actually set the bank bits (banksel and movlb). But: now I get all these darned message 302 warnings about checking=20 to see if I actually did set the bank bits. I *really* don't want to disable those warnings - they are a useful=20 troubleshooting tool. What I'm wondering if anyone has techniques to=20 'mask' the message on a case-by-case basis. In other words, I want to be able to do something like: movlw b'00110011' banksel SOMERAM movwf SOMERAM but do *SOMETHING* that persuades MPASMWIN that the RAM location is=20 really in RAM bank 0, so that I don't get the warning message. Or:=20 do something that hides the warning, again, on a case-by-case basis. I know that there are a LOT of people using these newer chips and I=20 was hoping that someone has a technique that hides the warning if the=20 bank bits have actually been diddled. My first thought was to write a macro that invokes banksel, turns off=20 the warning, writes the RAM location, then turns the warning back=20 on. Something along the lines of: BS_movwf macro arg banksel arg errorlevel -302 movwf arg errorlevel 302 endm Usage would be: movlw b'00110011' BS_movwf (SOMERAM) Of course, I'll have to do this for all possible operations, which=20 seems tedious. Any thoughts? Many thanks! dwayne --=20 Dwayne Reid Trinity Electronics Systems Ltd Edmonton, AB, CANADA (780) 489-3199 voice (780) 487-6397 fax www.trinity-electronics.com Custom Electronics Design and Manufacturing --=20 http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .