dosemu2 / fdpp

FreeDOS plus-plus, 64bit DOS
GNU General Public License v3.0
195 stars 17 forks source link

FCB (int 21h func 29h): should keep parsing name even if drive letter invalid #201

Closed tkchia closed 2 years ago

tkchia commented 2 years ago

Should address https://github.com/dosemu2/fdpp/issues/200 .

tkchia commented 2 years ago

I had submitted similar patches to the upstream FreeDOS kernel, as https://github.com/FDOS/kernel/pull/82 and https://github.com/FDOS/kernel/pull/83 . I had also tested them briefly under QEMU.

I also tried to test this particular patch under fdpp specifically, but I am not sure how to properly do so. If I run something like

$ FDPP_KERNEL_DIR="`pwd`/fdpp" dosemu -K . -tde

after building the new fdpp, then dosemu2 hangs:

ERROR: libao: unable to open output device
dosemu2 2.0pre9 Configured: 2022-02-21 02:17:09 +0000
Get the latest code at http://dosemu2.github.io/dosemu2
Submit Bugs via https://github.com/dosemu2/dosemu2/issues
Ask for help in mail list: linux-msdos@vger.kernel.org
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, GPL v2 (or any later version) distribution conditions.

Thank you!

stsp commented 2 years ago

Seems to pass the test so applied. Thanks!

stsp commented 2 years ago

after building the new fdpp, then dosemu2 hangs:

This usually means that you have libfdpp.so elsewhere (in /usr/*) and it was built with different fdpp. In that case you may try to also set LD_LIBRARY_PATH="pwd/fdpp" The problem is missing SEGRELATIVE relocs in nasm. The relocation table is hardcoded in libfdpp.so so if you have it from another build, it will corrupt the elf file. We really need SEGRELATIVE support.