15955282f6
- ensure es = ds = ss upon exit of each C runtime function - clear upper 16 bits of ebx before setting them to 0x0021, when invoking interrupt_ptr to simulate a RM int 0x21 - make _sys_exists use the transfer buffer (which it needs) - make _sys_rawread properly handle an end-of-file read (zero bytes read) - make argument to _sys_seterrno short --- after a failed int 0x21 call, only the lower 16 bits of eax hold the MS-DOs error code - _sys_rawlseek accepts only 3 longword arguments, not 4 (the offset is only 1 longword) - other minor fixes |
||
---|---|---|
.. | ||
include | ||
libsys | ||
boot.s | ||
build-pkg.lua | ||
build-tools.lua | ||
descr | ||
README | ||
stub.s |
The msdos386 platform ===================== msdos386 is an i386-based BSP that produces DPMI DOS executables. It should have the same functionality as msdos86 (as the libc is all the same code), but has been much less well tested. The code runs in flat 32-bit mode, so normal 32-bit pointers work with no worries about segmentation. It requires a DPMI host to run; it was tested with CWSDPMI. It will _not_ automatically load the host --- you need to manually install the DPMI hsot first. IEEE floating point is available, but requires an FPU. Example command line ==================== ack -mmsdos386 -O -o msdos386.exe examples/paranoia.c David Given dg@cowlark.com