DR DOS 9.0 Change Log --- 9.0 rev 550 - 2026-04-18 --- * Expand hard disk detection from 2 drives (C:-D:) to 16 (C:-R:) * Add INT 21h AH=32h (Get Drive Parameter Block) and AH=1Fh (Get Default Drive DPB) * Add List of Lists (INT 21h/52h) with proper DPB chain and CDS array; disk utilities now work * Add PSP default FCB population from command-line arguments during EXEC * Add CP/M CALL 5 compatibility stub at PSP+0x05 * Add caller SS:SP save to PSP+0x2E on INT 21h entry for TSR/debugger compatibility * Add PSP+0x38 initialization to FFFFFFFF for DOS extender compatibility * Add retry logic for CMOS RTC reads to handle Update-In-Progress conditions * Add batch file drive change commands (standalone "D:" now switches drives) * Fix PSP default FCB initialization to use space-padding instead of zeros * Fix Create PSP (AH=26h/55h) memory size off-by-one and JFT segment pointer bugs * Fix command tail buffer overflow by clamping length to 127 bytes 9.0 rev 487 - 2026-04-11 --- * Add retry logic to floppy disk operations (bootloader reads, kernel I/O, motor spin-up) for improved reliability on real hardware * Add DMA 64KB boundary checking for floppy multi-sector reads, preventing data corruption when transfers cross page boundaries * Improve floppy disk change detection to preserve current directory across media swaps instead of resetting to root * Improve CONFIG.SYS DEVICE= loader to find drivers beyond the first 16 root directory entries * Fix floppy disk change detection to handle corrupt BPB data without marking the drive as removed * Fix bare filespec floppy access (e.g., TYPE A:FILE.TXT) to trigger media check, preventing stale geometry usage * Fix MKDIR to reject duplicate directory names; returns error 5 (access denied) instead of corrupting the directory * Fix Set Default Drive (AH=0Eh) to accept any drive within LASTDRIVE range even if drive does not exist * Fix Create Child PSP (AH=55h) to update current PSP pointer after creating child PSP * Fix Parse Filename (AH=29h) FCB parsing for drive specifiers and wildcard characters * Fix file seek past EOF to zero-fill gaps when writing beyond current file length * Fix file handle operations to honor expanded Job File Tables from Set Handle Count (AH=67h) * Fix EMM386.SYS page fault handler to distinguish page faults from IRQ6 (floppy interrupt) when sharing vector 14 9.0 rev 442 - 2026-04-04 --- * Add floppy disk change detection; the kernel now detects disk swaps via INT 13h and automatically rebuilds the DPB, invalidates the FAT sector cache, and clears stale file handles, preventing data corruption when exchanging floppy disks * Add A:/B: drive aliasing for single-floppy systems; the physical drive is now shared between both drive letters as DOS convention requires, detected via the BIOS equipment word * Add FAT12 superfloppy support for D: drives without a partition table * Add Windows enhanced mode detection (INT 2Fh AX=1600h/1605h/1606h) with correct broadcast chaining; applications that probe for Windows enhanced mode now receive a proper "not running" response * Add save and restore of INT 22h/23h/24h vectors into the PSP on EXEC and restore them on child process termination, matching standard DOS behavior * Improve FAT12 I/O performance with an 8-slot LRU sector cache, eliminating redundant disk reads during file operations on floppy volumes * Fix FAT12 type detection to use the standard cluster-count algorithm rather than hardcoded heuristics, correctly identifying FAT12 on non-standard disk geometries * Fix FAT12 cluster allocator using incorrect EOF marker instead of the canonical 0x0FFF constant, which could cause file chain corruption * Fix Set Date (AH=2Bh) corrupting the month value when the current day is invalid for the target month (e.g., changing to February while day is 31) * Fix EXEC (AH=4Bh) not returning the error code in AX on failure; callers that inspected AX after a failed program launch received an indeterminate value instead of the correct DOS error code 9.0 rev 397 - 2026-03-28 --- * Add floppy drive support (A: drive, auto-detected at boot, full read/write) * Add FAT12 filesystem support on all drives (hard disk partitions and floppy disks) * Add EXE-format device driver support; DEVICE= in CONFIG.SYS now accepts .EXE files in addition to .SYS * Add attribute filtering to FindFirst/FindNext; hidden, system, and directory entries are now correctly included or excluded based on the search attribute mask * Fix FindFirst/FindNext search state not persisted in DTA, causing incorrect results from consecutive FindNext calls * Fix FCB FindFirst/FindNext (AH=11h/12h) using incorrect filename comparison * Fix DTA not initialized to PSP:80h for shell and child processes * Fix file writes larger than 512 bytes being silently truncated (AH=40h) * Fix incorrect error codes returned by file and directory operations when path resolution fails 9.0 rev 357 - 2026-03-21 --- * Add file and directory timestamp support (creation and modification times) * Add file locking support (INT 21h AH=5Ch) for database compatibility * Add IOCTL functions for removable media detection and network drive detection * Add support for 32KB cluster sizes for large FAT16 volumes (2GB+ partitions) * Fix IOCTL Get Input Status EOF detection for file handles * Fix MKDIR corrupting parent directory entries when extending directories * Fix cross-directory rename for multi-cluster subdirectories * Fix cross-directory rename to automatically extend full destination directories 9.0 rev 330 - 2026-03-14 --- * VCPI 1.0 interface in EMM386.SYS for DOS extender compatibility (DOS/16M, DOS/4GW) * Add EMS 4.0 function 50h (Map/Unmap Multiple Pages) for improved performance * Add INT 21h AH=4Bh AL=03h (overlay loading) for overlaid executables * Add INT 21h AH=40h CX=0 (file truncation) and AH=58h (memory allocation strategy) * Add superfloppy drive detection for FAT16 D: drives without partition table * Improve CONFIG.SYS boot feedback with per-driver loading messages * Improve CD command to support "CD..", "CD\", and "CD/" syntax without spaces * Improve error messages for failed DEVICE= driver loads * Fix cross-directory rename (INT 21h AH=56h) LBA and sector count calculations * Fix INT 21h AH=67h (Set Handle Count) register preservation 9.0 rev 291 - 2026-03-07 --- * EMM386.SYS driver for EMS compatibility * Add EMS 4.0 functions 47h-51h (handle directory, alter page map) * Add INT 33h functions 13h, 1Ch, 24h to mouse driver * Fix XMS move for extended memory blocks * Fix mkdir directory extension for multi-cluster directories * EMS no longer advertised when EMM386.SYS not loaded (MS-DOS compatible) 9.0 rev 265 - 2026-02-28 --- * Implement LIM EMS 4.0 (INT 67h) with XMS backend * Add BATCH.COM batch file processor * Add AUTOEXEC.BAT support on first boot * Add batch commands: ECHO, CD/CHDIR, DEL/ERASE, COPY, REN/RENAME, MKDIR/MD, RD/RMDIR * Add batch features: SHIFT, SET, CALL, %VAR% expansion, IF ERRORLEVEL * Add wildcard support for DEL command * Add IF EXIST support for device names (NUL, CON) * Implement INT 21h AH=67h JFT expansion * Properly implement . and .. directory entries * Set archive bit automatically on file creation and modification * Increase minimum system requirements to 386 * Fix CHS disk I/O reliability * Fix AH=69h crash by using bounce buffer for CHS disk read compatibility * Fix INT 21h AH=6Ch extended open action flags and register handling * Fix FAT cache stale data bug for multi-cluster files * Fix 16-bit overflow in FAT entry write for clusters >= 0x8000 * Fix multi-cluster directory support in EXEC, rename, MKDIR, and file lookup * Fix AUX device I/O (INT 21h AH=03h/04h) incorrectly routing to printer 9.0 rev 205 - 2026-02-21 --- * Add full-screen text editor (EDIT.COM) * Add PS/2 mouse driver (MOUSE.COM) with INT 33h API support * Add pipe support and output redirection (cmd | MORE, cmd > file) * Add MORE, DIR, JMP, PEEK, & POKE programs * Implement JFT/SFT file handle architecture * Implement INT 21h AH=04h,05h,0Dh,11h,12h,1Bh,1Ch,23h,24h,26h,2Dh,2Eh,34h,3Ah,45h,46h,54h,55h,57h,58h,59h,60h,63h,66h,67h,68h,69h,6Ch * Add extended key (scan code) support to console input functions * CHS fallback for systems without LBA support * Report DOS version 6.0 for compatibility * Fix day of week calculation in INT 21h AH=2Ah * Fix FAT entry lookup overflow for large volumes (clusters >= 0x8000) * Fix COM/EXE program exit via RET instruction * Fix FCB functions to search current directory instead of root * Fix EXEC to correctly calculate EXE load size from MZ header * Fix IOCTL file handle mapping and AH=43h attribute return 9.0 rev 126 - 2026-02-14 --- * Improved XMS memory allocation * Improved support for DOS extenders * Increased available conventional memory / Load kernel into HMA * Improved MEM output & behavior * Fixed "CD .." to correctly return to the parent directory * Implement INT 2Fh AX=4A01h * Support for second fixed disks (D: drive support) 9.0 rev 107 - 2026-02-07 --- * Implement INT 15h AH=88h * Implement INT 21h AH=03h,28h,4Bh,50h,51h, & 52h * Fix stack imabalance bug in EXEC * Expose CON & NUL devices in SYSVARS * Add CLS, MEM, HEXDUMP, & DATE programs * Improved conventional memory availability * Support for nested folders * Support for larger volumns beyond single sector FAT * Fix program ENV to be a proper copy & include program name * Support for reading larger files * Improved file I/O performance 9.0 rev 86 - 2026-01-31 --- * Initial public release