## 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.

The approach to keeping the PIC intact is twofold. First, we masks interrupt
lines during the int13h and int10h calls. On int10h, it's completely masked. On
int13h, we mask everything except IRQs 2 (cascade) 6 (floppy) 14-15 (ATA)
because some BIOS need those. We unmask them to their previous value when we
re-emerge from real mode.

Second, we copy IVT entries from the original $08/$70 PIC configuration to the
remapped $20/28 PIC configuration. This way, the ISR that are set up by the BIOS
will continue to work during int13h call. In "normal" times, those IVT entries
are never used because the protected mode uses the IDT, which is where we set
our "real" ISRs.

But all in all, this is all very ugly and BIOS calls should be avoided.
