====== April/May work ====== **2026-05-03** ===== lDOS kernel ===== * [[https://hg.pushbx.org/ecm/msdos4/rev/5ff9ade920ad|Replace entries in the int 21h DISPATCH table for user stack functions]] (33h, 50h, 51h, 62h, 64h) by servernoop which acts like a DOS v1 style error (AL = 00h, CF unchanged). This avoids the inevitable crash if one of these functions is called from a server call (int 21h function 5D00h). * [[https://hg.pushbx.org/ecm/msdos4/rev/1726146996d4|Rename implementations of functions 25h and 35h]] to indicate they're for server calls. * [[https://hg.pushbx.org/ecm/msdos4/rev/8b275773dc26|Handle non-server calls for functions 25h and 35h early in the int 21h handler]], without using any DOS-internal stacks. * [[https://hg.pushbx.org/ecm/msdos4/rev/98356c0f2cfc|Detect out of range AH function]] in server call (function 5D00h). ===== IntList ===== * [[https://hg.pushbx.org/ecm/intlist/rev/2b441c3c982a|Allow matching multiplefiles in dofindfile]] * [[https://hg.pushbx.org/ecm/intlist/rev/f0433d31482e|Fix perl foreach loop resetting the index variable]] after it ends, and use summarymatched variable as the found index. * [[https://hg.pushbx.org/ecm/intlist/rev/2e8bff99334d|Pass array reference to enterresultfile]] allowing to pass multiple files per call. * Optimise [[https://hg.pushbx.org/ecm/intlist/rev/4821f4c35e19|to stop the dofindfile loop once all entries are found]]. * Add a Path::Iterator::Rule rule [[https://hg.pushbx.org/ecm/intlist/rev/95ba322cf455|to match only pathnames]] matching "/INT xx" for INTERRUP.LST entries, detected from the unique ID starting with two hexits. Contains a reference to [[https://perlmonks.org/?node_id=11167638|a perlmonks.org question]] in which I didn't notice a typo (dash instead of equals sign) until after I was told my example couldn't generate the errors that I reported. * [[https://hg.pushbx.org/ecm/intlist/rev/0d578e59030f|Extract function generaterule]]. * [[https://hg.pushbx.org/ecm/intlist/rev/4b0fb0e88886|Find files in two passes]], first with filename ID match. * [[https://hg.pushbx.org/ecm/intlist/rev/56c60f376eeb|Allow calling dobeep without curses]] set up yet. * [[https://hg.pushbx.org/ecm/intlist/rev/f936e32fadb9|Beep if second find file pass ran]]. * [[https://hg.pushbx.org/ecm/intlist/rev/e517ffb5a4dd|Switch to Path::Iterator::Rule iter_fast]] over iter. * [[https://hg.pushbx.org/ecm/intlist/rev/76d86545d085|Combine the not name and name rule]] into one rule. * [[https://hg.pushbx.org/ecm/intlist/rev/5f89ad3a0e9c|Add a timer]] to display how long a capital-P L command takes. * [[https://hg.pushbx.org/ecm/intlist/rev/cddeffb62ca6|Add code to call enterresultfile repeatedly]], commented out. * [[https://hg.pushbx.org/ecm/intlist/rev/2a4a01038dc9|Use the getpriorstate and setnewstate functions to fix the status page]] init and exit. This probably duplicates some work but it doesn't cost much performance. ===== SRDISK ===== * doc: [[https://hg.pushbx.org/ecm/srdisk/rev/be9a6cc641f2|Fix a few typos]]. * [[https://hg.pushbx.org/ecm/srdisk/rev/82f740870bfd|Add most header dependencies]] to makefile. Includes a scriptlet in the changeset message. * [[https://hg.pushbx.org/ecm/srdisk/rev/a75bc9c9bec6|Add some remaining header dependencies]]. Again includes a scriptlet. * [[https://hg.pushbx.org/ecm/srdisk/rev/6349b8b8b5d4|Don't generate .s files during compilation]] of .c files. * [[https://hg.pushbx.org/ecm/srdisk/rev/65c2d604ccdb|Use ia16-elf-objdump]] * [[https://hg.pushbx.org/ecm/srdisk/rev/ddd643084b03|Generate gas listings with -g switch]] (using [[https://codeberg.org/tkchia/gcc-ia16/issues/8|the updated gcc-ia16 toolchain]]). * [[https://hg.pushbx.org/ecm/srdisk/rev/a4f337918ae1|Implement a naive /RESERVE: switch]]. May not work as intended when the RAM disk already contains any data. * [[https://github.com/LoopZ/TheList/blob/db3d76cb/source/Interrupt%20List/INT%202F%20Multiplex/Memory/INT%202F4310%20EXTENDED%20MEMORY%20SPECIFICATION%20XMS%20v2%20GET%20DRIVER%20ADDRESS.txt#L110|As suggested]] by the interrupt list, [[https://hg.pushbx.org/ecm/srdisk/rev/b02d0c3f7bdf|pass BL = 00h to XMS functions 8 and 88h]]. This required adding an lframe variable for the XMS entrypoint in three spots, as these addressed the entrypoint using DS:BX. * [[https://hg.pushbx.org/ecm/srdisk/rev/35799fca15c4|Fix build with srdiskc.exe >= 64 KiB in size]]. WarpLink doesn't like a single section stretching over more than 64 KiB. It doesn't have a problem with two sections adding up to more than 64 KiB though. So split the configuration program payload into two sub-payloads: One for the first 40 KiB and one for the remaining part. This assumes that srdiskc.exe is at least 40 KiB and no larger than 104 KiB. * [[https://hg.pushbx.org/ecm/srdisk/rev/1b4a30077c60|Implement /RESERVE: option with /MAXSIZE]], allocate as much as allowed while honouring the reserved memory. * [[https://hg.pushbx.org/ecm/srdisk/rev/25587964283e|If /FREEMEM: and /RESERVE: are both used, treat a size of zero as an error]]. * [[https://hg.pushbx.org/ecm/srdisk/rev/6432eea02be5|Add /LETTER switch]]. Will return an errorlevel between 32 and 63 if it would have been zero, corresponding to the drive being operated on. * [[https://hg.pushbx.org/ecm/srdisk/rev/8cd55465707f|Accept a drive specification starting with 0]], at least one more digit, and a colon. With the number N, this selects the drive that is found by skipping the first N SRDISK drives. This allows selecting different drives without knowing the drive letters already. ===== The list ===== * [[https://github.com/LoopZ/TheList/pull/98|ecm 2026-04ac]]: Update 21.25 and .35 running on user stack as of the lDOS update, note 21.5D00 crashes with unsupported functions, 21.6A and 21.68 are exactly the same code on MS-DOS v4, 21.7156 refer to a drive not disk, 21.5700 details on time and date formats and the all-zeroes date encoding 1980-00-00 (invalid date). * [[https://github.com/LoopZ/TheList/pull/100|ecm 2026-04ad]]: RxDOS LFN EXEC (21.714B), memory allocation updates (including two FreeDOS kernel bugs), 21.71A6 refer to dosemu2 extension 2F.11A6 * [[https://github.com/LoopZ/TheList/pull/101|ecm 2026-04ae]]: SDA details from MS-DOS v4 / lDOS sources, add sort-as IDs for INT 2B and INT 2C, 21.30 add link to .33FF, label FreeDOS links, update MS-DOS v4 notes, describe 21.00 MS-DOS v1 implementation, add 21.2B and .2D references to ROM-BIOS timer tick variable and INTs, 21.26 move MS-DOS v5 bug to BUGS, add FreeCOM bug #185, note parent PSP is DOS 2+, link to INT 31 for CALL 5 interface, notes on lDOS and EDR-DOS boot drive selection (21.3305). * [[https://github.com/LoopZ/TheList/pull/102|ecm 2026-04af]]: Update 21.25 and 21.35 with OpenDOS v7.01 and EDR-DOS source notes on the stack use, and describe use for restoring vectors after hooking. {{tag>ldos msdos4 intlist intlist.pl srdisk list}} ~~DISCUSSION~~