Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

Драйвер под NT(2000,XP) для доступа к CMOS   Найти похожие ветки 

 
LexusU   (2004-01-20 10:18) [0]

Надо написать драйвер под NT(2000,XP) для доступа к CMOS. Может кто уже писал? Или ссылочку подскажите.Спасибо


 
WondeRu ©   (2004-01-21 11:40) [1]

http://www.wasm.ru/print.php?article=drvw2k03


 
Ig ©   (2004-01-22 19:29) [2]

Как-то, Я тоже задавал подобный вопрос и получил такой ответ, от NightAngel , насколько он реальный?

чтение (WinME):

mov al,  addr        // addr in [00h..3Fh]
out 70h, al          // пишем в порт адрес
jmp $+2              // не думайте, что это просто так
in al, 71h           // читаем значение в al


И запись:

mov al,  addr        // addr in [00h..3Fh]
out 70h, al          // адрес - в порт
jmp $+2              // это здесь тоже нужно
out 71h, val         // пишем val в CMOS.


Под WinXP:
Читать: HalGetBusData/HalGetBusDataByOffset
Писать: HalSetBusData/HalSetBusDataByOffsetВ конечном счёте всё сводится к вызову неэкспортируемых HalpGetCmosData/HalpSetCmosData. Или побайтно читать/писать порты (также, как и под WinME). Всё это только из драйвера.

По адресам 10h - 20h вычисляется контрольная сумма. Так что их изменение требует корректировки контрольной суммы. Ну а теперь некоторые адреса из CMOS. Таблица не новая, но это несущественно. Какие ещё есть значения легко догадаться, порывшись в Setup"e.

00h Seconds
01h Second Alarm
02h Minutes
03h Minute Alarm
04h Hours
05h Hour Alarm
06h Day of the Week
07h Day of the Month
08h Month
09h Year
0Ah Status Register A
0Bh Status Register B
0Ch Status Register C
0Dh Status Register D
0Eh Diagnostic Status Byte
0Fh Shutdown Status Byte

10h Disk Drive Type for Drives A: and B:

The drive-type bytes use bits 0:3 for the first drive and 4:7 for the other disk drive types:
00h no drive present
01h double sided 360k
02h high capacity (1.2 meg)
03h-0Fh reserved

11h (AT):Reserved (PS/2):drive type for hard disk C:
12h (PS/2):drive type for hard disk D:

(AT, XT/286):hard disk type for drives C: and D:
Format of drive-type entry for AT, XT/286:
0 number of cyls in drive (0-1023)
2 number of heads per drive (0-15)
3 starting reduced write compensation (not used on AT)
5 starting cylinder for write compensation
7 max. ECC data burst length, XT only
8 control byte
Bits:
7 disable disk-access retries
6 disable ECC retries
5-4 reserved, set to zero
3 more than 8 heads
2-0 drive option on XT (not used by AT)
9 timeout value for XT (not used by AT)
12 landing zone cylinder number
14 number of sectors per track (default 17, 0-17 allowed)

13h Reserved
14h Equipment Byte (corresponds to sw. 1 on PC and XT)
15h-16h Base Memory Size (low,high)
17h-18h Expansion Memory Size (low,high)
19h-20h Reserved

(PS/2) POS information
Model 50 (60 and 80 use a 2k CMOS RAM that is not accessible through software)
21h-2Dh Reserved

2Eh-2Fh Checksum of Bytes 10h-20h (low,high)

30h-31h Exp. Memory Size as Det. by POST (low,high)
32h Date Century Byte
33h Information Flags (set during power-on)
34h-3Fh Reserved - Put Your Name Here. ;)

CMOS Table is compiled from different sources from NightAngel. :)



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.033 c
6-1074348927
AlexC
2004-01-17 17:15
2004.04.04
Тестирование программ без сети


14-1078910092
Drunya
2004-03-10 12:14
2004.04.04
Как послать мыло с файлом на WinAPi


14-1078418164
Knight
2004-03-04 19:36
2004.04.04
Нуна адресную книгу...


9-1064659942
Nail
2003-09-27 14:52
2004.04.04
GLScene & ODE


1-1079673885
Cobalt
2004-03-19 08:24
2004.04.04
Отладка программ





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский