## PC kernel

The PC kernel lives at [xcomp/i386/pc/kernel.fs] and builds on the i386 kernel.
The most important things it adds are the "int13h ( drv head cyl sec cmd -- buf
)" and "int10h ( cx/dx bx ax -- bx ax )" words. Those words are used in
[drv/pc/int13h.fs] and [drv/pc/vesa.fs].

These two words implement all the ugly things one has to do to manage to make a
BIOS call from protected mode, that is, "descend" into real mode, do the call,
emerge back from real mode, all the while not messing up the PIC. Very hairy,
very ugly, which is why you should rely on these words as little as possible.

It's possible that BIOS calls mess more than the PIC. For example, if you set up
a 8042 PS/2 controller on IRQ 1, there are good chances that BIOS calls will
mess your stuff. To avoid this, you'll want to disable PS/2 interrupts during
the BIOS call. To this end, the is a hook system through the BIOSPRE and
BIOSPOST variables.

These two variables are a reference to a word with a "( -- )" signature that is
called at the beginning and end of every BIOS call. Right now, it's only used by
[drv/pc/ps28042.fs] and it uses the hook like a savage (not trying to chain it
with the existing value), so any other driver using those hook will conflict
the the PS/2 driver, but well, we'll cross the bridge when we're there...

Even this system won't shield you from an occasional lock up of the PS/2
controller due to a BIOS call (why? I don't know yet). In short: avoid BIOS call
and if you can't avoid them, avoid mixing them with interrupts.
