Page 1 of 1
v86 Disk BIOS substitute Drivers
Posted: Sun Apr 18, 2004 4:01 pm
by srg
Hi
I hear a lot in this forum about graphics card drivers that use the VESA BIOS vire virtual86 mode (the protected mode part of the VBE3.0 seems almost useless to me) based drivers and that has given me an idea.
As well as VESA drivers, an OS could come with a generic hard disk driver that utilises the disk BIOS, using v86 mode. This would stop troubles like in, say NT/2k/XP, where you put your boot drive on a controller card that NT/2k/XP doesn't have an installed driver and you end up with a complete show stopper!
At least you could then access the drive with reduced performance but it increases the os's overall robustness to changing controllers. Of course, this would only be a substitue for a proper driver, but at least the thing would boot and run.
I reallise that Win9x does have this sort of thing, although they are real mode drivers, but that is one area which I feel that they did have the right idea. Rather than just crash out, use a BIOS based substitue untill the proper driver is installed!
Would this be possible?
srg
Re:v86 Disk BIOS substitute Drivers
Posted: Sun Apr 18, 2004 11:12 pm
by Candy
srg wrote:
As well as VESA drivers, an OS could come with a generic hard disk driver that utilises the disk BIOS, using v86 mode. This would stop troubles like in, say NT/2k/XP, where you put your boot drive on a controller card that NT/2k/XP doesn't have an installed driver and you end up with a complete show stopper!
That's indeed a nice idea, but it does place you right in the path of bios bugs...
At least you could then access the drive with reduced performance but it increases the os's overall robustness to changing controllers. Of course, this would only be a substitue for a proper driver, but at least the thing would boot and run.
I reallise that Win9x does have this sort of thing, although they are real mode drivers, but that is one area which I feel that they did have the right idea. Rather than just crash out, use a BIOS based substitue untill the proper driver is installed!
It'd be possible, but also lead to hilarious situations when your driver does not support something, while the DOS driver does. Thus, you can install win95 gold on FAT32, it'll just crap out in the first real boot.(yes, I did try that). It doesn't have a fat32 driver in the protected mode segment, so the IOS segfaults.
Re:v86 Disk BIOS substitute Drivers
Posted: Mon Apr 19, 2004 1:05 am
by srg
Candy wrote:
That's indeed a nice idea, but it does place you right in the path of bios bugs...
It'd be possible, but also lead to hilarious situations when your driver does not support something, while the DOS driver does. Thus, you can install win95 gold on FAT32, it'll just crap out in the first real boot.(yes, I did try that). It doesn't have a fat32 driver in the protected mode segment, so the IOS segfaults.
Surely you must have tried to install Win95 Original using a boot disk from OSR2 or 98 (you can't use Me as Scandisk says "Incorrect Dos version"). If you had used a Win95 original boot disk then I'm sure you wouldn't have been able to install it on FAT32.
Anyway, the v86mode driver would simply be for access to the disk at sector level, rather than cluster/block or file system level, this would hopefully minimise such problems.
As for BIOS bugs, surely there would be just as much risk of encountering one in a v86 VESA driver as would be in a disk driver (although a buggy VESA driver can't ruin your filesystem).
Anyway, Win3.1 and 98 seem to get away with it, and this is only as a backup untill the real driver in installed.
The scenareo I was thinking of was the one with my Promise Ultra 100TX2 card. When installing on a NT/2k/XP machine that you want to boot from it , you have to install the driver first otherwise you get a BSOD where 9x, for all it's faults, can get on with it untill you install the proper driver. The card has a disk BIOS of it's own.
Of course, for the internal ATA on the motherboard, A generic 32-bit driver can be written for that.
Thanks for your comment though!
srg
Re:v86 Disk BIOS substitute Drivers
Posted: Mon Apr 19, 2004 2:09 am
by Candy
srg wrote:
Surely you must have tried to install Win95 Original using a boot disk from OSR2 or 98 (you can't use Me as Scandisk says "Incorrect Dos version"). If you had used a Win95 original boot disk then I'm sure you wouldn't have been able to install it on FAT32.
That's correct. Still, it proves Win uses the realmode driver for writing to the disk, otherwise it'd segfault in the installation. As for the scandisk, it would complain too, but with my default /is switch it skips scandisk. Setup doesn't complain.
As for BIOS bugs, surely there would be just as much risk of encountering one in a v86 VESA driver as would be in a disk driver (although a buggy VESA driver can't ruin your filesystem).
But, if you use the BIOS for all things, there is a lot of chance for bugs, since each part can have a small bug. If you only use Vesa, that limits the usage and the amount of bugs that can hit you.
Re:v86 Disk BIOS substitute Drivers
Posted: Mon Apr 19, 2004 7:26 am
by DennisCGc
May I add my opinion ?
I would only recommend this for switching to another graphical mode.
Programming a disk driver isn't that difficult, and the OS would slow down if you're going to use the BIOS functions in V86.
And you also have some bugs from the BIOS, like the 8 GB limit.
Re:v86 Disk BIOS substitute Drivers
Posted: Mon Apr 19, 2004 7:33 am
by srg
Candy wrote:
srg wrote:
Surely you must have tried to install Win95 Original using a boot disk from OSR2 or 98 (you can't use Me as Scandisk says "Incorrect Dos version"). If you had used a Win95 original boot disk then I'm sure you wouldn't have been able to install it on FAT32.
That's correct. Still, it proves Win uses the realmode driver for writing to the disk, otherwise it'd segfault in the installation. As for the scandisk, it would complain too, but with my default /is switch it skips scandisk. Setup doesn't complain.
As for BIOS bugs, surely there would be just as much risk of encountering one in a v86 VESA driver as would be in a disk driver (although a buggy VESA driver can't ruin your filesystem).
But, if you use the BIOS for all things, there is a lot of chance for bugs, since each part can have a small bug. If you only use Vesa, that limits the usage and the amount of bugs that can hit you.
Have you noticed that the first half of the Win9x setup program, which also has the copying files bit is actually based on Windows 3.1, the dialogs a 3.1 dialogs.
Re:v86 Disk BIOS substitute Drivers
Posted: Mon Apr 19, 2004 7:35 am
by srg
DennisCGc wrote:
May I add my opinion ?
I would only recommend this for switching to another graphical mode.
Programming a disk driver isn't that difficult, and the OS would slow down if you're going to use the BIOS functions in V86.
And you also have some bugs from the BIOS, like the 8 GB limit.
What about drives on the end of a, say, Promise conroller card?
srg
Re:v86 Disk BIOS substitute Drivers
Posted: Mon Apr 19, 2004 7:42 am
by Pype.Clicker
srg wrote:
I reallise that Win9x does have this sort of thing, although they are real mode drivers, but that is one area which I feel that they did have the right idea. Rather than just crash out, use a BIOS based substitue untill the proper driver is installed!
Win9x indeed had "int 13h" drivers, and they were quite infamous, leading to degraded performances on soo many PCs. In addition, using a disk driver through V86 has the additionnal overhead (over using V86 for LFB setup only) that something needs to be done for DMA transfers, etc.
I'm not 100% sure of what you meant with "boot drive on a controller card", but imho if you change the way a disk is accessed, it's normal that it requires a configuration change (i wouldn't expect a system to boot from a Parallel-Port connected external disk if the system there had no support for such disk connection ...
I'd say that INT13h (or any other BIOS artifact) should be bound to the bootloader. From there, it's up to the system designer to make sure *everything* required to boot is loaded in memory before the kernel is started. And yes, i mean this include a USB stack if you're intending to boot an USB stick ...
A proper GRUB menu can even help you loading the proper 'disk support' module into your OS, if needed ...
Re:v86 Disk BIOS substitute Drivers
Posted: Mon Apr 19, 2004 7:42 am
by DennisCGc
srg wrote:
DennisCGc wrote:
May I add my opinion ?
I would only recommend this for switching to another graphical mode.
Programming a disk driver isn't that difficult, and the OS would slow down if you're going to use the BIOS functions in V86.
And you also have some bugs from the BIOS, like the 8 GB limit.
What about drives on the end of a, say, Promise conroller card?
srg
As long it is an IDE0 or ATA controller, it should work!
Ad (don't know the whole Latin word ::) ): if you would like to support SCSI drives, then you need other drivers
Re:v86 Disk BIOS substitute Drivers
Posted: Mon Apr 19, 2004 8:32 am
by srg
When running the boot hard disk off one of these cards, you can't just rely on the standard IDE driver, that is only for the Motherboard IDE or possibly the first IDE controller in the machine AFAIK. You have to install a driver for the card or the Windows will BSOD with INACCESSIBLE_BOOT_DEVICE.
srg
Re:v86 Disk BIOS substitute Drivers
Posted: Mon Apr 19, 2004 10:32 am
by Candy
srg wrote:
Have you noticed that the first half of the Win9x setup program, which also has the copying files bit is actually based on Windows 3.1, the dialogs a 3.1 dialogs.
Yup.. Still the win95 system uses those drivers too, the second boot (when counting three in total, the initial floppy disk boot, the first harddisk boot and the final first-real-boot) does use the win95 interface, but also uses the int21 driver brought by DOS. Only after setting datetime & printer settings, and indicating it should reboot are those drivers loaded. Then it crashes
. The next boot it tries the int13/direct drivers immediately and crashes before it's started.
Re:v86 Disk BIOS substitute Drivers
Posted: Mon Apr 19, 2004 12:38 pm
by ASHLEY4
If i understand your idea, i think the old v2os had some thing like that.
http://www.v2os.cx/old/developer/sysarch.htm#DiskXS
ASHLEY4.