Unify floppy functions and main disk functions?

Add int 0x1589 support.

Review changes committed to coreboot, virtualbox, qemu, kvm, and bochs
cvs tip.
  * bochs cvs (20090620):
    -- hpet, int1589, smbios mem>16GB, mptable on 1 cpu
  * coreboot (r3348):    (bochs 20060708)
    -- no noteworthy enhancements
  * qemu (r6125):        (bochs 20080603)
    -- acpi hpet table
  * kvm (1a33292):       (bochs 20081016)
    -- acpi dsdt changes, e820 vmx pages, setup mtrrs, clear tsc, acpi
       intsrcovr table, different pci irqs, smbios always uses 16
       cpus, no acpi ssdt, fadt->gpe0_blk set
  * virtualbox (r13560): (bochs 20061231)
    -- lots of mouse changes, logo, scsi/etherboot hooks, int 1589,
       floppy data rate?, int19 calls post

Possibly introduce a data type for the many seg/off pairs.

Audit all sti/cli calls.  Audit all call16 calls to make sure flags is
setup properly with respect to irqs.

The __call16 code does a long jump to the interrupt trampolines - this
is unnecessary.

Possibly implement 32bit pcibios support.

Allow one to select adding 32 bit code to 0xf000 or in a separate
location.

Implement bios post memory manager (PMM)?

Support PCIv3 roms?  Add support for PCI "configuration code"
extensions?  Add support for PCI permanent memory extensions to PMM?

Possibly add option to eliminate tsc based delays on emulators.

Add a kconfig style configuration program instead of requiring users
to modify config.h.

Support usb booting?  Support usb keyboard/mice?

Add a graphical boot splash screen?

Possibly support sending debug information over EHCI debug port.
