![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Burich-Caeser |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 28.7.2004 Репутация: нет Всего: 1 |
Написал будильник для компа через CMOS, так в 98-м все работает, а XP выдает ошибку Priveleged Instruction. Ошибка при чтении любого значения из CMOS.
Чего делать? unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; ComboBox1: TComboBox; Label2: TLabel; ComboBox2: TComboBox; Label3: TLabel; ComboBox3: TComboBox; Label4: TLabel; ComboBox4: TComboBox; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public function readcmos(i:byte):byte; { Public declarations } end; var Form1: TForm1; i:integer; procedure writetocmos(i:byte;zn:byte); procedure writetocmosend(i:byte;zn:byte); implementation {$R *.dfm} function TForm1.readcmos(i:byte):byte; VAR zn:byte; BEGIN asm mov al,i out 70h,al wait xor ax,ax in al,71h wait mov zn,al end; result:=zn; END; procedure writetocmos(i:byte;zn:byte); begin asm mov al,i out 70h,al wait mov dx,71h mov al,zn out dx,al end; end; procedure writetocmosend(i:byte;zn:byte); var n,k,flag: byte; znak:-1..1; BEGIN k:=Form1.readcmos(i); if k>=zn then begin n:=k-zn; znak:=-1; end else begin n:=zn-k; znak:=1; end; writetocmos(i,zn); if znak=1 then begin k:=form1.readcmos(124); if (k+n)>256 then begin writetocmos(124,k+n-256); k:=form1.readcmos(123); writetocmos(123,k+1); end else begin writetocmos(124,k+n); end end else begin k:=form1.readcmos(124); if k<n then begin writetocmos(124,k-n+256); k:=form1.readcmos(123); writetocmos(123,k-1); end else begin writetocmos(124,k-n); end end; END; procedure TForm1.Button1Click(Sender: TObject); begin writetocmosend(85,160); writetocmosend(79,strtoint(combobox2.Text)); writetocmosend(78,strtoint(combobox3.Text)); writetocmosend(77,strtoint(combobox4.Text)); end; end. --------------------
Ты брошен вниз силой судьбы,Ты унижен и раздавлен,Время забыть то, кем ты был,Но помнить, кем ты стал... |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Мне кажется, что ничего не выйдет, хотя бы потому, что даже узнать инфу о BIOS`е можно только из реестра
а может с пом. WinAPI и получиться, если система не дает изменить данные в BIOS`е, то пусть она сама изменит эти данные |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Пользовательским приложениям в NT'ях нельзя юзать инструкции in/out...
-------------------- С уважением, г-н Посол. |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
можно под админом драверок запустить
и пусть себе читает -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| Burich-Caeser |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 28.7.2004 Репутация: нет Всего: 1 |
dsergey
p0s0l Бжаль=( oleg1973 То есть оформить прогу драйвером? Добавлено @ 17:52 p0s0l А по другому поработать с CMOS не получится? --------------------
Ты брошен вниз силой судьбы,Ты унижен и раздавлен,Время забыть то, кем ты был,Но помнить, кем ты стал... |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
в winapi есть функ для работы с портами если не ошибаюсь
-------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| Burich-Caeser |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 28.7.2004 Репутация: нет Всего: 1 |
dsergey
p0s0l oleg1973 Всем спасибо. Буду копать. Если инфа появится. сообщите, плиз. --------------------
Ты брошен вниз силой судьбы,Ты унижен и раздавлен,Время забыть то, кем ты был,Но помнить, кем ты стал... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |