Skip to content

v2.19

Compare
Choose a tag to compare
@Baron-von-Riedesel Baron-von-Riedesel released this 02 Apr 10:00
· 109 commits to master since this release

changes hx v2.19

hdpmi:

  • fixed regression in v3.18: HDPMI32 & HDPMI16 couldn't be installed
    simultaneously.
  • fixed regression in v3.18: a raw-mode switch to protected-mode from
    code that was called via DPMI function 0x300|1|2 may have caused a
    host stack corruption under certain conditions.
  • fixed in int 31h, ax=801h: the mapped region wasn't found (and hence
    an error returned) if bits 0-11 weren't zero.
  • fixed int 31h, ax=509h: function did just map physical memory; now
    it copies PTEs, which was the intention.
  • fixed int 31h, ax=503h/505h: resizing was rejected if block contained
    "mapped" pages (included thru functions 508h/509h).
  • fixed int 31h, ax=503h/505h: resizing may have failed if the block's
    address space was previously used to map a device (int 31h, ax=800h).
  • bugfix debug version: crash may have occured due to "16-bit" strings
    that weren't fully copied.
  • fixed int 31h, ax=800h: under certain conditions, physical pages in
    page pool may have "get lost", if HDPMI was installed residently.
  • fixed exception handling: in case a client used v1.0 functions to set
    an exception handler, the LPMS remained in status "used" after first
    exception.
  • DPMI function 0Eh (get coprocessor state): a 80487 is returned
    instead of an 80387 if cpu is 80486+.
  • CR0.NE flag is no longer modified; that makes cmdline option -t
    obsolete. It has been removed, as well as environment switch
    HDPMI=32768. Instead, the default handler for interrupt 75h (Irq 0Dh)
    will trigger a numeric exception 10h.
  • error msg "VCPI host has remapped PICs" changed to "VCPI host reports
    remapped IRQs".
  • hdpmi debug displays (debug version only) may have caused an exc 00 if
    the current screen resolution had 128 colums.
  • added HDPMIST.EXE, to display status of currently running HDPMI hosts.
  • exhaustion of locked protected-mode stack will exit with fatal error.
  • error codes returned in AX for int 31h, ax=503h/505h.
  • disabled code for int 2Fh, ax=168a, ds:e/si="VIRTUAL SUPPORT" (32rtm).
  • Regress16 directory added - 16-bit test cases.

dpmild32:

  • bugfix: in nested execution, PSP may have become invalid, if DPMILDR=8
    wasn't set.

dkrnl32:

  • (re)enabled support for handling IRQ 0Dh on floating-point exceptions.
    This is also an adaption to the changed behavior of HDPMI32.EXE, which
    will no longer modify CR0.NE.
  • GetTickCount64 added.
  • GetFileType() will no longer return FILE_TYPE_REMOTE (this value is
    "unused" according to docs.
  • TryEnterCriticalSection added.
  • file TIMERHLP, function _GetTimerValue(): interrupts no longer disabled
    during PIT register read.
  • GetModuleHandleExA/W added.
  • FindFirstFileExA/W added.
  • InitializeSListHead added.
  • SystemTimeToTzSpecificLocalTime: lpTimeZone argument wasn't checked
    for NULL.
  • HeapReAlloc: don't reject newSize=0.
  • HeapValidate: argument pMem==0 wasn't handled correctly.
  • GetLocaleInfoA: added a few locales.
  • GetLocaleInfoW: check LOCALE_RETURN_NUMBER flag.
  • DeviceIoControl: return correct detection type for physical disk info.
  • CreateProcess: if the cmdline was <= 126 bytes, but a previous call
    of CreateProcess had a cmdline > 126, the called process got a wrong
    cmdline.
  • GetDriveType: ramdisk on A: or B: wasn't detected.