256 sectors per cluster: lDOS boot sectors, lDOS iniload, lDOS kernel. Missing from SYS and FORMAT (and FDISK?). (FastSeek / FastOpen also missing?)
LBA support: lDOS kernel bio r/w. Missing from bio format interface(?), FORMAT, FDISK.
LFN awareness: lDOS kernel bio and dos will not misdetect LFNs as volume labels.
HMA and UMA use: lDOS kernel will make use of the HMA and UMA (multiple UMA providers supported). DOSCODE can be relocated to HMA, UMA, or LMA. DOSDATA can be relocated to UMA or LMA.
Kernel bio and dos integration: Unlike MS-DOS v5 the bio and dos modules are linked together, and some use is made of this integration. There is a single DOSCODE group that includes most code of both bio and dos, and DOSDATA likewise. Each group is addressed using a single segment. For the DOSCODE in HMA, segment 0FFFEh is used as the Code Segment.
DOSENTRY shrinkage: The part of DOSENTRY that is hardcoded to live at linear address 00600h is smaller than 1.5 KiB usually (if not including the PC AT hdd read ROM-BIOS fix). If the HMA and UMA are fully utilised (eg in dosemu2) then below 3 KiB of the LMA are in use.
A20 is enabled on all dos and bio entrypoints if the kernel uses the HMA (ie, DOSCODE is relocated into the HMA).
Compatibility options allow bouncing HMA or UMA+HMA sector accesses through the DOSENTRY LMA buffer. Some heuristic is used to detect the need for this automatically, by default.
COMPAT=ALTAH for using byte at 70h:61Bh as CON lookahead buffer. Default is a different, less compatible address.
COMPAT=DOSDATAFIRST to act more like less sophisticated kernels, placing the DOSDATA segment first (into the LMA) before processing any DEVICE= or INSTALL= directives.
COMPAT=DOSDATAEARLY to place DOSDATA into the UMA as soon as sufficient UMA space is provided to the DOS. This means that the final DOSDATA relocation is done before processing subsequent DEVICE= and INSTALL= directives.
COMPAT=HIDEDOSENTRY to hide the DOSENTRY MCB at 00600h, using the next MCB as the first MCB. Improves compatiblity with software expecting the device headers and interrupt entrypoints live before the first MCB.
COMPAT=HIDEDOSDATAFIRST, in conjunction with DOSDATAFIRST to hide the DOSDATA MCB. Improves compatibility with software expecting DOSDATA lives before the first MCB.
DOSENTRY is now addressed with segment 60h, except for:
Many entrypoints are addressed with segment 26h.
Device headers of the bio are addressed with segment 70h, for compatibility.
All builds of the kernel are now single-file kernels, eliminating a host of problems with dual-file kernels. (SYS tool and FORMAT /S support are unmodified but should not be used to set up a bootable drive any longer. Instead, use INSTSECT and copy ldos.com and command.com manually.)
Hard disk partitions are logged in in this order:
Up to one primary partition per unit, as many units as specified in DL by int 13.08.dl=80
Up to one extended partition per unit, with none or one logical partition per EPBR.
Extended partitions of type 5 and 0Fh are supported.
FAT FS partitions of type 1, 4, 6, or 0Eh are supported.
FAT12 or FAT16 partitions are supported (no change from lMS-DOS basis).
lDOS iniload query patch site allows modifying lDOS initial loader operation. Not yet used by the kernel.
lCFG block allows configuring inicomp progress display and kernel's debugger detection.
lDOS kernel command line can be passed by prior loader:
PREPEND= and APPEND= for adding to the configuration file.
CONFIG=, ALTCONFIG=, OLDCONFIG= for changing the configuration file name used.
New configuration file directives:
Default configuration files are searched in the order "ldos.ini" then "config.sys"
Add debugger detection to avoid installing int 1 and int 3 handlers.
Set SD name for system MCB holding sub-MCB memory blocks.
-
-
-
-
UPBs store the unit absolute offsets of partitions in their hidden sectors, without storing a cylinder offset (allowing logical partitions not on cylinder boundaries).
Only the LBA numbers are used to access partitions, even in CHS access mode. That means the CHS values on disk need not match those used to access the unit.
-
-
Kernel, sharer, and format all build with GNU make, NASM, WarpLink, x2b2, bash, dosemu2 (plus compression tool).
Kernel may be compressed using lDOS inicomp kernel stage.
-
-
-
Add flags to debugger detection: 1 detect / do not detect, 2 assume present / assume absent, 4 check only if valid vector (segment != 0 and offset != -1), 8 check only if IISP entrypoint header present.
-
(Repeat:) Set "SD" name for System Data container MCBs (MS-DOS v5 compatible)
-
-
Create trace listing files for msbio/msdos (combined), shell, sharer, format
(Repeat:) Work around Xi8088 bug during LBA detection.
(Repeat:) Combine msbio and msdos into a single kernel file, later also linked together.
(Repeat:) Load kernel payload to 00600h and use the space from 00610h to 006FFh by DOSENTRY.
(Repeat:) Allow compressing kernel using lDOS inicomp stage.
-
-
(Repeat:) Support 128 and 256 sectors per cluster.
(Repeat:) Add FreeDOS style function 21.33FF
Allow relocating DPBs and UPBs to HMA, UMA, or LMA.
Allow allocating SFTs, CDS array, FCB SFTs, buffers in HMA, UMA, or LMA.
-
-
-
Adapt MS-DOS v2 buffer handling for us, doing away with the hash buckets and EMS support.
-
Support UMA (from old lDOS sources), 21.5802/.5803, allocate UMBs and add them to the UMCB chain.
-
-
-
-
-
-
-
-
Do not patch DOSCODE section for 96TPI support, instead read a flag at run time.
(Repeat:) Prefer the configuration file name ldos.ini
-
Add Interrupt Restoration Table at 70h:100h
-
-
Update version number to 5.26
-
-
-
-
-
Use Leave2F/Leave13 rather than retf 2
to preserve IF, TF, DF.
-
-
Use S MCBs throughout except for DEVICE= allocation of device driver.
Allocate init boot segment using DOS, and free it later.
-
(Repeat:) Move default ALTAH variable, add COMPAT= setting for compatible one.
(Repeat:) Add HMA, HMA+UMA, or always bouncing sector accesses through DOSENTRY/LMA buffer.
-
-
-
Allow to either protect the first UMCB or enlarge the LMA into the UMA if an UMB directly after the LMA is allocated.