Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
asm volatile("mov $0,%ax ; int $0x16; mov %al,%1":"=g"(puffer));
however, remember GCC is a 32-bits compiler and thus you're unlikely to be able to call BIOS to get a character if you can run GCC code ... except if you have a magic environment helping you :p
Right, i toyed a little bit with this function in my kernel (i used a nice app to convert my old asm-code to gcc code!!) and on every interrupt --> restard.
I think i should use another method for the getch() funktion.. hmmm :-\
there's nothing like bios calls once your in pmode. calling INT 16 will result in nothing good and will reset your CPU until you load a proper Interrupt Descriptor Table with a custom descriptor for INT16 or a good handler for GPF (as missing interrupts raise a GPF, iirc)