Hi Bertho,

maybe Tom does not have the patience to explain you
why there are good reasons why FreeDOS does things
the way they are done, but you can trust him :-) If
you take the time to FULLY understand the issue and
then have exact ideas on how to do things yet better,
you are most welcome to submit patches or explain an
algorithm change and why that new algorithm is good.

Cheers, Eric



PS: XBDA and moving it is not necessarily trivial.

> I"m using a kernel v. 2040 with XMS swapping compiled in.

XMS swapping is done by FreeCOM, not the kernel...

> " SWITCHES = /E " directive in Config.sys is ignored silently

CfgSwitches says:

>       case 'E': /* /E[[:]nnnn]  Set the desired EBDA amount to move in bytes 
> */
>         {       /* Note that if there is no EBDA, this will have no effect */
>           int n = 0;
>           if (*++pLine == ':')
>             pLine++;                    /* skip optional separator */
>           if (!isnum(*pLine))
>           {
>             pLine--;
>             break;
>           }
>           pLine = GetNumArg(pLine, &n) - 1;
>           /* allowed values: [48..1024] bytes, multiples of 16
>            * e.g. AwardBIOS: 48, AMIBIOS: 1024
>            * (Phoenix, MRBIOS, Unicore = ????)
>            */
>           if (n == -1)
>           {
>             Config.ebda2move = 0xffff;
>             break;
>           }
>           else if (n >= 48 && n <= 1024)
>           {
>             Config.ebda2move = (n + 15) & 0xfff0;
>             break;
>           }
>           /* else fall through (failure) */
>         }

Also, PreConfig2 says:

>   if (Config.ebda2move)
>   {
>     ebda_size = ebdasize();
>     ram_top += ebda_size / 1024;
>     if (ebda_size > Config.ebda2move)
>       ebda_size = Config.ebda2move;
>   }

...

>   if (ebda_size)  /* move the Extended BIOS Data Area from top of RAM here */
>     movebda(ebda_size, FP_SEG(KernelAlloc(ebda_size, 'I', 0)));

You also want to read some of the related code. You are
right that there is no feedback telling you step by step
what happens with the EBDA, but making the kernel that
verbose would also make it unnecessarily large.



>> Why these latter limits would be thus hard-coded is beyond me.
> b7ff is shorter then 'the highest location in conventional memory'
> 
> Really ? 80x86 systems /other/ than the "standard Wintel PC" (a moving goal

Well... Anyway. The DOS running on not so standard PC,
say TI PRO or TANDY, also was not vanilla but had to
hardcode the non-standard aspects of those platforms.

> Is there a FreeCOM 'blueprint' or design document for FreeCOM 
> other than the code comments ?

There are some text files, wiki / homepage documents...
But generally speaking: If it is not part of the source
download, it is probably not included.



------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to