Table of Contents
Mid late May work
2024-05-19
lDOS MBR
- Work around Book8088 / Xi8088 BIOS bug when detecting LBA
- Optimisation: Do not zero CX after rep movsw
- Normalise function 41h input al=dh=0
- Optimise: Share pushing DI before oldmbr CHS and LBA dispatch
- Share setting DL after oldmbr CHS and LBA dispatch
- Optimise: Make secpercyl a word, and re-use zero in DX
- Drop CHS overflow check for last division, it is always passed
lDOS boot
- Normalise int 13h function 41h input al=dh=cx=0 to match lDOS MBR (ETA: Only for iniload and testwrit, not for boot and boot32.)
- testwrit: Optimise using shr rather than test after LBA check
lDebug
Same as lDOS boot: Normalise function 41h inputs and optimise testing low bit of CX
wwwecm scripts
Avoid hg clean command for MS-DOS v4 fork builds. This avoids rebuilding everything, and works around a problem in which the msdos.cl? files were wrongly created.
MS-DOS v4 fork
- Normalise int 13h function 41h inputs al=dh=cx=0 to match lDOS MBR
- msdata: Insert maximum size page directive to avoid a false positive of detecting a segment directive (details in changeset message)
- mknode: Bugfix, when appending to directory increment full 32-bit sector number rather than only low 16 bits
- dir: Allow cluster size >= 64 KiB and do not show zero free space in that case
- Support 128 and 256 Sectors per Cluster (128 is compatible to late Microsoft drivers, 256 is compatible to EDR-DOS)
- Update xmaem makefile to refer to correct message file, avoiding unneeded rebuild
- Fix memm makefile to copy rather than rename emm386.exe to emm386.sys, and add the latter as a target (avoiding unneeded rebuild)
There were several more changesets to try to address the build failures due to hg clean and the msdos.cl? files being created wrongly. These were reverted however, as the work around in the wwwecm scripts addresses these problems.
kernwrap
Add an option for running the decompression size test. As this is not needed by MS-DOS or EDR-DOS, disable this test by default.
Enhanced DR-DOS
- Harden int 13h function 41h call with cx=dh=al=0 and CY
I also talked about this on the SvarDOS EDR-DOS tracker. I did note there that the int 13h function 48h call in disk.asm is never called as a contribution disabled it for diskettes, but this call is only ever reached for diskettes.
Single-file load and SYS
More discussion of the single-file load took place on the SvarDOS EDR-DOS tracker. FreeDOS SYS is being extended to allow installing lDOS edrdos.com (/OEM:LEDR), lDOS edrpack.sys (/OEM:LEDRPACK), lDOS lmsdos.com (/OEM:LMS), or lDOS lmspack.sys (/OEM:LMSPACK). The patch for this is still in flight.
