Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Переделка АТ интерфейса клавиатуры в PS/2 на старых платах |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 ... 7 8 9 10 11 * 12 13 14 15 16 17 | Печать |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Rio444 написал: Штатно он в основном для диагностического speaker используется. Если только канал 2 уже ни для чего больше не используется. |
Rio444
Гость
Откуда: Ростов-на-Дону Всего сообщений: 8632 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 сен. 2014 |
i8088 написал: Кстати, да. Но не уверен, что только диагностического. Штатно он в основном для диагностического speaker используется. Если в системе есть звуковуха, то наверное канал 2 ей и не нужен. А если только спикер? Фиг с ним, если временно собьётся его работа. А если конфликт в системе, с более неприятными последствиями? |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Если какая программа использует его для измерения времени, то по любому сама и программирует. А штатно егоо функция например подавать гудки (тот же DOS), я не уверен что он программирует его заново каждый раз. Ну можно по выходе оставлять настроенным на 1000Hz Во всех руководствах по ассемблеру это самый используемый канал, все примеры обычно на нем строятся. Я еще подумаю. |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 4 ноября 2017 22:45 Сообщение отредактировано: 4 ноября 2017 22:51
Только для AT (не слишком новых, где есть канал 1 8254) можно попробовать процедуру из исходников IBM AT |
Rio444
Гость
Откуда: Ростов-на-Дону Всего сообщений: 8632 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 сен. 2014 |
Очень просто, но очень неточно. Даже значение в Ah не инициализируют. Перед WAITF1 должно быть: IN AL,PORT_B Возможно именно этот алгоритм используется в int 15h функция 86h. |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 5 ноября 2017 9:31 Сообщение отредактировано: 5 ноября 2017 9:32
Rio444 написал: Мне тоже это не понравилось но я решил привести как в оригинале. Даже значение в Ah не инициализируют. Дилемма в том, что с 8253/54 слишком много команд получается, что снизит точность. Но при использовании канала2 будет чуть проще, тк его можно останавливать без latch. |
Rio444
Гость
Откуда: Ростов-на-Дону Всего сообщений: 8632 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 сен. 2014 |
Посмотрите вот такой вариант:
На 386DX-40 получилось на выходе 10 циклов. Что вполне неплохо. На 286-й конечно точность будет очень низкая. |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Те Вы предлагаете сделать пре-калибровку, а потом всюду использовать найденную константу? В принципе оба варианта (IBM и Ваш) могут использоваться, в зависимости от целей. А Вы пробовали проверить реальную задержку осциллографом? Я проверял так
Это делает 65536 импульсов и пауз в порт принтера. Проверить, насколько изменится длительность импульсов и паузы если заккоментировать CALL DLY (для уменьшения потерь времени можно заменить макроопределением). Разность и даст задержку. Цикл у Вас в конце лучше сделать так |
Rio444
Гость
Откуда: Ростов-на-Дону Всего сообщений: 8632 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 сен. 2014 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 5 ноября 2017 13:07 Сообщение отредактировано: 5 ноября 2017 13:08
i8088 написал: Собственно я так изначально предлагал Те Вы предлагаете сделать пре-калибровку, а потом всюду использовать найденную константу? Rio444 написал: i8088 написал: Вообще, первая мысль была - использовать тупой цикл, со счетчиком.Вопрос только, где брать начальное значение счетчика? Оно будет зависеть от скорости процессора.Это начальное значение можно считать на этапе инициализации (т.е. только один раз).Но нужен какой-то таймер, который работает на всех вышеуказанных машинах, и работает одинаково. Смысл в том, что сохраняется число тактов на один проход цикла. Весь код совпадает, только меняется порядок инструкций, и inc cx меняется на dec cx. Цикл у Вас в конце лучше сделать так Будут ли по числу тактов loop и dec(inc) cx jnz равноценны? |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Rio444 написал: Навряд-ли, loop должна быть быстрее. Тогда оставим как есть. Будут ли по числу тактов loop и dec(inc) cx jnz равноценны? Теперь осталось проверить реально получающуюся задержку. |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 ... 7 8 9 10 11 * 12 13 14 15 16 17 | Печать |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Переделка АТ интерфейса клавиатуры в PS/2 на старых платах |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |