On Sun, Mar 22, 2009 at 11:34:03AM +1100, Ben Klein wrote:
Oops, missed reply-to-all.
2009/3/22 Tijl Coosemans tijl@ulyssis.org:
I was reading through binutils documentation and came across this. Maybe it can be used to compile 16 bit tests.
3.2.4. 16-bit mode Binutils (2.9.1.0.25+) now fully support 16-bit mode (registers and addressing) on i386 PCs. Use .code16 and .code32 to switch between assembly modes.
Also, a neat trick used by several people (including the oskit authors) is to force GCC to produce code for 16-bit real mode, using an inline assembly statement asm(".code16\n"). GCC will still emit only 32-bit addressing modes, but GAS will insert proper 32-bit prefixes for them.
I believe that does work and has been used by 'bochs' to compile bios code.
16bit mode is required for building bootloaders. The question here is, is it possible for Wine to run raw 16bit code when running under a *nix kernel, which typically (always?) run in protected mode? I believe it is not possible without some sort of 16bit emulator/wrapper (e.g., current win16 libs are actually compiled as 32bit).
NetBSD (at least) has VM86 support in the kernel, however I don't know if it still works :-)
David