Шина ISA, доступ из винды
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: Шина ISA, доступ из винды
К чему всё это? Диапазона 0000-03FF для самодельных плат не хватает?
Re: Шина ISA, доступ из винды
Я когда делал устройство на шину ISA, это была плата ввода - вывода, руководствовался книгой - Новиков_Калашников_Гуляев "Устройства сопряжения с персональным компьютером". Забросил эту книжку и ещё несколько по теме на http://www.onlinedisk.ru/file/860921/ Успехов!
P.S. Кстати работал я с этой платой в среде визуального программирования LabView - классная штука, советую. Работал в Win XP, не требовались дополнительные драйвера. Там есть компонеты In Port, Out Port, их вполне достаточно.
P.S. Кстати работал я с этой платой в среде визуального программирования LabView - классная штука, советую. Работал в Win XP, не требовались дополнительные драйвера. Там есть компонеты In Port, Out Port, их вполне достаточно.
-
TripleKill
- Вымогатель припоя
- Сообщения: 671
- Зарегистрирован: Вт июн 29, 2010 12:31:49
Шина ISA, где и как найти её адрес в компе?
Здравствуйте.
Я уже создавал похожую тему, думал туда дописать, но не могу найти её в поиске.
Дело вот какое. Есть комп с материнкой Chaintech 7AJA2. На ней имеется один разъём ISA.
1). Хотел бы попробовать до него из WinXP достучаться. Знаю, что система не разрешает программам прямое обращение к портам. PortTalk поможет решить проблему?
2). Как же всё-таки найти адрес шины в памяти? В прошлый раз, если не ошибаюсь, мне говорили, что она сидит в неком диапазоне, но уже не помню точных цифр. Как найти этот диапазон?
Вот скрин из диспетчера устройств, если поможет:

3). Допустим, адресное пространство шины я нашёл. Теперь как мне задать адрес, как вывести/считать данные? У адреса и данных различные поддиапазоны в адресном пространстве шины, или как-то по-другому? Просто в книжках написано много о том, в каком порядке должны срабатывать сигналы, когда адреса выставлять, но ни слова о том, КАК это сделать. Ну или я литературу не ту смотрю...
4). Тот же вопрос про спецсигналы: MEMW, MEMR и др. Как мне устанавливать/считывать их?
5). Ещё б кода пример поглядеть, может есть у кого? Можно и на асме.
Спасибо.
Сюда перенес.
aen
Я уже создавал похожую тему, думал туда дописать, но не могу найти её в поиске.
Дело вот какое. Есть комп с материнкой Chaintech 7AJA2. На ней имеется один разъём ISA.
1). Хотел бы попробовать до него из WinXP достучаться. Знаю, что система не разрешает программам прямое обращение к портам. PortTalk поможет решить проблему?
2). Как же всё-таки найти адрес шины в памяти? В прошлый раз, если не ошибаюсь, мне говорили, что она сидит в неком диапазоне, но уже не помню точных цифр. Как найти этот диапазон?
Вот скрин из диспетчера устройств, если поможет:

3). Допустим, адресное пространство шины я нашёл. Теперь как мне задать адрес, как вывести/считать данные? У адреса и данных различные поддиапазоны в адресном пространстве шины, или как-то по-другому? Просто в книжках написано много о том, в каком порядке должны срабатывать сигналы, когда адреса выставлять, но ни слова о том, КАК это сделать. Ну или я литературу не ту смотрю...
4). Тот же вопрос про спецсигналы: MEMW, MEMR и др. Как мне устанавливать/считывать их?
5). Ещё б кода пример поглядеть, может есть у кого? Можно и на асме.
Спасибо.
Сюда перенес.
aen
-
petrenko
- Друг Кота
- Сообщения: 5321
- Зарегистрирован: Вт фев 21, 2012 13:51:55
- Откуда: Начинающий
- Контактная информация:
Re: Шина ISA, где и как найти её адрес в компе?
Извините, но Вы "прикалываетесь" что ли ?...
Или действительно не знаете, что по определению обзывается словом "шина" ?
"Шина" есть (грубо говоря) всего навсего некое количество проводников.
Где в программной оболочке и как Вы собираетесь увидеть медные проводники ?
А ещё в шину ISA входит также и провод с напряжением +5вольт( см. описание ISA ) - какой адрес по Вашему будет у пятивольтового провода ?
"Спец( ! )-сигналы : MEMW, MEMR "..
"Пацталом ат смехов".
Простите, конечно, что так реагирую на Вашу мало-информированность, не обижайтесь, но Вам настоятельно советую "учить матчасть"*.
Это никакие не "спец-", а нормальные электрические сигналы управления записью в память и чтением из памяти...
Управлять ими как выводами порта не получится, ибо это не выводы порта вводо-вывода - если непонятно, что это значит - см.*.
Поисковые машины ( запрос == " назначение контактов ISA " выдаст что то вроде этого ) Вам в помощь !
Или действительно не знаете, что по определению обзывается словом "шина" ?
"Шина" есть (грубо говоря) всего навсего некое количество проводников.
Где в программной оболочке и как Вы собираетесь увидеть медные проводники ?
А ещё в шину ISA входит также и провод с напряжением +5вольт( см. описание ISA ) - какой адрес по Вашему будет у пятивольтового провода ?
"Спец( ! )-сигналы : MEMW, MEMR "..
Простите, конечно, что так реагирую на Вашу мало-информированность, не обижайтесь, но Вам настоятельно советую "учить матчасть"*.
Это никакие не "спец-", а нормальные электрические сигналы управления записью в память и чтением из памяти...
Управлять ими как выводами порта не получится, ибо это не выводы порта вводо-вывода - если непонятно, что это значит - см.*.
Поисковые машины ( запрос == " назначение контактов ISA " выдаст что то вроде этого ) Вам в помощь !
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Re: Шина ISA, где и как найти её адрес в компе?
Да, шина это, действительно, набор проводников и у него не может быть адресного пространства.
А то, что указано на рисунке - это устройство, сидящее на этой шине.
Чтобы доступиться до физического устройства по шине (в данном случае ISA), надо идентифицировать и сконфигурировать каждое физическое устройство, сидящее в каждом физическом слоте.
Эти регистры для этого.
Вот для прочтения:
http://life-prog.ru/view_shpargalkiCompStroi.php?id=20
А то, что указано на рисунке - это устройство, сидящее на этой шине.
Чтобы доступиться до физического устройства по шине (в данном случае ISA), надо идентифицировать и сконфигурировать каждое физическое устройство, сидящее в каждом физическом слоте.
Эти регистры для этого.
Вот для прочтения:
http://life-prog.ru/view_shpargalkiCompStroi.php?id=20
-
TripleKill
- Вымогатель припоя
- Сообщения: 671
- Зарегистрирован: Вт июн 29, 2010 12:31:49
Re: Шина ISA, где и как найти её адрес в компе?
petrenko писал(а):Где в программной оболочке и как Вы собираетесь увидеть медные проводники ?
Никакие медные проводники я видеть не собирался. И спасибо за ссылку, но назначение выводов посмотреть не проблема.
Я всего лишь хотел узнать, как из программы управлять состоянием этих проводников, т.е. адреса/регистры, задающие состояние, например, адресных выводов.
Про 5 вольт Вы, конечно, сильно сказали, но я не настолько туп. Да и назначение "спец(!)-сигналов" мне тоже известно, но рад, что дал Вам повод для веселья.
Хорошо, я понял, что не могу управлять нормальными электрическими сигналами управления записью в память и чтением из памяти напрямую, т.е. нет выделенных регистров для управления состоянием этих сигналов? Тогда, если не трудно, поясните, каким образом их состояние изменяется? У меня пока только одна мысль - какая-то жёсткая логика. Например, при записи в адрес 0279 автоматически срабатывает некая последовательность сигналов управления. Не так?
Шурики писал(а):Вот для прочтения
Спасибо, действительно полезная информация. По поводу идентификации и конфигурации: а что, если в слоте ничего не сидит? В этом случае нельзя сигналами подёргать?
Вот, например, написано:
Программа конфигурирования проверяет данные, возвращаемые во время всех пар циклов чтения, и побитно собирает идентификатор. Если при переборе нескольких возможных адресов не удается считать корректного идентификатор, то принимается решение об отсутствии карт PnP в системе (вообще или с неназначенным CSN).
Это, как я понимаю, происходит при загрузке? Т.е. для того, чтобы система поняла, что слот не пустой, нужно что-то возвращать компьютеру? В противном случае что-то отправить или прочитать по шине не получится?
UPD. Вот картинку нагуглил.

А ещё книгу, откуда, кажется, отрывок по Вашей ссылке приведён.
http://dfiles.ru/files/sk4os2bzw
Изучаю. Надеюсь, многие вопросы сами собой отпадут.
-
petrenko
- Друг Кота
- Сообщения: 5321
- Зарегистрирован: Вт фев 21, 2012 13:51:55
- Откуда: Начинающий
- Контактная информация:
Re: Шина ISA, где и как найти её адрес в компе?
*_Мысль у Вас правильная. Она самая - жёсткая логика.TripleKill писал(а):.. Тогда, если не трудно, поясните, каким образом их состояние изменяется? У меня пока только одна мысль* - какая-то жёсткая логика. Например, при записи в адрес 0279 автоматически срабатывает некая последовательность сигналов управления. Не так** ?
...
Изучаю. Надеюсь, многие вопросы сами собой отпадут***.
"Подёргать"( опять этот ужасающий жаргон.. ) не получится, ибо, как я уже сказал, это не есть управляемый порт ввода-вывода.
**_Именно так. Как Вы и просите, поясняю : Жёсткая логика работает следующим образом : при выполнении команды возможно требуется считывание из памяти или запись в память или считывание из порта или запись в порт, тогда управляющий микрокод ( который в свою очередь получился при дешифрации кода команды ) подключает в нужной последовательности те транзисторы, которые сформируют электрические сигналы MEMW или MEMR или IOR или IOW а также электрические сигналы на шине адреса( они определят однозначно и жёстко конкретную ячейку памяти или конкретный порт в/в ), а потом произведут выдачу или приём данных из/в процессор(а) в/из шин(у/ы) данных.
***_Вот это правильно. "Учить матчасть" всегда полезно. Удачи.
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Re: Шина ISA, доступ из винды
Я делал устройство ввода/вывода для ISA шины. Только это было 15 лет назад 
Алгоритм построения подобной платы следующий: вовсе необязательно следовать полной спецификации и даже лепить ISAPnP, для обмена достаточно простейшей операции чтения/записи в память или порт ввода/вывода. Нужно только быть уверенным, что данный диапазон памяти или ввода/вывода физически больше никем не используется. Для памяти сейчас это точно не так и обмен через механизм чтения/записи в память через ISA с её ограничением в 16 мегабайт адресного пространства практически невозможен, но через порты ввода/вывода можно вполне работать и сейчас. Никаких "регистров состояния" и других прочих управляющих регистров в ISA нет, когда то это фактически было продолжение процессорной шины и корнями уходит в MULTIBUS и MICROBUS. Т.е. если программа, любая, и в Windows тоже (если у неё есть доступ к этому диапазону адресов) что-то читает или пишет по любому заданному адресу памяти (из диапазона первых 16 мегабайт) , или в заданный порт (а там ограничение на 10/12 бит адреса), то эти данные сразу будут на шине, и у адаптера задача дешифровать адрес по сигналу BALE (для портов ввода/вывода нужно также учитывать состояние AEN), и если он совпал, то выставить или считать данные с шины, в зависимости от MemRD/MemWR или IORD/IOWR.
Максимальная скорость работы в таком режиме - 4 или 8 МБ/сек ( в зависмости от того, используется 8разрядный или 16разрядный режим)
Широко известные ISA POST Card именно так делают - просто тупо слушают весь вывод в порт 0x80 и выводят его на индикатор. А BIOS в этот порт тупо что-то пишет, независимо от того, есть ли в машине хоть что-то слушающее этот порт.
А вот на PCI этот фокус уже не проходит, там, чтобы на шине хоть что-то появилось, нужно сначала пройти фазу конфигурации и сообщить, что именно и где мы хотим послушать.
Алгоритм построения подобной платы следующий: вовсе необязательно следовать полной спецификации и даже лепить ISAPnP, для обмена достаточно простейшей операции чтения/записи в память или порт ввода/вывода. Нужно только быть уверенным, что данный диапазон памяти или ввода/вывода физически больше никем не используется. Для памяти сейчас это точно не так и обмен через механизм чтения/записи в память через ISA с её ограничением в 16 мегабайт адресного пространства практически невозможен, но через порты ввода/вывода можно вполне работать и сейчас. Никаких "регистров состояния" и других прочих управляющих регистров в ISA нет, когда то это фактически было продолжение процессорной шины и корнями уходит в MULTIBUS и MICROBUS. Т.е. если программа, любая, и в Windows тоже (если у неё есть доступ к этому диапазону адресов) что-то читает или пишет по любому заданному адресу памяти (из диапазона первых 16 мегабайт) , или в заданный порт (а там ограничение на 10/12 бит адреса), то эти данные сразу будут на шине, и у адаптера задача дешифровать адрес по сигналу BALE (для портов ввода/вывода нужно также учитывать состояние AEN), и если он совпал, то выставить или считать данные с шины, в зависимости от MemRD/MemWR или IORD/IOWR.
Максимальная скорость работы в таком режиме - 4 или 8 МБ/сек ( в зависмости от того, используется 8разрядный или 16разрядный режим)
Широко известные ISA POST Card именно так делают - просто тупо слушают весь вывод в порт 0x80 и выводят его на индикатор. А BIOS в этот порт тупо что-то пишет, независимо от того, есть ли в машине хоть что-то слушающее этот порт.
А вот на PCI этот фокус уже не проходит, там, чтобы на шине хоть что-то появилось, нужно сначала пройти фазу конфигурации и сообщить, что именно и где мы хотим послушать.
-
Mickle
- Поставщик валерьянки для Кота
- Сообщения: 2337
- Зарегистрирован: Чт сен 09, 2010 07:32:24
- Откуда: г. Рыбинск
Re: Шина ISA, доступ из винды
Мне кажется, лучше собрать несложный универсальный адаптер для ISA и эксперименты продолжить на нём
Хотя бы вот такой, аскетичный:

Понадобится 3 распространённые микросхемы: К155ЛН1, К155ЛА2 и КР580ВВ55. Установкой перемычки JP2 или JP1 выбирается базовый адрес (208h или 218h). Адаптер занимает в пространстве портов ввода-вывода 4 последовательных адреса: по смещению +0 находится порт А ВВ55, далее порты B и C, самым последним (смещение +3) - регистр управления режимом интерфейса. К примеру, для установки всех портов ВВ55 на вывод в регистр управления записываем 80h, на ввод - 9Ch.
Во времена массовых апгрейдов УЧПУ советских станков такой адаптер собирали буквально на коленке для замены перфоленточного фотосчитывающего устройства. К одному адаптеру подключали два станка. Работало на AT 286.

Понадобится 3 распространённые микросхемы: К155ЛН1, К155ЛА2 и КР580ВВ55. Установкой перемычки JP2 или JP1 выбирается базовый адрес (208h или 218h). Адаптер занимает в пространстве портов ввода-вывода 4 последовательных адреса: по смещению +0 находится порт А ВВ55, далее порты B и C, самым последним (смещение +3) - регистр управления режимом интерфейса. К примеру, для установки всех портов ВВ55 на вывод в регистр управления записываем 80h, на ввод - 9Ch.
Во времена массовых апгрейдов УЧПУ советских станков такой адаптер собирали буквально на коленке для замены перфоленточного фотосчитывающего устройства. К одному адаптеру подключали два станка. Работало на AT 286.
- Ariadna-on-Line
- Это не хвост, это антенна
- Сообщения: 1479
- Зарегистрирован: Вс май 13, 2012 00:01:54
Re: Шина ISA, доступ из винды
Пока комп включен, процессор непрерывно что-нибудь читает из памяти/портов ввода или пишет в них. Так уж он устроен. Поэтому линии IOR, IOW, MEMR, MEMW "дергаются" непрерывно и без вас. Можете прекрасно из своей программы пИсать/читать память/порт. И всё будет ОК. Только как осциллографом вы увидите СВОИ "рывки-дерки" на фоне дикой мешанины остальных? Вот для этого и требуется схема дешифратора адреса. За этим мутным названием скрывается обыкновенный двоичный 10-12 разрядный компаратор, в котором сигнал IOR, IOW, MEMR, MEMW - тросто один из разрядов. Если компаратор у вас устроен полноценно, тогда вы сможете установить любой адрес памяти или портов, выбрать режим слежения за записью или чтением и шпионить за программами без зазренья совести. Такие штуки называют "снифферами". Наверно от Сниф-сниф, Снаф-снаф и Снуф-снуф. В смысле свинское любопытство ;>)))