Hi Quentin, Many thanks for your detailed explanation. Yes indeed it does help. John -----Original Message----- From: Quentin [mailto:qsc@ICON.CO.ZA] Sent: Friday, 31 March 2000 3:42 To: PICLIST@MITVMA.MIT.EDU Subject: Re: MACROS John Orhan wrote: > > Hi Andy, > > And many thanks for your help. If I tried to invoke a macro on a PIC from > say ram_bank0 to a place in ram_bank1 memory, ( ram_bank0 and ram_bank1 > being memory pages) would the macro work?? Or would I have to switch memory > pages first? Another explanation to supplement the others: Do not think of a macro as the same way you store a subroutine. A macro initially just sits in your assembler program and is not stored in your PIC memory. When you use a macro in your program, the assembler will replace the macro label with the lines of code that is in the macro itself. Simple example: You write a macro: CNSTM MACRO MOVLW 0X020 MOVWF CONSTANT ENDM This stays in your assembler editor. Later in your program: . . CNSTM ;ask for macro MOVLW 0X039 SUBWF CONSTANT,W . . When you assemble, the assembler will take the lines from your macro, and insert it where the macro label is: . MOVLW 0X020 MOVWF CONSTANT MOVLW 0X039 SUBWF CONSTANT,W . . You don't see it (you only see the label) but this is the way it will be stored in your PIC memory. Hope this helps Quentin