Repository navigation
Open 386MAX 8.57
Open 386MAX 8.57, English (US) and German (GR).
8.x is now the maintenance line: bug fixes only. New features go into 9.x.
Bug fixes (from the 9.x work, found or confirmed with the new regression suite)
- A DPMI client that faults without its own handler is terminated with a short report, and DOS continues (as with CWSDPMI and HDPMI). The machine no longer stops at a full-screen message. BOUND and coprocessor-not-available faults no longer loop.
- DPMI clients can no longer write the page tables. A client with a broken stack crashed the machine.
- EMS mapping contexts (functions 4Eh and 5Bh) are checked. Bad contexts hung the machine.
- INT 31h 0300h leaves the CS:IP of the caller's structure alone.
- INT 21h 440Dh/440Ch subfunctions without a translation are passed through. This includes the DOS 7 volume lock before INT 26h. It used to hang EDR-DOS and MS-DOS 7.1 and corrupt DOS memory on FreeDOS.
- Deeply nested DPMI clients no longer run the ring 0 stack into the tables below it.
- An XMS allocation by a DPMI client works. It failed with A0h, and VSBHDA reported "DMA buffer init failed".
- Starting a nested DPMI client no longer leaves a selector in the parent's LDT.
- A DPMI client that set an INT 33h 000Ch mouse handler and exits without a mouse reset no longer leaves the mouse driver calling freed memory.
- 386LOAD.COM uses the kernel's UMB chain on FreeDOS with DOS=UMB.
Regression tests
The source now contains the regression suite (TESTS/, linux/test/suite.py). It covers XMS, EMS, VCPI, VDS, V86 and DPMI, and every test passes on MS-DOS 6.22 and 7.1, Enhanced DR-DOS, SvarDOS and FreeDOS 1.4. Installation from the floppy disks was tested in QEMU in English and German.