|
Платные хостинги
Раскрутка сайта
Книги по программированию
Priveleged Instruction, Не получается в WinXP
- Написал будильник для компа через CMOS, так в 98-м все работает, а XP выдает ошибку Priveleged Instruction. Ошибка при чтении любого значения из CMOS.Чего делать? Буду благодарен за любую помощь.unit Unit1;interfaceuses 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.
- Мне кажется, что ничего не выйдет, хотя бы потому, что даже узнать инфу о BIOS`е можно только из реестраа может с пом. WinAPI и получиться, если система не дает изменить данные в BIOS`е, то пусть она сама изменит эти данные
- Пользовательским приложениям в NT'ях нельзя юзать инструкции in/out...
- можно под админом драверок запуститьи пусть себе читает
- dsergeyp0s0lБжаль=(oleg1973То есть оформить прогу драйвером? Добавлено @ 17:52 p0s0l А по другому поработать с CMOS не получится?
- в winapi есть функ для работы с портами если не ошибаюсь
- dsergeyp0s0loleg1973Всем спасибо. Буду копать. Если инфа появится. сообщите, плиз.
Интернет казино
Онлайн игры
Увеличение члена
Купить DVD
|