slow ports. The WRITE macro stores the CPU bits on the stack first,
then locks the interupts, reads the port, sets a bit, writes the port
and then finally reverts the CPU bits. The WRITE_NC does not lock
the interrupts, therefore it may only be used where it cannot
be interrupted.