[net.micro.pc] Anyone know how to enlarge the PC-DOS default environment size?

jdia@ur-tut.UUCP (Shekondar) (03/10/86)

---------------Keyboard Sacrifice to the Line Eating Unix God!-----------------

Anyone...

    Several months ago someone posted a way to enlarge DOS 3.0's or DOS 3.1
default environment area.  I need to store several environment variables there
using the "SET name = value" command from PC-DOS. This is necessary for both
my text editor and 2 of the compilers that I use.

    I'd appreciate it greatly if the patch could be either posted to  
net.micro.pc or emailed to me.

    My thanks in advance...

                                     --->> Shekondar <<---


-------------------------------------------------------------------------------
Please reply to me at    ...!seismo!rochester!ur-tut!jdia
-------------------------------------------------------------------------------
I may be a happy camper, but i'm still a sick puppy...
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\

v1b@mhuxi.UUCP (davis) (03/11/86)

> ---------------Keyboard Sacrifice to the Line Eating Unix God!-----------------
> 
> Anyone...
> 
>     Several months ago someone posted a way to enlarge DOS 3.0's or DOS 3.1
> default environment area.  I need to store several environment variables there
> using the "SET name = value" command from PC-DOS. This is necessary for both
> my text editor and 2 of the compilers that I use.
> 
>     I'd appreciate it greatly if the patch could be either posted to  
> net.micro.pc or emailed to me.
> 
>     My thanks in advance...
> 
>                                      --->> Shekondar <<---
> 
>From shqer Fri Dec 20 08:36 EST 1985 forwarded by shqer
>From 2212msr Fri Dec 20 08:37 EST 1985 remote from whuts
This has been posted before but it seems to be of continuing interest
to net subscribers.  NOTE - I'M STILL LOOKING FOR ADDRESS TO PATCH
FOR USE WITH DOS 3.1 (ON IBM-AT).

This patch increases the environment size from 128 bytes to (H)0080 (128
decimal) paragraphs of 16 bytes each.

debug a:\command.com
-u cs:0f2b                ;DOS VERSION       LOCATION
                          ;2.X                CS:ECE
                          ;2.0 (COMPAQ)       CS:F66
                          ;2.11(ATT&T PC6300) CS:DF2
                          ;3.0                CS:0F2B
                          ;contents should be MOV BX,000A
-a0f2b                    ;address to asemble new code into
XXXX:0f2b mov bx,0080     ;system prompts you with XXX:0f2b
-                         ;enter carriage return
-w                        ;write change
YYYY                      ; message telling how many bytes were written
-q                        ;quit

For DOS 3.1, an undocumented feature of the SHELL command is used
in the CONFIG.SYS file:

shell=drive/pathname_of_command_processor drive/path_to_command_process
      /p/e:number_of_16_byte_paragraphs

      where:  10<paragraphs<63

Example, giving 480 byte environment space:

shell=c:\command.com c:\/p/e:30

I'd like the address to patch in DOS 3.1, since the SHELL feature is undoc-
umented, and hence unsupported.

Max S. Robin
AT&T Bell Laboratories
Rm. 3E-318A
Whippany, NJ 07981
201-386-6865

email:whuxg!2212msr



           vern bradner (ihnp4!mhuxi!v1b)

cramer@kontron.UUCP (Clayton Cramer) (03/11/86)

> ---------------Keyboard Sacrifice to the Line Eating Unix God!-----------------
> 
> Anyone...
> 
>     Several months ago someone posted a way to enlarge DOS 3.0's or DOS 3.1
> default environment area.  I need to store several environment variables there
> using the "SET name = value" command from PC-DOS. This is necessary for both
> my text editor and 2 of the compilers that I use.
> 
>     I'd appreciate it greatly if the patch could be either posted to  
> net.micro.pc or emailed to me.
> 
>                                      --->> Shekondar <<---

Me too please.

Clayton Cramer

connery@bnrmtv.UUCP (Glenn Connery) (03/12/86)

Ok, listen up troops.  This has been posted before, and I don't want to
post it again.  You will probably need to know this at some point so if
you don't already copy this message someplace and save it for when you
do...

Dos 2.0-3.0 Environment size patch:

The allocation of memory for the OS copy of the environment is hard coded as:

    xxxx:0ece    BB 0A 00     MOV BX,000A
    xxxx:0ed1    B4 48        MOV AH,48
    xxxx:0ed3    CD 21        INT 21

The patch is:

    DEBUG COMMAND.COM
    S 100 L 7fff BB 0A 00 B4 48 CD 21         (search for the allocation call
    replace the 0A with how many paragraphs you want - 14 is 20 paragraphs
	      and so on. the algorithm used is size=(#+4)*16
    W
    Q

I'm told that dos2.1 has the fix at ECF and dos3.0 at F2B. The guy
that found it is using it so it seems to work. Doesn't work on DOS 3.1.

Dos 3.1 Environment size patch:

Here it is, snarfed from a  recent issue of the Boston Computer Society's
PC REPORT:

Debug Command.Com:
xxxx:0D11 0A
change the 0A to 1E for a 544 byte environment or 3C for a 1K size.
Then of course do a 'W' command to save the new version.

The best way to increase Environment space under DOS 3.1:

Forget the patch.  Just add the following into your CONFIG.SYS
file in your root directory:

    SHELL=C:\COMMAND.COM /P C:\ /E:xx

where xx is the number of paragraphs (which are 16 bytes each) to allocate
to the environment space.  If you don't have a fixed disk drive, then
change the drive specifications to A:\.  The /P switch means make
COMMAND.COM permanent (required switch).  No, it does not force the
non-resident portion of COMMAND.COM to be resident at all times.  The
second C:\ indicates the directory where AUTOEXEC.BAT can be found.
-- 

Glenn Connery, Bell Northern Research, Mountain View, CA
{hplabs,amdahl,3comvax}!bnrmtv!connery

bmarsh@noscvax.UUCP (William C. Marsh) (03/13/86)

In article <410@mhuxi.UUCP>, v1b@mhuxi.UUCP (davis) writes:
> 
> For DOS 3.1, an undocumented feature of the SHELL command is used
> in the CONFIG.SYS file:
> 
> shell=drive/pathname_of_command_processor drive/path_to_command_process
>       /p/e:number_of_16_byte_paragraphs
> 
>       where:  10<paragraphs<63
> 
> Example, giving 480 byte environment space:
> 
> shell=c:\command.com c:\/p/e:30
> 
> I'd like the address to patch in DOS 3.1, since the SHELL feature is undoc-
> umented, and hence unsupported.
> 
> Max S. Robin

I don't know where you were looking, but on page 4-25 of the DOS 3.1 manual
(DOS manual, not the Dos Technical Reference) the shell command IS documented.
This was also documented in the 2.1 manual as well.

What isn't documented, is the flags to command.com which are used.  The only
flag documented for command.com is the 'c' option, which is documented in the
section "Executing Commands From Within an Application" in the DOS Technical
reference manual (Chapter 8 for 3.1).  The 'p' option tells command.com to
stay resident, (ignore the 'exit' command, among other things), and I believe
this also tells command to read the autoexec.bat file.  The 'e' option, (which
is only available in 3.x),  sets the default environment size as you have
pointed out.

The second option to the shell command (actually is just passed to command
like the rest of the stuff on this line), tells where command is to re-load
the transient portion from.  This appears in COMSPEC too, so other applications
can use this info.  You should be able to put a path to a ramdisk here,
then command will re-load from the ramdisk. (No guarantees, since I don't use
a ramdisk).

Hope this clears up some confusion.  I prefer to use the 'undocumented'
option in the shell command in place of patching command.com.

If only Microsoft had 'developers' like Commodore does with its Amiga...

-- 

Bill Marsh, Naval Ocean Systems Center, San Diego, CA
{arpa,mil}net: bmarsh@nosc
uucp: {ihnp4,akgua,decvax,dcdwest,ucbvax}!sdcsvax!noscvax!bmarsh

"If everything seems to be coming your way, you're probably in the wrong lane."

jdia@ur-tut.UUCP (Shekondar) (03/14/86)

----------------------Sacrifice to the Line Eating UNIX God!-------------------

Howdy do!!

    Thanks muchly to all of those who responded to my request for info 
concernind DOS environment size. Both of the solutions sent have worked
wonderfully.

						Thanks...
							          
from the rotting psychi of -->Shekondar<--

\/\/\/\/\/\This is the end.../\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

connery@bnrmtv.UUCP (Glenn Connery) (03/15/86)

> I'd like the address to patch in DOS 3.1, since the SHELL feature is undoc-
> umented, and hence unsupported.
> 

Huh?  The shell command looks a lot more like something which might continue
to be used in the future, aside from being easier to change, remember,
not being catastrophic if you mess up etc. etc.
-- 

Glenn Connery, Bell Northern Research, Mountain View, CA
{hplabs,amdahl,3comvax}!bnrmtv!connery