blog:pushbx:2026:0511_early_may_work
Table of Contents
Early May work
2026-05-10
IntList
For the capital-P L command (add all matching hyperlinked entries to preserved edit files list), resume the hyperlink search at the prior match rather than starting anew. This reduces the time for capital-P L "21.4402" (which adds 32 entries) from more than 4s to about 1.7s.
Resume hyperlink search when searching for a table as well. This is less useful, as it is expected only a single table will ever match.
lDOS kernel
- Fix the last fit allocation success test so zero-size allocation fails if no free block is found. I wrote about this in its own blog post.
- Change first fit allocation to scan the entire area, which is more similar to MS-DOS (v5).
- Optimise allocation to keep a single lvar variable for the candidate, rather than keeping one for last fit and one for the other two strategies.
- Update lDOS version to 2026 May.
- Comment out a useless flag check of a CDS entry. This jumped around another check that was already commented out, leading to a conditional branch that jumped forwards a distance of zero bytes.
- Return ax = 0100h from 21.47 as documented in the interrupt list, rather than only al = 00h.
- In dir2.nas delete some useless labels.
- Replace another use of LocalVar mmacros by the lframe mmacros. This change is almost identicalised, except it uses lea sp instead of sub sp (same instruction length).
- Optimise loading es:di from an lvar by popping instead. This uses the lframe's %$ofs smacro to check that the variable is in the current stack slot.
- Optimise lframe use by pushing into the lvar variable slots, generating shorter code than reserving space then using multiple mov instructions.
The List
- ecm 2026-05a: InDOS and ErrorMode updates from the OS/2 Museum, DOSDATA relocation, and debugger use of InDOS. Add dosemu2's MS-DOS and COMPAQ DOS v3.00 SDA fields.
- ecm 2026-05b: Update exact numbers for the 21.40 bug in which DOS truncates the amount of clusters that need to be allocated. Fix 21.50 and 21.51 debugger note references to 21.5D06 (not 21.5D05). Add EDR-DOS extensions to BPB and EBPB. List 21.3E as preserving AH on success for MS-DOS v4.01. Fix 21.4407 AL return description. Mention 21.4409 bug from MS-DOS v4 reading the CDS IFS pointer. In 21.45 note mention the DOS v3.30+ and v4.00+ commit syscalls that this describes a workaround for. Mention for 21.46 that lDOS closes the handle if BX=CX. Note for 21.47 that MS-DOS v4 only forces AL = 00h.
You could leave a comment if you were logged in.
blog/pushbx/2026/0511_early_may_work.txt · Last modified: by ecm
