www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1993/10/22/14:34:23

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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019