blog:pushbx:2025:0210_early_february_work_on_lms-dos_and_ldebug
Table of Contents
Early February work on lMS-DOS and lDebug
2025-02-09
lMS-DOS
- Call init2_relocate_device also after a device driver is freed (dosemu2's umb.sys enables UMBs but doesn't remain resident in memory)
- In exec.nas put lDOS allocation function call into a critical section
- Support the FreeDOS extension that int 21.4B80 uses the UMA. As opposed to FreeDOS we don't change the current UMB link status and allocation strategy, instead we simply pass a modified extended strategy to the lDOS memory functions.
- Support FreeDOS style INSTALLHIGH= and SHELLHIGH= using the 21.4B80 extension. SHELLHIGH= requires a FreeCOM patch so that an environment block in the UMA is supported despite us returning major DOS version 4.
- Change HMA allocation functions to be more compatible to MS-DOS v5, allowing to allocate the entire HMA rather than requiring to split the free HMCB into two
- In exec.nas recognise function 21.4B05, only disables A20 for now.
- Fix Align_Buffer so HMA addresses (where the desired segment is computed to > FFFFh) are supported without wrapping around to the first 65520 bytes of the LMA. (The patch contains a list of examples in the comments, which I wrote to figure out how to do the algorithm to get the desired results.)
- Check for too large configuration file instead of assuming it is smaller than about 64 KiB.
- Allow to escape semicolons in the kernel command line by doubling them. This does not allow to enter empty commands without any blanks, but these are not useful anyway.
- Add the kernel command line names PREPEND and APPEND to add configuration commands to the buffer
- Display an error if an unknown kernel command line name is used
- Fix application command line in INSTALL= if line ending LF without CR occurs (as does happen using the PREPEND or APPEND commands) (SHELL= seems to be fine already.)
- Upon detecting an invalid kernel command line name, display the contents of that command.
- Allow empty kernel command line command (only blanks or the empty string)
lDebug
- Document dosstrat.eld in the manual
- Add kcmdline.eld (Extension for lDebug to list or change an lDOS style kernel command line)
- Prepare hooks for errfix.eld
- Add new ELD errfix.eld, to allow keeping track of the column at which the "error carat" display should occur.
- Add errfix.eld to extlib.asm and mak.sh
- Integrate extname.eld with errfix.eld (however, if errfix.eld is not supported by the debugger or isn't currently installed, then the integration is skipped)
- In errfix.asm change .debug_error so the final column is computed first, before it
- Add marker asterisk to show in errfix.asm debug output where the error carat should point
- In errfix.asm debug output replace control text bytes (other than tab) by a dot
- Optimise alias.asm's finddel function
- In alias.asm adjust the command line length in
byte [line_in + 1] - In variable.eld accept VARIABLE as an alternative command to the long-form VARIABLES
- In variable.asm harden the overflow detection in replace function
- In errfix.asm display unexpected CR or LF as small "cr" or "lf"
- In variable.asm support errfix.eld in some replacements. Getting the fill value for a variable's start column right was nontrivial.
- In variable.asm transient run support errfix.eld
- Improve variable.asm transient run errfix.eld support, the prior revision could write beyond the bounds of the errfix array. Also eliminates a variable introduced by the prior revision.
- In oneshot mode of ifext.eld support errfix.eld
- Fix lineio.asm to return NC from getline unconditionally, needed by
Y file.sld :labeland GOTO commands - In errfix.eld change reset function to support tabs in the entered line.
- Document errfix.eld tab support, and mention that tabs can be entered when getinput is not used as well (besides occurring in Script for lDebug files)
You could leave a comment if you were logged in.
blog/pushbx/2025/0210_early_february_work_on_lms-dos_and_ldebug.txt · Last modified: by ecm
