# HG changeset patch # User Pascal Bellard # Date 1250612484 -7200 # Node ID 8c5c15fc1a404967d28d56b6d90d359d22e75768 # Parent 65dd59012383546035c234e89a015b4c827af566 syslinux/ifmem: pre-94 bioses support diff -r 65dd59012383 -r 8c5c15fc1a40 syslinux/stuff/extra/ifmem.c --- a/syslinux/stuff/extra/ifmem.c Tue Aug 18 17:42:15 2009 +0200 +++ b/syslinux/stuff/extra/ifmem.c Tue Aug 18 18:21:24 2009 +0200 @@ -41,6 +41,7 @@ static unsigned long memory_size(void) { + unsigned long res; com32sys_t ireg, oreg; memset(&ireg, 0, sizeof ireg); @@ -48,7 +49,14 @@ ireg.eax.w[0] = 0xe801; __intcall(0x15, &ireg, &oreg); - return oreg.ecx.w[0] + ( oreg.edx.w[0] << 6); + res = oreg.ecx.w[0] + ( oreg.edx.w[0] << 6); + if (!res) { + memset(&ireg, 0, sizeof ireg); + ireg.eax.w[0] = 0x8800; + __intcall(0x15, &ireg, &oreg); + res = ireg.eax.w[0]; + } + return res; } int main(int argc, char *argv[])