int21 handling

Jukka Heinonen jhei at iki.fi
Mon Nov 10 05:13:01 CST 2003


A few comments about this patch by Eric Pouech.

Structure DosHeap must not be moved to winedos.
There already exists per drive media ID byte which
should be used and biosdate, while it may be needed 
by some programs, won't do any good in a separate 16-bit
segment. Also, INT21_CreateHeap is unnecessary.

IOCTL 0x0860 and CreateBPB should include FIXME comments
because it does not check real drive types nor real drive
geometry. The same is true with other IOCTLs that return
fake values.

INT21_NetworkFunc should return NETBIOS name. There
is a separate Win32 API for returning proper names,
don't use gethostname.

INT21_GetDriveAllocInfo should pass drive as a parameter,
rewriting registers makes code less readable.

As far as I know, TRUENAME implementation is broken.
Add big FIXME notes to that subfunction.

Use INT21_MapDrive instead of manual conversion
from zero=default into zero='A' convention, that is
why it is there.

Use wide characters and manual wide character conversions.
DOS routines use OEM code page and not ANSI code page and
Wine uses wide characters as default character set, anyway.
Also, adding drive number to 'A' may work incorrectly with
illegal drives and 8-bit character set but it works
fine with wide character set.

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



More information about the wine-devel mailing list