User Tools

Site Tools


blog:pushbx:2026:0503_april:may_work

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

blog:pushbx:2026:0503_april:may_work [2026-05-03 16:29:05 +0200 May Sun] (current)
ecm created
Line 1: Line 1:
 +====== 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~~
  
blog/pushbx/2026/0503_april/may_work.txt ยท Last modified: 2026-05-03 16:29:05 +0200 May Sun by ecm