Этот топик читают: Гость
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 3 раз(а), последний 2021-05-21 12:55:16 |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
примерно так:
code_931 это без учета необходимой задержки между запросом значения ячейки CMOS и получением этого значения |
|||
карма: 27 |
| ||
файлы: 1 | code_931.txt [532B] [538] |
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 3 раз(а), последний 2021-05-21 12:55:16 |
|||
карма: 0 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 3 раз(а), последний 2021-05-21 12:55:16 |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
SimpleUser, приведенная схема не соответствует тому, что давал я. И она не верна.
SimpleUser писал(а): To access the configuration RAM write the byte address
(00-3Fh) you need to access to I/O port 70h, then access the data via I/O port 71h. |
|||
карма: 27 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 3 раз(а), последний 2021-05-21 12:55:17 |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
SimpleUser, пятая строка это случайно попало. Вообще я полагал, что алгоритм работы с CMOS памятью уже известен, ибо предоставлять такую информацию это не задача hiasm. Кроме того постом выше дан краткий, но достаточный для написания целевой программы алгоритм. Если из английских терминов мало что ясно, вот примерное содержание:
Кмос память представляет из себя ячейку памяти с адресами 00-3Fh. Эта память не мапируется непосредственно на адресное пространство памяти компьютера и потому доступ к ней осуществляется через специальный контролер посредством портов 70h(порт команд) и 71h(порт данных). Для чтения данных из №-ной ячейки CMOS памяти необходимо в порт 70h записать её номер(начиная с 0), затем выждать необходимый для выполнения запроса таймаут и после этого считать данные из порта 71h. |
|||
карма: 27 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 3 раз(а), последний 2021-05-21 12:55:17 |
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Видимо вопрос не очень по адресу: чего видим, о том и говорим
Но общая логика зверинца i8080 (насколько я помню - давно это было) именно такова: результаты чтения/записи в порт 71h это результаты работы с ячейкой, адрес которой определяется последней записью в порт 70h |
|||
карма: 9 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 3 раз(а), последний 2021-05-21 12:55:17 |
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Это означает, что ты не пользуешься обыкновенными командами проца для обмена с портами (как в досе или линейке 95/98), а делаешь очень страшные запросы драйверу, который предварительно должен быть установлен.
А он тебе выдает (если ты еще этого заслуживаешь) доступ только через окошко, которое ты у него запросил. Зачем он так делает, и что значит заслуживаешь ??? Это - к Биллу |
|||
карма: 9 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 3 раз(а), последний 2021-05-21 12:55:17 |
|||
карма: 0 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Galkov писал(а): Зачем он так делает, и что значит заслуживаешь ??? Это - к БиллуБилл посчитал, что все, что он делает -- это защита от "идиота". Но так посчитал Билл... |
|||
карма: 22 |
|
Ответов: 2125
Рейтинг: 159
|
|||
nesco писал(а): Билл посчитал, что нехорошо будет, если несколько драйверов одновременно начнут писать свои последовательности байт в один и тот-же порт - устройство стошнит. |
|||
карма: 1 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
tsdima писал(а): одновременно начнут писать ну, это никак не получится. Ты же лучше меня знаешь, что в любой оси ничего одновременно не делается. Если драйвер пишет и читает порт, то другому никто зеленый свет не даст, если только порт не общий и то в пределах не одного цикла прерываний. |
|||
карма: 22 |
|