*** arch/i386/boot/compressed/misc.c.orig Sun Feb 19 01:15:16 1995 --- arch/i386/boot/compressed/misc.c Tue Nov 26 02:09:07 1996 *************** *** 322,328 **** --- 322,332 ---- lines = SCREEN_INFO.orig_video_lines; cols = SCREEN_INFO.orig_video_cols; + #ifdef STANDARD_MEMORY_BIOS_CALL if (EXT_MEM_K < 1024) error("<2M of mem\n"); + #else + if (EXT_MEM_K*64 < 1024) error("<2M of mem\n"); + #endif output_data = (char *)0x100000; /* Points to 1M */ output_ptr = 0; *** arch/i386/boot/setup.S.orig Sun Nov 17 11:33:24 1996 --- arch/i386/boot/setup.S Tue Nov 26 02:09:07 1996 *************** *** 135,143 **** --- 135,174 ---- ! Get memory size (extended mem, kB) + #ifdef STANDARD_MEMORY_BIOS_CALL mov ah,#0x88 int 0x15 mov [2],ax + #else + push ax + push cx + push dx + mov ax,#0xe801 + int 0x15 + jc oldstylemem + + ! memory size is (ax+(64*bx)) * 1024; we store bx+(ax/64) + + mov [2],bx ! store extended memory size + xor dx,dx + mov cx,#64 ! convert lower memory size from K into + div cx ! 64k chunks. + + add [2],ax ! add lower memory into total size. + jmp gotmem + + oldstylemem: + mov ah,#0x88 + int 0x15 + mov cx,#64 ! got memory size in kbytes, so we need to + xor dx,dx ! adjust to 64k chunks for the system. + div cx + mov [2],ax + gotmem: + pop dx + pop cx + pop ax + #endif ! set the keyboard repeat rate to the max *** arch/i386/kernel/setup.c.orig Wed Aug 16 11:53:27 1995 --- arch/i386/kernel/setup.c Tue Nov 26 02:09:07 1996 *************** *** 86,92 **** --- 86,96 ---- drive_info = DRIVE_INFO; screen_info = SCREEN_INFO; aux_device_present = AUX_DEVICE_INFO; + #ifdef STANDARD_MEMORY_BIOS_CALL memory_end = (1<<20) + (EXT_MEM_K<<10); + #else + memory_end = (1<<20) + (EXT_MEM_K*64L*1024L); /* 64kb chunks */ + #endif memory_end &= PAGE_MASK; ramdisk_size = RAMDISK_SIZE; #ifdef CONFIG_MAX_16M