v2.19
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.