From: jih-shin ho 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