wok-current rev 3917

syslinux/ifmem: pre-94 bioses support
author Pascal Bellard <pascal.bellard@slitaz.org>
date Tue Aug 18 18:21:24 2009 +0200 (2009-08-18)
parents 65dd59012383
children 0cd931b3cd79
files syslinux/stuff/extra/ifmem.c
line diff
     1.1 --- a/syslinux/stuff/extra/ifmem.c	Tue Aug 18 17:42:15 2009 +0200
     1.2 +++ b/syslinux/stuff/extra/ifmem.c	Tue Aug 18 18:21:24 2009 +0200
     1.3 @@ -41,6 +41,7 @@
     1.4  
     1.5  static unsigned long memory_size(void)
     1.6  {
     1.7 +  unsigned long res;
     1.8    com32sys_t ireg, oreg;
     1.9  
    1.10    memset(&ireg, 0, sizeof ireg);
    1.11 @@ -48,7 +49,14 @@
    1.12    ireg.eax.w[0] = 0xe801;
    1.13    __intcall(0x15, &ireg, &oreg);
    1.14  
    1.15 -  return  oreg.ecx.w[0] + ( oreg.edx.w[0] << 6);
    1.16 +  res = oreg.ecx.w[0] + ( oreg.edx.w[0] << 6);
    1.17 +  if (!res) {
    1.18 +  	memset(&ireg, 0, sizeof ireg);
    1.19 +  	ireg.eax.w[0] = 0x8800;
    1.20 +  	__intcall(0x15, &ireg, &oreg);
    1.21 +	res = ireg.eax.w[0];
    1.22 +  }
    1.23 +  return res;
    1.24  }
    1.25  
    1.26  int main(int argc, char *argv[])