This week several things progressed with the debugger and the 95LX.
Einsicht needs to implement the following:
The immediate assembler implementation of lDebug has progressed a lot. From an experimental feature with a lot of debugging and very little safeguards, it can now run most instructions without fail.
Some more work went into lDOS boot to insure that it will not accidentally leave the value "CL" in the command line signature field (at
word [ss:bp - 14h]). If the "attrib save" is not used and the loader relocates itself, then the "last available sector" segment pointer could have ended up containing the unwanted signature value. To avoid this, the assembly inserts one or two
push bx after the directory search, which will push the counter of directory entries per sector into the field. (This value is a power of two between 1 and 256.)
If the loader does not relocate itself and loads to below itself then the "last available sector" segment pointer will always be below 7C0h.
If the loader uses the attrib save then the first or second word of the directory search stack will end up in the signature field. This is chosen so that the count of remaining directory entries in the current root directory sector ends up in the signature field, which is always below-or-equal 256.
Yesterday saw some more activity after the prior blog entry.