(c) LD, (c) DANGEROUS ZX-BUS. Окончание (возможно). Если первая часть данной статьи была весьма пространной и насыщенной эпитета- ми, то вторая будет весьма сухой и го- раздо более технической. Если вы, взвесив все за и против, реши- ли сделать из своего Спектрума нормаль- ный компьютер, то эта статья для вас. Для изготовления формирователя шины по- требуется несколько дешевых распростра- ненных микросхем. В выборе серии микро- схем всегда следует стремиться к более быстродействующей. Среди отечественных - оптимальный вариант серия 1533, но можно и 555. Не рекомендуем ставить микросхемы производства завода "Светлана" (серия 555, логотип в виде буквы "C" в кружоч- ке, либо вообще без логотипа), так как они самые ненадежные среди отечествен- ных. Вообще, постарайтесь отыскать им- портные аналоги, поскольку практика по- казала, что даже самая задрипанная им- портная микросхема надежнее новой оте- чественной (патриотизм здесь неуместен - ведь для себя делаете). Таблица соответствия используемых мик- росхем и их буржуйских аналогов приведе- на ниже: 15ЗЗАПб = 7ЧLS245, 7ЧALS245, 74F245 15ЗЗКП15 = 7ЧLS251, 7ЧALS251, 74F251 15ЗЗЛЕ1 = 7ЧLSO2, 7ЧALSO2, 74F02 Микросхемы АПб особенно часто встречают- ся в платах IBM ПЦ всех конфигураций... Поэтому, если у вас или ваших знакомых есть живая или мертвая плата 386 - смело выпаивайте АПб при помощи газовой плиты! Никаких панелек под микросхемы!!! Все должно быть припаяно намертво, иначе намаетесь со сбоями. Хотя, если сумеете раздобыть т.н. "цанговые" панельки - мо- жете смело их ставить; отказов в данном случае не будет. Около каждой м/с рекомендуем поставить блокировочный конденсатор 0.1 мкф. Около буферов (АПб) конденсаторы ставить обя- зательно! Слот для периферии такой, как в Скор- пионах и Каях - СНП-15-96, такой синий, с двухрядным расположением контактных ламелек. Использовать аналогичный им- портный разъем крайне не рекомендуем, поскольку его шаг между ламельками не соответствует отечественному стандарту. (вся периферия выпускается с шагом ламе- лек 2.5 мм, тогда как во всех импортных изделиях используется шаг 2.54 мм. На 30 контактов набежит 1.2 мм, и потребуется стать снайпером, чтобы умудриться по- пасть карточкой в раз'ем так, чтобы ни- чего не замыкалось. Так что ISA-раз'емы от любимой 386-платы не подойдут, и га- зовая плита здесь неуместна :) Отечественный разъем можно купить на рынке, или по почте у питерских ZX-фирм. Следует заметить, что этот разъем нес- колько длиннее, чем нужно, поэтому от него отрезается лишняя часть (которорую с успехом можно будет использовать для подключения дисковода). Вот схема шинного формирователя. Примечания к схеме. ------------------- 1. На схеме есть две шины сигналов, пер- вая (левая по схеме) есть шина микро- процессора (в ней присутствуют также сигналы, которые формируются внутрен- ними схемами компьютера); вторая (правая) есть внешняя шина, которая идет на периферийные устройства. Сигналы в обоих шинах называются оди- наково, только к сигналам, выходящим на внешние слоты, спереди дописана "." (точка). 2. Некоторые сигналы, входящие во внеш- нюю шину, являются внутренними для описываемого устройства, они не выво- дятся на разъем шины (DDIR, SКП, VC). 3. В столбце "pin" указан номер ножки микропроцессора Z80, для некоторых сигналов там стоит "-", указывающий, что данный сигнал формируется схемой окружения микропроцессора, для разных компьютеров она сделана по-разному. 4. Рядом со столбцом "pin" есть столбцы "name" и "bus", в них указаны имена сигналов (сокращенные) и номер кон- такта слота, соответствующий данному сигналу. 5. В качестве микросхем, входящих в дан- ное устройство, могут быть использо- ваны микросхемы серий К555 и КР1533, причем предпочтительнее второе. 6. Некоторые сигналы, выходящие на шину, не используются ни одним из существу- ющих периферийных устройств. Но это не означает, что они не нужны. Рынок периферии постоянно расширяется, и, вполне возможно, какие-то из этих сигналов будут использованы в даль- нейшем. К этим сигналам относятся: NMI, INT, BUSRQ, CROM, CRGE, RAS, DOS, DCGE. Часть этих сигналов ис- пользуется в контроллере SMUC, кото- рый подключается исключительно к Скорпионам, поэтому, если вы хотите его использовать, лучше развести все сигналы. Расположение контактов на стандартном слоте расширения. Как уже говорилось, слот представляет собой разъем СНП... В шине разъемы должны стоять таким обра- зом, чтобы все карты расширения были по- вернуты деталями в одну сторону. Рассто- яние между разъемами должно быть не ме- нее 3 см, иначе могут возникнуть габа- ритные конфликты между периферийными картами. Цоколевка ZXBUS-слотов такова, что сигналы ряда "A" должны подходить к разъемам так, чтобы возникло соединение с ламельками на периферийных картах, расположенными со стороны монтажа, а сигналы ряда "В" - с ламельками со сто- роны деталей. Для тех, кто не понял этой фразы - в соответствии со стандартом, на периферийных картах ламельки ряда "A" расположены на стороне монтажа , а ряда "В" - на стороне деталей. На разъеме нумерация контактов начина- ется слева направо, если держать разъем выводами вниз, линией "В" к себе. Замечания по конструкции. ------------------------- Если в вашей машине уже предусмотрен слот расширения (SCORPION, KAY), то за- дача подключения сводится к соединению входной (левой по схеме) шины устройства с шиной самого компьютера (контакт в контакт), при этом выходная шина уст- ройства (правая по схеме) становится ее эквивалентом и выводится на слоты рас- ширения. Для этих компьютеров в схему самой машины лезть не надо! Все необ- ходимое уже выведено на системную шину. Если у уже вас имеется расширитель шины by Скорпион, то можно расположить нашу схему на ней, предварительно удалив все тамошние микросхемы. Если ваш компьютер не имеет слота, вам нужно найти все сигналы, требуемые данным устройством, соединить их с левой (по схеме) шиной устройства, а правую (по схеме) шину устройства вывести на слоты. При этом необходимо использовать провода минимальной длины. Почти все сигналы, требуемые устройст- вом, снимаются непосредственно с ножек Z80, лишь некоторые придется сформиро- вать специально. К сигналам, требующим отдельного подхода, относятся: IORQ, IOGE, NMI, INT, BURQ WAIT, CROM, CRGE, RAS, DOS, DCGE. Сигнал DCGE актуален только для Ckopnu- она и Кая, владельцам остальных машин вместо него надо подать на устройство сигнал "общий" (GND). Как создать в вашем компьютере остальные сигналы, показано на рисунке: Примечания к этой схеме. Все резисторы - 360...430 ом. Под надписью "в схему ZX" подразумева- ется следующее. Есть нога микропроцессо- ра, допустим, первая по схеме - "WAIT". На схеме показано, что сигнал, идущий на эту ногу, должен быть перерезан (на схе- ме крестик). Далее на место разрыва впа- ивается резистор, в результате получает- ся сигнал "WAIT". Заметьте, этот сигнал берется прямо с ноги процессора. Т.о. на линию "WAIT" процессора идут лишь резис- тор да провод, соединяющий линию "WAIT" с расширителем шины. Аналогично с други- ми сигналами. Микросхемы ОЗУ - это микросхемы K5б5РУ5 или К5б5РУ7, установленные в вашем ком- пьютере. Сигнал DOS должен быть в каждой машине. Он может называться DOS, EDOS, DOSE, DOSEN, CSDOS, DCDOS или еще как-нибудь. Если вам не удалось найти такой сигнал на схеме, делаете так (если схемы нет вообще, отслеживаете дорожки на плате): в схеме окружения контроллера дисковода ищется м/с 1SSЛА2/5SSЛА2/15ЗЗЛА2/531ЛА2, ее восьмая нога должна идти на некую микросхему ТМ2 (возможно, между ЛА2 и ТМ2 стоит еще чего-нибудь). Один из вы- ходов этой ТМ2 и есть сигнал DOS. Есть еще способ поиска этого сигнала: во многих машинах он идет на 1 ногу м/с 27512 или участвует в выборке 27256, а также в комутации сигнала IORQ. Со схемой выборки ПЗУ (ROM) вашего ком- пьютера могут быть небольшие проблемы. Если в вашей машине установлена одна м/с 27512/27C512, то все просто, согласно схеме. Она сделана с некоторой избыточ- ностью, зато подойдет к любому варианту. Если в вашем компьютере несколько м/с ПЗУ (варианты: 2764, 27128, 27256, РФ2), то надо найти сигнал управления (CS или ОЕ), общий для всех ПЗУ, установленных в машине. Далее так, как показано ниже: там, где написано "так и было", подразу- мевает- ся "так и оста- вить". Резис- тор, как и преж- де, 360. ..430 ом Под сигналом "CS/ОЕ" подразумеваетя тот из этих сигналов, кторый оказался общим для всех микросхем ПЗУ. При этом сочета- ние микросхем ПЗУ не имеет значения (мо- жет, допустим, стоять м/с 27256 в компь- ютере и две 2764 или одна 27128 в конт- роллере, или еще как-нибудь). Полученные сигналы CROM и CRGE выводят- ся на раз'ем. О возможных глюках. --------------------- Если после подключения данного устрой- ства компьютер начал давать сбои, воз- можно, это связано с перегруженностью шин Z80 внутри самого компьютера; при этом дополнительная нагрузка в виде мик- росхем буферов переполнила чашу терпения микропроцессора. По паспорту, любой вы- ход Z80 обязан протянуть лишь один ТТЛ- вход; в большинстве Спектрумов он тянет до десятка... Если машина еще и "турбо", ситуация усугубляется. Выход один - заменить микропроцессор на более мощный/быстрый. Мы рекомендуем Z84C010PEC, подойдет и Z84C008 или 006, если таких добыть не удалось, подойдет и Z80Н (Z84008). В большинстве случаев при замене про- цессора не только пропадают частые глюки (машина не работает больше минуты), но и исчезают редкие (раз в неделю машина за- висает по непонятным причинам), т.е. по- вышается надежность компьютера. В заключение данной статьи приведем на- значение каждого сигнала стандатрной ZX-шины. Это может пригодиться как раз- работчикам периферии, так и всем, пости- гающим азы микропроцессорной техники. A0...A15 ADDRESS BUS 0 ... ADDRESS BUS 15 - выход. Шина адреса микропроцессора, 16 бит активный логический уровень - "1". Может находиться либо в состоянии вывода, либо в неактивном (высоко- импедансном, или третьем состоянии) по этой шине микропроцессор сооб- щает остальным схемам компьютера, с какой ячейкой памяти или с каким портом ввода/вывода он сейчас рабо- тает. D0...D7 DATA BUS 0 ... DATA BUS 7. вход/выход. Шина данных микропроцессора, 8 бит. активный логический уровень - "1". Может находиться в состояниях: ввод, вывод, неактивная. По этой шине микропроцессор прини- мает или передает байт в память или устройство ввода/вывода. RES RESET, сброс. Вход. Линия сброса микропроцессора. Активный логический уровень - "0". (это означает, что функция "сброс" активизируется тог- да, когда на этой линии будет "0"). при сбросе запрещаются прерывания и микропроцессор начинает выполнять программу с адреса #0000. NMI NON-MASKABLE INTERRUPT. Немаскируемое прерывание. Вход. Активный логический уровень - "0". Микропроцессор реагирует на переход из состояния "1" в состоя- ние "0" на этом входе. При этом внутренне генерируется команда CALL #0066, т.е. процессор начина- ет исполнять подпрограмму немас- кируемого прерывания, расположенную с адреса #0066. При этом текущий адрес исполнения основной программы сохраняется в стеке. В Спектруме на этот вход воздействует кнопка "MAGIC". INT INTERRUPT, прерывание. Вход. Активный логический уровень - "0". Анализируется на последнем такте каждой исполняемой команды. При обнаружении "0" выполняется преры- ваниее в соответствии с установлен- ным режимом прерывания (команды IM 0, IM 1, IM 2). Реакция на зап- рос прерывания может быть заблоки- рована командой DI и разрешена ко- мандой EI. BURQ BUSRQ, BUS REQUEST, запрос шины. Вход. Активный логический уровень - "0". При поступлении "0" на этот вход процессор завершает текущий машинный цикл (не более бти тактов) и переводит шину адреса, шину дан- ных и линии IORQ, MREQ, RD, WR в неактивное состояние, благодаря че- му внешнее устройство, выдавшее этот сигнал, может подключиться к шинам микропроцессора вместо него и обращаться к памяти и портам ввода/вывода напрямую, эмулируя микропроцессор. BACK BUSAK, BUS REQUEST ACKNOWLEDGE, Подтверждение запроса шины. Выход. Активный логический уровень - "0". Указывает устройству, пославшему BUSRQ, что шины свободны и можно к ним подключаться. WAIT Ожидание. Вход. Активный логический уровень - "0". Опрашивается один раз за машинный цикл и служит для "растягивания" этого цикла. Если, например, память не успевает выдать требуемые микропроцессором данные, диспетчер памяти должен выставить этот сигнал в "0", и процессор бу- дет ждать перехода в состояние "1", заморозив текущий цикл. Когда па- мять будет готова ка выдаче данных, ее диспетчер снимает сигнал WAIT, давая понять процессору, что данные готовы. М1 MACHINE CYCLE 1, выборка кода опе- рации из памяти. Выход. Активный логический уровень - "0". При вы- борке кода операции устанавливается в "0". При чтении префиксных команд (#FD #??, #DD ??, #ED ??, #СВ ??) Устанавливается дважды (трижды) за команду, сопровождая также чтение префикса. Также устанавливается в "0" при цикле подтверждения прерывания, одновременно с сигналом IORQ. RFSH REFRESH CYCLE, цикл регенерации. Выход. Активный логический уровень "0". Дает понять другим схемам компьютера, что в текущем цикле производится регенерация памяти и число на шине адреса - это адрес регенерации. HALT HALT STATE, состояние останова. Выход. Активный логический уровень "0". По команде "HALT" микропроцес- сор устанавливает "0" на этой линии и ожидает сигнал прерывания, кото- рый выведет его из состояния оста- нова и снимет этот сигнал. RD READ, чтение. Выход. Активный логи- ческий уровень - "0". Этим сигналом микропроцессор дает понять, что он читает память (совместно с MREQ) или читает порт (совместно с IORQ). WR WRITE, запись. Выход. Активный ло- гический уровень - "0". Этим сигна- лом микропроцессор дает понять, что он пишет в память (вместе с MREQ) или пишет в порт (вместе с IORQ). MREQ MEMORY REQUEST, запрос памяти. Выход. Активный логический уровень "0". Этим сигналом процессор сооб- щает, что он работает с памятью. IORQ INPUT/OUTPUT REQUEST, запрос ввода/ вывода. Выход. Активный логический уровень - "0". Этим сигналом про- цессор сообщает, что в данный мо- мент он работает с портами ввода/ вывода. Также этот сигнал устанавливается (совместно с М1) в цикле подтверж- дения маскируемого прерывания. IOGE IORQGE, иногда IORQCE. INPUT-OUTPUT GATE ENABLE, разреше- ние работы с внутренними портами ZX-SPECTRUM. Вход, на который внеш- нее устройство должно подавать туда либо "1", либо ничего не подавать (импеданс), например, через схемы "открытый коллектор", "открытый эмиттер", а также через м/с с "тре- тим состоянием". Внешнее устройство должно выставить "1" на этом входе, если оно видит, что процессор обращается к нему. Таким образом запрещается выборка внутренних портов ZX-SPECTRUM при обращении к порту, подключенному через шину, для устранения возмож- ной одновременной выборки. CROM CHIP SELECT ROM, выборка внутренне- го ПЗУ компьютера. Выход. Активный логический уровень - "0". Схема компьютера этим сигналом со- общает, что процессор читает память в адресах #0000...#ЗFFF, по которым в ZX-SPECTRUM находится ПЗУ. CRGE CSROMGE, иногда CSROMCE. CHIP SELECT ROM GATE ENABLE, разре- шение выборки внутреннего ПЗУ. Вход "открытый эмиттер". Логика работы аналогична сигналу IOGE. При активном сигнале CROM внешнее устройсво может выставить "1" на CRGE, таким образом запреща- ется работа с внутренним ПЗУ и уст- ройство может подставить компьютеру свою ПЗУ в качестве внутренней. Может быть использовано для подста- новки ПЗУ со своей программой обра- ботки кнопки "MAGIC". RAS ROW ADDRESS STROBE, ОЗУ-специфичный внутренний сигнал. Выход. При ис- пользовании должен быть буфериро- ван. Может быть использован как просто сигнал с частотой 3.5 МПц. DOS DCDOS, иногда EDOS или DOSEN. DOS ENABLE, выборка ДОС. Выход. Активный логический уровень - "0". Показывает, что в данный момент в качестве ПЗУ у процессора висит ПЗУ TR-DOS, а также откыты порты TR-DOS. При подключении периферий- ных устройств уровень "0" на этом выходе должен запрещать их активи- зацию, иначе ваше устройство может пересечься с портами TR-DOS. DCGE Хитрый Скорпион-специфичный сигнал. Указывает, что в данный момент вместо ПЗУ подключен 0-ой банк ОЗУ. +5V Питание. При подключении внешних устройств тянуть максимально тол- стым проводом. GND Обший провод. Также тянуть макси- мально толстыми проводами. ---------------------------------------- Небольшой АНОНС по разделу "HARDWARE" для следующих номеров. 1) Обмен с внешними устройствами. Комен- тарий к сигналу DDIR (направление данных) в схеме буфера шины. 2) Диаграммы работы Z80. Циклы, такты и т.п. информация. 3) Описание всех выпускающихся в СПб ма- шин и периферийных карточек с подроб- ным их анализом. 4) Описание логического пробника для цифровых ТТЛ-сигналов, позволяющего заглянуть в мир внутренних процессов компьютера, облегчающего поиск неисп- равностей, наладку собственных конст- рукций. Данный девайс в большинстве случаев успешно заменяет осциллограф, не говоря уже о тестере (естественно, применительно к цифровым сигналам). 5) Возможно, какие-либо статьи "для на- чинающих" о цифровой технике в свете подключения устройств к Спектруму, а также, возможно, и о самом Спектруме.