говорится что нельзя, но помню девайсы работали. Надо проверить еще раз.A particular IRQ can only be assigned to one device. Two devices cannot have the same IRQ number or there will be a CONFLICT. If say two devices are assigned IRQ5 then the CPU will become confused; it will not know which of the two devices is trying to get it's attention when IRQ5 becomes active. This can cause your computer to hang.
Адаптер PS/2 мыши для шины ISA 8
Адаптер PS/2 мыши для шины ISA8
ZX/XT Самоделкин
Продам <- обновляю без апа, заходите.
Продам <- обновляю без апа, заходите.
- Rio444
- Почётный пользователь
- Сообщения: 26861
- Зарегистрирован: 14.09.2014,19:11
- Откуда: Ростов-на-Дону
-
Вклад в сообщество
Адаптер PS/2 мыши для шины ISA8
С программной точки зрения проблем никаких. Обработчики прерываний назначаются по цепочке. Каждый по очереди проверяет по дополнительным признакам, его ли это прерывание. Если не его, вызывает следующий обработчик.
Неразрешимые проблемы с аппаратной. И именно для разных плат на шине ISA.
Неразрешимые проблемы с аппаратной. И именно для разных плат на шине ISA.
Электронка: копия
Адаптер PS/2 мыши для шины ISA8
Согласен, надо освежить практику. Подозреваю что конфликт может быть при одновременном срабатывании прерываний от двух девайсов. Но даже в этом случае каскад обработчиков должен быть выполнен весь, даже если обработал свое устройство, это вероятно дело драйвера, меня больше интересует вопрос именно уровней на прерываниях, поскольку меня искушал соблазн навесить 13 на нижние 3-7 прерывания. Тоже и с DMA но там я вроде сделал некогда схему определения источника.
ZX/XT Самоделкин
Продам <- обновляю без апа, заходите.
Продам <- обновляю без апа, заходите.
-
- Advanced Member
- Сообщения: 4384
- Зарегистрирован: 30.01.2015,17:06
- Откуда: г. Баку, Азербайджан
-
Конкурсы
Вклад в сообщество
Адаптер PS/2 мыши для шины ISA8
Специально вытащил свой ISA USR - стоит на IRQ5 (выбор 2,3,4,5,7).
Так какой смысл, если одновременно не можем пользовать устройства?
И как будем разделять линию (от разных устройств) с учетом H-активности?
Как Вы отметили, тогда надо на каждом устройстве буфер с Z-состоянием городить, с
выделенным управлением. Как это сделать для встроенных COM портов?
PS. В целом, считаю дальнейшее обсуждение shared IRQ на ISA в рамках данной темы
не имеющим смысла, до нас уже все обсудили:)
- Rio444
- Почётный пользователь
- Сообщения: 26861
- Зарегистрирован: 14.09.2014,19:11
- Откуда: Ростов-на-Дону
-
Вклад в сообщество
Адаптер PS/2 мыши для шины ISA8
С моей стороны попытка была. Модифицировал прошивку так, что адаптер сажал на ноль IRQ только если прерывания были активированы в COM порте (там есть регистр IER, устанавливая биты в котором можно активировать прерывания по приходу данных, опустошению передающего буфера и т.п.). Так вот, сразу это не взлетело, даже если адаптер стоял один, без мультикарты. А дальше возиться с этим не стал.
Будет время, попробую ещё раз. Сейчас опыта уже больше.
Будет время, попробую ещё раз. Сейчас опыта уже больше.
Электронка: копия
-
- Advanced Member
- Сообщения: 4384
- Зарегистрирован: 30.01.2015,17:06
- Откуда: г. Баку, Азербайджан
-
Конкурсы
Вклад в сообщество
Адаптер PS/2 мыши для шины ISA8
Сомнительно, учитывая что в авторитетных книгах (М Гук) ясно пишется, что shared IRQ
на ISA в общем случае не работают
В LPT запрос вырабатывается по отрицательному перепаду сигнала ACK# если
разрешено аппаратное прерывание (CR4.1=1). И CR4.1 может и управлять буфером
Но как Вы будете делать это с COM, с его сложным разрешением прерываний?
- Rio444
- Почётный пользователь
- Сообщения: 26861
- Зарегистрирован: 14.09.2014,19:11
- Откуда: Ростов-на-Дону
-
Вклад в сообщество
Адаптер PS/2 мыши для шины ISA8
XPOHOMETP, согласен с Вами. Скорее всего это возможно. Т.е. два устройства могут "сидеть" на одном IRQ, но работать одновременно не могут.
IRQ использует либо одно, либо другое. Как подтверждение - настоящая мультикарта не опускает IRQ, пока, например, не будет запущен драйвер мыши.
У меня почему-то так не получилось. Возможно допустил какую-то ошибку.
Предлагаю прекратить споры. Попробую на днях ещё раз. О результатах сообщу.
Когда занимался прошивкой, не стал углубляться в этот вопрос. Были другие нерешенные, более важные.
IRQ использует либо одно, либо другое. Как подтверждение - настоящая мультикарта не опускает IRQ, пока, например, не будет запущен драйвер мыши.
У меня почему-то так не получилось. Возможно допустил какую-то ошибку.
Предлагаю прекратить споры. Попробую на днях ещё раз. О результатах сообщу.
Когда занимался прошивкой, не стал углубляться в этот вопрос. Были другие нерешенные, более важные.
Электронка: копия
-
- Advanced Member
- Сообщения: 4384
- Зарегистрирован: 30.01.2015,17:06
- Откуда: г. Баку, Азербайджан
-
Конкурсы
Вклад в сообщество
Адаптер PS/2 мыши для шины ISA8
Нашел схему адаптера на 16450! 74LS125 управляется с выхода OUT2 16450.
Discrete Output - Active Low - One of two user-programmable discrete outputs. This
output is controlled by writing to the OUT2 (bit 3) bit of the control register.
Это регистр MCR, бит IE. Те если запретить прерывания, то линия IRQ перейдет в Z-state.
Те, как Вы писали, если прерывания от UART запретить, то линия IRQ адаптера перейдет
в Z-state. Shared IRQ на ISA так конечно не получится, но поочередно устройства можно
использовать (но только при условии запрещения прерываний от ненужного в данный момент
устройства, а не просто его не-активности!). Или если одному из устройств прерывания не
требуется, можно ставить две карты. Спасибо за разъяснения!!
- Rio444
- Почётный пользователь
- Сообщения: 26861
- Зарегистрирован: 14.09.2014,19:11
- Откуда: Ростов-на-Дону
-
Вклад в сообщество
Адаптер PS/2 мыши для шины ISA8
i8088, а можно поподробнее? Желательно со схемой?
У регистра MCR нет бита IER. Там только DTR, RTS, OUT1 и OUT2.
Если для управления прерываниями используется "OUT2" - то это, блин, очередная недокументированная функция
Впрочем, смутно вспоминаю, где-то встречал, что для функционирования прерываний надо этот бит установить в "1". Но нигде не встречал объяснения почему, и как это работает.
У регистра MCR нет бита IER. Там только DTR, RTS, OUT1 и OUT2.
Если для управления прерываниями используется "OUT2" - то это, блин, очередная недокументированная функция
Впрочем, смутно вспоминаю, где-то встречал, что для функционирования прерываний надо этот бит установить в "1". Но нигде не встречал объяснения почему, и как это работает.
Последний раз редактировалось Rio444 11.06.2019,22:26, всего редактировалось 1 раз.
Электронка: копия
- Rio444
- Почётный пользователь
- Сообщения: 26861
- Зарегистрирован: 14.09.2014,19:11
- Откуда: Ростов-на-Дону
-
Вклад в сообщество
Адаптер PS/2 мыши для шины ISA8
i8088, в очередной раз восхищаюсь, как Вы умудряетесь давать столь полезные советы буквально только коснувшись темы!
Слева адаптер, справа COM порт мультикарты. Он на самом деле COM3, но биос нумерует порты по порядку, а COM2 отключен.
Здесь уже запущен драйвер мыши. Адаптер опустил IRQ4 на ноль. Поэтому второй порт уже не может дергать прерывания.
i8088, спасибо! Выяснен ещё один нюанс работы COM-порта.
Другая, обнаруженная мною недокументированная фича заключается в том, что младшие 4 бита регистра MSR можно не только читать, но и писать в них! Хотя об этом нигде нет даже малейшего упоминания!
Слева адаптер, справа COM порт мультикарты. Он на самом деле COM3, но биос нумерует порты по порядку, а COM2 отключен.
Здесь уже запущен драйвер мыши. Адаптер опустил IRQ4 на ноль. Поэтому второй порт уже не может дергать прерывания.
i8088, спасибо! Выяснен ещё один нюанс работы COM-порта.
Другая, обнаруженная мною недокументированная фича заключается в том, что младшие 4 бита регистра MSR можно не только читать, но и писать в них! Хотя об этом нигде нет даже малейшего упоминания!
Электронка: копия
- Rio444
- Почётный пользователь
- Сообщения: 26861
- Зарегистрирован: 14.09.2014,19:11
- Откуда: Ростов-на-Дону
-
Вклад в сообщество
Адаптер PS/2 мыши для шины ISA8
XPOHOMETP, не обижайтесь, но ни Вы, ни DonkeyHot ничего нового мне не сказали. А наводку на OUT2 дал именно i8088.
Вы конечно наверняка знали об OUT2 Но написали о своём знании только после i8088.
В любом случае, благодарен всем, кто участвовал в дискуссии и помог найти ответ.
Что касается
Да и попробуйте, найдите информацию о том, что
Вы конечно наверняка знали об OUT2 Но написали о своём знании только после i8088.
В любом случае, благодарен всем, кто участвовал в дискуссии и помог найти ответ.
Что касается
Зачастую неизвестно, где искать ответ. Именно в этом главная проблема.
Да и попробуйте, найдите информацию о том, что
Тогда, пожалуй, я признаю, что не умею искать информацию
Электронка: копия