...I pass ... 3595 ... should get a Lobyte as 149 and a hibyte as 53. However I get a lobyte as 11 and hibyte as 14

What am I doing wrong?

I'm happy to report that what you're doing wrong is blaming the computer. :D

It's your own calculation that is wrong, not the function.

Decimal 3595 = Hex 0E0B. That is, high byte 0E (

**14**) and low byte 0B (

**11**).

High/low byte values of 53 and 149 would make hex 3595 (hm... curious coincidence, that) which is equivalent to the decimal value 13,717.

Now, if you were passing the value

__&h__3595 and getting back then 14/11 then I'd be worried.