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

Полигон-2

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

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

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

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

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

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

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


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


Ссылка


Дата регистрации на форуме:
30 янв. 2015
Предварительные соображения по поводу ISA платы - легче использовать готовый прошитый
8042, но надо как-то отключить клавиатурную часть, иначе потребуется сделать
модернизированную прошивку только для мыши. Ну и еще понадобятся дешифраторы и буфера,
здесь можно подсмотреть в доступных схемах не-чипсетных AT плат.

По поводу IRQ12 - никакого обработчика писать не требуется (этим занимается PS2 mouse
driver, а BIOS я думаю ставит просто IRET). BIOS просто запрещает выделение этого
прерывания для мыши (или всю mouse part), тк PS2 mouse необязательное устройство.
Поскольку это может быть чипсетозависимым, OS этим как правило не занимается.
Правильнее всего сделать option ROM (BIOS расширения), который выполнит эту работу.
Но можно обойтись программой или драйвером, которая разблокирует mouse part в контроллере
клавиатуры. Для DOS принципиальных проблем не вижу (на первый взгляд, по крайней мере).
Здесь можно попробовать помочь, только datasheet на старый PS2+mouse controller надо поискать.
Rio444
Гость


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


Ссылка


Дата регистрации на форуме:
14 сен. 2014
Anonymous написал:
[q]
Rio444 написал:
[q]
Истина где-то рядом(с) 7406.
[/q]
Это высоковольтовая, 30в (оно зачем надо?), полный аналог 7405 по выводам. 7407 - без инверсии, потому и написал о зависомости от версии прошивки.
[/q]
7406 - рекомендации производителей. В типовых схемах именно она. Хотя, наверное, можно поставить и 7405.

Anonymous написал:
[q]
Rio444 написал:
[q]
Как понял, главная загвоздка - поддержка биосом. Если поддерживает, то всё ОК. Если нет - нужно писать свой обработчик прерывания от мыши. Насколько понял, никто его ещё не написал.
[/q]
Все полноценные ОС используют после загрузки свой драйвер, биос после запуска ядра идёт отдыхать. Гляньте мою древнюю тему про оживление безбиосной промплатки.
[/q]
Возможно, начиная с Windows NT. Win9x использует прерывания Bios.
Rio444
Гость


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


Ссылка


Дата регистрации на форуме:
14 сен. 2014
i8088 написал:
[q]
По поводу IRQ12 - никакого обработчика писать не требуется (этим занимается PS2 mousedriver, а BIOS я думаю ставит просто IRET).
[/q]
Всё не так просто. При "срабатывании" IRQ12, через прерывание Bios вызывается обработчик, которой уже вызывает драйвер мыши.
Для иниализации этого обработчика вызывается другое прерывание, через которое назначается адрес драйвера мыши.

i8088 написал:
[q]
Здесь можно попробовать помочь, только datasheet на старый PS2+mouse controller надо поискать.
[/q]
Даташиты: HT6542B, VT82C42, Intel 87C42.
Если мало, ещё найду.
Rio444
Гость


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


Ссылка


Дата регистрации на форуме:
14 сен. 2014
Контроллер определяет, в каком режиме он работает (АТ или PS/2) по схеме включения. Для остальной части компьютера режим работы контроллера значения не имеет. Разве что, в режиме АТ невозможна работа мыши PS/2. Клавиатура работает одинаково в обоих режимах.
Подключение контроллера в режиме АТ (из даташита на VT82C42):

В режиме PS/2:
i8088
Advanced Member


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


Ссылка


Дата регистрации на форуме:
30 янв. 2015
Rio444 написал:
[q]
Всё не так просто. При "срабатывании" IRQ12, через прерывание Bios вызывается обработчик, которой уже вызывает драйвер мыши.
[/q]
Спасибо!

Нашел в исходниках Award, что Вы имели ввиду.

ifndef\tNO_PS2_MOUSE_SUPPORT
;*****************************************************************************
; Procedure Name:\tsubf_07
;\tDevice driver far call initialization
;\tSet INT74 far call address with ES:BX and set far call flag (27:b.7)
;\tAssume always no error occur
; Saves:
; Inputs:\tbp_seg (ES)\t= device driver routine segment
;\t\tbp_offset (BX)\t= device driver routine offset
; Output:\tnone
; Destroy:\tax
; Author:\tKen Chen
; Date: \t06/21/90
;
; Rev\t| Name\t| Date\t\t| TPR#\t| Description
; ------+-------+---------------+-------+-------------------------------------
; 1.00\t| Ken\t|\t\t| NEW\t| Initial revision
;
;*****************************************************************************

SUBF_07 \tPROC\tNEAR
\t\tmov\tax,bp_seg
\t\tmov\tword ptr ds:fcsegment,ax
\t\tmov\tax,bp_offset
\t\tmov\tword ptr ds:fcoffset,ax
\t\tor\tbyte ptr ds:pdflg_2,ddfcflg
\t\tjmp\tsucc_00 \t\t\t; successful
SUBF_07 \tENDP

;*****************************************************************************
; Procedure Name:\twait_ack
;\tlong loop to get the mouse response for system's command
; Saves:
; Inputs:\tnone
; Output:\tbp_flag : cf = 0 : no error
;\t\t\t cf = 1 : error
;\t\tbp_errcode (AH) = 00 : no error
;\t\t\t\t= 03 : interface error
;\t\t\t\t= 04 : resend
;\t\tzf = 1 : acknowledge received
;\t\tzf = 0 : error occur
; Destroy:\tax
; Author:\tKen Chen
; Date: \t06/21/90
;
; Rev\t| Name\t| Date\t\t| TPR#\t| Description
; ------+-------+---------------+-------+-------------------------------------
; 1.00\t| Ken\t| 06/21/90\t| NEW\t| Initial revision
;
;*****************************************************************************

WAIT_ACK\tPROC\tNEAR
\t\tpush\tcx
wait_ack1:
\t\txor\tcx,cx
wait_oaf_loop:
\t\tpush\tcx
\t\textrn\tout_aux_full:near
\t\tcall\tout_aux_full
\t\tpop\tcx
\t\tjnz\tshort get_ack
\t\tloop\tshort wait_oaf_loop
\t\tjmp\tshort wa_error_03\t; time out
get_ack:
\t\tin\tal,data8042
\t\tcmp\tal,ackcode\t\t; check acknowledge code
\t\tje\tshort wa_suc
chk_rsnd_code:
\t\tcmp\tal,rscode\t\t; check resend code
\t\tjne\tshort chk_error_code
\t\tmov\tbp_errcode,04
\t\tjmp\tshort wa_error
chk_error_code:
wa_error_03:
\t\tmov\tbp_errcode,03
wa_error:
\t\tand\tbyte ptr ds:pdflg_1,0f0h
\t\tor\tbp_flag,01\t\t; set carry flag
\t\tjmp\tshort wa_ret
wa_suc:
\t\tmov\tbp_errcode,00
\t\tand\tbp_flag,0fffeh\t\t; clear carry flag
wa_ret:
\t\tpop\tcx
\t\tor\tbp_errcode,0\t\t; affect ZF
\t\tret
WAIT_ACK\tENDP

;*****************************************************************************
; Procedure Name:\tget_data
;\treceive data from mouse if Auxiliary device Output Buffer Full
; Saves:
; Inputs:\tnone
; Output:\tzf = 1 : no data received
;\t\tzf = 0 : successful
;\t\t\tal = data byte received
; Destroy:\tah
; Author:\tKen Chen
; Date: \t06/21/90
;
; Rev\t| Name\t| Date\t\t| TPR#\t| Description
; ------+-------+---------------+-------+-------------------------------------
; 1.00\t| Ken\t| 06/21/90\t| NEW\t| Initial revision
;
;*****************************************************************************

GET_DATA\tPROC\tNEAR
\t\tpush\tcx
\t\txor\tcx,cx
gd_loop:
\t\tpush\tcx
\t\tcall\tout_aux_full\t\t; check AOBF
\t\tpop\tcx
\t\tjnz\tshort receive_data
\t\tloop\tshort gd_loop
\t\tjmp\tshort gd_ret
receive_data:
\t\tin\tal,data8042
gd_ret:
\t\tpop\tcx
\t\tret
GET_DATA\tENDP
endif\t;NO_PS2_MOUSE_SUPPORT


Нужно еще размаскировать вход 8259 и поставить новый вектор (mouse.asm).

datasheet-ы посмотрю.
Rio444
Гость


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


Ссылка


Дата регистрации на форуме:
14 сен. 2014
i8088, круто! Откуда исходники?
Посоветуйте хорошую книгу по программированию на ассемблере.
В частности, чтобы было рассказано, как писать TSR программы.
i8088
Advanced Member


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


Ссылка


Дата регистрации на форуме:
30 янв. 2015
Я их нашел в свободном доступе уже не помню где
Вот ссылки
https://yadi.sk/d/_Z5f_1AO3Nmihf
https://yadi.sk/d/GYol8Y5_3NmiXg

Книга по программированию мне больше всего нравится Джордейна
Справочник Программиста Персональных компьютеров типа IBM PC XT и AT

И Нортона - Персональный Компьютер фирмы IBM и Операционная система
MS-DOS (в ней правда про TSR мало).

Книга Лео Скенлона Програмирование на языке Ассемблера (там про TSR тоже правда нет)

Книги мои бумажные, но найти в сети я думаю можно

PS. Мышиный вопрос меня озадачил, не думал что такие сложности там.
Как говорится - век живи век учись, а помирать все равно дураком:)
Mihail1810
Advanced Member


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


Ссылка


Дата регистрации на форуме:
8 дек. 2014
Господа, если все так сложно, не проще сделать com-ps2 конвертер и не париться? Вот тут все есть - http://www.vogons.org/viewtopic.php?f=46&t=42862
Rio444
Гость


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


Ссылка


Дата регистрации на форуме:
14 сен. 2014
Mihail1810 написал:
[q]
Господа, если все так сложно, не проще сделать com-ps2 конвертер и не париться? Вот тут все есть - http://www.vogons.org/viewtopic.php?f=46&t=42862
[/q]
Это даже здесь есть http://www.phantom.sannata.ru/...amp;st=all
Но, как писал выше
[q]
Работать, работает, но всё равно часть информации теряется. Это как кинопленку переписывать на видеокассету. Разные форматы, разные носители, частота кадров, цветовой охват.Хочется, так сказать, нативно.
[/q]
Mihail1810
Advanced Member


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


Ссылка


Дата регистрации на форуме:
8 дек. 2014
Звиняйте. Диагональное чтение подвело. Ну а есть же уже отовые платы isa на ps/2 mouse, они работают как то или нет на старых системах?
<<Назад  Вперед>> Страницы: 1 2 * 3 4 5 6 .. 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