Опять непонятки какие-то, рассуждаете с горяча, Роман. Я даже могу представить, что было: сунули Next ROM Video в программатор, считали, затем верифицировали. Не сошлось, считали еще раз, сравнили, увидели расхождения, возможно еще раз считали и сравнили. И решили:
Цитата Сообщение от CHRV
Я расскажу: недопрограмленные биты там стоят случайно считываемые.
Так ведь?
А мои слова, про «массив» и «цифро-аналоговую запись», это я наверно, что бы крутизны, напустить? Только вот зачем? Я же не торгую железом, да и лет мне не… ну, в общем, не столько, что бы пальцы гнуть перед ребятами… Ладно, лирика, проехали.
Если всерьез, кто ломать надумает, пусть знает:
В Next ROM Video, цифро-аналоговым способом зашит массив ячеек. Можно называть их «недопрограммленными», но каждый бит «недопрограммленн» особо. Я называю их «плавающими». О самом эффекте «плаванья» распинаться долго не буду, скажу лишь, что зависит он, от напряжения питания и температуры. Поэтому ячеек шили много, то ли 128, то ли 256. Кроме того, зашивались и технологические ячейки, их было разное число, зависело от ПЗУ. Это была своего рода «пробная дорожка». Микросхемы предварительно готовились: отжигались и стирались. Окошки намертво заклеивались, потому что, от засветки, тоже зависело многое. Зашивались в два захода, сначала «плавающие» ячейки, затем основной код. За первый заход зашивалось процентов девяносто, остальное – в брак (стирали и записывали туда прошивки для контроллеров IBM клавиатуры). За второй, практически 100% зашивалось.
Зависимость вероятности «плаванья» ячеек, от внешних факторов (питания и температуры), была почти гауссовская. Когда я минимальное количество ячеек рассчитывал, пришлось курс мат.стата перечитать и даже сверх того. Делалось все это ради того, что бы «плавало» при любых условиях, строго определенное число ячеек. И в строго определенных местах массива.
Проверка этого хозяйства проводилась в два этапа: При запуске, проверялся весь массив - главное было убедиться, что хоть какие то ячейки плавают. Времени требовалось мало: те самые три секунды, о которых я говорил в начале треда. Затем, в течение всего времени работы, накапливаем статистику, убеждаемся, что плавает только узкая область массива.
Несмотря на хитрую математику, реализовано было достаточно просто (за точность не ручаюсь): то ли RET делались из адресов из «плавающих» ячеек то ли JR-ы. Да это и не принципиально. Главное работает.
Объясняю как: Вот нашелся хитрый кул-хаскер, знает он про «недошитые» ячейки, берет хороший программатор, долго читает (может 100 а может и 10000 раз), при разных напряжениях и вычисляет все «плавающие» биты. Ага, говорит, понял я все! Берет софтину фирменную (или свою пишет), напругу понижает на программаторе и шьет все ячейки. Вставляет ПЗУ в ZX-Next, включает питание, отсчитывает, с замирание сердца, три секунды, и Ура! Все работает! Хрен. Через минуту или пять опять та же история – черный экран. Шьет еще одну ПЗУ, и опять тот же геморрой. Дальше уже не интересно.
Можно конечно предположить, что найдется маньяк, который возьмет штук 20 Next ROM Video, программатор, который умеет напряжение питания, с точностью до 0,005 вольт выставлять, программу напишет, которая данные из программатора в SQL будет загонять, прочитает каждый Next ROM Video, тысяч по десять раз и постоит красивый OLAP-овсий куб. И будет знать точно, какие ячейки, при каких условиях плавают. Да, признаюсь, о таких методах в 1993 году не думал.
Есть путь проще, как jtn предложил: разобраться с битами (кстати, злого умысла в этом нет, просто так было легче дорожки развести, зашивать же все равно было как). Собрать из двух половинок код – учтите, там местами данные под командами сидят. И аккуратненько дизассемблировать, причем с отладчиком, потому что, как вы уже заметили, никакого ОЗУ у VPU нет, и все данные через регистры тащатся. Помню (поймите правильно, код не я составлял), несколько приемов: например JR назад, то есть за адрес меньше #0000h. При этом NMI возникало. Ну, про то, что такое неопубликованные команды, и что такое высчитать до такта, думаю рассказывать никому не надо. Учтите, что VPU синхронизирован до такта, иначе на экране всякие полосы и мусор будут. Еще, точно помню, что критичные места проверялись по нескольку раз, то есть «патчить» надо было местах в десяти. Где эти места, уже никто не вспомнит. Стопку Лениных тетрадей с кодом и дискет, уже давно выкинули.

А вот теперь подумайте: за каждый зашитый Next ROM Video, нам «Слот» платил нам с Леней - 1 (один) доллар. ZX-Next, включая схемы, платы, монтажки, кучу опытов, программатор, печку для отжига, и т.д. и т.п. делали или покупали мы сами, еще до «Слота». Три года на разработки ушло: знаешь, сколько в 1992 XT-шка самая дохлая стоила? А как без нее обойтись, если P-CAD нужен? А шаблоны с ленточками, а платы? Это Сережа Зонов мог пойти в кооператив «Композит» и сказать: я вам «Ленинград» переразведу, а вы мне двадцать плат, за это. Потому, что «Ленинград», все знали. А про ZX-Next никто в 92 году знать не знал, и за все деньги просили и еще скомуниздить платы норовили. До смешного доходило: заказали мы за свои кровные десяток плат, а на заводе, где их делали, схему попросили. Нам не жалко, дали им схему. Так эти паразиты через неделю говорят, «а вы у нас еще 20 плат не купите, мы вот тут их случайно сделали, а что с ними делать - не знаем…».
Я не курил (под спортсмена косил), а Ленька, он курил с армии. Так вот, в 93 году, стоим мы на лестнице, разговариваем, я ему: «Я понял, куда все деньги уходят, ты куришь много! Можешь не курить?» А он мне: «А ты можешь не есть?»
Подели 700 баксов, на двоих и на три года, много получится?
Цитата Сообщение от CHRV
Пиво с меня, но при условии что ко мне заглянешь на рюмку чая
Да кстати некоторые занимаются железом не для наживы, а в свое удовольствие! Хотя наверно этого Вам не понять и действительно не поверил, ведь проще было бы какую-нить простенькую ПЛМ поставить.
Так что не рассказывайте мне, пожалуйста, чего мне «не понять».
А за предложение по поводу пива или чая - спасибо, принимается. Точную дату определим чуть позднее О.К.?
P.S. Простеньких, а главное дешевых, и таких же функциональных, как видеопроцессор ZX-Next, ПЛМ в 92 году не было. А за дорогие решения народ и сейчас платить не готов, а в то время тем более. Еще раз напомню, цель была сделать компьютер, пригодный для массового производства.
P.P.S. По поводу серийников, и много чего еще, в другом месте. Тут, все же не zxnext.narod.ru и тред этот, наверно, уже задолбал всех.