====== Early May work ====== **2026-05-10** ===== IntList ===== For the capital-P L command (add all matching hyperlinked entries to preserved edit files list), [[https://hg.pushbx.org/ecm/intlist/rev/c18783cc3f46|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. [[https://hg.pushbx.org/ecm/intlist/rev/9a2b1e056007|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 [[https://hg.pushbx.org/ecm/msdos4/rev/c12d5a978313|so zero-size allocation fails if no free block is found]]. I wrote about this [[blog:pushbx:2026:0508_when_0_paragraphs_free_is_not_the_same_as_0_paragraphs_free|in its own blog post]]. * Change first fit allocation [[https://hg.pushbx.org/ecm/msdos4/rev/40d161fcdc6d|to scan the entire area]], which is more similar to MS-DOS (v5). * Optimise allocation [[https://hg.pushbx.org/ecm/msdos4/rev/e66c1b873f2c|to keep a single lvar variable for the candidate]], rather than keeping one for last fit and one for the other two strategies. * [[https://hg.pushbx.org/ecm/msdos4/rev/83f16499ed39|Update lDOS version]] to 2026 May. * [[https://hg.pushbx.org/ecm/msdos4/rev/e1268480b8db|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. * [[https://hg.pushbx.org/ecm/msdos4/rev/576fbeab0fef|Return ax = 0100h from 21.47]] as documented in the interrupt list, rather than only al = 00h. * In dir2.nas [[https://hg.pushbx.org/ecm/msdos4/rev/d647efeeeb55|delete some useless labels]]. * [[https://hg.pushbx.org/ecm/msdos4/rev/0641955f8469|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). * [[https://hg.pushbx.org/ecm/msdos4/rev/b0886a4abe5f|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 [[https://hg.pushbx.org/ecm/msdos4/rev/846cdd0dc7d3|by pushing into the lvar variable slots]], generating shorter code than reserving space then using multiple mov instructions. ===== The List ===== * [[https://github.com/LoopZ/TheList/pull/103|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. * [[https://github.com/LoopZ/TheList/pull/105|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. {{tag>intlist intlist.pl ldos msdos4 list}} ~~DISCUSSION~~