www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1993/06/12/14:35:44

From: jih-shin ho <u7711501 AT bicmos DOT ee DOT nctu DOT edu DOT tw>
Subject: Correction in GrSetMode()
To: djgpp AT sun DOT soe DOT clarkson DOT edu (djgpp)
Date: Sun, 13 Jun 93 2:18:27 EAT

Hi:
  Go32 1.10 uses ESI to return bytes per scan line information. But the ESI
register in GrSetMode() function is not saved(in libgr.a). This may cause 
problem if you program uses ESI as register variable.

Here is the corrected version(setmode.s in libgr.a):


/* This is file _INIT.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.
*/

	.data
	.globl	__GrCurMode
	.comm	__GrCurMode,4
	.globl	__GrSetModeHook
	.comm	__GrSetModeHook,4

	.text
	.globl	_GrSetMode
_GrSetMode:
	push	%ebp
	movl	%esp,%ebp
	pushl	%ebx
	pushl	%esi
	pushl	%edi

	movl	8(%ebp),%eax
	movl	%eax,__GrCurMode
	movb	$0xff,%ah
	movl	12(%ebp),%ecx
	movl	16(%ebp),%edx

	int	$0x10

	movl	%ecx,__GrSizeX
	movl	%edx,__GrSizeY
	decl	%ecx
	decl	%edx
	movl	%ecx,__GrMaxX
	movl	%edx,__GrMaxY
	movl	%ebx,__GrCanBcopyInBlit

	call	_GrRefreshColors
	cmpl	$0,__GrSetModeHook
	je	L1
	call	*__GrSetModeHook
L1:

	popl	%edi
	popl	%esi
	popl	%ebx
	popl	%ebp
	ret

- Raw text -


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