int21 handling

Eric Pouech pouech-eric at wanadoo.fr
Mon Nov 10 14:02:09 CST 2003


Jukka Heinonen wrote:
> 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.
> 
half of what you (rightfully) suggest to fix had been broken for very 
long in msdos/int21.c (so don't blame me too much... at least not for 
that half)
I hope anyway I didn't step on your toes with this patch... Do you have 
some work going on in this area ?

A+

-- 
Eric Pouech




More information about the wine-devel mailing list