Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!samsung!munnari.oz.au!csc!ccadfa!cancol!ross From: ross@cancol.oz (Ross Johnson) Newsgroups: comp.sys.ibm.pc Subject: Re: More than 15 files open Message-ID: <274@cancol.oz> Date: 10 Jan 90 00:43:54 GMT References: <1989Dec17.150044.18175@axion.bt.co.uk> <5831@eos.UUCP> <1989Dec19.161509.10803@mks.com> Organization: Info. Sci. and Eng., University of Canberra Lines: 35 In article <1989Dec19.161509.10803@mks.com>, andy@mks.com (Andy Toy) writes: > Here's some more information that may be helpful that someone else > here pointed out to me. > -- > 2) The 20 file limit of the file descriptor table per process may be increased > by putting a different pointer into the PSP (currently there is a > seg:offset address inside the PSP to a 20 byte area in the PSP for > the file descriptor codes). This can be pointed to any other location > and a new size given (e.g. 200 open files). The limit is probably > 255 because FF is reserved to mean that that entry is closed) For my own interest, I looked up the PSP description in Thom Hogan's "The Programmer's PC Sourcebook" and can add the following details: (As of DOS3.3): PSP Offset 18H: Handle Table (20 bytes). Usual contents are FFH = slot available. One byte per handle, bit 7 = not inherited (I presume this means you can have 128 files inherited by child processes and 127 files which aren't). PSP Offset 32H: Handle Table size (2 bytes). Usual contents are 14H,00H. PSP Offset 34H: Handle Table address (if not at 12H - 4 bytes). Usual contents are 12H,00H,00H,00H (0000:0012H). (Hope I have the byte orders correct.) +----------------------+---+ | Ross Johnson |:-)| ACSnet: ross@cancol.oz.au | Info. Sciences & Eng.|___| ARPA: ross%cancol.oz.au@uunet.uu.net | Uni. of Canberra | UUCP: {uunet,ukc}!munnari!cancol.oz.au!ross | P.O. Box 1 | CSNET: ross%cancol.oz@australia | Belconnen A.C.T. 2616 | JANET: ross%au.oz.cancol@EAN-RELAY | AUSTRALIA | BITNET: ross%cancol.oz.au@relay.cs.net +--------------------------+