Message-ID: <8D53104ECD0CD211AF4000A0C9D60AE35C4BCB@probe-2.acclaim-euro.net> From: Shawn Hargreaves To: djgpp AT delorie DOT com Subject: Detecting win95: the hard way Date: Mon, 1 Mar 1999 12:57:57 -0000 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.0.1460.8) Content-Type: text/plain Reply-To: djgpp AT delorie DOT com I need a way to detect when a djgpp program (Allegro) is being run under win95. At the moment I do this using the documented detection function, int 0x2F with ax=0x1600. The problem is that in the properties for the win95 dosbox, there is an option to specifically stop this function from working, ie. to make win95 lie and pretend it isn't there. For some reason, it seems that significant numbers of people have this option enabled, with the result that Allegro mis-diagnoses the current environment, uses the wrong version of the timer module, and everything falls to pieces. The easy fix would be to just tell people not to set such a silly option, but it seems like a surprising number of people are affected by this problem, so it would be nice to solve it more automatically. So, does anyone have any bright ideas about how to detect win95 even when it is running in this weird stealth mode? I thought about checking for the "windir" environment variable, but that goes away along with the int 0x2F support. I tried checking the vendor name using __dpmi_get_capabilities(), but of course this is a DPMI 1.0 function and not implemented by Windows. Surely there must be _something_ that I can look for? Some obscure feature of the DPMI implementation, or some other interrupt service that works differently to on other platforms? Any ideas would be very much appreciated... Shawn Hargreaves.