Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Переделка АТ интерфейса клавиатуры в PS/2 на старых платах |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 6 7 .. 12 13 14 15 16 17 | Печать |
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 программы. |
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 написал: http://www.vogons.org/viewtopic.php?f=46&t=42862Это даже здесь есть Господа, если все так сложно, не проще сделать com-ps2 конвертер и не париться? Вот тут все есть - http://www.phantom.sannata.ru/...amp;st=all Но, как писал выше Работать, работает, но всё равно часть информации теряется. Это как кинопленку переписывать на видеокассету. Разные форматы, разные носители, частота кадров, цветовой охват.Хочется, так сказать, нативно. |
Mihail1810
Advanced Member
Откуда: Екатеринбург Всего сообщений: 1565 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 дек. 2014 |
Звиняйте. Диагональное чтение подвело. Ну а есть же уже отовые платы isa на ps/2 mouse, они работают как то или нет на старых системах? |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Да, там можно по отдельности отключать прерывание IRQ12 и саму mouse part of controller . Для проверки аппаратной части устройства можно использовать FreeBSD. |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 6 7 .. 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 тем | |