Hi! Japheth published a pre-release of an updated CWSDPMI: https://github.com/Baron-von-Riedesel/CauseWay/releases v5.0pre3 Pre-release
adjusted source so OPTION OLDSTRUCTS isn't necessary. added "wdeb386 int 68h" interface to kernel debugger. removed "double 0x66" prefixes for IRET/RETF. segment register moves changed to 32-bit in 32-bit code segments. added ALIGNs in data segments to avoid unaligned accesses. generally avoid (register) WORD pushes in 32-bit segments so stack remains 32-bit aligned. fixed: emulation of DPMI functions 090x. int 41h "protected-mode debugger API": ensure that interrupt isn't reflected to real-mode. invalid opcode fault wasn't reported as exception, but as interrupt only; changed to be a true exception (#06). fixed: emulation of DPMI functions 0300h-0302h did modify BX register. fixed: int 31h, ax=0000 always returned with NC, although function might have failed. UMBs are now also preferably used in DPMI mode. if DOS memory blocks needed by CW itself couldn't be allocated in an UMB, they're now located in space used by segments that were moved to extended memory. This should avoid scattering of DOS memory. _cwInit segment moved from last segment to just behind _cwRaw. This allows to put _cwMain, _cwRaw and _cwInit in a group, thus reducing segment register moves. fixed: handling exceptions in raw/vcpi mode (interrup.asm) did finally jump to InitError(), which is located in _cwInit and hence not present when the application runs. fixed: address space handling in raw/vcpi mode (memory.asm) ignored an overflow, resulting in a freeze or reboot. fixed: unhandled DPMI functions were routed to real-mode in raw/vcpi mode. DPMI function 306h (return raw mode switch addresses) implemented. trace log writes (macro @dprintf) added. fixed: DPMI emulator func 0001 (release descriptor) always returned with NC. fixed: all DPMI descriptor functions got some validity checks so they should fail for an invalid selector argument in BX. fixed: no swapfile-related DOS access if indos flag is set. default value for LOWMEM is now 256kB; previously the value entered was added to a minimum of 32 kB.
_______________________________________________ Freedos-user mailing list Freedos-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-user