С Новым годом! Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 31
1

Определить весь объем CMOS памяти, установленной на машине

21.12.2010, 14:58. Показов 3576. Ответов 3
Метки cmos (Все метки)

Author24 — интернет-сервис помощи студентам
Друзья! Помогите написать программу, которая определит весь объем CMOS памяти, установленной на машине. Просто пишу курсач, чтение и редактирование CMOS есть, а вот как определить общий объем не знаю. Если кто нибудь сталкивался помогите найти, буду очень признателен. Заранее спасибо
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.12.2010, 14:58
Ответы с готовыми решениями:

Нужно увеличить объем памяти. Какую память поставить, что-бы она была совместима с уже установленной?
У меня стоит память Kingston две планки по 2 ГБ (DIMM 1600, в скриншоте параметры из CPU-Z). Я бы...

Видно не весь объем оперативной памяти
Купил оперативную память установил на компьютер в Эвересте пишет 1500Мб доступно хотя вставил на 2...

Отображается не весь объем на карте памяти
Купил карту памяти на 64 гб, заполнил 20 и пишет что нет свободного места. Хотя телефон видит, что...

Жесткий диск Samsung, не доступен весь объём памяти.
В общем суть проблемы: Есть жесткий диск Samsung SP0822N , ёмкость (по умолчанию) 80,6 Гб/2мб...

3
Ушел с форума
Автор FAQ
16342 / 7661 / 1076
Регистрация: 11.11.2010
Сообщений: 13,707
22.12.2010, 05:16 2
Лучший ответ Сообщение было отмечено как решение

Решение

hax32, "Помогите написать программу, которая определит весь объем CMOS памяти, установленной на машине." а чего его определять? На всех машинах CMOS стандартно имеет 64 регистра, пронумерованных от 00 до 3Fh. Для чтения регистра нужно послать его номер в порт с адресом 70h, а затем прочитать его через порт 71h. Для чтения всей информации из CMOS можно воспользоваться следующей программой
Assembler
1
2
3
4
5
6
7
8
9
MOV CX,40h
    XOR BX,BX
A1: MOV AX,BX
    OUT 70h,AL
    IN AL,71h
    MOV BUFFER[BX],AL
    INC BX
    LOOP A1
BUFFER DB 40h DUP (0)
Формат CMOS
00h время дня: секунды (BCD 00-59h, HEX 00-3Bh)
01h время будильника: секунды (BCD 00-59h, HEX 00-3Bh)
02h время дня: минуты (BCD 00-59h, HEX 00-3Bh)
03h время будильника: минуты (BCD 00-59h, HEX 00-3Bh)
04h время дня: часы (BCD 00-23h, HEX 00-17h) в 24 часовой моде (BCD 01-12h, HEX 01-0Ch) в 12 часовой моде (до полудня) (BCD 81-92h, HEX 81-8Ch) в 12 часовой моде (после полудня)
05h время будильника: часы то же самое что и время дня: часы
06h день недели (01-07h, 01=воскресенье)
07h день месяца (BCD 01-31h, HEX 01-1Fh)
08h месяц (BCD 01-12h, HEX 01-0Ch)
09h год по модулю 100 (BCD 00-99h, HEX 00-63h)
0Ah регистр состояния A часов реального времени:
бит 7: установлен, если дата/время обновляются
биты 6-4: базовая частота отсчета времени (22 stage divider), по умолчанию 010b=32.768Гц
биты 3-0: выбор частоты прерываний, 0000 — не задействована 0011 — 122 микросекунды (минимум)
1111 — 500 миллисекунд 0110 — 976.562 микросекунды =1024Гц (по умолчанию)
0Bh регистр состояния B часов реального времени: бит 7: =0 нормальное обновление, =1 аварийное обновление бит 6: разрешение периодических прерываний бит 5: разрешение прерываний будильника бит 4: разрешение прерываний конца обновлений бит 3: разрешение прямоугольных колебаний бит 2: режим даты (=0 BCD, =1 HEX) бит 1: (=0 12 часовая мода, =1 24 часовая мода)
бит 0: =1 учитывать переход на летнее время
0Ch регистр состояния C часов реального времени: бит 7: флаг Interrupt Request =1 когда любой или все с 6 по 4 биты в 1 и appropriate enables (регистр состояния B) установле-ны в 1, вырабатывает прерывание 8 при переключении; бит 6: флаг Periodic Interrupt; бит 5: флаг Alarm Interrupt; бит 4: флаг Update-Enable Interrupt
0Dh Регистр состояния D часов реального времени: бит 7: батарея хорошая
До 0Dh регистра в CMOS разных фирм хранится одинаковая информация о часах и календаре. После 0Dh в зависимости от фирмы производителя (AMSTRAD, IBM PS/2, AMI, PHOENIX и т.д.) информация разная.
0Eh (PS/2) Diagnostic Status Byte Бит 7: =1 indicates clock has lost power Бит 6: =1 indicates incorrect checksum Бит 5: =1 indicates equipment configuration is incorrect Power-on check requires that atleast one floppy be installed Бит 4: =1 indicates error in memory size Бит 3: =1 indicates controller or disk drive faileDInitialization Бит 2: =1 indicates time is invalid Бит 1: =1 indicates installed adaptors do not match configuration Бит 0: =1 indicates a time-out while reading adaptor ID
0Eh-13h (AMSTRAD) время и дата последнего использования машины
0Fh Reset Code (IBM PS/2 “Shutdown Status Byte”)
10h Биты 7-4 тип первого флоппи-дисковода Биты 3-0 тип второго флоппи-дисковода
=0 нет дисковода, =1 — 360 Кб 5,24 дюйма, =2 — 1.2 Мб 5,24 дюйма, =3 — 720 Кб 3,5 дюйма, =4 — 1.4 Мб 3,5 дюйма,
11h (IBM-PS/2) First Fixed Disk Drive Type Byte (00-FFh) Note: if IBM ESDI or SCSI drive controller is used, CMOS drive type will be zero (00 -no drive) и прерывание 13h will be directed to controller ROM.
11h (AMI) Keyboard Typematic Data Бит 7 Enable Typematic (1 = On) Биты 6-5 Typematic Delay (wait before begin repeating) =0 250 ms, =1 500 ms, =2 750 ms, =3 100 ms Биты 4-0 Typematic Rate char/sec e.g. 01010b = 12.0 cps 00 –300 01 -267 02 -240 03 -218 04 -200 05 -185 06 –171 07 –160 08 -159 09 -133 0Ah -120 0Bh -109 0Ch –100 0Dh –92 0Eh -86 0Fh -80 10h -75 11h -67 12h -60
13h -55 14h -50 15h -46 16h -43 17h -40 18h – 37 19h – 33 1Ah -30 1Bh -27 1Ch -25 1Dh -23 1Eh –21 1Fh -20
12h Биты 7-4 тип первого винчестера, если =Fh то правильное зна-чение по адресу 19h
Биты 3-0 тип второго винчестера, если =Fh то правильное зна-чение по адресу 1Ah
13h (AMI) Advanced Setup Options Бит 7 наличие мыши Бит 6 тест памяти расположенной выше 1 MБайта Бит 5 звуковой сигнал во время проверки памяти Бит 4 проверка ошибки паритета памяти Бит 3 отключение проверки памяти нажатием на <Esc> Бит 2 жесткий диск определенный пользователем (1 = Тип 47 data area at address 0:300h) Бит 1 ожидание нажатия на <F1> для вывода сообщений об ошибках Бит 0 включить индикатор Num Lock On при загрузке
14h Периферия: Биты 7-6: =0 1 флоппи дисковод, =1 2 флоппи дис-ковода; Биты 5-4: =0 VGA или EGA дисплей, =1 CGA 40x25 строк, =2 CGA 80x25 строк, =3 монохромный дисплей бит 3 Display Enabled, бит 2 Keyboard Enabled бит 1 наличие сопроцессора бит 0 наличие флоппи-дисковода
14h (AMSTRAD) Контрольная сумма ОЗУ пользователя
15h Базовая память в килобайтах (младший байт)
15h-16h (AMSTRAD) скан-код /код ASCII клавиши Enter
16h Базовая память в килобайтах (старший байт)
17h Расширенная память в килобайтах (младший байт)
17h-18h (AMSTRAD) скан-код /код ASCII клавиши Backspace
18h Расширенная память в килобайтах (старший байт)
19h тип первого винчестера (not in original AT specification but now nearly universally used except for PS/2). Значение от 0 до Fh не используется (would not require extension. Note: this has the effect making type 0Fh (15d) unavailable. Значения от 10h до FFh тип первого винчестера от 16d до 255d Большинство фирм-изготовителей используют следующие ти-пы 47d или 49d — "тип определен пользователем" и параметры are stored elsewhere in the CMOS.
19h-1Ah (AMSTRAD) скан-код /код ASCII кнопки 1 включения джой-стика, по умолчанию: FFFFh -(no translation)
1Ah тип второго винчестера (смотрите 19h)
1Bh (AMI) первый жесткий диск определенный пользователем (тип 47): число цилиндров, LSB
1Bh (PHOENIX) LSB of Word to 82335 RC1 roll compare register
1Bh-1Ch (AMSTRAD) скан-код /код ASCII прерываний кнопки 2 вклю-чения джойстика, по умолчанию: FFFFh -(no translation)
1Ch (AMI) первый жесткий диск определенный пользователем: число цилиндров (старший байт)
1Ch (PHOENIX) MSB of Word to 82335 RC1 roll compare register
1Dh (AMI) первый жесткий диск определенный пользователем: число головок
1Dh-1Eh (AMSTRAD) скан-код /код ASCII 1-ой клавиши мыши по умолчанию: FFFFh -(no translation)
1Dh (Zenith Z-200 monitor) Выбор устройства для загрузки системы Биты 6-5: =0 -MFM Monitor, =1 – загрузка с дискеты (А : ) =2 загрузка с винчестера ( С : ) =3 загрузка с дискеты если не найден винчестер (по умолчанию)
1Dh (PHOENIX) LSB of Word to 82335 RC2 roll compare register
1Eh (AMI) первый жесткий диск определенный пользователем: цилиндр с которого начинается компенсация записью (младший байт)
1Eh (PHOENIX) MSB of Word to 82335 RC2 roll compare register
1Fh (AMI) первый жесткий диск определенный пользователем: цилиндр с которого начинается компенсация записью (старший байт)
1Fh-20h (AMSTRAD) скан-код /код ASCII 2-ой клавиши мыши
20h (AMI) первый жесткий диск определенный пользователем: Control Byte (равен 80h если количество головок равно или больше 8)
20h (PHOENIX) первый жесткий диск определенный пользователем (тип 48) количество цилиндров LSB
21h (AMI) первый жесткий диск определенный пользователем: зона загрузки (младший байт)
21h (PHOENIX) первый жесткий диск определенный пользователем (тип 48) количество цилиндров MSB
21h (AMSTRAD) масштаб X мыши, по умолчанию: 0Ah
22h (AMI) первый жесткий диск определенный пользователем: зона загрузки (старший байт)
22h (PHOENIX) первый жесткий диск определенный пользователем (тип 48) количество головок
22h (AMSTRAD) Y масштаб мыши, по умолчанию: 0Ah
23h (AMI) первый жесткий диск определенный пользователем: количество секторов на одной дорожке
23h (PHOENIX) первый жесткий диск определенный пользователем (тип 48) компенсация записью. LSB
23h (AMSTRAD) BYTE initial VDU mode and drive count default: 20h
бит 7: enables extended serial flow control (NB this is buggy) бит 6: set if two floppy drives installed биты 5-4: (from Amstrad 1640 tech ref) 00 Internal video adapter; 01 CGA адаптер — 40x25 строк;
10 CGA адаптер — 80x25 строк; 11 монохромный адаптер —80x25 строк
24h (AMI) Второй жесткий диск определенный пользователем: количество цилиндров (младший байт)
24h (AMSTRAD) BYTE initial VDU character attribute, default: 7h
24h (PHOENIX) первый жесткий диск определенный пользователем (тип 48) компенсация записью. MSB
25h (AMI) Второй жесткий диск определенный пользователем: количество цилиндров (старший байт)
25h (AMSTRAD) BYTE size of RAM disk in 2K blocks default: 0 -only used by the RAMDISK software supplied.
25h (PHOENIX) первый жесткий диск определенный пользователем (тип 48) зона посадки головок LSB
26h (AMI) Второй жесткий диск определенный пользователем: количество головок
26h (AMSTRAD) BYTE initial system UART setup byte по умолчанию: E3h – формат такой как для 14h прерывания функция 0
26h (PHOENIX) первый жесткий диск определенный пользователем (тип 48) зона посадки головок MSB
27h (AMI) Второй жесткий диск определенный пользователем: цилиндр, с которого начинается компенсация записью (младший байт)
27h (AMSTRAD) BYTE initial external UART setup byte по умолчанию: E3h – формат такой как для 0 функции прерывания 14h 14h прерывания функция 0 — инициализировать последовательный порт AL параметры порта 7-5 бит -скорость передачи, 4-3 бит – контроль четности, 2 бит – количество стоп-битов, 1-0 бит – слово, DX номер порта (00-03)
27h (PHOENIX) первый жесткий диск определенный пользователем (тип 48) количество секторов на одной дорожке
28h (AMI) Второй жесткий диск определенный пользователем: цилиндр с которого начинается компенсация записью (старший байт)
28h (HP Vectra) checksum over words 29h-2Dh
28h-3Fh (AMSTRAD) 24 байта user applications по умолчанию: нули
29h (AMI) Второй жесткий диск определенный пользователем: Control Byte (равен 80h если количество головок равно или больше 8)
29h (PHOENIX) LSB word to Intel 82335 CC0 compare register
2Ah (AMI) Второй жесткий диск определенный пользователем: зона загрузки (младший байт)
2Ah (PHOENIX) MSB word to Intel 82335 CC0 compare register
2Bh (AMI) Второй жесткий диск определенный пользователем: зона загрузки (старший байт)
2Bh (PHOENIX) LSB word to Intel 82335 CC1 compare register
2Ch (AMI) Второй жесткий диск определенный пользователем: ко-личество секторов на одной дорожке
2Ch (COMPAQ) бит 6: включить/выключить индикатор numlock при загрузке
2Ch (PHOENIX) MSB word to Intel 82335 CC1 compare register
2Dh (AMI) Configuration Options Бит 7 если =1 — инсталирован сопроцессор фирмы Weitek
Бит 6 Floppy Drive Seek –выключен для быстрой загрузки Бит 5 Порядок загрузки =0 – загрузка с винчестера, а затем с флоппи; =1 загрузка с флоппи, а затем с винчестера Бит 4 Скорость загрузки (0 – низкая; 1 –высокая) Бит 3 External Cache Enable (1 = On) Бит 2 Internal Cache Enable (1 = On) Бит 1 Use Fast Gate A20 after boot (1 = On) Бит 0 Переключатель «Турбо»
2Dh (PHOENIX) Checks for values AAh or CCh
2Eh Standard CMOS Checksum (старший байт)
2Fh Standard CMOS Checksum, (младший байт)
30h Память сверх 1 мегабайта (младший байт)
31h Память сверх 1 мегабайта (старший байт)
32h байт столетия (BCD значение – текущее 20)
32h (IBM-PS2) Configuration CRC (младший байт). CRC for range 10h-31h
33h Информационный Флаг Бит 7 128K (??? believe this indicates the presence of the special 128k memory expansion board for the AT to boost the "stock" 512k to 640k -all machines surveyed have this бит set) Биты 6-0 ???
33h (IBM PS/2) Configuration CRC (старший байт) (see entry for 32h)
33h (PHOENIX) Бит 4 содержание 4-го бита регистра микропро-цессора CP0
34h (AMI) Адреса теневой памяти и выбор пароля загрузки
Биты 7-6 Выбор пароля: =0 отключен, =1 установлен, =2 зарезервирован, =3 пароль на загрузку системы
Биты 5-0 Адреса теневой памяти ПЗУ: Бит 5 C8000h, бит 4 CC000h, бит 3 D0000h, бит 2 D4000h, бит 1 D8000h, бит 0 DC000h
35h (AMI) Адреса теневой памяти: бит 7 — E0000h, бит 6 — E4000h, бит 5 — E8000h, бит 4 — EC000h, бит 3 — F0000h, бит 2 — C0000h, бит 1 — C4000h, бит 0 — зарезервирован
35h (PHOENIX) Второй жесткий диск определенный пользователем (тип 48) —количество цилиндров LSB Примечание: использу-ется в том случае когда пароль в стиле PS/2 не имеет эффекта.
36h (PHOENIX) Второй жесткий диск определенный пользовате-лем (тип 48) — количество цилиндров MSB. Примечание: используется в том случае когда пароль в стиле PS/2 не имеет эффекта.
37h (IBM PS/2) байт столетия
37h (PHOENIX) Второй жесткий диск определенный пользователем (тип 48) — число головок. Примечание: используется в том случае когда пароль в стиле PS/2 не имеет эффекта.
38h-3Dh (AMI) зашифрованный пароль
38h-3Fh ??? (IBM PS/2) зашифрованный пароль. Инициализируется 00h в всех байтах. Содержит от 1 до 7 скан-кодов.
38h (PHOENIX) Второй жесткий диск определенный пользователем (тип 48) — компенсация записью. LSB. Примечание: используется в том случае когда пароль в стиле PS/2 не имеет эффекта.
39h (PHOENIX) Второй жесткий диск определенный пользователем (тип 48) — компенсация записью. MSB. Примечание: используется в том случае когда пароль в стиле PS/2 не имеет эффекта.
3Ah (PHOENIX) Второй жесткий диск определенный пользователем (тип 48) — зона посадки головок LSB. Примечание: используется в том случае когда пароль в стиле PS/2 не имеет эффекта.
3Bh (PHOENIX) Второй жесткий диск определенный пользователем (тип 48) — зона посадки головок MSB. Примечание: используется в том случае когда пароль в стиле PS/2 не имеет эффекта.
3Ch (PHOENIX) Второй жесткий диск определенный пользователем (тип 48) — количество секторов на одной дорожке. Примечание: используется в том случае когда пароль в стиле PS/2 не имеет эффекта.
3Eh (AMI) Extended CMOS Checksum (старший байт) (includes 34h -3Dh)
3Fh (AMI) Extended CMOS Checksum (младший байт) (includes 34h -3Dh)
4
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 31
22.12.2010, 12:12  [ТС] 3
о спасибо большое, как то просто очень
0
Ушел с форума
Автор FAQ
16342 / 7661 / 1076
Регистрация: 11.11.2010
Сообщений: 13,707
23.12.2010, 04:45 4
Цитата Сообщение от hax32
о спасибо большое, как то просто очень
Зачем делать сложным,
То что проще простого? ("Казанова"© Наутилус Помпилиус)
0
23.12.2010, 04:45
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.12.2010, 04:45
Помогаю со студенческими работами здесь

Комп перестал видеть весь объем памяти RAM
После перезагрузки комп стал писать кучу BSOD (установлена win10 pro) разобрал почистил собрал...

Windows XP SP3 не видит весь объём оперативной памяти
Здравствуйте, ищу решение проблемы с оперативной памятью на Windows XP SP3, стоит 2 гб оперативы,...

Acer Aspire 5750G DXDIAG не показывает весь объем памяти
Подскажите пожалуйста как сделать чтобы в DXDIAG показывало вес обем видео памяти у меня...

Как использовать весь объем оперативной памяти в приложении на C++ Builder
Всем привет! В приложении, написанном на C++ Builder возникла необходимость использовать...

Найти компьютер с наименьшей частотой и определить объем его оперативной памяти не менее 16M и найти суммарный объем их жестких дисков.
Дан список компьютеров на абазе Intel с указанием их частоты в Mhg и объемов оперативной памяти и...

Подключение устройств к системе, установленной на виртуальной машине
Ребята, помогите пожалуйста осуществить следующую задачу. Необходимо связать между собой Windows...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru