From: sandmann AT clio DOT rice DOT edu (Charles W. Sandmann) Subject: Re: clock() blows up under windows 3.1 To: pek AT logos DOT res DOT utc DOT com (Paul Kirschner) Date: Fri, 22 Oct 1993 13:05:23 -0600 (CDT) Cc: djgpp AT sun DOT soe DOT clarkson DOT edu (DJGPP Mailing List) > In a Windows 3.1 DOS window, clock() blows the window away! (or halts execution > depending if "Close on Exit" is set in the .pif.) AND it seems to lock > out several megs of XMS! > Can this be fixed? Is my error illusionary? Is there a way around it? This is due to a problem in a library distributed with V1.10 - it is missing the dpmi fixed version of clock. If you want to use clock() with any DPMI system cut the routine out below and link to it first (or replace it in your library). Clock.S: ---------------------------------------------------------------------------- /* This is file CLOCK.S */ /* ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 ** ** This file is distributed under the terms listed in the document ** "copying.dj", available from DJ Delorie at the address above. ** A copy of "copying.dj" should accompany this file; if not, a copy ** should be available from where this file was obtained. This file ** may not be distributed without a verbatim copy of "copying.dj". ** ** This file is distributed WITHOUT ANY WARRANTY; without even the implied ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ** ** Modified by C. Sandmann for DPMI support (sandmann AT clio DOT rice DOT edu) */ .data clock_init: .long 0 .text .globl _clock _clock: call _rawclock imull $54931,%eax,%eax ret .align 4,0x90 .globl _rawclock _rawclock: movzwl __core_select,%eax testl %eax,%eax je old_clock /* Image run with pre-DPMI extender */ movw %ax,%gs movl %gs:0x46c(,1),%eax jmp check_initted old_clock: movl 0xe000046c,%eax check_initted: cmp $0,clock_init jne clock_initted movl %eax,clock_init clock_initted: subl clock_init,%eax ret