Die x86-Architektur speichert Integer und seine Derivate (so auch Word) im LSB-Format. Das bedeutet, daß das am wenigsten signifikate Byte (LSB) als erstes kommt. Somit wird die Byte-Sequenz $FF,$D8 als ein Word $D8FF interpretiert. Analog gilt das natürlich auch für größere Integer-Typen.
Du musst bei der Angabe der Word-Werte in der case-Anweisung dies berücksichtigen. Eine Bitmap-Datei beginnt z.B. mit der Byte-Sequenz $42, $4D (was übrigens den
ASCII-Buchstaben "BM" entspricht). Wenn du diese zwei Bytes als Word interpretierst, dann wird das als $4D42 = 19778 eingelesen. Eigentlich musst du somit gar nichts an deinem Code ändern. Die case-Anweisung sollte funktionieren.