Da ja bei "00F6" "F6" das höherwertige Byte ist ergibt das F600, und da das oberste Bit gesetzt ist, ist der Wert negativ.
Bei der Definition U für Unsigned, sollte das eigentlich ignoriert werden.

Um aber Prozessorneutral zu sein, muss man eben per Spezifikation (siehe Dieter) genau wissen, wie Daten zu interpretieren sind und natürlich auch über Speicherungen auf Prozessoren informiert sein.
Auch Terminologien sind da manchmal unterschiedlich.
Bei Intel (und fast allen PC'lern) werden Bits in Bytes z.B. von rechts nach links gezählt, bei IBM und somit AS/400 aber von links nach rechts.

Wo ist also Bit 0 ?

Naja, und das mit den LOWORD/HIWORD bzw LOWBYTE/HIGHBYTE stammt auch aus der C++/C-Programmierung, wo eben Makros je nach Zielsystem (also Hardware) die Interpretation zur Compilezeit auflösen.