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

Полигон-2

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

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

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

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

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

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

<<Назад  Вперед>> Страницы: 1 2 3 * 4 5 6 7 .. 12 13 14 15 16 17
Печать
 
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, они работают как то или нет на старых системах?
i8088
Advanced Member


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


Ссылка


Дата регистрации на форуме:
30 янв. 2015
Да, там можно по отдельности отключать прерывание IRQ12 и саму
mouse part of controller . Для проверки аппаратной части устройства
можно использовать FreeBSD.
Bobo
Advanced Member


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


Ссылка


Дата регистрации на форуме:
16 авг. 2007
Mihail1810 написал:
[q]
Ну а есть же уже отовые платы isa на ps/2 mouse
[/q]
боюсь что нет
на pci есть
Rio444
Гость


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


Ссылка


Дата регистрации на форуме:
14 сен. 2014
i8088 написал:
[q]
Да, там можно по отдельности отключать прерывание IRQ12 и саму
mouse part of controller .
[/q]
Это как? Можно поподробнее?

i8088 написал:
[q]
Для проверки аппаратной части устройства
можно использовать FreeBSD.
[/q]
Фряха биос полностью игнорирует?
Что можно поставить на iDX2-66(@80), память 8Мб? Могу расширить до 16 или 32Мб.

Bobo написал:
[q]
Mihail1810 написал:
[q]
Ну а есть же уже отовые платы isa на ps/2 mouse
[/q]
боюсь что нет
на pci есть
[/q]
Для ISA есть только Bus Mouse. Внешне похожа, но совсем не то. Сейчас встречаются очень редко и в основном шариковые.
На PCI есть, но для рассматриваемых платформ это не актуально. 486-ю материнку с PCI можно найти и с поддержкой PS/2 мыши.
На 386 и 486-х VLB это только брендовые материнки для горизонтального корпуса с райзером.
У меня есть даже 286-я такая материнка.
i8088
Advanced Member


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


Ссылка


Дата регистрации на форуме:
30 янв. 2015
Rio444 написал:
[q]
Это как? Можно поподробнее?
[/q]
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 написал:
[q]
Фряха биос полностью игнорирует?
[/q]
Не то чтобы полностью, но можно заставить игнорировать. Например,
цитата из 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 на старых платах
RSS

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

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

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