[Patch] LASTDRIVE=32 doesn't work with redirector drive `: (LASTDRIVE=32 patches)
Patch here: https://hg.pushbx.org/ecm/edrdos/rev/8ab6ce75cc58
redir.nas: fix redirector drive `: (for LASTDRIVE=32)
This requires to run a redirector supporting LASTDRIVE higher than Z:, eg dosemu2 with patch in https://github.com/dosemu2/dosemu2/pull/2602
FreeCOM also needs a patch to support this. It was merged today, from the Pull Request in https://github.com/FDOS/freecom/pull/180
lDOS now supports LASTDRIVE=32 as well: https://hg.pushbx.org/ecm/msdos4/rev/1ed1e77d75b2
MS-DOS v7 needs a similar patch to this changeset as it also changed the caps bit unconditionally in its DriveFromText function. In that case it tried to make the drive letter uncapitalised and expected it to be >= 61h then. Patch in https://pushbx.org/ecm/test/20250926.3/
CDS entries for the high drives aren't initialised ever. If I run lredir [: /home/... on the patched dosemu2 then it can work, but HDD logical partitions or dconfig.sys block devices installed to the high drives don't work. The additional CDS entries (past Z:) appear to be all-zeroes regardless what the kernel does.
More patches: https://hg.pushbx.org/ecm/edrdos/rev/8a3aa3e0da87 (with a test case in the changeset message) and https://hg.pushbx.org/ecm/edrdos/rev/d6f3874ce770
Still tbd: Too many block devices in dconfig.sys are installed as drives 32 and on, overflowing the CDS limit.
Partially handled in https://hg.pushbx.org/ecm/edrdos/rev/6ec5b9a325ec - at least, if there's already 32 drives no more block devices are allowed to be installed. (This uses the device driver attribute before calling the device driver, but this should be fine.) Another array overflow is also handled albeit it shouldn't be possible to end up there after the first check.
Block device drivers with more than one unit may still install too many units. Not sure whether the DDSCs and LDTs (DPBs and CDS entries) are hardened against overflow in that case.
Thanks! Will import this in the next days.