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

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

Работа со CMOS в Win XP [D6, WinXP]


ZedeS ©   (2004-11-08 12:26:00) 

Доброго времени суток!
Есть проблемка. Нужно поменять данные в CMOS, а товарищь Win XP это делать не дает. Под 98 все прекрасно работает!
Посоветовали WinIO, но он фигурирует, как для рапоты с COM портом (насколько я понял).
Что по-этому поводу можете посоветовать.
Заранее спасибо!!!
И еще такой вопрос - в 98 используються порты 70 и 71, а ХР if not SetPortVal($70,i,1) then exit else
begin
GetPortVal($71,zn,1);
Result:=zn^;
end;
70,71,72,73. Я могу использовать любой?

Пробую, но не получается.
на асемблере
i передается при вызове функции
zn: byte

asm
mov al,i //номер ячейки, из которой производится чтение
out 70h,al //заносим это значние в порт cmos rts
wait
xor ax,ax //очистка регистра ax
in al,71h //вводим в регистр al из порта значение ячейки smoc rts
wait
mov zn,al //присваеваем zn значение ячейки
end;

при помощи WinIO пробую,
подключил драйвер и т.д.(все по инструкции), далее

Вылетает сразу после Set
Что я делаю неправильно?
Заранее спасибо за ответы!


Digitman   (2004-11-09 13:54:00) [1]


> в 98 используються порты 70 и 71, а ХР 70,71,72,73


на основании чего ты утверждаешь, что ОС win98 обращается к двум упомянутым портам, а ХП - аж к четырем ? хотя речь идет об одной и той же аппаратной подсистеме ?


Игорь Шевченко   (2004-11-09 13:41:00) [2]

А нафига CMOS-то менять ?


ZedeS   (2004-11-08 12:29:00) [3]

Малеха забочинил, вот правильный пост

И еще такой вопрос - в 98 используються порты 70 и 71, а ХР 70,71,72,73. Я могу использовать любой?

Пробую, но не получается.
на асемблере
i передается при вызове функции
zn: byte

asm
mov al,i //номер ячейки, из которой производится чтение
out 70h,al //заносим это значние в порт cmos rts
wait
xor ax,ax //очистка регистра ax
in al,71h //вводим в регистр al из порта значение ячейки smoc rts
wait
mov zn,al //присваеваем zn значение ячейки
end;

при помощи WinIO пробую,
подключил драйвер и т.д.(все по инструкции), далее
if not SetPortVal($70,i,1) then exit else
begin
GetPortVal($71,zn,1);
Result:=zn^;
end;

Вылетает сразу после Set
Что я делаю неправильно?
Заранее спасибо за ответы!


Наверх

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