Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Переделка АТ интерфейса клавиатуры в PS/2 на старых платах |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | Печать |
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 байт, скачан: 18 раз) |
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 машинах |
Rio444
Гость
Откуда: Ростов-на-Дону Всего сообщений: 8632 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 сен. 2014 |
Приоритетно для машин 286, 386, 486-х. Если заработает на XT - не страшно, но и не принципиально. Для пентиумов не нужно, для них материнка без поддержки PS/2 - экзотика. Вообще, первая мысль была - использовать тупой цикл, со счетчиком. Вопрос только, где брать начальное значение счетчика? Оно будет зависеть от скорости процессора. Это начальное значение можно считать на этапе инициализации (т.е. только один раз). Но нужен какой-то таймер, который работает на всех вышеуказанных машинах, и работает одинаково. Возможно ли использовать канал 0, таймера 8253/8254 (он же - системный таймер)? Только не ждать, когда он "тикнет", а прочитать содержимое счетчика и подождать, когда оно уменьшится на 18 (см. выше пост pahan) - это и будут требуемые ~15мкс. |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Rio444 написал: На XT не заработает - там нет 8042 вообще. Если заработает на XT - не страшно, но и не принципиально. Rio444 написал: Канал 0 слишком медленно настроен (коэфф деления 65536), 1 тик ~54.9ms Возможно ли использовать канал 0, таймера 8253/8254 (он же - системный таймер)? Только не ждать, когда он "тикнет", а прочитать содержимое счетчика и подождать, когда оно уменьшится на 18 (см. выше пост pahan) - это и будут требуемые ~15мкс. Канал 1 подходит, но надо проверить, на всех ли 286-486 AT машинах его настройка одинакова? Если на всех машинах он настроен на 0x12h, то как раз один тик ~15mks |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 6 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 тем | |