Page 1 of 1

ОЗУ

Posted: Mon Nov 17, 2008 8:48 pm
by 0136
Привет, скажите, как колибри определяет обьём озу, и пользуется ли она ф-ей int 15h E820h?

Re: ОЗУ

Posted: Mon Nov 17, 2008 8:58 pm
by Serge
Определяет старым дедовским способом. Код в init.inc "mem_test"

Posted: Mon Nov 17, 2008 9:27 pm
by 0136
я так понял это:
xor edi, edi
mov ebx, 'TEST'
@@:
add edi, 0x100000
xchg ebx, dword [edi]
cmp dword [edi], 'TEST'
xchg ebx, dword [edi]
je @b
mov [MEM_AMOUNT-OS_BASE], edi

Но есть ведь участки памяти которые нельзя юзать, или пофиг? Обьясните пожалуйста :)

Re: ОЗУ

Posted: Mon Nov 17, 2008 11:08 pm
by Serge
Есть, но пока не зависнет пофиг. Так сложилось исторически.

Re: ОЗУ

Posted: Mon Nov 17, 2008 11:17 pm
by 0136
наверное это правильно, потому что я пользуюсь ф-ей Е820 int 15h, и её результаты иногда просто издевательство!!!

Re: ОЗУ

Posted: Tue Nov 18, 2008 1:28 am
by Serge
А подробней ? В Колибри PE я получаю карту памяти от GRUB а он через e820.

Re: ОЗУ

Posted: Tue Nov 18, 2008 2:52 am
by 0136
На некоторых машинах, ф-я выдаёт смешные результаты. Вот, решил спросить как у вас и поднял этот вопрос на васме http://www.wasm.ru/forum/viewtopic.php?id=29699

Re: ОЗУ

Posted: Tue Nov 18, 2008 10:42 am
by Serge
В исходниках Grub есть последовательность проверки через e820 и более ранние вызовы.

Re: ОЗУ

Posted: Tue Nov 18, 2008 12:35 pm
by 0136
Хотите сказать что это нормально из 64 мб доступно 651264 байт?

Re: ОЗУ

Posted: Tue Nov 18, 2008 2:46 pm
by Serge
Может она там совсем не поддерживается ?

Re: ОЗУ

Posted: Tue Nov 18, 2008 4:35 pm
by 0136
офф топ, про пень2 это не так, вот карта памяти с 64 мб:

1) 0, 9FC00h, 1
2) 9fc00h, 400h, 1
3) 0f0000h, 01000h, 2
4) 0FFFF0000h, 10000h, 2
5) 100000h, 0E00000h, 1
6) 0F00000h, 100000h, 2

и вот с 486 с 16 метрами озу:
1) 0, 9fc00h, 1
2) 100000h, 700000h, 1
3) 800000h, 800000h, 2

Re: ОЗУ

Posted: Fri Nov 21, 2008 3:53 am
by Pavia
0136
У тебя в коде ошибка. Последнию запись не обрабатываешь.

Re: ОЗУ

Posted: Fri Nov 21, 2008 4:34 am
by Pavia
Serge wrote:Есть, но пока не зависнет пофиг. Так сложилось исторически.
Так и не зависнит, а вот проблемы могут быть. К примеру на ISA Hole закончит тестирование и будет только 14мб с копеечками.
ISA Hole 15-16мб 6) 0F00000h, 100000h, 2
Если ISA Hole включина, на PII она скорее всего включина то тут идет обращение к устройсвам ISA.
Если выключена то дырок нет идет сплошным диапозоном.
Так что колибри может увидить не всю память.