Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как обратится к первому мегабайту памяти? [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]

драйвер


Наверх

Титульная страница Поиск, карта сайта Написать письмо