blog:pushbx:2026:0503_april:may_work
Table of Contents
April/May work
2026-05-03
lDOS kernel
- 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).
- Rename implementations of functions 25h and 35h to indicate they're for server calls.
- Handle non-server calls for functions 25h and 35h early in the int 21h handler, without using any DOS-internal stacks.
- Detect out of range AH function in server call (function 5D00h).
IntList
- Fix perl foreach loop resetting the index variable after it ends, and use summarymatched variable as the found index.
- Pass array reference to enterresultfile allowing to pass multiple files per call.
- Add a Path::Iterator::Rule rule to match only pathnames matching "/INT xx" for INTERRUP.LST entries, detected from the unique ID starting with two hexits. Contains a reference to 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.
- Find files in two passes, first with filename ID match.
- Allow calling dobeep without curses set up yet.
- Switch to Path::Iterator::Rule iter_fast over iter.
- Combine the not name and name rule into one rule.
- Add a timer to display how long a capital-P L command takes.
- Add code to call enterresultfile repeatedly, commented out.
- 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: Fix a few typos.
- Add most header dependencies to makefile. Includes a scriptlet in the changeset message.
- Add some remaining header dependencies. Again includes a scriptlet.
- Don't generate .s files during compilation of .c files.
- Implement a naive /RESERVE: switch. May not work as intended when the RAM disk already contains any data.
- As suggested by the interrupt list, 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.
- 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.
- Implement /RESERVE: option with /MAXSIZE, allocate as much as allowed while honouring the reserved memory.
- Add /LETTER switch. Will return an errorlevel between 32 and 63 if it would have been zero, corresponding to the drive being operated on.
- 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
- 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).
- ecm 2026-04ad: RxDOS LFN EXEC (21.714B), memory allocation updates (including two FreeDOS kernel bugs), 21.71A6 refer to dosemu2 extension 2F.11A6
- 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).
- 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.
You could leave a comment if you were logged in.
blog/pushbx/2026/0503_april/may_work.txt · Last modified: by ecm
