Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Переделка АТ интерфейса клавиатуры в PS/2 на старых платах |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 6 7 8 9 10 * 11 12 13 14 15 16 17 | Печать |
Tronix
Advanced Member
Откуда: Москва Всего сообщений: 1749 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 15 янв. 2008 | |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 3 ноября 2017 22:22 Сообщение отредактировано: 3 ноября 2017 22:35
Ошибка оказалась простейшей! Просто после изменения режима счетчика (даже если записывается тот же режим, что был) нужно заново загрузить значения коэфф деления, у нас 65536, соответственно записываем 0 Из исходников IBM \tMOV\tAL,36H\t\t\t; SEL TIM 0,LSB,MSB,MODE 3 \tOUT\tTIMER+3,AL\t\t; WRITE TIMER MODE PEG \tMOV\tAL,0 \tOUT\tTIMER,AL\t\t; WRITE LSB TO TIMER 0 REG \tOUT\tTIMER,AL\t\t; WRITE MSB TO TIMER 0 REG Пока это не сделать, соответствующий счетчик будет стоять. По окончанию задержки обязательно восстановить исходный hi/lo режим, хотя можно и работать в режиме hi/lo, не меняя режим на lo IBM тоже использует обозначения LSB/MSB применительно к байтам! |
Rio444
Гость
Откуда: Ростов-на-Дону Всего сообщений: 8632 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 сен. 2014 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 4 ноября 2017 0:32 Сообщение отредактировано: 4 ноября 2017 0:33
i8088 написал: Думаю так гораздо проще. Ничего не менять, просто отбрасывать hi. хотя можно и работать в режиме hi/lo, не меняя режим на lo У меня прогресс. Программа пока не работает, зато уже не вешает комп)))) |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 4 ноября 2017 9:13 Сообщение отредактировано: 4 ноября 2017 9:16
А кстати, можно не отбрасывать старший байт, тогда максимальная задержка будет 55ms, и процедура будет более универсальной. Но точность малых задержек будет хуже, тк процессору больше работы. |
Rio444
Гость
Откуда: Ростов-на-Дону Всего сообщений: 8632 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 сен. 2014 |
i8088 написал: Тогда лучше две процедуры. Одна для малых задержек, другая для больших. Если не трогать 043h, в каком порядке идут байты? Сначала Low, потом High? |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Rio444 написал: Да, но режим 0x36 все же стоит установить, тк нет гарантии, что какая-либо Если не трогать 043h, в каком порядке идут байты? Сначала Low, потом High? программа/процедура не читала счетчик ранее, и могла оставит в состоянии, когда первым (в нашей процедуре) будет MSB. MSB/LSB обозначения можно узаконить, они упоминаются в официальной Intel manual по 8253 |
Rio444
Гость
Откуда: Ростов-на-Дону Всего сообщений: 8632 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 сен. 2014 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 4 ноября 2017 10:07 Сообщение отредактировано: 4 ноября 2017 10:09
i8088 написал: У меня они ассоциируются с битами. Как по ссылкам MSB/LSB обозначения можно узаконить, они упоминаются в официальнойIntel manual по 8253 Tronix написал: Если Вам удобно, используйте их. Вас поймут. https://en.wikipedia.org/wiki/Most_significant_bit i8088 написал: Да, тут надо будет что-то придумать. Да, но режим 0x36 все же стоит установить, тк нет гарантии, что какая-либопрограмма/процедура не читала счетчик ранее, и могла оставит в состоянии,когда первым (в нашей процедуре) будет MSB. |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 4 ноября 2017 20:20 Сообщение отредактировано: 4 ноября 2017 20:22
Моя идея с отлавливанием запаздывания оказалась неверной, новый вариант попробовать ловить изменение старшего байта если конечное значение положительно. Но очень много команд, и после latch нужно заново ставить режим, чтобы заново началось изменение счетчика (я все проверял на 8253). Надо еще подумать. Кстати, loop цикл с выводом в LPT порт на IBM 5160 дает меандр с длительностями импкльса и паузы примерно 11мкс. Вообще может быть удобнее использовать канал 2, его можно останавливать (замемто latch) через логику PPA (или ее аналог в AT)? Временно перепрограммировать на 65536, а на выходе вернуть назад, но это увеличит задержку. Надо подумать. |
Rio444
Гость
Откуда: Ростов-на-Дону Всего сообщений: 8632 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 сен. 2014 |
Если только канал 2 уже ни для чего больше не используется. |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Rio444 написал: Штатно он в основном для диагностического speaker используется. Если только канал 2 уже ни для чего больше не используется. |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 6 7 8 9 10 * 11 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 тем | |