Conditional Macros - #MACRO with #IFDEF

techElder

Well-known member
I just really hate this.

I really want to be able to do something like this within a MACRO without restriction:

Code:
   [color=Navy]#ifdef [/color][color=Black]X2
   [/color][color=Blue]pop [/color][color=Purple]b2[/color][color=Black],[/color][color=Purple]b1[/color][color=Black],[/color][color=Purple]b0 [/color][color=Green]; for X2 PICAXE only ; "2018-03-24 11:27:20"
   [/color][color=Navy]#endif
   #ifdef [/color][color=Blue]M2
   [/color][color=Purple]b2[/color][color=DarkCyan]=[/color][color=Black]saveb2:[/color][color=Purple]b1[/color][color=DarkCyan]=[/color][color=Black]saveb1:[/color][color=Purple]b0[/color][color=DarkCyan]=[/color][color=Black]saveb0 [/color][color=Green]; for M2 PICAXE only ; "2018-03-24 11:27:20"
   [/color][color=Navy]#endif[/color]
It really makes me think hard on whether to use a MACRO or a SUBROUTINE. So far, the deciding point is parameter passing.

Perhaps in another life? :D
 

hippy

Technical Support
Staff member
That's the way it is for now. As suggested in the link you can solve it with -

Code:
#Macro PopB2B1B0_X2
   pop b2,b1,b0 ; for X2 PICAXE only ; "2018-03-24 11:27:20"
#EndMacro

#Macro PopB2B1B0_M2
  b2=saveb2:b1=saveb1:b0=saveb0 ; for M2 PICAXE only ; "2018-03-24 11:27:20"
#EndMacro

#ifdef X2
  #define PopB2B1B0 PopB2B1B0_X2
#endif
#ifdef M2
  #define PopB2B1B0 PopB2B1B0_M2
#endif
 

techElder

Well-known member
Just making sure this solution is documented in the right place.

Thanks again, hippy. ... and this is not an inelegant solution; just unsatisfying. :D
 
Top