If I do that then more people will see how stupid I am when it comes to MEM
Not stupid, just blind seeing the obvious. you think your m is another variable, which you can exchange the value of N with and wise versa, but NO, m is not another variable, it's just ANOTHER WAY TO ACCESS your variable N.
Ie. m is a pseudonym for N, doesn't matter if you access N directly (N="") or via _MEMGET/PUT, you always change N and only N.
m is a pointer to the memory, where the value of N is stored, not more, not less.
EDIT:
If you're likely more familiar with C/C++, it's like taking the reference of a variable here:
char N;
char *m = &N;