Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Переделка АТ интерфейса клавиатуры в PS/2 на старых платах |
<<Назад Вперед>> | Страницы: 1 2 * 3 4 5 6 .. 12 13 14 15 16 17 | Печать |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
Rio444 написал: Все полноценные ОС используют после загрузки свой драйвер, биос после запуска ядра идёт отдыхать. Гляньте мою древнюю тему про оживление безбиосной промплатки. Как понял, главная загвоздка - поддержка биосом. Если поддерживает, то всё ОК. Если нет - нужно писать свой обработчик прерывания от мыши. Насколько понял, никто его ещё не написал. Rio444 написал: Есть же планарные 8742... В варианте на картинке получается довольно толстый "бутерброд". Rio444 написал: Это высоковольтовая, 30в (оно зачем надо?), полный аналог 7405 по выводам. 7407 - без инверсии, потому и написал о зависомости от версии прошивки. Истина где-то рядом(с) 7406. |
Rio444
Гость
Откуда: Ростов-на-Дону Всего сообщений: 8632 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 сен. 2014 |
IdeaFix написал: Скорее всего не получится. Там смысл в замене контроллера без поддержки PS/2 на контролер с поддержкой. По поводу конструктива - можно же и не выпаивать ничего - напаять соплей с тыльной стороны платы или вовсе сделать "накладку" с тыльной стороны И часть сигналов в принципе по-другому идёт. То есть, надо будет не только добавлять, но и перерезать какие-то дорожки. |
IdeaFix |
NEW! Сообщение отправлено: 15 октября 2017 18:04
Ну, я далее просто зритель и/или покупатель... по делу ничего сказать не могу |
Сейчас на форуме |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
Rio444 написал: А в этом и смысл, мышка ps/2 и клавиатура работают через одни регистры, у них только прерывание различается. Там смысл в замене контроллера без поддержки PS/2 на контролер с поддержкой. |
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 написал: 7406 - рекомендации производителей. В типовых схемах именно она. Хотя, наверное, можно поставить и 7405. Rio444 написал:Это высоковольтовая, 30в (оно зачем надо?), полный аналог 7405 по выводам. 7407 - без инверсии, потому и написал о зависомости от версии прошивки. Истина где-то рядом(с) 7406. Anonymous написал: Возможно, начиная с Windows NT. Win9x использует прерывания Bios. Rio444 написал:Все полноценные ОС используют после загрузки свой драйвер, биос после запуска ядра идёт отдыхать. Гляньте мою древнюю тему про оживление безбиосной промплатки. Как понял, главная загвоздка - поддержка биосом. Если поддерживает, то всё ОК. Если нет - нужно писать свой обработчик прерывания от мыши. Насколько понял, никто его ещё не написал. |
Rio444
Гость
Откуда: Ростов-на-Дону Всего сообщений: 8632 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 сен. 2014 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 15 октября 2017 20:09 Сообщение отредактировано: 15 октября 2017 20:15
i8088 написал: Всё не так просто. При "срабатывании" IRQ12, через прерывание Bios вызывается обработчик, которой уже вызывает драйвер мыши. По поводу IRQ12 - никакого обработчика писать не требуется (этим занимается PS2 mousedriver, а BIOS я думаю ставит просто IRET). Для иниализации этого обработчика вызывается другое прерывание, через которое назначается адрес драйвера мыши. i8088 написал: Даташиты: Здесь можно попробовать помочь, только datasheet на старый PS2+mouse controller надо поискать.HT6542B, VT82C42, Intel 87C42. Если мало, ещё найду. |
Rio444
Гость
Откуда: Ростов-на-Дону Всего сообщений: 8632 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 сен. 2014 |
Контроллер определяет, в каком режиме он работает (АТ или PS/2) по схеме включения. Для остальной части компьютера режим работы контроллера значения не имеет. Разве что, в режиме АТ невозможна работа мыши PS/2. Клавиатура работает одинаково в обоих режимах. Подключение контроллера в режиме АТ (из даташита на VT82C42): В режиме PS/2: |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Rio444 написал: Спасибо! Всё не так просто. При "срабатывании" IRQ12, через прерывание Bios вызывается обработчик, которой уже вызывает драйвер мыши. Нашел в исходниках 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 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 15 октября 2017 20:45 Сообщение отредактировано: 15 октября 2017 20:48
i8088, круто! Откуда исходники? Посоветуйте хорошую книгу по программированию на ассемблере. В частности, чтобы было рассказано, как писать TSR программы. |
<<Назад Вперед>> | Страницы: 1 2 * 3 4 5 6 .. 12 13 14 15 16 17 | Печать |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Переделка АТ интерфейса клавиатуры в PS/2 на старых платах |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |