Hi,
I am trying to determine if there are legacy applications or operating systems that invoke standard BIOS real-mode interrupt handlers while in 16bit protected mode. (The legacy real-mode entry points - like "int 0x13" - not the declared 16bit protected mode entry points defined by the PnP and APM specs.)
I am considering changes to SeaBIOS that would make 16bit protected mode callers much less likely to work. (Specifically, enhancing SeaBIOS to use memory in the e-segment which is unlikely to be mapped in protected mode.)
Most documents I've seen state that calling the real-mode entry points in protected mode will not work. Though, I am aware that the PCI BIOS spec specifically requires this support for calls to "int 0x1a ah=0xb1".
The advantage of making these changes is that it will allow SeaBIOS to use notably less stack space and therefore be more compatible with old applications that call the BIOS with very little stack space. For example, these changes enable DOS 1.0 to boot and run under SeaBIOS.
What would really help is pointers to applications and/or program images that use 16bit protected mode calls to real-mode entry points. Specifications or documents detailing valid or invalid uses would also be helpful.
For those that are willing to run tests, one can compare the standard SeaBIOS v1.7.0 image (for KVM/QEMU) at:
http://git.seabios.org/downloads/get/bios.bin-1.7.0.gz
to a test image with the new code at:
http://git.seabios.org/downloads/get/bios.bin-test-20120613.gz
Thanks, -Kevin
Hi Kevin,
Long time ago I read about OS/2 calling 16-bit protected mode BIOS, but the documentation didn't specified if this was constrained to the separate protected mode BIOS included by PS/2 systems or the real mode BIOS included by the same PS/2 systems and the whole rest of PC computers.
Regards, Natalia Portillo
El 14/06/2012, a las 04:13, Kevin O'Connor escribió:
Hi,
I am trying to determine if there are legacy applications or operating systems that invoke standard BIOS real-mode interrupt handlers while in 16bit protected mode. (The legacy real-mode entry points - like "int 0x13" - not the declared 16bit protected mode entry points defined by the PnP and APM specs.)
I am considering changes to SeaBIOS that would make 16bit protected mode callers much less likely to work. (Specifically, enhancing SeaBIOS to use memory in the e-segment which is unlikely to be mapped in protected mode.)
Most documents I've seen state that calling the real-mode entry points in protected mode will not work. Though, I am aware that the PCI BIOS spec specifically requires this support for calls to "int 0x1a ah=0xb1".
The advantage of making these changes is that it will allow SeaBIOS to use notably less stack space and therefore be more compatible with old applications that call the BIOS with very little stack space. For example, these changes enable DOS 1.0 to boot and run under SeaBIOS.
What would really help is pointers to applications and/or program images that use 16bit protected mode calls to real-mode entry points. Specifications or documents detailing valid or invalid uses would also be helpful.
For those that are willing to run tests, one can compare the standard SeaBIOS v1.7.0 image (for KVM/QEMU) at:
http://git.seabios.org/downloads/get/bios.bin-1.7.0.gz
to a test image with the new code at:
http://git.seabios.org/downloads/get/bios.bin-test-20120613.gz
Thanks, -Kevin
On Thu, Jun 14, 2012 at 04:17:19AM +0100, Natalia Portillo wrote:
Hi Kevin,
Long time ago I read about OS/2 calling 16-bit protected mode BIOS, but the documentation didn't specified if this was constrained to the separate protected mode BIOS included by PS/2 systems or the real mode BIOS included by the same PS/2 systems and the whole rest of PC computers.
Thanks. At one point (many years ago) I had OS2 floppy disks for v1.0 through v4.0. However, at this point I just have the OS2 Warp images. If anyone does has a pointer to images let me know. My image of os2 warp seems to boot okay.
-Kevin
2012/6/14 Natalia Portillo claunia@claunia.com:
Hi Kevin,
Long time ago I read about OS/2 calling 16-bit protected mode BIOS, but the documentation didn't specified if this was constrained to the separate protected mode BIOS included by PS/2 systems or the real mode BIOS included by the same PS/2 systems and the whole rest of PC computers.
IIRC Borland Pascal 7.0 programs did use 16-bit protected mode ( http://www.monstersoft.com/tutorial1/PM_intro.html ), but I don't have such programs in hand.
Regards, Natalia Portillo
El 14/06/2012, a las 04:13, Kevin O'Connor escribió:
Hi,
I am trying to determine if there are legacy applications or operating systems that invoke standard BIOS real-mode interrupt handlers while in 16bit protected mode. (The legacy real-mode entry points - like "int 0x13" - not the declared 16bit protected mode entry points defined by the PnP and APM specs.)
I am considering changes to SeaBIOS that would make 16bit protected mode callers much less likely to work. (Specifically, enhancing SeaBIOS to use memory in the e-segment which is unlikely to be mapped in protected mode.)
Most documents I've seen state that calling the real-mode entry points in protected mode will not work. Though, I am aware that the PCI BIOS spec specifically requires this support for calls to "int 0x1a ah=0xb1".
The advantage of making these changes is that it will allow SeaBIOS to use notably less stack space and therefore be more compatible with old applications that call the BIOS with very little stack space. For example, these changes enable DOS 1.0 to boot and run under SeaBIOS.
What would really help is pointers to applications and/or program images that use 16bit protected mode calls to real-mode entry points. Specifications or documents detailing valid or invalid uses would also be helpful.
For those that are willing to run tests, one can compare the standard SeaBIOS v1.7.0 image (for KVM/QEMU) at:
http://git.seabios.org/downloads/get/bios.bin-1.7.0.gz
to a test image with the new code at:
http://git.seabios.org/downloads/get/bios.bin-test-20120613.gz
Thanks, -Kevin