Sender: vheyndri AT rug DOT ac DOT be Message-Id: <339FF899.5D7@rug.ac.be> Date: Thu, 12 Jun 1997 15:24:41 +0200 From: Vik Heyndrickx Mime-Version: 1.0 To: djgpp-workers AT delorie DOT com Subject: suggestion for moving DTA to fixed place in __tb Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Precedence: bulk I've a suggestion. I've seen that while compiling large packages like the copilers themselves, nearly a quarter of all DOS interrupts is to set the DTA address (int 21-1Ah), over and over again to the same address. I've seen in the sources that only the [_dos_]find[first|next] routines do this. Since calling interrupts is a bit cumbersome under a DPMI host, I believe a task switch is involved, the total of may times almost now time equal some time. So, why don't we set the DTA address to the start of __tb in crt1.c and leave it there for the rest of the program? Since the libc routines govern almost all transfers from DOS to the program and back, this shouldn't be a problem. And when the user really wants to move the DTA address we can demand from him to put it back before here calls any routines that might require it. -- +----------------+ | Vik Heyndrickx | +----------------+