From: Steffen K. <Ste...@fh...> - 2004-06-30 06:53:45
|
On Wed, 30 Jun 2004, Arkady V.Belousov wrote: Hello Arkady, > 30-=E9=C0=CE-2004 00:54 _fr...@fr... (FreeCOM) wrote to > fre...@li...: OK, I actually seem to have misinterpreted your description that INSTALL=3D= =20 and SHELL=3D programs will get passed an EnvSeg =3D=3D 0, as this is wrong,= =20 please ignore anything I said about this topic. > F> 2. Do you suggest that when FreeCOM.ParentPSP =3D=3D 0, FreeCOM is to = assume > F> that it runs from either INSTALL=3D or SHELL=3D and shallt assume /P? > > Do you mean: "if FreeCOM finds that its _parent_ PSP contains > ps_parent=3D=3D0 (ie, it have no grandfather), then it should make yourse= lf No, I did interpreted your explanation wrong. > permanent (set own ps_parent yo itself)?"? Yes, this behavior may be usef= ul: > some users may forget to add /P into SHELL=3D line and will be confused a= fter > casual extra line (because, unlike MS-DOS, which automatically tries to > restart command.com, FreeDOS directly asks path to command interpreter). Good, I will file this as enhancement request. > Don't know about "unused" (may be, MS-command.com uses it for own > needs), but yes: original block remains in memory: Wild guess: maybe, this is the persistent environment you were searching for? (For to= =20 pass the environment to the next SHELL, once the SHELL=3D program=20 terminates?) > F> Anyway, I made the /LOW option of FreeCOM work. So you can relocate th= e > F> environment block whereever you like from within AUTOEXEC.BAT. As I > > How? As I understand, this may and should affect already runned > (primary) FreeCOM only if this options given before its run (for example, > SHELL=3Dcommand.com /low /p)? And, who says that placing environment into > upper memory is bad? I say, that using LAST_FIT is bad stategy (for UMBs > this makes inoptimal memory usage, in low memory this makes fragmented So, why would be "FIRST_FIT" or even "BEST_FIT" optimal? It cannot,=20 neither. Optimal would be when the user could decide where to place which= =20 part. But this is no option at the current time. > F> said: FreeCOM relys on the FreeCOM.EnvSeg pointer for all its operatio= ns > F> and it is guaranteed that all cached data is flushed, when FreeCOM get= s > F> re-activated after running an external command. > > This is your deal, I don't say anything about FreeCOM own (child) PSP= =2E Huh? You said you need to have the environment segment placed somewhere=20 else. I did not mentioned the PSP as well. You can write a program to move= =20 the parent's environment to any location you like. That is the most=20 optimal placement I can imagine. > F> It is currently not possible to use FIRST_FIT (and therefore BEST_FIT > F> neither) and I do not hassle with the XMS code to move the environment > F> segment around. > > Look at memory map above again. And look at FreeCOM map: > > ______________O\_/_________________________________\_/O______________ > -0FA7 2.01k STACKS=3D > 0FA7 64 --free-- > 0FAB 2.87k COMMAND > 1063 574k --free-- > 9FEF 272 COMMAND environment > -A000- > _____________________________________________________________________ > O/~\ /~\O But what do I see here in conjunction that "It is currently not possible=20 to use FIRST_FIT (and therefore BEST_FIT neither)" for FreeCOM? Bye, --=20 Steffen Kaiser |