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

Полигон-2

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

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

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

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

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

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

<<Назад  Вперед>> Страницы: 1 2 3 4 5 ... 11 12 13 14 15 16 17
Печать
 
Rio444
Гость


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


Ссылка


Дата регистрации на форуме:
14 сен. 2014
Win95 после запуска драйвера подхватила PS/2 мышь легко и непринужденно, причем ещё на этапе установки.
Rio444
Гость


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


Ссылка


Дата регистрации на форуме:
14 сен. 2014
Проверил на AMD 5x86-133@160.
Для 286 пришлось перекомпилировать. По умолчанию NASM компилирует под 386.
Проверил на 286-16. В том числе, в детурбированном режиме (производительность примерно 286-10).
В памяти занимает 1,1кб.
PS2SUPP rev.1.0.2
Надеюсь скачавшие используют по прямому назначению))))
i8088
Advanced Member


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


Ссылка


Дата регистрации на форуме:
30 янв. 2015
Поздравляю с написанием полезной программы!!

Осталось еще, что доделать, вопросы нерешенные итп?
Rio444
Гость


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


Ссылка


Дата регистрации на форуме:
14 сен. 2014
Спасибо!
Сейчас занимаюсь новым вариантом аппаратной части.
Схема та же, но в железе чтобы было более удобно и практично. Планирую сделать полностью на SMD элементах.
Пока основная загвоздка в миниатюрном 4-пиновом SMD разъёме, с шагом ~1,25мм. Надеюсь, найдётся на радиорынке.
Но гарантий никаких. Если у кого-то есть намётки, буду рад помощи.
Желательно, чтобы размер (вместе с ответной частью) не превышал 7х6х4мм (ШхГхВ).

Также есть пожелания, чтобы это работало в NT и других осях, которые не используют DOS, и нет возможности загрузить драйвер до загрузки оси.
Для меня это не очень актуально. Но, может со временем...
Самое простое решение видится в добавлении кода в загрузчик. Но пока не вникал.

Кстати, у большинства 286-х контроллер клавиатуры уже стоит в панельке. Модификация самая простая - остаётся только подкинуть Irq12.
На 386-х примерно в каждой 4-й или 5-й материнской плате. 486-е такие мне пока не попадались.
Ekb
Advanced Member


Всего сообщений: 1628
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 июня 2014
Предлагаю в первом посте написать то, что достигнуто + фотки. Иначе 8 страниц - не осилю читать :(
Rio444
Гость


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


Ссылка


Дата регистрации на форуме:
14 сен. 2014
ОК, постараюсь вечером сделать.
Rio444
Гость


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


Ссылка


Дата регистрации на форуме:
14 сен. 2014
Ekb написал:
[q]
Предлагаю в первом посте написать то, что достигнуто + фотки. Иначе 8 страниц - не осилю читать
[/q]
Наконец наступил этот "вечер", добавил в первый пост.
Rio444
Гость


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


Ссылка


Дата регистрации на форуме:
14 сен. 2014
Продолжаю свой блог :)

Вчера попробовал запустить на WinNT 3.51, добавив в MBR такой код:
  MBR HEX
  0000 E98D01                 jmp near 0190  
  ....
  ....
  0190 E4A1                   in al, A1
  0192 24EF                   and al, EF
  0194 E6A1                   out A1, al
  0196 B84000                 mov ax, 0040
  0199 8ED8                   mov ds, ax
  019B 800E100004             or byte ptr [0010], 04
  01A0 31C0                   xor ax, ax
  01A2 FA                     cli
  01A3 E95DFE                 jmp near 0003  

Он затирает командой JMP первые три байта MBR (FA 31 C0),
но перед возвратом их выполняет (строчки 01A2 и 01A0).
Код работает отлично - наличие мыши добавляется в список оборудования по адресу 0040:0010h,
размаскировывается прерывание Irq12 в PIC. Но мышь не работает(((
Думаю, либо надо все эти действия производить на этапе установки Win,
либо, всё таки, WinNT 3.51 использует какие-то службы BIOS. Например, перед загрузкой, ещё в реальном режиме,
инициализирует мышь службой C2 прерывания int 15h.
Завтра поэкспериментирую с Win95. Она точно подхватывает PS/2 мышь даже будучи полностью установленной.
Rio444
Гость


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


Ссылка


Дата регистрации на форуме:
14 сен. 2014
Поигрался вчера с Win95. Предполождения подтвердились.

Если исключить (или не включать) мышь в список оборудования по адресу 0040:0010h, то при загружке Win: "Мышь не обнаружена, COM мышь можете подключить прямо сейчас".

Если не размаскировать Irq12, то вроде всё нормально, мышь обнаруживается, Win загружается, но компьютер не реагирует ни на мышь, ни на клавиатуру. Выходной буфер 8042 заполняется, а освободать его некому. Irq12 не срабатывает, int 74h не вызывается.

Если "отключить" обработку Irq12 (int 74h), то мышь вполне себе работает. Что тоже логично. Было бы глупо, если бы Win из защищенного режима вызывала обработчик реального режима. То есть Windows полностью подменяет обработчик int 74h своим.
Правда, есть одно но. Если вы перезагрузите Windows в "режиме эмуляции MS-DOS", то штатный обработчик Windows работать не будет. Он работает только в защищенном режиме. Драйверы мыши тоже работать не будут.

Если отключить обработчик int 15h служб C200...C207, то происходит ровно тоже, что и в самом первом случае: "Мышь не обнаружена, COM мышь можете подключить прямо сейчас". Причем, Windows использует при загрузке все восемь служб, начиная с C200 и заканчивая C207. Если вместо любой из них поставить заглушку, возвращающую аппаратную ошибку мыши, то результат всегда одинаков.

Возвращаясь к вопросу Win NT. Конечно выяснившиеся обстоятельства несколько затрудняют задачу. Но после MBR следуют как минимум несколько свободных, ни под что не используемых секторов (в моём случает 63 по 512кБ), так что есть, где развернуться))))
Если найдутся желающие - велкам в личку. Поделюсь всеми наработками.
Rio444
Гость


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


Ссылка


Дата регистрации на форуме:
14 сен. 2014
Переделал на SMD компонентах, полностью по приведенной выше схеме.
Залил эпоксидным клеем.
Толщина текстолита - 0,5мм.
Высота устройства в панельке на 1,5мм больше по сравнению с обычной микросхемой.
В принципе, можно уложиться в 1,0мм. Слишком много налил эпоксидки на шлейф.
Форма для заливки получается довольно сложной. Из-за того, что с наружной стороны ножки должны быть слегка оголены. А SMD элементы надо наоборот залить потолще.
Идально залить не получилось, поэтому после заливки пришлось дополнительно обработал "напильником". Из-за этого поверхность заливки не везде глянцевая.
Заодно доработал драйвер (ссылка в первом посте). Раньше при переходе из одной программы в другую изредка терялась последовательность чередования байтов в пакете от мыши. Курсор начинал "метаться" по экрану. С новой версией такой эффект поймать не удалось.







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

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

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

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