Hi there,
cause the scope of a local variable, in this compiler, is the function, not a block.
in other words if you implement a function, instead of your macro, you'll be good
void watch_dog() { \
register int lz; \
asm(" mfspr lz, TSR " ); \
asm(" oris lz, lz, 0x8000 " ); \
asm(" mtspr TSR, lz " ); \
}
Hope this helps...