Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Переделка АТ интерфейса клавиатуры в PS/2 на старых платах |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 6 * 7 8 9 10 .. 12 13 14 15 16 17 | Печать |
pahan
Advanced Member
Откуда: Химки, М.О. Всего сообщений: 1070 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 13 мар. 2015 |
не позволяет реализовать задержку меньше 976 мкс, если речь про это: В некоторых источниках пишут, что эта функция http://vitaly_filatov.tripod.com/ng/asm/asm_026.13.html Надо разбираться как она внутри работает, чтобы проверить это. что будет, если длительность меньше Ровно не получится, но вряд ли вам наносекунды будут принципиальны В частности, как реализовать задержку 15мкс? Самому запрограммировать таймер 8254 на нужную частоту прерываний и ловить IRQ0 https://en.wikibooks.org/wiki/...rval_Timer Нужный делитель - 18. Как различные ОС к такому отнесутся - ничего обещать не могу. |
Rio444
Гость
Откуда: Ростов-на-Дону Всего сообщений: 8632 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 сен. 2014 |
pahan, спасибо за наводку. Почитаю. Может можно как-то попроще? Или есть готовый код для таймера? |
pahan
Advanced Member
Откуда: Химки, М.О. Всего сообщений: 1070 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 13 мар. 2015 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 1 ноября 2017 15:41 Сообщение отредактировано: 1 ноября 2017 15:44
Сам с ним не развлекался, а примеры кода есть здесь: http://wiki.osdev.org/Programmable_Interval_Timer Там хорошая простыня |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Я бы только посоветовал использовать инструкции не выше 286, чтобы можно было использовать эту разработку на 286 платах. В кодах BIOS-ов небольше задержки часто делаются просто loop цилами, но понятно, что такая задержка зависит от частоты и поколения CPU. Работу с таймером с только 16-bit инструкциями можно подсмотреть в коде Atmel программатора для AT89 (прилагаю AT89.ZIP, файл XTIMER.ASM) PS. Я бы использовал MASM (или другой DOS assembler), чтобы можно было вести разработку на 286 машине. Прикрепленный файл (AT89.ZIP, 0 байт, скачан: 17 раз) |
justontime
Full Member
Откуда: СПб Всего сообщений: 236 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 10 сен. 2016 |
Rio444 написал: Думаю, это самое реальное из всего возможного (подпрограмма задержки из BIOS PC/XT): как реализовать задержку 15мкс?
Извините за формат - тегов CODE что-то не вижу на форуме... Думаю, канал 0 DMA - единственное, что на старых компьютерах может более-менее надежно выдавать подобные интервалы, причем крайне маловероятно, чтобы кто-то решил его перепрограммировать (хотя такие примеры тоже знаю). Перепрограммировать 8253 категорически не рекомендую - несовместимость с чем-нибудь практически гарантирована... |
Tronix
Advanced Member
Откуда: Москва Всего сообщений: 1749 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 15 янв. 2008 |
Оффтопик: Оффтопик: justontime Оооо, вы только что подали мне идею, как все-таки попробовать Трайдент запустить. Нужно рефреш в BIOS увеличить до пары секунд, или сколько память потянет и попробовать стартануть. Если дело в ALE, то может успеть Video BIOS стартануть. РУ7 у меня держала данные до 5 секунд, помнится, без рефреша. |
Кай
Гость
Divine Assassin Откуда: извне (from beyond) Всего сообщений: 13709 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 авг. 2010 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 1 ноября 2017 21:13 Сообщение отредактировано: 1 ноября 2017 21:17 {code} Извините за формат - тегов CODE что-то не вижу на форуме...
{/code} Соотв. фигурные скобки меняем на квадратные. |
Rio444
Гость
Откуда: Ростов-на-Дону Всего сообщений: 8632 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 сен. 2014 |
justontime, большое спасибо! Буду разбираться. |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 2 ноября 2017 11:13 Сообщение отредактировано: 2 ноября 2017 15:20
justontime, этот код для XT, но в AT машинах канал DMA0 освободился от функции регенерации памяти. Соответственно, для требуемой нам AT читать DMA регистры уже не годится. А во всех ли интересующих нас AT (286-486) чтобы можно было его использовать? Надо будет проверить. upd Исправил, напутал номер канала 8253 |
justontime
Full Member
Откуда: СПб Всего сообщений: 236 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 10 сен. 2016 |
i8088 написал: А, я просто неправильно понял проблему - думал, что речь идет только о решении для совсем старых машин PC/XT класса... но в AT машинах |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 6 * 7 8 9 10 .. 12 13 14 15 16 17 | Печать |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Переделка АТ интерфейса клавиатуры в PS/2 на старых платах |
0 посетителей просмотрели эту тему за последние 15 минут |
В том числе: 0 гостей, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |