Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Переделка АТ интерфейса клавиатуры в PS/2 на старых платах |
<<Назад Вперед>> | Страницы: 1 2 3 * 4 5 6 7 .. 12 13 14 15 16 17 | Печать |
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. |
Bobo
Advanced Member
Откуда: СПб Всего сообщений: 3628 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 авг. 2007 |
Mihail1810 написал: боюсь что нет Ну а есть же уже отовые платы isa на ps/2 mouse на pci есть |
Rio444
Гость
Откуда: Ростов-на-Дону Всего сообщений: 8632 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 сен. 2014 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 16 октября 2017 10:49 Сообщение отредактировано: 16 октября 2017 10:55
i8088 написал: Это как? Можно поподробнее? Да, там можно по отдельности отключать прерывание IRQ12 и саму i8088 написал: Фряха биос полностью игнорирует? Для проверки аппаратной части устройства Что можно поставить на iDX2-66(@80), память 8Мб? Могу расширить до 16 или 32Мб. Bobo написал: Для ISA есть только Bus Mouse. Внешне похожа, но совсем не то. Сейчас встречаются очень редко и в основном шариковые. Mihail1810 написал:боюсь что нет Ну а есть же уже отовые платы isa на ps/2 mouse На PCI есть, но для рассматриваемых платформ это не актуально. 486-ю материнку с PCI можно найти и с поддержкой PS/2 мыши. На 386 и 486-х VLB это только брендовые материнки для горизонтального корпуса с райзером. У меня есть даже 286-я такая материнка. |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Rio444 написал: NOTE: two bits in the command byte controls the operation of the aux port Это как? Можно поподробнее? (mouse port): the aux port disable bit (bit 5) and the aux port interrupt (IRQ 12) enable bit (bit 2) Rio444 написал: Не то чтобы полностью, но можно заставить игнорировать. Например, Фряха биос полностью игнорирует? цитата из psm.c версии 8.4 (с которой пишу) \t/* \t * The PnP BIOS and ACPI are supposed to assign an IRQ (12) \t * to the PS/2 mouse device node. But, some buggy PnP BIOS \t * declares the PS/2 mouse device node without an IRQ resource! \t * If this happens, we shall refer to device hints. \t * If we still don't find it there, use a hardcoded value... XXX \t */ Для 486 удобнее всего версия 4.11 - с одной стороны достаточно современная (и легкая в установке), с другой стороны вполне работает на 16MB RAM. И можно ставить даже на 386, хотя это неоптимально, но работает. Я правда никогда ранее не вдавался в работу мышей (ну Вы это уже поняли, но общие соображения таковы. |
<<Назад Вперед>> | Страницы: 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 тем | |