cast to a `WORD` not `short` 
why all of the extra zeros? `0xFF` is sufficient to mask off the high order BYTE.