Адаптер PS/2 мыши для шины ISA 8

Все, что не подходит под определение "старого софта и железа", обсуждается здесь
i8088
Advanced Member
Сообщения: 4383
Зарегистрирован: 30.01.2015,17:06
Откуда: г. Баку, Азербайджан

Конкурсы

Вклад в сообщество

Адаптер PS/2 мыши для шины ISA8

Сообщение i8088 » 12.06.2019,10:22

Rio444, спасибо!
Да, я тем же альбомом воспользовался, что XPOHOMETP ссылку дал.
У меня вообще плохо получается искать информацию, но этот альбом у меня уже был закачанный, alecv ссылку давал

В документации на 16450 OUT2 указана довольно туманно как: One of two user-programmable discrete outputs.
This output is controlled by writing to the OUT2 (bit 3) bit of the control register.

Однако в книге М. Гука - "Аппаратные средства IBM PC" я вчера (уже после отправки сообщения) нашел описание, что это бит IER.
Но то, что это делается внешней относительно UART схемой, не написано. Мне кажется, это скорее неписанное правило, использовать
OUT2 именно так

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

Вклад в сообщество

Адаптер PS/2 мыши для шины ISA8

Сообщение Rio444 » 12.06.2019,10:32

Да, скорее всего так и есть.
У меня тоже давно скачаны и этот альбом схем, и книга Гука.
Оставалось только догадаться, что там есть нечто, чего нет в многочисленных описаниях работы COM-порта и даташитах на 8250/16450/16550.
Я даже изучил Technical Reference на IBM XT (5160), и тоже не встречал там ничего об OUT2.
Электронка: Изображение копия Изображение

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

Вклад в сообщество

Адаптер PS/2 мыши для шины ISA8

Сообщение Rio444 » 12.06.2019,11:24

Перепрошил адаптер на COM3 (IRQ4/3E8h).
С включенными на мультикарте COM1 и COM2 вообще ни один драйвер мыши в DOS не заработал.
Либо даже не ищут мышь на COM3 (только COM1 и COM2), либо находят, но всё равно не работают.
Если отключить COM-порты на мультикарте, работает единственный драйвер - от IBM.
Проверял разные версии Cutemouse и ещё несколько от разных разработчиков.
Электронка: Изображение копия Изображение

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

Вклад в сообщество

Адаптер PS/2 мыши для шины ISA8

Сообщение Rio444 » 12.06.2019,13:45

XPOHOMETP, всё, я признаю, во всем виноват я. Приношу свои извинения за доставленные неудобства.*

*Вы поразительно напоминаете мне мою жену ;)
XPOHOMETP писал(а): 12.06.2019,13:44 Та самая настольная книга:
The IBM Personal Computer Technical Reference manual
(c) IBM 1981, 1982, 1983
Подскажите хоть, где скачать столь полезную книгу. Что-то ни фига не гуглится :(
Электронка: Изображение копия Изображение

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

Вклад в сообщество

Адаптер PS/2 мыши для шины ISA8

Сообщение Rio444 » 12.06.2019,15:05

XPOHOMETP, я пользовался "IBM PC XT Tecnical Reference"
Она легко гуглится. Например http://www.retroarchive.org/dos/docs/ibm5160techref.pdf и http://www.reenigne.org/crtc/PC-XT.pdf
Но что-то я там не нашел приведенных Вами строк.

Нашел я эти строки:
Bit 4: This bit provides a loopback feature for diagnostic testing of the
INS8250.
When bit 4 is set to logic 1, the following occur: the
transmitter Serial Output (SOUT) is set to the Marking (logic 1 ) state;
the receiver Serial Input (SIN) is disconnected; the output of the
Transmitter Shift Register is "looped back" into the Receiver Shift
Register input; the four MODEM Control inputs (CTS,DSR, RLSD,
and RI) are disconnected; and the four MODEM Control outputs
(DTR, RTS, OUT 1 , and OUT 2) are internally connected to the four
MODEM Control inputs. In the diagnostic mode, data that is
transmitted is immediately received. This feature allows the processor
to verify the transmit- and receive-data paths of the INS8250.

In the diagnostic mode, the receiver and transmitter interrupts are fully
operational. The MODEM Control Interrupts are also operational but
the interrupts' sources are now the lower four bits of the MODEM
Control Register instead of the four MODEM Control inputs. The
interrupts are still controlled by the Interrupt Enable Register.

The INS8250 interrupt system can be tested by writing into the lower
four bits of the MODEM Status Register.
Setting any of these bits to a
logic 1 generates the appropriate interrupt (if enabled). The resetting of
these interrupts is the same as in normal INS8250 operation. To return
to normal operation, the registers must be reprogrammed for normal
operation and then bit 4 of the MODEM Control Register must be reset
to logic 0.
И Вы знаете, совсем не очевидно, что именно процессор может писать в эти 4 бита.
Наоборот, из контекста я понял, что это делает сам контроллер 8250. Тем более везде, включая этот документ, регистр MSR обозначен как Read only. Никаких возможностей Write не упоминается.

То же самое касается выхода OUT2.
То, что при сброшенном бите OUT2 не работают прерывания вовсе не означает, что "выход IRQ отключается и переводится в Z-состояние".
Вы понимаете, что из первого не следует второе?
Поэтому я и проигнорировал использование OUT2. А если бы и не проигнорировал, всё равно не знал бы, как его правильно использовать, не изучив схему включения 8250 на мультикарте.
А чтобы эту схему изучать, надо знать что в ней ответ на вопрос. А чтобы знать, что в ней ответ на вопрос, надо её изучить ;)
Электронка: Изображение копия Изображение

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

Вклад в сообщество

Адаптер PS/2 мыши для шины ISA8

Сообщение Rio444 » 12.06.2019,16:01

XPOHOMETP писал(а): 12.06.2019,15:47 Первоисточник - National Semiconductor INS8250A.
Там Read only это RBR и IIR, а Write only - THR.
Покажите.
XPOHOMETP писал(а): 12.06.2019,15:47 В режиме тестов первоисточником событий может быть только процессор.
Как бы да. Но прочитайте внимательно. В режиме LOOP младшие 4 бита регистра MCR (куда может писать процессор) копируется в старшие 4 бита регистра регистр MSR. Изменения фиксируются в младших 4-х битах MSR. Что предполагает, что процессор может менять эти биты. Но косвенно, а не записывая их напрямую.
Электронка: Изображение копия Изображение

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

Вклад в сообщество

Адаптер PS/2 мыши для шины ISA8

Сообщение Rio444 » 12.06.2019,17:56

XPOHOMETP писал(а): 12.06.2019,16:57 Мне теперь за каждым pdf бегать? Так то у меня оно на винте давно есть...
INS8250
Страница 11, заголовок таблицы.
Да, увидел. Но знаете ли, чтобы это увидеть, надо знать, что оно там есть, причем, где именно.
И когда первый раз этот даташит смотрел, не заметил. И после Вашего поста не нашел, хотя искал уже целенаправленно.
Зато здесь, например, этот регистр однозначно описан, как Read only.
То же самое здесь http://housecomputer.ru/technology/inte ... -port.html
И ещё во множестве источников.
И абсолютно нигде не описано, что писать можно только в младшие 4 бита. Старшие меняет только сам контроллер 8250.
Электронка: Изображение копия Изображение

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

Вклад в сообщество

Адаптер PS/2 мыши для шины ISA8

Сообщение Rio444 » 14.06.2019,02:47

XPOHOMETP, большое спасибо за попытки помочь и особенно за ценный совет
XPOHOMETP писал(а): 14.06.2019,00:32 Подумать самому иногда тоже полезно
Спасибо кэп! ;)
Электронка: Изображение копия Изображение

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

Вклад в сообщество

Адаптер PS/2 мыши для шины ISA8

Сообщение Rio444 » 17.06.2019,00:18

Внезапно выяснилось, что после задействования OUT2 мышь перестала работать в Win 3.1, WinNT 3.51. В Win95 работает, но драйвер Logitech (3-кнопочный) с восклицательным знаком.
Откатил назад - всё заработало.
Какие будут мысли?
Электронка: Изображение копия Изображение

i8088
Advanced Member
Сообщения: 4383
Зарегистрирован: 30.01.2015,17:06
Откуда: г. Баку, Азербайджан

Конкурсы

Вклад в сообщество

Адаптер PS/2 мыши для шины ISA8

Сообщение i8088 » 17.06.2019,08:43

Rio444, я правильно понял, Вы добавили в прошивку Altera дополнительный
буфер с Z-state в цепь прерывания, управляемый соответствующим битом MCR?

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

Вклад в сообщество

Адаптер PS/2 мыши для шины ISA8

Сообщение Rio444 » 17.06.2019,08:56

i8088, именно так.
Причем в двух вариантах. Исходно я добавил бит OUT2 в цепь управления выхода с открытым стоком (open drain) - через логическое ИЛИ инвертированного OUT2. Т.е. когда OUT2 = 0, на входе ИЛИ единица и выходной транзистор всегда закрыт. Благодаря подтяжке к +5В на материнской плате, на выходе IRQ всегда лог. 1.
И такой вариант наиболее логичен, потому что питание у альтеры +3,3В.
Также попробовал вариант, как в стандартной схеме COM-порта - на выход подаётся лог. 1 или 0 через Z-буффер, управляемый OUT2. Ничего не изменилось.
По первому варианту повесил дополнительный подтягивающий резистор 2,2К на +5В (на плате стоит 10К) - то же самое.
Ещё несколько небольших модификаций также не помогли.
Без задействования OUT2 всё работает. С подключением - перестаёт. Помимо проблем в Win, нестабильно работает один из драйверов в ДОС (может найти мышь, может не найти). Другой драйвер стабилен. Все не проверял.
Электронка: Изображение копия Изображение

Ответить