dosconf move try 2

Jukka Heinonen jhei at iki.fi
Fri Nov 8 02:41:45 CST 2002


György 'Nog' Jeney wrote:
> ChangeLog:
>  * dlls/winedos/dosconf.c
>  * include/callback.h
>  * msdos/dmpi.c
>  * msdos/dosconf.c (removed)
>  * dlls/ntdll/Makefile.in
>  * dlls/winedos/winedos.spec
>  * dlls/winedos/Makefile.in
>    Move dosconf to winedos.

This still won't work if Dos3Call is called directly
before winedos.dll has been loaded. If this is fixed,
I don't see any reason why this patch couldn't be
applied.

This reminds me that int21 handling is quite messy.
Interrups call first DOSVM_Int21Handler and
might be chained to Dos3Call. But, if you call Dos3Call
directly, execution does not go through DOSVM_Int21Handler.
This causes some code duplication and makes things
like dosconf unnecessarily complicated. I was hoping that
I could leave this stuff to its current state until I had
cleaned up other interrupts. Simple solution would
be to make Dos3Call load winedos.dll and call DOSVM_Int21Handler
through function pointer, move all common code from old
Dos3Call to DOSVM_Int21Handler and move code that is difficult
to handle in winedos to INT_Int21Handler which would be chained to
from DOSVM_Int21Handler when a few selected functions need to be 
emulated. But this requires lots of work because each int21
function must be separately evaluated in order to see how it
must be emulated to properly support both Win16 and DOS; first
step would probably just add check if(DOSVM_IsWin16()) to each
DOSVM_Int21Handler function and chain to INT_Int21Handler if true.

-- 
Jukka Heinonen <http://www.iki.fi/jhei/>



More information about the wine-devel mailing list