Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   Переделка АТ интерфейса клавиатуры в PS/2 на старых платах
RSS

Переделка АТ интерфейса клавиатуры в PS/2 на старых платах

Уровня 386-х, 486-х, чтобы можно было подключить PS/2 мышь.

<<Назад  Вперед>> Страницы: 1 2 3 4 5 6 7 8 9 10 * 11 12 13 14 15 16 17
Печать
 
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
MSB аббревиатуру я где-то встречал, поэтому и на автомате написал.
Сейчас не могу вспомнить где, наверно действительно main
Tronix
Advanced Member


Откуда: Москва
Всего сообщений: 1749
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2008
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
Ошибка оказалась простейшей!

Просто после изменения режима счетчика (даже если записывается тот же
режим, что был) нужно заново загрузить значения коэфф деления, у нас 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
i8088 написал:
[q]
хотя можно и работать в режиме hi/lo, не меняя режим на lo
[/q]
Думаю так гораздо проще. Ничего не менять, просто отбрасывать hi.

У меня прогресс. Программа пока не работает, зато уже не вешает комп))))
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
А кстати, можно не отбрасывать старший байт, тогда максимальная
задержка будет 55ms, и процедура будет более универсальной.
Но точность малых задержек будет хуже, тк процессору больше работы.
Rio444
Гость


Откуда: Ростов-на-Дону
Всего сообщений: 8632
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
14 сен. 2014
i8088 написал:
[q]
[/q]
Тогда лучше две процедуры.
Одна для малых задержек, другая для больших.

Если не трогать 043h, в каком порядке идут байты? Сначала Low, потом High?
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
Rio444 написал:
[q]
Если не трогать 043h, в каком порядке идут байты? Сначала Low, потом High?
[/q]
Да, но режим 0x36 все же стоит установить, тк нет гарантии, что какая-либо
программа/процедура не читала счетчик ранее, и могла оставит в состоянии,
когда первым (в нашей процедуре) будет MSB.

MSB/LSB обозначения можно узаконить, они упоминаются в официальной
Intel manual по 8253
Rio444
Гость


Откуда: Ростов-на-Дону
Всего сообщений: 8632
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
14 сен. 2014
i8088 написал:
[q]
MSB/LSB обозначения можно узаконить, они упоминаются в официальнойIntel manual по 8253
[/q]
У меня они ассоциируются с битами. Как по ссылкам
Tronix написал:
[q]
https://en.wikipedia.org/wiki/Most_significant_bit
https://en.wikipedia.org/wiki/Least_significant_bit
[/q]
Если Вам удобно, используйте их. Вас поймут.

i8088 написал:
[q]
Да, но режим 0x36 все же стоит установить, тк нет гарантии, что какая-либопрограмма/процедура не читала счетчик ранее, и могла оставит в состоянии,когда первым (в нашей процедуре) будет MSB.
[/q]
Да, тут надо будет что-то придумать.
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
Моя идея с отлавливанием запаздывания оказалась неверной, новый вариант попробовать
ловить изменение старшего байта если конечное значение положительно. Но очень много
команд, и после latch нужно заново ставить режим, чтобы заново началось изменение
счетчика (я все проверял на 8253). Надо еще подумать.

Кстати, loop цикл с выводом в LPT порт на IBM 5160 дает меандр
с длительностями импкльса и паузы примерно 11мкс.

Вообще может быть удобнее использовать канал 2, его можно останавливать (замемто
latch) через логику PPA (или ее аналог в AT)? Временно перепрограммировать на 65536,
а на выходе вернуть назад, но это увеличит задержку. Надо подумать.
Rio444
Гость


Откуда: Ростов-на-Дону
Всего сообщений: 8632
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
14 сен. 2014
Если только канал 2 уже ни для чего больше не используется.
<<Назад  Вперед>> Страницы: 1 2 3 4 5 6 7 8 9 10 * 11 12 13 14 15 16 17
Печать
Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   Переделка АТ интерфейса клавиатуры в PS/2 на старых платах
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS