Halt от VPU генерит Reset для MAINCPU - зачем?
p.s. насчет blank (а также ksync) - пока думаю.
интересно, что A11 VPU идет на его же NMI
Halt от VPU генерит Reset для MAINCPU - зачем?
p.s. насчет blank (а также ksync) - пока думаю.
интересно, что A11 VPU идет на его же NMI
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Отлично, наконец то интересный вопрос.Сообщение от jtn
Как известно, за регенерацию ОЗУ (или хотя бы ее части) во всех ZX-ах и их клонах отвечал: видеопроцессор, ULA, видеоконтроллер или просто набор счетчиков - можно называть как угодно, смысл от этого не меняется. Пока динамическая память не начнет нормально регенерироваться, «пускать» туда основной процессор нельзя. Для этого в схеме формирования Reset, обычно, ставят RC-цепочку, которая формирует задержку. Можно было поставить две RC-цепочки: с небольшой задержкой для видеопроцессора и с большой, для основного. Но это лишние элементы. Кроме того, конденсаторы высыхают со временем, да и место на плате занимает. Поскольку формировать, что-то достаточно быстрое, на выводе HALT, не удобно, я решил его использовать в качестве RESTET, для основного Z80. В результате, при включении питания, сначала запускался VPU, начинает память регенерировать, а затем, после фиксированной программной задержки, запускался CPU. Был и еще один скрытый смысл: в случае кратковременного сбоя по питанию, обычные RC не успевали сработать – требовалась разрядить слишком большую емкость. В обычных клонах, это приводило это к тому, что питание дернулось, и ничего не заметно, компьютер вроде работает, а содержимое памяти уже повреждено. Представляешь, если после этого на диск сохраниться? А в ZX-Next C1 очень малой емкости, цепочка чувствительная. Был сбой по питанию, так перезапуститься извольте.
С A11 отдельная история.
ну наконец-то до меня доперло, что биты перепутаны у VROM.
Потом на A10 у него - M1, значит КОПЫ берутся из нижних 1к, а все остальные данные из верхних. Не надо еще забывать, при каждом цикле регенерации на старшую часть адресов идет рег.I. В общем напишу прогу перестановуи битов - сообщу резалты.
p.s. насчет halt - "Пока динамическая память не начнет нормально регенерироваться, «пускать» туда основной процессор нельзя." по ресету/вкл питания он вроде как всегда лезет в ROM. Смысл?
p.p.s. ну раз уж ты такие подробности помнишь наверное расскажешь тогда, что за защита от копирования была?
предположение: как у Зонова на первых скорпах - по вкл. питания в ОЗУ определенные значения, они и анализируются, но имхо бред. Если и в правду защита была, то возможно в пзу зашиты какие-то коэффициенты - которые в свою очередь сравниваются с какими-то таймингами, у каждой платы уникальными.
Золотые слова, еще немного, будет правильное решение.Сообщение от jtn
Смысл в том, что почти первым делом, процессор RAMTOP проверяет и устанавливает. А ОЗУ типа: TI4164, с которых РУ5 сдирали, нужно несколько (на память четыре) полных цикла регенерации.Сообщение от jtn
Ты же сам уже вроде как ответил (правда, некоторые не поверили): там цифро-аналоговым способом записан массив ячеек. Часть из них проверялась при старте, а часть постоянно во время работы. Кстати это была совершенно неизученная область, и 14 лет назад, про ее практическое применение никто не думал. Хотя, используя эту методику можно было легко увеличивать в разы емкость ПЗУ, с лавинной инжекцией заряда (EPROM например). Пару лет назад, прочитал, что нечто подобное сделал Intel:Сообщение от jtn
Introduction
MULTI-LEVEL CELL TECHNOLOGY FROM INTEL
Introduction
Process technology has allowed significant density increases and lower cost-per-Mbyte since flash memory was first introduced in 1988. Intel’s first flash device was a 256Kb device priced at $20 ($640 per Mbyte). Since then process innovation has increased the density and decreased the cost-per-Mbyte. In 1996, for example, an 8 Mbit device was priced at $12 ($12 per Mbyte) - more than a 50X reduction in cost-per-Mbyte. Continued process scaling will inevitably drive up density and lower cost-per-Mbyte. To build on process scaling, a concept called MultiLevel Cell (MLC) technology was conceived. This involves storing multiple bits of information on a single memory transistor. Storing two bits per memory cell instantly doubles the density in the same space and lowers the cost-per-Mbyte. MLC, together with process scaling, is poised to hit $1 per Mbyte by 2001.
Я расскажу: недопрограмленные биты там стоят случайно считываемые. Не понимаю зачем такой гемморой нужно было устраивать если честно. В принципе действительно прошивку переписать то толковому человеку, который платы изготовить может грамотно, несложно - а юзерам по большому счету это токо проблемы. Придется похачить прошивку несмотря на то что данные и копы читаются из разных половинок да еще линии данных зачемто напутаны, иначе jtn так и останется с пустыми платамиСообщение от jtn
![]()
Пиво с меня, но при условии что ко мне заглянешь на рюмку чая![]()
ПО поводу ответа, спорить не буду подумал, что действительно надо еще рефреш учитывать, чтобы адресные шины в ноль не сваливались. И удалил за ненадобностью! Я человек не горячий, а вот справедливость люблю![]()
Кстати вполне возможно что 1858ВМ3 не сможет работать VPU!
Да кстати некоторые занимаются железом не для наживы, а в свое удовольствие! Хотя наверно этого Вам не понять и действительно не поверил, ведь проще было бы какую-нить простенькую ПЛМ поставить.
Кстати могли в VPU серийный номер заталкивать - тоже было бы решение.
Последний раз редактировалось CHRV; 28.01.2005 в 23:56.
Пожалуйста пишите в email (chunin{гаф}mail{тчк}ru), личка отключена!!!
NedoPC group. ZX-Evolution, ATM Turbo 2+, Pentagon1024SL.
[Предлагаю: ZXEvo, PAL coder, NeoGS, TS-FM, YM2149, Z80 и прочее]
Все здесь: http://www.nedopc.com.
Новости/поддержка/Faq: http://forum.nedopc.com.
Раздача халявы: http://forum.nedopc.com/viewtopic.php?f=32&t=977
Опять непонятки какие-то, рассуждаете с горяча, Роман. Я даже могу представить, что было: сунули 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 и тред этот, наверно, уже задолбал всех.
Я думаю эта дискуссия никому еще не надоела, а для будущих или существующих составителей FAQ-ов по клонам спектрума
Да нет, чертовски интересно это все. Не думал я, что так все жестко было в то время. А по поводу прошивки - наверное проще с нуля написать (хотя я как старый кракер попытаюсь поломать%).Сообщение от Conan
А почему не подошла ПЛМ 1556ХЛ8? Ее в видеоконтроллер ATM еще в 1991 году вставили.Сообщение от Conan
Максагор, NedoPC group
ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
[ZX rulezzz 4reva!!!]
http://atmturbo.nedopc.com
http://vk.com/atmturbo
http://maksagor.livejournal.com
http://moskprf.ru
[СССР][Коммунизм][КПРФ] ну [ZX], естественно...
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)