From Lucho: fix EBDA problems with INSTALL. This fixes the weird

fmemcpy lockup; in reality kernel init code was overwritten.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@786 6ac86273-5f31-0410-b378-82cca8765d1b
This commit is contained in:
Bart Oldeman 2004-02-23 23:41:17 +00:00
parent decc3f5c37
commit 47ae1ab1d3

View File

@ -133,6 +133,7 @@ STATIC void SelectLine(int MenuSelected)
UWORD umb_start = 0, UMB_top = 0; UWORD umb_start = 0, UMB_top = 0;
UWORD ram_top = 0; /* How much ram in Kbytes */ UWORD ram_top = 0; /* How much ram in Kbytes */
size_t ebda_size = 0;
static UBYTE ErrorAlreadyPrinted[128]; static UBYTE ErrorAlreadyPrinted[128];
@ -401,7 +402,6 @@ void PreConfig(void)
void PreConfig2(void) void PreConfig2(void)
{ {
struct sfttbl FAR *sp; struct sfttbl FAR *sp;
unsigned ebda_size;
/* initialize NEAR allocated things */ /* initialize NEAR allocated things */
@ -422,7 +422,6 @@ void PreConfig2(void)
base_seg = LoL->first_mcb = FP_SEG(AlignParagraph((BYTE FAR *) DynLast() + 0x0f)); base_seg = LoL->first_mcb = FP_SEG(AlignParagraph((BYTE FAR *) DynLast() + 0x0f));
ebda_size = 0;
if (Config.ebda2move) if (Config.ebda2move)
{ {
ebda_size = ebdasize(); ebda_size = ebdasize();
@ -2659,7 +2658,7 @@ VOID DoInstall(void)
r.b.b.l = 0x02; /*low memory, last fit */ r.b.b.l = 0x02; /*low memory, last fit */
init_call_intr(0x21, &r); init_call_intr(0x21, &r);
allocmem(((unsigned)_init_end+15)/16, &installMemory); allocmem(((unsigned)_init_end + ebda_size + 15) / 16, &installMemory);
InstallPrintf(("allocated memory at %x\n",installMemory)); InstallPrintf(("allocated memory at %x\n",installMemory));