Early December: Loader application and MCP
lDOS boot (experimental)
This is intended to be used by the MCP to support its more complex payload architecture. By using equates, the payloads can also be placed in their own sections (using the multi-section binary format of NASM) rather than all in the single section as is default for iniload.
lDebug / Loader
-
-
-
-
-
-
Allow loader to link list.eld by making the code link yy_dos_parse_name optional. Checks at run time that it is not NOPed out if needed. (This could be solved in a better way.)
-
-
-
Update attribution years to 2025 in several files. I used a shell scriptlet to list files with attribution in the range from 2020 to 2024, editing files that were modified in 2025.
-
-
-
-
-
-
-
-
-
-
-
ETA:
-
-
-
Add the 0Exxh Return Codes (generated by Extensions for lDebug) to the manual. Changeset message includes two scriptlets used to help generate the list.
-
-
Master Control Program
The MCP is a program containing other programs. For now, it contains the lDOS kernel and the lCDebugX debugger. It can boot into either as a kernel, or run the debugger when loaded as a device driver or application. I plan to add the lDOS comloader to the application payload so that its applications are also available.
The MCP uses a special arrangement of its payloads so that the debugger image appears both in the trail of the kernel payload and in the lead of the application/device payload. This allows to load the debugger in any mode, without having to put everything into a single triple-mode payload (as was the case for lRxDOS with its early lDOS comloader).
The Master Control Program is named, of course, for the antagonist of the movie Tron.
Individual changesets:
Initial commit. This just builds the debugger using iniload, producing an exact match.
-
-
-
-
-
-
-
-
-
Accept a CHOOSE command on the kernel command line to boot into either the kernel (CHOOSE DOS), the debugger (CHOOSE DEBUG), or the menu (CHOOSE MENU). Also, after a CHOOSE command, allow a DEFAULT command to instruct the menu payload to reset the command line as if no command line was given at all (0 byte followed by 0FFh byte). (CHOOSE MENU currently only is useful to follow it up by DEFAULT.)
Misc
To do:
Allow the MCP menu to time out and use a default option, probably should be configurable (using an lCFG block?).
MCP currently allows patldos to access only the first lCFG block (the lDOS kernel's). Probably want an extension where in or after the lCFG block, or in a separate signature block, we specify that a subsequent lCFG block follows, along with a field giving the rough distance to the next lCFG block to avoid searching the entire file.
The comloader probably should default to the debugger in the MCP, instead of the version command.
Programs to output the .exe image trail info and lDOS iniload signature.
MCP comloader version: Include lDebug version line?
Append a .7z ball to the MCP executable?
Append extlib.eld to the MCP executable using eldapend? (Probably don't want extpak.eld as it needs to read a lot more from the disk to load an embedded ELD.)
Devise a way for the EXT command to try the appended extlib.eld automatically if an ELD is not found on the FS?
Add loader to the MCP?
Build loader as a current release build? Should also build its fdbplace.eld
Loader manual in or alongside lDebug manual?
Build MCP as a current release build?