BIOS as DOS driver
From Grub4Dos Wiki
Modern BIOS's support many boot devices where it might be not easy to find a DOS driver for either because it's hard to find or because it doesn't exist. Such devices can be for example:
- ATAPI / SATA / USB CD-ROM
- (USB-)ZIP
- FireWire
- Bluetooth
- USB-FDD
- USB-HDD
- SATA/SCSI-harddisks connected by an external controller
- LAN
Note that this article is also valid for BIOS extenders (because it does basically the same thing) as DOS device driver, see also eltorito and PLoP Bootmanager.
After the BIOS has booted DOS form the new/uncommon device DOS will be able to access this device because the BIOS made it available thought INT 13.
But what if you want boot DOS for example form internal harddisk and still want access to the new/uncommon device? Then you can use a workarround and "abuse" the BIOS as a DOS device driver.
In the following example (hd0) will be the new/uncommon boot device 80h assigned by BIOS and (hd1) 81h the internal harddisk (displaced behind by the BIOS due to new/uncommon-device booting). It is assumed that FreeDOS is installed on first partition on first internal harddisk and that there is only one internal harddisk. (It's also possible to port this tutorial to other final boot devices and other versions of DOS such as MS-DOS.)
Example:
BIOS (or BIOS extender) -> USB (hd0) -> grub4dos ->
swapping (hd0) with (hd1) [see below] -> chainbooting kernel.sys
menu.lst:
title using BIOS as DOS USB driver and booting from internal harddisk
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
rootnoverify (hd0,0)
chainloader /kernel.sys
#or chainloader (hd0)+1 to boot the MBR of the internal harddisk
#or chainloader (hd0,0)+1 to boot the VBR of the internal harddisk
Result:
booting from internal harddisk and using the BIOS as DOS USB driver
