Author: hbelusca
Date: Sat Sep 12 20:09:25 2015
New Revision: 69204
URL:
http://svn.reactos.org/svn/reactos?rev=69204&view=rev
Log:
[NTVDM]
- Add support for DOS VDM reentry, i.e. the fact that a DOS app can start a 32-bit app,
which in turn can start another DOS app, ad infinitum...
CORE-9711 CORE-9773 #resolve
- Add a small
COMMAND.COM which is, for now, completely included in NTVDM. This
COMMAND.COM is needed in order to support reentrancy. The fact that I chose to put it
inside NTVDM is that any user can use instead his/her own
COMMAND.COM, while retaining the
possibility to perform VDM reentrancy (on Windows, if you remove the
COMMAND.COM in
windows\system32 and replace it with your own, you will break VDM reentrancy on
windows' ntvdm).
CORE-5221 #resolve #comment I choose for the moment an internal
COMMAND.COM, but you can
recompile NTVDM to use it externally instead.
Global remarks:
- Quite a few DPRINTs were added for diagnostic purposes (since DOS reentrancy is a new
feature), to be sure everything behaves as expected when being used with a large panel of
applications. They will be removed when everything is OK.
- Support for current directories and 16/32-bit environment translation (in ntvdm +
basevdm-side) remain to be implemented.
Other changes:
- Improve a bit the VDM shutdown code by gathering it at one place (there's still room
for other improvements).
- Add suppport for properly pausing/resuming NTVDM.
- Bufferize some console events before dispatching.
Have fun ;^)
Added:
trunk/reactos/subsystems/mvdm/dos/CMakeLists.txt (with props)
trunk/reactos/subsystems/mvdm/dos/asmxtras.inc (with props)
trunk/reactos/subsystems/mvdm/dos/command.S (with props)
Modified:
trunk/reactos/subsystems/mvdm/CMakeLists.txt
trunk/reactos/subsystems/mvdm/ntvdm/CMakeLists.txt
trunk/reactos/subsystems/mvdm/ntvdm/dos/dem.c
trunk/reactos/subsystems/mvdm/ntvdm/dos/dem.h
trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/bios.c
trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c
trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.h
trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/process.c
trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/process.h
trunk/reactos/subsystems/mvdm/ntvdm/emulator.c
trunk/reactos/subsystems/mvdm/ntvdm/emulator.h
trunk/reactos/subsystems/mvdm/ntvdm/ntvdm.c
trunk/reactos/subsystems/mvdm/ntvdm/ntvdm.h
[This mail would be too long, it was shortened to contain the URLs only.]
Modified: trunk/reactos/subsystems/mvdm/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/CMakeLists…
Added: trunk/reactos/subsystems/mvdm/dos/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/dos/CMakeL…
Added: trunk/reactos/subsystems/mvdm/dos/asmxtras.inc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/dos/asmxtr…
Added: trunk/reactos/subsystems/mvdm/dos/command.S
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/dos/comman…
Modified: trunk/reactos/subsystems/mvdm/ntvdm/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/CMak…
Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dem.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/dos/…
Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dem.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/dos/…
Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/bios.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/dos/…
Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/dos/…
Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/dos/…
Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/process.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/dos/…
Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/process.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/dos/…
Modified: trunk/reactos/subsystems/mvdm/ntvdm/emulator.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/emul…
Modified: trunk/reactos/subsystems/mvdm/ntvdm/emulator.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/emul…
Modified: trunk/reactos/subsystems/mvdm/ntvdm/ntvdm.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/ntvd…
Modified: trunk/reactos/subsystems/mvdm/ntvdm/ntvdm.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/ntvd…