Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!gatech!ncar!ico!nbires!maa From: maa@nbires.nbi.com (Mark Armbrust) Newsgroups: comp.sys.ibm.pc Subject: Re: MS-DOS puzzle #1 Summary: JFN table is version dependant! Message-ID: <425@nbires.nbi.com> Date: 14 Jul 89 18:07:50 GMT References: <8167@bsu-cs.bsu.edu> <1171@calvin.EE.CORNELL.EDU> <5486@pt.cs.cmu.edu> <5565@tekgvs.LABS.TEK.COM> Reply-To: maa@nbires.UUCP (Mark Armbrust) Distribution: comp Organization: NBI Inc, Boulder CO Lines: 31 In article <5565@tekgvs.LABS.TEK.COM> toma@tekgvs.LABS.TEK.COM (Tom Almy) writes: >In article <5486@pt.cs.cmu.edu> ralf@b.gp.cs.cmu.edu (Ralf Brown) writes: >>What can be done, however, (and this works for DOS 2 and up), is to copy the >>appropriate entries in the Process File Table in the PSP, zap them to FFh > >1. Save entire PFT (it's not that big!) >2. Set entries above the std* ones to FFh (effectively temprarily closes > >Was that easy enough? Much simpler than the contortions in UNIX with >those DUP2s! There certainly is no reason COMMAND.COM couldn't >do it. And fork() has nothing to do with it. I prefer to use the dos calls to do the job since there is a dos version dependancy when mucking directly with the jfn_table in the pdb. Starting with some version of dos between 2.11 and 3.2 (I only have these two handy to look at), jfn_table_length and jfn_table_pointer have been added to the pdb. pdb + 32h: jfn_table_len dw ? ; length of jfn table pdb + 34h: jfn_table_ptr dd ? ; FAR pointer to jfn table These are initialized to point to the jfn_table in the pdb, but can be changed by an application to point to a larger jfn_table. Starting in dos 3.3, there is a documented dos call (int 21h, ah=67h) to do this! -- Mark Armbrust maa@nbires.nbi.com maa@nbires.UUCP