This patch does two things. Firstly, bit 2 was always set, however, it was set by an 'or' operation with 0x02. Since there is a bit 0, bit 0 = 0x01, bit 1 is 0x02 and bit 2 is 0x04 . Secondly, when I was working with the fpu code, I came across notes that all the systems which can currently run wine shoudl have a real or emulated FPU. FOr that reason, I set bit 1 as well as bit 2 ( the Pointing Device bit.) Hopefully, my logic is valid. God Bless, Robert 'Admiral' Coeyman -- --- May you live as long as you wish and age but a single day. http://www.dotguy.net/ admiral@corner.net Webmaster/ Linux Administrator Computer Co-Op/CornerNet
Name: 200211090735 ChangeLog: GenDate: 2002/11/09 07:35:29 UTC ModifiedFiles: <see cvs diff> AddedFiles: =================================================================== RCS file: /home/wine/wine/msdos/int11.c,v retrieving revision 1.18 diff -u -u -r1.18 int11.c --- msdos/int11.c 31 Aug 2002 18:47:01 -0000 1.18 +++ msdos/int11.c 9 Nov 2002 07:35:35 -0000 @@ -67,7 +67,10 @@ bits 15-14 } Added by William Owen Smith, bits 11-9 } wos@dcs.warwick.ac.uk bits 7-6 - bit 2 (always set) + bit 2 (always set) ( bit 2 = 4 ) + bit 1 } Robert 'Admiral' Coeyman + All *nix systems either have a math processor or + emmulate one. */ if (GetDriveTypeA("A:\\") == DRIVE_REMOVABLE) diskdrives++; @@ -98,5 +101,5 @@ if (parallelports > 3) /* 2 bits -- maximum value = 3 */ parallelports=3; - SET_AX( context, (diskdrives << 6) | (serialports << 9) | (parallelports << 14) | 0x02 ); + SET_AX( context, (diskdrives << 6) | (serialports << 9) | (parallelports << 14) | 0x06 ); }