-
Notifications
You must be signed in to change notification settings - Fork 5
Device drivers support #27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
-Automatically load device drivers specified in config.sys Intended for VDD drivers interacting with the real hardware through NTVDM
Modifying comments
Change to comments
|
What driver are you running with this? I'm not a huge fan of requiring a config.sys as msdos-player is mostly standalone I'd like to keep it like that. |
|
The config.sys file is not required if you don't want to load external drivers. If that file is not found, no drivers will be loaded and the standalone functionality will remain unchanged. I am running a virtual device driver for a Modbus-Plus industrial communications card (Cyberlogic MBX Driver Suite). This VDD hooks to an interrupt (by default at 0x5C) to emulate NetBios functionality of a legacy ISA card. On the 32-bit DLL side, it interfaces with a whole suite of drivers to support different hardware. Sadly all of that is proprietary software. For testing purposes, I had to patch my .sys driver binary to register a predefined interrupt vector during the init routine instead of choosing one afterwards with IOCTL calls. It works as is, but my next goal is to add basic IOCTL functionality to support the unmodified driver. I know that is a niche application and we can close the pull request if you don't find that relevant. I can also make some modifications if you have suggestions and you would like it done another way. |
|
No, I think it's very relevant and having character driver support for that kind of use is good (block and replacement con drivers will probably not work so maybe those should just not be loaded). I just think the imported reactos code is over complex, although I am trying to stay close to upstream if takeda pulled it in I'd just follow. |
Made sure to always use the same path as msdos.exe for config.sys Added special driver subsegment MCB to make MEM.exe correctly display the installed devices Added IOCTL Write (int_21h_4403h) functionality for the installed devices
|
The latest upstream release sets the "FILES=" from a command line option rather than reading it from the config.sys. Maybe that is how device drivers should be loaded too. |
I added support for device drivers to be loaded automatically.
This is intended for virtual device drivers that use NTVDM to access the real hardware.
It was already possible to load drivers using software like loadsys or devload.
This new code tries to load every .sys file specified in config.sys before running the dos executable.
Config.sys must be in the same folder as msdos.exe.
Most of this code is from or inspired by ReactOS