rename platform.s to arch.s
refactoring!
factor macros out and generalise them
don't deref in the macros