Alan B. Pearce wrote : > The assembler has no visibility of what the EQU statement > is for other than to assign a value to a name. Just as CBLOCK. > For CBLOCK the programmer only needs to specify the first > RAM address Rather "first value". There is no given that it's an "RAM address". It *could* be, just as in the EQU case (where you used the term "value" anyway) By using different terms ("value" vs. "address") one could make someone belive that there is a real difference in this regard between EQU and CBLOCK. Could be nitpicking, but I feel that clearily counts i this case. :-) > The program writer does need to keep track of when the > CBLOCK will overflow a bank though,... And that the "value" actualy corresponds to a real RAM in the specific PIC, and not e.g an SFR. Again, just as with EQU. > However I did like Bob Ammermans use of it to ENUMERATE > values, but I prefer Olins preprocessor macros to achieve > the same result... Which of Olins macros creates enumerated values ? (I know of the FLAG macros, but that's not the same thing...) > For RES the programmer does not keep track of where in RAM > the location is, apart from specifying that it be in a named area, > but the trick here is that the named area is declared outside of > the RES statement, which is not intuitive to the beginner. Not only outside of the RES directive, but outside of the whole (ASM) source code ! > The writer of the LINKER script (could be the same person as > the programmer, but not necessarily)... IMHO, very few have to change the builtin linker scripts as they are delivered from Microchip. Maybe if you are building a specialized development environment (as Olin) but not the normal user developing with MPLAB. IMHO... ;-) Best Regards, Jan-Erik. -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist