Подключение внутренних Hayes-совмести- мых модемов к Спектруму. ------------------------------------------ Для начала хочу сказать пару слов по по- воду всего нижеследующего. В принципе, эта схема уже не раз публиковалась, но... Но ведь не у каждого есть Питерская электрон- ная газета ZX-News, в 15-м номере которой была аналогичная статья. И уж тем более не каждый имеет доступ к эхоконференции ZX.SPECTRUM в сети Фидонет. А потому, мы взяли на себя смелость донести до вас этот материал, дорогие читатели. Тем более, что здесь же мы расскажем о тех тонкостях подключения, с которыми сами столкнулись. COPYRIGHT на схему контроллера принадле- жит Михаилу Кондратьеву. Автор статьи, под впечатлением от которой написана эта - Игорь Груздев. В первых же строках хочу ещё раз развеять миф о том, что нормально hayes-совместимый модем можно подключить только к Скорпиону. Ничего подобного! Просто на системном разъёме Скорпиона уже выведены все необхо- димые сигналы, а вот владельцам, например, Пентагонов придётся самим их протянуть. Причём, ещё неизвестно кому повезло боль- ше, владельцам Скорпиона или Пентагона - "пентагонщикам" не надо собирать схему, блокирующую внутренние порты компьютера. Да и согласование внутреннего и внешнего сигналов /NMI в Скорпионе выполнено немно- го неудачно (по крайней мере, для этой схемы подключения). Итак, меньше слов, ближе к делу. Для реализации контроллера внутреннего (!!!) HAYES-совместимого модема вам понадобятся три микросхемы и 8-10 резисторов. Микрос- хемы: DD1 - ЛЛ1, DD2 - ЛН1, DDЗ - ТМ2. Се- рия любая, хоть 1533-я, хоть 555-я, прин- ципиального значения это не имеет. Резис- торы любого номинала в интервале от 1 до 15 кОм. Как видите, схема довольно проста. C ле- вой стороны приведены названия сигналов и номера контактов (A - верхний ряд, В - нижний) для Скорпиона, с правой - Hayes- совместимого модема. На 1-й вход триггера (DDЗ) через резистор 1 КОм следует подать +5В для более надёжной работы схемы. Для запитывания микросхем на их 14- й вывод необходимо подать +5В, а на 7-й - землю. Как видно из схемы, контроллер произво- дит дешифрацию всего лишь по одному адрес- ному сигналу - A4, а между тем, полный его адрес - #xEF. Поэтому, если у вас Скор- пион или любой другой компьютер, у которо- го при дешифрации внутренних портов не анализируется сигнал A4, то вам надо ещё собрать и схемку формирования сигнала /IORQGE, котурую вы можете найти в этом же номере, в статье о подключении C-DOS моде- ма. Входными сигналами для этой схемы бу- дут: /IORQ и A4, выходным - /IORQGE. Теперь о том, как будет выглядеть рас- пайка слота модема и системного разъёма комьютера (номера контактов даны для Скор- пиона: A - верх, В - низ: на модеме: верх - верхняя часть платы, где расположены все микросхемы, нумерация контактов слота начинается со стороны разъёма для телефон- ной линии и дальше вдоль модема): Скорпион Модем ┌------┬---┐ ┌---┬------┐ │A 8 │A26│----> │A31│ A 0 │ │A 9 │В27│----> │A30│ A 1 │ │A10 │A27│----> │A29│ A 2 │ │D 0 │A6 │----> │A9 │ D 0 │ │D 1 │A7 │----> │A8 │ D 1 │ │D 2 │A8 │----> │A7 │ D 2 │ │D 3 │A11│----> │A6 │ D 3 │ │D 4 │A12│----> │A5 │ D 4 │ │D 5 │A10│----> │A4 │ D 5 │ │D 6 │A9 │----> │A3 │ D 6 │ │D 7 │A3 │----> │A2 │ D 7 │ │ │ │ │A28│ A 3 │ -┐ │ │ │ │A27│ A 4 │ │ на │ │ │ │A26│ A 5 │ │ +5В │ │ │ │A25│ A 6 │ │через │ │ │ │A24│ A 7 │ │3-10К │ │ │ │A23│ A 8 │ │ │ │ │ │A22│ A 9 │ -┘ │ │ │ │A21│ A10 │ -┐ на │ │ │ │A20│ A11 │ -┘ землю │ │ │ │A11│ AEN │ на землю │ +5v │В3 │----> │В3 │ +5v │ -->│ +12v │В17│----> │В9 │ +12v │ -->│ -12v │A16│----> │В7 │ -12v │ -->│ -5V │A18│----> │В5 │ -5v │ │ GND │A30│----> │В1 │ GND │ │ GND │В30│----> │В31│ GND │ (*)│/IORQG│В13│-│н │ │ │ │ │/RESET│В20│-│а │ │ │ │ │ /RD │A18│-│ │ │ │ │ │ A4 │В24│-│п │ │ │ │ │/IORQ │A17│-│л │-│В2 │ RESET│ │ /WR │A19│-│а │-│В14│ IOR │ │ A11 │В28│-│т │-│В13│ IOW │ │ /NMI │A14│-│у │-│В24│ IORQ4│ └------┴---┘ └---┴------┘ сигнал сигнал Обозначения слева: --> - подвести сигнал к системному разъ- ёму. (*) - только для компьютеров, в которых необходимо блокировать внутренние порты (сигнал /IORQGE). Сам модем надо настроить на СОМ1, что соответствует адресу #3F8 и запросу на прерывание IORQ4. О том, какими перемычка- ми это можно сделать, читайте в инструкции по вашему модему. Ну вот, теперь сделать осталось совсем немного - чуть-чуть доработать ваш компь- ютер. Во-первых. Надо реализовать нормальное согласование сигналов /NMI, получаемых с системного разъёма (если у вас на разъёме его нет - выведите) и от схемы Magic- кнопки. Делается это добавлением всего лишь одной микросхемы 5SSЛИ1 (или любой другой серии). Для этого около процессора перережьте дорожку, ведущую к его 17-му контакту, и в разрыв вставьте логический элемент "И" (К5SSЛИ1), ко второму входу которого подведите сигнал /NMI с системно- го разъёма. Изменения будут выглядеть сле- дующим образом: ┌------- │ 17│ ------┬---х-----┬--┤ Z80 │ 1┌---┐ │ │ └--┤& │3 │ │ /NMI 2│ ├--┘ │ ---------┤ │ └------ └---┘ Во-вторых. Если у вас не Пентагон и не Профи, и при дешифрации внутренних портов не принимает участие сигнал A4 (например, в Скорпионе контроллер модема будет конфликтовать с внутренним портом #FF), то вам надо позаботиться о том, чтобы вывес- ти на системный разъём сигнал /IORQGE. Ес- ли у вас его нет, то, опять же, читайте про это в статье о подключении C-DOS моде- ма - вам надо будет добавить на плату все- го лишь один резистор. В-третьих. Отрицательные напряжения для модема. Один из самых больных вопросов, потому как, если на разъёме вашего модема данные контакты задействованы, то подавать на них соответствующее напряжение ОБЯЗА- ТЕЛьНО !!! Т.е., например, если у модема задействованы контакты В5 (-5v) и В7 (-12v), то надо обязательно подводить эти напряжения. Если у вас IBM'овский блок пи- тания, то там все эти напряжения есть, и вы можете не волноваться. В-четвёртых. Самый-самый больной вопрос - исправление ошибки в ПЗУ. Как, наверное, многим известно, в стандартном ПЗУ-48 со- держится грубейшая ошибка в процедуре обработки немаскируемого прерывания. По адресу #006D вместо команды JR Z,#70 (коды #28 #01), находится команда JR NZ,#70 (коды #20 #01). По идее, это должно рабо- тать так: при приходе немаскируемого пре- рывания процессор запускает процедуру по адресу #66, которая берёт вектор (адрес) процедуры обработки из ячейки #5CB0: если в этой ячеке 0, т.е. вектор не определён, то управление возвращается прерванной про- грамме: если же вектор определён, то осу- ществляется переход по нему. В следствии ошибки, переход на вектор осуществляется именно тогда, когда он не определён т.е. равен 0. В результате компьютер сбрасы- вается. К нашему великому сожалению, есть только один способ исправить эту ошибку - переп- рошить ПЗУ-48. Впрочем, некоторые програм- мы не используют немаскируемое прерывание от модема, но именно поэтому они, как го- ворится, "не используют на полную" катуш- ку все возможности hayes-совместимых моде- мов. А потому, наш вам совет: постарайтесь найти возможность и перепрошить свою ПЗУ'шку. Хотя, если вы владелец Скорпиона, с версией теневого монитора 2.95 и выше, то у вас эта ошибка уже исправлена. Ну вот, модем мы подключили, а как те- перь проверить его. Для этого, раздобудьте какую-нибудь терминальную программу, кото- рая работает с данной реализацией контрол- лера, и запустите её. Например, терминалку под IS-DOS, написанную самим Михаилом Кондратьевым. Для проверки связи между компьютером и модемом включите в модеме режим эха (пере- дайте модему команду АТЕ1), хотя, обычно, в больщинстве модемов этот режим включен по умолчанию. При этом модем будет возра- щать каждый посланный ему байт. Если связь без сбоев, то на экране каждый вводимый вами символ будет продублирован (один с клавиатуры, второй - эхо от модема). Сле- дует также помнить, что в некоторых терми- налках (например, в терминалке by Alex Globa под IS-DOS) отключен режим вывода вводимых символов, и все символы, которые выводятся на экран - эхо модема. Здесь ещё проще - если, допустим, вы нажали клавишу "I", а появилась буква Q, то это непра- вильно, а вот если I - всё нормально. Вот, в принципе и всё. Теперь для вас открыты двери в увлекательный мир BBS, электронных сетей и прочих чудес техноло- гии. Вы сможете скачать у вашего друга IBM'щика любой файл. Вы сможете получить доступ к IBM'овским BBS, а если повезёт, то и к узлам сети FidoNet. И уж точно вы получите доступ к органи- зующеся сейчас в Самаре Спектрум-Сети на hayes-совместимых модемах. Ну и напоследок, для тех,кому интересно, как работает контроллер. Выборка портов модема осуществляется при A4=0, при этом сигналы A8-A10 задают один из семи регистров модема. Но... Но, как видно из схемы, в этом принимает участие и ещё один адресный сигнал - A11. Он не участвует напрямую в выборке модема, он лишь задаёт состояния ключа прерываний, собранного на основе тригера DDЗ. При за- писи в любой регистр модема, ключ прини- мает состояние линии A11. И зачем всё это? - спросите вы. А вот зачем. При закрытом ключе (5-й вывод DDЗ = 1), на выходе контроллера - входе компьютера сигнал /NMI всегда равен 1, независимо от состояния модемного сигнала IORQ4. Т.е. импульсы запроса прерывания, генерируемые модемом, никогда не попадут на компьютер. При записи в регистр при A11=0 ключ открывается и состояние сигнала /NMI нап- рямую зависит от IORQ4. При RESETe компь- ютера ключ опять закрывается. Таким образом, адреса регистров модема определяются маской: F Е D C В A 9 8 7 6 5 4 3 2 1 0 ------------------------------- х х х х 1 r r r 1 1 1 0 1 1 1 1 - 0EF-7EF х х х х 0 r r r 1 1 1 0 1 1 1 1 - 8EF-FEF х - состояние не учитывается. r - соответствующий разряд трёхбитного номера регистра модема. Вот. Вот теперь всё. Собирайте, подклю- чайте и наслаждайтесь. (C) Евгений Милун MUSIC ВУ : MARKET SOFT -════════════════════════════════════════- * * *