Key-down gives you the basic scancode, key-up gives you the basic scancode "or"ed with 80h. Yeah, it's the leftmost bit.
Some ports may allow you to read/write more than a byte. I'm not familiar with "all" the ports. The instructions exist:
in al, dx
in ax, dx
in eax, dx
I don't think you'll find anything more than a byte useful for keyboard, RTC, timer, etc. that you'll "probably" be using... at first, at least. Consult RBIL's "ports.lst".
Best,
Frank