Задался я как-то вопросом: почему у меня не идут некоторые программы, игры и демки, которые идут у моих друзей? После того, как было установлено, что эти косяки - не дефект перезаписи, не оставалось ничего, кроме как грешить на компьютер. О моем компьютере можно рассказать попод- робнее. Это когда-то был 48кБ спектрум - один из многочисленных клонов, как сказал Blast Off. В нем имелся AY-музпроцессор, но как-то по корявому подключенный. Где я его взял? А вот: Не было у меня Спектрума, а очень хоте- лось. Узнал я, что на площади Калинина есть фирма "МЕЗОН", и что там есть такой чувак Сергей Огальцов, который вроде бы может сделать Спек. Я созвонился с ним и, в общем, заказал 128кБ Спектрум. Он сказал, что будет комп называться "Форум". Мне бы- ло пофиг, лишь бы работало. В общем, О- гальцов переделал 48кБ в 128кБ. Через каких-то два месяца я наконец-то получил возможность купить это творение мастеров русских. На следующий же день я отвез его обратно, так как ALASM, загру- женный в комп, не реагировал на попытку поставить символы . , *, а debugger вообще при нажатии на любую кнопку издавал похот- ливые вопли и выводил вместо положенного символа набор пикселей, напоминающих что угодно, но не требуемый символ. На следующий день я снова забрал Спектрум домой - теперь в нем была прошивка ориги- нального 128кБ Спека. Правда, при этом клавиатура перестала быть расширенной, не стало русского встроенного фонта. Да кому они нужны? Теперь я мог рулить на полную катушку, но чем долше я рулил, тем больше обнаруживал программ, которые у меня не идут. Вначале это была часть "с бутылочкой" в LYRA II MEGADEMO. Она долго была единст- венной прогой, которая сбрасывалась после загрузки, но когда до Новосибирска стало доходить всякое новье, проблем у меня при- бавилось. Журнал Funeral 1 1/2 от Delirium Tremens, Melan#01 (их же газета) - cбрасывались при выводе картинки рабчего стола, Netwalk от FaceOff сбрасывался после прохождения пер- вого уровня, а в Nenwalk от Style Group не шли "авторы", после надписи "in" зависала демка Ecstatic, причем очень оригинально - музыка проигрывалась до конца, а на белой полоске бордюра, в зоне редактора, появля- лось сообщение "out of memory". Anamnesis сбрасывалась после первого сканирования мозга, Workstop вываливалась в 48 basic при светящейся надписи "stop", Шибенция после прохождения первого уровня устанав- ливала по всему экрану атрибуты ink7,paper 7 и при попытке отгадывать дальше нещадно висла. Wormworld вис после выбора "start game", а демка Funtasy от Oops cбрасыва- лась на третьем правиле дэмо-мэйкинга. Теперь-то я знаю, что перечисляю те про- ги, которые работают в режиме IM2 без пос- троения в памяти таблицы в 256 байт, в ко- торой указан адрес программы обработки прерывания. В начале я думал, что у меня какая-то РУшка "битая". Но, написав небольшую про- грамку было установлено, что "че в память положил, что оттеда и возьмешь". В какой-то книге я прочитал, что в цикле подтверждения прерывания шина должна со- держать байт #FF, т.к. в этот момент ее все устройства должны "отпустить", и т.к. она "притянута" к +5v. Я решил, что у меня шина не притянута к +5, и разобрал комп. Покопавшись в связках МГТФ'а я установил, что шина к +5 притяну- та и что у меня в компе линейка из восьми РУ7, т.е. 256кБ физически. Еще было видно, что Огальцов копался в подключении AY. Ну да ладно. Я стал испытывать свой комп разными тес- тами. Но все они, кроме теста в ESE1.4 и теста перед игрой Sq.Head, заявляли, что шина данных у меня стабильна. Как я взло- мал позже, тест в Sq.Head выдавал, что вектор прерывания = #00 потому, что просто считывал это число с 255 порта - порта ат- рибутов, и заверял, что у меня зато есть этот порт. (По этому тесту выходит, что в компе не может быть одновременно и век- тор #FF и порт атрибутов). Так я пребывал в неведении о параметрах моего компа, пока ко мне не попал TEST4.22 - это самый классный тест, который я знаю до сих пор. Вот он-то мне и выдал: "Шина данных нестабильна, в цикле подтверждения перывания засорена, возможно, неправильным подключением музпроцессора". Я тут же разобрал свой комп и выдернул AY из панельки. О чудо - все, что я пере- числял выше - пошло, и еще как! Двух мнений быть не могло - у меня непра- вильно подключен AY. Надо было что-то де- лать. Сперва я нарисовал схему, по которой он подключен. Вот она: 360 Ом ┌───┐ ┌───┐ /WR─┤ 1 │ /IORQ─███─┤ 1 │ ┌──┐ │ о──27 ┌──┐ │ о─┤ 1о─*─┤ │ ┌┤ 1o─┤ │ └──┘ │ └───┘ │└──┘ └───┘ │ ┌───┐ ┌───┐│ └─┤ 1 │ A1 ────┤ 1 ││ ┌──┐ │ о──29 ┌──┐│ o┘ A14┤ 1o──┤ │ A15┤ 1o┤ │ └──┘ └───┘ └──┘└───┘ В общем, не хотите проблем - не собирайте такую никогда. Мы как раз недавно познакомились с Костей aka DEBOSH и я решил сгонять за схемой подключения AY к нему - у него я видел целых два диска с доработками Спектрума. Вот такую схему привез я от него: ┌───┐ /WR ─┤ 1 │ │ о─27 /IORQ ┌───┐┌┤ │ ┌───┐ ─┤ 1 ││└───┘ A1 ──┤ 1 │ │ ├┘ │ ├───*─┤ │ ┌───┐ ┌─┤ │ │ └───┘ A15 ───┤ 1 │ │ └───┘ │ ┌───┐ │ ├─┘ └─┤ 1 │ A13 ───┤ │ ┌──┐ │ ├┐ └───┘ /M1 ┤ 1о─┤ ││┌───┐ └──┘ └───┘└┤ 1 │ ┌──┐ │ о─29 A14 ─┤ 1о─┤ │ └──┘ └───┘ В этой схеме анализировались еще и A13 и /M1, и я на это купился, к тому же, эту схему было несложно сделать из уже существующей. Я взялся за скальпель и па- яльник. AY молчал, как убитый. Тест его не нахо- дил, а автор статьи и этой схемы уверял, что так подключены все AY у них в городе. Короче, я решил собрать такую же схему, как в Scorpion 256 Turbo + 1996. Сразу скажу, что эта схема заработала, шина данных осталась стабильной, и вааще все было о.к. Вот эта схема, если кто не в курсе: ┌───────┐ ┌───────┐ п A0──1┤A0 DC │ /WR──1┤A0 DC o11─р A1──2┤A1 │ A14──2┤A1 │ о A5──3┤A2 │ A15──3┤A2 │ д н │ │ │ o9──о и /M1──6┤E1 │ +5v──6┤E1 │ л ж IORGE──5oE2 │ GND──5oE2 │ ж е ┌4oE3 o10────4oE3 o7──е │ └───────┘ └───────┘ н └──────────────────┐ и ┌───┐ ┌───┐ │ е DOS─9┤ & │ ┌12┤ & │ │ │ o8─┤ │ o11───┘ A1─10┤ │ └13┤ │ └───┘ └───┘ п НОГИ р ┌───┐ AY8910 AY8912 о ───1┤ & │ д │ o3──->27-> 18 о ┌─2┤ │ л ─┤ ├───┤ ->28-> 19 ж └─4┤ & │ е │ o6──->29-> 20 н ───5┤ │ и └───┘ е Можно использовать всего 3 микросхемы, если найдете нужные сигналы у себя на плате компа. Я же четвертый вывод первой ИД7 заземлил, так что два элемента и-не остались свободными, а сигнал IORQE у меня - /IORQ, включенный через резистор 360 Ом. Так же на 28 ногу AY8910 я просто подал +5v, а то вдруг оцифровки не будут играть. На схеме Скорпиона на шестую ногу первого дешифратора приходит M1, но, изла- зав всю схему, я так и не нашел элемента, который инвертирует /M1, должно быть, опе- чатка. И еще. На AY у меня висят такие потенциа- лы: AY8910 AY8912 потенц. 40 3 +5v 25 17 +5v 28 19 +5v 1 6 GND 24 не знаю ногу GND Один +5 и один GND - это питание, а ос- тальное - не знаю. DC-дешифраторы ИД7 555,1533 серии. Элемен- ты "и-не" - 555ЛА3. 8-ые ноги ИД7 и 7-ая нога ЛА3 - GND 16-ые ноги ИД7 и 14-ая нога ЛА3 - +5v P.S. Big Fuck to: GLOB.TEST и TEST IM2. Первый долго тестирует стабильность шины, и выдает, что она стабильна, хотя на са- мом деле это не так. Второй даже содержит описание работы собственно теста, причем довольно грамотное, и имеющее право на жизнь отдельно от самой программы, т.к. программа не работает. Специально потом снова подключил AY и полчаса тестировал шину - не вылез ни один нестабильный бит. Интересно, эти тесты вообще проверяли на нестабильных компах или нет? И что это были за компы (или как коряво написана програма), если дефект шины выявлялся лишь после "прогрева" компьютера??? На писюке, что ли? Из-под эмулятора? Может, в сетапе эмулятора даже есть такой пункт- "Стабильня шина данных +/-" ?