OzzFan wrote on Yesterday, 23:39:
I reviewed their work and their source code. I'm a little weary of building a tool on top of an early beta that hasn't reached at least a 0.8 or 0.9 version to indicate it's nearly complete. But also, I can't find any documentation on public APIs that other applications can call upon, be it using software interrupts or some sort of library file and header definition. Maybe if the project matures a little more and the developer can document how to call upon their stack, it might be worth looking into.
I think, DOSLFN has long since moved past the "beta testing" stage, but Jason Hood kept the zero-leading version numbering for some unknown reason. Te main problem is that the tool is developed on and off for the last quarter of century and still has some missing functionalities. AFIK, so far we don't have a better LFN driver for DOS.
You're right, that DOSLFN is poorly documented, but at least the source code is freely available. This is what I noticed in the DOSLFN ver. 0.42 source asm-file:
;N: Most Protected Mode DOS extenders doesn't translate the LFN API to
; Real Mode. (When running Windows9x, Windows makes tha […]
Show full quote
;N: Most Protected Mode DOS extenders doesn't translate the LFN API to
; Real Mode. (When running Windows9x, Windows makes that task, effectively
; disabling the DOS extender.)
; For DPMI programs, it is up to the programmer to translate these DOS
; calls to Real Mode, using DPMI services at INT31. Best solution would
; be a DLL that makes this task at load time, hooking the protected mode
; INT21 chain.
; When running Windows3 in Enhanced Mode,
; DOSLFN auto-loads an LFNXLAT.386 VxD that translates these APIs.
; With this VxD, there is no need for translation for Windows programs.
; Unfortunately, Win32s programs cannot see long file names,
; unless someone publish a great patch of one Win32s DLL.
; The rarely used Standard Mode should be configured to load the DLL
; (above mentioned) at startup - but DOSLFN requires a 386 itself.
I'm not aware if Jason reads (and writes in) this forum, so he could give more details.
OzzFan wrote on Yesterday, 23:39:
I wasn't able to replicate this with MEMINFO but I did replicate with REVEAL. It looks like it was a bug in my EMS detection causing the hang. Both applications share the same EMS detection code, so I went ahead and created a fix that works with no memory managers loaded. I tested on a DX/4 100 with DOS 6.22 and a 386DX with DOS 5.0.
Good. Please, could you share the fix or the fixed executables?
OzzFan wrote on Yesterday, 23:39:
I hadn't tested on anything faster than a Pentium 133. I'll have to look into the benchmark code to see what can be done for faster CPUs.
Nice! The benchamrk seems promising.
OzzFan wrote on Yesterday, 23:39:
😲 That's definitely not good. Thank you for reporting this. It sounds like for large moves it blew through the limited application stack space. I'll have to revisit the logic and test for large moves. I had previously only tested on relatively small application directories. I would agree, don't use this version for large directory moves.
I'll get to work on fixing the rest of the bugs.
When this serious problem happened to me, I tried to move about 24MB of data spread in directory structure with more than 100 (sub-)subfolders. The data loss was not critical, but I was amazed how it ended up with missing/deleted CONFIG.SYS and AUTOEXEC.BAT from the C drive root directory, as they have absolutely no relation to moving directory structure. Also, I don't know what method you're using for copying the files to the new destination, but on mechanical HDD it "sounds" like byte-by-byte read-write or something like this. The speed is very low, when moving big directory structures or/and directories containing big files.
Thanks for your effort in developing and maintaining these utilities!
SvarDOS fan : a.i. bots - not a fan at all : say NO to systemd : is freeware a lie, when human freedom is a fundamental lie? : f00ck €u