Re: Port to ARM
the problems I've seen on ARM vs x86 vs amd64 are compiler related.
As an example (for gcc anyway), the default character type is signed on x86 and amd64, but UNsigned on ARM.
Occasionally this causes problems with bit-wise operations and comparisons. Your program may no behave *exactly* the same. Similarly for 32-bit vs 64-bit, where in some cases the default size of 'int' actually makes a difference.
To fix the problem, you can try using standardized C types like 'int8_t' instead of 'char', for all variables, so that there are NO unnecessary surprises. Yeah, you might have to edit your code. A bit.
Otherwise, C is C and C++ is C++. But then again, Micros~1 doesn't JUST use C and C++ these days. They (unfortunately) have that "CLR" thing formerly known as ".Not" that (for some reason) they insist on using EVEN FOR C++, and the lingos like VB and C-pound that rely on it.
It is a fair bet that the CLR itself is ALSO a major stumbling block to ARM programs running properly, regardless of the many re-writes it's apparently undergone since TIFKAM was first foisted upon us (and ARM was proposed as a supported platform).
(and don't EVEN get me started on UWP or anything newer coming down the pike...)