![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как обратится к первому мегабайту памяти? [D7, Win95/98, WinXP]
ddenisv © (2003-04-12 15:04:00)Нужно читать из адресов где биос лежит. Партирую досовскую программу в которой это делалось через ассемблер код. Но в делфи этот код вызывает ексепт на чтение памити.
Надо чтобы работало из Win9x и NT/XP
ddenisv (2003-04-14 13:20:00) [1]Ходь бери да кусок программы в консольное приложение засовую. Там проблем нет.
А про смысл лучше не спрашивайте.
Alex Konshin (2003-04-14 09:36:00) [2]Прочитать физ.память в NT можно и без драйверов, но не уверен, что это действительно нужно.
NightAngel (2003-04-13 22:14:00) [3]> konstantinov © (13.04.03 21:49)
Меня данный вопрос тоже очень интересует. Рискну предположить что из первого мегабайта можно прочесть данные с помощью следующей строки:
BiosDate:array[0..255] absolute $FFFF5;
Взято с сайта Anatoly Podgoretsky из сборника FAQ
Используется для определения даты BIOS. Сам не проверял.
Не будет это работать.
konstantinov (2003-04-13 21:49:00) [4]Меня данный вопрос тоже очень интересует. Рискну предположить что из первого мегабайта можно прочесть данные с помощью следующей строки:
BiosDate:array[0..255] absolute $FFFF5;
Взято с сайта Anatoly Podgoretsky из сборника FAQ
Используется для определения даты BIOS. Сам не проверял.
NightAngel (2003-04-13 21:38:00) [5]> ddenisv (13.04.03 17:52) Я не знаю что такое HAL функции, если можно попродробней, можно ткнуть ссылкой.
Смотрите Windows DDK.
Anatoly Podgoretsky прав. Смысла в этом нет. Win32 не обращается к сервисам предоставляемых BIOS-ом (за некоторыми исключениями), и для чего Вам читать эти 9000 байт ? Реально это сделать и без драйвера (опять же смысл ?), но это уже скользкая тема, и она не для обсуждения на форуме.
Anatoly Podgoretsky (2003-04-13 17:59:00) [6]Реально с драйвером, но смысла не имеет.
ddenisv (2003-04-13 17:52:00) [7]Мне нужно прочитать 9000 байт начиная с поределенного адреса который лежит в области биоса.
В досе просто делал в цикле вызывал воттвкую функцию
mov ax,(сегмент)
mov es,ax
mod di,(смещение)
mov ax, es:[di]
И возвращал AX как результат.
Я не знаю что такое HAL функции, если можно попродробней, можно ткнуть ссылкой.
Реально ли это сделать если это не драйвер?
Слесарь Матерящийся (2003-04-13 12:31:00) [8]...но дельфа здесь опять-же ни при чём, т.к. ф-и HAL должны вызываться с CPL=0, т.е. из драйверной системы...
NightAngel (2003-04-12 22:52:00) [9]Читать HalGetBusData/HalGetBusDataByOffset
Писать HalSetBusData/HalSetBusDataByOffset
В конечном счете все сводится к вызову HalpGetCmosData/HalpSetCmosData.
Или побайтно читать/писать порты.
Anatoly Podgoretsky (2003-04-12 18:23:00) [10]А смысл, в Виндоус не используется BIOS Area и вообще нет вонятия физическая память, ну почти
Polevi (2003-04-12 16:27:00) [11]драйвер