Table of Contents
hgweb sign-in requirement, and lDOS boot updates
2025-10-26
This week we celebrated the anniversary of the first lDebug revision in the hg (Mercurial) repo. Also, the hgweb server now requires anonymous sign in to access.
webecm
Add a news item and a blurb in the links list that the hgweb server at hg.pushbx.org now requires signing in. The password can be any nonempty string, while the user must be "anonymous".
lDOS boot (experimental)
- test.sh: Pass parameters to testwrit.asm assembling as well, to allow setting defines like
_PADDING. - test.sh: Implement use_build_inicheck option to add a checkpl stage to the test writer.
- Fix test writer build with _LBA=0
- Add a separator to test writer display messages (consisting of a caret and linebreak).
- test.sh: Fix error exit on $? set. Would apparently return 0 rather than the nonzero $? code.
- Disable test writer's clust_next for FAT12, as it is unknown whether the FAT12 FAT is already loaded or not as of a recent iniload change (2025-10-03).
Plans
The current interface between iniload and its payload is clearly not satisfying. The test writer expects both a valid buffer address in lsvFATSeg and, for FAT12, that the entire FAT be loaded already into that buffer, either 6 KiB worth of data or the entire FAT as specified in bpbSectorsPerFAT (whichever is smaller).
Now for the test writer, walking a cluster chain is actually only needed for a FAT32 file system so that allows disabling the FAT12 path in clust_next entirely. However, other users may want a better interface.
I'm considering reusing 1 or 2 bits of the ldHasLBA flag. It's an octet, but only the lowest bit is defined yet in the passthrough protocol. The second lowest bit is used by the multi-sector loader but cleared unconditionally before passing control flow to the payload. So that leaves 6 bits to easily re-use.
The flags I want are:
- lsvFATSeg and ldSectorSeg are valid and point above ldLoadTop. (Only testwrit.asm makes use of these yet.)
- Indicator that the FAT12 is loaded in full, 6 KiB or all sectors (whichever is smaller).
For now the implied protocol is that fat seg and sector seg are always allocated, fat sector is -1 on FAT16/FAT32 if nothing is loaded, and FAT12 is always fully loaded.
But recently I added a mode where the FAT12 isn't loaded, which is communicated by zeroing the fat seg. But that's not super helpful if the next stage wants to re-use the fat seg without re-allocating it, even if the FAT12 isn't loaded yet.
