In the case of similar bigger/longer functions, writing the macro is problably not the right thing to do. And this is where I end up duplicating code, eek.
this has been discussed zillions of times before duplicating the code (in that case) is one solution (in your example, you could use a shared function between A & W familly, using as parameters 1/ a pointer to a memory zone to write from 2/ the length to be written
A+