Mail Archives: djgpp/1993/10/22/14:34:23
> 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
- Raw text -